| From foo@baz Mon Apr 9 17:09:24 CEST 2018 |
| From: Geert Uytterhoeven <geert+renesas@glider.be> |
| Date: Tue, 2 Jan 2018 16:26:31 +0100 |
| Subject: ACPI: EC: Fix debugfs_create_*() usage |
| |
| From: Geert Uytterhoeven <geert+renesas@glider.be> |
| |
| |
| [ Upstream commit 3522f867c13b63cf62acdf1b8ca5664c549a716a ] |
| |
| acpi_ec.gpe is "unsigned long", hence treating it as "u32" would expose |
| the wrong half on big-endian 64-bit systems. Fix this by changing its |
| type to "u32" and removing the cast, as all other code already uses u32 |
| or sometimes even only u8. |
| |
| Fixes: 1195a098168fcacf (ACPI: Provide /sys/kernel/debug/ec/...) |
| Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> |
| Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/acpi/ec.c | 2 +- |
| drivers/acpi/ec_sys.c | 2 +- |
| drivers/acpi/internal.h | 2 +- |
| 3 files changed, 3 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/acpi/ec.c |
| +++ b/drivers/acpi/ec.c |
| @@ -1518,7 +1518,7 @@ static int acpi_ec_setup(struct acpi_ec |
| } |
| |
| acpi_handle_info(ec->handle, |
| - "GPE=0x%lx, EC_CMD/EC_SC=0x%lx, EC_DATA=0x%lx\n", |
| + "GPE=0x%x, EC_CMD/EC_SC=0x%lx, EC_DATA=0x%lx\n", |
| ec->gpe, ec->command_addr, ec->data_addr); |
| return ret; |
| } |
| --- a/drivers/acpi/ec_sys.c |
| +++ b/drivers/acpi/ec_sys.c |
| @@ -128,7 +128,7 @@ static int acpi_ec_add_debugfs(struct ac |
| return -ENOMEM; |
| } |
| |
| - if (!debugfs_create_x32("gpe", 0444, dev_dir, (u32 *)&first_ec->gpe)) |
| + if (!debugfs_create_x32("gpe", 0444, dev_dir, &first_ec->gpe)) |
| goto error; |
| if (!debugfs_create_bool("use_global_lock", 0444, dev_dir, |
| &first_ec->global_lock)) |
| --- a/drivers/acpi/internal.h |
| +++ b/drivers/acpi/internal.h |
| @@ -158,7 +158,7 @@ static inline void acpi_early_processor_ |
| -------------------------------------------------------------------------- */ |
| struct acpi_ec { |
| acpi_handle handle; |
| - unsigned long gpe; |
| + u32 gpe; |
| unsigned long command_addr; |
| unsigned long data_addr; |
| bool global_lock; |