]> www.infradead.org Git - users/jedix/linux-maple.git/commit
bnxt_en: Don't cancel sp_task from bnxt_close_nic().
authorMichael Chan <mchan@broadcom.com>
Thu, 10 Dec 2015 00:35:43 +0000 (19:35 -0500)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 7 Jul 2016 00:36:36 +0000 (17:36 -0700)
commit50462f5927c5606985173688742d8cde7dae4750
tree29723ab070260712db746f051ddd6fbff807fc69
parentd1fc4ac9ef7687cf3425131d3ac60e9d1dde6e53
bnxt_en: Don't cancel sp_task from bnxt_close_nic().

Orabug: 23221795

When implementing driver reset from tx_timeout in the next patch,
bnxt_close_nic() will be called from the sp_task workqueue.  Calling
cancel_work() on sp_task will hang the workqueue.

Instead, set a new bit BNXT_STATE_IN_SP_TASK when bnxt_sp_task() is running.
bnxt_close_nic() will wait for BNXT_STATE_IN_SP_TASK to clear before
proceeding.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 4cebdcec0933bf39c0ab42e8ce8c9d72f803fbe9)
Signed-off-by: Brian Maly <brian.maly@oracle.com>
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt.h