crypto: stm32/crc32 - fix parsing list of devices
authorThomas Bourgoin <thomas.bourgoin@foss.st.com>
Fri, 15 Dec 2023 11:17:24 +0000 (12:17 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 22 Dec 2023 04:30:19 +0000 (12:30 +0800)
smatch warnings:
drivers/crypto/stm32/stm32-crc32.c:108 stm32_crc_get_next_crc() warn:
can 'crc' even be NULL?

Use list_first_entry_or_null instead of list_first_entry to retrieve
the first device registered.
The function list_first_entry always return a non NULL pointer even if
the list is empty. Hence checking if the pointer returned is NULL does
not tell if the list is empty or not.

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/r/202311281111.ou2oUL2i-lkp@intel.com/
Reported-by: Dan Carpenter <error27@gmail.com>
Closes: https://lore.kernel.org/r/202311281111.ou2oUL2i-lkp@intel.com/
Signed-off-by: Thomas Bourgoin <thomas.bourgoin@foss.st.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/stm32/stm32-crc32.c

index b2d5c8921ab36c6d6726be3ff4d54789f7839e5e..b0cf6d2fd352ff6dc486f389f79d6d9848292ebb 100644 (file)
@@ -104,7 +104,7 @@ static struct stm32_crc *stm32_crc_get_next_crc(void)
        struct stm32_crc *crc;
 
        spin_lock_bh(&crc_list.lock);
-       crc = list_first_entry(&crc_list.dev_list, struct stm32_crc, list);
+       crc = list_first_entry_or_null(&crc_list.dev_list, struct stm32_crc, list);
        if (crc)
                list_move_tail(&crc->list, &crc_list.dev_list);
        spin_unlock_bh(&crc_list.lock);