The megaraid driver is calling these, but they don't exist if !CONFIG_COMPAT. Add the necessary stubs, and clean a few things up. Signed-off-by: Andrew Morton --- 25-akpm/fs/compat.c | 4 ++-- 25-akpm/include/linux/ioctl32.h | 25 +++++++++++++++++-------- 2 files changed, 19 insertions(+), 10 deletions(-) diff -puN include/linux/ioctl32.h~megaraid-build-fix include/linux/ioctl32.h --- 25/include/linux/ioctl32.h~megaraid-build-fix 2004-08-19 00:44:47.196079208 -0700 +++ 25-akpm/include/linux/ioctl32.h 2004-08-19 00:44:47.199078752 -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 diff -puN fs/compat.c~megaraid-build-fix fs/compat.c --- 25/fs/compat.c~megaraid-build-fix 2004-08-19 01:57:05.736520808 -0700 +++ 25-akpm/fs/compat.c 2004-08-19 01:57:33.169350384 -0700 @@ -291,8 +291,8 @@ static int __init init_sys32_ioctl(void) __initcall(init_sys32_ioctl); -int register_ioctl32_conversion(unsigned int cmd, int (*handler)(unsigned int, - unsigned int, unsigned long, struct file *)) +int register_ioctl32_conversion(unsigned int cmd, + ioctl_trans_handler_t handler) { struct ioctl_trans *t; struct ioctl_trans *new_t; _