Re: [RFC v6] rfkill: rewrite

Johannes Berg
2009-04-30T15:07:27Z

[-- Attachment #1: Type: text/plain, Size: 1003 bytes --]

On Thu, 2009-04-30 at 00:19 -0300, Henrique de Moraes Holschuh wrote:

> The return values for rfkill_alloc() are not the same on the stub and
> real functions. The stub function uses ERR_PTR, while the real
> function uses NULL for any errors. Please make them do the same
> thing, and it is probably a damn good idea to document in the
> kerneldoc what kind of return values one should expect when you return
> a pointer and the function can fail (i.e. NULL or ERR_PTR).

Actually, I was going to clean this up, and then I noticed you're
wrong. :) Returning ERR_PTR(-ENODEV) is intentional, in the non-RFKILL
case. Imagine a driver like this:

ASDF
rf = rfkill_alloc(...)
if (!rf)
return -ENOMEM;
err = rfkill_register(rf);
if (err) {
rfkill_destroy(rf);
return err;
}
GHJK

Now, in the non-RFKILL case, this boils down to:
rf = ERR_PTR(-ENODEV);
...

and given compiler optimisations will end up like this:
ASDF
GHJK

Which is good :)

johannes

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]