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