diff options
author | Jingoo Han <jingoohan1@gmail.com> | 2015-06-18 00:12:27 +0900 |
---|---|---|
committer | Sasha Levin <sasha.levin@oracle.com> | 2015-07-05 10:12:48 -0400 |
commit | d42b6b4635df53180e781d392f6441744c34b62e (patch) | |
tree | 28eaf94a935073eecf64e199a6033165284ebad4 | |
parent | b396bdb5f1e1692d38b2c2d11c67c7fc182546b7 (diff) |
of/address: use atomic allocation in pci_register_io_range()
[ Upstream commit 294240ffe784e951dc2ef070da04fa31ef6db3a0 ]
When kzalloc() is called under spin_lock(), GFP_ATOMIC should be
used to avoid sleeping allocation.
The call tree is:
of_pci_range_to_resource()
--> pci_register_io_range() <-- takes spin_lock(&io_range_lock);
--> kzalloc()
Signed-off-by: Jingoo Han <jingoohan1@gmail.com>
Cc: stable@vger.kernel.org # 3.18+
Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
-rw-r--r-- | drivers/of/address.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/of/address.c b/drivers/of/address.c index d880affa0493..1dba1a9c1fcf 100644 --- a/drivers/of/address.c +++ b/drivers/of/address.c @@ -712,7 +712,7 @@ int __weak pci_register_io_range(phys_addr_t addr, resource_size_t size) } /* add the range to the list */ - range = kzalloc(sizeof(*range), GFP_KERNEL); + range = kzalloc(sizeof(*range), GFP_ATOMIC); if (!range) { err = -ENOMEM; goto end_register; |