From: Daniel Hellstrom <daniel@gaisler.com>
To: davem@davemloft.net
Cc: netdev@vger.kernel.org, kristoffer@gaisler.com
Subject: [PATCH 09/10] GRETH: handle frame error interrupts
Date: Thu, 13 Jan 2011 09:25:34 +0100 [thread overview]
Message-ID: <1294907135-24884-9-git-send-email-daniel@gaisler.com> (raw)
In-Reply-To: <1294907135-24884-1-git-send-email-daniel@gaisler.com>
Frame error interrupts must also be handled since the RX flag only indicates
successful reception, it is unlikely but the old code may lead to dead lock
if 128 error frames are recieved in a row.
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
---
drivers/net/greth.c | 9 +++++----
drivers/net/greth.h | 2 ++
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/net/greth.c b/drivers/net/greth.c
index fea1e20..b9623d2 100644
--- a/drivers/net/greth.c
+++ b/drivers/net/greth.c
@@ -596,12 +596,13 @@ static irqreturn_t greth_interrupt(int irq, void *dev_id)
status = GRETH_REGLOAD(greth->regs->status);
/* Handle rx and tx interrupts through poll */
- if (status & (GRETH_INT_RX | GRETH_INT_TX)) {
+ if (status & (GRETH_INT_RE | GRETH_INT_RX |
+ GRETH_INT_TE | GRETH_INT_TX)) {
/* Clear interrupt status */
- GRETH_REGORIN(greth->regs->status,
- status & (GRETH_INT_RX | GRETH_INT_TX));
-
+ GRETH_REGSAVE(greth->regs->status,
+ status & (GRETH_INT_RE | GRETH_INT_RX |
+ GRETH_INT_TE | GRETH_INT_TX));
retval = IRQ_HANDLED;
/* Disable interrupts and schedule poll() */
diff --git a/drivers/net/greth.h b/drivers/net/greth.h
index 9414169..f97f553 100644
--- a/drivers/net/greth.h
+++ b/drivers/net/greth.h
@@ -23,6 +23,7 @@
#define GRETH_BD_LEN 0x7FF
#define GRETH_TXEN 0x1
+#define GRETH_INT_TE 0x2
#define GRETH_INT_TX 0x8
#define GRETH_TXI 0x4
#define GRETH_TXBD_STATUS 0x0001C000
@@ -35,6 +36,7 @@
#define GRETH_TXBD_ERR_UE 0x4000
#define GRETH_TXBD_ERR_AL 0x8000
+#define GRETH_INT_RE 0x1
#define GRETH_INT_RX 0x4
#define GRETH_RXEN 0x2
#define GRETH_RXI 0x8
--
1.5.4
next prev parent reply other threads:[~2011-01-13 9:00 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-13 8:25 [PATCH 01/10] GRETH: added raw AMBA vendor/device number to match against Daniel Hellstrom
2011-01-13 8:25 ` [PATCH 02/10] GRETH: added option to disable a device node from bootloader Daniel Hellstrom
2011-01-14 6:12 ` David Miller
2011-01-14 7:45 ` Daniel Hellstrom
2011-01-13 8:25 ` [PATCH 03/10] GRETH: added no_gbit option Daniel Hellstrom
2011-01-14 6:13 ` David Miller
2011-01-14 7:51 ` Daniel Hellstrom
2011-01-13 8:25 ` [PATCH 04/10] GRETH: added greth_compat_mode module parameter Daniel Hellstrom
2011-01-14 6:14 ` David Miller
2011-01-14 8:10 ` Daniel Hellstrom
2011-01-13 8:25 ` [PATCH 05/10] GRETH: fix opening/closing Daniel Hellstrom
2011-01-13 8:25 ` [PATCH 06/10] GRETH: GBit transmit descriptor handling optimization Daniel Hellstrom
2011-01-13 8:25 ` [PATCH 07/10] GRETH: fixed skb buffer memory leak on frame errors Daniel Hellstrom
2011-01-13 8:25 ` [PATCH 08/10] GRETH: avoid writing bad speed/duplex when setting transfer mode Daniel Hellstrom
2011-01-13 8:25 ` Daniel Hellstrom [this message]
2011-01-13 8:25 ` [PATCH 10/10] GRETH: resolve SMP issues and other problems Daniel Hellstrom
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=1294907135-24884-9-git-send-email-daniel@gaisler.com \
--to=daniel@gaisler.com \
--cc=davem@davemloft.net \
--cc=kristoffer@gaisler.com \
--cc=netdev@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;
as well as URLs for NNTP newsgroup(s).