r8169: RX fifo overflow recovery
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com> Signed-off-by: Adrian Bunk <bunk@stusta.de>
This commit is contained in:
committed by
Adrian Bunk
parent
5871db7738
commit
0263245a8c
+9
-4
@@ -256,10 +256,11 @@ enum RTL8169_register_content {
|
||||
RxOK = 0x01,
|
||||
|
||||
/* RxStatusDesc */
|
||||
RxRES = 0x00200000,
|
||||
RxCRC = 0x00080000,
|
||||
RxRUNT = 0x00100000,
|
||||
RxRWT = 0x00400000,
|
||||
RxFOVF = (1 << 23),
|
||||
RxRWT = (1 << 22),
|
||||
RxRES = (1 << 21),
|
||||
RxRUNT = (1 << 20),
|
||||
RxCRC = (1 << 19),
|
||||
|
||||
/* ChipCmdBits */
|
||||
CmdReset = 0x10,
|
||||
@@ -2435,6 +2436,10 @@ rtl8169_rx_interrupt(struct net_device *dev, struct rtl8169_private *tp,
|
||||
tp->stats.rx_length_errors++;
|
||||
if (status & RxCRC)
|
||||
tp->stats.rx_crc_errors++;
|
||||
if (status & RxFOVF) {
|
||||
rtl8169_schedule_work(dev, rtl8169_reset_task);
|
||||
tp->stats.rx_fifo_errors++;
|
||||
}
|
||||
rtl8169_mark_to_asic(desc, tp->rx_buf_sz);
|
||||
} else {
|
||||
struct sk_buff *skb = tp->Rx_skbuff[entry];
|
||||
|
||||
Reference in New Issue
Block a user