1
0
Fork 0
alistair23-linux/drivers/net
Fenghua Yu eea2b2bb50 drivers/net/b44: Change to non-atomic bit operations on pwol_mask
[ Upstream commit f11421ba4a ]

Atomic operations that span cache lines are super-expensive on x86
(not just to the current processor, but also to other processes as all
memory operations are blocked until the operation completes). Upcoming
x86 processors have a switch to cause such operations to generate a #AC
trap. It is expected that some real time systems will enable this mode
in BIOS.

In preparation for this, it is necessary to fix code that may execute
atomic instructions with operands that cross cachelines because the #AC
trap will crash the kernel.

Since "pwol_mask" is local and never exposed to concurrency, there is
no need to set bits in pwol_mask using atomic operations.

Directly operate on the byte which contains the bit instead of using
__set_bit() to avoid any big endian concern due to type cast to
unsigned long in __set_bit().

Suggested-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-02-01 09:34:44 +00:00
..
appletalk
arcnet drivers: net: Fix Kconfig indentation 2019-09-26 08:56:17 +02:00
bonding bonding: fix active-backup transition after link failure 2020-01-04 19:19:11 +01:00
caif
can can: tcan4x5x: tcan4x5x_parse_config(): reset device before register access 2020-02-01 09:34:44 +00:00
dsa net: dsa: bcm_sf2: Configure IMP port for 2Gb/sec 2020-01-23 08:22:52 +01:00
ethernet drivers/net/b44: Change to non-atomic bit operations on pwol_mask 2020-02-01 09:34:44 +00:00
fddi
fjes fjes: fix missed check in fjes_acpi_add 2019-12-31 16:41:14 +01:00
hamradio 6pack,mkiss: fix possible deadlock 2020-01-04 19:18:36 +01:00
hippi
hyperv hv_netvsc: flag software created hash value 2020-01-26 10:01:06 +01:00
ieee802154 Merge tag 'ieee802154-for-davem-2019-09-28' of git://git.kernel.org/pub/scm/linux/kernel/git/sschmidt/wpan 2019-09-30 17:14:45 -07:00
ipvlan net: core: add generic lockdep keys 2019-10-24 14:53:48 -07:00
netdevsim devlink: disallow reload operation during device cleanup 2019-11-09 19:38:36 -08:00
phy net: phy: broadcom: Fix RGMII delays configuration for BCM54210E 2020-01-26 10:01:01 +01:00
plip
ppp net: core: add generic lockdep keys 2019-10-24 14:53:48 -07:00
slip can, slip: Protect tty->disc_data in write_wakeup and close with RCU 2020-01-29 16:45:19 +01:00
team team: call RCU read lock when walking the port_list 2019-12-31 16:43:54 +01:00
usb net: usb: lan78xx: Add .ndo_features_check 2020-01-29 16:45:21 +01:00
vmxnet3
wan net/wan/fsl_ucc_hdlc: fix out of bounds write on array utdm_info 2020-01-23 08:22:50 +01:00
wimax wimax: i2400: Fix memory leak in i2400m_op_rfkill_sw_toggle 2019-10-29 16:20:25 -07:00
wireless zd1211rw: fix storage endpoint lookup 2020-02-01 09:34:38 +00:00
xen-netback xen/netback: fix error path of xenvif_connect_data() 2019-10-19 11:43:29 -07:00
Kconfig drivers: net: Fix Kconfig indentation 2019-09-26 08:56:17 +02:00
LICENSE.SRC
Makefile
Space.c
dummy.c
eql.c
geneve.c net: ipv6_stub: use ip6_dst_lookup_flow instead of ip6_dst_lookup 2019-12-18 16:08:42 +01:00
gtp.c gtp: make sure only SOCK_DGRAM UDP sockets are accepted 2020-01-29 16:45:19 +01:00
ifb.c
loopback.c
macsec.c net: remove unnecessary variables and callback 2019-10-24 14:53:49 -07:00
macvlan.c macvlan: use skb_reset_mac_header() in macvlan_queue_xmit() 2020-01-23 08:22:49 +01:00
macvtap.c
mdio.c
mii.c
net_failover.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c
sb1000.c
sungem_phy.c
tap.c net: tap: clean up an indentation issue 2019-09-27 20:58:35 +02:00
thunderbolt.c
tun.c tun: add mutex_unlock() call and napi.skb clearing in tun_get_user() 2020-01-29 16:45:22 +01:00
veth.c
virtio_net.c netfilter: drop bridge nf reset from nf_reset 2019-10-01 18:42:15 +02:00
vrf.c net: core: add generic lockdep keys 2019-10-24 14:53:48 -07:00
vsockmon.c
vxlan.c vxlan: fix tos value before xmit 2020-01-12 12:21:49 +01:00
xen-netfront.c xen-netfront: do not use ~0U as error return value for xennet_fill_frags() 2019-10-01 21:49:51 -04:00