|
@@ -1038,11 +1038,10 @@ spider_net_decode_one_descr(struct spider_net_card *card, int napi)
|
|
|
|
|
|
if ( (status != SPIDER_NET_DESCR_COMPLETE) &&
|
|
if ( (status != SPIDER_NET_DESCR_COMPLETE) &&
|
|
(status != SPIDER_NET_DESCR_FRAME_END) ) {
|
|
(status != SPIDER_NET_DESCR_FRAME_END) ) {
|
|
- if (netif_msg_rx_err(card)) {
|
|
|
|
|
|
+ if (netif_msg_rx_err(card))
|
|
pr_err("%s: RX descriptor with state %d\n",
|
|
pr_err("%s: RX descriptor with state %d\n",
|
|
card->netdev->name, status);
|
|
card->netdev->name, status);
|
|
- card->spider_stats.rx_desc_unk_state++;
|
|
|
|
- }
|
|
|
|
|
|
+ card->spider_stats.rx_desc_unk_state++;
|
|
goto refill;
|
|
goto refill;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1361,7 +1360,7 @@ spider_net_handle_error_irq(struct spider_net_card *card, u32 status_reg)
|
|
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())
|
|
if (netif_msg_intr(card) && net_ratelimit())
|
|
- pr_debug("Spider RX RAM full, incoming packets "
|
|
|
|
|
|
+ pr_err("Spider RX RAM full, incoming packets "
|
|
"might be discarded!\n");
|
|
"might be discarded!\n");
|
|
spider_net_rx_irq_off(card);
|
|
spider_net_rx_irq_off(card);
|
|
tasklet_schedule(&card->rxram_full_tl);
|
|
tasklet_schedule(&card->rxram_full_tl);
|
|
@@ -1379,7 +1378,7 @@ spider_net_handle_error_irq(struct spider_net_card *card, u32 status_reg)
|
|
case SPIDER_NET_GDCDCEINT: /* fallthrough */
|
|
case SPIDER_NET_GDCDCEINT: /* fallthrough */
|
|
case SPIDER_NET_GDBDCEINT: /* fallthrough */
|
|
case SPIDER_NET_GDBDCEINT: /* fallthrough */
|
|
case SPIDER_NET_GDADCEINT:
|
|
case SPIDER_NET_GDADCEINT:
|
|
- if (netif_msg_intr(card))
|
|
|
|
|
|
+ if (netif_msg_intr(card) && net_ratelimit())
|
|
pr_err("got descriptor chain end interrupt, "
|
|
pr_err("got descriptor chain end interrupt, "
|
|
"restarting DMAC %c.\n",
|
|
"restarting DMAC %c.\n",
|
|
'D'-(i-SPIDER_NET_GDDDCEINT)/3);
|
|
'D'-(i-SPIDER_NET_GDDDCEINT)/3);
|
|
@@ -1450,7 +1449,7 @@ spider_net_handle_error_irq(struct spider_net_card *card, u32 status_reg)
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
- if ((show_error) && (netif_msg_intr(card)))
|
|
|
|
|
|
+ if ((show_error) && (netif_msg_intr(card)) && net_ratelimit())
|
|
pr_err("Got error interrupt on %s, GHIINT0STS = 0x%08x, "
|
|
pr_err("Got error interrupt on %s, GHIINT0STS = 0x%08x, "
|
|
"GHIINT1STS = 0x%08x, GHIINT2STS = 0x%08x\n",
|
|
"GHIINT1STS = 0x%08x, GHIINT2STS = 0x%08x\n",
|
|
card->netdev->name,
|
|
card->netdev->name,
|