gpio-mlxbf3: During reboot test, ipmb driver fails to load intermittently
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux-bluefield (Ubuntu) |
New
|
Undecided
|
Unassigned | ||
Jammy |
Fix Committed
|
Undecided
|
Unassigned |
Bug Description
SRU Justification:
[Impact]
The ipmb driver failing to load is just the result of i2c-mlxbf
not receiving interrupts.
In fact, any driver dependent on the i2c-mlxbf driver will not work.
How to reproduce this issue?
- modprobe gpio-mlxbf3
- modprobe pwr-mlxbf
- modprobe mlxbf-gige -> this calls into the gpio driver which enables the PHY interrupt (gpio10)
- reboot linux
-> graceful reboot does not remove modules so it doesn't disable the PHY interrupt via
- In anolis, we don't enforce the dependency between gpio-mlxbf3 and mlxbf-gige.
So the next time linux boots and loads the driver in this order, we encounter the issue:
- modprobe mlxbf-gige. The gige driver uses polling in the case where it loads before the gpio
driver. Note that the interrupt at GPIO10 is still enabled at this point so if the interrupt
triggers, there is nothing to clear it.
- modprobe gpio-mlxbf3
- modprobe i2c-mlxbf. The interrupt wouldn't work here because it is shared with the gpio
interrupts which was not cleared.
[Fix]
* The solution is to add a shutdown function to the gpio driver to clear and disable all interrupts.
* Also make sure to clear the interrupt after disabling it in the disable irq function.
[Test Case]
* Do the reboot test (2000-3000 iterations)
* Check that all following drivers are loaded without errors: gpio-mlxbf3, pwr_mlxbf, mlxbf-gige, i2c-mlxbf
* check that the ipmb drivers are loaded and functional (send ipmb command to the bmc and vice versa)
[Regression Potential]
* No known regression.
summary: |
- During reboot test, ipmb driver fails to load intermittently + gpio-mlxbf3: During reboot test, ipmb driver fails to load + intermittently |
Changed in linux-bluefield (Ubuntu Jammy): | |
status: | New → Fix Committed |
tags: | added: verification-done-jammy-linux-bluefield |
tags: | removed: verification-needed-jammy-linux-bluefield |
This bug is awaiting verification that the linux-bluefield /5.15.0- 1044.46 kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification- needed- jammy-linux- bluefield' to 'verification- done-jammy- linux-bluefield '. If the problem still exists, change the tag 'verification- needed- jammy-linux- bluefield' to 'verification- failed- jammy-linux- bluefield' .
If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.
See https:/ /wiki.ubuntu. com/Testing/ EnableProposed for documentation how to enable and use -proposed. Thank you!