Subject: [PATCH 3/6] mv643xx.c: Add basic device tree support.

From: [email-masked] (Florian Fainelli)
Date: Tue, 31 Jul 2012 17:12:39 +0200

Hello Ian,

On Monday 30 July 2012 17:32:39 Ian Molton wrote:
> On 30/07/12 17:19, Amar Nath wrote:
> > Hi Ian,
> >
> > On Mon, Jul 30, 2012 at 8:45 PM, Ian Molton 
<[email-masked]>wrote:
> >
> >> -       pd = pdev->dev.platform_data;
> >> +       if (pdev->dev.of_node) {
> >> +               struct device_node *np = NULL;
> >> +
> >> +               /* when all users of this driver use FDT, we can remove
> >> this */
> >> +               pd = kzalloc(sizeof(*pd), GFP_ATOMIC);

Do you really need an allocation in atomic context here? Is not GFP_KERNEL 
sufficient?

There was a second place like this where you used an atomic allocation that 
needs fixing.

> >> +               if (!pd) {
> >> +                       dev_dbg(&pdev->dev, "Could not allocate platform
> >> data\n");
> >> +                       return -ENOMEM;
> >> +               }
> >> +
> >> +               of_property_read_u32(pdev->dev.of_node,
> >> +                       "port_number", &pd->port_number);
> >> +               of_property_read_u32(pdev->dev.of_node,
> >> +                       "phy_addr", &pd->phy_addr);
> >> +               np = of_parse_phandle(pdev->dev.of_node, "mdio", 0);
> >> +               if (np) {
> >> +                       pd->shared = of_find_device_by_node(np);
> >> +               } else {
> >> +                       kfree(pd);
> >> +                       return -ENODEV;
> >> +               }
> >> +       } else {
> >> +               pd = pdev->dev.platform_data;
> >> +       }
> >> +
> >>         if (pd == NULL) {
> >>                 dev_err(&pdev->dev, "no mv643xx_eth_platform_data\n");
> >>                 return -ENODEV;
> >>
> > Can this check for pd be moved in the else part above as well, as for the
> > pd allocation with kzalloc,
> > we have already made a check for memory allocation failure?
> 
> Yes, Folded in for v2.
> 
> -Ian
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel