ionic: disable napi when ionic_lif_init() fails
When the driver is going through reset, it will eventually call ionic_lif_init(), which does a lot of re-initialization. One of the re-initialization steps is to setup the adminq and enable napi for it. If something breaks after this point we can end up with a kernel NULL pointer dereference through ionic_adminq_napi. Fix this by making sure to call napi_disable() in the cleanup path of ionic_lif_init(). This forces any pending napi contexts to finish and prevents them from being recalled before deleting the napi context. Fixes: 77ceb68e29cc ("ionic: Add notifyq support") Signed-off-by: Brett Creeley <brett@pensando.io> Signed-off-by: Shannon Nelson <snelson@pensando.io> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
238a0f7c2c
commit
43cfed71bd
@ -3266,6 +3266,7 @@ int ionic_lif_init(struct ionic_lif *lif)
|
||||
return 0;
|
||||
|
||||
err_out_notifyq_deinit:
|
||||
napi_disable(&lif->adminqcq->napi);
|
||||
ionic_lif_qcq_deinit(lif, lif->notifyqcq);
|
||||
err_out_adminq_deinit:
|
||||
ionic_lif_qcq_deinit(lif, lif->adminqcq);
|
||||
|
Loading…
x
Reference in New Issue
Block a user