staging: comedi: dt3000: ioremap'ed addresses are resource_size_t
PATCH 4/5 staging: comedi: dt3000: ioremap'ed addresses are resource_size_t
As mentioned by Ian Abbott, the pci address passed to ioremap should be a resource_size_t not an unsigned long. Use a local variable of that type to hold the pci_resource_start() that is passed to ioremp().
Set the dev->iobase to a dummy non-zero value so that the "detach" can use it as a flag to know that comedi_pci_disable() needs to be called.
Signed-off-by H Hartley Sweeten <[email protected]>
Reported-by Ian Abbott <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
--- drivers/staging/comedi/drivers/dt3000.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
drivers/staging/comedi/drivers/dt3000.c +4 -2
@@ -804,6 +804,7 @@ static int dt3000_attach(struct comedi_device *dev, struct comedi_devconfig *it) {struct pci_dev *pcidev;struct comedi_subdevice *s; +resource_size_t pci_base;int ret =0 ;dev_dbg (dev->class_dev,"dt3000:\n" );
@@ -820,9 +821,10 @@ static int dt3000_attach(struct comedi_device *dev, struct comedi_devconfig *it) ret =comedi_pci_enable (pcidev,"dt3000" );if (ret <0 )return ret; + dev->iobase =1 ;/* the "detach" needs this */ - dev->iobase =pci_resource_start (pcidev,0 ); - devpriv->io_addr =ioremap (dev->iobase,DT3000_SIZE ); + pci_base =pci_resource_start (pcidev,0 ); + devpriv->io_addr =ioremap (pci_base,DT3000_SIZE );if (!devpriv->io_addr)return -ENOMEM ;
Signature · 1 line
1.7.11