On Tue, 25 Jul 2017 15:51:21 -0500
Michael Roth <mdr...@linux.vnet.ibm.com> wrote:

> Quoting Greg Kurz (2017-07-25 13:02:03)
> > From: Nathan Fontenot <nf...@linux.vnet.ibm.com>
> > 
> > This add entries to the root OF node to advertise our PHBs as being
> > DR-capable in accordance with PAPR specification.
> > 
> > Signed-off-by: Nathan Fontenot <nf...@linux.vnet.ibm.com>
> > Signed-off-by: Michael Roth <mdr...@linux.vnet.ibm.com>
> > Reviewed-by: David Gibson <da...@gibson.dropbear.id.au>
> > Signed-off-by: Greg Kurz <gr...@kaod.org>
> > ---
> > Changes since RFC:
> > - rebased against ppc-for-2.10
> > - use error_report
> > ---
> >  hw/ppc/spapr.c |   10 ++++++++++
> >  1 file changed, 10 insertions(+)
> > 
> > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> > index 5950c009ab7e..632040f35ecc 100644
> > --- a/hw/ppc/spapr.c
> > +++ b/hw/ppc/spapr.c
> > @@ -1151,6 +1151,16 @@ static void *spapr_build_fdt(sPAPRMachineState 
> > *spapr,
> >          exit(1);
> >      }
> > 
> > +    if (smc->dr_phb_enabled) {
> > +        int offset = fdt_path_offset(fdt, "/");
> > +        ret = spapr_drc_populate_dt(fdt, offset, NULL,
> > +                                    SPAPR_DR_CONNECTOR_TYPE_PHB);  
> 
> This might actually clobber LMB/MEM entries added earlier since they both
> try to create the /ibm,drc* entries in / from scratch.
>   

Oh, looking at the description of fdt_setprop() in <libfdt.h>, I guess you're
probably right.

> If that's the case, we can arrange the code something like:
>   
>   uint32_t root_drc_types = 0;
>   
>   if (smc->dr_lmb_enabled) {
>       root_drc_types |= SPAPR_DR_CONNECTOR_TYPE_LMB;
>   }
>   
>   if (smc->dr_phb_enabled) {
>       root_drc_types |= SPAPR_DR_CONNECTOR_TYPE_PHB;
>   }
>   
>   ...
>   
>   if (root_drc_types) {
>     int offset = fdt_path_offset(fdt, "/");
>     ret = spapr_drc_populate_dt(fdt, offset, NULL, root_drc_types);
>   }
> 

Good idea. I'll do just that.

Thanks!

> 
> > +        if (ret < 0) {
> > +            error_report("Couldn't set up PHB DR device tree properties");
> > +            exit(1);
> > +        }
> > +    }
> > +
> >      return fdt;
> >  }
> > 
> >   
> 

Attachment: pgpmP1eWLWMx8.pgp
Description: OpenPGP digital signature

Reply via email to