linux_old1/drivers/net/ethernet
Subash Abhinov Kasiviswanathan 5c346525d3 net: qualcomm: rmnet: Fix rcu splat in rmnet_is_real_dev_registered
Xiaolong reported a suspicious rcu_dereference_check in the device
unregister notifier callback. Since we do not dereference the
rx_handler_data, it's ok to just check for the value of the pointer.
Note that this section is already protected by rtnl_lock.

[  101.364846] WARNING: suspicious RCU usage
[  101.365654] 4.13.0-rc6-01701-gceed73a #1 Not tainted
[  101.370873] -----------------------------
[  101.372472] drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c:57 suspicious rcu_dereference_check() usage!
[  101.374427]
[  101.374427] other info that might help us debug this:
[  101.374427]
[  101.387491]
[  101.387491] rcu_scheduler_active = 2, debug_locks = 1
[  101.389368] 1 lock held by trinity-main/2809:
[  101.390736]  #0:  (rtnl_mutex){+.+.+.}, at: [<8146085b>] rtnl_lock+0xf/0x11
[  101.395482]
[  101.395482] stack backtrace:
[  101.396948] CPU: 0 PID: 2809 Comm: trinity-main Not tainted 4.13.0-rc6-01701-gceed73a #1
[  101.398857] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.9.3-20161025_171302-gandalf 04/01/2014
[  101.401079] Call Trace:
[  101.401656]  dump_stack+0xa1/0xeb
[  101.402871]  lockdep_rcu_suspicious+0xc7/0xd0
[  101.403665]  rmnet_is_real_dev_registered+0x40/0x4e
[  101.405199]  rmnet_config_notify_cb+0x2c/0x142
[  101.406344]  ? wireless_nlevent_flush+0x47/0x71
[  101.407385]  notifier_call_chain+0x2d/0x47
[  101.408645]  raw_notifier_call_chain+0xc/0xe
[  101.409882]  call_netdevice_notifiers_info+0x41/0x49
[  101.411402]  call_netdevice_notifiers+0xc/0xe
[  101.412713]  rollback_registered_many+0x268/0x36e
[  101.413702]  rollback_registered+0x39/0x56
[  101.414965]  unregister_netdevice_queue+0x79/0x88
[  101.415908]  unregister_netdev+0x16/0x1d

