bnxt_en: Disable interrupts when allocating CP rings or NQs.
commit62c2a5b857f2f250d561a81f941dacf896688c4d
authorMichael Chan <michael.chan@broadcom.com>
Thu, 31 Jan 2019 19:31:48 +0000 (31 14:31 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 12 Feb 2019 19:02:34 +0000 (12 20:02 +0100)
tree39d7b7eef595846550b65fb53b8b4df2f0f2e947
parent95880f9fc0d91852104251eecf7d022363c332f3
bnxt_en: Disable interrupts when allocating CP rings or NQs.

[ Upstream commit 5e66e35aab335b83d9ffb220d8a3a13986a7a60e ]

When calling firmware to allocate a CP ring or NQ, an interrupt associated
with that ring may be generated immediately before the doorbell is even
setup after the firmware call returns.  When servicing the interrupt, the
driver may crash when trying to access the doorbell.

Fix it by disabling interrupt on that vector until the doorbell is
set up.

Fixes: 697197e5a173 ("bnxt_en: Re-structure doorbells.")
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/broadcom/bnxt/bnxt.c