Re: [PATCH] crypto: ti - Use list_first_entry_or_null() in dthe_get_dev()

T Pratham <[email protected]> Wed, 29 Jul 2026 17:25:46 +0530
Newsgroups org.kernel.vger.linux-crypto,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On 7/3/26 14:07, Herbert Xu wrote:
> On Sat, Jun 13, 2026 at 10:58:58AM +0200, Mert Seftali wrote:
>> dthe_get_dev() fetches a device from the global device list with
>> list_first_entry() and then checks the result for NULL. However,
>> list_first_entry() never returns NULL: on an empty list it returns a
>> bogus pointer computed from the list head. The NULL check is therefore
>> dead code, and an empty list would be treated as a valid entry and
>> moved around as if it were a real device.
>>
>> Use list_first_entry_or_null() so the existing NULL check works as
>> intended and an empty list is handled gracefully.
>>
>> Fixes: 52f641bc63a4 ("crypto: ti - Add driver for DTHE V2 AES Engine (ECB, CBC)")
>> Reported-by: kernel test robot <[email protected]>
>> Reported-by: Dan Carpenter <[email protected]>
>> Closes: https://lore.kernel.org/r/[email protected]/
>> Signed-off-by: Mert Seftali <[email protected]>
>> ---
>>  drivers/crypto/ti/dthev2-common.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> This only fixes the symptom of the problem.  But the root goes
> deeper.
> 
> The main issue is that the device can go away in the middle of
> an operation.  The driver needs to be handle it gracefully, and
> certainly not by crashing the system because the associated memory
> has been freed.
> 
> Thanks,

This is not possible here as the device is part of the SoC. That being
said, I'll implement this handling to have a more correct driver. In the
meanwhile, the above empty list fix can be applied.

-- 
Regards
T Pratham <[email protected]>