Re: SB16 build error.

From: Takashi Iwai
Date: Thu Jun 30 2011 - 06:16:32 EST


At Thu, 30 Jun 2011 10:17:54 +0100,
Ralf Baechle wrote:
>
> Found on a MIPS build but certain other architectures will have the same
> issue:
>
> CC sound/isa/sb/sb16_csp.o
> sound/isa/sb/sb16_csp.c: In function ‘snd_sb_csp_ioctl’:
> sound/isa/sb/sb16_csp.c:228: error: case label does not reduce to an integer constant
> make[1]: *** [sound/isa/sb/sb16_csp.o] Error 1
> make: *** [sound/isa/sb/sb16_csp.o] Error 2
>
> This error message is caused by the _IOC_TYPECHECK() error check triggering
> due to excessive ioctl size on Alpha, PowerPC, MIPS and SPARC which define
> _IOC_SIZEBITS as 13. On all other architectures define it as 14 so struct
> snd_sb_csp_microcode with it's little over 12kB will just about fit into
> the 16kB limit.

What about the patch below?
This is an old ISA driver, so the impact must be very low.


thanks,

Takashi

---
diff --git a/include/sound/sb16_csp.h b/include/sound/sb16_csp.h
index 736eac7..2806586 100644
--- a/include/sound/sb16_csp.h
+++ b/include/sound/sb16_csp.h
@@ -60,7 +60,12 @@
#define SNDRV_SB_CSP_QSOUND_MAX_RIGHT 0x20

/* maximum microcode RIFF file size */
+#if _IOC_SIZEBITS < 14
+/* reduced the size to fit with ioctl size limit */
+#define SNDRV_SB_CSP_MAX_MICROCODE_FILE_SIZE 0x1f00
+#else
#define SNDRV_SB_CSP_MAX_MICROCODE_FILE_SIZE 0x3000
+#endif

/* microcode header */
struct snd_sb_csp_mc_header {
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/