Re: [PATCH] crypto: qat - use unmanaged allocation for dc_data

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, May 22, 2025 at 09:21:41AM +0100, Suman Kumar Chakraborty wrote:
> The dc_data structure holds data required for handling compression
> operations, such as overflow buffers. In this context, the use of
> managed memory allocation APIs (devm_kzalloc() and devm_kfree())
> is not necessary, as these data structures are freed and
> re-allocated when a device is restarted in adf_dev_down() and
> adf_dev_up().
> 
> Additionally, managed APIs automatically handle memory cleanup when the
> device is detached, which can lead to conflicts with manual cleanup
> processes. Specifically, if a device driver invokes the adf_dev_down()
> function as part of the cleanup registered with
> devm_add_action_or_reset(), it may attempt to free memory that is also
> managed by the device's resource management system, potentially leading
> to a double-free.
> 
> This might result in a warning similar to the following when unloading
> the device specific driver, for example qat_6xxx.ko:
> 
>     qat_free_dc_data+0x4f/0x60 [intel_qat]
>     qat_compression_event_handler+0x3d/0x1d0 [intel_qat]
>     adf_dev_shutdown+0x6d/0x1a0 [intel_qat]
>     adf_dev_down+0x32/0x50 [intel_qat]
>     devres_release_all+0xb8/0x110
>     device_unbind_cleanup+0xe/0x70
>     device_release_driver_internal+0x1c1/0x200
>     driver_detach+0x48/0x90
>     bus_remove_driver+0x74/0xf0
>     pci_unregister_driver+0x2e/0xb0
> 
> Use unmanaged memory allocation APIs (kzalloc_node() and kfree()) for
> the dc_data structure. This ensures that memory is explicitly allocated
> and freed under the control of the driver code, preventing manual
> deallocation from interfering with automatic cleanup.
> 
> Fixes: 1198ae56c9a5 ("crypto: qat - expose deflate through acomp api for QAT GEN2")
> Signed-off-by: Suman Kumar Chakraborty <suman.kumar.chakraborty@xxxxxxxxx>
> Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@xxxxxxxxx>
> ---
>  drivers/crypto/intel/qat/qat_common/qat_compression.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

Patch applied.  Thanks.
-- 
Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt




[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]
  Powered by Linux