diff options
Diffstat (limited to 'arch/sparc/kernel/pci_common.c')
| -rw-r--r-- | arch/sparc/kernel/pci_common.c | 11 | 
1 files changed, 8 insertions, 3 deletions
diff --git a/arch/sparc/kernel/pci_common.c b/arch/sparc/kernel/pci_common.c index b775658a927..8a000583b5c 100644 --- a/arch/sparc/kernel/pci_common.c +++ b/arch/sparc/kernel/pci_common.c @@ -371,14 +371,19 @@ static void pci_register_iommu_region(struct pci_pbm_info *pbm)  		struct resource *rp = kzalloc(sizeof(*rp), GFP_KERNEL);  		if (!rp) { -			prom_printf("Cannot allocate IOMMU resource.\n"); -			prom_halt(); +			pr_info("%s: Cannot allocate IOMMU resource.\n", +				pbm->name); +			return;  		}  		rp->name = "IOMMU";  		rp->start = pbm->mem_space.start + (unsigned long) vdma[0];  		rp->end = rp->start + (unsigned long) vdma[1] - 1UL;  		rp->flags = IORESOURCE_BUSY; -		request_resource(&pbm->mem_space, rp); +		if (request_resource(&pbm->mem_space, rp)) { +			pr_info("%s: Unable to request IOMMU resource.\n", +				pbm->name); +			kfree(rp); +		}  	}  }  |