diff options
author | Christoph Hellwig <[email protected]> | 2021-06-17 16:22:12 +0200 |
---|---|---|
committer | Alex Williamson <[email protected]> | 2021-06-21 15:29:24 -0600 |
commit | 45ddcb42949f825f0caa25352e825cede94b6aba (patch) | |
tree | bb4f4fb0bed56dda7e93aa113e10b1f8922e5175 /scripts/gdb/linux/tasks.py | |
parent | ef6dcbdd8eb2f44dce70a3abecc32d43cc5f3e64 (diff) |
driver core: Don't return EPROBE_DEFER to userspace during sysfs bind
EPROBE_DEFER is an internal kernel error code and it should not be leaked
to userspace via the bind_store() sysfs. Userspace doesn't have this
constant and cannot understand it.
Further, it doesn't really make sense to have userspace trigger a deferred
probe via bind_store(), which could eventually succeed, while
simultaneously returning an error back.
Resolve this by splitting driver_probe_device so that the version used
by the sysfs binding that turns EPROBE_DEFER into -EAGAIN, while the one
used for internally binding keeps the error code, and calls
driver_deferred_probe_add where needed. This also allows to nicely split
out the defer_all_probes / probe_count checks so that they actually allow
for full device_{block,unblock}_probing protection while not bothering
the sysfs bind case.
Signed-off-by: Christoph Hellwig <[email protected]>
Reviewed-by: Cornelia Huck <[email protected]>
Reviewed-by: Greg Kroah-Hartman <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Alex Williamson <[email protected]>
Diffstat (limited to 'scripts/gdb/linux/tasks.py')
0 files changed, 0 insertions, 0 deletions