2014-06-12 08:37:37

by wangxiaoming321

[permalink] [raw]
Subject: [PATCH] ALSA: compress: Cancel the optimization of compiler and fix the size of struct for all platform.

Cancel the optimization of compiler for struct snd_compr_avail
which size will be 0x1c in 32bit kernel while 0x20 in 64bit
kernel under the optimizer. That will make compaction between
32bit and 64bit. So add packed to fix the size of struct
snd_compr_avail to 0x1c for all platform.

Signed-off-by: Zhang Dongxing <[email protected]>
Signed-off-by: xiaoming wang <[email protected]>
---
include/uapi/sound/compress_offload.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/include/uapi/sound/compress_offload.h b/include/uapi/sound/compress_offload.h
index 5759810..21eed48 100644
--- a/include/uapi/sound/compress_offload.h
+++ b/include/uapi/sound/compress_offload.h
@@ -80,7 +80,7 @@ struct snd_compr_tstamp {
struct snd_compr_avail {
__u64 avail;
struct snd_compr_tstamp tstamp;
-};
+} __attribute__((packed));

enum snd_compr_direction {
SND_COMPRESS_PLAYBACK = 0,
--
1.7.1


2014-06-12 09:44:56

by Vinod Koul

[permalink] [raw]
Subject: Re: [PATCH] ALSA: compress: Cancel the optimization of compiler and fix the size of struct for all platform.

On Thu, Jun 12, 2014 at 06:47:07PM -0400, Wang, Xiaoming wrote:
> Cancel the optimization of compiler for struct snd_compr_avail
> which size will be 0x1c in 32bit kernel while 0x20 in 64bit
> kernel under the optimizer. That will make compaction between
> 32bit and 64bit. So add packed to fix the size of struct
> snd_compr_avail to 0x1c for all platform.
>
> Signed-off-by: Zhang Dongxing <[email protected]>
> Signed-off-by: xiaoming wang <[email protected]>

Acked-by: Vinod Koul <[email protected]>

Takashi, can we cc stable on this, would help fixing in older kernels too

Thanks
--
~Vinod
> ---
> include/uapi/sound/compress_offload.h | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/include/uapi/sound/compress_offload.h b/include/uapi/sound/compress_offload.h
> index 5759810..21eed48 100644
> --- a/include/uapi/sound/compress_offload.h
> +++ b/include/uapi/sound/compress_offload.h
> @@ -80,7 +80,7 @@ struct snd_compr_tstamp {
> struct snd_compr_avail {
> __u64 avail;
> struct snd_compr_tstamp tstamp;
> -};
> +} __attribute__((packed));
>
> enum snd_compr_direction {
> SND_COMPRESS_PLAYBACK = 0,
> --
> 1.7.1
>

--

2014-06-12 09:59:24

by Takashi Iwai

[permalink] [raw]
Subject: Re: [PATCH] ALSA: compress: Cancel the optimization of compiler and fix the size of struct for all platform.

At Thu, 12 Jun 2014 14:55:13 +0530,
Vinod Koul wrote:
>
> On Thu, Jun 12, 2014 at 06:47:07PM -0400, Wang, Xiaoming wrote:
> > Cancel the optimization of compiler for struct snd_compr_avail
> > which size will be 0x1c in 32bit kernel while 0x20 in 64bit
> > kernel under the optimizer. That will make compaction between
> > 32bit and 64bit. So add packed to fix the size of struct
> > snd_compr_avail to 0x1c for all platform.
> >
> > Signed-off-by: Zhang Dongxing <[email protected]>
> > Signed-off-by: xiaoming wang <[email protected]>
>
> Acked-by: Vinod Koul <[email protected]>
>
> Takashi, can we cc stable on this, would help fixing in older kernels too

Yes, applied with Cc to stable now.


thanks,

Takashi

>
> Thanks
> --
> ~Vinod
> > ---
> > include/uapi/sound/compress_offload.h | 2 +-
> > 1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/include/uapi/sound/compress_offload.h b/include/uapi/sound/compress_offload.h
> > index 5759810..21eed48 100644
> > --- a/include/uapi/sound/compress_offload.h
> > +++ b/include/uapi/sound/compress_offload.h
> > @@ -80,7 +80,7 @@ struct snd_compr_tstamp {
> > struct snd_compr_avail {
> > __u64 avail;
> > struct snd_compr_tstamp tstamp;
> > -};
> > +} __attribute__((packed));
> >
> > enum snd_compr_direction {
> > SND_COMPRESS_PLAYBACK = 0,
> > --
> > 1.7.1
> >
>
> --
>