android_kernel_oneplus_msm8998/drivers/net
Edward Cree 267d9d7387 sfc: Cope with permissions enforcement added to firmware for SR-IOV
* Accept EPERM in some simple cases, the following cases are handled:
1) efx_mcdi_read_assertion()
Unprivileged PCI functions aren't allowed to GET_ASSERTS.
We return success as it's up to the primary PF to deal with asserts.
2) efx_mcdi_mon_probe() in efx_ef10_probe()
Unprivileged PCI functions aren't allowed to read sensor info, and
worrying about sensor data is the primary PF's job.
3) phy_op->reconfigure() in efx_init_port() and efx_reset_up()
Unprivileged functions aren't allowed to MC_CMD_SET_LINK, they just have
to accept the settings (including flow-control, which is what
efx_init_port() is worried about) they've been given.
4) Fallback to GET_WORKAROUNDS in efx_ef10_probe()
Unprivileged PCI functions aren't allowed to set workarounds. So if
efx_mcdi_set_workaround() fails EPERM, use efx_mcdi_get_workarounds()
to find out if workaround_35388 is enabled.
5) If DRV_ATTACH gets EPERM, try without specifying fw-variant
Unprivileged PCI functions have to use a FIRMWARE_ID of 0xffffffff
(MC_CMD_FW_DONT_CARE).
6) Don't try to exit_assertion unless one had fired
Previously we called efx_mcdi_exit_assertion even if
efx_mcdi_read_assertion had received MC_CMD_GET_ASSERTS_FLAGS_NO_FAILS.
This is unnecessary, and the resulting MC_CMD_REBOOT, even if the
AFTER_ASSERTION flag made it a no-op, would fail EPERM for unprivileged
PCI functions.
So make efx_mcdi_read_assertion return whether an assert happened, and only
call efx_mcdi_exit_assertion if it has.

Signed-off-by: Shradha Shah <sshah@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-05-09 16:16:48 -04:00
..
appletalk
arcnet
bonding net: Fix Kernel Panic in bonding driver debugfs file: rlb_hash_table 2015-04-29 15:37:19 -04:00
caif
can net:treewide: Fix typo in drivers/net 2015-04-27 13:40:53 -04:00
cris
dsa net: dsa: mv88e6xxx: Fix false positive lockdep splat 2015-05-09 16:05:54 -04:00
ethernet sfc: Cope with permissions enforcement added to firmware for SR-IOV 2015-05-09 16:16:48 -04:00
fddi
hamradio
hippi
hyperv hv_netvsc: Fix a bug in netvsc_start_xmit() 2015-04-29 15:20:39 -04:00
ieee802154
ipvlan ipvlan: Always set broadcast bit in multicast filter 2015-05-05 19:29:49 -04:00
irda
phy mdio-mux-gpio: use new gpiod_get_array and gpiod_put_array functions 2015-04-27 13:35:40 -04:00
plip
ppp ppp: mppe: discard late packet in stateless mode 2015-04-26 23:25:13 -04:00
slip
team
usb Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-04-14 15:44:14 -04:00
vmxnet3
wan
wimax
wireless ARM: DT updates for v4.1 2015-04-22 09:09:46 -07:00
xen-netback xen: features and fixes for 4.1-rc0 2015-04-16 14:01:03 -05:00
dummy.c
eql.c
ifb.c act_mirred: Fix bogus header when redirecting from VLAN 2015-04-17 13:29:28 -04:00
Kconfig
LICENSE.SRC
loopback.c
macvlan.c
macvtap.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-04-17 16:31:08 -04:00
Makefile
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c make new_sync_{read,write}() static 2015-04-11 22:29:40 -04:00
veth.c
virtio_net.c
vxlan.c vxlan: Correctly set flow*i_mark and flow4i_proto in route lookups 2015-05-05 19:37:54 -04:00
xen-netfront.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-04-17 16:31:08 -04:00