OSDN Git Service

bnx2x: fix page fault following EEH recovery
authorDavid Christensen <drc@linux.vnet.ibm.com>
Thu, 8 Jun 2023 20:01:43 +0000 (16:01 -0400)
committerDavid S. Miller <davem@davemloft.net>
Sat, 10 Jun 2023 19:07:10 +0000 (20:07 +0100)
commit7ebe4eda4265642859507d1b3ca330d8c196cfe5
tree5fc44582b2463847d6638d62a9dd0825c01d5d64
parent65d8bd81aa15c36d9703f4393651d10edf1f030c
bnx2x: fix page fault following EEH recovery

In the last step of the EEH recovery process, the EEH driver calls into
bnx2x_io_resume() to re-initialize the NIC hardware via the function
bnx2x_nic_load().  If an error occurs during bnx2x_nic_load(), OS and
hardware resources are released and an error code is returned to the
caller.  When called from bnx2x_io_resume(), the return code is ignored
and the network interface is brought up unconditionally.  Later attempts
to send a packet via this interface result in a page fault due to a null
pointer reference.

This patch checks the return code of bnx2x_nic_load(), prints an error
message if necessary, and does not enable the interface.

Signed-off-by: David Christensen <drc@linux.vnet.ibm.com>
Reviewed-by: Sridhar Samudrala <sridhar.samudrala@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c