diff options
Diffstat (limited to 'drivers/hid/hid-appleir.c')
-rw-r--r-- | drivers/hid/hid-appleir.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/drivers/hid/hid-appleir.c b/drivers/hid/hid-appleir.c index bf8d4afe0d6a..8deded185725 100644 --- a/drivers/hid/hid-appleir.c +++ b/drivers/hid/hid-appleir.c @@ -283,11 +283,9 @@ static int appleir_probe(struct hid_device *hid, const struct hid_device_id *id) int ret; struct appleir *appleir; - appleir = kzalloc(sizeof(struct appleir), GFP_KERNEL); - if (!appleir) { - ret = -ENOMEM; - goto allocfail; - } + appleir = devm_kzalloc(&hid->dev, sizeof(struct appleir), GFP_KERNEL); + if (!appleir) + return -ENOMEM; appleir->hid = hid; @@ -313,8 +311,7 @@ static int appleir_probe(struct hid_device *hid, const struct hid_device_id *id) return 0; fail: - kfree(appleir); -allocfail: + devm_kfree(&hid->dev, appleir); return ret; } @@ -323,7 +320,6 @@ static void appleir_remove(struct hid_device *hid) struct appleir *appleir = hid_get_drvdata(hid); hid_hw_stop(hid); del_timer_sync(&appleir->key_up_timer); - kfree(appleir); } static const struct hid_device_id appleir_devices[] = { |