Skip to content

Commit 84fa7ad

Browse files
committed
Merge branch 'acpica'
Merge ACPICA material for v6.10. This is mostly new material included in the 20240322 upstream ACPICA release. - Disable -Wstringop-truncation for some ACPICA code in the kernel to avoid a compiler warning that is not very useful (Arnd Bergmann). - Add EINJ CXL error types to actbl1.h (Ben Cheatham). - Add support for RAS2 table to ACPICA (Shiju Jose). - Fix various spelling mistakes in text files and code comments in ACPICA (Colin Ian King). - Fix spelling and typos in ACPICA (Saket Dumbre). - Modify ACPI_OBJECT_COMMON_HEADER (lijun). - Add RISC-V RINTC affinity structure support to ACPICA (Haibo Xu). - Fix CXL 3.0 structure (RDPAS) in the CEDT table (Hojin Nam). - Add missin increment of registered GPE count to ACPICA (Daniil Tatianin). - Mark new ACPICA release 20240322 (Saket Dumbre). - Add support for the AEST V2 table to ACPICA (Ruidong Tian). * acpica: ACPICA: AEST: Add support for the AEST V2 table ACPICA: Update acpixf.h for new ACPICA release 20240322 ACPICA: events/evgpeinit: don't forget to increment registered GPE count ACPICA: Fix CXL 3.0 structure (RDPAS) in the CEDT table ACPICA: SRAT: Add dump and compiler support for RINTC affinity structure ACPICA: SRAT: Add RISC-V RINTC affinity structure ACPICA: Modify ACPI_OBJECT_COMMON_HEADER ACPICA: Fix spelling and typos ACPICA: Clean up the fix for Issue #900 ACPICA: Fix various spelling mistakes in text files and code comments ACPICA: Attempt 1 to fix issue #900 ACPICA: ACPI 6.5: RAS2: Add support for RAS2 table ACPICA: actbl1.h: Add EINJ CXL error types ACPI: disable -Wstringop-truncation
2 parents c901f63 + e049249 commit 84fa7ad

File tree

9 files changed

+314
-47
lines changed

9 files changed

+314
-47
lines changed

drivers/acpi/acpica/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
ccflags-y := -D_LINUX -DBUILDING_ACPICA
77
ccflags-$(CONFIG_ACPI_DEBUG) += -DACPI_DEBUG_OUTPUT
8+
CFLAGS_tbfind.o += $(call cc-disable-warning, stringop-truncation)
89

910
# use acpi.o to put all files here into acpi.o modparam namespace
1011
obj-y += acpi.o

drivers/acpi/acpica/aclocal.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,7 @@ struct acpi_field_info {
547547

548548
struct acpi_ged_handler_info {
549549
struct acpi_ged_handler_info *next;
550-
u32 int_id; /* The interrupt ID that triggers the execution ofthe evt_method. */
550+
u32 int_id; /* The interrupt ID that triggers the execution of the evt_method. */
551551
struct acpi_namespace_node *evt_method; /* The _EVT method to be executed when an interrupt with ID = int_ID is received */
552552
};
553553

drivers/acpi/acpica/acobject.h

Lines changed: 71 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
u8 descriptor_type; /* To differentiate various internal objs */\
4949
u8 type; /* acpi_object_type */\
5050
u16 reference_count; /* For object deletion management */\
51-
u8 flags;
51+
u8 flags
5252
/*
5353
* Note: There are 3 bytes available here before the
5454
* next natural alignment boundary (for both 32/64 cases)
@@ -71,10 +71,12 @@
7171
*****************************************************************************/
7272

7373
struct acpi_object_common {
74-
ACPI_OBJECT_COMMON_HEADER};
74+
ACPI_OBJECT_COMMON_HEADER;
75+
};
7576

7677
struct acpi_object_integer {
77-
ACPI_OBJECT_COMMON_HEADER u8 fill[3]; /* Prevent warning on some compilers */
78+
ACPI_OBJECT_COMMON_HEADER;
79+
u8 fill[3]; /* Prevent warning on some compilers */
7880
u64 value;
7981
};
8082

