Tony Breeds wrote:
> 
> +#if defined(CONFIG_PPC_PSERIES) && defined(CONFIG_PPC_64K_PAGES)
> +static int __init scan_dt_for_ehea(unsigned long node, const char *uname,
> +                                  int depth, void *data)
> +{
> +     if (depth != 0)
> +             return 0;
> +
> +     if (of_flat_dt_search(node, "HEA ", "ibm,drc-names"))
> +             return 1;
> +
> +     return 0;
> +}
> +#endif

Searching ibm,drc-names is necessary, but is it sufficient?  That is,
can there be a system that has an HEA adapter without that property
being present?  Thinking in particular about single-partition systems
that run without an HMC attached.


>  static void __init htab_init_page_sizes(void)
>  {
>       int rc;
> +#ifdef CONFIG_PPC_64K_PAGES
> +     int has_ehea = 0;
> +#endif
>  
>       /* Default to 4K pages only */
>       memcpy(mmu_psize_defs, mmu_psize_defaults_old,
>              sizeof(mmu_psize_defaults_old));
>  
> +#if defined(CONFIG_PPC_PSERIES) && defined(CONFIG_PPC_64K_PAGES)
> +     /* Scan to see if this system can have an EHEA, if so we'll
> +      * demote io_psize to 4K */
> +     has_ehea = of_scan_flat_dt(scan_dt_for_ehea, NULL);
> +#endif

I'm wondering if some of the ifdef stuff could be avoided if you used
a firmware feature bit to signify the limitation (or the lack of it).
The bit could be set during pSeries_probe.  Just an idea; I don't feel
that strongly about it.
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to