spin_lock_irqsave(&icom_lock, flags);
 
        port = icom_port->port;
+       if (port >= ARRAY_SIZE(stop_proc)) {
+               dev_err(&icom_port->adapter->pci_dev->dev,
+                       "Invalid port assignment\n");
+               goto unlock;
+       }
+
        if (port == 0 || port == 1)
                stop_proc[port].global_control_reg = &icom_port->global_reg->control;
        else
                stop_proc[port].global_control_reg = &icom_port->global_reg->control_2;
 
+       temp = readl(stop_proc[port].global_control_reg);
+       temp = (temp & ~start_proc[port].processor_id) | stop_proc[port].processor_id;
+       writel(temp, stop_proc[port].global_control_reg);
 
-       if (port < 4) {
-               temp = readl(stop_proc[port].global_control_reg);
-               temp =
-                       (temp & ~start_proc[port].processor_id) | stop_proc[port].processor_id;
-               writel(temp, stop_proc[port].global_control_reg);
-
-               /* write flush */
-               readl(stop_proc[port].global_control_reg);
-       } else {
-               dev_err(&icom_port->adapter->pci_dev->dev,
-                        "Invalid port assignment\n");
-       }
+       /* write flush */
+       readl(stop_proc[port].global_control_reg);
 
+unlock:
        spin_unlock_irqrestore(&icom_lock, flags);
 }
 
        spin_lock_irqsave(&icom_lock, flags);
 
        port = icom_port->port;
+       if (port >= ARRAY_SIZE(start_proc)) {
+               dev_err(&icom_port->adapter->pci_dev->dev,
+                       "Invalid port assignment\n");
+               goto unlock;
+       }
+
        if (port == 0 || port == 1)
                start_proc[port].global_control_reg = &icom_port->global_reg->control;
        else
                start_proc[port].global_control_reg = &icom_port->global_reg->control_2;
-       if (port < 4) {
-               temp = readl(start_proc[port].global_control_reg);
-               temp =
-                       (temp & ~stop_proc[port].processor_id) | start_proc[port].processor_id;
-               writel(temp, start_proc[port].global_control_reg);
 
-               /* write flush */
-               readl(start_proc[port].global_control_reg);
-       } else {
-               dev_err(&icom_port->adapter->pci_dev->dev,
-                        "Invalid port assignment\n");
-       }
+       temp = readl(start_proc[port].global_control_reg);
+       temp = (temp & ~stop_proc[port].processor_id) | start_proc[port].processor_id;
+       writel(temp, start_proc[port].global_control_reg);
+
+       /* write flush */
+       readl(start_proc[port].global_control_reg);
 
+unlock:
        spin_unlock_irqrestore(&icom_lock, flags);
 }
 
         */
        spin_lock_irqsave(&icom_lock, flags);
        port = icom_port->port;
+       if (port >= ARRAY_SIZE(int_mask_tbl)) {
+               dev_err(&icom_port->adapter->pci_dev->dev,
+                       "Invalid port assignment\n");
+               goto unlock;
+       }
+
        if (port == 0 || port == 1)
                int_mask_tbl[port].global_int_mask = &icom_port->global_reg->int_mask;
        else
                writew(0x00FF, icom_port->int_reg);
        else
                writew(0x3F00, icom_port->int_reg);
-       if (port < 4) {
-               temp = readl(int_mask_tbl[port].global_int_mask);
-               writel(temp & ~int_mask_tbl[port].processor_id, int_mask_tbl[port].global_int_mask);
 
-               /* write flush */
-               readl(int_mask_tbl[port].global_int_mask);
-       } else {
-               dev_err(&icom_port->adapter->pci_dev->dev,
-                        "Invalid port assignment\n");
-       }
+       temp = readl(int_mask_tbl[port].global_int_mask);
+       writel(temp & ~int_mask_tbl[port].processor_id, int_mask_tbl[port].global_int_mask);
+
+       /* write flush */
+       readl(int_mask_tbl[port].global_int_mask);
 
+unlock:
        spin_unlock_irqrestore(&icom_lock, flags);
        return 0;
 }
         * disable all interrupts
         */
        port = icom_port->port;
+       if (port >= ARRAY_SIZE(int_mask_tbl)) {
+               dev_err(&icom_port->adapter->pci_dev->dev,
+                       "Invalid port assignment\n");
+               goto unlock;
+       }
        if (port == 0 || port == 1)
                int_mask_tbl[port].global_int_mask = &icom_port->global_reg->int_mask;
        else
                int_mask_tbl[port].global_int_mask = &icom_port->global_reg->int_mask_2;
 
-       if (port < 4) {
-               temp = readl(int_mask_tbl[port].global_int_mask);
-               writel(temp | int_mask_tbl[port].processor_id, int_mask_tbl[port].global_int_mask);
+       temp = readl(int_mask_tbl[port].global_int_mask);
+       writel(temp | int_mask_tbl[port].processor_id, int_mask_tbl[port].global_int_mask);
 
-               /* write flush */
-               readl(int_mask_tbl[port].global_int_mask);
-       } else {
-               dev_err(&icom_port->adapter->pci_dev->dev,
-                        "Invalid port assignment\n");
-       }
+       /* write flush */
+       readl(int_mask_tbl[port].global_int_mask);
+
+unlock:
        spin_unlock_irqrestore(&icom_lock, flags);
 
        /*