Commit 9dccf611 authored by Francois Romieu's avatar Francois Romieu Committed by Francois Romieu

r8169: RX fifo overflow recovery

Signed-off-by: default avatarFrancois Romieu <romieu@fr.zoreil.com>
parent a2b98a69
...@@ -257,10 +257,11 @@ enum RTL8169_register_content { ...@@ -257,10 +257,11 @@ enum RTL8169_register_content {
RxOK = 0x01, RxOK = 0x01,
/* RxStatusDesc */ /* RxStatusDesc */
RxRES = 0x00200000, RxFOVF = (1 << 23),
RxCRC = 0x00080000, RxRWT = (1 << 22),
RxRUNT = 0x00100000, RxRES = (1 << 21),
RxRWT = 0x00400000, RxRUNT = (1 << 20),
RxCRC = (1 << 19),
/* ChipCmdBits */ /* ChipCmdBits */
CmdReset = 0x10, CmdReset = 0x10,
...@@ -2465,6 +2466,10 @@ rtl8169_rx_interrupt(struct net_device *dev, struct rtl8169_private *tp, ...@@ -2465,6 +2466,10 @@ rtl8169_rx_interrupt(struct net_device *dev, struct rtl8169_private *tp,
tp->stats.rx_length_errors++; tp->stats.rx_length_errors++;
if (status & RxCRC) if (status & RxCRC)
tp->stats.rx_crc_errors++; 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); rtl8169_mark_to_asic(desc, tp->rx_buf_sz);
} else { } else {
struct sk_buff *skb = tp->Rx_skbuff[entry]; struct sk_buff *skb = tp->Rx_skbuff[entry];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment