mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 11:46:19 +00:00
r8169: RX fifo overflow recovery
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
This commit is contained in:
parent
a2b98a697f
commit
9dccf61112
1 changed files with 9 additions and 4 deletions
|
@ -257,10 +257,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,
|
||||
|
@ -2465,6 +2466,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];
|
||||
|
|
Loading…
Reference in a new issue