mirror of
https://github.com/torvalds/linux.git
synced 2024-12-15 07:33:56 +00:00
IB/hfi1: Don't call cond_resched in atomic mode when sending packets
This patch fixed the problem where the driver might reschedule in atomic mode when sending packets. This is due to the fact that the call to cond_resched() in hfi1_do_send() might occur in atomic mode and a check is required to avoid the warning message: "kernel: BUG: scheduling while atomic: swapper/2/0/0x10000100." Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com> Signed-off-by: Kaike Wan <kaike.wan@intel.com> Signed-off-by: Jubin John <jubin.john@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
parent
528ee9fbf0
commit
831464ce4b
@ -906,8 +906,11 @@ void hfi1_do_send(struct rvt_qp *qp)
|
||||
*ps.ppd->dd->send_schedule);
|
||||
return;
|
||||
}
|
||||
cond_resched();
|
||||
this_cpu_inc(*ps.ppd->dd->send_schedule);
|
||||
if (!irqs_disabled()) {
|
||||
cond_resched();
|
||||
this_cpu_inc(
|
||||
*ps.ppd->dd->send_schedule);
|
||||
}
|
||||
timeout = jiffies + (timeout_int) / 8;
|
||||
}
|
||||
spin_lock_irqsave(&qp->s_lock, flags);
|
||||
|
Loading…
Reference in New Issue
Block a user