linux/drivers/net
Karicheri, Muralidharan 9ecfe875c4 net: ti: netcp: restore get/set_pad_info() functionality
The commit 8990777914 ("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>
2016-02-21 22:03:15 -05:00
..
appletalk
arcnet
bonding bonding: don't use stale speed and duplex information 2016-02-16 15:14:01 -05:00
caif
can
cris
dsa net: dsa: mv88e6xxx: Add support for Marvell 88E6240 2016-02-16 16:04:07 -05:00
ethernet net: ti: netcp: restore get/set_pad_info() functionality 2016-02-21 22:03:15 -05:00
fddi defxx: fix build warning 2016-01-25 10:51:52 -08:00
fjes
hamradio
hippi
hyperv hv_netvsc: Restore needed_headroom request 2016-02-13 06:04:44 -05:00
ieee802154
ipvlan
irda net/irda: bfin_sir: remove duplicate defines 2016-01-21 10:45:45 -08:00
phy phy: marvell: Fix and unify reg-init behavior 2016-02-17 16:20:40 -05:00
plip
ppp pppoe: fix reference counting in PPPoE proxy 2016-02-17 16:02:01 -05:00
slip
team
usb USB: cdc_subset: only build when one driver is enabled 2016-02-18 15:59:45 -05:00
vmxnet3
wan dscc4: Undefined signed int shift 2016-02-13 06:10:21 -05:00
wimax
wireless rtlwifi 2016-02-19 15:51:18 -05:00
xen-netback
dummy.c
eql.c
geneve.c lwt: fix rx checksum setting for lwt devices tunneling over ipv6 2016-02-19 15:39:30 -05:00
ifb.c
Kconfig
LICENSE.SRC
loopback.c
macvlan.c macvlan: make operstate and carrier more accurate 2016-01-29 12:15:45 -08:00
macvtap.c
Makefile
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c
veth.c
virtio_net.c
vrf.c
vxlan.c vxlan: do not use fdb in metadata mode 2016-02-18 15:01:14 -05:00
xen-netfront.c xen-netfront: request Tx response events more often 2016-01-28 16:08:55 -08:00