Re: [PATCH] fix ppc ioremap prototype

Paul Mackerras
2003-09-04T13:01:48Z

Russell King writes:

> Using the high flag bits probably isn't a good idea for two reasons:
>
> 1. We already use bit 31 to indicate the busy status:
>
> #define IORESOURCE_BUSY 0x80000000 /* Driver has marked this resource busy */
>
> However, it looks like bits 27 to 17 are currently unused.

Using some flag bits would work but it seems like a bit of a kludge.
Maybe the struct resource needs to have a pointer to the struct device
which owns it? Or maybe just a `sysdata' field?

> 2. The resource tree won't know about the upper bits or whatever sitting
> in flags, and as such identical addresses on two different buses will
> clash.
>
> Resource start,end needs to be some unique quantity no matter which (PCI)
> bus you are on.

They are non-overlapping for PCI buses in the same domain. Perhaps
the sensible thing is to have a separate resource tree for each PCI
domain (actually two trees, for I/O and memory space), and have them
contain bus addresses rather than physical addresses. I don't know if
the generic iomem_resource and ioport_resource are still useful if we
do that.

Paul.