Message ID | 20220805115450.3921352-1-dylany@fb.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | io_uring: fix io_recvmsg_prep_multishot casts | expand |
On 8/5/22 5:54 AM, Dylan Yudaken wrote: > Fix casts missing the __user parts. This seemed to only cause errors on > the alpha build, but it was definitely an oversight. > > Reported-by: kernel test robot <lkp@intel.com> > Fixes: 9bb66906f23e ("io_uring: support multishot in recvmsg") > Signed-off-by: Dylan Yudaken <dylany@fb.com> > --- > > Hi, > > I tried to reproduce this issue to be sure this fixes it, but I could not get the > warnings out of the gcc I have locally. > That being said it seems like a fairly clear fix. If you do: axboe@m1 ~/gi/linux-block (io_uring-6.0)> make C=1 io_uring/net.o o_uring/net.c: note: in included file (through io_uring/io_uring.h): io_uring/slist.h:138:29: warning: no newline at end of file io_uring/net.c:579:44: warning: incorrect type in assignment (different address spaces) io_uring/net.c:579:44: expected void [noderef] __user *msg_control_user io_uring/net.c:579:44: got void * io_uring/net.c:584:14: warning: incorrect type in assignment (different address spaces) io_uring/net.c:584:14: expected void [noderef] __user * io_uring/net.c:584:14: got void * it'll show it, you need 'sparse' installed for that.
On Fri, 5 Aug 2022 04:54:50 -0700, Dylan Yudaken wrote: > Fix casts missing the __user parts. This seemed to only cause errors on > the alpha build, but it was definitely an oversight. > > Applied, thanks! [1/1] io_uring: fix io_recvmsg_prep_multishot casts commit: d1f6222c4978817712e0f2825ce9e830763f0695 Best regards,
diff --git a/io_uring/net.c b/io_uring/net.c index 32fc3da04e41..fa7a28b6bad5 100644 --- a/io_uring/net.c +++ b/io_uring/net.c @@ -575,12 +575,12 @@ static int io_recvmsg_prep_multishot(struct io_async_msghdr *kmsg, if (kmsg->controllen) { unsigned long control = ubuf + hdr - kmsg->controllen; - kmsg->msg.msg_control_user = (void *) control; + kmsg->msg.msg_control_user = (void __user *) control; kmsg->msg.msg_controllen = kmsg->controllen; } sr->buf = *buf; /* stash for later copy */ - *buf = (void *) (ubuf + hdr); + *buf = (void __user *) (ubuf + hdr); kmsg->payloadlen = *len = *len - hdr; return 0; }
Fix casts missing the __user parts. This seemed to only cause errors on the alpha build, but it was definitely an oversight. Reported-by: kernel test robot <lkp@intel.com> Fixes: 9bb66906f23e ("io_uring: support multishot in recvmsg") Signed-off-by: Dylan Yudaken <dylany@fb.com> --- Hi, I tried to reproduce this issue to be sure this fixes it, but I could not get the warnings out of the gcc I have locally. That being said it seems like a fairly clear fix. io_uring/net.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) base-commit: b2a88c212e652e94f1e4b635910972ac57ba4e97