2018-02-13 17:03:02

by SF Markus Elfring

[permalink] [raw]
Subject: [PATCH] efi/apple-properties: Delete an error message for a failed memory allocation in unmarshal_devices()

From: Markus Elfring <[email protected]>
Date: Tue, 13 Feb 2018 17:52:10 +0100

Omit an extra message for a memory allocation failure in this function.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <[email protected]>
---
drivers/firmware/efi/apple-properties.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/firmware/efi/apple-properties.c b/drivers/firmware/efi/apple-properties.c
index 9f6bcf173b0e..f5f3159df4d5 100644
--- a/drivers/firmware/efi/apple-properties.c
+++ b/drivers/firmware/efi/apple-properties.c
@@ -158,10 +158,8 @@ static int __init unmarshal_devices(struct properties_header *properties)

entry = kcalloc(dev_header->prop_count + 1, sizeof(*entry),
GFP_KERNEL);
- if (!entry) {
- dev_err(dev, "cannot allocate properties\n");
+ if (!entry)
goto skip_device;
- }

unmarshal_key_value_pairs(dev_header, dev, ptr, entry);
if (!entry[0].name)
--
2.16.1



2018-02-13 18:41:51

by Lukas Wunner

[permalink] [raw]
Subject: Re: [PATCH] efi/apple-properties: Delete an error message for a failed memory allocation in unmarshal_devices()

On Tue, Feb 13, 2018 at 06:00:26PM +0100, SF Markus Elfring wrote:
> Omit an extra message for a memory allocation failure in this function.
[snip]
> --- a/drivers/firmware/efi/apple-properties.c
> +++ b/drivers/firmware/efi/apple-properties.c
> @@ -158,10 +158,8 @@ static int __init unmarshal_devices(struct properties_header *properties)
>
> entry = kcalloc(dev_header->prop_count + 1, sizeof(*entry),
> GFP_KERNEL);
> - if (!entry) {
> - dev_err(dev, "cannot allocate properties\n");
> + if (!entry)
> goto skip_device;
> - }
>
> unmarshal_key_value_pairs(dev_header, dev, ptr, entry);
> if (!entry[0].name)

While the allocator does print an error when allocations fail,
it may not be immediately apparent to the user what the
*consequences* are. In this case, the consequence is that the
device properties will not be available for consumption by
drivers and they may fail to probe or behave in entirely
unexpected ways. Hence I deliberately printed an error message
here so that the user can make the connection between erratic
behavior of drivers later on and the memory allocation error here.

You didn't cc me on your submission even though I'm the author of
99% of this file. Please make an effort prior to submission to
identify interested parties.

Lukas

2018-02-13 18:52:19

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH] efi/apple-properties: Delete an error message for a failed memory allocation in unmarshal_devices()

On Tue, 2018-02-13 at 19:40 +0100, Lukas Wunner wrote:
> On Tue, Feb 13, 2018 at 06:00:26PM +0100, SF Markus Elfring wrote:
> > --- a/drivers/firmware/efi/apple-properties.c
> You didn't cc me on your submission even though I'm the author of
> 99% of this file. Please make an effort prior to submission to
> identify interested parties.

If you want to receive patches for this file, even
if you are not a maintainer or an upstream path,
you should add yourself as a reviewer to the
MAINTAINERS file like:

APPLE EFI PROPERTIES
R: Lukas Wunner <[email protected]>
F: drivers/firmware/efi/apple-properties.c


2018-02-14 08:22:13

by SF Markus Elfring

[permalink] [raw]
Subject: Re: efi/apple-properties: Checking error handling in unmarshal_devices()

> While the allocator does print an error when allocations fail,
> it may not be immediately apparent to the user what the
> *consequences* are. In this case, the consequence is that the
> device properties will not be available for consumption by
> drivers and they may fail to probe or behave in entirely
> unexpected ways.

Would it make sense to indicate such a questionable software situation
be any return code?


> Hence I deliberately printed an error message here so that the user
> can make the connection between erratic behavior of drivers later on
> and the memory allocation error here.

Do you find this terse message really sufficient?

Can the mentioned properties be required for the desired system configuration?

Regards,
Markus