aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorZhao Yakui <yakui.zhao@intel.com>2007-09-20 21:23:13 -0400
committerLen Brown <len.brown@intel.com>2007-09-25 17:59:00 -0400
commit78e1ca49c7ead5cd00882ed0c776260857613122 (patch)
treee941b959144747e4d420592c60bc2eebab16dc59 /drivers
parent853298bc03ef65e3eb392f5d61265605214ee8fb (diff)
ACPI: hpet: ACPI Error (utglobal-0126): Unknown exception code: 0xFFFFFFF0
If hpet has been initialized before registering hpet driver, the callback function of hpet_resources will return the status code of -EBUSY, which is not defined in the ACPI exception table. So when ACPI checks the status code of callback function, it will report the unknown exception code. So the status code in ACPI is used instead of the generic error code in the ACPI callback function of hpet_resources. For example: -EBUSY is replaced by AE_ALREADY_EXISTS -EINVAL is replaced by AE_NO_MEMORY http://bugzilla.kernel.org/show_bug.cgi?id=8630 Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/char/hpet.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
index 7ecffc9c738f..fd51554ab081 100644
--- a/drivers/char/hpet.c
+++ b/drivers/char/hpet.c
@@ -943,14 +943,14 @@ static acpi_status hpet_resources(struct acpi_resource *res, void *data)
943 printk(KERN_DEBUG "%s: 0x%lx is busy\n", 943 printk(KERN_DEBUG "%s: 0x%lx is busy\n",
944 __FUNCTION__, hdp->hd_phys_address); 944 __FUNCTION__, hdp->hd_phys_address);
945 iounmap(hdp->hd_address); 945 iounmap(hdp->hd_address);
946 return -EBUSY; 946 return AE_ALREADY_EXISTS;
947 } 947 }
948 } else if (res->type == ACPI_RESOURCE_TYPE_FIXED_MEMORY32) { 948 } else if (res->type == ACPI_RESOURCE_TYPE_FIXED_MEMORY32) {
949 struct acpi_resource_fixed_memory32 *fixmem32; 949 struct acpi_resource_fixed_memory32 *fixmem32;
950 950
951 fixmem32 = &res->data.fixed_memory32; 951 fixmem32 = &res->data.fixed_memory32;
952 if (!fixmem32) 952 if (!fixmem32)
953 return -EINVAL; 953 return AE_NO_MEMORY;
954 954
955 hdp->hd_phys_address = fixmem32->address; 955 hdp->hd_phys_address = fixmem32->address;
956 hdp->hd_address = ioremap(fixmem32->address, 956 hdp->hd_address = ioremap(fixmem32->address,
@@ -960,7 +960,7 @@ static acpi_status hpet_resources(struct acpi_resource *res, void *data)
960 printk(KERN_DEBUG "%s: 0x%lx is busy\n", 960 printk(KERN_DEBUG "%s: 0x%lx is busy\n",
961 __FUNCTION__, hdp->hd_phys_address); 961 __FUNCTION__, hdp->hd_phys_address);
962 iounmap(hdp->hd_address); 962 iounmap(hdp->hd_address);
963 return -EBUSY; 963 return AE_ALREADY_EXISTS;
964 } 964 }
965 } else if (res->type == ACPI_RESOURCE_TYPE_EXTENDED_IRQ) { 965 } else if (res->type == ACPI_RESOURCE_TYPE_EXTENDED_IRQ) {
966 struct acpi_resource_extended_irq *irqp; 966 struct acpi_resource_extended_irq *irqp;