From: Dan Carpenter <dan.carpenter@linaro.org>
To: oe-kbuild@lists.linux.dev, Ben Hutchings <bwh@kernel.org>
Cc: lkp@intel.com, oe-kbuild-all@lists.linux.dev
Subject: [cip:linux-4.4.y-st-rt 2126/22961] kernel/sched/swork.c:63 swork_kthread() warn: test_and_clear_bit() takes a bit number
Date: Thu, 16 May 2024 13:19:03 +0200 [thread overview]
Message-ID: <7a9c96f7-2a1f-48da-87f2-3910b83085bc@suswa.mountain> (raw)
Hi Mike,
FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/cip/linux-cip.git linux-4.4.y-st-rt
head: 9addf64126a0035adf546b88a6519e544b3c0f16
commit: 6e24e49bf39d3d991503abafd28ac01d50c17994 [2126/22961] work-simple: Rename work-simple.[ch] to swork.[ch] for consistency
config: i386-randconfig-141-20240513 (https://download.01.org/0day-ci/archive/20240516/202405160909.1U7ADcVS-lkp@intel.com/config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202405160909.1U7ADcVS-lkp@intel.com/
smatch warnings:
kernel/sched/swork.c:63 swork_kthread() warn: test_and_clear_bit() takes a bit number
kernel/sched/swork.c:113 swork_queue() warn: test_and_set_bit() takes a bit number
vim +63 kernel/sched/swork.c
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 44 static int swork_kthread(void *arg)
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 45 {
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 46 struct sworker *worker = arg;
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 47
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 48 for (;;) {
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 49 swait_event_interruptible(worker->wq,
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 50 swork_readable(worker));
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 51 if (kthread_should_stop())
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 52 break;
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 53
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 54 raw_spin_lock_irq(&worker->lock);
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 55 while (!list_empty(&worker->events)) {
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 56 struct swork_event *sev;
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 57
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 58 sev = list_first_entry(&worker->events,
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 59 struct swork_event, item);
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 60 list_del(&sev->item);
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 61 raw_spin_unlock_irq(&worker->lock);
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 62
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 @63 WARN_ON_ONCE(!test_and_clear_bit(SWORK_EVENT_PENDING,
This warning means that SWORK_EVENT_PENDING() is probably a BIT(x)
define, but test_and_clear_bit() just takes x. It's a double shift
bug, BIT(BIT(x)). Which is won't cause an issue if it's done
consistently and x is small.
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 64 &sev->flags));
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 65 sev->func(sev);
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 66 raw_spin_lock_irq(&worker->lock);
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 67 }
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 68 raw_spin_unlock_irq(&worker->lock);
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 69 }
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 70 return 0;
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 71 }
[ snip ]
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 109 bool swork_queue(struct swork_event *sev)
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 110 {
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 111 unsigned long flags;
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 112
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 @113 if (test_and_set_bit(SWORK_EVENT_PENDING, &sev->flags))
^^^^^^^^^^^^^^^^^^^
Same.
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 114 return false;
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 115
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 116 raw_spin_lock_irqsave(&glob_worker->lock, flags);
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 117 list_add_tail(&sev->item, &glob_worker->events);
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 118 raw_spin_unlock_irqrestore(&glob_worker->lock, flags);
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 119
ad64c64a8f7ac0 kernel/sched/work-simple.c Sebastian Andrzej Siewior 2016-03-09 120 swake_up(&glob_worker->wq);
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 121 return true;
d19fa60f5d71b6 kernel/sched/work-simple.c Daniel Wagner 2014-07-11 122 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next reply other threads:[~2024-05-16 11:19 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-16 11:19 Dan Carpenter [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-05-21 18:03 [cip:linux-4.4.y-st-rt 2126/22961] kernel/sched/swork.c:63 swork_kthread() warn: test_and_clear_bit() takes a bit number kernel test robot
2024-05-19 6:13 kernel test robot
2024-05-16 1:49 kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7a9c96f7-2a1f-48da-87f2-3910b83085bc@suswa.mountain \
--to=dan.carpenter@linaro.org \
--cc=bwh@kernel.org \
--cc=lkp@intel.com \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=oe-kbuild@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).