aboutsummaryrefslogtreecommitdiffstats
path: root/xen/drivers/acpi
diff options
context:
space:
mode:
authorAndrew Cooper <andrew.cooper3@citrix.com>2013-03-22 09:43:38 +0100
committerJan Beulich <jbeulich@suse.com>2013-03-22 09:43:38 +0100
commit0611689d9153227831979c7bafe594214b8505a3 (patch)
treeb2cbb2ad5c5ea742eeba72a924323b1505511d59 /xen/drivers/acpi
parentda4ae08504d12290c5193d6c2cd33c20a41e1b0d (diff)
downloadxen-0611689d9153227831979c7bafe594214b8505a3.tar.gz
xen-0611689d9153227831979c7bafe594214b8505a3.tar.bz2
xen-0611689d9153227831979c7bafe594214b8505a3.zip
ACPI/APEI: Unlock apei_iomaps_lock on error path
This causes deadlocks during early boot on hardware with broken/buggy APEI implementations, such as a Dell Poweredge 2950 with the latest currently available BIOS. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Don't use goto or another special error path, as handling the error case in normal flow is quite simple. Signed-off-by: Jan Beulich <jbeulich@suse.com>
Diffstat (limited to 'xen/drivers/acpi')
-rw-r--r--xen/drivers/acpi/apei/apei-io.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/xen/drivers/acpi/apei/apei-io.c b/xen/drivers/acpi/apei/apei-io.c
index d57035bb5d..f0f4636b19 100644
--- a/xen/drivers/acpi/apei/apei-io.c
+++ b/xen/drivers/acpi/apei/apei-io.c
@@ -146,10 +146,8 @@ static void __init apei_post_unmap(paddr_t paddr, unsigned long size)
spin_lock_irqsave(&apei_iomaps_lock, flags);
map = __apei_find_iomap(paddr, size);
- if (!map)
- return;
-
- list_del(&map->list);
+ if (map)
+ list_del(&map->list);
spin_unlock_irqrestore(&apei_iomaps_lock, flags);
xfree(map);