sky2: receive FIFO checking
A driver writer from another operating system hinted that the versions of Yukon 2 chip with rambuffer (EC and XL) have a hardware bug that if the FIFO ever gets completely full it will hang. Sounds like a classic ring full vs ring empty wrap around bug. As a workaround, use the existing watchdog timer to check for ring full lockup. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:

committed by
Jeff Garzik

parent
05745c4ab1
commit
75e806838a
@@ -2027,6 +2027,14 @@ struct sky2_port {
|
||||
u16 rx_tag;
|
||||
struct vlan_group *vlgrp;
|
||||
#endif
|
||||
struct {
|
||||
unsigned long last;
|
||||
u32 mac_rp;
|
||||
u8 mac_lev;
|
||||
u8 fifo_rp;
|
||||
u8 fifo_lev;
|
||||
} check;
|
||||
|
||||
|
||||
dma_addr_t rx_le_map;
|
||||
dma_addr_t tx_le_map;
|
||||
@@ -2064,7 +2072,6 @@ struct sky2_hw {
|
||||
u8 chip_rev;
|
||||
u8 pmd_type;
|
||||
u8 ports;
|
||||
u8 active;
|
||||
|
||||
struct sky2_status_le *st_le;
|
||||
u32 st_idx;
|
||||
|
Reference in New Issue
Block a user