| From 1bf67abaa86c07c66651df01e7fd8bdc8938b0ff Mon Sep 17 00:00:00 2001 |
| From: Julia Lawall <julia@diku.dk> |
| Date: Tue, 9 Aug 2011 11:10:56 -0400 |
| Subject: [PATCH] hwmon: (ibmaem) add missing kfree |
| |
| commit 66a89b2164e2d30661edbd1953eacf0594d8203a upstream. |
| |
| rs_resp is dynamically allocated in aem_read_sensor(), so it should be freed |
| before exiting in every case. This collects the kfree and the return at |
| the end of the function. |
| |
| Signed-off-by: Julia Lawall <julia@diku.dk> |
| Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| --- |
| drivers/hwmon/ibmaem.c | 15 ++++++++++----- |
| 1 file changed, 10 insertions(+), 5 deletions(-) |
| |
| diff --git a/drivers/hwmon/ibmaem.c b/drivers/hwmon/ibmaem.c |
| index eaee546..fd4dbef 100644 |
| --- a/drivers/hwmon/ibmaem.c |
| +++ b/drivers/hwmon/ibmaem.c |
| @@ -430,13 +430,15 @@ static int aem_read_sensor(struct aem_data *data, u8 elt, u8 reg, |
| aem_send_message(ipmi); |
| |
| res = wait_for_completion_timeout(&ipmi->read_complete, IPMI_TIMEOUT); |
| - if (!res) |
| - return -ETIMEDOUT; |
| + if (!res) { |
| + res = -ETIMEDOUT; |
| + goto out; |
| + } |
| |
| if (ipmi->rx_result || ipmi->rx_msg_len != rs_size || |
| memcmp(&rs_resp->id, &system_x_id, sizeof(system_x_id))) { |
| - kfree(rs_resp); |
| - return -ENOENT; |
| + res = -ENOENT; |
| + goto out; |
| } |
| |
| switch (size) { |
| @@ -461,8 +463,11 @@ static int aem_read_sensor(struct aem_data *data, u8 elt, u8 reg, |
| break; |
| } |
| } |
| + res = 0; |
| |
| - return 0; |
| +out: |
| + kfree(rs_resp); |
| + return res; |
| } |
| |
| /* Update AEM energy registers */ |
| -- |
| 1.7.9.6 |
| |