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

Takashi Iwai tiwai at suse.de
Wed Jan 29 17:45:02 CET 2020


On Wed, 29 Jan 2020 15:39:50 +0100,
Pierre-Louis Bossart wrote:
> 
> 
> 
> 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 :-)

I still wonder why I couldn't get it on my tree.  I guess the code
around that hasn't changed, right?

Wait...  Is it a test on 32bit arch?  If so, it might be a new thing
for y2038 support.  Then we may fix the uapi definition instead.


Takashi


More information about the Alsa-devel mailing list