[PATCH] media: av7110: Workaround a compiler warning

Stefan Herdler posted 1 patch 9 months, 2 weeks ago
drivers/staging/media/av7110/av7110.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH] media: av7110: Workaround a compiler warning
Posted by Stefan Herdler 9 months, 2 weeks ago
Avoid compiler warning caused by an empty block statement.

Signed-off-by: Stefan Herdler <herdler@nurfuerspam.de>
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202504262127.FkkWHzfs-lkp@intel.com/
---

I could not reproduce this warning with gcc10 here, but I already had similar
warnings with gcc12 on other projects.
I think it has most probably been triggered by the empty block statement.

I'm pretty confident this patch will fix the warning, but not 100% sure.

The kernel test robot will pick this patch and test is anyway, if I'm correct.
Let's wait, if it complains again.
That's the best I can do right now.

Regards
Stefan


 drivers/staging/media/av7110/av7110.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/media/av7110/av7110.c b/drivers/staging/media/av7110/av7110.c
index bc9a2a40a..962536ed7 100644
--- a/drivers/staging/media/av7110/av7110.c
+++ b/drivers/staging/media/av7110/av7110.c
@@ -159,7 +159,7 @@ static void init_av7110_av(struct av7110 *av7110)
 		 * some special handling for the Siemens DVB-C cards...
 		 */
 	} else if (av7110_init_analog_module(av7110) == 0) {
-		/* done. */
+		goto init_skip_analog_module;
 	} else if (dev->pci->subsystem_vendor == 0x110a) {
 		pr_info("DVB-C w/o analog module @ card %d detected\n", av7110->dvb_adapter.num);
 		av7110->adac_type = DVB_ADAC_NONE;
@@ -168,6 +168,7 @@ static void init_av7110_av(struct av7110 *av7110)
 		pr_info("adac type set to %d @ card %d\n", av7110->adac_type, av7110->dvb_adapter.num);
 	}
 
