head_up parameter is marked with __user attribute, tmp is filled by a copy_from_user from next, that is also marked as __user, so tmp.next needs to be "casted" as __user to make sparse happy.
Signed-off-by: Marcos Paulo de Souza <marcos.souza....@gmail.com> --- this is mt first patch addressing an issue of sparse, so let me know if I misunderstood the error message drivers/staging/lustre/lnet/selftest/conrpc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/lustre/lnet/selftest/conrpc.c b/drivers/staging/lustre/lnet/selftest/conrpc.c index c6a683b..fb7ad74 100644 --- a/drivers/staging/lustre/lnet/selftest/conrpc.c +++ b/drivers/staging/lustre/lnet/selftest/conrpc.c @@ -487,7 +487,7 @@ lstcon_rpc_trans_interpreter(struct lstcon_rpc_trans *trans, sizeof(struct list_head))) return -EFAULT; - if (tmp.next == head_up) + if ((struct list_head __user *)tmp.next == head_up) return 0; next = tmp.next; -- 2.9.3