From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org,
Russell King <rmk+kernel@arm.linux.org.uk>,
Nicolas Diaz <nicolas.diaz@nxp.com>,
Joakim Zhang <qiangqing.zhang@nxp.com>,
Jakub Kicinski <kuba@kernel.org>
Subject: [PATCH 4.4 25/37] net: fec: only clear interrupt of handling queue in fec_enet_rx_queue()
Date: Mon, 13 Dec 2021 10:30:03 +0100 [thread overview]
Message-ID: <20211213092926.198346538@linuxfoundation.org> (raw)
In-Reply-To: <20211213092925.380184671@linuxfoundation.org>
From: Joakim Zhang <qiangqing.zhang@nxp.com>
commit b5bd95d17102b6719e3531d627875b9690371383 upstream.
Background:
We have a customer is running a Profinet stack on the 8MM which receives and
responds PNIO packets every 4ms and PNIO-CM packets every 40ms. However, from
time to time the received PNIO-CM package is "stock" and is only handled when
receiving a new PNIO-CM or DCERPC-Ping packet (tcpdump shows the PNIO-CM and
the DCERPC-Ping packet at the same time but the PNIO-CM HW timestamp is from
the expected 40 ms and not the 2s delay of the DCERPC-Ping).
After debugging, we noticed PNIO, PNIO-CM and DCERPC-Ping packets would
be handled by different RX queues.
The root cause should be driver ack all queues' interrupt when handle a
specific queue in fec_enet_rx_queue(). The blamed patch is introduced to
receive as much packets as possible once to avoid interrupt flooding.
But it's unreasonable to clear other queues'interrupt when handling one
queue, this patch tries to fix it.
Fixes: ed63f1dcd578 (net: fec: clear receive interrupts before processing a packet)
Cc: Russell King <rmk+kernel@arm.linux.org.uk>
Reported-by: Nicolas Diaz <nicolas.diaz@nxp.com>
Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
Link: https://lore.kernel.org/r/20211206135457.15946-1-qiangqing.zhang@nxp.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/ethernet/freescale/fec.h | 3 +++
drivers/net/ethernet/freescale/fec_main.c | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)
--- a/drivers/net/ethernet/freescale/fec.h
+++ b/drivers/net/ethernet/freescale/fec.h
@@ -360,6 +360,9 @@ struct bufdesc_ex {
#define FEC_ENET_WAKEUP ((uint)0x00020000) /* Wakeup request */
#define FEC_ENET_TXF (FEC_ENET_TXF_0 | FEC_ENET_TXF_1 | FEC_ENET_TXF_2)
#define FEC_ENET_RXF (FEC_ENET_RXF_0 | FEC_ENET_RXF_1 | FEC_ENET_RXF_2)
+#define FEC_ENET_RXF_GET(X) (((X) == 0) ? FEC_ENET_RXF_0 : \
+ (((X) == 1) ? FEC_ENET_RXF_1 : \
+ FEC_ENET_RXF_2))
#define FEC_ENET_TS_AVAIL ((uint)0x00010000)
#define FEC_ENET_TS_TIMER ((uint)0x00008000)
--- a/drivers/net/ethernet/freescale/fec_main.c
+++ b/drivers/net/ethernet/freescale/fec_main.c
@@ -1407,7 +1407,7 @@ fec_enet_rx_queue(struct net_device *nde
if ((status & BD_ENET_RX_LAST) == 0)
netdev_err(ndev, "rcv is not +last\n");
- writel(FEC_ENET_RXF, fep->hwp + FEC_IEVENT);
+ writel(FEC_ENET_RXF_GET(queue_id), fep->hwp + FEC_IEVENT);
/* Check for errors. */
if (status & (BD_ENET_RX_LG | BD_ENET_RX_SH | BD_ENET_RX_NO |
next prev parent reply other threads:[~2021-12-13 9:33 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-13 9:29 [PATCH 4.4 00/37] 4.4.295-rc1 review Greg Kroah-Hartman
2021-12-13 9:29 ` [PATCH 4.4 01/37] HID: introduce hid_is_using_ll_driver Greg Kroah-Hartman
2021-12-13 9:29 ` [PATCH 4.4 02/37] HID: add hid_is_usb() function to make it simpler for USB detection Greg Kroah-Hartman
2021-12-13 9:29 ` [PATCH 4.4 03/37] HID: add USB_HID dependancy to hid-prodikeys Greg Kroah-Hartman
2021-12-13 9:29 ` [PATCH 4.4 04/37] HID: add USB_HID dependancy to hid-chicony Greg Kroah-Hartman
2021-12-13 9:29 ` [PATCH 4.4 05/37] HID: add USB_HID dependancy on some USB HID drivers Greg Kroah-Hartman
2021-12-13 9:29 ` [PATCH 4.4 06/37] HID: wacom: fix problems when device is not a valid USB device Greg Kroah-Hartman
2021-12-13 9:29 ` [PATCH 4.4 07/37] HID: check for valid USB device for many HID drivers Greg Kroah-Hartman
2021-12-13 9:29 ` [PATCH 4.4 08/37] can: sja1000: fix use after free in ems_pcmcia_add_card() Greg Kroah-Hartman
2021-12-13 9:29 ` [PATCH 4.4 09/37] nfc: fix potential NULL pointer deref in nfc_genl_dump_ses_done Greg Kroah-Hartman
2021-12-13 9:29 ` [PATCH 4.4 10/37] mm: bdi: initialize bdi_min_ratio when bdi is unregistered Greg Kroah-Hartman
2021-12-13 9:29 ` [PATCH 4.4 11/37] ALSA: ctl: Fix copy of updated id with element read/write Greg Kroah-Hartman
2021-12-13 9:29 ` [PATCH 4.4 12/37] ALSA: pcm: oss: Fix negative period/buffer sizes Greg Kroah-Hartman
2021-12-13 9:29 ` [PATCH 4.4 13/37] ALSA: pcm: oss: Limit the period size to 16MB Greg Kroah-Hartman
2021-12-13 9:29 ` [PATCH 4.4 14/37] ALSA: pcm: oss: Handle missing errors in snd_pcm_oss_change_params*() Greg Kroah-Hartman
2021-12-13 9:29 ` [PATCH 4.4 15/37] tracefs: Have new files inherit the ownership of their parent Greg Kroah-Hartman
2021-12-13 9:29 ` [PATCH 4.4 16/37] can: pch_can: pch_can_rx_normal: fix use after free Greg Kroah-Hartman
2021-12-13 9:29 ` [PATCH 4.4 17/37] libata: add horkage for ASMedia 1092 Greg Kroah-Hartman
2021-12-13 9:29 ` [PATCH 4.4 18/37] wait: add wake_up_pollfree() Greg Kroah-Hartman
2021-12-13 9:29 ` [PATCH 4.4 19/37] binder: use wake_up_pollfree() Greg Kroah-Hartman
2021-12-13 9:29 ` [PATCH 4.4 20/37] signalfd: " Greg Kroah-Hartman
2021-12-13 9:29 ` [PATCH 4.4 21/37] tracefs: Set all files to the same group ownership as the mount option Greg Kroah-Hartman
2021-12-13 9:30 ` [PATCH 4.4 22/37] block: fix ioprio_get(IOPRIO_WHO_PGRP) vs setuid(2) Greg Kroah-Hartman
2021-12-13 9:30 ` [PATCH 4.4 23/37] net: cdc_ncm: Allow for dwNtbOutMaxSize to be unset or zero Greg Kroah-Hartman
2021-12-13 9:30 ` [PATCH 4.4 24/37] net: altera: set a couple error code in probe() Greg Kroah-Hartman
2021-12-13 9:30 ` Greg Kroah-Hartman [this message]
2021-12-13 9:30 ` [PATCH 4.4 26/37] net, neigh: clear whole pneigh_entry at alloc time Greg Kroah-Hartman
2021-12-13 9:30 ` [PATCH 4.4 27/37] net/qla3xxx: fix an error code in ql_adapter_up() Greg Kroah-Hartman
2021-12-13 9:30 ` [PATCH 4.4 28/37] USB: gadget: detect too-big endpoint 0 requests Greg Kroah-Hartman
2021-12-13 9:30 ` [PATCH 4.4 29/37] USB: gadget: zero allocate endpoint 0 buffers Greg Kroah-Hartman
2021-12-13 9:30 ` [PATCH 4.4 30/37] usb: core: config: fix validation of wMaxPacketValue entries Greg Kroah-Hartman
2021-12-13 9:30 ` [PATCH 4.4 31/37] iio: stk3310: Dont return error code in interrupt handler Greg Kroah-Hartman
2021-12-13 9:30 ` [PATCH 4.4 32/37] iio: mma8452: Fix trigger reference couting Greg Kroah-Hartman
2021-12-13 9:30 ` [PATCH 4.4 33/37] iio: ltr501: Dont return error code in trigger handler Greg Kroah-Hartman
2021-12-13 9:30 ` [PATCH 4.4 34/37] iio: itg3200: Call iio_trigger_notify_done() on error Greg Kroah-Hartman
2021-12-13 9:30 ` [PATCH 4.4 35/37] iio: accel: kxcjk-1013: Fix possible memory leak in probe and remove Greg Kroah-Hartman
2021-12-13 9:30 ` [PATCH 4.4 36/37] irqchip/irq-gic-v3-its.c: Force synchronisation when issuing INVALL Greg Kroah-Hartman
2021-12-13 9:30 ` [PATCH 4.4 37/37] irqchip: nvic: Fix offset for Interrupt Priority Offsets Greg Kroah-Hartman
2021-12-13 10:31 ` [PATCH 4.4 00/37] 4.4.295-rc1 review Pavel Machek
2021-12-13 14:42 ` Jon Hunter
2021-12-13 19:54 ` Guenter Roeck
2021-12-13 20:31 ` Shuah Khan
2021-12-14 8:01 ` Naresh Kamboju
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211213092926.198346538@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nicolas.diaz@nxp.com \
--cc=qiangqing.zhang@nxp.com \
--cc=rmk+kernel@arm.linux.org.uk \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox