Patch "dmaengine: idxd: Avoid unnecessary destruction of file_ida" has been added to the 6.8-stable tree

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

 



This is a note to let you know that I've just added the patch titled

    dmaengine: idxd: Avoid unnecessary destruction of file_ida

to the 6.8-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     dmaengine-idxd-avoid-unnecessary-destruction-of-file.patch
and it can be found in the queue-6.8 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 5acfd95f07a2dbe501f05a87e92853865d2f4366
Author: Fenghua Yu <fenghua.yu@xxxxxxxxx>
Date:   Mon Jan 29 17:39:54 2024 -0800

    dmaengine: idxd: Avoid unnecessary destruction of file_ida
    
    [ Upstream commit 76e43fa6a456787bad31b8d0daeabda27351a480 ]
    
    file_ida is allocated during cdev open and is freed accordingly
    during cdev release. This sequence is guaranteed by driver file
    operations. Therefore, there is no need to destroy an already empty
    file_ida when the WQ cdev is removed.
    
    Worse, ida_free() in cdev release may happen after destruction of
    file_ida per WQ cdev. This can lead to accessing an id in file_ida
    after it has been destroyed, resulting in a kernel panic.
    
    Remove ida_destroy(&file_ida) to address these issues.
    
    Fixes: e6fd6d7e5f0f ("dmaengine: idxd: add a device to represent the file opened")
    Signed-off-by: Lijun Pan <lijun.pan@xxxxxxxxx>
    Signed-off-by: Fenghua Yu <fenghua.yu@xxxxxxxxx>
    Reviewed-by: Dave Jiang <dave.jiang@xxxxxxxxx>
    Link: https://lore.kernel.org/r/20240130013954.2024231-1-fenghua.yu@xxxxxxxxx
    Signed-off-by: Vinod Koul <vkoul@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/dma/idxd/cdev.c b/drivers/dma/idxd/cdev.c
index dcefb838b8c0f..73407e5775276 100644
--- a/drivers/dma/idxd/cdev.c
+++ b/drivers/dma/idxd/cdev.c
@@ -577,7 +577,6 @@ void idxd_wq_del_cdev(struct idxd_wq *wq)
 	struct idxd_cdev *idxd_cdev;
 
 	idxd_cdev = wq->idxd_cdev;
-	ida_destroy(&file_ida);
 	wq->idxd_cdev = NULL;
 	cdev_device_del(&idxd_cdev->cdev, cdev_dev(idxd_cdev));
 	put_device(cdev_dev(idxd_cdev));




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux