diff options
author | Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com> | 2009-06-25 15:41:30 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-25 20:24:26 +0200 |
commit | 922b13565b6a826a925f9f91f053dc9cb0d6210e (patch) | |
tree | 4c5680f084b62afd5d0f2e6247fd500277610c65 /drivers/usb/class | |
parent | acm: Return ENODEV instead of EINVAL when trying to open ACM device. (diff) | |
download | linux-922b13565b6a826a925f9f91f053dc9cb0d6210e.tar.xz linux-922b13565b6a826a925f9f91f053dc9cb0d6210e.zip |
acm: Fix oops when closing ACM tty device right after open has failed.
This commit 10077d4a6674f535abdbe25cdecb1202af7948f1 has stopped
checking if there was a valid acm device associated to the tty, which is
not true right after open fails and tty subsystem tries to close the
device.
As an example, open fails with a non-existing device, when probe has
never been called, because the device has never been plugged. This is
common in systems with static modules and no udev.
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/usb/class')
-rw-r--r-- | drivers/usb/class/cdc-acm.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index 02eb60bb6795..3f1045993474 100644 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c @@ -677,7 +677,7 @@ static void acm_tty_close(struct tty_struct *tty, struct file *filp) /* Perform the closing process and see if we need to do the hardware shutdown */ - if (tty_port_close_start(&acm->port, tty, filp) == 0) + if (!acm || tty_port_close_start(&acm->port, tty, filp) == 0) return; acm_port_down(acm, 0); tty_port_close_end(&acm->port, tty); |