diff options
| -rw-r--r-- | drivers/base/firmware_class.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c index ddeb819c8f87..fc466531260e 100644 --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c | |||
| @@ -357,7 +357,7 @@ static void fw_dev_release(struct device *dev) | |||
| 357 | kfree(fw_priv->pages); | 357 | kfree(fw_priv->pages); |
| 358 | kfree(fw_priv->fw_id); | 358 | kfree(fw_priv->fw_id); |
| 359 | kfree(fw_priv); | 359 | kfree(fw_priv); |
| 360 | put_device(dev); | 360 | kfree(dev); |
| 361 | 361 | ||
| 362 | module_put(THIS_MODULE); | 362 | module_put(THIS_MODULE); |
| 363 | } | 363 | } |
| @@ -408,13 +408,11 @@ static int fw_register_device(struct device **dev_p, const char *fw_name, | |||
| 408 | if (retval) { | 408 | if (retval) { |
| 409 | dev_err(device, "%s: device_register failed\n", __func__); | 409 | dev_err(device, "%s: device_register failed\n", __func__); |
| 410 | put_device(f_dev); | 410 | put_device(f_dev); |
| 411 | goto error_kfree_fw_id; | 411 | return retval; |
| 412 | } | 412 | } |
| 413 | *dev_p = f_dev; | 413 | *dev_p = f_dev; |
| 414 | return 0; | 414 | return 0; |
| 415 | 415 | ||
| 416 | error_kfree_fw_id: | ||
| 417 | kfree(fw_priv->fw_id); | ||
| 418 | error_kfree: | 416 | error_kfree: |
| 419 | kfree(f_dev); | 417 | kfree(f_dev); |
| 420 | kfree(fw_priv); | 418 | kfree(fw_priv); |
