OpenCloudOS-Kernel/drivers/net/ethernet/broadcom
Fenghua Yu f11421ba4a drivers/net/b44: Change to non-atomic bit operations on pwol_mask
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>
2020-01-05 14:21:23 -08:00
..
bnx2x bnx2x: Fix accounting of vlan resources among the PFs 2019-12-26 15:27:14 -08:00
bnxt bnxt: apply computed clamp value for coalece parameter 2019-12-13 15:32:44 -08:00
genet net: bcmgenet: Add RGMII_RXID support 2019-11-12 20:08:00 -08:00
Kconfig net: ethernet: broadcom: have drivers select DIMLIB as needed 2019-10-15 10:58:08 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
b44.c drivers/net/b44: Change to non-atomic bit operations on pwol_mask 2020-01-05 14:21:23 -08:00
b44.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
bcm63xx_enet.c bcm63xx_enet: use devm_platform_ioremap_resource() to simplify code 2019-08-01 13:10:34 -04:00
bcm63xx_enet.h bcm63xx_enet: use platform device id directly for miibus name 2017-12-19 11:07:16 -05:00
bcmsysport.c net: of_get_phy_mode: Change API to solve int/unit warnings 2019-11-04 11:21:25 -08:00
bcmsysport.h Generic DIM 2019-06-27 12:42:51 -07:00
bgmac-bcma-mdio.c
bgmac-bcma.c net: ethernet: support of_get_mac_address new ERR_PTR error 2019-05-07 12:22:47 -07:00
bgmac-platform.c net: Remove dev_err() usage after platform_get_irq() 2019-07-30 14:37:35 -07:00
bgmac.c net: Use skb accessors in network drivers 2019-07-22 20:47:56 -07:00
bgmac.h net: bgmac: Correctly annotate register space 2018-04-01 22:20:48 -04:00
bnx2.c net: broadcom: Use dev_get_drvdata 2019-07-23 13:02:41 -07:00
bnx2.h
bnx2_fw.h
cnic.c cnic: Set fp_hsi_ver as part of CLIENT_SETUP ramrod 2019-11-05 18:25:14 -08:00
cnic.h
cnic_defs.h
cnic_if.h
sb1250-mac.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
tg3.c net: reject PTP periodic output requests with unsupported flags 2019-11-15 12:48:32 -08:00
tg3.h broadcom: tg3: fix use of SPEED_UNKNOWN ethtool constant 2019-04-08 16:30:43 -07:00