Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

USB: fix transvibrator disconnect race

in disconnect you set the interface's private data to NULL. In your IO
methods you unconditionally follow the pointer into never never land.

Signed-off-by: Oliver Neukum <oliver@neukum.name>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

authored by

Oliver Neukum and committed by
Greg Kroah-Hartman
96ca014d 6a7255e1

+1 -1
+1 -1
drivers/usb/misc/trancevibrator.c
··· 120 120 struct trancevibrator *dev; 121 121 122 122 dev = usb_get_intfdata (interface); 123 - usb_set_intfdata(interface, NULL); 124 123 device_remove_file(&interface->dev, &dev_attr_speed); 124 + usb_set_intfdata(interface, NULL); 125 125 usb_put_dev(dev->udev); 126 126 kfree(dev); 127 127 }