diff options
author | yongari <yongari@FreeBSD.org> | 2009-02-13 02:08:20 +0000 |
---|---|---|
committer | yongari <yongari@FreeBSD.org> | 2009-02-13 02:08:20 +0000 |
commit | a018b9ee88c6503bd4e5e0622babb64a7d658cba (patch) | |
tree | c7a9be90c792fecabc234c7291f13174baad1866 /sys/dev/sis | |
parent | d59038e2abac98116b036b57ee2fc801fa698247 (diff) | |
download | FreeBSD-src-a018b9ee88c6503bd4e5e0622babb64a7d658cba.zip FreeBSD-src-a018b9ee88c6503bd4e5e0622babb64a7d658cba.tar.gz |
Receving VLAN oversized frames raise SIS_ISR_RX_ERR interrupt, so
make sis_rxeof() handle that too. Previously it used to receive the
frame and reset controller.
PR: kern/131414
Diffstat (limited to 'sys/dev/sis')
-rw-r--r-- | sys/dev/sis/if_sis.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/dev/sis/if_sis.c b/sys/dev/sis/if_sis.c index fd6e201..78b6149 100644 --- a/sys/dev/sis/if_sis.c +++ b/sys/dev/sis/if_sis.c @@ -1663,10 +1663,11 @@ sis_intr(void *arg) SIS_ISR_TX_OK | SIS_ISR_TX_IDLE) ) sis_txeof(sc); - if (status & (SIS_ISR_RX_DESC_OK|SIS_ISR_RX_OK|SIS_ISR_RX_IDLE)) + if (status & (SIS_ISR_RX_DESC_OK | SIS_ISR_RX_OK | + SIS_ISR_RX_ERR | SIS_ISR_RX_IDLE)) sis_rxeof(sc); - if (status & (SIS_ISR_RX_ERR | SIS_ISR_RX_OFLOW)) + if (status & SIS_ISR_RX_OFLOW) sis_rxeoc(sc); if (status & (SIS_ISR_RX_IDLE)) |