aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/ata/libata-acpi.c7
-rw-r--r--include/linux/libata.h4
2 files changed, 6 insertions, 5 deletions
diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
index 545ea865ceb5..8ae36ad029c5 100644
--- a/drivers/ata/libata-acpi.c
+++ b/drivers/ata/libata-acpi.c
@@ -200,7 +200,7 @@ void ata_acpi_associate(struct ata_host *host)
200 * RETURNS: 200 * RETURNS:
201 * 0 on success, -ENOENT if _GTM doesn't exist, -errno on failure. 201 * 0 on success, -ENOENT if _GTM doesn't exist, -errno on failure.
202 */ 202 */
203int ata_acpi_gtm(const struct ata_port *ap, struct ata_acpi_gtm *gtm) 203int ata_acpi_gtm(struct ata_port *ap, struct ata_acpi_gtm *gtm)
204{ 204{
205 struct acpi_buffer output = { .length = ACPI_ALLOCATE_BUFFER }; 205 struct acpi_buffer output = { .length = ACPI_ALLOCATE_BUFFER };
206 union acpi_object *out_obj; 206 union acpi_object *out_obj;
@@ -259,15 +259,16 @@ EXPORT_SYMBOL_GPL(ata_acpi_gtm);
259 * RETURNS: 259 * RETURNS:
260 * 0 on success, -ENOENT if _STM doesn't exist, -errno on failure. 260 * 0 on success, -ENOENT if _STM doesn't exist, -errno on failure.
261 */ 261 */
262int ata_acpi_stm(const struct ata_port *ap, struct ata_acpi_gtm *stm) 262int ata_acpi_stm(struct ata_port *ap, const struct ata_acpi_gtm *stm)
263{ 263{
264 acpi_status status; 264 acpi_status status;
265 struct ata_acpi_gtm stm_buf = *stm;
265 struct acpi_object_list input; 266 struct acpi_object_list input;
266 union acpi_object in_params[3]; 267 union acpi_object in_params[3];
267 268
268 in_params[0].type = ACPI_TYPE_BUFFER; 269 in_params[0].type = ACPI_TYPE_BUFFER;
269 in_params[0].buffer.length = sizeof(struct ata_acpi_gtm); 270 in_params[0].buffer.length = sizeof(struct ata_acpi_gtm);
270 in_params[0].buffer.pointer = (u8 *)stm; 271 in_params[0].buffer.pointer = (u8 *)&stm_buf;
271 /* Buffers for id may need byteswapping ? */ 272 /* Buffers for id may need byteswapping ? */
272 in_params[1].type = ACPI_TYPE_BUFFER; 273 in_params[1].type = ACPI_TYPE_BUFFER;
273 in_params[1].buffer.length = 512; 274 in_params[1].buffer.length = 512;
diff --git a/include/linux/libata.h b/include/linux/libata.h
index ef52a07c43d8..1ca9b89632f9 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -940,8 +940,8 @@ enum {
940/* libata-acpi.c */ 940/* libata-acpi.c */
941#ifdef CONFIG_ATA_ACPI 941#ifdef CONFIG_ATA_ACPI
942extern int ata_acpi_cbl_80wire(struct ata_port *ap); 942extern int ata_acpi_cbl_80wire(struct ata_port *ap);
943int ata_acpi_stm(const struct ata_port *ap, struct ata_acpi_gtm *stm); 943int ata_acpi_stm(struct ata_port *ap, const struct ata_acpi_gtm *stm);
944int ata_acpi_gtm(const struct ata_port *ap, struct ata_acpi_gtm *stm); 944int ata_acpi_gtm(struct ata_port *ap, struct ata_acpi_gtm *stm);
945#else 945#else
946static inline int ata_acpi_cbl_80wire(struct ata_port *ap) { return 0; } 946static inline int ata_acpi_cbl_80wire(struct ata_port *ap) { return 0; }
947#endif 947#endif