Re: [PATCH 3/3] HID: nvidia-shield: Introduce thunderstrike_destroy()

From: Rahul Rameshbabu
Date: Sun Aug 27 2023 - 15:42:41 EST


On Sat, 26 Aug, 2023 23:13:01 +0200 Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> wrote:
> Le 26/08/2023 à 22:00, kernel test robot a écrit :
>> Hi Christophe,
>> kernel test robot noticed the following build warnings:
>> [auto build test WARNING on linux-next/master]
>> [cannot apply to linus/master v6.5-rc7]
>> [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/Christophe-JAILLET/HID-nvidia-shield-Fix-a-missing-led_classdev_unregister-in-the-probe-error-handling-path/20230827-014602
>> base: linux-next/master
>> patch link: https://lore.kernel.org/r/4c9a8c7f6b4eb879dd7ef4d44bb6a80b3f126d25.1693070958.git.christophe.jaillet%40wanadoo.fr
>> patch subject: [PATCH 3/3] HID: nvidia-shield: Introduce thunderstrike_destroy()
>> config: parisc-allyesconfig (https://download.01.org/0day-ci/archive/20230827/202308270307.EDe7t62T-lkp@xxxxxxxxx/config)
>> compiler: hppa-linux-gcc (GCC) 13.2.0
>
> On x86_64, gcc 12.3.0 does not complain. :(

The key to getting gcc to spew the warning is passing W=1 for the make
variable to get the compiler to invoke the unused warning.

[nix-shell:~/Documents/linux]$ make help | grep -i W=
make W=n [targets] Enable extra build checks, n=1,2,3 where
Multiple levels can be combined with W=12 or W=123

linux on  cjaillet/shield-fixup [?] via ❄️ impure (linux-6.1.31)
❯ make -C $dev/lib/modules/*/build M=$(pwd)/drivers/hid W=1 modules
CC [M] /home/binary-eater/Documents/linux/drivers/hid/hid-nvidia-shield.o
/home/binary-eater/Documents/linux/drivers/hid/hid-nvidia-shield.c: In function ‘shield_probe’:
/home/binary-eater/Documents/linux/drivers/hid/hid-nvidia-shield.c:1046:31: warning: variable ‘ts’ set but not used [-Wunused-but-set-variable]
1046 | struct thunderstrike *ts;
| ^~
MODPOST /home/binary-eater/Documents/linux/drivers/hid/Module.symvers
CC [M] /home/binary-eater/Documents/linux/drivers/hid/hid-nvidia-shield.mod.o
LD [M] /home/binary-eater/Documents/linux/drivers/hid/hid-nvidia-shield.ko
BTF [M] /home/binary-eater/Documents/linux/drivers/hid/hid-nvidia-shield.ko

linux on  cjaillet/shield-fixup [?] via ❄️ impure (linux-6.1.31) took 4s
❯ gcc --version
gcc (GCC) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Hope this is helpful.

-- Rahul Rameshbabu

>
> Let see first if there is some comment on the serie, then I'll send a v2 to fix
> the warning.
>
> CJ
>
>> reproduce: (https://download.01.org/0day-ci/archive/20230827/202308270307.EDe7t62T-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/202308270307.EDe7t62T-lkp@xxxxxxxxx/
>> All warnings (new ones prefixed by >>):
>> drivers/hid/hid-nvidia-shield.c: In function 'shield_probe':
>>>> drivers/hid/hid-nvidia-shield.c:1046:31: warning: variable 'ts' set but not used [-Wunused-but-set-variable]
>> 1046 | struct thunderstrike *ts;
>> | ^~
>> vim +/ts +1046 drivers/hid/hid-nvidia-shield.c
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1042
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1043 static int shield_probe(struct hid_device *hdev, const struct hid_device_id *id)
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1044 {
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1045 struct shield_device *shield_dev = NULL;
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 @1046 struct thunderstrike *ts;
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1047 int ret;
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1048
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1049 ret = hid_parse(hdev);
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1050 if (ret) {
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1051 hid_err(hdev, "Parse failed\n");
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1052 return ret;
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1053 }
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1054
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1055 switch (id->product) {
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1056 case USB_DEVICE_ID_NVIDIA_THUNDERSTRIKE_CONTROLLER:
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1057 shield_dev = thunderstrike_create(hdev);
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1058 break;
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1059 }
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1060
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1061 if (unlikely(!shield_dev)) {
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1062 hid_err(hdev, "Failed to identify SHIELD device\n");
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1063 return -ENODEV;
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1064 }
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1065 if (IS_ERR(shield_dev)) {
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1066 hid_err(hdev, "Failed to create SHIELD device\n");
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1067 return PTR_ERR(shield_dev);
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1068 }
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1069
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1070 ts = container_of(shield_dev, struct thunderstrike, base);
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1071
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1072 ret = hid_hw_start(hdev, HID_CONNECT_HIDINPUT);
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1073 if (ret) {
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1074 hid_err(hdev, "Failed to start HID device\n");
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1075 goto err_haptics;
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1076 }
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1077
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1078 ret = hid_hw_open(hdev);
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1079 if (ret) {
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1080 hid_err(hdev, "Failed to open HID device\n");
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1081 goto err_stop;
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1082 }
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1083
>> 3ab196f882377ed Rahul Rameshbabu 2023-08-07 1084 thunderstrike_device_init_info(shield_dev);
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1085
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1086 return ret;
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1087
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1088 err_stop:
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1089 hid_hw_stop(hdev);
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1090 err_haptics:
>> 2cc4637842495c6 Christophe JAILLET 2023-08-26 1091 thunderstrike_destroy(hdev);
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1092 return ret;
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1093 }
>> 09308562d4afb1a Rahul Rameshbabu 2023-06-08 1094
>>