linux/drivers/net
Felix Manlunas aa28667cfb liquidio: fix kernel panic in VF driver
Doing ifconfig down on VF driver in the middle of receiving line rate
traffic causes a kernel panic:

    LiquidIO_VF 0000:02:00.3: should not come here should not get rx when poll mode = 0 for vf
    BUG: unable to handle kernel NULL pointer dereference at           (null)
    .
    .
    .
    Call Trace:
     <IRQ>
     ? tasklet_action+0x102/0x120
     __do_softirq+0x91/0x292
     irq_exit+0xb6/0xc0
     do_IRQ+0x4f/0xd0
     common_interrupt+0x93/0x93
     </IRQ>
    RIP: 0010:cpuidle_enter_state+0x142/0x2f0
    RSP: 0018:ffffffffa6403e20 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff59
    RAX: 0000000000000000 RBX: 0000000000000003 RCX: 000000000000001f
    RDX: 0000000000000000 RSI: 000000002ab7519f RDI: 0000000000000000
    RBP: ffffffffa6403e58 R08: 0000000000000084 R09: 0000000000000018
    R10: ffffffffa6403df0 R11: 00000000000003c7 R12: 0000000000000003
    R13: ffffd27ebd806800 R14: ffffffffa64d40d8 R15: 0000007be072823f
     cpuidle_enter+0x17/0x20
     call_cpuidle+0x23/0x40
     do_idle+0x18c/0x1f0
     cpu_startup_entry+0x64/0x70
     rest_init+0xa5/0xb0
     start_kernel+0x45e/0x46b
     x86_64_start_reservations+0x24/0x26
     x86_64_start_kernel+0x6f/0x72
     secondary_startup_64+0xa5/0xa5
    Code:  Bad RIP value.
    RIP:           (null) RSP: ffff9246ed003f28
    CR2: 0000000000000000
    ---[ end trace 92731e80f31b7d7d ]---
    Kernel panic - not syncing: Fatal exception in interrupt
    Kernel Offset: 0x24000000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
    ---[ end Kernel panic - not syncing: Fatal exception in interrupt

Reason is:  in the function assigned to net_device_ops->ndo_stop, the steps
for bringing down the interface are done in the wrong order.  The step that
notifies the NIC firmware to stop forwarding packets to host is done too
late.  Fix it by moving that step to the beginning.

Signed-off-by: Felix Manlunas <felix.manlunas@cavium.com>
Signed-off-by: Raghu Vatsavayi <raghu.vatsavayi@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-10-28 18:52:46 +09:00
..
appletalk drivers/net/appletalk: Convert timers to use timer_setup() 2017-10-18 12:39:55 +01:00
arcnet drivers/net: arcnet: Convert timers to use timer_setup() 2017-10-27 12:09:16 +09:00
bonding bonding: remove rtmsg_ifinfo called in bond_master_upper_dev_link 2017-10-25 10:54:39 +09:00
caif drivers: net: caif: use setup_timer() helper. 2017-09-21 11:44:43 -07:00
can drivers/net: can: Convert timers to use timer_setup() 2017-10-27 12:09:15 +09:00
cris
dsa net: dsa: introduce dsa_user_ports helper 2017-10-28 00:00:09 +09:00
ethernet liquidio: fix kernel panic in VF driver 2017-10-28 18:52:46 +09:00
fddi
fjes
hamradio drivers/net: hamradio/yam: Convert timers to use timer_setup() 2017-10-27 12:09:15 +09:00
hippi drivers/net: hippi: Convert timers to use timer_setup() 2017-10-27 12:09:15 +09:00
hyperv hv_netvsc: Add initialization of tx_table in netvsc_device_add() 2017-10-14 18:42:55 -07:00
ieee802154 Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next 2017-10-21 02:22:19 +01:00
ipvlan net: Add extack to validator_info structs used for address notifier 2017-10-20 13:15:07 +01:00
phy net: phy: broadcom: support new device flag for setting master mode 2017-10-12 22:59:38 -07:00
plip
ppp drivers, net, ppp: convert syncppp.refcnt from atomic_t to refcount_t 2017-10-22 02:22:39 +01:00
slip drivers: net: slip: use setup_timer() helper. 2017-09-21 11:44:40 -07:00
team net: Add extack to upper device linking 2017-10-04 21:39:33 -07:00
usb net: usb: Convert timers to use timer_setup() 2017-10-18 12:40:26 +01:00
vmxnet3
wan drivers/net: wan/sdla: Convert timers to use timer_setup() 2017-10-27 12:09:16 +09:00
wimax wimax/i2400m: Remove VLAIS 2017-10-10 12:35:05 -07:00
wireless wireless-drivers-next patches for 4.15 2017-10-20 08:37:28 +01:00
xen-netback Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-10-22 13:39:14 +01:00
dummy.c net: remove MTU limits for dummy and ifb device 2017-09-25 16:26:09 -07:00
eql.c drivers: net: eql: use setup_timer() helper. 2017-09-21 11:44:42 -07:00
geneve.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-10-22 13:39:14 +01:00
gtp.c
ifb.c net: remove MTU limits for dummy and ifb device 2017-09-25 16:26:09 -07:00
Kconfig net: Add support for networking over Thunderbolt cable 2017-10-02 11:24:42 -07:00
LICENSE.SRC
loopback.c
macsec.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-10-22 13:39:14 +01:00
macvlan.c macvlan/macvtap: Add support for L2 forwarding offloads with macvtap 2017-10-19 12:43:59 +01:00
macvtap.c net: Add extack to upper device linking 2017-10-04 21:39:33 -07:00
Makefile net: Add support for networking over Thunderbolt cable 2017-10-02 11:24:42 -07:00
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c
thunderbolt.c thunderbolt: Right shifting to zero bug in tbnet_handle_packet() 2017-10-19 13:04:32 +01:00
tun.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-10-22 13:39:14 +01:00
veth.c
virtio_net. virtio-net: support XDP_REDIRECT 2017-09-20 14:27:52 -07:00
virtio_net.c bpf: add meta pointer for direct access 2017-09-26 13:36:44 -07:00
vrf.c net: vrf: Add extack messages for enslave errors 2017-10-04 21:39:33 -07:00
vsockmon.c
vxlan.c vxlan: factor out VXLAN-GPE next protocol 2017-08-29 15:16:52 -07:00
xen-netfront.c xen-netfront, xen-netback: Use correct minimum MTU values 2017-10-16 16:00:44 -04:00