From foo@baz Tue Apr 9 12:12:43 2002 Date: Mon, 28 Aug 2006 11:43:25 -0700 To: Greg KH From: Greg Kroah-Hartman Subject: USB: fix __must_check warnings in drivers/usb/misc/ Signed-off-by: Greg Kroah-Hartman --- drivers/usb/misc/cypress_cy7c63.c | 19 +++++++++++++++---- drivers/usb/misc/cytherm.c | 35 ++++++++++++++++++++++++++--------- drivers/usb/misc/usbled.c | 20 ++++++++++++++++---- 3 files changed, 57 insertions(+), 17 deletions(-) --- gregkh-2.6.orig/drivers/usb/misc/cypress_cy7c63.c +++ gregkh-2.6/drivers/usb/misc/cypress_cy7c63.c @@ -209,7 +209,7 @@ static int cypress_probe(struct usb_inte dev = kzalloc(sizeof(*dev), GFP_KERNEL); if (dev == NULL) { dev_err(&interface->dev, "Out of memory!\n"); - goto error; + goto error_mem; } dev->udev = usb_get_dev(interface_to_usbdev(interface)); @@ -218,15 +218,26 @@ static int cypress_probe(struct usb_inte usb_set_intfdata(interface, dev); /* create device attribute files */ - device_create_file(&interface->dev, &dev_attr_port0); - device_create_file(&interface->dev, &dev_attr_port1); + retval = device_create_file(&interface->dev, &dev_attr_port0); + if (retval) + goto error; + retval = device_create_file(&interface->dev, &dev_attr_port1); + if (retval) + goto error; /* let the user know that the device is now attached */ dev_info(&interface->dev, "Cypress CY7C63xxx device now attached\n"); + return 0; - retval = 0; error: + device_remove_file(&interface->dev, &dev_attr_port0); + device_remove_file(&interface->dev, &dev_attr_port1); + usb_set_intfdata(interface, NULL); + usb_put_dev(dev->udev); + kfree(dev); + +error_mem: return retval; } --- gregkh-2.6.orig/drivers/usb/misc/cytherm.c +++ gregkh-2.6/drivers/usb/misc/cytherm.c @@ -353,7 +353,7 @@ static int cytherm_probe(struct usb_inte dev = kzalloc (sizeof(struct usb_cytherm), GFP_KERNEL); if (dev == NULL) { dev_err (&interface->dev, "Out of memory\n"); - goto error; + goto error_mem; } dev->udev = usb_get_dev(udev); @@ -362,18 +362,35 @@ static int cytherm_probe(struct usb_inte dev->brightness = 0xFF; - device_create_file(&interface->dev, &dev_attr_brightness); - device_create_file(&interface->dev, &dev_attr_temp); - device_create_file(&interface->dev, &dev_attr_button); - device_create_file(&interface->dev, &dev_attr_port0); - device_create_file(&interface->dev, &dev_attr_port1); + retval = device_create_file(&interface->dev, &dev_attr_brightness); + if (retval) + goto error; + retval = device_create_file(&interface->dev, &dev_attr_temp); + if (retval) + goto error; + retval = device_create_file(&interface->dev, &dev_attr_button); + if (retval) + goto error; + retval = device_create_file(&interface->dev, &dev_attr_port0); + if (retval) + goto error; + retval = device_create_file(&interface->dev, &dev_attr_port1); + if (retval) + goto error; - dev_info (&interface->dev, + dev_info (&interface->dev, "Cypress thermometer device now attached\n"); return 0; - - error: +error: + device_remove_file(&interface->dev, &dev_attr_brightness); + device_remove_file(&interface->dev, &dev_attr_temp); + device_remove_file(&interface->dev, &dev_attr_button); + device_remove_file(&interface->dev, &dev_attr_port0); + device_remove_file(&interface->dev, &dev_attr_port1); + usb_set_intfdata (interface, NULL); + usb_put_dev(dev->udev); kfree(dev); +error_mem: return retval; } --- gregkh-2.6.orig/drivers/usb/misc/usbled.c +++ gregkh-2.6/drivers/usb/misc/usbled.c @@ -108,22 +108,34 @@ static int led_probe(struct usb_interfac dev = kzalloc(sizeof(struct usb_led), GFP_KERNEL); if (dev == NULL) { dev_err(&interface->dev, "Out of memory\n"); - goto error; + goto error_mem; } dev->udev = usb_get_dev(udev); usb_set_intfdata (interface, dev); - device_create_file(&interface->dev, &dev_attr_blue); - device_create_file(&interface->dev, &dev_attr_red); - device_create_file(&interface->dev, &dev_attr_green); + retval = device_create_file(&interface->dev, &dev_attr_blue); + if (retval) + goto error; + retval = device_create_file(&interface->dev, &dev_attr_red); + if (retval) + goto error; + retval = device_create_file(&interface->dev, &dev_attr_green); + if (retval) + goto error; dev_info(&interface->dev, "USB LED device now attached\n"); return 0; error: + device_remove_file(&interface->dev, &dev_attr_blue); + device_remove_file(&interface->dev, &dev_attr_red); + device_remove_file(&interface->dev, &dev_attr_green); + usb_set_intfdata (interface, NULL); + usb_put_dev(dev->udev); kfree(dev); +error_mem: return retval; }