mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-12 00:38:55 +00:00
[PATCH] sgiioc4: check for no hwifs available
Add a check to the sgiioc4 driver for the case where all available ide_hwifs structures are in use. Signed-off-by: Jeremy Higdon <jeremy@sgi.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
This commit is contained in:
parent
acd9b7b4e0
commit
deb5e5c0c6
@ -622,12 +622,18 @@ sgiioc4_ide_setup_pci_device(struct pci_dev *dev, ide_pci_device_t * d)
|
|||||||
ide_hwif_t *hwif;
|
ide_hwif_t *hwif;
|
||||||
int h;
|
int h;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Find an empty HWIF; if none available, return -ENOMEM.
|
||||||
|
*/
|
||||||
for (h = 0; h < MAX_HWIFS; ++h) {
|
for (h = 0; h < MAX_HWIFS; ++h) {
|
||||||
hwif = &ide_hwifs[h];
|
hwif = &ide_hwifs[h];
|
||||||
/* Find an empty HWIF */
|
|
||||||
if (hwif->chipset == ide_unknown)
|
if (hwif->chipset == ide_unknown)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if (h == MAX_HWIFS) {
|
||||||
|
printk(KERN_ERR "%s: too many IDE interfaces, no room in table\n", d->name);
|
||||||
|
return -ENOMEM;
|
||||||
|
}
|
||||||
|
|
||||||
/* Get the CmdBlk and CtrlBlk Base Registers */
|
/* Get the CmdBlk and CtrlBlk Base Registers */
|
||||||
base = pci_resource_start(dev, 0) + IOC4_CMD_OFFSET;
|
base = pci_resource_start(dev, 0) + IOC4_CMD_OFFSET;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user