Re: [PATCH -next] ACPICA: Make acpi_protocol_lengths static

From: Yuehaibing
Date: Mon Mar 30 2020 - 23:29:21 EST


On 2020/3/31 1:52, Kaneda, Erik wrote:
>
>
>> -----Original Message-----
>> From: linux-acpi-owner@xxxxxxxxxxxxxxx <linux-acpi-
>> owner@xxxxxxxxxxxxxxx> On Behalf Of Rafael J. Wysocki
>> Sent: Saturday, March 28, 2020 2:14 AM
>> To: YueHaibing <yuehaibing@xxxxxxxxxx>; Moore, Robert
>> <robert.moore@xxxxxxxxx>; Kaneda, Erik <erik.kaneda@xxxxxxxxx>
>> Cc: Wysocki, Rafael J <rafael.j.wysocki@xxxxxxxxx>; Len Brown
>> <lenb@xxxxxxxxxx>; ACPI Devel Maling List <linux-acpi@xxxxxxxxxxxxxxx>;
>> open list:ACPI COMPONENT ARCHITECTURE (ACPICA) <devel@xxxxxxxxxx>;
>> Linux Kernel Mailing List <linux-kernel@xxxxxxxxxxxxxxx>
>> Subject: Re: [PATCH -next] ACPICA: Make acpi_protocol_lengths static
>>
>> On Sat, Mar 28, 2020 at 4:47 AM YueHaibing <yuehaibing@xxxxxxxxxx>
>> wrote:
>>>
>>> Fix sparse warning:
>>>
>>> drivers/acpi/acpica/exfield.c:25:10: warning:
>>> symbol 'acpi_protocol_lengths' was not declared. Should it be static?
>
> I donât understand what sparse is trying to say here. This variable is declared in exfield.c...
> Could you provide more details on this sparse warning?

This is sparse -Wdel option's job, see man manual:

-Wdecl Warn about any non-static variable or function definition that
has no previous declaration.

Private symbols (functions and variables) internal to a given
source file should use static, to allow additional compiler
optimizations, allow detection of unused symbols, and prevent
other code from relying on these internal symbols. Public
symbols used by other source files will need declarations
visible to those other source files, such as in a header file.
All declarations should fall into one of these two categories.
Thus, with -Wdecl, Sparse warns about any symbol definition
with neither static nor a declaration. To fix this warning,
declare private symbols static, and ensure that the files
defining public symbols have the symbol declarations available
first (such as by including the appropriate header file).

>
> Erik
>
>>>
>>> Signed-off-by: YueHaibing <yuehaibing@xxxxxxxxxx>
>>
>> Bob, Erik, I'm leaving this one to you.
>>
>>> ---
>>> drivers/acpi/acpica/exfield.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/acpi/acpica/exfield.c
>>> b/drivers/acpi/acpica/exfield.c index e85eb31e5075..3323a2ba6a31
>>> 100644
>>> --- a/drivers/acpi/acpica/exfield.c
>>> +++ b/drivers/acpi/acpica/exfield.c
>>> @@ -22,7 +22,7 @@ ACPI_MODULE_NAME("exfield")
>>> */
>>> #define ACPI_INVALID_PROTOCOL_ID 0x80
>>> #define ACPI_MAX_PROTOCOL_ID 0x0F
>>> -const u8 acpi_protocol_lengths[] = {
>>> +static const u8 acpi_protocol_lengths[] = {
>>> ACPI_INVALID_PROTOCOL_ID, /* 0 - reserved */
>>> ACPI_INVALID_PROTOCOL_ID, /* 1 - reserved */
>>> 0x00, /* 2 - ATTRIB_QUICK */
>>> --
>>> 2.17.1
>>>
>>>