diff options
| author | Sean Paul <[email protected]> | 2017-06-27 15:36:28 +0000 |
|---|---|---|
| committer | Sean Paul <[email protected]> | 2017-06-27 15:36:28 +0000 |
| commit | c048c984de38d906bb0df56ec2ae90eafc123d0a (patch) | |
| tree | 4e670e712aeedcaf2e2193b64f9120e03320e01c /drivers/input/misc/soc_button_array.c | |
| parent | DRM: Fix an incorrectly formatted table (diff) | |
| parent | Backmerge tag 'v4.12-rc7' into drm-next (diff) | |
| download | kernel-c048c984de38d906bb0df56ec2ae90eafc123d0a.tar.gz kernel-c048c984de38d906bb0df56ec2ae90eafc123d0a.zip | |
Merge remote-tracking branch 'airlied/drm-next' into drm-misc-next-fixes
Backmerge drm-next with rc7
Diffstat (limited to 'drivers/input/misc/soc_button_array.c')
| -rw-r--r-- | drivers/input/misc/soc_button_array.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/drivers/input/misc/soc_button_array.c b/drivers/input/misc/soc_button_array.c index e37d37273182..f600f3a7a3c6 100644 --- a/drivers/input/misc/soc_button_array.c +++ b/drivers/input/misc/soc_button_array.c @@ -248,7 +248,8 @@ static struct soc_button_info *soc_button_get_button_info(struct device *dev) if (!btns_desc) { dev_err(dev, "ACPI Button Descriptors not found\n"); - return ERR_PTR(-ENODEV); + button_info = ERR_PTR(-ENODEV); + goto out; } /* The first package describes the collection */ @@ -264,24 +265,31 @@ static struct soc_button_info *soc_button_get_button_info(struct device *dev) } if (collection_uid == -1) { dev_err(dev, "Invalid Button Collection Descriptor\n"); - return ERR_PTR(-ENODEV); + button_info = ERR_PTR(-ENODEV); + goto out; } /* There are package.count - 1 buttons + 1 terminating empty entry */ button_info = devm_kcalloc(dev, btns_desc->package.count, sizeof(*button_info), GFP_KERNEL); - if (!button_info) - return ERR_PTR(-ENOMEM); + if (!button_info) { + button_info = ERR_PTR(-ENOMEM); + goto out; + } /* Parse the button descriptors */ for (i = 1, btn = 0; i < btns_desc->package.count; i++, btn++) { if (soc_button_parse_btn_desc(dev, &btns_desc->package.elements[i], collection_uid, - &button_info[btn])) - return ERR_PTR(-ENODEV); + &button_info[btn])) { + button_info = ERR_PTR(-ENODEV); + goto out; + } } +out: + kfree(buf.pointer); return button_info; } |
