[PATCH v1] ACPI / PPTT: Remove duplicate structure, acpi_pptt_cache_v1_full

Ben Horgan posted 1 patch 1 week, 2 days ago
drivers/acpi/pptt.c | 31 ++++++-------------------------
1 file changed, 6 insertions(+), 25 deletions(-)
[PATCH v1] ACPI / PPTT: Remove duplicate structure, acpi_pptt_cache_v1_full
Posted by Ben Horgan 1 week, 2 days ago
acpi_pptt_cache_v1_full was initially added as a stop gap until the
equivalent structure imported from ACPICA, acpi_pptt_v1 in actbl2.h,
contained all the fields of the Cache Type Structure. Since, commit :
091c4af3562d ("ACPICA: ACPI 6.4: PPTT: include all fields in subtable
type1"), acpi_pptt_v1 contains all these fields making
acpi_pptt_cache_v1_full redundant.

Remove acpi_pptt_cache_v1_full.

No functional change intended.

Cc: Jeremy Linton <jeremy.linton@arm.com>
Signed-off-by: Ben Horgan <ben.horgan@arm.com>
---
 drivers/acpi/pptt.c | 31 ++++++-------------------------
 1 file changed, 6 insertions(+), 25 deletions(-)

diff --git a/drivers/acpi/pptt.c b/drivers/acpi/pptt.c
index de5f8c018333..ea28ba61ddd9 100644
--- a/drivers/acpi/pptt.c
+++ b/drivers/acpi/pptt.c
@@ -21,25 +21,6 @@
 #include <linux/cacheinfo.h>
 #include <acpi/processor.h>
 
-/*
- * The acpi_pptt_cache_v1 in actbl2.h, which is imported from acpica,
- * only contains the cache_id field rather than all the fields of the
- * Cache Type Structure. Use this alternative structure until it is
- * resolved in acpica.
- */
-struct acpi_pptt_cache_v1_full {
-	struct acpi_subtable_header header;
-	u16 reserved;
-	u32 flags;
-	u32 next_level_of_cache;
-	u32 size;
-	u32 number_of_sets;
-	u8 associativity;
-	u8 attributes;
-	u16 line_size;
-	u32 cache_id;
-} __packed;
-
 static struct acpi_subtable_header *fetch_pptt_subtable(struct acpi_table_header *table_hdr,
 							u32 pptt_ref)
 {
@@ -75,16 +56,16 @@ static struct acpi_pptt_cache *fetch_pptt_cache(struct acpi_table_header *table_
 	return (struct acpi_pptt_cache *)fetch_pptt_subtable(table_hdr, pptt_ref);
 }
 
-static struct acpi_pptt_cache_v1_full *upgrade_pptt_cache(struct acpi_pptt_cache *cache)
+static struct acpi_pptt_cache_v1 *upgrade_pptt_cache(struct acpi_pptt_cache *cache)
 {
-	if (cache->header.length < sizeof(struct acpi_pptt_cache_v1_full))
+	if (cache->header.length < sizeof(struct acpi_pptt_cache_v1))
 		return NULL;
 
 	/* No use for v1 if the only additional field is invalid */
 	if (!(cache->flags & ACPI_PPTT_CACHE_ID_VALID))
 		return NULL;
 
-	return (struct acpi_pptt_cache_v1_full *)cache;
+	return (struct acpi_pptt_cache_v1 *)cache;
 }
 
 static struct acpi_subtable_header *acpi_get_pptt_resource(struct acpi_table_header *table_hdr,
@@ -397,7 +378,7 @@ static void update_cache_properties(struct cacheinfo *this_leaf,
 				    struct acpi_pptt_cache *found_cache,
 				    struct acpi_pptt_processor *cpu_node)
 {
-	struct acpi_pptt_cache_v1_full *found_cache_v1;
+	struct acpi_pptt_cache_v1 *found_cache_v1;
 
 	this_leaf->fw_token = cpu_node;
 	if (found_cache->flags & ACPI_PPTT_SIZE_PROPERTY_VALID)
@@ -979,7 +960,7 @@ int find_acpi_cache_level_from_id(u32 cache_id)
 
 			empty = true;
 			for (int i = 0; i < ARRAY_SIZE(cache_type); i++) {
-				struct acpi_pptt_cache_v1_full *cache_v1;
+				struct acpi_pptt_cache_v1 *cache_v1;
 
 				cache = acpi_find_cache_node(table, acpi_cpu_id, cache_type[i],
 							     level, &cpu_node);
@@ -1043,7 +1024,7 @@ int acpi_pptt_get_cpumask_from_cache_id(u32 cache_id, cpumask_t *cpus)
 
 			empty = true;
 			for (int i = 0; i < ARRAY_SIZE(cache_type); i++) {
-				struct acpi_pptt_cache_v1_full *cache_v1;
+				struct acpi_pptt_cache_v1 *cache_v1;
 
 				cache = acpi_find_cache_node(table, acpi_cpu_id, cache_type[i],
 							     level, &cpu_node);
-- 
2.43.0
Re: [PATCH v1] ACPI / PPTT: Remove duplicate structure, acpi_pptt_cache_v1_full
Posted by Sudeep Holla 1 week, 2 days ago
On Tue, Mar 24, 2026 at 11:33:00AM +0000, Ben Horgan wrote:
> acpi_pptt_cache_v1_full was initially added as a stop gap until the
> equivalent structure imported from ACPICA, acpi_pptt_v1 in actbl2.h,
> contained all the fields of the Cache Type Structure. Since, commit :
> 091c4af3562d ("ACPICA: ACPI 6.4: PPTT: include all fields in subtable
> type1"), acpi_pptt_v1 contains all these fields making
> acpi_pptt_cache_v1_full redundant.
> 
> Remove acpi_pptt_cache_v1_full.
> 
> No functional change intended.
> 

Reviewed-by: Sudeep Holla <sudeep.holla@kernel.org>

-- 
Regards,
Sudeep
Re: [PATCH v1] ACPI / PPTT: Remove duplicate structure, acpi_pptt_cache_v1_full
Posted by Rafael J. Wysocki 1 week, 1 day ago
On Tue, Mar 24, 2026 at 9:43 PM Sudeep Holla <sudeep.holla@kernel.org> wrote:
>
> On Tue, Mar 24, 2026 at 11:33:00AM +0000, Ben Horgan wrote:
> > acpi_pptt_cache_v1_full was initially added as a stop gap until the
> > equivalent structure imported from ACPICA, acpi_pptt_v1 in actbl2.h,
> > contained all the fields of the Cache Type Structure. Since, commit :
> > 091c4af3562d ("ACPICA: ACPI 6.4: PPTT: include all fields in subtable
> > type1"), acpi_pptt_v1 contains all these fields making
> > acpi_pptt_cache_v1_full redundant.
> >
> > Remove acpi_pptt_cache_v1_full.
> >
> > No functional change intended.
> >
>
> Reviewed-by: Sudeep Holla <sudeep.holla@kernel.org>

Am I supposed to pick this up?
Re: [PATCH v1] ACPI / PPTT: Remove duplicate structure, acpi_pptt_cache_v1_full
Posted by Sudeep Holla 1 week, 1 day ago
On Wed, Mar 25, 2026 at 12:45:27PM +0100, Rafael J. Wysocki wrote:
> On Tue, Mar 24, 2026 at 9:43 PM Sudeep Holla <sudeep.holla@kernel.org> wrote:
> >
> > On Tue, Mar 24, 2026 at 11:33:00AM +0000, Ben Horgan wrote:
> > > acpi_pptt_cache_v1_full was initially added as a stop gap until the
> > > equivalent structure imported from ACPICA, acpi_pptt_v1 in actbl2.h,
> > > contained all the fields of the Cache Type Structure. Since, commit :
> > > 091c4af3562d ("ACPICA: ACPI 6.4: PPTT: include all fields in subtable
> > > type1"), acpi_pptt_v1 contains all these fields making
> > > acpi_pptt_cache_v1_full redundant.
> > >
> > > Remove acpi_pptt_cache_v1_full.
> > >
> > > No functional change intended.
> > >
> >
> > Reviewed-by: Sudeep Holla <sudeep.holla@kernel.org>
> 
> Am I supposed to pick this up?

Yes please, IIUC we route only drivers/acpi/arm/* via arm64 tree in general.

-- 
Regards,
Sudeep
Re: [PATCH v1] ACPI / PPTT: Remove duplicate structure, acpi_pptt_cache_v1_full
Posted by Rafael J. Wysocki 1 week, 1 day ago
On Wed, Mar 25, 2026 at 12:53 PM Sudeep Holla <sudeep.holla@kernel.org> wrote:
>
> On Wed, Mar 25, 2026 at 12:45:27PM +0100, Rafael J. Wysocki wrote:
> > On Tue, Mar 24, 2026 at 9:43 PM Sudeep Holla <sudeep.holla@kernel.org> wrote:
> > >
> > > On Tue, Mar 24, 2026 at 11:33:00AM +0000, Ben Horgan wrote:
> > > > acpi_pptt_cache_v1_full was initially added as a stop gap until the
> > > > equivalent structure imported from ACPICA, acpi_pptt_v1 in actbl2.h,
> > > > contained all the fields of the Cache Type Structure. Since, commit :
> > > > 091c4af3562d ("ACPICA: ACPI 6.4: PPTT: include all fields in subtable
> > > > type1"), acpi_pptt_v1 contains all these fields making
> > > > acpi_pptt_cache_v1_full redundant.
> > > >
> > > > Remove acpi_pptt_cache_v1_full.
> > > >
> > > > No functional change intended.
> > > >
> > >
> > > Reviewed-by: Sudeep Holla <sudeep.holla@kernel.org>
> >
> > Am I supposed to pick this up?
>
> Yes please, IIUC we route only drivers/acpi/arm/* via arm64 tree in general.

Done, thanks!
Re: [PATCH v1] ACPI / PPTT: Remove duplicate structure, acpi_pptt_cache_v1_full
Posted by Sudeep Holla 1 week, 1 day ago
On Wed, Mar 25, 2026 at 02:32:47PM +0100, Rafael J. Wysocki wrote:
> On Wed, Mar 25, 2026 at 12:53 PM Sudeep Holla <sudeep.holla@kernel.org> wrote:
> >
> > On Wed, Mar 25, 2026 at 12:45:27PM +0100, Rafael J. Wysocki wrote:
> > > On Tue, Mar 24, 2026 at 9:43 PM Sudeep Holla <sudeep.holla@kernel.org> wrote:
> > > >
> > > > On Tue, Mar 24, 2026 at 11:33:00AM +0000, Ben Horgan wrote:
> > > > > acpi_pptt_cache_v1_full was initially added as a stop gap until the
> > > > > equivalent structure imported from ACPICA, acpi_pptt_v1 in actbl2.h,
> > > > > contained all the fields of the Cache Type Structure. Since, commit :
> > > > > 091c4af3562d ("ACPICA: ACPI 6.4: PPTT: include all fields in subtable
> > > > > type1"), acpi_pptt_v1 contains all these fields making
> > > > > acpi_pptt_cache_v1_full redundant.
> > > > >
> > > > > Remove acpi_pptt_cache_v1_full.
> > > > >
> > > > > No functional change intended.
> > > > >
> > > >
> > > > Reviewed-by: Sudeep Holla <sudeep.holla@kernel.org>
> > >
> > > Am I supposed to pick this up?
> >
> > Yes please, IIUC we route only drivers/acpi/arm/* via arm64 tree in general.
> 
> Done, thanks!

Thanks Rafael!

-- 
Regards,
Sudeep
Re: [PATCH v1] ACPI / PPTT: Remove duplicate structure, acpi_pptt_cache_v1_full
Posted by Jeremy Linton 1 week, 2 days ago
Hi,

On 3/24/26 6:33 AM, Ben Horgan wrote:
> acpi_pptt_cache_v1_full was initially added as a stop gap until the
> equivalent structure imported from ACPICA, acpi_pptt_v1 in actbl2.h,
> contained all the fields of the Cache Type Structure. Since, commit :
> 091c4af3562d ("ACPICA: ACPI 6.4: PPTT: include all fields in subtable
> type1"), acpi_pptt_v1 contains all these fields making
> acpi_pptt_cache_v1_full redundant.
> 
> Remove acpi_pptt_cache_v1_full.

Looks good, thanks for taking care of this.

Reviewed-by: Jeremy Linton <jeremy.linton@arm.com>

> 
> No functional change intended.
> 
> Cc: Jeremy Linton <jeremy.linton@arm.com>
> Signed-off-by: Ben Horgan <ben.horgan@arm.com>
> ---
>   drivers/acpi/pptt.c | 31 ++++++-------------------------
>   1 file changed, 6 insertions(+), 25 deletions(-)
> 
> diff --git a/drivers/acpi/pptt.c b/drivers/acpi/pptt.c
> index de5f8c018333..ea28ba61ddd9 100644
> --- a/drivers/acpi/pptt.c
> +++ b/drivers/acpi/pptt.c
> @@ -21,25 +21,6 @@
>   #include <linux/cacheinfo.h>
>   #include <acpi/processor.h>
>   
> -/*
> - * The acpi_pptt_cache_v1 in actbl2.h, which is imported from acpica,
> - * only contains the cache_id field rather than all the fields of the
> - * Cache Type Structure. Use this alternative structure until it is
> - * resolved in acpica.
> - */
> -struct acpi_pptt_cache_v1_full {
> -	struct acpi_subtable_header header;
> -	u16 reserved;
> -	u32 flags;
> -	u32 next_level_of_cache;
> -	u32 size;
> -	u32 number_of_sets;
> -	u8 associativity;
> -	u8 attributes;
> -	u16 line_size;
> -	u32 cache_id;
> -} __packed;
> -
>   static struct acpi_subtable_header *fetch_pptt_subtable(struct acpi_table_header *table_hdr,
>   							u32 pptt_ref)
>   {
> @@ -75,16 +56,16 @@ static struct acpi_pptt_cache *fetch_pptt_cache(struct acpi_table_header *table_
>   	return (struct acpi_pptt_cache *)fetch_pptt_subtable(table_hdr, pptt_ref);
>   }
>   
> -static struct acpi_pptt_cache_v1_full *upgrade_pptt_cache(struct acpi_pptt_cache *cache)
> +static struct acpi_pptt_cache_v1 *upgrade_pptt_cache(struct acpi_pptt_cache *cache)
>   {
> -	if (cache->header.length < sizeof(struct acpi_pptt_cache_v1_full))
> +	if (cache->header.length < sizeof(struct acpi_pptt_cache_v1))
>   		return NULL;
>   
>   	/* No use for v1 if the only additional field is invalid */
>   	if (!(cache->flags & ACPI_PPTT_CACHE_ID_VALID))
>   		return NULL;
>   
> -	return (struct acpi_pptt_cache_v1_full *)cache;
> +	return (struct acpi_pptt_cache_v1 *)cache;
>   }
>   
>   static struct acpi_subtable_header *acpi_get_pptt_resource(struct acpi_table_header *table_hdr,
> @@ -397,7 +378,7 @@ static void update_cache_properties(struct cacheinfo *this_leaf,
>   				    struct acpi_pptt_cache *found_cache,
>   				    struct acpi_pptt_processor *cpu_node)
>   {
> -	struct acpi_pptt_cache_v1_full *found_cache_v1;
> +	struct acpi_pptt_cache_v1 *found_cache_v1;
>   
>   	this_leaf->fw_token = cpu_node;
>   	if (found_cache->flags & ACPI_PPTT_SIZE_PROPERTY_VALID)
> @@ -979,7 +960,7 @@ int find_acpi_cache_level_from_id(u32 cache_id)
>   
>   			empty = true;
>   			for (int i = 0; i < ARRAY_SIZE(cache_type); i++) {
> -				struct acpi_pptt_cache_v1_full *cache_v1;
> +				struct acpi_pptt_cache_v1 *cache_v1;
>   
>   				cache = acpi_find_cache_node(table, acpi_cpu_id, cache_type[i],
>   							     level, &cpu_node);
> @@ -1043,7 +1024,7 @@ int acpi_pptt_get_cpumask_from_cache_id(u32 cache_id, cpumask_t *cpus)
>   
>   			empty = true;
>   			for (int i = 0; i < ARRAY_SIZE(cache_type); i++) {
> -				struct acpi_pptt_cache_v1_full *cache_v1;
> +				struct acpi_pptt_cache_v1 *cache_v1;
>   
>   				cache = acpi_find_cache_node(table, acpi_cpu_id, cache_type[i],
>   							     level, &cpu_node);