wil6210: Fix kernel oops in reset flow

wil_reset() removes vring's
At the same time NAPI may be active performing Rx/Tx completion.
If this happens, Rx/Tx polling functions going to access already removed vrings

Make sure NAPI is idle and won't be started prior to vring removal.
For this, track NAPI enabled state

Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Šī revīzija ir iekļauta:
Vladimir Kondratiev
2014-03-17 15:34:18 +02:00
revīziju iesūtīja John W. Linville
vecāks 8bf6adb988
revīzija 0fef1818d0
3 mainīti faili ar 21 papildinājumiem un 4 dzēšanām

Parādīt failu

@@ -249,6 +249,7 @@ enum { /* for wil6210_priv.status */
wil_status_dontscan,
wil_status_reset_done,
wil_status_irqen, /* FIXME: interrupts enabled - for debug */
wil_status_napi_en, /* NAPI enabled protected by wil->mutex */
};
struct pci_dev;