stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH AUTOSEL 4.4 01/40] s390/qeth: invoke softirqs after napi_schedule()
@ 2019-11-10  2:49 Sasha Levin
  2019-11-10  2:49 ` [PATCH AUTOSEL 4.4 02/40] PCI/ACPI: Correct error message for ASPM disabling Sasha Levin
                   ` (38 more replies)
  0 siblings, 39 replies; 40+ messages in thread
From: Sasha Levin @ 2019-11-10  2:49 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Julian Wiedmann, David S . Miller, Sasha Levin, linux-s390

From: Julian Wiedmann <jwi@linux.ibm.com>

[ Upstream commit 4d19db777a2f32c9b76f6fd517ed8960576cb43e ]

Calling napi_schedule() from process context does not ensure that the
NET_RX softirq is run in a timely fashion. So trigger it manually.

This is no big issue with current code. A call to ndo_open() is usually
followed by a ndo_set_rx_mode() call, and for qeth this contains a
spin_unlock_bh(). Except for OSN, where qeth_l2_set_rx_mode() bails out
early.
Nevertheless it's best to not depend on this behaviour, and just fix
the issue at its source like all other drivers do. For instance see
commit 83a0c6e58901 ("i40e: Invoke softirqs after napi_reschedule").

Fixes: a1c3ed4c9ca0 ("qeth: NAPI support for l2 and l3 discipline")
Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/s390/net/qeth_l2_main.c | 3 +++
 drivers/s390/net/qeth_l3_main.c | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c
index 22045e7d78ac3..97211f7f0cf02 100644
--- a/drivers/s390/net/qeth_l2_main.c
+++ b/drivers/s390/net/qeth_l2_main.c
@@ -996,7 +996,10 @@ static int __qeth_l2_open(struct net_device *dev)
 
 	if (qdio_stop_irq(card->data.ccwdev, 0) >= 0) {
 		napi_enable(&card->napi);
+		local_bh_disable();
 		napi_schedule(&card->napi);
+		/* kick-start the NAPI softirq: */
+		local_bh_enable();
 	} else
 		rc = -EIO;
 	return rc;
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c
index 2cc9bc1ef1e38..0d71d2e6419af 100644
--- a/drivers/s390/net/qeth_l3_main.c
+++ b/drivers/s390/net/qeth_l3_main.c
@@ -3031,7 +3031,10 @@ static int __qeth_l3_open(struct net_device *dev)
 
 	if (qdio_stop_irq(card->data.ccwdev, 0) >= 0) {
 		napi_enable(&card->napi);
+		local_bh_disable();
 		napi_schedule(&card->napi);
+		/* kick-start the NAPI softirq: */
+		local_bh_enable();
 	} else
 		rc = -EIO;
 	return rc;
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 40+ messages in thread

end of thread, other threads:[~2019-11-10  2:54 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-11-10  2:49 [PATCH AUTOSEL 4.4 01/40] s390/qeth: invoke softirqs after napi_schedule() Sasha Levin
2019-11-10  2:49 ` [PATCH AUTOSEL 4.4 02/40] PCI/ACPI: Correct error message for ASPM disabling Sasha Levin
2019-11-10  2:49 ` [PATCH AUTOSEL 4.4 03/40] serial: mxs-auart: Fix potential infinite loop Sasha Levin
2019-11-10  2:49 ` [PATCH AUTOSEL 4.4 04/40] powerpc/iommu: Avoid derefence before pointer check Sasha Levin
2019-11-10  2:49 ` [PATCH AUTOSEL 4.4 05/40] powerpc/64s/hash: Fix stab_rr off by one initialization Sasha Levin
2019-11-10  2:49 ` [PATCH AUTOSEL 4.4 06/40] powerpc/pseries: Disable CPU hotplug across migrations Sasha Levin
2019-11-10  2:49 ` [PATCH AUTOSEL 4.4 07/40] libfdt: Ensure INT_MAX is defined in libfdt_env.h Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 08/40] power: supply: twl4030_charger: fix charging current out-of-bounds Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 09/40] power: supply: twl4030_charger: disable eoc interrupt on linear charge Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 10/40] net: toshiba: fix return type of ndo_start_xmit function Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 11/40] net: xilinx: " Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 12/40] net: broadcom: " Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 13/40] net: amd: " Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 14/40] usb: chipidea: Fix otg event handler Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 15/40] ARM: dts: am335x-evm: fix number of cpsw Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 16/40] ARM: dts: ux500: Correct SCU unit address Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 17/40] ARM: dts: ux500: Fix LCDA clock line muxing Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 18/40] ARM: dts: ste: Fix SPI controller node names Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 19/40] cpufeature: avoid warning when compiling with clang Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 20/40] bnx2x: Ignore bandwidth attention in single function mode Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 21/40] net: micrel: fix return type of ndo_start_xmit function Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 22/40] x86/CPU: Use correct macros for Cyrix calls Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 23/40] MIPS: kexec: Relax memory restriction Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 24/40] media: pci: ivtv: Fix a sleep-in-atomic-context bug in ivtv_yuv_init() Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 25/40] media: davinci: Fix implicit enum conversion warning Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 26/40] usb: gadget: uvc: configfs: Drop leaked references to config items Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 27/40] usb: gadget: uvc: configfs: Prevent format changes after linking header Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 28/40] usb: gadget: uvc: Factor out video USB request queueing Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 29/40] usb: gadget: uvc: Only halt video streaming endpoint in bulk mode Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 30/40] misc: kgdbts: Fix restrict error Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 31/40] misc: genwqe: should return proper error value Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 32/40] vfio/pci: Fix potential memory leak in vfio_msi_cap_len Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 33/40] scsi: libsas: always unregister the old device if going to discover new Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 34/40] ARM: dts: tegra30: fix xcvr-setup-use-fuses Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 35/40] ARM: tegra: apalis_t30: fix mmc1 cmd pull-up Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 36/40] net: smsc: fix return type of ndo_start_xmit function Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 37/40] EDAC: Raise the maximum number of memory controllers Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 38/40] Bluetooth: L2CAP: Detect if remote is not able to use the whole MPS Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 39/40] arm64: dts: amd: Fix SPI bus warnings Sasha Levin
2019-11-10  2:50 ` [PATCH AUTOSEL 4.4 40/40] fuse: use READ_ONCE on congestion_threshold and max_background Sasha Levin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).