[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <60ab506d-5374-484d-906e-3561fc895a6d@redhat.com>
Date: Thu, 5 Dec 2024 12:08:29 +1000
From: Gavin Shan <gshan@...hat.com>
To: Jeremy Linton <jeremy.linton@....com>, kernel test robot <lkp@...el.com>,
linux-arm-kernel@...ts.infradead.org
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
steven.price@....com, sami.mujawar@....com, suzuki.poulose@....com,
will@...nel.org, catalin.marinas@....com, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 1/1] arm64: rsi: Add automatic arm-cca-guest module
loading
On 12/4/24 1:30 AM, Jeremy Linton wrote:
> On 12/3/24 2:56 AM, Gavin Shan wrote:
>> On 12/3/24 4:03 PM, kernel test robot wrote:
>>> Hi Jeremy,
>>>
>>> kernel test robot noticed the following build warnings:
>>>
>>> [auto build test WARNING on arm64/for-next/core]
>>> [also build test WARNING on linus/master v6.13-rc1 next-20241128]
>>> [cannot apply to kvmarm/next soc/for-next arm/for-next arm/fixes]
>>> [If your patch is applied to the wrong git tree, kindly drop us a note.
>>> And when submitting patch, we suggest to use '--base' as documented in
>>> https://git-scm.com/docs/git-format-patch#_base_tree_information]
>>>
>>> url: https://github.com/intel-lab-lkp/linux/commits/Jeremy-Linton/ arm64-rsi-Add-automatic-arm-cca-guest-module-loading/20241203-080347
>>> base: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/ linux.git for-next/core
>>> patch link: https://lore.kernel.org/r/20241203000156.72451-2- jeremy.linton%40arm.com
>>> patch subject: [PATCH v2 1/1] arm64: rsi: Add automatic arm-cca-guest module loading
>>> config: arm64-randconfig-004-20241203 (https://download.01.org/0day- ci/archive/20241203/202412031348.bp5i3ws2-lkp@...el.com/config)
>>> compiler: clang version 20.0.0git (https://github.com/llvm/llvm- project 592c0fe55f6d9a811028b5f3507be91458ab2713)
>>> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/ archive/20241203/202412031348.bp5i3ws2-lkp@...el.com/reproduce)
>>>
>>> If you fix the issue in a separate patch/commit (i.e. not just a new version of
>>> the same patch/commit), kindly add following tags
>>> | Reported-by: kernel test robot <lkp@...el.com>
>>> | Closes: https://lore.kernel.org/oe-kbuild-all/202412031348.bp5i3ws2- lkp@...el.com/
>>>
>>> All warnings (new ones prefixed by >>):
>>>
>>>>> drivers/virt/coco/arm-cca-guest/arm-cca-guest.c:224:21: warning: attribute declaration must precede definition [-Wignored-attributes]
>>> 224 | static const struct __maybe_unused platform_device_id arm_cca_match[] = {
>>> | ^
>>> include/linux/compiler_attributes.h:356:56: note: expanded from macro '__maybe_unused'
>>> 356 | #define __maybe_unused __attribute__((__unused__))
>>> | ^
>>> include/linux/mod_devicetable.h:607:8: note: previous definition is here
>>> 607 | struct platform_device_id {
>>> | ^
>>>>> drivers/virt/coco/arm-cca-guest/arm-cca-guest.c:224:55: warning: unused variable 'arm_cca_match' [-Wunused-const-variable]
>>> 224 | static const struct __maybe_unused platform_device_id arm_cca_match[] = {
>>> | ^~~~~~~~~~~~~
>>> 2 warnings generated.
>>>
>>>
>>> vim +224 drivers/virt/coco/arm-cca-guest/arm-cca-guest.c
>>>
>>> 222
>>> 223 /* modalias, so userspace can autoload this module when RSI is available */
>>> > 224 static const struct __maybe_unused platform_device_id arm_cca_match[] = {
>>> 225 { RSI_PDEV_NAME, 0},
>>> 226 { }
>>> 227 };
>>> 228
>>>
>>
>> The definition may have to be something like below, to avoid the compiling warning.
>>
>> static const struct platform_device_id __maybe_unused arm_cca_match[] = {
>
> I should have tested this with clang rather than copy/pasting the utilization from somewhere else! It looks like a number of other kernel users are putting it before the '=', but its sorta annoying because it seems like the kind of warning that should be suppressed globally for this case (module device description in module that can be built in).
>
>
I think it also work by putting '__maybe_unused' before '='. It's also my personaly preferred style.
However, I don't see how the pattern 'struct __maybe_unused platform_device_id arm_cca_match[]' can
work because the affective scope of '__maybe_unused' is ambiguous to the compiler: 'struct platform_device_id'
or 'arm_cca_match[]'.
>
>> ...
>> };
>>
Thanks,
Gavin
Powered by blists - more mailing lists