Showing error 924

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/qlge/qlge_main.c
Line in file: 3541
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Undetermined 1
Entered: 2012-03-02 21:35:17 UTC


Source:

3511                                goto exit;
3512                        }
3513                if (ql_set_routing_reg
3514                    (qdev, RT_IDX_MCAST_MATCH_SLOT, RT_IDX_MCAST_MATCH, 1)) {
3515                        QPRINTK(qdev, HW, ERR,
3516                                "Failed to set multicast match mode.\n");
3517                } else {
3518                        set_bit(QL_ALLMULTI, &qdev->flags);
3519                }
3520        }
3521exit:
3522        spin_unlock(&qdev->hw_lock);
3523}
3524
3525static int qlge_set_mac_address(struct net_device *ndev, void *p)
3526{
3527        struct ql_adapter *qdev = (struct ql_adapter *)netdev_priv(ndev);
3528        struct sockaddr *addr = p;
3529
3530        if (netif_running(ndev))
3531                return -EBUSY;
3532
3533        if (!is_valid_ether_addr(addr->sa_data))
3534                return -EADDRNOTAVAIL;
3535        memcpy(ndev->dev_addr, addr->sa_data, ndev->addr_len);
3536
3537        spin_lock(&qdev->hw_lock);
3538        if (ql_set_mac_addr_reg(qdev, (u8 *) ndev->dev_addr,
3539                        MAC_ADDR_TYPE_CAM_MAC, qdev->func)) {/* Unicast */
3540                QPRINTK(qdev, HW, ERR, "Failed to load MAC address.\n");
3541                return -1;
3542        }
3543        spin_unlock(&qdev->hw_lock);
3544
3545        return 0;
3546}
3547
3548static void qlge_tx_timeout(struct net_device *ndev)
3549{
3550        struct ql_adapter *qdev = (struct ql_adapter *)netdev_priv(ndev);
3551        queue_delayed_work(qdev->workqueue, &qdev->asic_reset_work, 0);
Show full sources