This patch series is to fix issues related to bus_rescan_devices_helper().
The function is improperly used for 2 incompatible scenarios as
explained below:
Scenario A: scan drivers for a single device user specify
- user may care about precise synchronous scanning result, so the
function can not collapse error codes.
Scenario B: scan drivers for all devices of a bus
- user may need to scan drivers for a bus's devices as many as
possible, so the function needs to ignore inconsequential error
codes for a device in order to continue to scan for next device.
Fixed by implementing bus_rescan_single_device() for scenario A
and correcting the function for scenario B.
Signed-off-by: Zijun Hu <quic_zijuhu@quicinc.com>
---
Changes in v2:
- Temporarily drop the change related to bus_type's match() return value
- For this 1/2 change, transfer internal -EPROBE_DEFER to user known
-EAGAIN, correct title, commit message, inline comments.
- For this 2/2 change, Add an extra -EBUSY to ignore, correct title
commit message, inline comments.
- Link to v1: https://lore.kernel.org/r/20240904-bus_match_unlikely-v1-0-122318285261@quicinc.com
---
Zijun Hu (2):
driver core: bus: Fix drivers_probe_store() giving user wrong scanning result
driver core: bus: Correct API bus_rescan_devices() behavior
drivers/base/bus.c | 78 ++++++++++++++++++++++++++++++++++++++++++++----------
1 file changed, 64 insertions(+), 14 deletions(-)
---
base-commit: fea64fa04c31426eae512751e0c5342345c5741c
change-id: 20240830-bus_match_unlikely-abe9334bcfd2
Best regards,
--
Zijun Hu <quic_zijuhu@quicinc.com>