On Sat, 16 Jan 2016 09:51:29 +0100, Takashi Iwai wrote: > > On Sat, 16 Jan 2016 00:14:01 +0100, > Andrew Morton wrote: > > > > On Sat, 16 Jan 2016 10:00:47 +1100 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote: > > > > > Hi Andrew, > > > > +#define SNDRV_COMPRESS_GET_CODEC_CAPS _IOWR('C', 0x11, struct snd_compr_caps) > > > > #define SNDRV_COMPRESS_SET_PARAMS _IOW('C', 0x12, struct snd_compr_params) > > > > #define SNDRV_COMPRESS_GET_PARAMS _IOR('C', 0x13, struct snd_codec) > > > > #define SNDRV_COMPRESS_SET_METADATA _IOW('C', 0x14,\ > > > > > > > > then it compiles OK. So there's something special about `struct > > > > snd_compr_codec_caps' which is confusing the compiler. > > > > > > Its very big (hint, I think it is bigger than 1 << 13). > > > > ah-hah. > > > > sizeof(struct snd_compr_codec_caps) is 11144 on x86_64 > > allyesconfig, but x86_64 uses (1<<14), not (1<<13) - x86_64 has more > > space in the ioctl payload. > > > > > > So. Sound guys: your struct snd_compr_codec_caps is too large for > > powerpc ioctls. > > Ouch, this was what I was concerned. I thought we did calculate it at > the time writing API, alas, we failed. We need to do math drills > again... > > There are a few ways to fix this, but all are not comfortable. > > A. Disable compress API for powerpc. > > B. Disable this ioctl for powerpc and keep it for others while > providing yet a new ioctl for the similar functionality. > > B1. Pass the same struct via a pointer: this needs a special > compat_ioctl handling > B2. Reduce the size of struct snd_compr_codec_caps, e.g. set > MAX_NUM_CODEC_DESCRIPTORS to 16. > > C. What else? Vinod, what's your take? Takashi -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html