Showing error 1576

User: Jiri Slaby
Error type: Leaving function in locked state
Error type description: Some lock is not unlocked on all paths of a function, so it is leaked
File location: drivers/net/netxen/netxen_nic_hw.c
Line in file: 1116
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-05-29 20:11:37 UTC


Source:

1086                netxen_nic_pci_set_crbwindow_2M(adapter, &off);
1087        }
1088
1089        DPRINTK(1, INFO, "write data %lx to offset %llx, len=%d\n",
1090                        *(unsigned long *)data, off, len);
1091
1092        switch (len) {
1093        case 1:
1094                writeb(*(uint8_t *)data, (void *)off);
1095                break;
1096        case 2:
1097                writew(*(uint16_t *)data, (void *)off);
1098                break;
1099        case 4:
1100                writel(*(uint32_t *)data, (void *)off);
1101                break;
1102        case 8:
1103                writeq(*(uint64_t *)data, (void *)off);
1104                break;
1105        default:
1106                DPRINTK(1, INFO,
1107                        "writing data %lx to offset %llx, num words=%d\n",
1108                        *(unsigned long *)data, off, (len>>3));
1109                break;
1110        }
1111        if (rv == 1) {
1112                crb_win_unlock(adapter);
1113                write_unlock_irqrestore(&adapter->adapter_lock, flags);
1114        }
1115
1116        return 0;
1117}
1118
1119int
1120netxen_nic_hw_read_wx_2M(struct netxen_adapter *adapter,
1121                ulong off, void *data, int len)
1122{
1123        unsigned long flags = 0;
1124        int rv;
1125
1126        rv = netxen_nic_pci_get_crb_addr_2M(adapter, &off, len);
Show full sources