Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fa5c5f4c authored by Ian Abbott's avatar Ian Abbott Committed by Greg Kroah-Hartman
Browse files

Staging: comedi: jr3_pci: Don't ioremap too much space. Check result.



For the JR3/PCI cards, the size of the PCIBAR0 region depends on the
number of channels.  Don't try and ioremap space for 4 channels if the
card has fewer channels.  Also check for ioremap failure.

Thanks to Anders Blomdell for input and Sami Hussein for testing.

Signed-off-by: default avatarIan Abbott <abbotti@mev.co.uk>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent d103bef4
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -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;