serial: isicomm: handle running out of slots
authorDan Carpenter <error27@gmail.com>
Fri, 7 May 2010 08:30:41 +0000 (10:30 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 21 May 2010 16:34:30 +0000 (09:34 -0700)
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>
drivers/char/isicom.c

index c1ab303455cf5b673d5684b6db72e453fd3e774f..98310e1aae306e482dd62e5a53c0983b06696846 100644 (file)
@@ -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);
 
        /* 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) {
                        board = &isi_card[index];
                        break;
                }
+       }
+       if (index == BOARD_COUNT) {
+               retval = -ENODEV;
+               goto err_disable;
+       }
 
        board->index = index;
        board->base = pci_resource_start(pdev, 3);
@@ -1624,6 +1629,7 @@ errunrr:
 errdec:
        board->base = 0;
        card_count--;
+err_disable:
        pci_disable_device(pdev);
 err:
        return retval;