io_uring/net.c | 16 +++++++++------- io_uring/poll.c | 7 +++++-- 2 files changed, 14 insertions(+), 9 deletions(-)
From: Xinghui Li <korantli@tencent.com>
Fixs two error:
"ERROR: do not use assignment in if condition
130: FILE: io_uring/net.c:130:
+ if (!(issue_flags & IO_URING_F_UNLOCKED) &&
ERROR: do not use assignment in if condition
599: FILE: io_uring/poll.c:599:
+ } else if (!(issue_flags & IO_URING_F_UNLOCKED) &&"
reported by checkpatch.pl in net.c and poll.c .
Signed-off-by: Xinghui Li <korantli@tencent.com>
Reported-by: kernel test robot <lkp@intel.com>
---
io_uring/net.c | 16 +++++++++-------
io_uring/poll.c | 7 +++++--
2 files changed, 14 insertions(+), 9 deletions(-)
diff --git a/io_uring/net.c b/io_uring/net.c
index 15dea91625e2..cbd655c88499 100644
--- a/io_uring/net.c
+++ b/io_uring/net.c
@@ -127,13 +127,15 @@ static struct io_async_msghdr *io_msg_alloc_async(struct io_kiocb *req,
struct io_cache_entry *entry;
struct io_async_msghdr *hdr;
- if (!(issue_flags & IO_URING_F_UNLOCKED) &&
- (entry = io_alloc_cache_get(&ctx->netmsg_cache)) != NULL) {
- hdr = container_of(entry, struct io_async_msghdr, cache);
- hdr->free_iov = NULL;
- req->flags |= REQ_F_ASYNC_DATA;
- req->async_data = hdr;
- return hdr;
+ if (!(issue_flags & IO_URING_F_UNLOCKED)) {
+ entry = io_alloc_cache_get(&ctx->netmsg_cache);
+ if (entry != NULL) {
+ hdr = container_of(entry, struct io_async_msghdr, cache);
+ hdr->free_iov = NULL;
+ req->flags |= REQ_F_ASYNC_DATA;
+ req->async_data = hdr;
+ return hdr;
+ }
}
if (!io_alloc_async_data(req)) {
diff --git a/io_uring/poll.c b/io_uring/poll.c
index 0d9f49c575e0..4b3b4441e9ca 100644
--- a/io_uring/poll.c
+++ b/io_uring/poll.c
@@ -596,10 +596,13 @@ static struct async_poll *io_req_alloc_apoll(struct io_kiocb *req,
if (req->flags & REQ_F_POLLED) {
apoll = req->apoll;
kfree(apoll->double_poll);
- } else if (!(issue_flags & IO_URING_F_UNLOCKED) &&
- (entry = io_alloc_cache_get(&ctx->apoll_cache)) != NULL) {
+ } else if (!(issue_flags & IO_URING_F_UNLOCKED)) {
+ entry = io_alloc_cache_get(&ctx->apoll_cache);
+ if (entry == NULL)
+ goto out;
apoll = container_of(entry, struct async_poll, cache);
} else {
+out:
apoll = kmalloc(sizeof(*apoll), GFP_ATOMIC);
if (unlikely(!apoll))
return NULL;
--
2.34.1
On Wed, 2 Nov 2022 16:25:03 +0800, korantwork@gmail.com wrote:
> From: Xinghui Li <korantli@tencent.com>
>
> Fixs two error:
>
> "ERROR: do not use assignment in if condition
> 130: FILE: io_uring/net.c:130:
> + if (!(issue_flags & IO_URING_F_UNLOCKED) &&
>
> [...]
Applied, thanks!
[1/1] io_uring: fix two assignments in if conditions
commit: c71afa164bfe91f0825c359940899e539abcb6b7
Best regards,
--
Jens Axboe
On 11/2/22 2:25 AM, korantwork@gmail.com wrote: > From: Xinghui Li <korantli@tencent.com> > > Fixs two error: > > "ERROR: do not use assignment in if condition > 130: FILE: io_uring/net.c:130: > + if (!(issue_flags & IO_URING_F_UNLOCKED) && > > ERROR: do not use assignment in if condition > 599: FILE: io_uring/poll.c:599: > + } else if (!(issue_flags & IO_URING_F_UNLOCKED) &&" > reported by checkpatch.pl in net.c and poll.c . I'm not super excited about this patch as the previous one wasn't even compiled? Did you test this one, compile and runtime? -- Jens Axboe
在 2022/11/2 22:19,“Jens Axboe”<axboe@kernel.dk> 写入: > On 11/2/22 2:25 AM, korantwork@gmail.com wrote: > > From: Xinghui Li <korantli@tencent.com> > > > > Fixs two error: > > > > "ERROR: do not use assignment in if condition > > 130: FILE: io_uring/net.c:130: > > + if (!(issue_flags & IO_URING_F_UNLOCKED) && > > > > ERROR: do not use assignment in if condition > > 599: FILE: io_uring/poll.c:599: > > + } else if (!(issue_flags & IO_URING_F_UNLOCKED) &&" > > reported by checkpatch.pl in net.c and poll.c . > > I'm not super excited about this patch as the previous one > wasn't even compiled? Did you test this one, compile and runtime? > First of all, I'm really really really SORRY for the last stupid warning and my careless. But I did make kernel and install it in my device. Also, I did the fio test with polling. However, there is no warning be reported by 'make' command. But when I check the patch code with 'smatch', I did find that warning. I realized how stupid that mistake was.... So, in addition to compiling and installing this kernel, I also checked the code using the static analysis tool this time. There is no new error or warning. " make -j64 CHECK="~/workspace/smatch/smatch" C=1 DESCEND objtool CALL scripts/checksyscalls.sh CC io_uring/net.o CC io_uring/poll.o CHECK io_uring/poll.c io_uring/poll.c: note: in included file (through io_uring/io_uring.h): io_uring/slist.h:138:29: warning: no newline at end of file CHECK io_uring/net.c io_uring/poll.c: note: in included file (through include/trace/events/io_uring.h): ./include/linux/io_uring_types.h:151:37: warning: array of flexible structures io_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: note: in included file (through io_uring/io_uring.h): ./include/linux/io_uring_types.h:151:37: warning: array of flexible structures ... BUILD arch/x86/boot/bzImage Kernel: arch/x86/boot/bzImage is ready (#10) " Again, I am ashamed of the previous mistake. And I totally understand if you reject this one.
On 11/2/22 8:50 PM, Xinghui Li wrote: > > > ?? 2022/11/2 22:19??Jens Axboe?<axboe@kernel.dk> ??: > >> On 11/2/22 2:25 AM, korantwork@gmail.com wrote: >> > From: Xinghui Li <korantli@tencent.com> >> > >> > Fixs two error: >> > >> > "ERROR: do not use assignment in if condition >> > 130: FILE: io_uring/net.c:130: >> > + if (!(issue_flags & IO_URING_F_UNLOCKED) && >> > >> > ERROR: do not use assignment in if condition >> > 599: FILE: io_uring/poll.c:599: >> > + } else if (!(issue_flags & IO_URING_F_UNLOCKED) &&" >> > reported by checkpatch.pl in net.c and poll.c . >> >> I'm not super excited about this patch as the previous one >> wasn't even compiled? Did you test this one, compile and runtime? >> > > First of all, I'm really really really SORRY for the last stupid > warning and my careless. But I did make kernel and install it in my > device. Also, I did the fio test with polling. However, there is no > warning be reported by 'make' command. But when I check the patch code > with 'smatch', I did find that warning. I realized how stupid that > mistake was.... So, in addition to compiling and installing this > kernel, I also checked the code using the static analysis tool this > time. There is no new error or warning. > " > make -j64 CHECK="~/workspace/smatch/smatch" C=1 > DESCEND objtool > CALL scripts/checksyscalls.sh > CC io_uring/net.o > CC io_uring/poll.o > CHECK io_uring/poll.c > io_uring/poll.c: note: in included file (through io_uring/io_uring.h): > io_uring/slist.h:138:29: warning: no newline at end of file > CHECK io_uring/net.c > io_uring/poll.c: note: in included file (through include/trace/events/io_uring.h): > ./include/linux/io_uring_types.h:151:37: warning: array of flexible structures > io_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: note: in included file (through io_uring/io_uring.h): > ./include/linux/io_uring_types.h:151:37: warning: array of flexible structures > ... > BUILD arch/x86/boot/bzImage > Kernel: arch/x86/boot/bzImage is ready (#10) > " > > Again, I am ashamed of the previous mistake. And I totally understand > if you reject this one. All good, thanks for doing the due diligence this time around for v2. I'll get it applied for 6.2, thanks. -- Jens Axboe
© 2016 - 2026 Red Hat, Inc.