浏览代码

Net: qla3xxx, remove sleeping in atomic

We cannot sleep in ql_reset_work under spinlock, unlock before sleep,
relock after.

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Jiri Slaby 16 年之前
父节点
当前提交
83b462c656
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      drivers/net/qla3xxx.c

+ 2 - 0
drivers/net/qla3xxx.c

@@ -3837,7 +3837,9 @@ static void ql_reset_work(struct work_struct *work)
 						      16) | ISP_CONTROL_RI));
 						      16) | ISP_CONTROL_RI));
 			}
 			}
 
 
+			spin_unlock_irqrestore(&qdev->hw_lock, hw_flags);
 			ssleep(1);
 			ssleep(1);
+			spin_lock_irqsave(&qdev->hw_lock, hw_flags);
 		} while (--max_wait_time);
 		} while (--max_wait_time);
 		spin_unlock_irqrestore(&qdev->hw_lock, hw_flags);
 		spin_unlock_irqrestore(&qdev->hw_lock, hw_flags);