lkml.org 
[lkml]   [2021]   [Sep]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.14 128/168] PCI: Fix pci_dev_str_match_path() alloc while atomic bug
    Date
    From: Dan Carpenter <dan.carpenter@oracle.com>

    [ 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@oracle.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: Logan Gunthorpe <logang@deltatee.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/pci/pci.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
    index a5e6759c407b..a4eb0c042ca3 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;

    --
    2.30.2


    \
     
     \ /
      Last update: 2021-09-20 21:07    [W:4.055 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site