Fix one cause of firewire panics.
sys/dev/firewire/firewire.c: In fw_xfer_unload(), clear the FWXF_INQ flag on the xfer under protection of the FW_GMTX, after the xfer is removeed from the tx/rx queue. Otherwise it is possible for the xfer to be removed again (corrupting the list or immediately panicing) from another thread that has found this xfer in the transaction label table. Submitted by: gibbs MFC after: 1 week Sponsored by: Spectra Logic MFSpectraBSD: 1110200 on 2015/01/02
This commit is contained in:
parent
2f2052508e
commit
142c5758be
@ -1166,6 +1166,7 @@ fw_xfer_unload(struct fw_xfer *xfer)
|
||||
s = splfw();
|
||||
FW_GLOCK(xfer->fc);
|
||||
STAILQ_REMOVE(&xfer->q->q, xfer, fw_xfer, link);
|
||||
xfer->flag &= ~FWXF_INQ;
|
||||
#if 0
|
||||
xfer->q->queued--;
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user