From: Martin Schwidefsky s390 general update: - Add archhelp for "make image". - 32-bit execve fix. - Export some symbols: sys_ioctl, put_files_struct & ccw_device_work. - Minor cleanups in arch/s390/mm/init.c & drivers/s390/net/ctctty.c. --- 25-akpm/arch/s390/Makefile | 5 +++++ 25-akpm/arch/s390/defconfig | 1 + 25-akpm/arch/s390/kernel/compat_linux.c | 3 ++- 25-akpm/arch/s390/kernel/s390_ksyms.c | 2 ++ 25-akpm/arch/s390/mm/init.c | 2 -- 25-akpm/drivers/s390/cio/device.c | 1 + 25-akpm/drivers/s390/net/ctctty.c | 6 ++---- 25-akpm/kernel/exit.c | 2 ++ 8 files changed, 15 insertions(+), 7 deletions(-) diff -puN arch/s390/defconfig~s390-general-update arch/s390/defconfig --- 25/arch/s390/defconfig~s390-general-update Wed Jan 28 13:12:51 2004 +++ 25-akpm/arch/s390/defconfig Wed Jan 28 13:12:51 2004 @@ -147,6 +147,7 @@ CONFIG_MD_LINEAR=m CONFIG_MD_RAID0=m CONFIG_MD_RAID1=m CONFIG_MD_RAID5=m +# CONFIG_MD_RAID6 is not set CONFIG_MD_MULTIPATH=m # CONFIG_BLK_DEV_DM is not set diff -puN arch/s390/kernel/compat_linux.c~s390-general-update arch/s390/kernel/compat_linux.c --- 25/arch/s390/kernel/compat_linux.c~s390-general-update Wed Jan 28 13:12:51 2004 +++ 25-akpm/arch/s390/kernel/compat_linux.c Wed Jan 28 13:12:51 2004 @@ -1912,7 +1912,8 @@ out: security_bprm_free(&bprm); out_mm: - mmdrop(bprm.mm); + if (bprm.mm) + mmdrop(bprm.mm); out_file: if (bprm.file) { diff -puN arch/s390/kernel/s390_ksyms.c~s390-general-update arch/s390/kernel/s390_ksyms.c --- 25/arch/s390/kernel/s390_ksyms.c~s390-general-update Wed Jan 28 13:12:51 2004 +++ 25-akpm/arch/s390/kernel/s390_ksyms.c Wed Jan 28 13:12:51 2004 @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -74,4 +75,5 @@ EXPORT_SYMBOL(console_device); EXPORT_SYMBOL_NOVERS(do_call_softirq); EXPORT_SYMBOL(sys_wait4); EXPORT_SYMBOL(cpcmd); +EXPORT_SYMBOL(sys_ioctl); diff -puN arch/s390/Makefile~s390-general-update arch/s390/Makefile --- 25/arch/s390/Makefile~s390-general-update Wed Jan 28 13:12:51 2004 +++ 25-akpm/arch/s390/Makefile Wed Jan 28 13:12:51 2004 @@ -70,3 +70,8 @@ include/asm-$(ARCH)/offsets.h: arch/$(AR $(call filechk,gen-asm-offsets) CLEAN_FILES += include/asm-$(ARCH)/offsets.h + +# Don't use tabs in echo arguments +define archhelp + echo '* image - Kernel image for IPL ($(boot)/image)' +endef diff -puN arch/s390/mm/init.c~s390-general-update arch/s390/mm/init.c --- 25/arch/s390/mm/init.c~s390-general-update Wed Jan 28 13:12:51 2004 +++ 25-akpm/arch/s390/mm/init.c Wed Jan 28 13:12:51 2004 @@ -79,8 +79,6 @@ extern unsigned long __init_end; * paging_init() sets up the page tables */ -unsigned long last_valid_pfn; - #ifndef CONFIG_ARCH_S390X void __init paging_init(void) { diff -puN drivers/s390/cio/device.c~s390-general-update drivers/s390/cio/device.c --- 25/drivers/s390/cio/device.c~s390-general-update Wed Jan 28 13:12:51 2004 +++ 25-akpm/drivers/s390/cio/device.c Wed Jan 28 13:12:51 2004 @@ -908,3 +908,4 @@ EXPORT_SYMBOL(ccw_driver_register); EXPORT_SYMBOL(ccw_driver_unregister); EXPORT_SYMBOL(get_ccwdev_by_busid); EXPORT_SYMBOL(ccw_bus_type); +EXPORT_SYMBOL(ccw_device_work); diff -puN drivers/s390/net/ctctty.c~s390-general-update drivers/s390/net/ctctty.c --- 25/drivers/s390/net/ctctty.c~s390-general-update Wed Jan 28 13:12:51 2004 +++ 25-akpm/drivers/s390/net/ctctty.c Wed Jan 28 13:12:51 2004 @@ -1,5 +1,5 @@ /* - * $Id: ctctty.c,v 1.14 2003/10/06 11:33:33 mschwide Exp $ + * $Id: ctctty.c,v 1.15 2004/01/26 10:21:01 mschwide Exp $ * * CTC / ESCON network driver, tty interface. * @@ -744,9 +744,7 @@ ctc_tty_ioctl(struct tty_struct *tty, st info->line); #endif error = put_user(C_CLOCAL(tty) ? 1 : 0, (ulong *) arg); - if (error) - return error; - return 0; + return error; case TIOCSSOFTCAR: #ifdef CTC_DEBUG_MODEM_IOCTL printk(KERN_DEBUG "%s%d ioctl TIOCSSOFTCAR\n", CTC_TTY_NAME, diff -puN kernel/exit.c~s390-general-update kernel/exit.c --- 25/kernel/exit.c~s390-general-update Wed Jan 28 13:12:51 2004 +++ 25-akpm/kernel/exit.c Wed Jan 28 13:12:51 2004 @@ -403,6 +403,8 @@ void put_files_struct(struct files_struc } } +EXPORT_SYMBOL(put_files_struct); + static inline void __exit_files(struct task_struct *tsk) { struct files_struct * files = tsk->files; _