Fixes: ceed73a2cf ("drivers: net: ethernet: qualcomm: rmnet: Initial implementation")
Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
Reported-by: kernel test robot <xiaolong.ye@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-09-23 19:59:53 -07:00
..
3com net: 3c59x: constify eisa_device_id 2017-08-19 17:13:41 -07:00
8390 net: ethernet: ax88796: make mdiobb_ops const 2017-08-22 14:20:54 -07:00
adaptec
adi net: ethernet: make ptp_clock_info const 2017-08-22 11:04:51 -07:00
aeroflex
agere
alacritech
allwinner
alteon
altera
amazon net: ena: update ena driver to version 1.2.0 2017-06-23 14:15:11 -04:00
amd dma-mapping updates for 4.14: 2017-09-12 13:30:06 -07:00
apm drivers: net: xgene: Remove return statement from void function 2017-09-05 14:58:25 -07:00
apple net: Convert to using %pOF instead of full_name 2017-07-24 13:41:48 -07:00
aquantia Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-09-01 17:42:05 -07:00
arc net: arc_emac: Add support for ndo_do_ioctl net_device_ops operation 2017-08-03 15:14:34 -07:00
atheros net: atl1c: fix spelling mistake: "droppted" -> "dropped" 2017-06-29 12:24:26 -04:00
aurora net: ethernet: nb8800: Handle all 4 RGMII modes identically 2017-07-25 21:27:01 -07:00
broadcom cnic: Fix an error handling path in 'cnic_alloc_bnx2x_resc()' 2017-09-23 17:04:27 -07:00
brocade
cadence net: ethernet: make ptp_clock_info const 2017-08-22 11:04:51 -07:00
calxeda
cavium Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-09-06 14:45:08 -07:00
chelsio cxgb4: Ignore MPS_TX_INT_CAUSE[Bubble] for T6 2017-09-05 14:27:50 -07:00
cirrus
cisco cisco: enic: Fic an error handling path in 'vnic_dev_init_devcmd2()' 2017-07-11 10:54:15 -07:00
davicom davicom: Display proper debug level up to 6 2017-09-08 20:53:10 -07:00
dec net: tulip: Constify tulip_tbl 2017-09-08 20:53:10 -07:00
dlink
emulex be2net: fix TSO6/GSO issue causing TX-stall on Lancer/BEx 2017-09-13 09:28:18 -07:00
ezchip
faraday Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-09-01 17:42:05 -07:00
freescale net: fec: return IRQ_HANDLED if fec_ptp_check_pps_event handled it 2017-09-20 15:47:31 -07:00
fujitsu
hisilicon net: hns3: Fix for pri to tc mapping in TM 2017-09-20 16:15:40 -07:00
hp net: hp100: constify eisa_device_id 2017-08-19 17:13:41 -07:00
huawei hinic: don't build the module by default 2017-08-28 21:39:52 -07:00
i825xx dma-mapping updates for 4.14: 2017-09-12 13:30:06 -07:00
ibm net: emac: Fix napi poll list corruption 2017-09-19 16:20:25 -07:00
intel Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-queue 2017-09-05 20:03:40 -07:00
marvell dmi: Mark all struct dmi_system_id instances const 2017-09-14 11:59:30 +02:00
mediatek net-next: mediatek: bring up QDMA RX ring 0 2017-08-09 22:45:36 -07:00
mellanox mlxsw: spectrum_router: Only handle IPv4 and IPv6 events 2017-09-16 09:21:43 -07:00
micrel
microchip
moxa net: moxa: Add spaces preferred around that '{+,-}' 2017-07-29 14:02:07 -07:00
myricom
natsemi
neterion s2io: Remove UFO support. 2017-07-17 09:52:57 -07:00
netronome nfp: wait for the NSP resource to appear on boot 2017-09-13 13:29:13 -07:00
nuvoton w90p910_ether: include linux/interrupt.h 2017-09-12 20:59:19 -07:00
nvidia forcedeth: replace init_timer_deferrable with setup_deferrable_timer 2017-08-11 14:25:35 -07:00
nxp net: manual clean code which call skb_put_[data:zero] 2017-06-20 13:30:15 -04:00
oki-semi
packetengines net: manual clean code which call skb_put_[data:zero] 2017-06-20 13:30:15 -04:00
pasemi
qlogic qed: remove unnecessary call to memset 2017-09-15 14:02:05 -07:00
qualcomm net: qualcomm: rmnet: Fix rcu splat in rmnet_is_real_dev_registered 2017-09-23 19:59:53 -07:00
rdc
realtek 8139too: revisit napi_complete_done() usage 2017-09-18 20:57:00 -07:00
renesas net: sh_eth: constify platform_device_id 2017-08-13 20:12:23 -07:00
rocker rocker: fix kcalloc parameter order 2017-09-05 14:52:31 -07:00
samsung net: sxgbe: check memory allocation failure 2017-08-25 20:07:07 -07:00
seeq sgiseeq: switch to dma_alloc_attrs 2017-08-29 10:02:54 +02:00
sfc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-15 20:23:23 -07:00
sgi ioc3-eth: store pointer to net_device for priviate area 2017-07-15 14:28:56 -07:00
silan
sis
smsc net: smsc911x: Quieten netif during suspend 2017-09-15 14:24:49 -07:00
stmicro net: stmmac: Cocci spatch "of_table" 2017-09-21 15:26:26 -07:00
sun Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-08-01 10:07:50 -07:00
synopsys drivers: net: add missing interrupt.h include 2017-07-18 11:13:41 -07:00
tehuti net: tehuti: don't process data if it has not been copied from userspace 2017-07-19 22:48:02 -07:00
ti net: ethernet: ti: netcp_core: no need in netif_napi_del 2017-09-08 20:53:10 -07:00
tile net: ethernet: make ptp_clock_info const 2017-08-22 11:04:51 -07:00
toshiba net: tc35815: fix spelling mistake: "Intterrupt" -> "Interrupt" 2017-07-29 15:22:08 -07:00
tundra
via dmi: Mark all struct dmi_system_id instances const 2017-09-14 11:59:30 +02:00
wiznet
xilinx net: Convert to using %pOF instead of full_name 2017-07-24 13:41:48 -07:00
xircom ethernet: xircom: small clean up in setup_xirc2ps_cs() 2017-08-22 10:30:00 -07:00
xscale
Kconfig net-next/hinic: Initialize hw interface 2017-08-22 10:48:52 -07:00
Makefile net-next/hinic: Initialize hw interface 2017-08-22 10:48:52 -07:00
dnet.c
dnet.h
ec_bhf.c net: ec_bhf: constify pci_device_id. 2017-07-17 13:37:15 -07:00
ethoc.c
fealnx.c
jme.c
jme.h
korina.c
lantiq_etop.c
netx-eth.c