On Wed, Jan 12, 2022 at 07:26:32PM +0100, Rafael J. Wysocki wrote: > From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> > > The code as currently implemented does not work on big endian systems, > so fix it up. > > Fixes: a2c8f92bea5f ("ACPI: CPPC: Implement support for SystemIO registers") > Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > Suggested-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > Link: https://lore.kernel.org/linux-acpi/20220111092928.GA24968@kili/ > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx> Acked-by: Huang Rui <ray.huang@xxxxxxx> > --- > drivers/acpi/cppc_acpi.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > Index: linux-pm/drivers/acpi/cppc_acpi.c > =================================================================== > --- linux-pm.orig/drivers/acpi/cppc_acpi.c > +++ linux-pm/drivers/acpi/cppc_acpi.c > @@ -929,16 +929,18 @@ static int cpc_read(int cpu, struct cpc_ > > if (reg->space_id == ACPI_ADR_SPACE_SYSTEM_IO) { > u32 width = 8 << (reg->access_width - 1); > + u32 val_u32; > acpi_status status; > > status = acpi_os_read_port((acpi_io_address)reg->address, > - (u32 *)val, width); > + &val_u32, width); > if (ACPI_FAILURE(status)) { > pr_debug("Error: Failed to read SystemIO port %llx\n", > reg->address); > return -EFAULT; > } > > + *val = val_u32; > return 0; > } else if (reg->space_id == ACPI_ADR_SPACE_PLATFORM_COMM && pcc_ss_id >= 0) > vaddr = GET_PCC_VADDR(reg->address, pcc_ss_id); > > >