* [PATCH] HID: hid-sensor-hub: use devm_ functions consistently
@ 2014-08-02 22:11 Himangi Saraogi
2014-08-02 23:55 ` Srinivas Pandruvada
0 siblings, 1 reply; 4+ messages in thread
From: Himangi Saraogi @ 2014-08-02 22:11 UTC (permalink / raw)
To: Jiri Kosina, Srinivas Pandruvada, Andy Shevchenko, Archana Patni,
Jonathan Cameron, linux-kernel
Cc: Julia Lawall
Use devm_kzalloc for all calls to kzalloc and not just the first. Use
devm functions for other allocations as well. The calls to free the
allocated memory in the probe and remove functions are done away with
and a label is removed in the probe function.
The semantic match that finds the inconsistency is as follows:
// <smpl>
@@
@@
*devm_kzalloc(...)
...
*kzalloc(...)
// </smpl>
Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
---
drivers/hid/hid-sensor-hub.c | 33 +++++++++++----------------------
1 file changed, 11 insertions(+), 22 deletions(-)
diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
index e244e44..2ac2576 100644
--- a/drivers/hid/hid-sensor-hub.c
+++ b/drivers/hid/hid-sensor-hub.c
@@ -604,9 +604,9 @@ static int sensor_hub_probe(struct hid_device *hdev,
ret = -EINVAL;
goto err_stop_hw;
}
- sd->hid_sensor_hub_client_devs = kzalloc(dev_cnt *
- sizeof(struct mfd_cell),
- GFP_KERNEL);
+ sd->hid_sensor_hub_client_devs = devm_kzalloc(&hdev->dev, dev_cnt *
+ sizeof(struct mfd_cell),
+ GFP_KERNEL);
if (sd->hid_sensor_hub_client_devs == NULL) {
hid_err(hdev, "Failed to allocate memory for mfd cells\n");
ret = -ENOMEM;
@@ -618,11 +618,12 @@ static int sensor_hub_probe(struct hid_device *hdev,
if (collection->type == HID_COLLECTION_PHYSICAL) {
- hsdev = kzalloc(sizeof(*hsdev), GFP_KERNEL);
+ hsdev = devm_kzalloc(&hdev->dev, sizeof(*hsdev),
+ GFP_KERNEL);
if (!hsdev) {
hid_err(hdev, "cannot allocate hid_sensor_hub_device\n");
ret = -ENOMEM;
- goto err_no_mem;
+ goto err_stop_hw;
}
hsdev->hdev = hdev;
hsdev->vendor_id = hdev->vendor;
@@ -631,13 +632,13 @@ static int sensor_hub_probe(struct hid_device *hdev,
if (last_hsdev)
last_hsdev->end_collection_index = i;
last_hsdev = hsdev;
- name = kasprintf(GFP_KERNEL, "HID-SENSOR-%x",
- collection->usage);
+ name = devm_kasprintf(&hdev->dev, GFP_KERNEL,
+ "HID-SENSOR-%x",
+ collection->usage);
if (name == NULL) {
hid_err(hdev, "Failed MFD device name\n");
ret = -ENOMEM;
- kfree(hsdev);
- goto err_no_mem;
+ goto err_stop_hw;
}
sd->hid_sensor_hub_client_devs[
sd->hid_sensor_client_cnt].id =
@@ -661,16 +662,10 @@ static int sensor_hub_probe(struct hid_device *hdev,
ret = mfd_add_devices(&hdev->dev, 0, sd->hid_sensor_hub_client_devs,
sd->hid_sensor_client_cnt, NULL, 0, NULL);
if (ret < 0)
- goto err_no_mem;
+ goto err_stop_hw;
return ret;
-err_no_mem:
- for (i = 0; i < sd->hid_sensor_client_cnt; ++i) {
- kfree(sd->hid_sensor_hub_client_devs[i].name);
- kfree(sd->hid_sensor_hub_client_devs[i].platform_data);
- }
- kfree(sd->hid_sensor_hub_client_devs);
err_stop_hw:
hid_hw_stop(hdev);
@@ -681,7 +676,6 @@ static void sensor_hub_remove(struct hid_device *hdev)
{
struct sensor_hub_data *data = hid_get_drvdata(hdev);
unsigned long flags;
- int i;
hid_dbg(hdev, " hardware removed\n");
hid_hw_close(hdev);
@@ -691,11 +685,6 @@ static void sensor_hub_remove(struct hid_device *hdev)
complete(&data->pending.ready);
spin_unlock_irqrestore(&data->lock, flags);
mfd_remove_devices(&hdev->dev);
- for (i = 0; i < data->hid_sensor_client_cnt; ++i) {
- kfree(data->hid_sensor_hub_client_devs[i].name);
- kfree(data->hid_sensor_hub_client_devs[i].platform_data);
- }
- kfree(data->hid_sensor_hub_client_devs);
hid_set_drvdata(hdev, NULL);
mutex_destroy(&data->mutex);
}
--
1.9.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] HID: hid-sensor-hub: use devm_ functions consistently
2014-08-02 22:11 [PATCH] HID: hid-sensor-hub: use devm_ functions consistently Himangi Saraogi
@ 2014-08-02 23:55 ` Srinivas Pandruvada
2014-08-12 14:28 ` Jiri Kosina
2014-08-14 17:30 ` Jonathan Cameron
0 siblings, 2 replies; 4+ messages in thread
From: Srinivas Pandruvada @ 2014-08-02 23:55 UTC (permalink / raw)
To: Himangi Saraogi, Jiri Kosina, Andy Shevchenko, Archana Patni,
Jonathan Cameron, linux-kernel
Cc: Julia Lawall
On 08/02/2014 03:11 PM, Himangi Saraogi wrote:
> Use devm_kzalloc for all calls to kzalloc and not just the first. Use
> devm functions for other allocations as well. The calls to free the
> allocated memory in the probe and remove functions are done away with
> and a label is removed in the probe function.
>
> The semantic match that finds the inconsistency is as follows:
>
> // <smpl>
> @@
> @@
>
> *devm_kzalloc(...)
> ...
> *kzalloc(...)
> // </smpl>
>
> Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
> Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@intel.com>
> ---
> drivers/hid/hid-sensor-hub.c | 33 +++++++++++----------------------
> 1 file changed, 11 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
> index e244e44..2ac2576 100644
> --- a/drivers/hid/hid-sensor-hub.c
> +++ b/drivers/hid/hid-sensor-hub.c
> @@ -604,9 +604,9 @@ static int sensor_hub_probe(struct hid_device *hdev,
> ret = -EINVAL;
> goto err_stop_hw;
> }
> - sd->hid_sensor_hub_client_devs = kzalloc(dev_cnt *
> - sizeof(struct mfd_cell),
> - GFP_KERNEL);
> + sd->hid_sensor_hub_client_devs = devm_kzalloc(&hdev->dev, dev_cnt *
> + sizeof(struct mfd_cell),
> + GFP_KERNEL);
> if (sd->hid_sensor_hub_client_devs == NULL) {
> hid_err(hdev, "Failed to allocate memory for mfd cells\n");
> ret = -ENOMEM;
> @@ -618,11 +618,12 @@ static int sensor_hub_probe(struct hid_device *hdev,
>
> if (collection->type == HID_COLLECTION_PHYSICAL) {
>
> - hsdev = kzalloc(sizeof(*hsdev), GFP_KERNEL);
> + hsdev = devm_kzalloc(&hdev->dev, sizeof(*hsdev),
> + GFP_KERNEL);
> if (!hsdev) {
> hid_err(hdev, "cannot allocate hid_sensor_hub_device\n");
> ret = -ENOMEM;
> - goto err_no_mem;
> + goto err_stop_hw;
> }
> hsdev->hdev = hdev;
> hsdev->vendor_id = hdev->vendor;
> @@ -631,13 +632,13 @@ static int sensor_hub_probe(struct hid_device *hdev,
> if (last_hsdev)
> last_hsdev->end_collection_index = i;
> last_hsdev = hsdev;
> - name = kasprintf(GFP_KERNEL, "HID-SENSOR-%x",
> - collection->usage);
> + name = devm_kasprintf(&hdev->dev, GFP_KERNEL,
> + "HID-SENSOR-%x",
> + collection->usage);
> if (name == NULL) {
> hid_err(hdev, "Failed MFD device name\n");
> ret = -ENOMEM;
> - kfree(hsdev);
> - goto err_no_mem;
> + goto err_stop_hw;
> }
> sd->hid_sensor_hub_client_devs[
> sd->hid_sensor_client_cnt].id =
> @@ -661,16 +662,10 @@ static int sensor_hub_probe(struct hid_device *hdev,
> ret = mfd_add_devices(&hdev->dev, 0, sd->hid_sensor_hub_client_devs,
> sd->hid_sensor_client_cnt, NULL, 0, NULL);
> if (ret < 0)
> - goto err_no_mem;
> + goto err_stop_hw;
>
> return ret;
>
> -err_no_mem:
> - for (i = 0; i < sd->hid_sensor_client_cnt; ++i) {
> - kfree(sd->hid_sensor_hub_client_devs[i].name);
> - kfree(sd->hid_sensor_hub_client_devs[i].platform_data);
> - }
> - kfree(sd->hid_sensor_hub_client_devs);
> err_stop_hw:
> hid_hw_stop(hdev);
>
> @@ -681,7 +676,6 @@ static void sensor_hub_remove(struct hid_device *hdev)
> {
> struct sensor_hub_data *data = hid_get_drvdata(hdev);
> unsigned long flags;
> - int i;
>
> hid_dbg(hdev, " hardware removed\n");
> hid_hw_close(hdev);
> @@ -691,11 +685,6 @@ static void sensor_hub_remove(struct hid_device *hdev)
> complete(&data->pending.ready);
> spin_unlock_irqrestore(&data->lock, flags);
> mfd_remove_devices(&hdev->dev);
> - for (i = 0; i < data->hid_sensor_client_cnt; ++i) {
> - kfree(data->hid_sensor_hub_client_devs[i].name);
> - kfree(data->hid_sensor_hub_client_devs[i].platform_data);
> - }
> - kfree(data->hid_sensor_hub_client_devs);
> hid_set_drvdata(hdev, NULL);
> mutex_destroy(&data->mutex);
> }
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] HID: hid-sensor-hub: use devm_ functions consistently
2014-08-02 23:55 ` Srinivas Pandruvada
@ 2014-08-12 14:28 ` Jiri Kosina
2014-08-14 17:30 ` Jonathan Cameron
1 sibling, 0 replies; 4+ messages in thread
From: Jiri Kosina @ 2014-08-12 14:28 UTC (permalink / raw)
To: Srinivas Pandruvada
Cc: Himangi Saraogi, Andy Shevchenko, Archana Patni, Jonathan Cameron,
linux-kernel, Julia Lawall
On Sat, 2 Aug 2014, Srinivas Pandruvada wrote:
> > Use devm_kzalloc for all calls to kzalloc and not just the first. Use
> > devm functions for other allocations as well. The calls to free the
> > allocated memory in the probe and remove functions are done away with
> > and a label is removed in the probe function.
> >
> > The semantic match that finds the inconsistency is as follows:
> >
> > // <smpl>
> > @@
> > @@
> >
> > *devm_kzalloc(...)
> > ...
> > *kzalloc(...)
> > // </smpl>
> >
> > Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
> > Acked-by: Julia Lawall <julia.lawall@lip6.fr>
> Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@intel.com>
Queued for 3.17, thanks.
--
Jiri Kosina
SUSE Labs
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] HID: hid-sensor-hub: use devm_ functions consistently
2014-08-02 23:55 ` Srinivas Pandruvada
2014-08-12 14:28 ` Jiri Kosina
@ 2014-08-14 17:30 ` Jonathan Cameron
1 sibling, 0 replies; 4+ messages in thread
From: Jonathan Cameron @ 2014-08-14 17:30 UTC (permalink / raw)
To: Srinivas Pandruvada, Himangi Saraogi, Jiri Kosina,
Andy Shevchenko, Archana Patni, linux-kernel
Cc: Julia Lawall
On 03/08/14 00:55, Srinivas Pandruvada wrote:
>
> On 08/02/2014 03:11 PM, Himangi Saraogi wrote:
>> Use devm_kzalloc for all calls to kzalloc and not just the first. Use
>> devm functions for other allocations as well. The calls to free the
>> allocated memory in the probe and remove functions are done away with
>> and a label is removed in the probe function.
>>
>> The semantic match that finds the inconsistency is as follows:
>>
>> // <smpl>
>> @@
>> @@
>>
>> *devm_kzalloc(...)
>> ...
>> *kzalloc(...)
>> // </smpl>
>>
>> Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
>> Acked-by: Julia Lawall <julia.lawall@lip6.fr>
> Reviewed-by: Srinivas Pandruvada <srinivas.pandruvada@intel.com>
>
Applied to thet togreg branch of iio.git. Pushed out as testing
for the autobuilders to play.
Thanks
>> ---
>> drivers/hid/hid-sensor-hub.c | 33 +++++++++++----------------------
>> 1 file changed, 11 insertions(+), 22 deletions(-)
>>
>> diff --git a/drivers/hid/hid-sensor-hub.c b/drivers/hid/hid-sensor-hub.c
>> index e244e44..2ac2576 100644
>> --- a/drivers/hid/hid-sensor-hub.c
>> +++ b/drivers/hid/hid-sensor-hub.c
>> @@ -604,9 +604,9 @@ static int sensor_hub_probe(struct hid_device *hdev,
>> ret = -EINVAL;
>> goto err_stop_hw;
>> }
>> - sd->hid_sensor_hub_client_devs = kzalloc(dev_cnt *
>> - sizeof(struct mfd_cell),
>> - GFP_KERNEL);
>> + sd->hid_sensor_hub_client_devs = devm_kzalloc(&hdev->dev, dev_cnt *
>> + sizeof(struct mfd_cell),
>> + GFP_KERNEL);
>> if (sd->hid_sensor_hub_client_devs == NULL) {
>> hid_err(hdev, "Failed to allocate memory for mfd cells\n");
>> ret = -ENOMEM;
>> @@ -618,11 +618,12 @@ static int sensor_hub_probe(struct hid_device *hdev,
>> if (collection->type == HID_COLLECTION_PHYSICAL) {
>> - hsdev = kzalloc(sizeof(*hsdev), GFP_KERNEL);
>> + hsdev = devm_kzalloc(&hdev->dev, sizeof(*hsdev),
>> + GFP_KERNEL);
>> if (!hsdev) {
>> hid_err(hdev, "cannot allocate hid_sensor_hub_device\n");
>> ret = -ENOMEM;
>> - goto err_no_mem;
>> + goto err_stop_hw;
>> }
>> hsdev->hdev = hdev;
>> hsdev->vendor_id = hdev->vendor;
>> @@ -631,13 +632,13 @@ static int sensor_hub_probe(struct hid_device *hdev,
>> if (last_hsdev)
>> last_hsdev->end_collection_index = i;
>> last_hsdev = hsdev;
>> - name = kasprintf(GFP_KERNEL, "HID-SENSOR-%x",
>> - collection->usage);
>> + name = devm_kasprintf(&hdev->dev, GFP_KERNEL,
>> + "HID-SENSOR-%x",
>> + collection->usage);
>> if (name == NULL) {
>> hid_err(hdev, "Failed MFD device name\n");
>> ret = -ENOMEM;
>> - kfree(hsdev);
>> - goto err_no_mem;
>> + goto err_stop_hw;
>> }
>> sd->hid_sensor_hub_client_devs[
>> sd->hid_sensor_client_cnt].id =
>> @@ -661,16 +662,10 @@ static int sensor_hub_probe(struct hid_device *hdev,
>> ret = mfd_add_devices(&hdev->dev, 0, sd->hid_sensor_hub_client_devs,
>> sd->hid_sensor_client_cnt, NULL, 0, NULL);
>> if (ret < 0)
>> - goto err_no_mem;
>> + goto err_stop_hw;
>> return ret;
>> -err_no_mem:
>> - for (i = 0; i < sd->hid_sensor_client_cnt; ++i) {
>> - kfree(sd->hid_sensor_hub_client_devs[i].name);
>> - kfree(sd->hid_sensor_hub_client_devs[i].platform_data);
>> - }
>> - kfree(sd->hid_sensor_hub_client_devs);
>> err_stop_hw:
>> hid_hw_stop(hdev);
>> @@ -681,7 +676,6 @@ static void sensor_hub_remove(struct hid_device *hdev)
>> {
>> struct sensor_hub_data *data = hid_get_drvdata(hdev);
>> unsigned long flags;
>> - int i;
>> hid_dbg(hdev, " hardware removed\n");
>> hid_hw_close(hdev);
>> @@ -691,11 +685,6 @@ static void sensor_hub_remove(struct hid_device *hdev)
>> complete(&data->pending.ready);
>> spin_unlock_irqrestore(&data->lock, flags);
>> mfd_remove_devices(&hdev->dev);
>> - for (i = 0; i < data->hid_sensor_client_cnt; ++i) {
>> - kfree(data->hid_sensor_hub_client_devs[i].name);
>> - kfree(data->hid_sensor_hub_client_devs[i].platform_data);
>> - }
>> - kfree(data->hid_sensor_hub_client_devs);
>> hid_set_drvdata(hdev, NULL);
>> mutex_destroy(&data->mutex);
>> }
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-08-14 17:30 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-02 22:11 [PATCH] HID: hid-sensor-hub: use devm_ functions consistently Himangi Saraogi
2014-08-02 23:55 ` Srinivas Pandruvada
2014-08-12 14:28 ` Jiri Kosina
2014-08-14 17:30 ` Jonathan Cameron
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox