diff options
author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-07-27 11:25:57 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-07-27 11:25:57 -0400 |
commit | 50cb993ea6cd187bfed085cb3e0747066edeb02f (patch) | |
tree | 61edac62c6c5bc07c59e4369c50c6821ad77f2c0 /drivers/usb/serial/ipaq.c | |
parent | 445c2714cf72817ab1ad3ca894c6d9b2047b3a3e (diff) | |
parent | 8be1a6d6c77ab4532e4476fdb8177030ef48b52c (diff) |
Merge ../linux-2.6
Diffstat (limited to 'drivers/usb/serial/ipaq.c')
-rw-r--r-- | drivers/usb/serial/ipaq.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/usb/serial/ipaq.c b/drivers/usb/serial/ipaq.c index 832a5a4f3cb3..cd9a2e138c8b 100644 --- a/drivers/usb/serial/ipaq.c +++ b/drivers/usb/serial/ipaq.c | |||
@@ -651,15 +651,17 @@ static int ipaq_open(struct tty_struct *tty, | |||
651 | */ | 651 | */ |
652 | 652 | ||
653 | kfree(port->bulk_in_buffer); | 653 | kfree(port->bulk_in_buffer); |
654 | kfree(port->bulk_out_buffer); | ||
655 | /* make sure the generic serial code knows */ | ||
656 | port->bulk_out_buffer = NULL; | ||
657 | |||
654 | port->bulk_in_buffer = kmalloc(URBDATA_SIZE, GFP_KERNEL); | 658 | port->bulk_in_buffer = kmalloc(URBDATA_SIZE, GFP_KERNEL); |
655 | if (port->bulk_in_buffer == NULL) { | 659 | if (port->bulk_in_buffer == NULL) |
656 | port->bulk_out_buffer = NULL; /* prevent double free */ | ||
657 | goto enomem; | 660 | goto enomem; |
658 | } | ||
659 | 661 | ||
660 | kfree(port->bulk_out_buffer); | ||
661 | port->bulk_out_buffer = kmalloc(URBDATA_SIZE, GFP_KERNEL); | 662 | port->bulk_out_buffer = kmalloc(URBDATA_SIZE, GFP_KERNEL); |
662 | if (port->bulk_out_buffer == NULL) { | 663 | if (port->bulk_out_buffer == NULL) { |
664 | /* the buffer is useless, free it */ | ||
663 | kfree(port->bulk_in_buffer); | 665 | kfree(port->bulk_in_buffer); |
664 | port->bulk_in_buffer = NULL; | 666 | port->bulk_in_buffer = NULL; |
665 | goto enomem; | 667 | goto enomem; |