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 *)



Reply via email to