Sparse errors

Takashi Iwai tiwai at suse.de
Wed May 26 09:40:41 CEST 2021


On Tue, 25 May 2021 21:32:27 +0200,
Pierre-Louis Bossart wrote:
> 
> Hi Takashi,
> Sparse reports a lot of new issues in our last checks with more options:
> 
> export ARCH=x86_64 CF="-Wsparse-error -Wsparse-all
> -Wno-bitwise-pointer -Wno-pointer-arith -Wno-typesign -Wnoshadow
> -Wno-sizeof-bool"
> make -k sound/ C=2
> 
> most are linked to the __user and pcm_format_t restricted types, but I
> found the simpler ones below which are useless comparisons. I can send
> a patch for the last but not sure how to address the first two.
> 
> Thanks for your feedback
> -Pierre
> 
> sound/core/info.c:95:38: error: self-comparison always evaluates to false
> 
> 	if (pos < 0 || (long) pos != pos || (ssize_t) count < 0)
> 		return false;
> 
> not sure what the second comparison is meant to check?

As Dan suggested, it's a check only for 32bit architecture for a 64bit
value.

> sound/drivers/opl3/opl3_midi.c:183:60: error: self-comparison always
> evaluates to false
> 
> This indeed makes no sense. the voice_time and vp->time are not
> changed in the loop, the test is either redundant or something else is
> missing.

The code doesn't look right, indeed.  It's likely meant to be vp2
instead of vp.

--- a/sound/drivers/opl3/opl3_midi.c
+++ b/sound/drivers/opl3/opl3_midi.c
@@ -180,8 +180,7 @@ static int opl3_get_voice(struct snd_opl3 *opl3, int instr_4op,
 			if (vp2->state == SNDRV_OPL3_ST_ON_2OP) {
 				/* kill two voices, EXPENSIVE */
 				bp++;
-				voice_time = (voice_time > vp->time) ?
-					voice_time : vp->time;
+				voice_time = max(voice_time, vp2->time);
 			}
 		} else {
 			/* allocate 2op voice */


> sound/pci/lx6464es/lx_core.c:677:34: error: self-comparison always
> evaluates to false
> 
> That seems like dead code indeed:
> 
> 	u32 channels = runtime->channels;
> 
> 	if (runtime->channels != channels)
> 		dev_err(chip->card->dev, "channel count mismatch: %d vs %d",
> 			   runtime->channels, channels);

Yes, this can be deleted.


thanks,

Takashi



More information about the Alsa-devel mailing list