aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/serial/ipaq.c
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2008-07-27 11:25:57 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-07-27 11:25:57 -0400
commit50cb993ea6cd187bfed085cb3e0747066edeb02f (patch)
tree61edac62c6c5bc07c59e4369c50c6821ad77f2c0 /drivers/usb/serial/ipaq.c
parent445c2714cf72817ab1ad3ca894c6d9b2047b3a3e (diff)
parent8be1a6d6c77ab4532e4476fdb8177030ef48b52c (diff)
Merge ../linux-2.6
Diffstat (limited to 'drivers/usb/serial/ipaq.c')
-rw-r--r--drivers/usb/serial/ipaq.c10
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;