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>
This commit is contained in:
parent
2bf27a0d49
commit
c3d1182a53
2 changed files with 12 additions and 9 deletions
|
@ -1172,7 +1172,7 @@ spider_net_decode_one_descr(struct spider_net_card *card)
|
||||||
goto bad_desc;
|
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",
|
pr_err("%s: bad status, cmd_status=x%08x\n",
|
||||||
card->netdev->name,
|
card->netdev->name,
|
||||||
hwdescr->dmac_cmd_status);
|
hwdescr->dmac_cmd_status);
|
||||||
|
@ -1251,6 +1251,7 @@ spider_net_poll(struct net_device *netdev, int *budget)
|
||||||
if (no_more_packets) {
|
if (no_more_packets) {
|
||||||
netif_rx_complete(netdev);
|
netif_rx_complete(netdev);
|
||||||
spider_net_rx_irq_on(card);
|
spider_net_rx_irq_on(card);
|
||||||
|
card->ignore_rx_ramfull = 0;
|
||||||
return 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_GRFBFLLINT: /* fallthrough */
|
||||||
case SPIDER_NET_GRFAFLLINT: /* fallthrough */
|
case SPIDER_NET_GRFAFLLINT: /* fallthrough */
|
||||||
case SPIDER_NET_GRMFLLINT:
|
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 */
|
/* Could happen when rx chain is full */
|
||||||
spider_net_resync_head_ptr(card);
|
if (card->ignore_rx_ramfull == 0) {
|
||||||
spider_net_refill_rx_chain(card);
|
card->ignore_rx_ramfull = 1;
|
||||||
spider_net_enable_rxdmac(card);
|
spider_net_resync_head_ptr(card);
|
||||||
card->num_rx_ints ++;
|
spider_net_refill_rx_chain(card);
|
||||||
netif_rx_schedule(card->netdev);
|
spider_net_enable_rxdmac(card);
|
||||||
|
card->num_rx_ints ++;
|
||||||
|
netif_rx_schedule(card->netdev);
|
||||||
|
}
|
||||||
show_error = 0;
|
show_error = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -2265,6 +2266,7 @@ spider_net_setup_netdev(struct spider_net_card *card)
|
||||||
|
|
||||||
netdev->irq = card->pdev->irq;
|
netdev->irq = card->pdev->irq;
|
||||||
card->num_rx_ints = 0;
|
card->num_rx_ints = 0;
|
||||||
|
card->ignore_rx_ramfull = 0;
|
||||||
|
|
||||||
dn = pci_device_to_OF_node(card->pdev);
|
dn = pci_device_to_OF_node(card->pdev);
|
||||||
if (!dn)
|
if (!dn)
|
||||||
|
|
|
@ -462,6 +462,7 @@ struct spider_net_card {
|
||||||
atomic_t tx_timeout_task_counter;
|
atomic_t tx_timeout_task_counter;
|
||||||
wait_queue_head_t waitq;
|
wait_queue_head_t waitq;
|
||||||
int num_rx_ints;
|
int num_rx_ints;
|
||||||
|
int ignore_rx_ramfull;
|
||||||
|
|
||||||
/* for ethtool */
|
/* for ethtool */
|
||||||
int msg_enable;
|
int msg_enable;
|
||||||
|
|
Loading…
Reference in a new issue