Patch "dmaengine: idxd: Avoid unnecessary destruction of file_ida" has been added to the 6.9-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.9-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.9 subdirectory.

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



commit a2ff22f8c389b6111083681436c6bec22bc3e03e
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 39935071174a3..fd9bbee4cc42f 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