Patch "PCI: Fix pci_dev_str_match_path() alloc while atomic bug" has been added to the 5.10-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

    PCI: Fix pci_dev_str_match_path() alloc while atomic bug

to the 5.10-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:
     pci-fix-pci_dev_str_match_path-alloc-while-atomic-bu.patch
and it can be found in the queue-5.10 subdirectory.

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



commit 03b8e430bbeee38980f154936b4410b1e5f9cf12
Author: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
Date:   Thu Aug 12 10:00:04 2021 +0300

    PCI: Fix pci_dev_str_match_path() alloc while atomic bug
    
    [ Upstream commit 7eb6ea4148579b85540a41d57bcec315b8af8ff8 ]
    
    pci_dev_str_match_path() is often called with a spinlock held so the
    allocation has to be atomic.  The call tree is:
    
      pci_specified_resource_alignment() <-- takes spin_lock();
        pci_dev_str_match()
          pci_dev_str_match_path()
    
    Fixes: 45db33709ccc ("PCI: Allow specifying devices using a base bus and path of devfns")
    Link: https://lore.kernel.org/r/20210812070004.GC31863@kili
    Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
    Signed-off-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
    Reviewed-by: Logan Gunthorpe <logang@xxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index eae6a9fdd33d..0d7109018a91 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -265,7 +265,7 @@ static int pci_dev_str_match_path(struct pci_dev *dev, const char *path,
 
 	*endptr = strchrnul(path, ';');
 
-	wpath = kmemdup_nul(path, *endptr - path, GFP_KERNEL);
+	wpath = kmemdup_nul(path, *endptr - path, GFP_ATOMIC);
 	if (!wpath)
 		return -ENOMEM;
 



[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