From: Dan Carpenter <error27@gmail.com>
To: kernel test robot <lkp@intel.com>
Cc: oe-kbuild@lists.linux.dev
Subject: Re: drivers/net/ipa/ipa_table.c:425 ipa_table_init_add() error: we previously assumed 'hash_mem' could be null (see line 416)
Date: Tue, 21 Feb 2023 18:53:44 +0300 [thread overview]
Message-ID: <Y/TpCD7GibePxkk7@kadam> (raw)
In-Reply-To: <202302212303.C14R62DQ-lkp@intel.com>
These were already fixed upstream. I'm not sure why a warning is being
generated.
regards,
dan carpenter
On Tue, Feb 21, 2023 at 11:16:35PM +0800, kernel test robot wrote:
> BCC: lkp@intel.com
> CC: oe-kbuild-all@lists.linux.dev
> CC: linux-kernel@vger.kernel.org
> TO: Alex Elder <elder@linaro.org>
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 89f5349e0673322857bd432fa23113af56673739
> commit: 5cb76899fb47791c12eb9fce4aef8a858c41783d net: ipa: reduce arguments to ipa_table_init_add()
> date: 4 months ago
> :::::: branch date: 12 hours ago
> :::::: commit date: 4 months ago
> config: openrisc-randconfig-m041-20230221 (https://download.01.org/0day-ci/archive/20230221/202302212303.C14R62DQ-lkp@intel.com/config)
> 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@intel.com>
> | Reported-by: Dan Carpenter <error27@gmail.com>
> | Link: https://lore.kernel.org/r/202302212303.C14R62DQ-lkp@intel.com/
>
> New smatch warnings:
> drivers/net/ipa/ipa_table.c:425 ipa_table_init_add() error: we previously assumed 'hash_mem' could be null (see line 416)
>
> Old smatch warnings:
> drivers/net/ipa/ipa_table.c:416 ipa_table_init_add() warn: replace divide condition 'hash_mem->size / 8' with 'hash_mem->size >= 8'
>
> vim +/hash_mem +425 drivers/net/ipa/ipa_table.c
>
> 2b9feef2b6c288 Alex Elder 2020-03-05 378
> 5cb76899fb4779 Alex Elder 2022-11-02 379 static void ipa_table_init_add(struct gsi_trans *trans, bool filter, bool ipv6)
> 2b9feef2b6c288 Alex Elder 2020-03-05 380 {
> 2b9feef2b6c288 Alex Elder 2020-03-05 381 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi);
> 5cb76899fb4779 Alex Elder 2022-11-02 382 const struct ipa_mem *hash_mem;
> 5cb76899fb4779 Alex Elder 2022-11-02 383 enum ipa_cmd_opcode opcode;
> 5cb76899fb4779 Alex Elder 2022-11-02 384 const struct ipa_mem *mem;
> 2b9feef2b6c288 Alex Elder 2020-03-05 385 dma_addr_t hash_addr;
> 2b9feef2b6c288 Alex Elder 2020-03-05 386 dma_addr_t addr;
> dc901505fd9820 Alex Elder 2021-11-24 387 u32 zero_offset;
> 2b9feef2b6c288 Alex Elder 2020-03-05 388 u16 hash_count;
> dc901505fd9820 Alex Elder 2021-11-24 389 u32 zero_size;
> 2b9feef2b6c288 Alex Elder 2020-03-05 390 u16 hash_size;
> 2b9feef2b6c288 Alex Elder 2020-03-05 391 u16 count;
> 2b9feef2b6c288 Alex Elder 2020-03-05 392 u16 size;
> 2b9feef2b6c288 Alex Elder 2020-03-05 393
> 5cb76899fb4779 Alex Elder 2022-11-02 394 opcode = filter ? ipv6 ? IPA_CMD_IP_V6_FILTER_INIT
> 5cb76899fb4779 Alex Elder 2022-11-02 395 : IPA_CMD_IP_V4_FILTER_INIT
> 5cb76899fb4779 Alex Elder 2022-11-02 396 : ipv6 ? IPA_CMD_IP_V6_ROUTING_INIT
> 5cb76899fb4779 Alex Elder 2022-11-02 397 : IPA_CMD_IP_V4_ROUTING_INIT;
> 5cb76899fb4779 Alex Elder 2022-11-02 398
> 5cb76899fb4779 Alex Elder 2022-11-02 399 mem = ipa_table_mem(ipa, filter, false, ipv6);
> 5cb76899fb4779 Alex Elder 2022-11-02 400 hash_mem = ipa_table_mem(ipa, filter, true, ipv6);
> 5cb76899fb4779 Alex Elder 2022-11-02 401
> dc901505fd9820 Alex Elder 2021-11-24 402 /* Compute the number of table entries to initialize */
> 2b9feef2b6c288 Alex Elder 2020-03-05 403 if (filter) {
> dc901505fd9820 Alex Elder 2021-11-24 404 /* The number of filtering endpoints determines number of
> dc901505fd9820 Alex Elder 2021-11-24 405 * entries in the filter table; we also add one more "slot"
> dc901505fd9820 Alex Elder 2021-11-24 406 * to hold the bitmap itself. The size of the hashed filter
> dc901505fd9820 Alex Elder 2021-11-24 407 * table is either the same as the non-hashed one, or zero.
> dc901505fd9820 Alex Elder 2021-11-24 408 */
> b5c102238cea98 Alex Elder 2021-09-07 409 count = 1 + hweight32(ipa->filter_map);
> 5cb76899fb4779 Alex Elder 2022-11-02 410 hash_count = hash_mem && hash_mem->size ? count : 0;
> 2b9feef2b6c288 Alex Elder 2020-03-05 411 } else {
> dc901505fd9820 Alex Elder 2021-11-24 412 /* The size of a route table region determines the number
> dc901505fd9820 Alex Elder 2021-11-24 413 * of entries it has.
> dc901505fd9820 Alex Elder 2021-11-24 414 */
> 4ea29143ebe6c4 Alex Elder 2021-03-28 415 count = mem->size / sizeof(__le64);
> 5cb76899fb4779 Alex Elder 2022-11-02 @416 hash_count = hash_mem && hash_mem->size / sizeof(__le64);
> 2b9feef2b6c288 Alex Elder 2020-03-05 417 }
> 4ea29143ebe6c4 Alex Elder 2021-03-28 418 size = count * sizeof(__le64);
> 4ea29143ebe6c4 Alex Elder 2021-03-28 419 hash_size = hash_count * sizeof(__le64);
> 2b9feef2b6c288 Alex Elder 2020-03-05 420
> 2b9feef2b6c288 Alex Elder 2020-03-05 421 addr = ipa_table_addr(ipa, filter, count);
> 2b9feef2b6c288 Alex Elder 2020-03-05 422 hash_addr = ipa_table_addr(ipa, filter, hash_count);
> 2b9feef2b6c288 Alex Elder 2020-03-05 423
> 2b9feef2b6c288 Alex Elder 2020-03-05 424 ipa_cmd_table_init_add(trans, opcode, size, mem->offset, addr,
> 2b9feef2b6c288 Alex Elder 2020-03-05 @425 hash_size, hash_mem->offset, hash_addr);
> dc901505fd9820 Alex Elder 2021-11-24 426 if (!filter)
> dc901505fd9820 Alex Elder 2021-11-24 427 return;
> dc901505fd9820 Alex Elder 2021-11-24 428
> dc901505fd9820 Alex Elder 2021-11-24 429 /* Zero the unused space in the filter table */
> dc901505fd9820 Alex Elder 2021-11-24 430 zero_offset = mem->offset + size;
> dc901505fd9820 Alex Elder 2021-11-24 431 zero_size = mem->size - size;
> dc901505fd9820 Alex Elder 2021-11-24 432 ipa_cmd_dma_shared_mem_add(trans, zero_offset, zero_size,
> dc901505fd9820 Alex Elder 2021-11-24 433 ipa->zero_addr, true);
> dc901505fd9820 Alex Elder 2021-11-24 434 if (!hash_size)
> dc901505fd9820 Alex Elder 2021-11-24 435 return;
> dc901505fd9820 Alex Elder 2021-11-24 436
> dc901505fd9820 Alex Elder 2021-11-24 437 /* Zero the unused space in the hashed filter table */
> dc901505fd9820 Alex Elder 2021-11-24 438 zero_offset = hash_mem->offset + hash_size;
> dc901505fd9820 Alex Elder 2021-11-24 439 zero_size = hash_mem->size - hash_size;
> dc901505fd9820 Alex Elder 2021-11-24 440 ipa_cmd_dma_shared_mem_add(trans, zero_offset, zero_size,
> dc901505fd9820 Alex Elder 2021-11-24 441 ipa->zero_addr, true);
> 2b9feef2b6c288 Alex Elder 2020-03-05 442 }
> 2b9feef2b6c288 Alex Elder 2020-03-05 443
>
> :::::: The code at line 425 was first introduced by commit
> :::::: 2b9feef2b6c288c1f11127fe236bb5078d5d51b3 soc: qcom: ipa: filter and routing tables
>
> :::::: TO: Alex Elder <elder@linaro.org>
> :::::: CC: David S. Miller <davem@davemloft.net>
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests
next prev parent reply other threads:[~2023-02-21 15:53 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-21 15:16 drivers/net/ipa/ipa_table.c:425 ipa_table_init_add() error: we previously assumed 'hash_mem' could be null (see line 416) kernel test robot
2023-02-21 15:53 ` Dan Carpenter [this message]
-- strict thread matches above, loose matches on Subject: below --
2023-05-19 1:53 kernel test robot
2022-12-31 12:12 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=Y/TpCD7GibePxkk7@kadam \
--to=error27@gmail.com \
--cc=lkp@intel.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.