dhinds at sonic.net
Mon Dec 29 11:51:24 GMT 2003
On Sat, Dec 27, 2003 at 04:35:02PM -0800, Jim McCloskey wrote:
> |> Just to complete the picture, can you dump the contents of
> |> /proc/iomem under both 2.4 and 2.6 please?
> 20000000-20000fff : Texas Instruments PCI4410 PC card Cardbus Controller
> 20400000-207fffff : PCI CardBus #03
> 20800000-20bfffff : PCI CardBus #03
> 60000000-60000fff : card services
> 90000000-9fffffff : PCI Bus #01
> 90000000-97ffffff : ATI Technologies Inc Radeon Mobility M6 LY
> 90000000-902fffff : vesafb
> a0000000-a3ffffff : Intel Corp. 82845 845 (Brookdale) Chipset Host Bridge
The 2.6 memory probe code uses check_resource() against the parent of
the CardBus bridge. In this system, that bridge is on PCI bus 2. The
a0000000-a0ffffff range is allocated by a PCI device on another bus.
The check_resource() code identifies conflicts by NULL return values
from __request_resource(). That code returns NULL for conflicts with
other siblings. However if a range is requested that is not contained
within the parent resource, this function returns the parent resource.
That seems bizarre to me and I have no idea what that is intended to
It seems to me that check_resource() should return -EBUSY if
__request_resource() returns either NULL or the parent resource. Or,
unless there's a reason why it is useful to return the parent resource
for unmappable requests, __request_resource() should just return NULL
for those cases.
More information about the linux-pcmcia