[alsa-devel] [patch] ALSA: cs5535 - Fix an endianness conversion

Takashi Iwai tiwai at suse.de
Mon Nov 21 12:39:53 CET 2011


At Sun, 20 Nov 2011 23:57:49 +0300,
Dan Carpenter wrote:
> 
> desc->size is supposed to be a le16 type.  On a big endian system the
> current code will set ->size to zero.  We fixed a similar bug
> on the next line but missed this one.
> 
> Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
> ---
> This is a static checker bug.  I haven't tested it.

Obviously correct, so I applied it now.


thanks,

Takashi

> diff --git a/sound/pci/cs5535audio/cs5535audio_pcm.c b/sound/pci/cs5535audio/cs5535audio_pcm.c
> index e083122..dbf94b1 100644
> --- a/sound/pci/cs5535audio/cs5535audio_pcm.c
> +++ b/sound/pci/cs5535audio/cs5535audio_pcm.c
> @@ -148,7 +148,7 @@ static int cs5535audio_build_dma_packets(struct cs5535audio *cs5535au,
>  		struct cs5535audio_dma_desc *desc =
>  			&((struct cs5535audio_dma_desc *) dma->desc_buf.area)[i];
>  		desc->addr = cpu_to_le32(addr);
> -		desc->size = cpu_to_le32(period_bytes);
> +		desc->size = cpu_to_le16(period_bytes);
>  		desc->ctlreserved = cpu_to_le16(PRD_EOP);
>  		desc_addr += sizeof(struct cs5535audio_dma_desc);
>  		addr += period_bytes;
> 


More information about the Alsa-devel mailing list