willy at debian.org
Mon Dec 29 20:26:42 GMT 2003
On Mon, Dec 29, 2003 at 11:51:24AM -0800, David Hinds wrote:
> > 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.
You mean check_region(), right? If not, could you point me at the code
> 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's not quite that simple. check_region() calls __check_region calls
__request_region() calls __request_resource(). __request_region()
seems to be doing the right thing. It checks the result (conflict) from
__request_resource() and walks down a level in the tree if the conflict
isn't the parent region itself.
Could you explain a little better?
"Next the statesmen will invent cheap lies, putting the blame upon
the nation that is attacked, and every man will be glad of those
conscience-soothing falsities, and will diligently study them, and refuse
to examine any refutations of them; and thus he will by and by convince
himself that the war is just, and will thank God for the better sleep
he enjoys after this process of grotesque self-deception." -- Mark Twain
More information about the linux-pcmcia