Showing error 532

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/qla3xxx.c
Line in file: 148
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2011-11-07 22:19:02 UTC


Source:

 118static void ql_sem_unlock(struct ql3_adapter *qdev, u32 sem_mask)
 119{
 120        struct ql3xxx_port_registers __iomem *port_regs = qdev->mem_map_registers;
 121        writel(sem_mask, &port_regs->CommonRegs.semaphoreReg);
 122        readl(&port_regs->CommonRegs.semaphoreReg);
 123}
 124
 125static int ql_sem_lock(struct ql3_adapter *qdev, u32 sem_mask, u32 sem_bits)
 126{
 127        struct ql3xxx_port_registers __iomem *port_regs = qdev->mem_map_registers;
 128        u32 value;
 129
 130        writel((sem_mask | sem_bits), &port_regs->CommonRegs.semaphoreReg);
 131        value = readl(&port_regs->CommonRegs.semaphoreReg);
 132        return ((value & (sem_mask >> 16)) == sem_bits);
 133}
 134
 135/*
 136 * Caller holds hw_lock.
 137 */
 138static int ql_wait_for_drvr_lock(struct ql3_adapter *qdev)
 139{
 140        int i = 0;
 141
 142        while (1) {
 143                if (!ql_sem_lock(qdev,
 144                                 QL_DRVR_SEM_MASK,
 145                                 (QL_RESOURCE_BITS_BASE_CODE | (qdev->mac_index)
 146                                  * 2) << 1)) {
 147                        if (i < 10) {
 148                                ssleep(1);
 149                                i++;
 150                        } else {
 151                                printk(KERN_ERR PFX "%s: Timed out waiting for "
 152                                       "driver lock...\n",
 153                                       qdev->ndev->name);
 154                                return 0;
 155                        }
 156                } else {
 157                        printk(KERN_DEBUG PFX
 158                               "%s: driver lock acquired.\n",
Show full sources