Showing error 1295

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/tlan.c
Line in file: 2999
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-05-21 20:30:05 UTC


Source:

2969        nack = TLan_GetBit(TLAN_NET_SIO_MDATA, sio);        /* Check for ACK */
2970        TLan_SetBit(TLAN_NET_SIO_MCLK, sio);                /* Finish ACK */
2971        if (nack) {                                        /* No ACK, so fake it */
2972                for (i = 0; i < 16; i++) {
2973                        TLan_ClearBit(TLAN_NET_SIO_MCLK, sio);
2974                        TLan_SetBit(TLAN_NET_SIO_MCLK, sio);
2975                }
2976                tmp = 0xffff;
2977                err = TRUE;
2978        } else {                                        /* ACK, so read data */
2979                for (tmp = 0, i = 0x8000; i; i >>= 1) {
2980                        TLan_ClearBit(TLAN_NET_SIO_MCLK, sio);
2981                        if (TLan_GetBit(TLAN_NET_SIO_MDATA, sio))
2982                                tmp |= i;
2983                        TLan_SetBit(TLAN_NET_SIO_MCLK, sio);
2984                }
2985        }
2986
2987
2988        TLan_ClearBit(TLAN_NET_SIO_MCLK, sio);                /* Idle cycle */
2989        TLan_SetBit(TLAN_NET_SIO_MCLK, sio);
2990
2991        if ( minten )
2992                TLan_SetBit(TLAN_NET_SIO_MINTEN, sio);
2993
2994        *val = tmp;
2995
2996        if (!in_irq())
2997                spin_unlock_irqrestore(&priv->lock, flags);
2998
2999        return err;
3000
3001} /* TLan_MiiReadReg */
3002
3003
3004
3005
3006        /***************************************************************
3007         *        TLan_MiiSendData
3008         *
3009         *        Returns:
Show full sources