[PATCH 6/6] of/device: populate platform_device (of_device) resource table on allocation
Grant Likely
grant.likely at secretlab.ca
Wed Jun 9 02:02:49 EST 2010
On Tue, Jun 8, 2010 at 9:57 AM, Anton Vorontsov <cbouatmailru at gmail.com> wrote:
> On Tue, Jun 08, 2010 at 08:26:43AM -0600, Grant Likely wrote:
> [...]
>> + dev = kzalloc(sizeof(*dev) + (sizeof(struct resource) * i), GFP_KERNEL);
>> if (!dev)
>> return NULL;
>> -
>> dev->dev.of_node = of_node_get(np);
>> dev->dev.dma_mask = &dev->archdata.dma_mask;
>> dev->dev.parent = parent;
>> dev->dev.release = of_release_dev;
>>
>> + /* Populate the resource table */
>> + if (num_irq || num_reg) {
>> + dev->resource = (void*)&dev[1];
>
> This is ugly. Why not allocate the memory specifically for
> dev->resource? Is this because you plan to get rid of
> of_release_dev(), and the generic release_dev() won't
> know if it should free the dev->resource? There must
> be a better way to handle this.
Allocating in one big block means less potential memory fragmentation,
and the kernel can free it all at once. This is a common pattern.
> p.s.
>
> Just wonder what happened to of_gpio stuff? You blocked it
> in 2.6.34 for no reason saying "I'll pick it into my OF
> tree before the 2.6.35 merge window" and it's 2.6.36 merge
> window quite soon.
It's in my test-devicetree branch. I'll be posting for 2nd review in
the next few days and then adding to my devicetree-next branch
probably before the end of the week.
g.
More information about the devicetree-discuss
mailing list