unsigned long offset, 
unsigned long pfn, 
pgprot_t pci_phys_mem_access_prot(struct file *file,				  unsigned long offset,				  unsigned long size,				  pgprot_t protection){	struct pci_dev *pdev = NULL;	struct resource *found = NULL;	unsigned long prot = pgprot_val(protection);	int i;	if (page_is_ram(offset >> PAGE_SHIFT))		return __pgprot(prot);	prot |= _PAGE_NO_CACHE | _PAGE_GUARDED;	for_each_pci_dev(pdev) {		for (i = 0; i <= PCI_ROM_RESOURCE; i++) {			struct resource *rp = &pdev->resource[i];			int flags = rp->flags;			/* Active and same type? */			if ((flags & IORESOURCE_MEM) == 0)				continue;			/* In the range of this resource? */			if (offset < (rp->start & PAGE_MASK) ||			    offset > rp->end)				continue;			found = rp;			break;		}		if (found)			break;	}	if (found) {		if (found->flags & IORESOURCE_PREFETCH)			prot &= ~_PAGE_GUARDED;		pci_dev_put(pdev);	}	DBG("non-PCI map for %lx, prot: %lx\n", offset, prot);	return __pgprot(prot);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/8b150478aeb1a8edb9015c2f7ac4da637ff65c45/pci.c/buggy/arch/ppc64/kernel/pci.c