diff options
Diffstat (limited to 'drivers/char/agp/hp-agp.c')
-rw-r--r-- | drivers/char/agp/hp-agp.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/char/agp/hp-agp.c b/drivers/char/agp/hp-agp.c index 9047b2714653..056b289a1e89 100644 --- a/drivers/char/agp/hp-agp.c +++ b/drivers/char/agp/hp-agp.c | |||
@@ -15,6 +15,7 @@ | |||
15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
16 | #include <linux/agp_backend.h> | 16 | #include <linux/agp_backend.h> |
17 | #include <linux/log2.h> | 17 | #include <linux/log2.h> |
18 | #include <linux/slab.h> | ||
18 | 19 | ||
19 | #include <asm/acpi-ext.h> | 20 | #include <asm/acpi-ext.h> |
20 | 21 | ||
@@ -488,9 +489,8 @@ zx1_gart_probe (acpi_handle obj, u32 depth, void *context, void **ret) | |||
488 | handle = obj; | 489 | handle = obj; |
489 | do { | 490 | do { |
490 | status = acpi_get_object_info(handle, &info); | 491 | status = acpi_get_object_info(handle, &info); |
491 | if (ACPI_SUCCESS(status)) { | 492 | if (ACPI_SUCCESS(status) && (info->valid & ACPI_VALID_HID)) { |
492 | /* TBD check _CID also */ | 493 | /* TBD check _CID also */ |
493 | info->hardware_id.string[sizeof(info->hardware_id.length)-1] = '\0'; | ||
494 | match = (strcmp(info->hardware_id.string, "HWP0001") == 0); | 494 | match = (strcmp(info->hardware_id.string, "HWP0001") == 0); |
495 | kfree(info); | 495 | kfree(info); |
496 | if (match) { | 496 | if (match) { |
@@ -509,6 +509,9 @@ zx1_gart_probe (acpi_handle obj, u32 depth, void *context, void **ret) | |||
509 | handle = parent; | 509 | handle = parent; |
510 | } while (ACPI_SUCCESS(status)); | 510 | } while (ACPI_SUCCESS(status)); |
511 | 511 | ||
512 | if (ACPI_FAILURE(status)) | ||
513 | return AE_OK; /* found no enclosing IOC */ | ||
514 | |||
512 | if (hp_zx1_setup(sba_hpa + HP_ZX1_IOC_OFFSET, lba_hpa)) | 515 | if (hp_zx1_setup(sba_hpa + HP_ZX1_IOC_OFFSET, lba_hpa)) |
513 | return AE_OK; | 516 | return AE_OK; |
514 | 517 | ||