Re: [PATCH v2 1/1] arm64: rsi: Add automatic arm-cca-guest module loading

From: Gavin Shan
Date: Wed Dec 04 2024 - 21:08:49 EST



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@xxxxxxxxx/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@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202412031348.bp5i3ws2- lkp@xxxxxxxxx/

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