Revision 9ecfe875c4f311618cc918aded716017dcd2ddf1 authored by Karicheri, Muralidharan on 19 February 2016, 17:58:42 UTC, committed by David S. Miller on 22 February 2016, 03:03:15 UTC
The commit 899077791403 ("netcp: try to reduce type confusion in
descriptors") introduces a regression in Kernel 4.5-rc1 and it breaks
get/set_pad_info() functionality.

The TI NETCP driver uses pad0 and pad1 fields of knav_dma_desc to
store DMA/MEM buffer pointer and buffer size respectively. And in both
cases for Keystone 2 the pointer type size is 32 bit regardless of
LAPE enabled or not, because CONFIG_ARCH_DMA_ADDR_T_64BIT originally
is not expected to be defined.

Unfortunately, above commit changed buffer's pointers save/restore
code (get/set_pad_info()) and added intermediate conversation to u64
which works incorrectly on 32bit Keystone 2 and causes TI NETCP driver
crash in RX/TX path due to "Unable to handle kernel NULL pointer"
exception. This issue was reported and discussed in [1].

Hence, fix it by partially reverting above commit and restoring
get/set_pad_info() functionality as it was before.

[1] https://www.mail-archive.com/netdev@vger.kernel.org/msg95361.html
Cc: Wingman Kwok <w-kwok2@ti.com>
Cc: Mugunthan V N <mugunthanvnm@ti.com>
CC: David Laight <David.Laight@ACULAB.COM>
CC: Arnd Bergmann <arnd@arndb.de>
Reported-by: Franklin S Cooper Jr <fcooper@ti.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 3301be3
History
File Mode Size
Kconfig -rw-r--r-- 10.6 KB
Makefile -rw-r--r-- 440 bytes
autosleep.c -rw-r--r-- 2.6 KB
console.c -rw-r--r-- 3.5 KB
hibernate.c -rw-r--r-- 26.9 KB
main.c -rw-r--r-- 15.3 KB
power.h -rw-r--r-- 8.2 KB
poweroff.c -rw-r--r-- 990 bytes
process.c -rw-r--r-- 5.3 KB
qos.c -rw-r--r-- 19.1 KB
snapshot.c -rw-r--r-- 67.1 KB
suspend.c -rw-r--r-- 13.3 KB
suspend_test.c -rw-r--r-- 5.7 KB
swap.c -rw-r--r-- 37.2 KB
user.c -rw-r--r-- 10.0 KB
wakelock.c -rw-r--r-- 5.7 KB

back to top