poking around in memory allocation code and ran across this in drivers/pci/pci.c. first, there's this generic region request routine that accepts a final parameter as to whether it's an "exclusive" request: static int __pci_request_region(struct pci_dev *pdev, int bar, const char *res_name, int exclusive) { struct pci_devres *dr; ... and, not surprisingly, there are a couple more user-friendly routines that wrap around it: int pci_request_region(struct pci_dev *pdev, int bar, const char *res_name) { return __pci_request_region(pdev, bar, res_name, 0); } ... snip ... int pci_request_region_exclusive(struct pci_dev *pdev, int bar, const char *res_name) { return __pci_request_region(pdev, bar, res_name, IORESOURCE_EXCLUSIVE); } the above would normally suggest that, since the generic routine's name begins with "__", it's typically a lower-level routine that wouldn't be called directly, and one would expect to see calls to the wrapper routines: * pci_request_reqion() * pci_request_region_exclusive() scattered throughout the kernel source tree. there are certainly enough calls to the first (non-exclusive) routine, but this is it for the second: $ grep -rw pci_request_region_exclusive * drivers/pci/pci.c: * pci_request_region_exclusive - Reserved PCI I/O and memory resource drivers/pci/pci.c:int pci_request_region_exclusive(struct pci_dev *pdev, int bar, const char *res_name) drivers/pci/pci.c:EXPORT_SYMBOL(pci_request_region_exclusive); include/linux/pci.h:int __must_check pci_request_region_exclusive(struct pci_dev *, int, const char *); $ in short, *nobody* appears to call that second routine for exclusive access. am i missing something here? if you search for calls to the generic routine, this is all you find: $ grep -rw __pci_request_region * drivers/pci/pci.c: * __pci_request_region - Reserved PCI I/O and memory resource drivers/pci/pci.c:static int __pci_request_region(struct pci_dev *pdev, int bar, const char *res_name, drivers/pci/pci.c: return __pci_request_region(pdev, bar, res_name, 0); drivers/pci/pci.c: return __pci_request_region(pdev, bar, res_name, IORESOURCE_EXCLUSIVE); drivers/pci/pci.c: if (__pci_request_region(pdev, i, res_name, excl)) $ so what's the value of that "exclusive" wrapper routine? rday -- ======================================================================== Robert P. J. Day Ottawa, Ontario, CANADA http://crashcourse.ca Twitter: http://twitter.com/rpjday LinkedIn: http://ca.linkedin.com/in/rpjday ======================================================================== _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies