Re: [PATCH] ACPICA: Use ARRAY_SIZE instead of hardcoded siz

From: Jason Yan
Date: Tue Apr 14 2020 - 23:14:11 EST




在 2020/4/15 4:22, Moore, Robert 写道:
I think we've discussed this in the past. ARRAY_SIZE is not standard, and will get in the way of portability:


Thanks for the explanation. Got it.


On gcc v7.4.0:
../../../source/components/resources/rsdumpinfo.c:335:25: note: in expansion of macro 'ACPI_RSD_TABLE_SIZE'
{ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpGenericReg), "Generic Register", NULL},

../../../source/components/resources/rsdumpinfo.c:166:37: error: initializer element is not constant
#define ACPI_RSD_TABLE_SIZE(name) ARRAY_SIZE (name)


And, on MSVC 2017:
Severity Code Description Project File Line Suppression State
Warning C4013 'ARRAY_SIZE' undefined; assuming extern returning int AcpiExec c:\acpica\source\components\resources\rsdumpinfo.c 179
-----Original Message-----
From: Jason Yan <yanaijie@xxxxxxxxxx>
Sent: Monday, April 13, 2020 7:32 AM
To: Moore, Robert <robert.moore@xxxxxxxxx>; Kaneda, Erik <erik.kaneda@xxxxxxxxx>; Wysocki, Rafael J <rafael.j.wysocki@xxxxxxxxx>; lenb@xxxxxxxxxx; linux-acpi@xxxxxxxxxxxxxxx; devel@xxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
Cc: Jason Yan <yanaijie@xxxxxxxxxx>
Subject: [PATCH] ACPICA: Use ARRAY_SIZE instead of hardcoded siz

Fix the following coccicheck warning:

./drivers/acpi/acpica/rsdumpinfo.c:18:48-49: WARNING: Use ARRAY_SIZE
./drivers/acpi/acpica/rsdumpinfo.c:18:48-49: WARNING: Use ARRAY_SIZE
./drivers/acpi/acpica/rsdumpinfo.c:18:48-49: WARNING: Use ARRAY_SIZE
./drivers/acpi/acpica/rsdumpinfo.c:18:48-49: WARNING: Use ARRAY_SIZE
./drivers/acpi/acpica/rsdumpinfo.c:18:48-49: WARNING: Use ARRAY_SIZE
./drivers/acpi/acpica/rsdumpinfo.c:18:48-49: WARNING: Use ARRAY_SIZE
./drivers/acpi/acpica/rsdumpinfo.c:18:48-49: WARNING: Use ARRAY_SIZE

Signed-off-by: Jason Yan <yanaijie@xxxxxxxxxx>
---
drivers/acpi/acpica/rsdumpinfo.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/acpi/acpica/rsdumpinfo.c b/drivers/acpi/acpica/rsdumpinfo.c
index cafa8134b4c6..f1ba4cd8080f 100644
--- a/drivers/acpi/acpica/rsdumpinfo.c
+++ b/drivers/acpi/acpica/rsdumpinfo.c
@@ -15,7 +15,7 @@ ACPI_MODULE_NAME("rsdumpinfo") #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DISASSEMBLER) || defined(ACPI_DEBUGGER)
#define ACPI_RSD_OFFSET(f) (u8) ACPI_OFFSET (union acpi_resource_data,f)
#define ACPI_PRT_OFFSET(f) (u8) ACPI_OFFSET (struct acpi_pci_routing_table,f)
-#define ACPI_RSD_TABLE_SIZE(name) (sizeof(name) / sizeof (struct acpi_rsdump_info))
+#define ACPI_RSD_TABLE_SIZE(name) ARRAY_SIZE(name)
/*******************************************************************************
*
* Resource Descriptor info tables
--
2.21.1


.