linux/drivers/net
Anirudh Venkataramanan 0b28b702e7 ice: Support link events, reset and rebuild
Link events are posted to a PF's admin receive queue (ARQ). This patch
adds the ability to detect and process link events.

This patch also adds the ability to process resets.

The driver can process the following resets:
    1) EMP Reset (EMPR)
    2) Global Reset (GLOBR)
    3) Core Reset (CORER)
    4) Physical Function Reset (PFR)

EMPR is the largest level of reset that the driver can handle. An EMPR
resets the manageability block and also the data path, including PHY and
link for all the PFs. The affected PFs are notified of this event through
a miscellaneous interrupt.

GLOBR is a subset of EMPR. It does everything EMPR does except that it
doesn't reset the manageability block.

CORER is a subset of GLOBR. It does everything GLOBR does but doesn't
reset PHY and link.

PFR is a subset of CORER and affects only the given physical function.
In other words, PFR can be thought of as a CORER for a single PF. Since
only the issuing PF is affected, a PFR doesn't result in the miscellaneous
interrupt being triggered.

All the resets have the following in common:
1) Tx/Rx is halted and all queues are stopped.
2) All the VSIs and filters programmed for the PF are lost and have to be
   reprogrammed.
3) Control queue interfaces are reset and have to be reprogrammed.

In the rebuild flow, control queues are reinitialized, VSIs are reallocated
and filters are restored.

Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>
Tested-by: Tony Brelinski <tonyx.brelinski@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2018-03-26 12:32:17 -07:00
..
appletalk
arcnet
bonding net: Convert bond_net_ops 2018-02-27 11:01:36 -05:00
caif net: caif: remove redundant re-assignment of pointer pfrm 2018-01-22 10:51:56 -05:00
can can: cc770: Fix use after free in cc770_tx_interrupt() 2018-03-19 10:57:29 +01:00
cris
dsa net: dsa: mv88e6xxx: Call the common IRQ free code 2018-03-25 20:43:41 -04:00
ethernet ice: Support link events, reset and rebuild 2018-03-26 12:32:17 -07:00
fddi
fjes
hamradio
hippi
hyperv hv_netvsc: Add range checking for rx packet offset and length 2018-03-25 17:07:40 -04:00
ieee802154 ieee802154: Add NXP MCR20A IEEE 802.15.4 transceiver driver 2018-02-21 09:08:39 +01:00
ipvlan net: introduce IFF_NO_RX_HANDLER 2018-03-09 13:00:08 -05:00
netdevsim netdevsim: fix overflow on the error path 2018-02-01 11:22:51 +01:00
phy net: phy: intel-xway: add VR9 v1.1 phy ids 2018-03-23 13:19:49 -04:00
plip
ppp Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-03-23 11:31:58 -04:00
slip
team Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-03-23 11:31:58 -04:00
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-03-23 11:31:58 -04:00
vmxnet3 vmxnet3: remove unused flag "rxcsum" from struct vmxnet3_adapter 2018-03-20 10:56:25 -04:00
wan hdlc_ppp: carrier detect ok, don't turn off negotiation 2018-02-26 14:38:12 -05:00
wimax net: drivers/net: Remove unnecessary skb_copy_expand OOM messages 2018-03-15 14:28:03 -04:00
wireless wireless-drivers-next patches for 4.17 2018-03-25 21:27:38 -04:00
xen-netback xen-netback: make function xenvif_rx_skb static 2018-02-26 11:36:54 -05:00
Kconfig ipvlan: fix building with modular IPV6 2018-02-27 10:37:14 -05:00
LICENSE.SRC
Makefile
Space.c net/mac89x0: Convert to platform_driver 2018-03-01 21:21:36 -05:00
dummy.c
eql.c
geneve.c net: Convert geneve_net_ops 2018-02-27 11:01:36 -05:00
gtp.c net: Convert gtp_net_ops 2018-02-27 11:01:37 -05:00
ifb.c
loopback.c net: Convert loopback_net_ops 2018-02-13 10:36:09 -05:00
macsec.c macsec: missing dev_put() on error in macsec_newlink() 2018-03-22 14:30:36 -04:00
macvlan.c macvlan: filter out unsupported feature flags 2018-03-11 22:46:16 -04:00
macvtap.c
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
sungem_phy.c
tap.c vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
thunderbolt.c net: thunderbolt: Run disconnect flow asynchronously when logout is received 2018-02-12 12:03:04 -05:00
tun.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-03-23 11:31:58 -04:00
veth.c
virtio_net.c virtio-net: Fix operstate for virtio when no VIRTIO_NET_F_STATUS 2018-03-23 12:16:46 -04:00
vrf.c net/ipv6: Pass skb to route lookup 2018-03-04 13:04:22 -05:00
vsockmon.c
vxlan.c net: Convert vxlan_net_ops 2018-02-27 11:01:37 -05:00
xen-netfront.c xen-netfront: Fix hang on device removal 2018-02-28 20:20:08 +01:00