mirror of
https://github.com/adulau/aha.git
synced 2024-12-27 03:06:10 +00:00
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: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
d103bef451
commit
fa5c5f4ce0
1 changed files with 5 additions and 2 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue