Showing error 531

User: Jiri Slaby
Error type: Calling function from invalid context
Error type description: Some function is called at inappropriate place like sleep inside critical sections or interrupt handlers
File location: drivers/net/qlge/qlge_main.c
Line in file: 3101
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2011-11-07 22:19:02 UTC


Source:

3071                QPRINTK(qdev, IFUP, INFO, "Enabling NAPI for rx_ring[%d].\n",
3072                        i);
3073                napi_enable(&qdev->rx_ring[i].napi);
3074        }
3075
3076        return status;
3077}
3078
3079/* Issue soft reset to chip. */
3080static int ql_adapter_reset(struct ql_adapter *qdev)
3081{
3082        u32 value;
3083        int max_wait_time;
3084        int status = 0;
3085        int resetCnt = 0;
3086
3087#define MAX_RESET_CNT   1
3088issueReset:
3089        resetCnt++;
3090        QPRINTK(qdev, IFDOWN, DEBUG, "Issue soft reset to chip.\n");
3091        ql_write32(qdev, RST_FO, (RST_FO_FR << 16) | RST_FO_FR);
3092        /* Wait for reset to complete. */
3093        max_wait_time = 3;
3094        QPRINTK(qdev, IFDOWN, DEBUG, "Wait %d seconds for reset to complete.\n",
3095                max_wait_time);
3096        do {
3097                value = ql_read32(qdev, RST_FO);
3098                if ((value & RST_FO_FR) == 0)
3099                        break;
3100
3101                ssleep(1);
3102        } while ((--max_wait_time));
3103        if (value & RST_FO_FR) {
3104                QPRINTK(qdev, IFDOWN, ERR,
3105                        "Stuck in SoftReset:  FSC_SR:0x%08x\n", value);
3106                if (resetCnt < MAX_RESET_CNT)
3107                        goto issueReset;
3108        }
3109        if (max_wait_time == 0) {
3110                status = -ETIMEDOUT;
3111                QPRINTK(qdev, IFDOWN, ERR,
Show full sources