From: Xinghui Li <[email protected]>
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 <[email protected]>
---
io_uring/net.c | 16 +++++++++-------
io_uring/poll.c | 7 ++++---
2 files changed, 13 insertions(+), 10 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..e1cb81cca44c 100644
--- a/io_uring/poll.c
+++ b/io_uring/poll.c
@@ -596,9 +596,10 @@ 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) {
- apoll = container_of(entry, struct async_poll, cache);
+ } else if (!(issue_flags & IO_URING_F_UNLOCKED)) {
+ entry = io_alloc_cache_get(&ctx->apoll_cache);
+ if (entry != NULL)
+ apoll = container_of(entry, struct async_poll, cache);
} else {
apoll = kmalloc(sizeof(*apoll), GFP_ATOMIC);
if (unlikely(!apoll))
--
2.36.1
Hi,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[also build test WARNING on v6.1-rc3 next-20221101]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/korantwork-gmail-com/io_uring-fix-two-assignments-in-if-conditions/20221101-153152
patch link: https://lore.kernel.org/r/20221101072956.13028-1-korantwork%40gmail.com
patch subject: [PATCH] io_uring: fix two assignments in if conditions
config: i386-buildonly-randconfig-r005-20221031
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/239fabe2a26f6a5971378af7aa6bf17a15de1122
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review korantwork-gmail-com/io_uring-fix-two-assignments-in-if-conditions/20221101-153152
git checkout 239fabe2a26f6a5971378af7aa6bf17a15de1122
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <[email protected]>
All warnings (new ones prefixed by >>):
>> io_uring/poll.c:601:7: warning: variable 'apoll' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
if (entry != NULL)
^~~~~~~~~~~~~
io_uring/poll.c:608:2: note: uninitialized use occurs here
apoll->double_poll = NULL;
^~~~~
io_uring/poll.c:601:3: note: remove the 'if' if its condition is always true
if (entry != NULL)
^~~~~~~~~~~~~~~~~~
io_uring/poll.c:594:26: note: initialize the variable 'apoll' to silence this warning
struct async_poll *apoll;
^
= NULL
1 warning generated.
vim +601 io_uring/poll.c
588
589 static struct async_poll *io_req_alloc_apoll(struct io_kiocb *req,
590 unsigned issue_flags)
591 {
592 struct io_ring_ctx *ctx = req->ctx;
593 struct io_cache_entry *entry;
594 struct async_poll *apoll;
595
596 if (req->flags & REQ_F_POLLED) {
597 apoll = req->apoll;
598 kfree(apoll->double_poll);
599 } else if (!(issue_flags & IO_URING_F_UNLOCKED)) {
600 entry = io_alloc_cache_get(&ctx->apoll_cache);
> 601 if (entry != NULL)
602 apoll = container_of(entry, struct async_poll, cache);
603 } else {
604 apoll = kmalloc(sizeof(*apoll), GFP_ATOMIC);
605 if (unlikely(!apoll))
606 return NULL;
607 }
608 apoll->double_poll = NULL;
609 req->apoll = apoll;
610 return apoll;
611 }
612
--
0-DAY CI Kernel Test Service
https://01.org/lkp
在 2022/11/1 23:10,“kernel test robot”<[email protected]> 写入:
> Hi,
>
> Thank you for the patch! Perhaps something to improve:
>
> ......
> If you fix the issue, kindly add following tag where applicable
> | Reported-by: kernel test robot <[email protected]>
>
> All warnings (new ones prefixed by >>):
>
> >> io_uring/poll.c:601:7: warning: variable 'apoll' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
> if (entry != NULL)
> ^~~~~~~~~~~~~
> io_uring/poll.c:608:2: note: uninitialized use occurs here
> apoll->double_poll = NULL;
> ^~~~~
> io_uring/poll.c:601:3: note: remove the 'if' if its condition is always true
> if (entry != NULL)
> ^~~~~~~~~~~~~~~~~~
> io_uring/poll.c:594:26: note: initialize the variable 'apoll' to silence this warning
> struct async_poll *apoll;
> ^
> = NULL
> 1 warning generated.
>
>
> vim +601 io_uring/poll.c
>
It is do a problem, I will sent v2.
Thanks a lot!
--
0-DAY CI Kernel Test Service
https://01.org/lkp