diff options
Diffstat (limited to 'drivers/hid/hid-a4tech.c')
| -rw-r--r-- | drivers/hid/hid-a4tech.c | 21 | 
1 files changed, 4 insertions, 17 deletions
diff --git a/drivers/hid/hid-a4tech.c b/drivers/hid/hid-a4tech.c index 7c5507e94820..9428ea7cdf8a 100644 --- a/drivers/hid/hid-a4tech.c +++ b/drivers/hid/hid-a4tech.c @@ -90,11 +90,10 @@ static int a4_probe(struct hid_device *hdev, const struct hid_device_id *id)  	struct a4tech_sc *a4;  	int ret; -	a4 = kzalloc(sizeof(*a4), GFP_KERNEL); +	a4 = devm_kzalloc(&hdev->dev, sizeof(*a4), GFP_KERNEL);  	if (a4 == NULL) {  		hid_err(hdev, "can't alloc device descriptor\n"); -		ret = -ENOMEM; -		goto err_free; +		return -ENOMEM;  	}  	a4->quirks = id->driver_data; @@ -104,27 +103,16 @@ static int a4_probe(struct hid_device *hdev, const struct hid_device_id *id)  	ret = hid_parse(hdev);  	if (ret) {  		hid_err(hdev, "parse failed\n"); -		goto err_free; +		return ret;  	}  	ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT);  	if (ret) {  		hid_err(hdev, "hw start failed\n"); -		goto err_free; +		return ret;  	}  	return 0; -err_free: -	kfree(a4); -	return ret; -} - -static void a4_remove(struct hid_device *hdev) -{ -	struct a4tech_sc *a4 = hid_get_drvdata(hdev); - -	hid_hw_stop(hdev); -	kfree(a4);  }  static const struct hid_device_id a4_devices[] = { @@ -144,7 +132,6 @@ static struct hid_driver a4_driver = {  	.input_mapped = a4_input_mapped,  	.event = a4_event,  	.probe = a4_probe, -	.remove = a4_remove,  };  module_hid_driver(a4_driver);  | 
