[SRU][J:linux-bluefield][PATCH v1 0/2] mlxbf_gige: call request_irq() after NAPI initialized

David Thompson davthompson at nvidia.com
Mon Apr 1 14:01:52 UTC 2024


BugLink: https://bugs.launchpad.net/bugs/2059310

SRU Justification:

[Impact]
The mlxbf_gige driver encounters a NULL pointer exception in
mlxbf_gige_open() when kdump is enabled. The exception happens
because there is a pending RX interrupt before the call to
request_irq(RX IRQ) executes. Then, the RX IRQ handler fires
immediately after this request_irq() completes. The RX IRQ handler
runs "napi_schedule()" before NAPI is fully initialized via
"netif_napi_add()" and "napi_enable()", both which happen later
in the open() logic.

[Fix]
The logic in mlxbf_gige_open() must fully initialize NAPI before
any calls to request_irq() execute.

[Test Case]
* Boot BF platform and bring up "oob_net0" interface
* Enable kdump completely
* Trigger kdump via "echo c > /proc/sysrq-trigger"
* There should be no exceptions from mlxbf_gige driver

[Regression Potential]
There is low potential for regression as this brings in upstream content.

[Other]
None

David Thompson (2):
  mlxbf_gige: stop PHY during open() error paths
  mlxbf_gige: call request_irq() after NAPI initialized

 .../mellanox/mlxbf_gige/mlxbf_gige_main.c     | 21 ++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

-- 
2.30.1




More information about the kernel-team mailing list