--- 59a61068f96612c825b744b7e22274699ca85704 +++ 1d6385a52dccbd2947d3cf8579491e2ea263d261 @@ -856,8 +856,11 @@ static int jr3_pci_attach(struct comedi_ } 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;