diff options
author | Clark Williams <williams@redhat.com> | 2012-01-12 22:11:05 -0600 |
---|---|---|
committer | Clark Williams <williams@redhat.com> | 2012-01-12 22:11:05 -0600 |
commit | 937f5e333d0b05638126f651135d3b8fd6b43665 (patch) | |
tree | 8c85f620680aca1496b8914288bb38ce11c320fc /drivers/usb/class/cdc-acm.c | |
parent | d76fe430665fac3f44ee88958713ecc524fd778d (diff) | |
parent | b8ed9e5b8c34dc9fb1882669e45b21e3d0194881 (diff) |
Merge commit 'v3.2.1' into rt-3.2.1-rt9v3.2.1-rt9
Diffstat (limited to 'drivers/usb/class/cdc-acm.c')
-rw-r--r-- | drivers/usb/class/cdc-acm.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c index a8078d0638fa..e61d9c43e985 100644 --- a/drivers/usb/class/cdc-acm.c +++ b/drivers/usb/class/cdc-acm.c @@ -554,10 +554,18 @@ static void acm_port_down(struct acm *acm) static void acm_tty_hangup(struct tty_struct *tty) { - struct acm *acm = tty->driver_data; - tty_port_hangup(&acm->port); + struct acm *acm; + mutex_lock(&open_mutex); + acm = tty->driver_data; + + if (!acm) + goto out; + + tty_port_hangup(&acm->port); acm_port_down(acm); + +out: mutex_unlock(&open_mutex); } @@ -1183,6 +1191,8 @@ made_compressed_probe: i = device_create_file(&intf->dev, &dev_attr_wCountryCodes); if (i < 0) { kfree(acm->country_codes); + acm->country_codes = NULL; + acm->country_code_size = 0; goto skip_countries; } @@ -1191,6 +1201,8 @@ made_compressed_probe: if (i < 0) { device_remove_file(&intf->dev, &dev_attr_wCountryCodes); kfree(acm->country_codes); + acm->country_codes = NULL; + acm->country_code_size = 0; goto skip_countries; } } |