@@ -86,23 +88,26 @@ struct acpi_object_integer {
8688
*/
8789
#define ACPI_COMMON_BUFFER_INFO(_type) \
8890
_type *pointer; \
89-
u32 length;
91+
u32 length
9092

9193
/* Null terminated, ASCII characters only */
9294

9395
struct acpi_object_string {
94-
ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_BUFFER_INFO(char) /* String in AML stream or allocated string */
96+
ACPI_OBJECT_COMMON_HEADER;
97+
ACPI_COMMON_BUFFER_INFO(char); /* String in AML stream or allocated string */
9598
};
9699

97100
struct acpi_object_buffer {
98-
ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_BUFFER_INFO(u8) /* Buffer in AML stream or allocated buffer */
101+
ACPI_OBJECT_COMMON_HEADER;
102+
ACPI_COMMON_BUFFER_INFO(u8); /* Buffer in AML stream or allocated buffer */
99103
u32 aml_length;
100104
u8 *aml_start;
101105
struct acpi_namespace_node *node; /* Link back to parent node */
102106
};
103107

104108
struct acpi_object_package {
105-
ACPI_OBJECT_COMMON_HEADER struct acpi_namespace_node *node; /* Link back to parent node */
109+
ACPI_OBJECT_COMMON_HEADER;
110+
struct acpi_namespace_node *node; /* Link back to parent node */
106111
union acpi_operand_object **elements; /* Array of pointers to acpi_objects */
107112
u8 *aml_start;
108113
u32 aml_length;
@@ -116,11 +121,13 @@ struct acpi_object_package {
116121
*****************************************************************************/
117122

118123
struct acpi_object_event {
119-
ACPI_OBJECT_COMMON_HEADER acpi_semaphore os_semaphore; /* Actual OS synchronization object */
124+
ACPI_OBJECT_COMMON_HEADER;
125+
acpi_semaphore os_semaphore; /* Actual OS synchronization object */
120126
};
121127

122128
struct acpi_object_mutex {
123-
ACPI_OBJECT_COMMON_HEADER u8 sync_level; /* 0-15, specified in Mutex() call */
129+
ACPI_OBJECT_COMMON_HEADER;
130+
u8 sync_level; /* 0-15, specified in Mutex() call */
124131
u16 acquisition_depth; /* Allow multiple Acquires, same thread */
125132
acpi_mutex os_mutex; /* Actual OS synchronization object */
126133
acpi_thread_id thread_id; /* Current owner of the mutex */
@@ -132,7 +139,8 @@ struct acpi_object_mutex {
132139
};
133140

134141
struct acpi_object_region {
135-
ACPI_OBJECT_COMMON_HEADER u8 space_id;
142+
ACPI_OBJECT_COMMON_HEADER;
143+
u8 space_id;
136144
struct acpi_namespace_node *node; /* Containing namespace node */
137145
union acpi_operand_object *handler; /* Handler for region access */
138146
union acpi_operand_object *next;
@@ -142,7 +150,8 @@ struct acpi_object_region {
142150
};
143151

144152
struct acpi_object_method {
145-
ACPI_OBJECT_COMMON_HEADER u8 info_flags;
153+
ACPI_OBJECT_COMMON_HEADER;
154+
u8 info_flags;
146155
u8 param_count;
147156
u8 sync_level;
148157
union acpi_operand_object *mutex;
@@ -178,33 +187,43 @@ struct acpi_object_method {
178187
*/
179188
#define ACPI_COMMON_NOTIFY_INFO \
180189
union acpi_operand_object *notify_list[2]; /* Handlers for system/device notifies */\
181-
union acpi_operand_object *handler; /* Handler for Address space */
190+
union acpi_operand_object *handler /* Handler for Address space */
182191

183192
/* COMMON NOTIFY for POWER, PROCESSOR, DEVICE, and THERMAL */
184193

185194
struct acpi_object_notify_common {
186-
ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_NOTIFY_INFO};
195+
ACPI_OBJECT_COMMON_HEADER;
196+
ACPI_COMMON_NOTIFY_INFO;
197+
};
187198

188199
struct acpi_object_device {
189-
ACPI_OBJECT_COMMON_HEADER
190-
ACPI_COMMON_NOTIFY_INFO struct acpi_gpe_block_info *gpe_block;
200+
ACPI_OBJECT_COMMON_HEADER;
201+
ACPI_COMMON_NOTIFY_INFO;
202+
struct acpi_gpe_block_info *gpe_block;
191203
};
192204

193205
struct acpi_object_power_resource {
194-
ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_NOTIFY_INFO u32 system_level;
206+
ACPI_OBJECT_COMMON_HEADER;
207+
ACPI_COMMON_NOTIFY_INFO;
208+
u32 system_level;
195209
u32 resource_order;
196210
};
197211

198212
struct acpi_object_processor {
199-
ACPI_OBJECT_COMMON_HEADER
200-
/* The next two fields take advantage of the 3-byte space before NOTIFY_INFO */
213+
ACPI_OBJECT_COMMON_HEADER;
214+
215+
/* The next two fields take advantage of the 3-byte space before NOTIFY_INFO */
216+
201217
u8 proc_id;
202218
u8 length;
203-
ACPI_COMMON_NOTIFY_INFO acpi_io_address address;
219+
ACPI_COMMON_NOTIFY_INFO;
220+
acpi_io_address address;
204221
};
205222

206223
struct acpi_object_thermal_zone {
207-
ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_NOTIFY_INFO};
224+
ACPI_OBJECT_COMMON_HEADER;
225+
ACPI_COMMON_NOTIFY_INFO;
226+
};
208227

209228
/******************************************************************************
210229
*
@@ -226,42 +245,52 @@ ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_NOTIFY_INFO};
226245
u32 base_byte_offset; /* Byte offset within containing object */\
227246
u32 value; /* Value to store into the Bank or Index register */\
228247
u8 start_field_bit_offset;/* Bit offset within first field datum (0-63) */\
229-
u8 access_length; /* For serial regions/fields */
248+
u8 access_length /* For serial regions/fields */
230249

231250

232251
/* COMMON FIELD (for BUFFER, REGION, BANK, and INDEX fields) */
233252

234253
struct acpi_object_field_common {
235-
ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_FIELD_INFO union acpi_operand_object *region_obj; /* Parent Operation Region object (REGION/BANK fields only) */
254+
ACPI_OBJECT_COMMON_HEADER;
255+
ACPI_COMMON_FIELD_INFO;
256+
union acpi_operand_object *region_obj; /* Parent Operation Region object (REGION/BANK fields only) */
236257
};
237258

238259
struct acpi_object_region_field {
239-
ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_FIELD_INFO u16 resource_length;
260+
ACPI_OBJECT_COMMON_HEADER;
261+
ACPI_COMMON_FIELD_INFO;
262+
u16 resource_length;
240263
union acpi_operand_object *region_obj; /* Containing op_region object */
241264
u8 *resource_buffer; /* resource_template for serial regions/fields */
242265
u16 pin_number_index; /* Index relative to previous Connection/Template */
243266
u8 *internal_pcc_buffer; /* Internal buffer for fields associated with PCC */
244267
};
245268

246269
struct acpi_object_bank_field {
247-
ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_FIELD_INFO union acpi_operand_object *region_obj; /* Containing op_region object */
270+
ACPI_OBJECT_COMMON_HEADER;
271+
ACPI_COMMON_FIELD_INFO;
272+
union acpi_operand_object *region_obj; /* Containing op_region object */
248273
union acpi_operand_object *bank_obj; /* bank_select Register object */
249274
};
250275

251276
struct acpi_object_index_field {
252-
ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_FIELD_INFO
253-
/*
254-
* No "RegionObj" pointer needed since the Index and Data registers
255-
* are each field definitions unto themselves.
256-
*/
277+
ACPI_OBJECT_COMMON_HEADER;
278+
ACPI_COMMON_FIELD_INFO;
279+
280+
/*
281+
* No "RegionObj" pointer needed since the Index and Data registers
282+
* are each field definitions unto themselves.
283+
*/
257284
union acpi_operand_object *index_obj; /* Index register */
258285
union acpi_operand_object *data_obj; /* Data register */
259286
};
260287

261288
/* The buffer_field is different in that it is part of a Buffer, not an op_region */
262289

263290
struct acpi_object_buffer_field {
264-
ACPI_OBJECT_COMMON_HEADER ACPI_COMMON_FIELD_INFO u8 is_create_field; /* Special case for objects created by create_field() */
291+
ACPI_OBJECT_COMMON_HEADER;
292+
ACPI_COMMON_FIELD_INFO;
293+
u8 is_create_field; /* Special case for objects created by create_field() */
265294
union acpi_operand_object *buffer_obj; /* Containing Buffer object */
266295
};
267296

@@ -272,15 +301,17 @@ struct acpi_object_buffer_field {
272301
*****************************************************************************/
273302

274303
struct acpi_object_notify_handler {
275-
ACPI_OBJECT_COMMON_HEADER struct acpi_namespace_node *node; /* Parent device */
304+
ACPI_OBJECT_COMMON_HEADER;
305+
struct acpi_namespace_node *node; /* Parent device */
276306
u32 handler_type; /* Type: Device/System/Both */
277307
acpi_notify_handler handler; /* Handler address */
278308
void *context;
279309
union acpi_operand_object *next[2]; /* Device and System handler lists */
280310
};
281311

282312
struct acpi_object_addr_handler {
283-
ACPI_OBJECT_COMMON_HEADER u8 space_id;
313+
ACPI_OBJECT_COMMON_HEADER;
314+
u8 space_id;
284315
u8 handler_flags;
285316
acpi_adr_space_handler handler;
286317
struct acpi_namespace_node *node; /* Parent device */
@@ -307,7 +338,8 @@ struct acpi_object_addr_handler {
307338
* The Reference.Class differentiates these types.
308339
*/
309340
struct acpi_object_reference {
310-
ACPI_OBJECT_COMMON_HEADER u8 class; /* Reference Class */
341+
ACPI_OBJECT_COMMON_HEADER;
342+
u8 class; /* Reference Class */
311343
u8 target_type; /* Used for Index Op */
312344
u8 resolved; /* Reference has been resolved to a value */
313345
void *object; /* name_op=>HANDLE to obj, index_op=>union acpi_operand_object */
@@ -340,7 +372,8 @@ typedef enum {
340372
* Currently: Region and field_unit types
341373
*/
342374
struct acpi_object_extra {
343-
ACPI_OBJECT_COMMON_HEADER struct acpi_namespace_node *method_REG; /* _REG method for this region (if any) */
375+
ACPI_OBJECT_COMMON_HEADER;
376+
struct acpi_namespace_node *method_REG; /* _REG method for this region (if any) */
344377
struct acpi_namespace_node *scope_node;
345378
void *region_context; /* Region-specific data */
346379
u8 *aml_start;
@@ -350,14 +383,16 @@ struct acpi_object_extra {
350383
/* Additional data that can be attached to namespace nodes */
351384

352385
struct acpi_object_data {
353-
ACPI_OBJECT_COMMON_HEADER acpi_object_handler handler;
386+
ACPI_OBJECT_COMMON_HEADER;
387+
acpi_object_handler handler;
354388
void *pointer;
355389
};
356390

357391
/* Structure used when objects are cached for reuse */
358392

359393
struct acpi_object_cache_list {
360-
ACPI_OBJECT_COMMON_HEADER union acpi_operand_object *next; /* Link for object cache and internal lists */
394+
ACPI_OBJECT_COMMON_HEADER;
395+
union acpi_operand_object *next; /* Link for object cache and internal lists */
361396
};
362397

363398
/******************************************************************************

drivers/acpi/acpica/evgpeinit.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,7 @@ acpi_ev_match_gpe_method(acpi_handle obj_handle,
413413
gpe_event_info->flags &= ~(ACPI_GPE_DISPATCH_MASK);
414414
gpe_event_info->flags |= (u8)(type | ACPI_GPE_DISPATCH_METHOD);
415415
gpe_event_info->dispatch.method_node = method_node;
416+
walk_info->count++;
416417

417418
ACPI_DEBUG_PRINT((ACPI_DB_LOAD,
418419
"Registered GPE method %s as GPE number 0x%.2X\n",

drivers/acpi/acpica/utdebug.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,12 @@ void acpi_ut_track_stack_ptr(void)
6262
acpi_size current_sp;
6363

6464
if (&current_sp < acpi_gbl_lowest_stack_pointer) {
65+
#pragma GCC diagnostic push
66+
#if defined(__GNUC__) && __GNUC__ >= 12
67+
#pragma GCC diagnostic ignored "-Wdangling-pointer="
68+
#endif
6569
acpi_gbl_lowest_stack_pointer = &current_sp;
70+
#pragma GCC diagnostic pop
6671
}
6772

6873
if (acpi_gbl_nesting_level > acpi_gbl_deepest_nesting) {

include/acpi/acpixf.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
/* Current ACPICA subsystem version in YYYYMMDD format */
1414

15-
#define ACPI_CA_VERSION 0x20230628
15+
#define ACPI_CA_VERSION 0x20240322
1616

1717
#include <acpi/acconfig.h>
1818
#include <acpi/actypes.h>

include/acpi/actbl1.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -571,8 +571,6 @@ struct acpi_cedt_cxims {
571571

572572
struct acpi_cedt_rdpas {
573573
struct acpi_cedt_header header;
574-
u8 reserved1;
575-
u16 length;
576574
u16 segment;
577575
u16 bdf;
578576
u8 protocol;
@@ -1096,6 +1094,12 @@ enum acpi_einj_command_status {
10961094
#define ACPI_EINJ_PLATFORM_CORRECTABLE (1<<9)
10971095
#define ACPI_EINJ_PLATFORM_UNCORRECTABLE (1<<10)
10981096
#define ACPI_EINJ_PLATFORM_FATAL (1<<11)
1097+
#define ACPI_EINJ_CXL_CACHE_CORRECTABLE (1<<12)
1098+
#define ACPI_EINJ_CXL_CACHE_UNCORRECTABLE (1<<13)
1099+
#define ACPI_EINJ_CXL_CACHE_FATAL (1<<14)
1100+
#define ACPI_EINJ_CXL_MEM_CORRECTABLE (1<<15)
1101+
#define ACPI_EINJ_CXL_MEM_UNCORRECTABLE (1<<16)
1102+
#define ACPI_EINJ_CXL_MEM_FATAL (1<<17)
10991103
#define ACPI_EINJ_VENDOR_DEFINED (1<<31)
11001104

11011105
/*******************************************************************************

0 commit comments

Comments
 (0)