On Wed, 12 Feb 2020 17:59:40 +0300, Mika Westerberg wrote: > ACPI Generic Address Structure (GAS) access_width field is not in bytes > as the driver seems to expect in few places so fix this by using the > newly introduced macro ACPI_ACCESS_BYTE_WIDTH(). > > Fixes: b1abf6fc4982 ("ACPI / watchdog: Fix off-by-one error at resource assignment") It does not actually fix that commit, as the bug already existed prior to it. It has to be applied on top of that commit though because they touch the same lines, granted. > Fixes: 058dfc767008 ("ACPI / watchdog: Add support for WDAT hardware watchdog") > Reported-by: Jean Delvare <jdelvare@xxxxxxx> > Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> > --- > drivers/acpi/acpi_watchdog.c | 3 +-- > drivers/watchdog/wdat_wdt.c | 2 +- > 2 files changed, 2 insertions(+), 3 deletions(-) > > diff --git a/drivers/acpi/acpi_watchdog.c b/drivers/acpi/acpi_watchdog.c > index b5516b04ffc0..d827a4a3e946 100644 > --- a/drivers/acpi/acpi_watchdog.c > +++ b/drivers/acpi/acpi_watchdog.c > @@ -126,12 +126,11 @@ void __init acpi_watchdog_init(void) > gas = &entries[i].register_region; > > res.start = gas->address; > + res.end = res.start + ACPI_ACCESS_BYTE_WIDTH(gas->access_width) - 1; > if (gas->space_id == ACPI_ADR_SPACE_SYSTEM_MEMORY) { > res.flags = IORESOURCE_MEM; > - res.end = res.start + ALIGN(gas->access_width, 4) - 1; > } else if (gas->space_id == ACPI_ADR_SPACE_SYSTEM_IO) { > res.flags = IORESOURCE_IO; > - res.end = res.start + gas->access_width - 1; > } else { > pr_warn("Unsupported address space: %u\n", > gas->space_id); > diff --git a/drivers/watchdog/wdat_wdt.c b/drivers/watchdog/wdat_wdt.c > index b069349b52f5..e1b1fcfc02af 100644 > --- a/drivers/watchdog/wdat_wdt.c > +++ b/drivers/watchdog/wdat_wdt.c > @@ -389,7 +389,7 @@ static int wdat_wdt_probe(struct platform_device *pdev) > > memset(&r, 0, sizeof(r)); > r.start = gas->address; > - r.end = r.start + gas->access_width - 1; > + r.end = r.start + ACPI_ACCESS_BYTE_WIDTH(gas->access_width) - 1; > if (gas->space_id == ACPI_ADR_SPACE_SYSTEM_MEMORY) { > r.flags = IORESOURCE_MEM; > } else if (gas->space_id == ACPI_ADR_SPACE_SYSTEM_IO) { Reviewed-by: Jean Delvare <jdelvare@xxxxxxx> -- Jean Delvare SUSE L3 Support