From c292415c3654d7ed363fee459e2e2ce0d09a8a53 Mon Sep 17 00:00:00 2001 From: Mark Huang Date: Mon, 8 Aug 2005 21:12:27 +0000 Subject: [PATCH] Fedora Core 2 Updates 2.6.10-1.771_FC2 --- .config | 6 +- .config.old | 2 +- arch/i386/kernel/smp.c | 3 + arch/i386/mm/init.c | 3 + arch/i386/mm/mmap.c | 11 +- configs/kernel-2.6.10-i586-smp.config | 6 +- configs/kernel-2.6.10-i586.config | 6 +- configs/kernel-2.6.10-i686-smp.config | 6 +- configs/kernel-2.6.10-i686.config | 6 +- drivers/char/drm/drm_os_linux.h | 3 - drivers/char/drm/radeon_drv.h | 28 ++-- drivers/char/drm/radeon_state.c | 155 ++++++++---------- drivers/char/mxser.c | 13 +- drivers/char/n_tty.c | 4 +- drivers/char/tty_io.c | 4 +- drivers/md/md.c | 2 - drivers/net/ppp_async.c | 2 +- drivers/net/tulip/tulip_core.c | 21 ++- drivers/net/tun.c | 2 +- drivers/net/wireless/ieee80211/ieee80211_tx.c | 2 +- drivers/scsi/scsi_devinfo.c | 47 ++---- drivers/usb/core/hub.c | 4 +- fs/binfmt_elf.c | 35 ++-- fs/cramfs/inode.c | 1 + fs/eventpoll.c | 3 +- fs/exec.c | 2 +- fs/ext2/dir.c | 1 + fs/isofs/inode.c | 5 + fs/isofs/rock.c | 25 ++- fs/proc/generic.c | 2 +- fs/proc/task_mmu.c | 21 ++- fs/reiserfs/file.c | 23 ++- include/asm-x86_64/mmu_context.h | 5 +- include/linux/autoconf.h | 6 +- include/linux/netfilter_ipv4/ip_conntrack.h | 3 +- include/net/ip.h | 21 ++- mm/mmap.c | 8 +- net/atm/addr.c | 2 +- net/atm/addr.h | 2 +- net/bluetooth/af_bluetooth.c | 6 +- net/ipv4/ip_fragment.c | 56 ++++--- net/ipv4/ip_input.c | 4 +- net/ipv4/ip_output.c | 1 + net/ipv4/ipvs/ip_vs_core.c | 19 ++- net/ipv4/netfilter/ip_conntrack_core.c | 11 +- net/ipv4/netfilter/ip_conntrack_standalone.c | 11 +- net/ipv4/netfilter/ip_nat_standalone.c | 2 +- net/ipv6/ip6_output.c | 1 + scripts/basic/.docproc.cmd | 8 +- scripts/basic/.fixdep.cmd | 8 +- scripts/basic/.split-include.cmd | 4 +- scripts/basic/docproc | Bin 13434 -> 13410 bytes scripts/basic/fixdep | Bin 8832 -> 8820 bytes scripts/basic/split-include | Bin 7905 -> 7949 bytes scripts/kconfig/.conf.o.cmd | 6 +- scripts/kconfig/.mconf.o.cmd | 10 +- scripts/kconfig/.zconf.tab.o.cmd | 10 +- scripts/kconfig/conf | Bin 75063 -> 77657 bytes scripts/kconfig/conf.o | Bin 9872 -> 10012 bytes scripts/kconfig/mconf.o | Bin 21836 -> 21572 bytes scripts/kconfig/zconf.tab.o | Bin 78736 -> 79176 bytes 61 files changed, 335 insertions(+), 323 deletions(-) diff --git a/.config b/.config index dcb618288..c5250bc22 100644 --- a/.config +++ b/.config @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.10-ac11 -# Thu Feb 3 14:51:25 2005 +# Linux kernel version: 2.6.10-ac12 +# Wed May 18 16:34:50 2005 # CONFIG_X86=y CONFIG_MMU=y @@ -575,7 +575,7 @@ CONFIG_CHR_DEV_SG=m # # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # -# CONFIG_SCSI_MULTI_LUN is not set +CONFIG_SCSI_MULTI_LUN=y CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y diff --git a/.config.old b/.config.old index f11b8f03e..a4b55cf66 100644 --- a/.config.old +++ b/.config.old @@ -352,7 +352,7 @@ CONFIG_CHR_DEV_SG=m # # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # -# CONFIG_SCSI_MULTI_LUN is not set +CONFIG_SCSI_MULTI_LUN=y CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y CONFIG_SCSI_SPI_ATTRS=m diff --git a/arch/i386/kernel/smp.c b/arch/i386/kernel/smp.c index 9c74c6030..d66ca9a70 100644 --- a/arch/i386/kernel/smp.c +++ b/arch/i386/kernel/smp.c @@ -22,6 +22,7 @@ #include #include +#include #include /* @@ -313,6 +314,8 @@ fastcall void smp_invalidate_interrupt(struct pt_regs *regs) unsigned long cpu; cpu = get_cpu(); + if (current->active_mm) + load_user_cs_desc(cpu, current->active_mm); if (!cpu_isset(cpu, flush_cpumask)) goto out; diff --git a/arch/i386/mm/init.c b/arch/i386/mm/init.c index 7a67e3b63..7211494cc 100644 --- a/arch/i386/mm/init.c +++ b/arch/i386/mm/init.c @@ -568,7 +568,10 @@ void __init paging_init(void) set_nx(); if (nx_enabled) printk("NX (Execute Disable) protection: active\n"); + else #endif + if (exec_shield) + printk("Using x86 segment limits to approximate NX protection\n"); pagetable_init(); diff --git a/arch/i386/mm/mmap.c b/arch/i386/mm/mmap.c index 8ccbdab79..09a693d19 100644 --- a/arch/i386/mm/mmap.c +++ b/arch/i386/mm/mmap.c @@ -26,6 +26,7 @@ #include #include +#include /* * Top of mmap area (just below the process stack). @@ -38,13 +39,17 @@ static inline unsigned long mmap_base(struct mm_struct *mm) { unsigned long gap = current->signal->rlim[RLIMIT_STACK].rlim_cur; + unsigned long random_factor = 0; + + if (current->flags & PF_RELOCEXEC) + random_factor = get_random_int() % (1024*1024); if (gap < MIN_GAP) gap = MIN_GAP; else if (gap > MAX_GAP) gap = MAX_GAP; - return TASK_SIZE - (gap & PAGE_MASK); + return PAGE_ALIGN(TASK_SIZE - gap - random_factor); } /* @@ -57,9 +62,9 @@ void arch_pick_mmap_layout(struct mm_struct *mm) * Fall back to the standard layout if the personality * bit is set, or if the expected stack growth is unlimited: */ - if (sysctl_legacy_va_layout || + if ((exec_shield != 2) && (sysctl_legacy_va_layout || (current->personality & ADDR_COMPAT_LAYOUT) || - current->signal->rlim[RLIMIT_STACK].rlim_cur == RLIM_INFINITY) { + current->signal->rlim[RLIMIT_STACK].rlim_cur == RLIM_INFINITY)){ mm->mmap_base = TASK_UNMAPPED_BASE; mm->get_unmapped_area = arch_get_unmapped_area; mm->unmap_area = arch_unmap_area; diff --git a/configs/kernel-2.6.10-i586-smp.config b/configs/kernel-2.6.10-i586-smp.config index 062b2338c..73f235f7c 100644 --- a/configs/kernel-2.6.10-i586-smp.config +++ b/configs/kernel-2.6.10-i586-smp.config @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.10-ac11 -# Thu Feb 3 14:51:24 2005 +# Linux kernel version: 2.6.10-ac12 +# Wed May 18 16:34:48 2005 # CONFIG_X86=y CONFIG_MMU=y @@ -583,7 +583,7 @@ CONFIG_CHR_DEV_SG=m # # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # -# CONFIG_SCSI_MULTI_LUN is not set +CONFIG_SCSI_MULTI_LUN=y CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y diff --git a/configs/kernel-2.6.10-i586.config b/configs/kernel-2.6.10-i586.config index 1172277d3..bf1fd48c5 100644 --- a/configs/kernel-2.6.10-i586.config +++ b/configs/kernel-2.6.10-i586.config @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.10-ac11 -# Thu Feb 3 14:51:24 2005 +# Linux kernel version: 2.6.10-ac12 +# Wed May 18 16:34:49 2005 # CONFIG_X86=y CONFIG_MMU=y @@ -574,7 +574,7 @@ CONFIG_CHR_DEV_SG=m # # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # -# CONFIG_SCSI_MULTI_LUN is not set +CONFIG_SCSI_MULTI_LUN=y CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y diff --git a/configs/kernel-2.6.10-i686-smp.config b/configs/kernel-2.6.10-i686-smp.config index b020c0d56..336dbbc6b 100644 --- a/configs/kernel-2.6.10-i686-smp.config +++ b/configs/kernel-2.6.10-i686-smp.config @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.10-ac11 -# Thu Feb 3 14:51:25 2005 +# Linux kernel version: 2.6.10-ac12 +# Wed May 18 16:34:49 2005 # CONFIG_X86=y CONFIG_MMU=y @@ -587,7 +587,7 @@ CONFIG_CHR_DEV_SG=m # # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # -# CONFIG_SCSI_MULTI_LUN is not set +CONFIG_SCSI_MULTI_LUN=y CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y diff --git a/configs/kernel-2.6.10-i686.config b/configs/kernel-2.6.10-i686.config index dcb618288..c5250bc22 100644 --- a/configs/kernel-2.6.10-i686.config +++ b/configs/kernel-2.6.10-i686.config @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.10-ac11 -# Thu Feb 3 14:51:25 2005 +# Linux kernel version: 2.6.10-ac12 +# Wed May 18 16:34:50 2005 # CONFIG_X86=y CONFIG_MMU=y @@ -575,7 +575,7 @@ CONFIG_CHR_DEV_SG=m # # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # -# CONFIG_SCSI_MULTI_LUN is not set +CONFIG_SCSI_MULTI_LUN=y CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y diff --git a/drivers/char/drm/drm_os_linux.h b/drivers/char/drm/drm_os_linux.h index 242e311a2..9a4d35377 100644 --- a/drivers/char/drm/drm_os_linux.h +++ b/drivers/char/drm/drm_os_linux.h @@ -96,9 +96,6 @@ static __inline__ int mtrr_del (int reg, unsigned long base, __copy_to_user(arg1, arg2, arg3) #define DRM_GET_USER_UNCHECKED(val, uaddr) \ __get_user(val, uaddr) -#define DRM_PUT_USER_UNCHECKED(uaddr, val) \ - __put_user(val, uaddr) - /** 'malloc' without the overhead of DRM(alloc)() */ #define DRM_MALLOC(x) kmalloc(x, GFP_KERNEL) diff --git a/drivers/char/drm/radeon_drv.h b/drivers/char/drm/radeon_drv.h index 5df72332e..77847e13c 100644 --- a/drivers/char/drm/radeon_drv.h +++ b/drivers/char/drm/radeon_drv.h @@ -892,25 +892,27 @@ do { \ } while (0) -#define OUT_RING_USER_TABLE( tab, sz ) do { \ +#define OUT_RING_TABLE( tab, sz ) do { \ int _size = (sz); \ - int __user *_tab = (tab); \ + int *_tab = (int *)(tab); \ \ if (write + _size > mask) { \ - int i = (mask+1) - write; \ - if (DRM_COPY_FROM_USER_UNCHECKED( (int *)(ring+write), \ - _tab, i*4 )) \ - return DRM_ERR(EFAULT); \ + int _i = (mask+1) - write; \ + _size -= _i; \ + while (_i > 0 ) { \ + *(int *)(ring + write) = *_tab++; \ + write++; \ + _i--; \ + } \ write = 0; \ - _size -= i; \ - _tab += i; \ + _tab += _i; \ } \ \ - if (_size && DRM_COPY_FROM_USER_UNCHECKED( (int *)(ring+write), \ - _tab, _size*4 )) \ - return DRM_ERR(EFAULT); \ - \ - write += _size; \ + while (_size > 0) { \ + *(ring + write) = *_tab++; \ + write++; \ + _size--; \ + } \ write &= mask; \ } while (0) diff --git a/drivers/char/drm/radeon_state.c b/drivers/char/drm/radeon_state.c index f3cc86eea..90bade6da 100644 --- a/drivers/char/drm/radeon_state.c +++ b/drivers/char/drm/radeon_state.c @@ -63,21 +63,6 @@ static __inline__ int radeon_check_and_fixup_offset( drm_radeon_private_t *dev_p return 0; } -static __inline__ int radeon_check_and_fixup_offset_user( drm_radeon_private_t *dev_priv, - drm_file_t *filp_priv, - u32 __user *offset ) { - u32 off; - - DRM_GET_USER_UNCHECKED( off, offset ); - - if ( radeon_check_and_fixup_offset( dev_priv, filp_priv, &off ) ) - return DRM_ERR( EINVAL ); - - DRM_PUT_USER_UNCHECKED( offset, off ); - - return 0; -} - static __inline__ int radeon_check_and_fixup_packets( drm_radeon_private_t *dev_priv, drm_file_t *filp_priv, int id, @@ -85,18 +70,18 @@ static __inline__ int radeon_check_and_fixup_packets( drm_radeon_private_t *dev_ switch ( id ) { case RADEON_EMIT_PP_MISC: - if ( radeon_check_and_fixup_offset_user( dev_priv, filp_priv, - &data[( RADEON_RB3D_DEPTHOFFSET - - RADEON_PP_MISC ) / 4] ) ) { + if ( radeon_check_and_fixup_offset( dev_priv, filp_priv, + &data[( RADEON_RB3D_DEPTHOFFSET + - RADEON_PP_MISC ) / 4] ) ) { DRM_ERROR( "Invalid depth buffer offset\n" ); return DRM_ERR( EINVAL ); } break; case RADEON_EMIT_PP_CNTL: - if ( radeon_check_and_fixup_offset_user( dev_priv, filp_priv, - &data[( RADEON_RB3D_COLOROFFSET - - RADEON_PP_CNTL ) / 4] ) ) { + if ( radeon_check_and_fixup_offset( dev_priv, filp_priv, + &data[( RADEON_RB3D_COLOROFFSET + - RADEON_PP_CNTL ) / 4] ) ) { DRM_ERROR( "Invalid colour buffer offset\n" ); return DRM_ERR( EINVAL ); } @@ -108,8 +93,8 @@ static __inline__ int radeon_check_and_fixup_packets( drm_radeon_private_t *dev_ case R200_EMIT_PP_TXOFFSET_3: case R200_EMIT_PP_TXOFFSET_4: case R200_EMIT_PP_TXOFFSET_5: - if ( radeon_check_and_fixup_offset_user( dev_priv, filp_priv, - &data[0] ) ) { + if ( radeon_check_and_fixup_offset( dev_priv, filp_priv, + &data[0] ) ) { DRM_ERROR( "Invalid R200 texture offset\n" ); return DRM_ERR( EINVAL ); } @@ -118,9 +103,9 @@ static __inline__ int radeon_check_and_fixup_packets( drm_radeon_private_t *dev_ case RADEON_EMIT_PP_TXFILTER_0: case RADEON_EMIT_PP_TXFILTER_1: case RADEON_EMIT_PP_TXFILTER_2: - if ( radeon_check_and_fixup_offset_user( dev_priv, filp_priv, - &data[( RADEON_PP_TXOFFSET_0 - - RADEON_PP_TXFILTER_0 ) / 4] ) ) { + if ( radeon_check_and_fixup_offset( dev_priv, filp_priv, + &data[( RADEON_PP_TXOFFSET_0 + - RADEON_PP_TXFILTER_0 ) / 4] ) ) { DRM_ERROR( "Invalid R100 texture offset\n" ); return DRM_ERR( EINVAL ); } @@ -134,9 +119,8 @@ static __inline__ int radeon_check_and_fixup_packets( drm_radeon_private_t *dev_ case R200_EMIT_PP_CUBIC_OFFSETS_5: { int i; for ( i = 0; i < 5; i++ ) { - if ( radeon_check_and_fixup_offset_user( dev_priv, - filp_priv, - &data[i] ) ) { + if ( radeon_check_and_fixup_offset( dev_priv, filp_priv, + &data[i] ) ) { DRM_ERROR( "Invalid R200 cubic texture offset\n" ); return DRM_ERR( EINVAL ); } @@ -219,17 +203,11 @@ static __inline__ int radeon_check_and_fixup_packet3( drm_radeon_private_t *dev_ drm_file_t *filp_priv, drm_radeon_cmd_buffer_t *cmdbuf, unsigned int *cmdsz ) { - u32 tmp[4]; - u32 __user *cmd = (u32 __user *)cmdbuf->buf; - - if ( DRM_COPY_FROM_USER_UNCHECKED( tmp, cmd, sizeof( tmp ) ) ) { - DRM_ERROR( "Failed to copy data from user space\n" ); - return DRM_ERR( EFAULT ); - } + u32 *cmd = (u32 *) cmdbuf->buf; - *cmdsz = 2 + ( ( tmp[0] & RADEON_CP_PACKET_COUNT_MASK ) >> 16 ); + *cmdsz = 2 + ( ( cmd[0] & RADEON_CP_PACKET_COUNT_MASK ) >> 16 ); - if ( ( tmp[0] & 0xc0000000 ) != RADEON_CP_PACKET3 ) { + if ( ( cmd[0] & 0xc0000000 ) != RADEON_CP_PACKET3 ) { DRM_ERROR( "Not a type 3 packet\n" ); return DRM_ERR( EINVAL ); } @@ -240,32 +218,27 @@ static __inline__ int radeon_check_and_fixup_packet3( drm_radeon_private_t *dev_ } /* Check client state and fix it up if necessary */ - if ( tmp[0] & 0x8000 ) { /* MSB of opcode: next DWORD GUI_CNTL */ + if ( cmd[0] & 0x8000 ) { /* MSB of opcode: next DWORD GUI_CNTL */ u32 offset; - if ( tmp[1] & ( RADEON_GMC_SRC_PITCH_OFFSET_CNTL + if ( cmd[1] & ( RADEON_GMC_SRC_PITCH_OFFSET_CNTL | RADEON_GMC_DST_PITCH_OFFSET_CNTL ) ) { - offset = tmp[2] << 10; + offset = cmd[2] << 10; if ( radeon_check_and_fixup_offset( dev_priv, filp_priv, &offset ) ) { DRM_ERROR( "Invalid first packet offset\n" ); return DRM_ERR( EINVAL ); } - tmp[2] = ( tmp[2] & 0xffc00000 ) | offset >> 10; + cmd[2] = ( cmd[2] & 0xffc00000 ) | offset >> 10; } - if ( ( tmp[1] & RADEON_GMC_SRC_PITCH_OFFSET_CNTL ) && - ( tmp[1] & RADEON_GMC_DST_PITCH_OFFSET_CNTL ) ) { - offset = tmp[3] << 10; + if ( ( cmd[1] & RADEON_GMC_SRC_PITCH_OFFSET_CNTL ) && + ( cmd[1] & RADEON_GMC_DST_PITCH_OFFSET_CNTL ) ) { + offset = cmd[3] << 10; if ( radeon_check_and_fixup_offset( dev_priv, filp_priv, &offset ) ) { DRM_ERROR( "Invalid second packet offset\n" ); return DRM_ERR( EINVAL ); } - tmp[3] = ( tmp[3] & 0xffc00000 ) | offset >> 10; - } - - if ( DRM_COPY_TO_USER_UNCHECKED( cmd, tmp, sizeof( tmp ) ) ) { - DRM_ERROR( "Failed to copy data to user space\n" ); - return DRM_ERR( EFAULT ); + cmd[3] = ( cmd[3] & 0xffc00000 ) | offset >> 10; } } @@ -2084,7 +2057,7 @@ static int radeon_emit_packets( { int id = (int)header.packet.packet_id; int sz, reg; - int __user *data = (int __user *)cmdbuf->buf; + int *data = (int *)cmdbuf->buf; RING_LOCALS; if (id >= RADEON_MAX_STATE_PACKETS) @@ -2105,7 +2078,7 @@ static int radeon_emit_packets( BEGIN_RING(sz+1); OUT_RING( CP_PACKET0( reg, (sz-1) ) ); - OUT_RING_USER_TABLE( data, sz ); + OUT_RING_TABLE( data, sz ); ADVANCE_RING(); cmdbuf->buf += sz * sizeof(int); @@ -2119,7 +2092,6 @@ static __inline__ int radeon_emit_scalars( drm_radeon_cmd_buffer_t *cmdbuf ) { int sz = header.scalars.count; - int __user *data = (int __user *)cmdbuf->buf; int start = header.scalars.offset; int stride = header.scalars.stride; RING_LOCALS; @@ -2128,7 +2100,7 @@ static __inline__ int radeon_emit_scalars( OUT_RING( CP_PACKET0( RADEON_SE_TCL_SCALAR_INDX_REG, 0 ) ); OUT_RING( start | (stride << RADEON_SCAL_INDX_DWORD_STRIDE_SHIFT)); OUT_RING( CP_PACKET0_TABLE( RADEON_SE_TCL_SCALAR_DATA_REG, sz-1 ) ); - OUT_RING_USER_TABLE( data, sz ); + OUT_RING_TABLE( cmdbuf->buf, sz ); ADVANCE_RING(); cmdbuf->buf += sz * sizeof(int); cmdbuf->bufsz -= sz * sizeof(int); @@ -2143,7 +2115,6 @@ static __inline__ int radeon_emit_scalars2( drm_radeon_cmd_buffer_t *cmdbuf ) { int sz = header.scalars.count; - int __user *data = (int __user *)cmdbuf->buf; int start = ((unsigned int)header.scalars.offset) + 0x100; int stride = header.scalars.stride; RING_LOCALS; @@ -2152,7 +2123,7 @@ static __inline__ int radeon_emit_scalars2( OUT_RING( CP_PACKET0( RADEON_SE_TCL_SCALAR_INDX_REG, 0 ) ); OUT_RING( start | (stride << RADEON_SCAL_INDX_DWORD_STRIDE_SHIFT)); OUT_RING( CP_PACKET0_TABLE( RADEON_SE_TCL_SCALAR_DATA_REG, sz-1 ) ); - OUT_RING_USER_TABLE( data, sz ); + OUT_RING_TABLE( cmdbuf->buf, sz ); ADVANCE_RING(); cmdbuf->buf += sz * sizeof(int); cmdbuf->bufsz -= sz * sizeof(int); @@ -2165,7 +2136,6 @@ static __inline__ int radeon_emit_vectors( drm_radeon_cmd_buffer_t *cmdbuf ) { int sz = header.vectors.count; - int __user *data = (int __user *)cmdbuf->buf; int start = header.vectors.offset; int stride = header.vectors.stride; RING_LOCALS; @@ -2174,7 +2144,7 @@ static __inline__ int radeon_emit_vectors( OUT_RING( CP_PACKET0( RADEON_SE_TCL_VECTOR_INDX_REG, 0 ) ); OUT_RING( start | (stride << RADEON_VEC_INDX_OCTWORD_STRIDE_SHIFT)); OUT_RING( CP_PACKET0_TABLE( RADEON_SE_TCL_VECTOR_DATA_REG, (sz-1) ) ); - OUT_RING_USER_TABLE( data, sz ); + OUT_RING_TABLE( cmdbuf->buf, sz ); ADVANCE_RING(); cmdbuf->buf += sz * sizeof(int); @@ -2189,7 +2159,6 @@ static int radeon_emit_packet3( drm_device_t *dev, { drm_radeon_private_t *dev_priv = dev->dev_private; unsigned int cmdsz; - int __user *cmd = (int __user *)cmdbuf->buf; int ret; RING_LOCALS; @@ -2202,7 +2171,7 @@ static int radeon_emit_packet3( drm_device_t *dev, } BEGIN_RING( cmdsz ); - OUT_RING_USER_TABLE( cmd, cmdsz ); + OUT_RING_TABLE( cmdbuf->buf, cmdsz ); ADVANCE_RING(); cmdbuf->buf += cmdsz * 4; @@ -2219,7 +2188,6 @@ static int radeon_emit_packet3_cliprect( drm_device_t *dev, drm_radeon_private_t *dev_priv = dev->dev_private; drm_clip_rect_t box; unsigned int cmdsz; - int __user *cmd = (int __user *)cmdbuf->buf; int ret; drm_clip_rect_t __user *boxes = cmdbuf->boxes; int i = 0; @@ -2238,7 +2206,7 @@ static int radeon_emit_packet3_cliprect( drm_device_t *dev, do { if ( i < cmdbuf->nbox ) { - if (DRM_COPY_FROM_USER_UNCHECKED( &box, &boxes[i], sizeof(box) )) + if (DRM_COPY_FROM_USER( &box, &boxes[i], sizeof(box) )) return DRM_ERR(EFAULT); /* FIXME The second and subsequent times round * this loop, send a WAIT_UNTIL_3D_IDLE before @@ -2261,7 +2229,7 @@ static int radeon_emit_packet3_cliprect( drm_device_t *dev, } BEGIN_RING( cmdsz ); - OUT_RING_USER_TABLE( cmd, cmdsz ); + OUT_RING_TABLE( cmdbuf->buf, cmdsz ); ADVANCE_RING(); } while ( ++i < cmdbuf->nbox ); @@ -2314,7 +2282,8 @@ int radeon_cp_cmdbuf( DRM_IOCTL_ARGS ) int idx; drm_radeon_cmd_buffer_t cmdbuf; drm_radeon_cmd_header_t header; - int orig_nbox; + int orig_nbox, orig_bufsz; + char *kbuf=NULL; LOCK_TEST_WITH_RETURN( dev, filp ); @@ -2331,24 +2300,29 @@ int radeon_cp_cmdbuf( DRM_IOCTL_ARGS ) RING_SPACE_TEST_WITH_RETURN( dev_priv ); VB_AGE_TEST_WITH_RETURN( dev_priv ); + if (cmdbuf.bufsz > 64*1024 || cmdbuf.bufsz<0) { + return DRM_ERR(EINVAL); + } - if (DRM_VERIFYAREA_READ( cmdbuf.buf, cmdbuf.bufsz )) - return DRM_ERR(EFAULT); - - if (cmdbuf.nbox && - DRM_VERIFYAREA_READ(cmdbuf.boxes, - cmdbuf.nbox * sizeof(drm_clip_rect_t))) - return DRM_ERR(EFAULT); + /* Allocate an in-kernel area and copy in the cmdbuf. Do this to avoid + * races between checking values and using those values in other code, + * and simply to avoid a lot of function calls to copy in data. + */ + orig_bufsz = cmdbuf.bufsz; + if (orig_bufsz != 0) { + kbuf = kmalloc(cmdbuf.bufsz, GFP_KERNEL); + if (kbuf == NULL) + return DRM_ERR(ENOMEM); + if (DRM_COPY_FROM_USER(kbuf, cmdbuf.buf, cmdbuf.bufsz)) + return DRM_ERR(EFAULT); + cmdbuf.buf = kbuf; + } orig_nbox = cmdbuf.nbox; while ( cmdbuf.bufsz >= sizeof(header) ) { - - if (DRM_GET_USER_UNCHECKED( header.i, (int __user *)cmdbuf.buf )) { - DRM_ERROR("__get_user %p\n", cmdbuf.buf); - return DRM_ERR(EFAULT); - } + header.i = *(int *)cmdbuf.buf; cmdbuf.buf += sizeof(header); cmdbuf.bufsz -= sizeof(header); @@ -2357,7 +2331,7 @@ int radeon_cp_cmdbuf( DRM_IOCTL_ARGS ) DRM_DEBUG("RADEON_CMD_PACKET\n"); if (radeon_emit_packets( dev_priv, filp_priv, header, &cmdbuf )) { DRM_ERROR("radeon_emit_packets failed\n"); - return DRM_ERR(EINVAL); + goto err; } break; @@ -2365,7 +2339,7 @@ int radeon_cp_cmdbuf( DRM_IOCTL_ARGS ) DRM_DEBUG("RADEON_CMD_SCALARS\n"); if (radeon_emit_scalars( dev_priv, header, &cmdbuf )) { DRM_ERROR("radeon_emit_scalars failed\n"); - return DRM_ERR(EINVAL); + goto err; } break; @@ -2373,7 +2347,7 @@ int radeon_cp_cmdbuf( DRM_IOCTL_ARGS ) DRM_DEBUG("RADEON_CMD_VECTORS\n"); if (radeon_emit_vectors( dev_priv, header, &cmdbuf )) { DRM_ERROR("radeon_emit_vectors failed\n"); - return DRM_ERR(EINVAL); + goto err; } break; @@ -2383,14 +2357,14 @@ int radeon_cp_cmdbuf( DRM_IOCTL_ARGS ) if ( idx < 0 || idx >= dma->buf_count ) { DRM_ERROR( "buffer index %d (of %d max)\n", idx, dma->buf_count - 1 ); - return DRM_ERR(EINVAL); + goto err; } buf = dma->buflist[idx]; if ( buf->filp != filp || buf->pending ) { DRM_ERROR( "bad buffer %p %p %d\n", buf->filp, filp, buf->pending); - return DRM_ERR(EINVAL); + goto err; } radeon_cp_discard_buffer( dev, buf ); @@ -2400,7 +2374,7 @@ int radeon_cp_cmdbuf( DRM_IOCTL_ARGS ) DRM_DEBUG("RADEON_CMD_PACKET3\n"); if (radeon_emit_packet3( dev, filp_priv, &cmdbuf )) { DRM_ERROR("radeon_emit_packet3 failed\n"); - return DRM_ERR(EINVAL); + goto err; } break; @@ -2408,7 +2382,7 @@ int radeon_cp_cmdbuf( DRM_IOCTL_ARGS ) DRM_DEBUG("RADEON_CMD_PACKET3_CLIP\n"); if (radeon_emit_packet3_cliprect( dev, filp_priv, &cmdbuf, orig_nbox )) { DRM_ERROR("radeon_emit_packet3_clip failed\n"); - return DRM_ERR(EINVAL); + goto err; } break; @@ -2416,7 +2390,7 @@ int radeon_cp_cmdbuf( DRM_IOCTL_ARGS ) DRM_DEBUG("RADEON_CMD_SCALARS2\n"); if (radeon_emit_scalars2( dev_priv, header, &cmdbuf )) { DRM_ERROR("radeon_emit_scalars2 failed\n"); - return DRM_ERR(EINVAL); + goto err; } break; @@ -2424,21 +2398,28 @@ int radeon_cp_cmdbuf( DRM_IOCTL_ARGS ) DRM_DEBUG("RADEON_CMD_WAIT\n"); if (radeon_emit_wait( dev, header.wait.flags )) { DRM_ERROR("radeon_emit_wait failed\n"); - return DRM_ERR(EINVAL); + goto err; } break; default: DRM_ERROR("bad cmd_type %d at %p\n", header.header.cmd_type, cmdbuf.buf - sizeof(header)); - return DRM_ERR(EINVAL); + goto err; } } + if (orig_bufsz != 0) + kfree(kbuf); DRM_DEBUG("DONE\n"); COMMIT_RING(); return 0; + +err: + if (orig_bufsz != 0) + kfree(kbuf); + return DRM_ERR(EINVAL); } diff --git a/drivers/char/mxser.c b/drivers/char/mxser.c index 19bacae29..367f12d6c 100644 --- a/drivers/char/mxser.c +++ b/drivers/char/mxser.c @@ -556,7 +556,7 @@ static int mxser_initbrd(int board, struct mxser_hwconf *hwconf) info = &mxvar_table[n]; /*if (verbose) */ { printk(KERN_DEBUG " ttyM%d - ttyM%d ", n, n + hwconf->ports - 1); - printk(KERN_DEBUG " max. baud rate = %d bps.\n", hwconf->MaxCanSetBaudRate[0]); + printk(" max. baud rate = %d bps.\n", hwconf->MaxCanSetBaudRate[0]); } for (i = 0; i < hwconf->ports; i++, n++, info++) { @@ -609,18 +609,12 @@ static int mxser_initbrd(int board, struct mxser_hwconf *hwconf) n = board * MXSER_PORTS_PER_BOARD; info = &mxvar_table[n]; - spin_lock_irqsave(&info->slock, flags); retval = request_irq(hwconf->irq, mxser_interrupt, IRQ_T(info), "mxser", info); if (retval) { - spin_unlock_irqrestore(&info->slock, flags); printk(KERN_ERR "Board %d: %s", board, mxser_brdname[hwconf->board_type - 1]); printk(" Request irq fail,IRQ (%d) may be conflit with another device.\n", info->irq); return retval; } - - spin_unlock_irqrestore(&info->slock, flags); - - return 0; } @@ -2144,10 +2138,9 @@ intr_old: mxvar_log.rxcnt[info->port] += cnt; info->mon_data.rxcnt += cnt; info->mon_data.up_rxcnt += cnt; - - tty->ldisc.receive_buf(tty, tty->flip.char_buf, tty->flip.flag_buf, count); spin_unlock_irqrestore(&info->slock, flags); - + + tty_flip_buffer_push(tty); } static void mxser_transmit_chars(struct mxser_struct *info) diff --git a/drivers/char/n_tty.c b/drivers/char/n_tty.c index a29dffd94..64a729419 100644 --- a/drivers/char/n_tty.c +++ b/drivers/char/n_tty.c @@ -1143,13 +1143,13 @@ static inline int copy_from_read_buf(struct tty_struct *tty, { int retval; - ssize_t n; + size_t n; unsigned long flags; retval = 0; spin_lock_irqsave(&tty->read_lock, flags); n = min(tty->read_cnt, N_TTY_BUF_SIZE - tty->read_tail); - n = min((ssize_t)*nr, n); + n = min(*nr, n); spin_unlock_irqrestore(&tty->read_lock, flags); if (n) { mb(); diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c index a41704185..8eb4c417f 100644 --- a/drivers/char/tty_io.c +++ b/drivers/char/tty_io.c @@ -1155,8 +1155,8 @@ static inline void pty_line_name(struct tty_driver *driver, int index, char *p) int i = index + driver->name_base; /* ->name is initialized to "ttyp", but "tty" is expected */ sprintf(p, "%s%c%x", - driver->subtype == PTY_TYPE_SLAVE ? "tty" : driver->name, - ptychar[i >> 4 & 0xf], i & 0xf); + driver->subtype == PTY_TYPE_SLAVE ? "pty" : driver->name, + ptychar[i >> 4 & 0xf], i & 0xf); } static inline void tty_line_name(struct tty_driver *driver, int index, char *p) diff --git a/drivers/md/md.c b/drivers/md/md.c index 812ae23b2..82afc7937 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -336,8 +336,6 @@ static int sync_page_io(struct block_device *bdev, sector_t sector, int size, struct completion event; int ret; - bio_get(bio); - rw |= (1 << BIO_RW_SYNC); bio->bi_bdev = bdev; diff --git a/drivers/net/ppp_async.c b/drivers/net/ppp_async.c index e8be5a26d..73ecae14c 100644 --- a/drivers/net/ppp_async.c +++ b/drivers/net/ppp_async.c @@ -1000,7 +1000,7 @@ static void async_lcp_peek(struct asyncppp *ap, unsigned char *data, data += 4; dlen -= 4; /* data[0] is code, data[1] is length */ - while (dlen >= 2 && dlen >= data[1]) { + while (dlen >= 2 && dlen >= data[1] && data[1] >= 2) { switch (data[0]) { case LCP_MRU: val = (data[2] << 8) + data[3]; diff --git a/drivers/net/tulip/tulip_core.c b/drivers/net/tulip/tulip_core.c index 7b5303bef..70cf37210 100644 --- a/drivers/net/tulip/tulip_core.c +++ b/drivers/net/tulip/tulip_core.c @@ -1100,15 +1100,18 @@ static void set_rx_mode(struct net_device *dev) entry = tp->cur_tx++ % TX_RING_SIZE; if (entry != 0) { - /* Avoid a chip errata by prefixing a dummy entry. */ - tp->tx_buffers[entry].skb = NULL; - tp->tx_buffers[entry].mapping = 0; - tp->tx_ring[entry].length = - (entry == TX_RING_SIZE-1) ? cpu_to_le32(DESC_RING_WRAP) : 0; - tp->tx_ring[entry].buffer1 = 0; - /* Must set DescOwned later to avoid race with chip */ - dummy = entry; - entry = tp->cur_tx++ % TX_RING_SIZE; + /* Avoid a chip errata by prefixing a dummy entry. Don't do + this on the ULI526X as it triggers a different problem */ + if (!(tp->chip_id == ULI526X && (tp->revision = 0x40 || tp->revision == 0x50))) { + tp->tx_buffers[entry].skb = NULL; + tp->tx_buffers[entry].mapping = 0; + tp->tx_ring[entry].length = + (entry == TX_RING_SIZE-1) ? cpu_to_le32(DESC_RING_WRAP) : 0; + tp->tx_ring[entry].buffer1 = 0; + /* Must set DescOwned later to avoid race with chip */ + dummy = entry; + entry = tp->cur_tx++ % TX_RING_SIZE; + } } tp->tx_buffers[entry].skb = NULL; diff --git a/drivers/net/tun.c b/drivers/net/tun.c index d0fe0f656..4b66e7e69 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c @@ -177,7 +177,7 @@ static __inline__ ssize_t tun_get_user(struct tun_struct *tun, struct iovec *iv, size_t len = count; if (!(tun->flags & TUN_NO_PI)) { - if ((len -= sizeof(pi)) > len) + if ((len -= sizeof(pi)) > count) return -EINVAL; if(memcpy_fromiovec((void *)&pi, iv, sizeof(pi))) diff --git a/drivers/net/wireless/ieee80211/ieee80211_tx.c b/drivers/net/wireless/ieee80211/ieee80211_tx.c index abf5401e4..da0002056 100644 --- a/drivers/net/wireless/ieee80211/ieee80211_tx.c +++ b/drivers/net/wireless/ieee80211/ieee80211_tx.c @@ -223,7 +223,7 @@ struct ieee80211_txb *ieee80211_alloc_txb(int nr_frags, int txb_size, if (!txb) return NULL; - memset(txb, sizeof(struct ieee80211_txb), 0); + memset(txb, 0, sizeof(struct ieee80211_txb)); txb->nr_frags = nr_frags; txb->frag_size = txb_size; diff --git a/drivers/scsi/scsi_devinfo.c b/drivers/scsi/scsi_devinfo.c index 9b340d991..44095f7d8 100644 --- a/drivers/scsi/scsi_devinfo.c +++ b/drivers/scsi/scsi_devinfo.c @@ -63,6 +63,7 @@ static struct { {"MAXTOR", "XT-4170S", "B5A", BLIST_NOLUN}, /* locks up */ {"MAXTOR", "XT-8760S", "B7B", BLIST_NOLUN}, /* locks up */ {"MEDIAVIS", "RENO CD-ROMX2A", "2.03", BLIST_NOLUN}, /* responds to all lun */ + {"MICROTEK", "ScanMakerIII", "2.30", BLIST_NOLUN}, /* responds to all lun */ {"NEC", "CD-ROM DRIVE:841", "1.0", BLIST_NOLUN},/* locks up */ {"PHILIPS", "PCA80SC", "V4-2", BLIST_NOLUN}, /* responds to all lun */ {"RODIME", "RO3000S", "2.33", BLIST_NOLUN}, /* locks up */ @@ -121,7 +122,10 @@ static struct { {"3PARdata", "VV", NULL, BLIST_REPORTLUN2}, {"ADAPTEC", "AACRAID", NULL, BLIST_FORCELUN}, {"ADAPTEC", "Adaptec 5400S", NULL, BLIST_FORCELUN}, + {"AFT PRO", "-IX CF", "0.0>", BLIST_FORCELUN}, + {"BELKIN", "USB 2 HS-CF", "1.95", BLIST_FORCELUN | BLIST_INQUIRY_36}, {"CANON", "IPUBJD", NULL, BLIST_SPARSELUN}, + {"CBOX3", "USB Storage-SMC", "300A", BLIST_FORCELUN | BLIST_INQUIRY_36}, {"CMD", "CRA-7280", NULL, BLIST_SPARSELUN}, /* CMD RAID Controller */ {"CNSI", "G7324", NULL, BLIST_SPARSELUN}, /* Chaparral G7324 RAID */ {"CNSi", "G8324", NULL, BLIST_SPARSELUN}, /* Chaparral G8324 RAID */ @@ -142,6 +146,9 @@ static struct { {"EMC", "SYMMETRIX", NULL, BLIST_SPARSELUN | BLIST_LARGELUN | BLIST_FORCELUN}, {"EMULEX", "MD21/S2 ESDI", NULL, BLIST_SINGLELUN}, {"FSC", "CentricStor", "*", BLIST_SPARSELUN | BLIST_LARGELUN}, + {"Generic", "USB SD Reader", "1.00", BLIST_FORCELUN | BLIST_INQUIRY_36}, + {"Generic", "USB Storage-SMC", "0180", BLIST_FORCELUN | BLIST_INQUIRY_36}, + {"Generic", "USB Storage-SMC", "0207", BLIST_FORCELUN | BLIST_INQUIRY_36}, {"HITACHI", "DF400", "*", BLIST_SPARSELUN}, {"HITACHI", "DF500", "*", BLIST_SPARSELUN}, {"HITACHI", "DF600", "*", BLIST_SPARSELUN}, @@ -172,17 +179,18 @@ static struct { {"NEC", "PD-1 ODX654P", NULL, BLIST_FORCELUN | BLIST_SINGLELUN}, {"NRC", "MBR-7", NULL, BLIST_FORCELUN | BLIST_SINGLELUN}, {"NRC", "MBR-7.4", NULL, BLIST_FORCELUN | BLIST_SINGLELUN}, - {"OTi", "CF CARD Reader", "2.00", BLIST_FORCELUN | BLIST_SINGLELUN}, {"PIONEER", "CD-ROM DRM-600", NULL, BLIST_FORCELUN | BLIST_SINGLELUN}, {"PIONEER", "CD-ROM DRM-602X", NULL, BLIST_FORCELUN | BLIST_SINGLELUN}, {"PIONEER", "CD-ROM DRM-604X", NULL, BLIST_FORCELUN | BLIST_SINGLELUN}, {"REGAL", "CDC-4X", NULL, BLIST_MAX5LUN | BLIST_SINGLELUN}, + {"SanDisk", "ImageMate CF-SD1", NULL, BLIST_FORCELUN}, {"SEAGATE", "ST34555N", "0930", BLIST_NOTQ}, /* Chokes on tagged INQUIRY */ {"SEAGATE", "ST3390N", "9546", BLIST_NOTQ}, {"SGI", "RAID3", "*", BLIST_SPARSELUN}, {"SGI", "RAID5", "*", BLIST_SPARSELUN}, {"SGI", "TP9100", "*", BLIST_REPORTLUN2}, {"SGI", "Universal Xport", "*", BLIST_NO_ULD_ATTACH}, + {"SMSC", "USB 2 HS-CF", NULL, BLIST_SPARSELUN | BLIST_INQUIRY_36}, {"SONY", "CD-ROM CDU-8001", NULL, BLIST_BORKEN}, {"SONY", "TSL", NULL, BLIST_FORCELUN}, /* DDS3 & DDS4 autoloaders */ {"SUN", "T300", "*", BLIST_SPARSELUN}, @@ -190,48 +198,13 @@ static struct { {"TEXEL", "CD-ROM", "1.06", BLIST_BORKEN}, {"TOSHIBA", "CDROM", NULL, BLIST_ISROM}, {"TOSHIBA", "CD-ROM", NULL, BLIST_ISROM}, + {"USB2.0", "SMARTMEDIA/XD", NULL, BLIST_FORCELUN | BLIST_INQUIRY_36}, {"WangDAT", "Model 2600", "01.7", BLIST_SELECT_NO_ATN}, {"WangDAT", "Model 3200", "02.2", BLIST_SELECT_NO_ATN}, {"WangDAT", "Model 1300", "02.4", BLIST_SELECT_NO_ATN}, {"XYRATEX", "RS", "*", BLIST_SPARSELUN | BLIST_LARGELUN}, {"Zzyzx", "RocketStor 500S", NULL, BLIST_SPARSELUN}, {"Zzyzx", "RocketStor 2000", NULL, BLIST_SPARSELUN}, - - /* - * USB multi card readers. - */ - {"AFT", "CF PRO-9XP", "9144", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"AFT PRO", "-IX CF", "0.0>", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"BELKIN", "USB 2 HS-CF", "1.95", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"CBOX3", "USB Storage-SMC", "300A", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"DMI", "MultiFlash", "3.00", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"eUSB", "Compact Flash", NULL, BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"GENERIC", "Card Reader CF", "v26F", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"General", "USB Disk Drive","1.00", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"Generic", "USB SD Reader", "1.00", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"Generic", "USB Storage-SMC", "0090", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"Generic", "USB Storage-SMC", "0180", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"Generic", "USB Storage-SMC", "0207", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"generic", "USB Storage-SMC", "0207", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"IC", "USB Storage-CFC", "322E", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"ICSI", "SD Card", "2.7C", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"IOI", "Media Bay", "*", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"Lexar", "Media Inc. SM/xD", "009E", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"Lexar", "USB Storage-SMC", "I18A", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"Medion", "Flash XL MMC/SD", "2.6D", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"OEI-USB", "CompactFlash", "1.01", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"OEI-USB2", "CompactFlash", "2.00", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"SanDisk", "ImageMate CF-SD1", NULL, BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"SMSC", "223 U HS-CF", "1.95", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"SMSC", "USB 2 HS-CF", NULL, BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"TwinMOS", "7-in-1 Card RWCF", "0100", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"USB2.0", "CardReader CF RW", "0.0>", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"USB2.0", "CardReader SM RW", "0814", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"USB2.0", "CF CardReader", NULL, BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"USB2.0", "SMARTMEDIA/XD", NULL, BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"Y-E DATA", "CF Card Reader", "1.03", BLIST_FORCELUN | BLIST_INQUIRY_36}, - {"Zynet", "USB Storage-SMC", "I03A", BLIST_FORCELUN | BLIST_INQUIRY_36}, - { NULL, NULL, NULL, 0 }, }; diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c index 161c52f2e..44cc03fe0 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -70,12 +70,12 @@ MODULE_PARM_DESC (blinkenlights, "true to cycle leds on hubs"); * otherwise the new scheme is used. If that fails and "use_both_schemes" * is set, then the driver will make another attempt, using the other scheme. */ -static int old_scheme_first = 0; +static int old_scheme_first = 1; module_param(old_scheme_first, bool, S_IRUGO | S_IWUSR); MODULE_PARM_DESC(old_scheme_first, "start with the old device initialization scheme"); -static int use_both_schemes = 0; +static int use_both_schemes = 1; module_param(use_both_schemes, bool, S_IRUGO | S_IWUSR); MODULE_PARM_DESC(use_both_schemes, "try the other device initialization scheme if the " diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index 151814f82..a9928b729 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c @@ -775,7 +775,7 @@ static int load_elf_binary(struct linux_binprm * bprm, struct pt_regs * regs) * Turn off the CS limit completely if exec-shield disabled or * NX active: */ - if (!exec_shield || executable_stack != EXSTACK_DISABLE_X) + if (!exec_shield || executable_stack != EXSTACK_DISABLE_X || nx_enabled) arch_add_exec_range(current->mm, -1); #endif @@ -797,7 +797,8 @@ static int load_elf_binary(struct linux_binprm * bprm, struct pt_regs * regs) /* Do this immediately, since STACK_TOP as used in setup_arg_pages may depend on the personality. */ SET_PERSONALITY(loc->elf_ex, ibcs2_interpreter); - if (elf_read_implies_exec(loc->elf_ex, have_pt_gnu_stack)) + if (exec_shield != 2 && + elf_read_implies_exec(loc->elf_ex, have_pt_gnu_stack)) current->personality |= READ_IMPLIES_EXEC; arch_pick_mmap_layout(current->mm); @@ -1052,6 +1053,7 @@ out_free_ph: static int load_elf_library(struct file *file) { struct elf_phdr *elf_phdata; + struct elf_phdr *eppnt; unsigned long elf_bss, bss, len; int retval, error, i, j; struct elfhdr elf_ex; @@ -1075,41 +1077,44 @@ static int load_elf_library(struct file *file) /* j < ELF_MIN_ALIGN because elf_ex.e_phnum <= 2 */ error = -ENOMEM; - elf_phdata = (struct elf_phdr *) kmalloc(j, GFP_KERNEL); + elf_phdata = kmalloc(j, GFP_KERNEL); if (!elf_phdata) goto out; + eppnt = elf_phdata; error = -ENOEXEC; - retval = kernel_read(file, elf_ex.e_phoff, (char *) elf_phdata, j); + retval = kernel_read(file, elf_ex.e_phoff, (char *)eppnt, j); if (retval != j) goto out_free_ph; for (j = 0, i = 0; ip_type == PT_LOAD) j++; + if ((eppnt + i)->p_type == PT_LOAD) + j++; if (j != 1) goto out_free_ph; - while (elf_phdata->p_type != PT_LOAD) elf_phdata++; + while (eppnt->p_type != PT_LOAD) + eppnt++; /* Now use mmap to map the library into memory. */ down_write(¤t->mm->mmap_sem); error = do_mmap(file, - ELF_PAGESTART(elf_phdata->p_vaddr), - (elf_phdata->p_filesz + - ELF_PAGEOFFSET(elf_phdata->p_vaddr)), + ELF_PAGESTART(eppnt->p_vaddr), + (eppnt->p_filesz + + ELF_PAGEOFFSET(eppnt->p_vaddr)), PROT_READ | PROT_WRITE | PROT_EXEC, MAP_FIXED | MAP_PRIVATE | MAP_DENYWRITE, - (elf_phdata->p_offset - - ELF_PAGEOFFSET(elf_phdata->p_vaddr))); + (eppnt->p_offset - + ELF_PAGEOFFSET(eppnt->p_vaddr))); up_write(¤t->mm->mmap_sem); - if (error != ELF_PAGESTART(elf_phdata->p_vaddr)) + if (error != ELF_PAGESTART(eppnt->p_vaddr)) goto out_free_ph; - elf_bss = elf_phdata->p_vaddr + elf_phdata->p_filesz; + elf_bss = eppnt->p_vaddr + eppnt->p_filesz; padzero(elf_bss); - len = ELF_PAGESTART(elf_phdata->p_filesz + elf_phdata->p_vaddr + ELF_MIN_ALIGN - 1); - bss = elf_phdata->p_memsz + elf_phdata->p_vaddr; + len = ELF_PAGESTART(eppnt->p_filesz + eppnt->p_vaddr + ELF_MIN_ALIGN - 1); + bss = eppnt->p_memsz + eppnt->p_vaddr; if (bss > len) do_brk(len, bss - len); error = 0; diff --git a/fs/cramfs/inode.c b/fs/cramfs/inode.c index 23099366a..6c285efa2 100644 --- a/fs/cramfs/inode.c +++ b/fs/cramfs/inode.c @@ -70,6 +70,7 @@ static struct inode *get_cramfs_inode(struct super_block *sb, struct cramfs_inod inode->i_data.a_ops = &cramfs_aops; } else { inode->i_size = 0; + inode->i_blocks = 0; init_special_inode(inode, inode->i_mode, old_decode_dev(cramfs_inode->size)); } diff --git a/fs/eventpoll.c b/fs/eventpoll.c index b11ab1a9c..28ecd4ddf 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c @@ -619,6 +619,7 @@ eexit_1: return error; } +#define MAX_EVENTS (INT_MAX / sizeof(struct epoll_event)) /* * Implement the event wait interface for the eventpoll file. It is the kernel @@ -635,7 +636,7 @@ asmlinkage long sys_epoll_wait(int epfd, struct epoll_event __user *events, current, epfd, events, maxevents, timeout)); /* The maximum number of event must be greater than zero */ - if (maxevents <= 0) + if (maxevents <= 0 || maxevents > MAX_EVENTS) return -EINVAL; /* Verify that the area passed by the user is writeable */ diff --git a/fs/exec.c b/fs/exec.c index 9f70b89a0..f3629a232 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -791,7 +791,7 @@ void get_task_comm(char *buf, struct task_struct *tsk) { /* buf must be at least sizeof(tsk->comm) in size */ task_lock(tsk); - memcpy(buf, tsk->comm, sizeof(tsk->comm)); + strncpy(buf, tsk->comm, sizeof(tsk->comm)); task_unlock(tsk); } diff --git a/fs/ext2/dir.c b/fs/ext2/dir.c index 64ccc7c86..06f3fb691 100644 --- a/fs/ext2/dir.c +++ b/fs/ext2/dir.c @@ -592,6 +592,7 @@ int ext2_make_empty(struct inode *inode, struct inode *parent) goto fail; } kaddr = kmap_atomic(page, KM_USER0); + memset(kaddr, 0, chunk_size); de = (struct ext2_dir_entry_2 *)kaddr; de->name_len = 1; de->rec_len = cpu_to_le16(EXT2_DIR_REC_LEN(1)); diff --git a/fs/isofs/inode.c b/fs/isofs/inode.c index 0ee7beb9d..b9256e65e 100644 --- a/fs/isofs/inode.c +++ b/fs/isofs/inode.c @@ -685,6 +685,8 @@ root_found: sbi->s_log_zone_size = isonum_723 (h_pri->logical_block_size); sbi->s_max_size = isonum_733(h_pri->volume_space_size); } else { + if (!pri) + goto out_freebh; rootp = (struct iso_directory_record *) pri->root_directory_record; sbi->s_nzones = isonum_733 (pri->volume_space_size); sbi->s_log_zone_size = isonum_723 (pri->logical_block_size); @@ -1395,6 +1397,9 @@ struct inode *isofs_iget(struct super_block *sb, struct inode *inode; struct isofs_iget5_callback_data data; + if (offset >= 1ul << sb->s_blocksize_bits) + return NULL; + data.block = block; data.offset = offset; diff --git a/fs/isofs/rock.c b/fs/isofs/rock.c index 19d999fd4..8bdd3e409 100644 --- a/fs/isofs/rock.c +++ b/fs/isofs/rock.c @@ -53,6 +53,7 @@ if(LEN & 1) LEN++; \ CHR = ((unsigned char *) DE) + LEN; \ LEN = *((unsigned char *) DE) - LEN; \ + if (LEN<0) LEN=0; \ if (ISOFS_SB(inode->i_sb)->s_rock_offset!=-1) \ { \ LEN-=ISOFS_SB(inode->i_sb)->s_rock_offset; \ @@ -73,6 +74,10 @@ offset1 = 0; \ pbh = sb_bread(DEV->i_sb, block); \ if(pbh){ \ + if (offset > pbh->b_size || offset + cont_size > pbh->b_size){ \ + brelse(pbh); \ + goto out; \ + } \ memcpy(buffer + offset1, pbh->b_data + offset, cont_size - offset1); \ brelse(pbh); \ chr = (unsigned char *) buffer; \ @@ -103,12 +108,13 @@ int get_rock_ridge_filename(struct iso_directory_record * de, struct rock_ridge * rr; int sig; - while (len > 1){ /* There may be one byte for padding somewhere */ + while (len > 2){ /* There may be one byte for padding somewhere */ rr = (struct rock_ridge *) chr; - if (rr->len == 0) goto out; /* Something got screwed up here */ + if (rr->len < 3) goto out; /* Something got screwed up here */ sig = isonum_721(chr); chr += rr->len; len -= rr->len; + if (len < 0) goto out; /* corrupted isofs */ switch(sig){ case SIG('R','R'): @@ -122,6 +128,7 @@ int get_rock_ridge_filename(struct iso_directory_record * de, break; case SIG('N','M'): if (truncate) break; + if (rr->len < 5) break; /* * If the flags are 2 or 4, this indicates '.' or '..'. * We don't want to do anything with this, because it @@ -186,12 +193,13 @@ parse_rock_ridge_inode_internal(struct iso_directory_record *de, struct rock_ridge * rr; int rootflag; - while (len > 1){ /* There may be one byte for padding somewhere */ + while (len > 2){ /* There may be one byte for padding somewhere */ rr = (struct rock_ridge *) chr; - if (rr->len == 0) goto out; /* Something got screwed up here */ + if (rr->len < 3) goto out; /* Something got screwed up here */ sig = isonum_721(chr); chr += rr->len; len -= rr->len; + if (len < 0) goto out; /* corrupted isofs */ switch(sig){ #ifndef CONFIG_ZISOFS /* No flag for SF or ZF */ @@ -462,7 +470,7 @@ static int rock_ridge_symlink_readpage(struct file *file, struct page *page) struct rock_ridge *rr; if (!ISOFS_SB(inode->i_sb)->s_rock) - panic ("Cannot have symlink with high sierra variant of iso filesystem\n"); + goto error; block = ei->i_iget5_block; lock_kernel(); @@ -487,13 +495,15 @@ static int rock_ridge_symlink_readpage(struct file *file, struct page *page) SETUP_ROCK_RIDGE(raw_inode, chr, len); repeat: - while (len > 1) { /* There may be one byte for padding somewhere */ + while (len > 2) { /* There may be one byte for padding somewhere */ rr = (struct rock_ridge *) chr; - if (rr->len == 0) + if (rr->len < 3) goto out; /* Something got screwed up here */ sig = isonum_721(chr); chr += rr->len; len -= rr->len; + if (len < 0) + goto out; /* corrupted isofs */ switch (sig) { case SIG('R', 'R'): @@ -543,6 +553,7 @@ static int rock_ridge_symlink_readpage(struct file *file, struct page *page) fail: brelse(bh); unlock_kernel(); + error: SetPageError(page); kunmap(page); unlock_page(page); diff --git a/fs/proc/generic.c b/fs/proc/generic.c index d1985331f..6c4936a38 100644 --- a/fs/proc/generic.c +++ b/fs/proc/generic.c @@ -60,7 +60,7 @@ proc_file_read(struct file *file, char __user *buf, size_t nbytes, return -ENOMEM; while ((nbytes > 0) && !eof) { - count = min_t(ssize_t, PROC_BLOCK_SIZE, nbytes); + count = min_t(size_t, PROC_BLOCK_SIZE, nbytes); start = NULL; if (dp->get_info) { diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index 36a4ce1a6..def2511df 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -23,9 +23,6 @@ char *task_mem(struct mm_struct *mm, char *buffer) "StaBrk:\t%08lx kB\n" "Brk:\t%08lx kB\n" "StaStk:\t%08lx kB\n" -#if __i386__ - "ExecLim:\t%08lx\n" -#endif , (mm->total_vm - mm->reserved_vm) << (PAGE_SHIFT-10), mm->locked_vm << (PAGE_SHIFT-10), @@ -33,11 +30,12 @@ char *task_mem(struct mm_struct *mm, char *buffer) data << (PAGE_SHIFT-10), mm->stack_vm << (PAGE_SHIFT-10), text, lib, (PTRS_PER_PTE*sizeof(pte_t)*mm->nr_ptes) >> 10, - mm->start_brk, mm->brk, mm->start_stack + mm->start_brk, mm->brk, mm->start_stack); #if __i386__ - , mm->context.exec_limit + if (!nx_enabled) + buffer += sprintf(buffer, + "ExecLim:\t%08lx\n", mm->context.exec_limit); #endif - ); return buffer; } @@ -59,6 +57,9 @@ int task_statm(struct mm_struct *mm, int *shared, int *text, static int show_map(struct seq_file *m, void *v) { +#ifdef __i386__ + struct task_struct *task = m->private; +#endif struct vm_area_struct *map = v; struct file *file = map->vm_file; int flags = map->vm_flags; @@ -77,7 +78,13 @@ static int show_map(struct seq_file *m, void *v) map->vm_end, flags & VM_READ ? 'r' : '-', flags & VM_WRITE ? 'w' : '-', - flags & VM_EXEC ? 'x' : '-', + (flags & VM_EXEC +#ifdef __i386__ + || (!nx_enabled && + (map->vm_start < task->mm->context.exec_limit)) +#endif + ) + ? 'x' : '-', flags & VM_MAYSHARE ? 's' : 'p', map->vm_pgoff << PAGE_SHIFT, MAJOR(dev), MINOR(dev), ino, &len); diff --git a/fs/reiserfs/file.c b/fs/reiserfs/file.c index b46b75f91..8a774f9d1 100644 --- a/fs/reiserfs/file.c +++ b/fs/reiserfs/file.c @@ -588,7 +588,7 @@ error_exit: /* Unlock pages prepared by reiserfs_prepare_file_region_for_write */ void reiserfs_unprepare_pages(struct page **prepared_pages, /* list of locked pages */ - int num_pages /* amount of pages */) { + size_t num_pages /* amount of pages */) { int i; // loop counter for (i=0; i < num_pages ; i++) { @@ -619,7 +619,7 @@ int reiserfs_copy_from_user_to_file_region( int offset; // offset in page for ( i = 0, offset = (pos & (PAGE_CACHE_SIZE-1)); i < num_pages ; i++,offset=0) { - int count = min_t(int,PAGE_CACHE_SIZE-offset,write_bytes); // How much of bytes to write to this page + size_t count = min_t(size_t,PAGE_CACHE_SIZE-offset,write_bytes); // How much of bytes to write to this page struct page *page=prepared_pages[i]; // Current page we process. fault_in_pages_readable( buf, count); @@ -718,8 +718,8 @@ int reiserfs_submit_file_region_for_write( struct reiserfs_transaction_handle *th, struct inode *inode, loff_t pos, /* Writing position offset */ - int num_pages, /* Number of pages to write */ - int write_bytes, /* number of bytes to write */ + size_t num_pages, /* Number of pages to write */ + size_t write_bytes, /* number of bytes to write */ struct page **prepared_pages /* list of pages */ ) { @@ -854,9 +854,9 @@ int reiserfs_check_for_tail_and_convert( struct inode *inode, /* inode to deal w int reiserfs_prepare_file_region_for_write( struct inode *inode /* Inode of the file */, loff_t pos, /* position in the file */ - int num_pages, /* number of pages to + size_t num_pages, /* number of pages to prepare */ - int write_bytes, /* Amount of bytes to be + size_t write_bytes, /* Amount of bytes to be overwritten from @pos */ struct page **prepared_pages /* pointer to array @@ -1252,10 +1252,9 @@ ssize_t reiserfs_file_write( struct file *file, /* the file we are going to writ while ( count > 0) { /* This is the main loop in which we running until some error occures or until we write all of the data. */ - int num_pages;/* amount of pages we are going to write this iteration */ - int write_bytes; /* amount of bytes to write during this iteration */ - int blocks_to_allocate; /* how much blocks we need to allocate for - this iteration */ + size_t num_pages;/* amount of pages we are going to write this iteration */ + size_t write_bytes; /* amount of bytes to write during this iteration */ + size_t blocks_to_allocate; /* how much blocks we need to allocate for this iteration */ /* (pos & (PAGE_CACHE_SIZE-1)) is an idiom for offset into a page of pos*/ num_pages = !!((pos+count) & (PAGE_CACHE_SIZE - 1)) + /* round up partial @@ -1269,7 +1268,7 @@ ssize_t reiserfs_file_write( struct file *file, /* the file we are going to writ /* If we were asked to write more data than we want to or if there is not that much space, then we shorten amount of data to write for this iteration. */ - num_pages = min_t(int, REISERFS_WRITE_PAGES_AT_A_TIME, reiserfs_can_fit_pages(inode->i_sb)); + num_pages = min_t(size_t, REISERFS_WRITE_PAGES_AT_A_TIME, reiserfs_can_fit_pages(inode->i_sb)); /* Also we should not forget to set size in bytes accordingly */ write_bytes = (num_pages << PAGE_CACHE_SHIFT) - (pos & (PAGE_CACHE_SIZE-1)); @@ -1295,7 +1294,7 @@ ssize_t reiserfs_file_write( struct file *file, /* the file we are going to writ // But overwriting files on absolutelly full volumes would not // be very efficient. Well, people are not supposed to fill // 100% of disk space anyway. - write_bytes = min_t(int, count, inode->i_sb->s_blocksize - (pos & (inode->i_sb->s_blocksize - 1))); + write_bytes = min_t(size_t, count, inode->i_sb->s_blocksize - (pos & (inode->i_sb->s_blocksize - 1))); num_pages = 1; // No blocks were claimed before, so do it now. reiserfs_claim_blocks_to_be_allocated(inode->i_sb, 1 << (PAGE_CACHE_SHIFT - inode->i_blkbits)); diff --git a/include/asm-x86_64/mmu_context.h b/include/asm-x86_64/mmu_context.h index 671e7573b..8f80f1570 100644 --- a/include/asm-x86_64/mmu_context.h +++ b/include/asm-x86_64/mmu_context.h @@ -54,10 +54,9 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next, out_of_line_bug(); if(!test_and_set_bit(cpu, &next->cpu_vm_mask)) { /* We were in lazy tlb mode and leave_mm disabled - * tlb flush IPI delivery. We must reload CR3 - * to make sure to use no freed page tables. + * tlb flush IPI delivery. We must flush our tlb. */ - asm volatile("movq %0,%%cr3" :: "r" (__pa(next->pgd)) : "memory"); + local_flush_tlb(); load_LDT_nolock(&next->context, cpu); } } diff --git a/include/linux/autoconf.h b/include/linux/autoconf.h index ffeeef48a..1754b854b 100644 --- a/include/linux/autoconf.h +++ b/include/linux/autoconf.h @@ -1,7 +1,7 @@ /* * Automatically generated C config: don't edit - * Linux kernel version: 2.6.10-ac11 - * Thu Feb 3 14:51:25 2005 + * Linux kernel version: 2.6.10-ac12 + * Wed May 18 16:34:50 2005 */ #define AUTOCONF_INCLUDED #define CONFIG_X86 1 @@ -576,7 +576,7 @@ /* * Some SCSI devices (e.g. CD jukebox) support multiple LUNs */ -#undef CONFIG_SCSI_MULTI_LUN +#define CONFIG_SCSI_MULTI_LUN 1 #define CONFIG_SCSI_CONSTANTS 1 #define CONFIG_SCSI_LOGGING 1 diff --git a/include/linux/netfilter_ipv4/ip_conntrack.h b/include/linux/netfilter_ipv4/ip_conntrack.h index afa5e0495..5977bd5f2 100644 --- a/include/linux/netfilter_ipv4/ip_conntrack.h +++ b/include/linux/netfilter_ipv4/ip_conntrack.h @@ -278,10 +278,9 @@ extern void (*ip_conntrack_destroyed)(struct ip_conntrack *conntrack); /* Fake conntrack entry for untracked connections */ extern struct ip_conntrack ip_conntrack_untracked; -extern int ip_ct_no_defrag; /* Returns new sk_buff, or NULL */ struct sk_buff * -ip_ct_gather_frags(struct sk_buff *skb); +ip_ct_gather_frags(struct sk_buff *skb, u_int32_t user); /* Delete all conntracks which match. */ extern void diff --git a/include/net/ip.h b/include/net/ip.h index 15a1c6a2e..0a1699227 100644 --- a/include/net/ip.h +++ b/include/net/ip.h @@ -253,9 +253,24 @@ extern int ip_call_ra_chain(struct sk_buff *skb); /* * Functions provided by ip_fragment.o */ - -struct sk_buff *ip_defrag(struct sk_buff *skb); -extern void ipfrag_flush(void); + +enum ip_defrag_users +{ + IP_DEFRAG_LOCAL_DELIVER, + IP_DEFRAG_CALL_RA_CHAIN, + IP_DEFRAG_CONNTRACK_IN, + IP_DEFRAG_CONNTRACK_OUT, + IP_DEFRAG_NAT_OUT, + IP_DEFRAG_VS_IN, + IP_DEFRAG_VS_OUT, + IP_DEFRAG_VS_FWD, + __IP_DEFRAG_DYNAMIC_FIRST, + __IP_DEFRAG_DYNAMIC_LAST = (__IP_DEFRAG_DYNAMIC_FIRST + 32) - 1, +}; + +struct sk_buff *ip_defrag(struct sk_buff *skb, u32 user); +extern int ip_defrag_user_id_alloc(void); +extern void ip_defrag_user_id_free(int user); extern int ip_frag_nqueues; extern atomic_t ip_frag_mem; diff --git a/mm/mmap.c b/mm/mmap.c index e4e814a5d..59591b366 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1433,11 +1433,11 @@ int expand_stack(struct vm_area_struct * vma, unsigned long address) address &= PAGE_MASK; grow = (address - vma->vm_end) >> PAGE_SHIFT; - /* Someone beat us to it */ - if (grow <= 0) { + if(address < vma->vm_end) { anon_vma_unlock(vma); return 0; } + /* Overcommit.. */ if (security_vm_enough_memory(grow)) { anon_vma_unlock(vma); @@ -1507,11 +1507,11 @@ int expand_stack(struct vm_area_struct *vma, unsigned long address) address &= PAGE_MASK; grow = (vma->vm_start - address) >> PAGE_SHIFT; - /* Someone beat us to it */ - if (grow <= 0) { + if (address >= vma->vm_start) { anon_vma_unlock(vma); return 0; } + /* Overcommit.. */ if (security_vm_enough_memory(grow)) { anon_vma_unlock(vma); diff --git a/net/atm/addr.c b/net/atm/addr.c index 96407a0bb..f7029ebf7 100644 --- a/net/atm/addr.c +++ b/net/atm/addr.c @@ -114,7 +114,7 @@ int atm_del_addr(struct atm_dev *dev,struct sockaddr_atmsvc *addr) } -int atm_get_addr(struct atm_dev *dev,struct sockaddr_atmsvc __user *buf,int size) +int atm_get_addr(struct atm_dev *dev,struct sockaddr_atmsvc __user *buf,size_t size) { unsigned long flags; struct atm_dev_addr *walk; diff --git a/net/atm/addr.h b/net/atm/addr.h index 2affa3a12..3099d21fe 100644 --- a/net/atm/addr.h +++ b/net/atm/addr.h @@ -13,6 +13,6 @@ void atm_reset_addr(struct atm_dev *dev); int atm_add_addr(struct atm_dev *dev,struct sockaddr_atmsvc *addr); int atm_del_addr(struct atm_dev *dev,struct sockaddr_atmsvc *addr); -int atm_get_addr(struct atm_dev *dev,struct sockaddr_atmsvc __user *buf,int size); +int atm_get_addr(struct atm_dev *dev,struct sockaddr_atmsvc __user *buf,size_t size); #endif diff --git a/net/bluetooth/af_bluetooth.c b/net/bluetooth/af_bluetooth.c index 8ff58bc2b..064641c96 100644 --- a/net/bluetooth/af_bluetooth.c +++ b/net/bluetooth/af_bluetooth.c @@ -64,7 +64,7 @@ static kmem_cache_t *bt_sock_cache; int bt_sock_register(int proto, struct net_proto_family *ops) { - if (proto >= BT_MAX_PROTO) + if (proto < 0 || proto >= BT_MAX_PROTO) return -EINVAL; if (bt_proto[proto]) @@ -77,7 +77,7 @@ EXPORT_SYMBOL(bt_sock_register); int bt_sock_unregister(int proto) { - if (proto >= BT_MAX_PROTO) + if (proto < 0 || proto >= BT_MAX_PROTO) return -EINVAL; if (!bt_proto[proto]) @@ -92,7 +92,7 @@ static int bt_sock_create(struct socket *sock, int proto) { int err = 0; - if (proto >= BT_MAX_PROTO) + if (proto < 0 || proto >= BT_MAX_PROTO) return -EINVAL; #if defined(CONFIG_KMOD) diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c index 441a522ec..02961c551 100644 --- a/net/ipv4/ip_fragment.c +++ b/net/ipv4/ip_fragment.c @@ -73,6 +73,7 @@ struct ipfrag_skb_cb struct ipq { struct ipq *next; /* linked list pointers */ struct list_head lru_list; /* lru list member */ + u32 user; u32 saddr; u32 daddr; u16 id; @@ -243,13 +244,13 @@ static void ipq_kill(struct ipq *ipq) /* Memory limiting on fragments. Evictor trashes the oldest * fragment queue until we are back under the threshold. */ -static void __ip_evictor(int threshold) +static void ip_evictor(void) { struct ipq *qp; struct list_head *tmp; int work; - work = atomic_read(&ip_frag_mem) - threshold; + work = atomic_read(&ip_frag_mem) - sysctl_ipfrag_low_thresh; if (work <= 0) return; @@ -274,11 +275,6 @@ static void __ip_evictor(int threshold) } } -static inline void ip_evictor(void) -{ - __ip_evictor(sysctl_ipfrag_low_thresh); -} - /* * Oops, a fragment queue timed out. Kill it and send an ICMP reply. */ @@ -325,7 +321,8 @@ static struct ipq *ip_frag_intern(unsigned int hash, struct ipq *qp_in) if(qp->id == qp_in->id && qp->saddr == qp_in->saddr && qp->daddr == qp_in->daddr && - qp->protocol == qp_in->protocol) { + qp->protocol == qp_in->protocol && + qp->user == qp_in->user) { atomic_inc(&qp->refcnt); write_unlock(&ipfrag_lock); qp_in->last_in |= COMPLETE; @@ -352,7 +349,7 @@ static struct ipq *ip_frag_intern(unsigned int hash, struct ipq *qp_in) } /* Add an entry to the 'ipq' queue for a newly received IP datagram. */ -static struct ipq *ip_frag_create(unsigned hash, struct iphdr *iph) +static struct ipq *ip_frag_create(unsigned hash, struct iphdr *iph, u32 user) { struct ipq *qp; @@ -364,6 +361,7 @@ static struct ipq *ip_frag_create(unsigned hash, struct iphdr *iph) qp->id = iph->id; qp->saddr = iph->saddr; qp->daddr = iph->daddr; + qp->user = user; qp->len = 0; qp->meat = 0; qp->fragments = NULL; @@ -386,7 +384,7 @@ out_nomem: /* Find the correct entry in the "incomplete datagrams" queue for * this IP datagram, and create new one, if nothing is found. */ -static inline struct ipq *ip_find(struct iphdr *iph) +static inline struct ipq *ip_find(struct iphdr *iph, u32 user) { __u16 id = iph->id; __u32 saddr = iph->saddr; @@ -400,7 +398,8 @@ static inline struct ipq *ip_find(struct iphdr *iph) if(qp->id == id && qp->saddr == saddr && qp->daddr == daddr && - qp->protocol == protocol) { + qp->protocol == protocol && + qp->user == user) { atomic_inc(&qp->refcnt); read_unlock(&ipfrag_lock); return qp; @@ -408,7 +407,7 @@ static inline struct ipq *ip_find(struct iphdr *iph) } read_unlock(&ipfrag_lock); - return ip_frag_create(hash, iph); + return ip_frag_create(hash, iph, user); } /* Add new segment to existing queue. */ @@ -642,7 +641,7 @@ out_fail: } /* Process an incoming IP datagram fragment. */ -struct sk_buff *ip_defrag(struct sk_buff *skb) +struct sk_buff *ip_defrag(struct sk_buff *skb, u32 user) { struct iphdr *iph = skb->nh.iph; struct ipq *qp; @@ -657,7 +656,7 @@ struct sk_buff *ip_defrag(struct sk_buff *skb) dev = skb->dev; /* Lookup (or create) queue header */ - if ((qp = ip_find(iph)) != NULL) { + if ((qp = ip_find(iph, user)) != NULL) { struct sk_buff *ret = NULL; spin_lock(&qp->lock); @@ -678,6 +677,29 @@ struct sk_buff *ip_defrag(struct sk_buff *skb) return NULL; } +static unsigned long ip_defrag_id_bitmap; + +int ip_defrag_user_id_alloc(void) +{ + int i; + + for (i = 0; i < 32; i++) { + if (!test_and_set_bit(i, &ip_defrag_id_bitmap)) + return i + __IP_DEFRAG_DYNAMIC_FIRST; + } + + return -ENFILE; +} +EXPORT_SYMBOL(ip_defrag_user_id_alloc); + +void ip_defrag_user_id_free(int user) +{ + user -= __IP_DEFRAG_DYNAMIC_FIRST; + if (user >= 0 && user < 32) + clear_bit(user, &ip_defrag_id_bitmap); +} +EXPORT_SYMBOL(ip_defrag_user_id_free); + void ipfrag_init(void) { ipfrag_hash_rnd = (u32) ((num_physpages ^ (num_physpages>>7)) ^ @@ -689,10 +711,4 @@ void ipfrag_init(void) add_timer(&ipfrag_secret_timer); } -void ipfrag_flush(void) -{ - __ip_evictor(0); -} - EXPORT_SYMBOL(ip_defrag); -EXPORT_SYMBOL(ipfrag_flush); diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c index f2e88193d..51069c0b5 100644 --- a/net/ipv4/ip_input.c +++ b/net/ipv4/ip_input.c @@ -172,7 +172,7 @@ int ip_call_ra_chain(struct sk_buff *skb) (!sk->sk_bound_dev_if || sk->sk_bound_dev_if == skb->dev->ifindex)) { if (skb->nh.iph->frag_off & htons(IP_MF|IP_OFFSET)) { - skb = ip_defrag(skb); + skb = ip_defrag(skb, IP_DEFRAG_CALL_RA_CHAIN); if (skb == NULL) { read_unlock(&ip_ra_lock); return 1; @@ -273,7 +273,7 @@ int ip_local_deliver(struct sk_buff *skb) */ if (skb->nh.iph->frag_off & htons(IP_MF|IP_OFFSET)) { - skb = ip_defrag(skb); + skb = ip_defrag(skb, IP_DEFRAG_LOCAL_DELIVER); if (!skb) return 0; } diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index d223d1251..360765aa5 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c @@ -389,6 +389,7 @@ static void ip_copy_metadata(struct sk_buff *to, struct sk_buff *from) to->priority = from->priority; to->protocol = from->protocol; to->security = from->security; + dst_release(to->dst); to->dst = dst_clone(from->dst); to->dev = from->dev; diff --git a/net/ipv4/ipvs/ip_vs_core.c b/net/ipv4/ipvs/ip_vs_core.c index 168e5b342..9b91d916c 100644 --- a/net/ipv4/ipvs/ip_vs_core.c +++ b/net/ipv4/ipvs/ip_vs_core.c @@ -545,9 +545,9 @@ u16 ip_vs_checksum_complete(struct sk_buff *skb, int offset) } static inline struct sk_buff * -ip_vs_gather_frags(struct sk_buff *skb) +ip_vs_gather_frags(struct sk_buff *skb, u_int32_t user) { - skb = ip_defrag(skb); + skb = ip_defrag(skb, user); if (skb) ip_send_check(skb->nh.iph); return skb; @@ -621,7 +621,7 @@ static int ip_vs_out_icmp(struct sk_buff **pskb, int *related) /* reassemble IP fragments */ if (skb->nh.iph->frag_off & __constant_htons(IP_MF|IP_OFFSET)) { - skb = ip_vs_gather_frags(skb); + skb = ip_vs_gather_frags(skb, IP_DEFRAG_VS_OUT); if (!skb) return NF_STOLEN; *pskb = skb; @@ -760,7 +760,7 @@ ip_vs_out(unsigned int hooknum, struct sk_buff **pskb, /* reassemble IP fragments */ if (unlikely(iph->frag_off & __constant_htons(IP_MF|IP_OFFSET) && !pp->dont_defrag)) { - skb = ip_vs_gather_frags(skb); + skb = ip_vs_gather_frags(skb, IP_DEFRAG_VS_OUT); if (!skb) return NF_STOLEN; iph = skb->nh.iph; @@ -865,7 +865,8 @@ check_for_ip_vs_out(struct sk_buff **pskb, int (*okfn)(struct sk_buff *)) * forward to the right destination host if relevant. * Currently handles error types - unreachable, quench, ttl exceeded. */ -static int ip_vs_in_icmp(struct sk_buff **pskb, int *related) +static int +ip_vs_in_icmp(struct sk_buff **pskb, int *related, unsigned int hooknum) { struct sk_buff *skb = *pskb; struct iphdr *iph; @@ -879,7 +880,9 @@ static int ip_vs_in_icmp(struct sk_buff **pskb, int *related) /* reassemble IP fragments */ if (skb->nh.iph->frag_off & __constant_htons(IP_MF|IP_OFFSET)) { - skb = ip_vs_gather_frags(skb); + skb = ip_vs_gather_frags(skb, + hooknum == NF_IP_LOCAL_IN ? + IP_DEFRAG_VS_IN : IP_DEFRAG_VS_FWD); if (!skb) return NF_STOLEN; *pskb = skb; @@ -988,7 +991,7 @@ ip_vs_in(unsigned int hooknum, struct sk_buff **pskb, iph = skb->nh.iph; if (unlikely(iph->protocol == IPPROTO_ICMP)) { - int related, verdict = ip_vs_in_icmp(pskb, &related); + int related, verdict = ip_vs_in_icmp(pskb, &related, hooknum); if (related) return verdict; @@ -1083,7 +1086,7 @@ ip_vs_forward_icmp(unsigned int hooknum, struct sk_buff **pskb, if ((*pskb)->nh.iph->protocol != IPPROTO_ICMP) return NF_ACCEPT; - return ip_vs_in_icmp(pskb, &r); + return ip_vs_in_icmp(pskb, &r, hooknum); } diff --git a/net/ipv4/netfilter/ip_conntrack_core.c b/net/ipv4/netfilter/ip_conntrack_core.c index d14a4e342..2097bce4d 100644 --- a/net/ipv4/netfilter/ip_conntrack_core.c +++ b/net/ipv4/netfilter/ip_conntrack_core.c @@ -1113,29 +1113,22 @@ void ip_ct_refresh_acct(struct ip_conntrack *ct, } } -int ip_ct_no_defrag; - /* Returns new sk_buff, or NULL */ struct sk_buff * -ip_ct_gather_frags(struct sk_buff *skb) +ip_ct_gather_frags(struct sk_buff *skb, u_int32_t user) { struct sock *sk = skb->sk; #ifdef CONFIG_NETFILTER_DEBUG unsigned int olddebug = skb->nf_debug; #endif - if (unlikely(ip_ct_no_defrag)) { - kfree_skb(skb); - return NULL; - } - if (sk) { sock_hold(sk); skb_orphan(skb); } local_bh_disable(); - skb = ip_defrag(skb); + skb = ip_defrag(skb, user); local_bh_enable(); if (!skb) { diff --git a/net/ipv4/netfilter/ip_conntrack_standalone.c b/net/ipv4/netfilter/ip_conntrack_standalone.c index 083f0327c..3cebf98de 100644 --- a/net/ipv4/netfilter/ip_conntrack_standalone.c +++ b/net/ipv4/netfilter/ip_conntrack_standalone.c @@ -381,7 +381,10 @@ static unsigned int ip_conntrack_defrag(unsigned int hooknum, /* Gather fragments. */ if ((*pskb)->nh.iph->frag_off & htons(IP_MF|IP_OFFSET)) { - *pskb = ip_ct_gather_frags(*pskb); + *pskb = ip_ct_gather_frags(*pskb, + hooknum == NF_IP_PRE_ROUTING ? + IP_DEFRAG_CONNTRACK_IN : + IP_DEFRAG_CONNTRACK_OUT); if (!*pskb) return NF_STOLEN; } @@ -811,12 +814,6 @@ static int init_or_cleanup(int init) cleanup_defraglocalops: nf_unregister_hook(&ip_conntrack_defrag_local_out_ops); cleanup_defragops: - /* Frag queues may hold fragments with skb->dst == NULL */ - ip_ct_no_defrag = 1; - synchronize_net(); - local_bh_disable(); - ipfrag_flush(); - local_bh_enable(); nf_unregister_hook(&ip_conntrack_defrag_ops); cleanup_proc_stat: #ifdef CONFIG_PROC_FS diff --git a/net/ipv4/netfilter/ip_nat_standalone.c b/net/ipv4/netfilter/ip_nat_standalone.c index 71bd2e05b..bf6667218 100644 --- a/net/ipv4/netfilter/ip_nat_standalone.c +++ b/net/ipv4/netfilter/ip_nat_standalone.c @@ -202,7 +202,7 @@ ip_nat_out(unsigned int hooknum, I'm starting to have nightmares about fragments. */ if ((*pskb)->nh.iph->frag_off & htons(IP_MF|IP_OFFSET)) { - *pskb = ip_ct_gather_frags(*pskb); + *pskb = ip_ct_gather_frags(*pskb, IP_DEFRAG_NAT_OUT); if (!*pskb) return NF_STOLEN; diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index ed31c5320..a92e47c5a 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -463,6 +463,7 @@ static void ip6_copy_metadata(struct sk_buff *to, struct sk_buff *from) to->priority = from->priority; to->protocol = from->protocol; to->security = from->security; + dst_release(to->dst); to->dst = dst_clone(from->dst); to->dev = from->dev; diff --git a/scripts/basic/.docproc.cmd b/scripts/basic/.docproc.cmd index 951e11532..92e9d62c2 100644 --- a/scripts/basic/.docproc.cmd +++ b/scripts/basic/.docproc.cmd @@ -6,7 +6,7 @@ deps_scripts/basic/docproc := \ /usr/include/features.h \ /usr/include/sys/cdefs.h \ /usr/include/gnu/stubs.h \ - /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/include/stddef.h \ + /usr/lib/gcc/i386-redhat-linux/3.4.3/include/stddef.h \ /usr/include/bits/types.h \ /usr/include/bits/wordsize.h \ /usr/include/bits/typesizes.h \ @@ -15,7 +15,7 @@ deps_scripts/basic/docproc := \ /usr/include/wchar.h \ /usr/include/bits/wchar.h \ /usr/include/gconv.h \ - /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/include/stdarg.h \ + /usr/lib/gcc/i386-redhat-linux/3.4.3/include/stdarg.h \ /usr/include/bits/stdio_lim.h \ /usr/include/bits/sys_errlist.h \ /usr/include/bits/stdio.h \ @@ -40,8 +40,8 @@ deps_scripts/basic/docproc := \ /usr/include/bits/posix_opt.h \ /usr/include/bits/confname.h \ /usr/include/getopt.h \ - /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/include/limits.h \ - /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/include/syslimits.h \ + /usr/lib/gcc/i386-redhat-linux/3.4.3/include/limits.h \ + /usr/lib/gcc/i386-redhat-linux/3.4.3/include/syslimits.h \ /usr/include/limits.h \ /usr/include/bits/posix1_lim.h \ /usr/include/bits/local_lim.h \ diff --git a/scripts/basic/.fixdep.cmd b/scripts/basic/.fixdep.cmd index 0fd3ed01e..f758b4f93 100644 --- a/scripts/basic/.fixdep.cmd +++ b/scripts/basic/.fixdep.cmd @@ -13,7 +13,7 @@ deps_scripts/basic/fixdep := \ /usr/include/gnu/stubs.h \ /usr/include/bits/types.h \ /usr/include/bits/wordsize.h \ - /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/include/stddef.h \ + /usr/lib/gcc/i386-redhat-linux/3.4.3/include/stddef.h \ /usr/include/bits/typesizes.h \ /usr/include/time.h \ /usr/include/endian.h \ @@ -46,12 +46,12 @@ deps_scripts/basic/fixdep := \ /usr/include/wchar.h \ /usr/include/bits/wchar.h \ /usr/include/gconv.h \ - /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/include/stdarg.h \ + /usr/lib/gcc/i386-redhat-linux/3.4.3/include/stdarg.h \ /usr/include/bits/stdio_lim.h \ /usr/include/bits/sys_errlist.h \ /usr/include/bits/stdio.h \ - /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/include/limits.h \ - /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/include/syslimits.h \ + /usr/lib/gcc/i386-redhat-linux/3.4.3/include/limits.h \ + /usr/lib/gcc/i386-redhat-linux/3.4.3/include/syslimits.h \ /usr/include/limits.h \ /usr/include/bits/posix1_lim.h \ /usr/include/bits/local_lim.h \ diff --git a/scripts/basic/.split-include.cmd b/scripts/basic/.split-include.cmd index f0039a33f..ae15eed82 100644 --- a/scripts/basic/.split-include.cmd +++ b/scripts/basic/.split-include.cmd @@ -9,7 +9,7 @@ deps_scripts/basic/split-include := \ /usr/include/gnu/stubs.h \ /usr/include/bits/types.h \ /usr/include/bits/wordsize.h \ - /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/include/stddef.h \ + /usr/lib/gcc/i386-redhat-linux/3.4.3/include/stddef.h \ /usr/include/bits/typesizes.h \ /usr/include/time.h \ /usr/include/bits/stat.h \ @@ -36,7 +36,7 @@ deps_scripts/basic/split-include := \ /usr/include/wchar.h \ /usr/include/bits/wchar.h \ /usr/include/gconv.h \ - /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/include/stdarg.h \ + /usr/lib/gcc/i386-redhat-linux/3.4.3/include/stdarg.h \ /usr/include/bits/stdio_lim.h \ /usr/include/bits/sys_errlist.h \ /usr/include/bits/stdio.h \ diff --git a/scripts/basic/docproc b/scripts/basic/docproc index e8ccea0f8b8af21c7942efea07198e8c8d8c0b34..9589fe93902c4bd50b8c5c84eebc7e574a7b26b1 100755 GIT binary patch delta 3877 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 delta 4076 zcmcgvYiu0V6+W|j*S=2H-f`BC*j~qLJRvraU?*|O(gfoA5rSNMoy8BZ^QZ{wU?n{4 z*#woqIvpE4*>1Aw1cIulc$E~<29;WtXws&1lQj;8Kpvv3;vE zGi#St{e{#YyJx<0&ONU=bMHOh)b!Mb-CWz@;ztYZJOKV|002Ay2L`qe5Nbah$xUl!MyHgW-NfY6jI0CaDo0FwiR zrg8u?NG$*mAvDzrK#&puiqr;RN16h_BTWU!LYfA!6zL)W7t+N5Zlrbq0ckowDbfsp zyO25{0Ok0Q39uHa6QEi7TuxA}iUZJ&;a_7Kz-SCuSgsg2%7h#x#}TtD^K5^7#D=QeXiS+f)<#?dg!V0) zc1a%QLwjH}7FI8&qy(^mI`8b{#5WESs^u}p&JzK@2W@tav9O%rS>;ajS1Dpvs}B*X z4b3qo54&QaJ>ZiQG}s~Vkq(S8yA8v*>bay`e*VF5-xa^(G*E!^Hss@zoS>IKYhslT zMF>^W+ae@DwHDnP-xocOTxsclnF{<~9;WRv%%BS0zcafKRaSMQ-kfh-;%ct*Gj$uXgn2Wa(anYt0aFDhm1AI9ydecSe}SX4Pd zTYXv!V=S~w;N@X^tFKurm}M+P?jEUG&x1V7d)`sTy9<@`2bT5R+Afu89W#st!SU8d zK@#pysq@Tr;rG}qUd7kyyf}mL^6^)ciIJ4M$-{>XZ(FNNYAU zHq>o)^u7WB8yf01Z*uhF-m{@@^QP^RLyi$oyz8PoY&XKJo>giD5~`i@)CgqnXQvtu z5qdfm0A_-cK$P=0Uh`kTCwU~*Gp*u(xPmOrxUIzAYvvXeYFES~@vzCunmz-z`rv zB__G#1isL+pq8F$Dh0N_B%dbgvOascZ)9KCpetzYEmodf{SxN@_b@43${ zEe>z;T7-aP%tfJeYt*-G&Yu)V~kbS2XLp$>g2>v&~We6!X_e4G1lUf6T3QrRqluos?|-+_mrbw z#86Lpu^A}JjH!Y@;|-`ZnbM?aC>@=63M2OVZp1(ajZ?SnjXiaAXsfbjt7HQ zKE;^!=Q+kIqWbyOtbE>z)wFAP_O$Phr8oh!jGF<*LMk4Zp&N*iNOrX+!@YQmcI75xdc;E~GY)fHzq*0HhfAn_KES!vfAYS- z(g8wocf>qkQ+4&d?$S*S&1LR2tJbVq<6d1}zP5aA#cFrymdAFwANY~vu7CUq|1*Yk zp`!fIv)Iq0H-Ir~*oj6G7 z2{n{ml19UXQXYWlvJ2UEn|>EpKgljpuV%YcSB~9=*B6(%GN;6*U(MC#oDv(}gEjTJ zoRYM}0HFyUpkCdd<5bV&*lp_~gsxLR$SFy|53@c~{jD=cwdeA-`b>b;YH@A}_qx@Gn;y|tF92ZM8@icr7+^kS4jl06f7m_=06W#D{35PK zeLBC0bE}8*o#|cXD6^OYxT+537jY-l%lXdT$r0-Nc&Wk>%G7H>y#s`v(g!CyY~^6S zu)O6udx8TPc#%*Xpq79gdN_d61BAY5;zPJzA+*87NAWyVn+l35@X}pla)&tpyc{OS zwTm3UQ~iX#WXk`>VO=5xMcj;fwxFnq^b`7^DJ!rTvsQBLN(;b_5TO;Oe2oQwDujMu z;#vzp=?g|3G2(jES1Vl3-O1rlw0t|qXDt9Y9pE5>D}ts+tP>B{*-;C?kn_I8?mMNB#w9b2?@K diff --git a/scripts/basic/split-include b/scripts/basic/split-include index e8361c80dc85b8a06f3f6e6a65e28c55535ac164..b1f790e942bd526a53aebd0003ce5f59bfbe03b7 100755 GIT binary patch delta 3768 zcmb_fdu&tJ8UNkuo8%fCUpsaZ5|C^{7%(w#NHU-TmNrR4r9xc;Nf;Xs1*WSm-6+^q zgaD_rU1E%@psPx#TjH`#n$#gi$CpDMq*Q7W7Qs2i_}inia}7Jl#q}!edpdA z9_=5Swn*{k-}%n>`kjZ*cYS?&L$6=he{x~R`hXLl{{jGT0Rjvh=$B;r-zWe<0Vp)} zB7i0*(9|!`fv+5qhZ=3j=rv4cdr%e2m ziRYXC(g37Gxy3NC5mKMWC9b4OmK20+y33 z00JZnfjW{!z#5V=u#Ti1XdpQUXd>wVHj*p`o+ar7f+Q70v6a5KfOe8@;5#HsfZZfL zz+RGGKqXlYY)gI?%gg#J0-*neKHe(=Mn}Nvy%|Yni|1t|nTlqMsT7sI=00JJvBgx9 zO1j(_$5dKWbZ4-m=fDZ=Mw7^}IlGkHDs>8;?_klK`% zWcAhwNq)Xny{xS-D&PA1av+q7O*6(4Lt&APweJ`m>Fw<`7N~puVOof=GVV*ijM$L$ zR+yIO>S+=wSK?}9JX=6hgwc`Ygkf{KK|5FE6&kcZ6!{!^SL}#vOEo)`#E^EQs8Tqp z$+9oHd4{pr`>w=LGC?GV=g0C6HW+4%>9r43os6+aoi5BUmI@?Cf-DkO$I_C_>gf#X zqxTt0*0!@qw|@3MW0$0Ax<2#+=dbLnGF)-Y><{jzdvQF!!OnRW9`(DQX_Qty2_PGd|Ut;*G?TCr!qe# zG6yNJ{%gx;azu&ChS#9!@L3~nogTM5D~W#zobE09Zp%-HhF+ixvHlnS^t4$o=kKR;ql+nioH(7X2m(_143_z4U)## zh^_jImVpxgwg5yqL;Ow{q|Klowe*oosf#o|{Ts6W{OlK3QhnTQQ^gE|>E@nb>kBqr znVlX;HUBCx6h3K@*Qy`1bYX8S?+EIR7FOas)LZu$i>3l?)(J?Cm}lVo_vj34Hz>}% zG0j*ndA%V3ZTiflwZif1(~Rjm?|t<_`WknVTvwgjKF!#`${ewnl`4^L?s+~Kdcme| zrTF|fL|n!`$V!zf8*?`ex_LZv3mmtChX1PHoTPxEFJ=Aiq;YcjrpbLq#nOQ#^7XeZ z`$$!K-<=&hYle1>j)Yi1jXGYNJ^C+CGL{>dVoX25Lwxyi*vdm(lB%z#B{>(HVvOHu zZLM2kd52EFCp%slDJcQ;^LH6b$LMNKYxJ3HzO`(uW@7lRxHfyREcsz_f_cxUHrO+9qIjSyr7qP-`gCU zVUaI%dMH>vcw$>Z7wExrnm)$o&}BO=v9Xjbc9%u&(4D+Zd$CxV8|3_K-!VD@?O5?i z;fz+{TrIjXTF7}+Xwt4YJEH6QB^fP^jZgTOwrt+E%wM~rZbhwsRUl9wShZ@ke`#pn zUjN2DVPpIot5z+;|8;is5$7wu*HQc51^8brs{fOk2UM3R40O6L3qp^!*5k9ENlWsX zVxUsnnL<(B-y2C{oX2jXGW4c6~Ms_ z|LJuU&~IFqcEh`*pi2S#+QJf#w!G9OoYK~pE)mAGeWgo;-CDYIJW9#aj<%tg1Sow2 zJ2|H04XkiX6&RSFO#tO@U^mB9gn{X0ZM?P(?BSRSF|e0J6{rqlpp;LbVhmiyahFz6 z{=+A&umW88`a@v_xIynNE3AMLGy|YF2AK;e;}7%0+Gx2?cvH)j`<|>bQzTz;0DRN) zxo(^UW=j^JAoG~-UjXRQo|#v>&}ts;JXE9`9^B_yQ!~*wZ+?{MG#>m;)YB6KfYo5M znAmDC=!b&-EZiwzmTs4Ln;j8={bpTmu?)urfF5PkXq3Q#H%xo0A$eDTwz{IU#%f6Z zXzHzoFEid`yz73XELira!BTIsKTw^CD;`M7aY$%5YHxti4)-VvJZ0%(my+V-9kr-fDv; zA4>=}%x*n5N>OG5x=nH^;rTX7eI;i5rscLrEB=-Zxct!SZngoPTCQ@D^N`tT^>B-U J%K4XU{|3yv19kua literal 7905 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 TdDmmUC4$QYR|xX$k@fu#Ga3Eo diff --git a/scripts/kconfig/mconf.o b/scripts/kconfig/mconf.o index 1e30d90363ae7d225f3bd0b9f52e51f153d44102..5c13a3e596aff4a56591edb302320e3ab8e466b1 100644 GIT binary patch literal 21572 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 literal 21836 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 literal 78736 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 WI