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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%0AQDo|EmLl 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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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 DW+&@S diff --git a/scripts/kconfig/zconf.tab.o b/scripts/kconfig/zconf.tab.o index 5c394105348585af58cd00a776e6aa2f7d76690f..d64063af3cd1de121edde6c1aa5f3b06e28150f8 100644 GIT binary patch literal 79176 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 V-Rx!dG5eYW%pvA*bEH{d{vYcFfG+?5 literal 78736 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