]> rtime.felk.cvut.cz Git - linux-imx.git/commitdiff
firewire: ohci: sanity-check MMIO resource
authorClemens Ladisch <clemens@ladisch.de>
Mon, 4 Jun 2012 19:28:07 +0000 (21:28 +0200)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Mon, 4 Jun 2012 22:57:37 +0000 (00:57 +0200)
pci_request_region() does not fail on resources that have not been
allocated by the BIOS or by the kernel, so to avoid accessing
registers that are not there, we have to check for this explicitly.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
drivers/firewire/ohci.c

index 1c365b82781509fc35891d384d07ffdd45633526..922cd26b25e3cce883902c53124f862bcdd111df 100644 (file)
@@ -3545,6 +3545,13 @@ static int __devinit pci_probe(struct pci_dev *dev,
 
        INIT_WORK(&ohci->bus_reset_work, bus_reset_work);
 
+       if (!(pci_resource_flags(dev, 0) & IORESOURCE_MEM) ||
+           pci_resource_len(dev, 0) < OHCI1394_REGISTER_SIZE) {
+               dev_err(&dev->dev, "invalid MMIO resource\n");
+               err = -ENXIO;
+               goto fail_disable;
+       }
+
        err = pci_request_region(dev, 0, ohci_driver_name);
        if (err) {
                dev_err(&dev->dev, "MMIO resource unavailable\n");