[alsa-devel] Question about the right fix for a sparse warning

Pierre-Louis Bossart pierre-louis.bossart at linux.intel.com
Wed Jan 29 15:39:50 CET 2020



On 1/29/20 1:55 AM, Takashi Iwai wrote:
> On Wed, 29 Jan 2020 02:11:38 +0100,
> Sridharan, Ranjani wrote:
>>
>> Hi Takashi,
>>
>> We're seeing the following sparse warning in the SOF code:
>>
>> sound/soc/sof/sof-audio.c:86:31: warning: incorrect type in assignment (different base types)
>> sound/soc/sof/sof-audio.c:86:31:    expected restricted snd_pcm_state_t [usertype] state
>> sound/soc/sof/sof-audio.c:86:31:    got signed int [signed] [usertype] [explicitly-signed] state
>>
>> The line under scrutiny where we assign "state" is as follows:
>>
>> state = substream->runtime->status->state;
>>
>> and it is defined as
>> snd_pcm_state_t state;
>>
>> There are other places (ex pcm_oss.c) where a similar assignment has been used
>> as well.
>>
>> What fixes the issue is a forced cast to snd_pcm_state_t as below before
>> assigning:
>>   state = (__force snd_pcm_state_t)substream->runtime->status->state;
>>
>> Do you think this is acceptable? If not, could you please suggest an
>> alternative?
> 
> Hm, I don't see the warning in my code.  Did you merge all upstream
> stuff and still get it?

It's been merged in the SOF tree (topic/sof-dev) and it'll be in the 
next batch I send. It's not upstream just yet because we want to remove 
the warning to make the patch nice and shiny :-)



More information about the Alsa-devel mailing list