ACPI-6.3 corresponds to when hmat revision was bumped from
1 to 2. In this version ACPI_HMAT_MEMORY_PD_VALID was
deprecated and made reserved.
As such in revision 2+ we shouldn't be testing this flag.
This is as per ACPI-6.3, 5.2.27.3, Table 5-145
"Memory Proximity Domain Attributes Structure"
for Flags.
Signed-off-by: Daniel Black <[email protected]>
---
drivers/acpi/hmat/hmat.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/acpi/hmat/hmat.c b/drivers/acpi/hmat/hmat.c
index 96b7d39a97c6..e938e34673d9 100644
--- a/drivers/acpi/hmat/hmat.c
+++ b/drivers/acpi/hmat/hmat.c
@@ -382,7 +382,7 @@ static int __init hmat_parse_proximity_domain(union acpi_subtable_headers *heade
pr_info("HMAT: Memory Flags:%04x Processor Domain:%d Memory Domain:%d\n",
p->flags, p->processor_PD, p->memory_PD);
- if (p->flags & ACPI_HMAT_MEMORY_PD_VALID) {
+ if (p->flags & ACPI_HMAT_MEMORY_PD_VALID && hmat_revision == 1) {
target = find_mem_target(p->memory_PD);
if (!target) {
pr_debug("HMAT: Memory Domain missing from SRAT\n");
--
2.21.0
On 8/6/2019 12:24 PM, Daniel Black wrote:
> ACPI-6.3 corresponds to when hmat revision was bumped from
> 1 to 2. In this version ACPI_HMAT_MEMORY_PD_VALID was
> deprecated and made reserved.
>
> As such in revision 2+ we shouldn't be testing this flag.
>
> This is as per ACPI-6.3, 5.2.27.3, Table 5-145
> "Memory Proximity Domain Attributes Structure"
> for Flags.
Looks good to me.
Reviewed-by: Tao Xu <[email protected]>
>
> Signed-off-by: Daniel Black <[email protected]>
> ---
> drivers/acpi/hmat/hmat.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/acpi/hmat/hmat.c b/drivers/acpi/hmat/hmat.c
> index 96b7d39a97c6..e938e34673d9 100644
> --- a/drivers/acpi/hmat/hmat.c
> +++ b/drivers/acpi/hmat/hmat.c
> @@ -382,7 +382,7 @@ static int __init hmat_parse_proximity_domain(union acpi_subtable_headers *heade
> pr_info("HMAT: Memory Flags:%04x Processor Domain:%d Memory Domain:%d\n",
> p->flags, p->processor_PD, p->memory_PD);
>
> - if (p->flags & ACPI_HMAT_MEMORY_PD_VALID) {
> + if (p->flags & ACPI_HMAT_MEMORY_PD_VALID && hmat_revision == 1) {
> target = find_mem_target(p->memory_PD);
> if (!target) {
> pr_debug("HMAT: Memory Domain missing from SRAT\n");
>
On Tue, Aug 6, 2019 at 6:24 AM Daniel Black <[email protected]> wrote:
>
> ACPI-6.3 corresponds to when hmat revision was bumped from
> 1 to 2. In this version ACPI_HMAT_MEMORY_PD_VALID was
> deprecated and made reserved.
>
> As such in revision 2+ we shouldn't be testing this flag.
>
> This is as per ACPI-6.3, 5.2.27.3, Table 5-145
> "Memory Proximity Domain Attributes Structure"
> for Flags.
>
> Signed-off-by: Daniel Black <[email protected]>
Keith, any comments?
> ---
> drivers/acpi/hmat/hmat.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/acpi/hmat/hmat.c b/drivers/acpi/hmat/hmat.c
> index 96b7d39a97c6..e938e34673d9 100644
> --- a/drivers/acpi/hmat/hmat.c
> +++ b/drivers/acpi/hmat/hmat.c
> @@ -382,7 +382,7 @@ static int __init hmat_parse_proximity_domain(union acpi_subtable_headers *heade
> pr_info("HMAT: Memory Flags:%04x Processor Domain:%d Memory Domain:%d\n",
> p->flags, p->processor_PD, p->memory_PD);
>
> - if (p->flags & ACPI_HMAT_MEMORY_PD_VALID) {
> + if (p->flags & ACPI_HMAT_MEMORY_PD_VALID && hmat_revision == 1) {
> target = find_mem_target(p->memory_PD);
> if (!target) {
> pr_debug("HMAT: Memory Domain missing from SRAT\n");
> --
> 2.21.0
>
On Mon, 2 Sep 2019 23:28:50 +0200
"Rafael J. Wysocki" <[email protected]> wrote:
> On Tue, Aug 6, 2019 at 6:24 AM Daniel Black <[email protected]> wrote:
> >
> > ACPI-6.3 corresponds to when hmat revision was bumped from
> > 1 to 2. In this version ACPI_HMAT_MEMORY_PD_VALID was
> > deprecated and made reserved.
> >
> > As such in revision 2+ we shouldn't be testing this flag.
> >
> > This is as per ACPI-6.3, 5.2.27.3, Table 5-145
> > "Memory Proximity Domain Attributes Structure"
> > for Flags.
> >
> > Signed-off-by: Daniel Black <[email protected]>
>
> Keith, any comments?
FYI this was found when I was testing Tao Xu's qemu implementation of HMAT ACPI-6.3 which has no implementation of ACPI_HMAT_MEMORY_PD_VALID.
Current patch implementing Memory Proximity Domain Attributes Structure:
https://patchwork.kernel.org/patch/11125301/
On Tue, 3 Sep 2019 11:03:45 +1000
Daniel Black <[email protected]> wrote:
> On Mon, 2 Sep 2019 23:28:50 +0200
> "Rafael J. Wysocki" <[email protected]> wrote:
>
> > On Tue, Aug 6, 2019 at 6:24 AM Daniel Black <[email protected]> wrote:
> > >
> > > ACPI-6.3 corresponds to when hmat revision was bumped from
> > > 1 to 2. In this version ACPI_HMAT_MEMORY_PD_VALID was
> > > deprecated and made reserved.
> > >
> > > As such in revision 2+ we shouldn't be testing this flag.
> > >
> > > This is as per ACPI-6.3, 5.2.27.3, Table 5-145
> > > "Memory Proximity Domain Attributes Structure"
> > > for Flags.
> > >
> > > Signed-off-by: Daniel Black <[email protected]>
> >
> > Keith, any comments?
>
> FYI this was found when I was testing Tao Xu's qemu implementation of HMAT ACPI-6.3 which has no implementation of ACPI_HMAT_MEMORY_PD_VALID.
>
> Current patch implementing Memory Proximity Domain Attributes Structure:
> https://patchwork.kernel.org/patch/11125301/
On Mon, 12 Aug 2019 16:03:15 +0800
Tao Xu <[email protected]> wrote:
>
> Looks good to me.
>
> Reviewed-by: Tao Xu <[email protected]>
Ping. Any comments?
On Tuesday, August 6, 2019 6:24:39 AM CEST Daniel Black wrote:
> ACPI-6.3 corresponds to when hmat revision was bumped from
> 1 to 2. In this version ACPI_HMAT_MEMORY_PD_VALID was
> deprecated and made reserved.
>
> As such in revision 2+ we shouldn't be testing this flag.
>
> This is as per ACPI-6.3, 5.2.27.3, Table 5-145
> "Memory Proximity Domain Attributes Structure"
> for Flags.
>
> Signed-off-by: Daniel Black <[email protected]>
> ---
> drivers/acpi/hmat/hmat.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/acpi/hmat/hmat.c b/drivers/acpi/hmat/hmat.c
> index 96b7d39a97c6..e938e34673d9 100644
> --- a/drivers/acpi/hmat/hmat.c
> +++ b/drivers/acpi/hmat/hmat.c
> @@ -382,7 +382,7 @@ static int __init hmat_parse_proximity_domain(union acpi_subtable_headers *heade
> pr_info("HMAT: Memory Flags:%04x Processor Domain:%d Memory Domain:%d\n",
> p->flags, p->processor_PD, p->memory_PD);
>
> - if (p->flags & ACPI_HMAT_MEMORY_PD_VALID) {
> + if (p->flags & ACPI_HMAT_MEMORY_PD_VALID && hmat_revision == 1) {
> target = find_mem_target(p->memory_PD);
> if (!target) {
> pr_debug("HMAT: Memory Domain missing from SRAT\n");
>
Applied as a fix for 5.4, thanks!