The megaraid driver is calling these, but they don't exist if !CONFIG_COMPAT. Add the necessary stubs. Signed-off-by: Andrew Morton --- 25-akpm/include/linux/ioctl32.h | 25 +++++++++++++++++-------- 1 files changed, 17 insertions(+), 8 deletions(-) diff -puN include/linux/ioctl32.h~megaraid-build-fix include/linux/ioctl32.h --- 25/include/linux/ioctl32.h~megaraid-build-fix 2004-08-18 22:23:31.651557824 -0700 +++ 25-akpm/include/linux/ioctl32.h 2004-08-18 22:23:31.655557216 -0700 @@ -3,6 +3,15 @@ struct file; +typedef int (*ioctl_trans_handler_t)(unsigned int, unsigned int, + unsigned long, struct file *); + +struct ioctl_trans { + unsigned long cmd; + ioctl_trans_handler_t handler; + struct ioctl_trans *next; +}; + /* * Register an 32bit ioctl translation handler for ioctl cmd. * @@ -13,16 +22,16 @@ struct file; * struct file *file: file descriptor pointer. */ -extern int register_ioctl32_conversion(unsigned int cmd, int (*handler)(unsigned int, unsigned int, unsigned long, struct file *)); - +#ifdef CONFIG_COMPAT +extern int register_ioctl32_conversion(unsigned int cmd, + ioctl_trans_handler_t handler); extern int unregister_ioctl32_conversion(unsigned int cmd); -typedef int (*ioctl_trans_handler_t)(unsigned int, unsigned int, unsigned long, struct file *); +#else -struct ioctl_trans { - unsigned long cmd; - ioctl_trans_handler_t handler; - struct ioctl_trans *next; -}; +#define register_ioctl32_conversion(cmd, handler) ({ 0; }) +#define unregister_ioctl32_conversion(cmd) ({ 0; }) + +#endif #endif _