On Wed, Feb 12, 2020 at 04:55:37PM +0100, Jean Delvare wrote: > 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. Yeah, I figured I should put the dependency commit here as well. I guess Depends-on can be used as well: Depends-on: b1abf6fc4982 ("ACPI / watchdog: Fix off-by-one error at resource assignment") > > 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> Thanks!