[PATCH] media: hantro: HEVC: Fix exception handling in tile_buffer_reallocate()

Markus Elfring Markus.Elfring at web.de
Wed Mar 22 07:45:21 PDT 2023


>> The label “err_free_tile_buffers” was used to jump to another pointer
>> check despite of the detail in the implementation of the function
>> “tile_buffer_reallocate” that it was determined already that
>> a corresponding variable contained a null pointer because of a failed
>> function call “dma_alloc_coherent”.
>>
>> * Thus use an additional label instead.
>>
>> * Delete a redundant check.
>>
>>
>> This issue was detected by using the Coccinelle software.
>
> If you want to optimize the error path

I would find it nice if more contributors can pick such an idea up.


> I think the best option is to return -ENOMEM when hevc_dec->tile_filter.cpu is NULL,
> remove
>     if (hevc_dec->tile_bsd.cpu)
>         dma_free_coherent(vpu->dev, hevc_dec->tile_bsd.size,
>                   hevc_dec->tile_bsd.cpu,
>                   hevc_dec->tile_bsd.dma);
> and reorder the two other dma_free to get something clean.

It seems that my understanding was too limited so far for possible improvements
of this function implementation.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/media/platform/verisilicon/hantro_hevc.c?id=a1effab7a3a35a837dd9d2b974a1bc4939df1ad5#n70

Would you like to apply any other design variant?

Regards,
Markus



More information about the Linux-rockchip mailing list