提交 fa5c5f4c 编写于 作者: I Ian Abbott 提交者: Greg Kroah-Hartman

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: NIan Abbott <abbotti@mev.co.uk>
Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
上级 d103bef4
...@@ -849,8 +849,11 @@ static int jr3_pci_attach(struct comedi_device *dev, ...@@ -849,8 +849,11 @@ static int jr3_pci_attach(struct comedi_device *dev,
} }
devpriv->pci_enabled = 1; devpriv->pci_enabled = 1;
devpriv->iobase = devpriv->iobase = ioremap(pci_resource_start(card, 0),
ioremap(pci_resource_start(card, 0), sizeof(struct jr3_t)); offsetof(struct jr3_t, channel[devpriv->n_channels]));
if (!devpriv->iobase)
return -ENOMEM;
result = alloc_subdevices(dev, devpriv->n_channels); result = alloc_subdevices(dev, devpriv->n_channels);
if (result < 0) if (result < 0)
goto out; goto out;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册