mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
serial: isicomm: handle running out of slots
This patch makes it return -ENODEV if we run out of empty slots in the probe function. It's unlikely to happen, but it makes the static checkers happy. Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
e114474cf5
commit
26e1e8d1d1
@ -1573,11 +1573,16 @@ static int __devinit isicom_probe(struct pci_dev *pdev,
|
|||||||
dev_info(&pdev->dev, "ISI PCI Card(Device ID 0x%x)\n", ent->device);
|
dev_info(&pdev->dev, "ISI PCI Card(Device ID 0x%x)\n", ent->device);
|
||||||
|
|
||||||
/* allot the first empty slot in the array */
|
/* allot the first empty slot in the array */
|
||||||
for (index = 0; index < BOARD_COUNT; index++)
|
for (index = 0; index < BOARD_COUNT; index++) {
|
||||||
if (isi_card[index].base == 0) {
|
if (isi_card[index].base == 0) {
|
||||||
board = &isi_card[index];
|
board = &isi_card[index];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (index == BOARD_COUNT) {
|
||||||
|
retval = -ENODEV;
|
||||||
|
goto err_disable;
|
||||||
|
}
|
||||||
|
|
||||||
board->index = index;
|
board->index = index;
|
||||||
board->base = pci_resource_start(pdev, 3);
|
board->base = pci_resource_start(pdev, 3);
|
||||||
@ -1624,6 +1629,7 @@ errunrr:
|
|||||||
errdec:
|
errdec:
|
||||||
board->base = 0;
|
board->base = 0;
|
||||||
card_count--;
|
card_count--;
|
||||||
|
err_disable:
|
||||||
pci_disable_device(pdev);
|
pci_disable_device(pdev);
|
||||||
err:
|
err:
|
||||||
return retval;
|
return retval;
|
||||||
|
Loading…
Reference in New Issue
Block a user