According to ACPI SPEC, 6.2.1 _CRS (Current Resource Settings). a bus device must supply the resources that it decodes and can assign to its children devices. To bus device, resources returned from _CRS method means that bus device will supply those resouces to its children devices. So it's unreasonable to call request_resource for them.
Created attachment 1678 [details] a patch for fixing this issue
wrote: > On Tue, Dec 16, 2003 at 05:37:35PM +0800, Yu, Luming wrote: > > Could you let me see what are you patch doing. > > I haven't seen Bjorn's patch yet, but it'll be something like: > > --- arch/ia64/pci/pci.c 12 Aug 2003 19:10:49 -0000 1.3 > +++ arch/ia64/pci/pci.c 16 Dec 2003 12:13:53 -0000 > @@ -153,7 +153,7 @@ alloc_resource (char *name, struct resou > res->end = end; > res->flags = flags; > > - if (request_resource(root, res)) > + if (insert_resource(root, res)) > return -EBUSY; > > return 0; Yup, that's exactly the patch. And I agree with Matthew about preferring this over your patch. Did you look at /proc/iomem with and without your patch? The value of keeping the request_resource() (or insert_resource()) should be obvious. Bjorn