Revert r205090.
It's hard to know when the mail box register write will get flushed to the hardware and it may take longer. Pointed out by: scottl
This commit is contained in:
parent
a311ca2f45
commit
f584dfd113
@ -3653,22 +3653,6 @@ bge_intr(void *xsc)
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Do the mandatory PCI flush as well as get the link status.
|
||||
*/
|
||||
statusword = CSR_READ_4(sc, BGE_MAC_STS) & BGE_MACSTAT_LINK_CHANGED;
|
||||
|
||||
/* Make sure the descriptor ring indexes are coherent. */
|
||||
bus_dmamap_sync(sc->bge_cdata.bge_status_tag,
|
||||
sc->bge_cdata.bge_status_map,
|
||||
BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE);
|
||||
rx_prod = sc->bge_ldata.bge_status_block->bge_idx[0].bge_rx_prod_idx;
|
||||
tx_cons = sc->bge_ldata.bge_status_block->bge_idx[0].bge_tx_cons_idx;
|
||||
sc->bge_ldata.bge_status_block->bge_status = 0;
|
||||
bus_dmamap_sync(sc->bge_cdata.bge_status_tag,
|
||||
sc->bge_cdata.bge_status_map,
|
||||
BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE);
|
||||
|
||||
/*
|
||||
* Ack the interrupt by writing something to BGE_MBX_IRQ0_LO. Don't
|
||||
* disable interrupts by writing nonzero like we used to, since with
|
||||
@ -3691,6 +3675,22 @@ bge_intr(void *xsc)
|
||||
*/
|
||||
bge_writembx(sc, BGE_MBX_IRQ0_LO, 0);
|
||||
|
||||
/*
|
||||
* Do the mandatory PCI flush as well as get the link status.
|
||||
*/
|
||||
statusword = CSR_READ_4(sc, BGE_MAC_STS) & BGE_MACSTAT_LINK_CHANGED;
|
||||
|
||||
/* Make sure the descriptor ring indexes are coherent. */
|
||||
bus_dmamap_sync(sc->bge_cdata.bge_status_tag,
|
||||
sc->bge_cdata.bge_status_map,
|
||||
BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE);
|
||||
rx_prod = sc->bge_ldata.bge_status_block->bge_idx[0].bge_rx_prod_idx;
|
||||
tx_cons = sc->bge_ldata.bge_status_block->bge_idx[0].bge_tx_cons_idx;
|
||||
sc->bge_ldata.bge_status_block->bge_status = 0;
|
||||
bus_dmamap_sync(sc->bge_cdata.bge_status_tag,
|
||||
sc->bge_cdata.bge_status_map,
|
||||
BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE);
|
||||
|
||||
if ((sc->bge_asicrev == BGE_ASICREV_BCM5700 &&
|
||||
sc->bge_chipid != BGE_CHIPID_BCM5700_B2) ||
|
||||
statusword || sc->bge_link_evt)
|
||||
|
Loading…
Reference in New Issue
Block a user