Subject: Re: [PATCH] generic check_legacy_ioport

From: Arnd Bergmann <[email-masked]>
Date: Tue, 17 Apr 2007 23:22:22 +0200

On Tuesday 17 April 2007, Olaf Hering wrote:
> 
>  int check_legacy_ioport(unsigned long base_port)
>  {
> -       if (ppc_md.check_legacy_ioport == NULL)
> +       struct device_node *np;
> +       if (ppc_md.check_legacy_ioport == NULL) {
> +               np = of_find_node_by_type(NULL, "isa");
> +               if (np == NULL)
> +                       return -ENODEV;
> +               of_node_put(np);
>                 return 0;
> +       }
>         return ppc_md.check_legacy_ioport(base_port);
>  }

I could be wrong, but I think I've seen fake 'isa' bus nodes in the device tree
for machines that don't actually have isa. I probably saw this on very early
cell blades (not the ones currently shipping), but perhaps others have
made the same mistake.

How about simply defining a new common function like

int generic_deny_legacy_ioport(unsigned long base_port)
{
	return -EINVAL;
}

so that not every platform has to define their own but can either
set ppc_md.check_legacy_ioport to NULL, to generic_deny_legacy_ioport
or their own function if they do something fancy?

	Arnd <><