diff options
author | Fiodor Suietov <fiodor.f.suietov@intel.com> | 2006-12-19 15:33:20 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2007-02-16 13:32:41 -0500 |
commit | 9de1cc9c446d39546a3d9dd6f7d99a980a7ecc22 (patch) | |
tree | 04ef6996082fe234643f483c61d552b5fc56d159 | |
parent | 08573a86c8da1379b4f341ab4781bb7c8685d5b6 (diff) |
[PATCH] libata: wrong sizeof for BUFFER
I have reproduced the AE_AML_BUFFER_LIMIT exception mentioned in
<http://bugzilla.kernel.org/show_bug.cgi?id=7689> basing on the SSDT ASL
code and libata ata_acpi_push_id() code. There is an oversight in
ata_acpi_push_id() causing the exception. The following update fixes it:
Signed-off-by: Fiodor Suietov <fiodor.f.suietov@intel.com>
Cc: Jeff Garzik <jeff@garzik.org>
Cc: Tejun Heo <htejun@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
-rw-r--r-- | drivers/ata/libata-acpi.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c index f2fd0dda70f2..b4e8be5d292c 100644 --- a/drivers/ata/libata-acpi.c +++ b/drivers/ata/libata-acpi.c | |||
@@ -672,7 +672,7 @@ int ata_acpi_push_id(struct ata_port *ap, unsigned int ix) | |||
672 | input.count = 1; | 672 | input.count = 1; |
673 | input.pointer = in_params; | 673 | input.pointer = in_params; |
674 | in_params[0].type = ACPI_TYPE_BUFFER; | 674 | in_params[0].type = ACPI_TYPE_BUFFER; |
675 | in_params[0].buffer.length = sizeof(atadev->id[0] * ATA_ID_WORDS); | 675 | in_params[0].buffer.length = sizeof(atadev->id[0]) * ATA_ID_WORDS; |
676 | in_params[0].buffer.pointer = (u8 *)atadev->id; | 676 | in_params[0].buffer.pointer = (u8 *)atadev->id; |
677 | /* Output buffer: _SDD has no output */ | 677 | /* Output buffer: _SDD has no output */ |
678 | 678 | ||