summaryrefslogtreecommitdiffstats
path: root/drivers/net/spider_net.c
diff options
context:
space:
mode:
authorLinas Vepstas <linas@austin.ibm.com>2007-06-11 13:26:50 -0500
committerJeff Garzik <jeff@garzik.org>2007-06-20 19:09:33 -0400
commitc3d1182a538fd99b6fe5effa1ab54521c0efb1d1 (patch)
treec81310d49a8f4efd3445daf861061226c6271841 /drivers/net/spider_net.c
parent2bf27a0d4913a5f0ef38e3be510b1b3add2869ad (diff)
downloadop-kernel-dev-c3d1182a538fd99b6fe5effa1ab54521c0efb1d1.zip
op-kernel-dev-c3d1182a538fd99b6fe5effa1ab54521c0efb1d1.tar.gz
spidernet: silence the ramfull messages
Although the previous patch resolved issues with hangs when the RX ram full interrupt is encountered, there are still situations where lots of RX ramfull interrupts arrive, resulting in a noisy log in syslog. There is no need for this. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/spider_net.c')
-rw-r--r--drivers/net/spider_net.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/drivers/net/spider_net.c b/drivers/net/spider_net.c
index f5ede5f..0e79bac 100644
--- a/drivers/net/spider_net.c
+++ b/drivers/net/spider_net.c
@@ -1172,7 +1172,7 @@ spider_net_decode_one_descr(struct spider_net_card *card)
goto bad_desc;
}
- if (hwdescr->dmac_cmd_status & 0xfefe) {
+ if (hwdescr->dmac_cmd_status & 0xfcf4) {
pr_err("%s: bad status, cmd_status=x%08x\n",
card->netdev->name,
hwdescr->dmac_cmd_status);
@@ -1251,6 +1251,7 @@ spider_net_poll(struct net_device *netdev, int *budget)
if (no_more_packets) {
netif_rx_complete(netdev);
spider_net_rx_irq_on(card);
+ card->ignore_rx_ramfull = 0;
return 0;
}
@@ -1484,15 +1485,15 @@ spider_net_handle_error_irq(struct spider_net_card *card, u32 status_reg)
case SPIDER_NET_GRFBFLLINT: /* fallthrough */
case SPIDER_NET_GRFAFLLINT: /* fallthrough */
case SPIDER_NET_GRMFLLINT:
- if (netif_msg_intr(card) && net_ratelimit())
- pr_err("Spider RX RAM full, incoming packets "
- "might be discarded!\n");
/* Could happen when rx chain is full */
- spider_net_resync_head_ptr(card);
- spider_net_refill_rx_chain(card);
- spider_net_enable_rxdmac(card);
- card->num_rx_ints ++;
- netif_rx_schedule(card->netdev);
+ if (card->ignore_rx_ramfull == 0) {
+ card->ignore_rx_ramfull = 1;
+ spider_net_resync_head_ptr(card);
+ spider_net_refill_rx_chain(card);
+ spider_net_enable_rxdmac(card);
+ card->num_rx_ints ++;
+ netif_rx_schedule(card->netdev);
+ }
show_error = 0;
break;
@@ -2265,6 +2266,7 @@ spider_net_setup_netdev(struct spider_net_card *card)
netdev->irq = card->pdev->irq;
card->num_rx_ints = 0;
+ card->ignore_rx_ramfull = 0;
dn = pci_device_to_OF_node(card->pdev);
if (!dn)
OpenPOWER on IntegriCloud