linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* ERR_PTR pattern in phylib
@ 2010-09-01 14:42 Grant Likely
  2010-09-01 15:27 ` David Miller
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Grant Likely @ 2010-09-01 14:42 UTC (permalink / raw)
  To: Andy Fleming, netdev, linuxppc-dev

Hi Andy,

I've been looking at the phylib code, and specifically at the use of
the ERR_PTR() pattern.  I'm personally not a big fan of ERR_PTR()
because the compiler cannot type check the result and it runs
completely counter to the pattern "if (!ptr)" than is common for
testing a pointer return value.

(That being said, I do understand the need for it in certain parts of
the kernel (like the filesystem code) where it is important to be both
efficient because it is a hot path and still able to accurately return
an error code that is used by userspace.)

It seems to me that phylib is one of the cases where the users (the
network drivers) don't actually care about the specific error code
when calling phylib functions.  The drivers only seem to care whether
or not the function failed, and if it did then bail out.  I've also
noticed that using the "if (!ptr)" test on phylib return values is a
common error for driver writers.

In the interest of making driver code easier to write and review,
would you be opposed to a set of patches to remove the ERR_PTR()
pattern from phylib and its users?

g.

-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2010-09-02 16:43 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-01 14:42 ERR_PTR pattern in phylib Grant Likely
2010-09-01 15:27 ` David Miller
2010-09-01 18:56   ` Grant Likely
2010-09-01 19:03     ` David Miller
2010-09-01 15:50 ` Fleming Andy-AFLEMING
2010-09-02 15:20 ` Maciej W. Rozycki
2010-09-02 16:34   ` David Miller
2010-09-02 16:43     ` Maciej W. Rozycki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).