Skip to content

Commit

Permalink
staging: comedi: amplc_dio200: check bus type in detach routine
Browse files Browse the repository at this point in the history
When detaching the device in dio200_detach() mirror the bus type checks
performed by dio200_attach().  The existing tests are safe but rely on
dev->iobase being 0 when comedi_to_pci_dev(dev) is NULL.

Signed-off-by: Ian Abbott <abbotti@mev.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Ian Abbott authored and Greg Kroah-Hartman committed Aug 14, 2012
1 parent d99ff52 commit b751888
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions drivers/staging/comedi/drivers/amplc_dio200.c
Original file line number Diff line number Diff line change
Expand Up @@ -1417,7 +1417,6 @@ static int __devinit dio200_attach_pci(struct comedi_device *dev,
static void dio200_detach(struct comedi_device *dev)
{
const struct dio200_board *thisboard = comedi_board(dev);
struct pci_dev *pcidev = comedi_to_pci_dev(dev);
const struct dio200_layout_struct *layout;
unsigned n;

Expand All @@ -1442,13 +1441,16 @@ static void dio200_detach(struct comedi_device *dev)
}
}
}
if (pcidev) {
if (dev->iobase)
comedi_pci_disable(pcidev);
pci_dev_put(pcidev);
} else {
if (IS_ISA_BOARD(thisboard)) {
if (dev->iobase)
release_region(dev->iobase, DIO200_IO_SIZE);
} else if (IS_PCI_BOARD(thisboard)) {
struct pci_dev *pcidev = comedi_to_pci_dev(dev);
if (pcidev) {
if (dev->iobase)
comedi_pci_disable(pcidev);
pci_dev_put(pcidev);
}
}
}

Expand Down

0 comments on commit b751888

Please sign in to comment.