[kbuild] Re: [PATCH V4 1/8] block, bfq: split sync bfq_queues on a per-actuator basis

From: Dan Carpenter
Date: Fri Oct 21 2022 - 08:57:35 EST


Hi Paolo,

https://git-scm.com/docs/git-format-patch#_base_tree_information ]

url: https://github.com/intel-lab-lkp/linux/commits/Paolo-Valente/block-bfq-extend-bfq-to-support-multi-actuator-drives/20221020-233011
base: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git for-next
patch link: https://lore.kernel.org/r/20221020152643.21199-2-paolo.valente%40linaro.org
patch subject: [PATCH V4 1/8] block, bfq: split sync bfq_queues on a per-actuator basis
config: openrisc-randconfig-m041-20221019
compiler: or1k-linux-gcc (GCC) 12.1.0

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>

New smatch warnings:
block/bfq-iosched.c:5423 bfq_exit_icq() error: we previously assumed 'bfqd' could be null (see line 5420)
block/bfq-iosched.c:5431 bfq_exit_icq() warn: variable dereferenced before check 'bfqd' (see line 5423)

Old smatch warnings:
block/bfq-iosched.c:6115 __bfq_insert_request() warn: variable dereferenced before check 'bfqq' (see line 6111)

vim +/bfqd +5423 block/bfq-iosched.c

aee69d78dec0ff Paolo Valente 2017-04-19 5409 static void bfq_exit_icq(struct io_cq *icq)
aee69d78dec0ff Paolo Valente 2017-04-19 5410 {
aee69d78dec0ff Paolo Valente 2017-04-19 5411 struct bfq_io_cq *bic = icq_to_bic(icq);
fc8f914d9fc5a0 Paolo Valente 2022-10-20 5412 struct bfq_data *bfqd = bic_to_bfqd(bic);
fc8f914d9fc5a0 Paolo Valente 2022-10-20 5413 unsigned long flags;
fc8f914d9fc5a0 Paolo Valente 2022-10-20 5414 unsigned int act_idx;
430a67f9d6169a Paolo Valente 2021-03-04 5415
430a67f9d6169a Paolo Valente 2021-03-04 5416 /*
fc8f914d9fc5a0 Paolo Valente 2022-10-20 5417 * bfqd is NULL if scheduler already exited, and in that case
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

fc8f914d9fc5a0 Paolo Valente 2022-10-20 5418 * this is the last time these queues are accessed.
430a67f9d6169a Paolo Valente 2021-03-04 5419 */
fc8f914d9fc5a0 Paolo Valente 2022-10-20 @5420 if (bfqd)
430a67f9d6169a Paolo Valente 2021-03-04 5421 spin_lock_irqsave(&bfqd->lock, flags);
fc8f914d9fc5a0 Paolo Valente 2022-10-20 5422
fc8f914d9fc5a0 Paolo Valente 2022-10-20 @5423 for (act_idx = 0; act_idx < bfqd->num_actuators; act_idx++) {
^^^^^^^^^^^^^^^^^^^
If "bfqd" is NULL then we're toasted.

fc8f914d9fc5a0 Paolo Valente 2022-10-20 5424 if (bic->stable_merge_bfqq)
430a67f9d6169a Paolo Valente 2021-03-04 5425 bfq_put_stable_ref(bic->stable_merge_bfqq);
fc8f914d9fc5a0 Paolo Valente 2022-10-20 5426
fc8f914d9fc5a0 Paolo Valente 2022-10-20 5427 bfq_exit_icq_bfqq(bic, true, act_idx);
fc8f914d9fc5a0 Paolo Valente 2022-10-20 5428 bfq_exit_icq_bfqq(bic, false, act_idx);
430a67f9d6169a Paolo Valente 2021-03-04 5429 }
430a67f9d6169a Paolo Valente 2021-03-04 5430
fc8f914d9fc5a0 Paolo Valente 2022-10-20 @5431 if (bfqd)
fc8f914d9fc5a0 Paolo Valente 2022-10-20 5432 spin_unlock_irqrestore(&bfqd->lock, flags);
aee69d78dec0ff Paolo Valente 2017-04-19 5433 }

--
0-DAY CI Kernel Test Service
https://01.org/lkp