diff options
author | Zhao Yakui <yakui.zhao@intel.com> | 2007-09-20 21:23:13 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2007-09-25 17:59:00 -0400 |
commit | 78e1ca49c7ead5cd00882ed0c776260857613122 (patch) | |
tree | e941b959144747e4d420592c60bc2eebab16dc59 | |
parent | 853298bc03ef65e3eb392f5d61265605214ee8fb (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>
-rw-r--r-- | drivers/char/hpet.c | 6 |
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; |