[PATCH 6/6] of/device: populate platform_device (of_device) resource table on allocation
Anton Vorontsov
cbouatmailru at gmail.com
Fri Jun 11 01:47:41 EST 2010
On Thu, Jun 10, 2010 at 09:13:57AM -0600, M. Warner Losh wrote:
[...]
> : >> I told you several ways of how to improve the code (based on
> : >> the ideas from drivers/base/, so the ideas aren't even mine,
> : >> fwiw).
> : >
> : > I tend to agree with Anton here.
> :
> : The reason I'm confident doing it that way is that it is *not* a
> : structure. There is no structure relationship between the resource
> : table and the platform_device other than they are allocated with the
> : same kzalloc() call. All the code that cares about that is contained
> : within 4 lines of code. I'm resistant to using a structure because it
> : is adds an additional 5-6 lines of code to add a structure that won't
> : be used anywhere else, and is only 4 lines to begin with.
>
> I tend to agree with Grant here. The idiom he's using is very wide
> spread in the industry and works extremely well. It keeps the
> ugliness confined to a couple of lines and is less ugly than the
> alternatives for this design pattern. It is a little surprising when
> you see the code the first time, granted, but I think its expressive
> power trumps that small surprise.
Oh, come on. Both constructions are binary equivalent.
So how can people seriously be with *that* code:
dev->resource = (void *)&dev[1];
which, semantically, is a nonsense and asks for a fix.
While
dev_obj->dev.resource = dev_obj->resource;
simply makes sense.
--
Anton Vorontsov
email: cbouatmailru at gmail.com
irc://irc.freenode.net/bd2
More information about the Linuxppc-dev
mailing list