linux_dsm_epyc7002/drivers/net
Arjun Vynipadath e2f4f4e927 cxgb4/cxgb4vf: Notify link changes to OS-dependent code
We have a confusion of two different abstractions in the Common
Code:  Physical Link (Port) and Logical Network Interface (Virtual
Interface), and we haven't been properly managing the state of the
intersection of those two abstractions.
On the one hand we have the Physical state of the Link -- up or down --
and on the other we have the logical state of the VI, enabled or not.
{ethN} refers to both the Physical and Logical State. In this case,
ifconfig only affects/interrogates the Logical State of a VI,
and ethtool only deals with the Physical State. And these are different.

So, just because we disable the VI, we don't really want to change the
Physical Link Up/Down state.  Thus, the previous hack to set
"lc->link_ok = 0" when we disable a VI is completely incorrect.

Where we get into trouble is where the Physical Link State and the
Logical VI State cross swords.  And that happens in
t4_handle_get_port_info() where we need to manage/safe the Physical
Link State, but we also need to know when the Logical VI State has
changed and pass that back up to the OS-dependent Driver routine
t4_os_link_changed() which is concerned about the Logical Interface.

So we enable a VI and that causes Firmware to send us a new Port
Information message, but if none of the Physical Link State
particulars have changed, we don't call t4_os_link_changed().

This fix uses the existing OS Contract APIs for the Common Code to
inform the OS-dependent portion of the Host Driver when the "Link" (really
Logical Network Interface) is "up" or "down". A new API
t4_enable_pi_params() is added which calls t4_enable_vi_params() and,
if that is successful, then calls back to the OS Contract API
t4_os_link_changed() notifying the OS-dependent layer of the
potential Link State change.

Original Work by : Casey Leedom <leedom@chelsio.com>

Signed-off-by: Santosh Rastapur <santosh@chelsio.com>
Signed-off-by: Arjun Vynipadath <arjun@chelsio.com>
Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-05-25 15:10:07 -04:00
..
appletalk
arcnet
bonding net: include hash policy in LAG changeupper info 2018-05-24 23:10:57 -04:00
caif
can can: hi311x: Work around TX complete interrupt erratum 2018-05-10 18:25:30 +02:00
dsa net: dsa: qca8k: Remove redundant parentheses 2018-05-23 15:46:34 -04:00
ethernet cxgb4/cxgb4vf: Notify link changes to OS-dependent code 2018-05-25 15:10:07 -04:00
fddi
fjes
hamradio mkiss: remove redundant check for len > 0 2018-04-25 14:12:06 -04:00
hippi hippi: fix spelling mistake: "Framming" -> "Framing" 2018-05-18 13:44:08 -04:00
hyperv hv_netvsc: fix bogus ifalias on network device 2018-05-24 23:06:33 -04:00
ieee802154 net: ieee802154: mcr20a: do not leak resources on error path 2018-04-23 20:56:23 +02:00
ipvlan ipvlan: call netdevice notifier when master mac address changed 2018-05-16 11:59:41 -04:00
netdevsim
phy net: phy: sfp: make the i2c-bus dt property mandatory 2018-05-23 14:34:27 -04:00
plip
ppp pppoe: check sockaddr length in pppoe_connect() 2018-04-23 21:12:15 -04:00
slip
team net: include hash policy in LAG changeupper info 2018-05-24 23:10:57 -04:00
usb drivers: net: Remove device_node checks with of_mdiobus_register() 2018-05-16 14:20:36 -04:00
vmxnet3 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-05-21 16:01:54 -04:00
wan
wimax
wireless mac80211: Support adding duration for prepare_tx() callback 2018-05-23 11:06:10 +02:00
xen-netback
dummy.c
eql.c
geneve.c geneve: configure MTU based on a lower device 2018-04-20 11:20:05 -04:00
gtp.c
ifb.c
Kconfig geneve: fix build with modular IPV6 2018-04-27 13:52:09 -04:00
LICENSE.SRC
loopback.c
macsec.c
macvlan.c macvlan: Use software path for offloaded local, broadcast, and multicast traffic 2018-04-25 08:26:19 -07:00
macvtap.c
Makefile
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c
thunderbolt.c
tun.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2018-05-24 22:20:51 -04:00
veth.c
virtio_net.c xdp: change ndo_xdp_xmit API to support bulking 2018-05-24 18:36:15 -07:00
vrf.c
vsockmon.c
vxlan.c
xen-netfront.c