Fix manual binding infinite loop
PATCH 1/1 Fix manual binding infinite loop
Fix for manual binding of drivers to devices. Problem is if you pass in a valid device id, but the driver refuses to bind. Infinite loop as write() tries to resubmit the data it just sent.
Thanks to Michal Ostrowski <[email protected]> for pointing the problem out.
Signed-off-by Greg Kroah-Hartman <[email protected]>
--- drivers/base/bus.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletion(-)
drivers/base/bus.c +3 -1
@@ -180,7 +180,9 @@ static ssize_t driver_bind(struct deviceup (&dev->sem);put_device (dev); } -return err; +if (err) +return err; +return count; } static DRIVER_ATTR(bind, S_IWUSR, NULL, driver_bind);