Commit 4b4bd8c5 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

gcc-15: acpi: sprinkle random '__nonstring' crumbles around



This is not great: I'd much rather introduce a typedef that is a "ACPI
name byte buffer", and use that to mark these special 4-byte ACPI names
that do not use NUL termination.

But as noted in the previous commit ("gcc-15: make 'unterminated string
initialization' just a warning") gcc doesn't actually seem to support
that notion, so instead you have to just mark every single array
declaration individually.

So this is not pretty, but this gets rid of the bulk of the annoying
warnings during an allmodconfig build for me.

Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent d5d45a7f
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -293,7 +293,7 @@ acpi_status (*acpi_internal_method) (struct acpi_walk_state * walk_state);
 * expected_return_btypes - Allowed type(s) for the return value
 */
struct acpi_name_info {
	char name[ACPI_NAMESEG_SIZE];
	char name[ACPI_NAMESEG_SIZE] __nonstring;
	u16 argument_list;
	u8 expected_btypes;
};
@@ -370,7 +370,7 @@ typedef acpi_status (*acpi_object_converter) (struct acpi_namespace_node *
					      converted_object);

struct acpi_simple_repair_info {
	char name[ACPI_NAMESEG_SIZE];
	char name[ACPI_NAMESEG_SIZE] __nonstring;
	u32 unexpected_btypes;
	u32 package_index;
	acpi_object_converter object_converter;
+1 −1
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ acpi_status (*acpi_repair_function) (struct acpi_evaluate_info * info,
				     return_object_ptr);

typedef struct acpi_repair_info {
	char name[ACPI_NAMESEG_SIZE];
	char name[ACPI_NAMESEG_SIZE] __nonstring;
	acpi_repair_function repair_function;

} acpi_repair_info;
+1 −1
Original line number Diff line number Diff line
@@ -396,7 +396,7 @@ static u8 __init acpi_table_checksum(u8 *buffer, u32 length)
}

/* All but ACPI_SIG_RSDP and ACPI_SIG_FACS: */
static const char table_sigs[][ACPI_NAMESEG_SIZE] __initconst = {
static const char table_sigs[][ACPI_NAMESEG_SIZE] __initconst __nonstring = {
	ACPI_SIG_BERT, ACPI_SIG_BGRT, ACPI_SIG_CPEP, ACPI_SIG_ECDT,
	ACPI_SIG_EINJ, ACPI_SIG_ERST, ACPI_SIG_HEST, ACPI_SIG_MADT,
	ACPI_SIG_MSCT, ACPI_SIG_SBST, ACPI_SIG_SLIT, ACPI_SIG_SRAT,
+1 −1
Original line number Diff line number Diff line
@@ -66,7 +66,7 @@
 ******************************************************************************/

struct acpi_table_header {
	char signature[ACPI_NAMESEG_SIZE];	/* ASCII table signature */
	char signature[ACPI_NAMESEG_SIZE] __nonstring;	/* ASCII table signature */
	u32 length;		/* Length of table in bytes, including this header */
	u8 revision;		/* ACPI Specification minor version number */
	u8 checksum;		/* To make sum of entire table == 0 */