Staging: comedi: jr3_pci: Don't ioremap too much space. Check result.
[firefly-linux-kernel-4.4.55.git] / drivers / staging / comedi / drivers / jr3_pci.c
index 0d2c2eb23b2328c40594bace90dc114db28c72ee..bd397840dcbabc8c6204f2485a54faef24aa2438 100644 (file)
@@ -849,8 +849,11 @@ static int jr3_pci_attach(struct comedi_device *dev,
        }
 
        devpriv->pci_enabled = 1;
-       devpriv->iobase =
-           ioremap(pci_resource_start(card, 0), sizeof(struct jr3_t));
+       devpriv->iobase = ioremap(pci_resource_start(card, 0),
+                       offsetof(struct jr3_t, channel[devpriv->n_channels]));
+       if (!devpriv->iobase)
+               return -ENOMEM;
+
        result = alloc_subdevices(dev, devpriv->n_channels);
        if (result < 0)
                goto out;