linux_dsm_epyc7002/drivers/net
Jay Vosburgh bda7fab548 virtio-net: Fix operstate for virtio when no VIRTIO_NET_F_STATUS
The operstate update logic will leave an interface in the
default UNKNOWN operstate if the interface carrier state never changes
from the default carrier up state set at creation.  This includes the
case of an explicit call to netif_carrier_on, as the carrier on to on
transition has no effect on operstate.

	This affects virtio-net for the case that the virtio peer does
not support VIRTIO_NET_F_STATUS (the feature that provides carrier state
updates).  Without this feature, the virtio specification states that
"the link should be assumed active," so, logically, the operstate should
be UP instead of UNKNOWN.  This has impact on user space applications
that use the operstate to make availability decisions for the interface.

	Resolve this by changing the virtio probe logic slightly to call
netif_carrier_off for both the "with" and "without" VIRTIO_NET_F_STATUS
cases, and then the existing call to netif_carrier_on for the "without"
case will cause an operstate transition.

Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Jason Wang <jasowang@redhat.com>
Cc: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Jay Vosburgh <jay.vosburgh@canonical.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-03-23 12:16:46 -04:00
..
appletalk
arcnet
bonding net: Convert bond_net_ops 2018-02-27 11:01:36 -05:00
caif
can can: cc770: Fix use after free in cc770_tx_interrupt() 2018-03-19 10:57:29 +01:00
cris
dsa Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-03-23 11:31:58 -04:00
ethernet Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-03-23 11:31:58 -04:00
fddi
fjes
hamradio
hippi
hyperv Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-03-23 11:31:58 -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 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-03-23 11:31:58 -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 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-03-23 11:31:58 -04:00
xen-netback xen-netback: make function xenvif_rx_skb static 2018-02-26 11:36:54 -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
Kconfig ipvlan: fix building with modular IPV6 2018-02-27 10:37:14 -05:00
LICENSE.SRC
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
Makefile
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c net/mac89x0: Convert to platform_driver 2018-03-01 21:21:36 -05:00
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