[PATCH v2 0/2] driver core: bus: Fix issues related to bus_rescan_devices_helper()

From: Zijun Hu
Date: Thu Sep 12 2024 - 19:45:35 EST


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@xxxxxxxxxxx>
---
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@xxxxxxxxxxx

---
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@xxxxxxxxxxx>