+init_skip_analog_module:
 	if (av7110->adac_type == DVB_ADAC_NONE || av7110->adac_type == DVB_ADAC_MSP34x0) {
 		// switch DVB SCART on
 		ret = av7110_fw_cmd(av7110, COMTYPE_AUDIODAC, MainSwitch, 1, 0);
-- 
2.34.0
Re: [PATCH] media: av7110: Workaround a compiler warning
Posted by Hans Verkuil 7 months, 3 weeks ago
Hi Stefan,

On 26/04/2025 23:54, Stefan Herdler wrote:
> Avoid compiler warning caused by an empty block statement.
> 
> Signed-off-by: Stefan Herdler <herdler@nurfuerspam.de>
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202504262127.FkkWHzfs-lkp@intel.com/
> ---
> 
> I could not reproduce this warning with gcc10 here, but I already had similar
> warnings with gcc12 on other projects.
> I think it has most probably been triggered by the empty block statement.
> 
> I'm pretty confident this patch will fix the warning, but not 100% sure.
> 
> The kernel test robot will pick this patch and test is anyway, if I'm correct.
> Let's wait, if it complains again.
> That's the best I can do right now.

Is this patch still needed? I noticed that it wasn't CC-ed to the linux-media
mailinglist, so it never appeared in patchwork, and was never picked up.

If it is still needed, then please post it to linux-media and it will be
picked up for v6.17.

Regards,

	Hans

> 
> Regards
> Stefan
> 
> 
>  drivers/staging/media/av7110/av7110.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/staging/media/av7110/av7110.c b/drivers/staging/media/av7110/av7110.c
> index bc9a2a40a..962536ed7 100644
> --- a/drivers/staging/media/av7110/av7110.c
> +++ b/drivers/staging/media/av7110/av7110.c
> @@ -159,7 +159,7 @@ static void init_av7110_av(struct av7110 *av7110)
>  		 * some special handling for the Siemens DVB-C cards...
>  		 */
>  	} else if (av7110_init_analog_module(av7110) == 0) {
> -		/* done. */
> +		goto init_skip_analog_module;
>  	} else if (dev->pci->subsystem_vendor == 0x110a) {
>  		pr_info("DVB-C w/o analog module @ card %d detected\n", av7110->dvb_adapter.num);
>  		av7110->adac_type = DVB_ADAC_NONE;
> @@ -168,6 +168,7 @@ static void init_av7110_av(struct av7110 *av7110)
>  		pr_info("adac type set to %d @ card %d\n", av7110->adac_type, av7110->dvb_adapter.num);
>  	}
>  
> +init_skip_analog_module:
>  	if (av7110->adac_type == DVB_ADAC_NONE || av7110->adac_type == DVB_ADAC_MSP34x0) {
>  		// switch DVB SCART on
>  		ret = av7110_fw_cmd(av7110, COMTYPE_AUDIODAC, MainSwitch, 1, 0);
Re: [PATCH] media: av7110: Workaround a compiler warning
Posted by Stefan Herdler 7 months, 3 weeks ago
Hi Hans,

On 20/06/25 15:33 Hans Verkuil wrote:
> Hi Stefan,
> 
> On 26/04/2025 23:54, Stefan Herdler wrote:
>> Avoid compiler warning caused by an empty block statement.
>>
>> Signed-off-by: Stefan Herdler <herdler@nurfuerspam.de>
>> Reported-by: kernel test robot <lkp@intel.com>
>> Closes: https://lore.kernel.org/oe-kbuild-all/202504262127.FkkWHzfs-lkp@intel.com/
>> ---
>>
>> I could not reproduce this warning with gcc10 here, but I already had similar
>> warnings with gcc12 on other projects.
>> I think it has most probably been triggered by the empty block statement.
>>
>> I'm pretty confident this patch will fix the warning, but not 100% sure.
>>
>> The kernel test robot will pick this patch and test is anyway, if I'm correct.
>> Let's wait, if it complains again.
>> That's the best I can do right now.
> 
> Is this patch still needed? I noticed that it wasn't CC-ed to the linux-media
> mailinglist, so it never appeared in patchwork, and was never picked up.

Thanks for the hint, next time I CC the media-list too.


Meanwhile I think the patch isn't necessary.
In haven't found any other evidence that there is something wrong.
- I wasn't able to reproduce this warning.
- Debian has recent builds of kernel 6.15.3 with gcc 14.
    The kernel-package contains the "dvb-ttpci.ko" file[1] and there are no
    warnings (for this module) in the build log[2].

The warning still doesn't make sense to me -there is no function statement-
and the code looks o.k. to me too.
The only debatable thing is the empty function block, which is generally
suggested to avoid.
Meanwhile I think a null statement ";" is maybe a more elegant solution here.

Is there a recommend practice for this? I haven't found anything in the
documentation so far.


Regards
Stefan

[1]: https://packages.debian.org/search?searchon=contents&keywords=dvb-ttpci.ko&mode=path&suite=experimental&arch=any
[2]: https://buildd.debian.org/status/logs.php?pkg=linux&ver=6.15.3-1%7Eexp1&arch=amd64&suite=experimental

> 
> If it is still needed, then please post it to linux-media and it will be
> picked up for v6.17.
> 
> Regards,
> 
> 	Hans
> 
>>
>> Regards
>> Stefan
>>
>>
>>  drivers/staging/media/av7110/av7110.c | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/staging/media/av7110/av7110.c b/drivers/staging/media/av7110/av7110.c
>> index bc9a2a40a..962536ed7 100644
>> --- a/drivers/staging/media/av7110/av7110.c
>> +++ b/drivers/staging/media/av7110/av7110.c
>> @@ -159,7 +159,7 @@ static void init_av7110_av(struct av7110 *av7110)
>>  		 * some special handling for the Siemens DVB-C cards...
>>  		 */
>>  	} else if (av7110_init_analog_module(av7110) == 0) {
>> -		/* done. */
>> +		goto init_skip_analog_module;
>>  	} else if (dev->pci->subsystem_vendor == 0x110a) {
>>  		pr_info("DVB-C w/o analog module @ card %d detected\n", av7110->dvb_adapter.num);
>>  		av7110->adac_type = DVB_ADAC_NONE;
>> @@ -168,6 +168,7 @@ static void init_av7110_av(struct av7110 *av7110)
>>  		pr_info("adac type set to %d @ card %d\n", av7110->adac_type, av7110->dvb_adapter.num);
>>  	}
>>  
>> +init_skip_analog_module:
>>  	if (av7110->adac_type == DVB_ADAC_NONE || av7110->adac_type == DVB_ADAC_MSP34x0) {
>>  		// switch DVB SCART on
>>  		ret = av7110_fw_cmd(av7110, COMTYPE_AUDIODAC, MainSwitch, 1, 0);
>