staging: comedi: usbduxfast: tidy up firmwareUpload()
authorH Hartley Sweeten <hsweeten@visionengravers.com>
Tue, 14 May 2013 20:39:34 +0000 (13:39 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 16 May 2013 23:24:29 +0000 (16:24 -0700)
Rename the CamelCase function and just pass the const struct
firmware * directly instead of parsing out the data and size.

Rename the CamelCasae local val 'fwBuf'.

Use goto to provide a common exit path that frees the local
buffer for the firmware when an error is encountered.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/comedi/drivers/usbduxfast.c

index 7c23b8e4eb90c2a2f0821fc3880eaa2224bd9ecf..6e13f203ae663900ed58e45f7c43f59a5e54b139 100644 (file)
@@ -1123,48 +1123,43 @@ static int usbduxfast_ai_insn_read(struct comedi_device *dev,
 
 #define FIRMWARE_MAX_LEN 0x2000
 
-static int firmwareUpload(struct comedi_device *dev,
-                         const u8 *firmwareBinary, int sizeFirmware)
+static int usbduxfast_upload_firmware(struct comedi_device *dev,
+                                     const struct firmware *fw)
 {
-       uint8_t *fwBuf;
+       uint8_t *buf;
        int ret;
 
-       if (!firmwareBinary)
+       if (!fw->data)
                return 0;
 
-       if (sizeFirmware > FIRMWARE_MAX_LEN) {
+       if (fw->size > FIRMWARE_MAX_LEN) {
                dev_err(dev->class_dev, "firmware binary too large for FX2\n");
                return -ENOMEM;
        }
 
        /* we generate a local buffer for the firmware */
-       fwBuf = kmemdup(firmwareBinary, sizeFirmware, GFP_KERNEL);
-       if (!fwBuf) {
-               dev_err(dev->class_dev, "mem alloc for firmware failed\n");
+       buf = kmemdup(fw->data, fw->size, GFP_KERNEL);
+       if (!buf)
                return -ENOMEM;
-       }
 
        ret = usbduxfastsub_stop(dev);
        if (ret < 0) {
                dev_err(dev->class_dev, "can not stop firmware\n");
-               kfree(fwBuf);
-               return ret;
+               goto done;
        }
 
-       ret = usbduxfastsub_upload(dev, fwBuf, 0, sizeFirmware);
+       ret = usbduxfastsub_upload(dev, buf, 0, fw->size);
        if (ret < 0) {
                dev_err(dev->class_dev, "firmware upload failed\n");
-               kfree(fwBuf);
-               return ret;
+               goto done;
        }
        ret = usbduxfastsub_start(dev);
-       if (ret < 0) {
+       if (ret < 0)
                dev_err(dev->class_dev, "can not start firmware\n");
-               kfree(fwBuf);
-               return ret;
-       }
-       kfree(fwBuf);
-       return 0;
+
+done:
+       kfree(buf);
+       return ret;
 }
 
 static int usbduxfast_attach_common(struct comedi_device *dev)
@@ -1211,7 +1206,7 @@ static int usbduxfast_request_firmware(struct comedi_device *dev)
        if (ret)
                return ret;
 
-       ret = firmwareUpload(dev, fw->data, fw->size);
+       ret = usbduxfast_upload_firmware(dev, fw);
        release_firmware(fw);
 
        return ret;