Re: [PATCH V3] rxe: Fix a sleep-in-atomic bug in post_one_send

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 06/05/2017 04:30 PM, Moni Shoua wrote:
-                       if (qp->is_user&&  copy_from_user(p, (__user void *)
-                                           (uintptr_t)sge->addr, sge->length))
+                       spin_unlock_irqrestore(&qp->sq.sq_lock, *flags);
+                       err = copy_from_user(p, (__user void *)
+                                       (uintptr_t)sge->addr, sge->length);
+                       spin_lock_irqsave(&qp->sq.sq_lock, *flags);
+                       if (qp->is_user&&  err)
                                 return -EFAULT;
qp-_is_user is always false in this function (flow starts from
rxe_post_send_kernel) so this line is a dead code
In fact, this patch seems to add a serious bug when it uses
copy_from_user() from a non user pointer.
Do you agree?
I agree.
So, it is fine to me to remove this line, as you said in the former email:

 Second, I think that there is no flow that leads to this function
 when qp->is user is true so maybe the correct action is to remove this
 line completely
 if (qp->is_user&&  copy_from_user(p, (__user void *)



--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux