The patch titled revert x86_64-mm-i386-pda-use-gs has been added to the -mm tree. Its filename is revert-x86_64-mm-i386-pda-use-gs.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: revert x86_64-mm-i386-pda-use-gs From: Andrew Morton <akpm@xxxxxxxx> Cc: Jeremy Fitzhardinge <jeremy@xxxxxxxx> Cc: Andi Kleen <ak@xxxxxx> Cc: Chuck Ebbert <76306.1226@xxxxxxxxxxxxxx> Cc: Zachary Amsden <zach@xxxxxxxxxx> Cc: Jan Beulich <jbeulich@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- arch/i386/kernel/asm-offsets.c | 1 arch/i386/kernel/cpu/common.c | 21 -------- arch/i386/kernel/entry.S | 81 ++++++++++++------------------- arch/i386/kernel/process.c | 27 +++++----- arch/i386/kernel/signal.c | 6 +- include/asm-i386/mmu_context.h | 4 - include/asm-i386/processor.h | 4 - include/asm-i386/ptrace.h | 2 kernel/fork.c | 2 9 files changed, 57 insertions(+), 91 deletions(-) diff -puN arch/i386/kernel/asm-offsets.c~revert-x86_64-mm-i386-pda-use-gs arch/i386/kernel/asm-offsets.c --- a/arch/i386/kernel/asm-offsets.c~revert-x86_64-mm-i386-pda-use-gs +++ a/arch/i386/kernel/asm-offsets.c @@ -68,7 +68,6 @@ void foo(void) OFFSET(PT_EAX, pt_regs, eax); OFFSET(PT_DS, pt_regs, xds); OFFSET(PT_ES, pt_regs, xes); - OFFSET(PT_GS, pt_regs, xgs); OFFSET(PT_ORIG_EAX, pt_regs, orig_eax); OFFSET(PT_EIP, pt_regs, eip); OFFSET(PT_CS, pt_regs, xcs); diff -puN arch/i386/kernel/cpu/common.c~revert-x86_64-mm-i386-pda-use-gs arch/i386/kernel/cpu/common.c --- a/arch/i386/kernel/cpu/common.c~revert-x86_64-mm-i386-pda-use-gs +++ a/arch/i386/kernel/cpu/common.c @@ -601,14 +601,6 @@ union { char pad[ALIGN(sizeof(struct i386_pda), SMP_CACHE_BYTES)]; } boot_pda __cacheline_aligned_in_smp; -/* Make sure %gs is initialized properly in idle threads */ -struct pt_regs * __devinit idle_regs(struct pt_regs *regs) -{ - memset(regs, 0, sizeof(struct pt_regs)); - regs->xgs = __KERNEL_PDA; - return regs; -} - __cpuinit int alloc_gdt(int cpu) { struct Xgt_desc_struct *cpu_gdt_descr = &per_cpu(cpu_gdt_descr, cpu); @@ -655,14 +647,6 @@ static __cpuinit void pda_init(int cpu, pda->pcurrent = curr; } -static inline void set_kernel_gs(void) -{ - /* Set %gs for this CPU's PDA. Memory clobber is to create a - barrier with respect to any PDA operations, so the compiler - doesn't move any before here. */ - asm volatile ("mov %0, %%gs" : : "r" (__KERNEL_PDA) : "memory"); -} - /* Initialize the CPU's GDT and PDA */ static __cpuinit void init_gdt(void) { @@ -706,7 +690,6 @@ static __cpuinit void init_gdt(void) 0x80 | DESCTYPE_S | 0x2, 0); /* present read-write data segment */ load_gdt(cpu_gdt_descr); - set_kernel_gs(); /* Do this once everything GDT-related has been set up. */ pda_init(cpu, curr); @@ -770,8 +753,8 @@ void __cpuinit cpu_init(void) __set_tss_desc(cpu, GDT_ENTRY_DOUBLEFAULT_TSS, &doublefault_tss); #endif - /* Clear %fs. */ - asm volatile ("mov %0, %%fs" : : "r" (0)); + /* Clear %fs and %gs. */ + asm volatile ("movl %0, %%fs; movl %0, %%gs" : : "r" (0)); /* Clear all 6 debug registers: */ set_debugreg(0, 0); diff -puN arch/i386/kernel/entry.S~revert-x86_64-mm-i386-pda-use-gs arch/i386/kernel/entry.S --- a/arch/i386/kernel/entry.S~revert-x86_64-mm-i386-pda-use-gs +++ a/arch/i386/kernel/entry.S @@ -30,13 +30,12 @@ * 18(%esp) - %eax * 1C(%esp) - %ds * 20(%esp) - %es - * 24(%esp) - %gs - * 28(%esp) - orig_eax - * 2C(%esp) - %eip - * 30(%esp) - %cs - * 34(%esp) - %eflags - * 38(%esp) - %oldesp - * 3C(%esp) - %oldss + * 24(%esp) - orig_eax + * 28(%esp) - %eip + * 2C(%esp) - %cs + * 30(%esp) - %eflags + * 34(%esp) - %oldesp + * 38(%esp) - %oldss * * "current" is in register %ebx during any slow entries. */ @@ -92,9 +91,6 @@ VM_MASK = 0x00020000 #define SAVE_ALL \ cld; \ - pushl %gs; \ - CFI_ADJUST_CFA_OFFSET 4;\ - /*CFI_REL_OFFSET gs, 0;*/\ pushl %es; \ CFI_ADJUST_CFA_OFFSET 4;\ /*CFI_REL_OFFSET es, 0;*/\ @@ -124,9 +120,7 @@ VM_MASK = 0x00020000 CFI_REL_OFFSET ebx, 0;\ movl $(__USER_DS), %edx; \ movl %edx, %ds; \ - movl %edx, %es; \ - movl $(__KERNEL_PDA), %edx; \ - movl %edx, %gs + movl %edx, %es; #define RESTORE_INT_REGS \ popl %ebx; \ @@ -159,22 +153,17 @@ VM_MASK = 0x00020000 2: popl %es; \ CFI_ADJUST_CFA_OFFSET -4;\ /*CFI_RESTORE es;*/\ -3: popl %gs; \ - CFI_ADJUST_CFA_OFFSET -4;\ - /*CFI_RESTORE gs;*/\ -.pushsection .fixup,"ax"; \ -4: movl $0,(%esp); \ +.section .fixup,"ax"; \ +3: movl $0,(%esp); \ jmp 1b; \ -5: movl $0,(%esp); \ +4: movl $0,(%esp); \ jmp 2b; \ -6: movl $0,(%esp); \ - jmp 3b; \ +.previous; \ .section __ex_table,"a";\ .align 4; \ - .long 1b,4b; \ - .long 2b,5b; \ - .long 3b,6b; \ -.popsection + .long 1b,3b; \ + .long 2b,4b; \ +.previous #define RING0_INT_FRAME \ CFI_STARTPROC simple;\ @@ -241,7 +230,6 @@ check_userspace: andl $(VM_MASK | SEGMENT_RPL_MASK), %eax cmpl $USER_RPL, %eax jb resume_kernel # not returning to v8086 or userspace - ENTRY(resume_userspace) DISABLE_INTERRUPTS # make sure we don't miss an interrupt # setting need_resched or sigpending @@ -336,18 +324,11 @@ sysenter_past_esp: /* if something modifies registers it must also disable sysexit */ movl PT_EIP(%esp), %edx movl PT_OLDESP(%esp), %ecx - TRACE_IRQS_ON -1: mov PT_GS(%esp), %gs xorl %ebp,%ebp + TRACE_IRQS_ON ENABLE_INTERRUPTS_SYSEXIT CFI_ENDPROC -.pushsection .fixup,"ax"; \ -2: movl $0,PT_GS(%esp); \ - jmp 1b; \ -.section __ex_table,"a";\ - .align 4; \ - .long 1b,2b; \ -.popsection + # system call handler stub ENTRY(system_call) @@ -393,7 +374,7 @@ restore_nocheck: TRACE_IRQS_IRET restore_nocheck_notrace: RESTORE_REGS - addl $4, %esp # skip orig_eax/error_code + addl $4, %esp CFI_ADJUST_CFA_OFFSET -4 1: INTERRUPT_RETURN .section .fixup,"ax" @@ -535,12 +516,14 @@ syscall_badsys: /* put ESP to the proper location */ \ movl %eax, %esp; #define UNWIND_ESPFIX_STACK \ + pushl %eax; \ CFI_ADJUST_CFA_OFFSET 4; \ movl %ss, %eax; \ /* see if on 16bit stack */ \ - cmp $__ESPFIX_SS, %eax; \ + cmpw $__ESPFIX_SS, %ax; \ je 28f; \ -27: CFI_ADJUST_CFA_OFFSET -4; \ +27: popl %eax; \ + CFI_ADJUST_CFA_OFFSET -4; \ .section .fixup,"ax"; \ 28: movl $__KERNEL_DS, %eax; \ movl %eax, %ds; \ @@ -609,15 +592,13 @@ KPROBE_ENTRY(page_fault) CFI_ADJUST_CFA_OFFSET 4 ALIGN error_code: - /* the function address is in %gs's slot on the stack */ - pushl %es - CFI_ADJUST_CFA_OFFSET 4 pushl %ds CFI_ADJUST_CFA_OFFSET 4 /*CFI_REL_OFFSET ds, 0*/ pushl %eax CFI_ADJUST_CFA_OFFSET 4 CFI_REL_OFFSET eax, 0 + xorl %eax, %eax pushl %ebp CFI_ADJUST_CFA_OFFSET 4 CFI_REL_OFFSET ebp, 0 @@ -630,6 +611,7 @@ error_code: pushl %edx CFI_ADJUST_CFA_OFFSET 4 CFI_REL_OFFSET edx, 0 + decl %eax # eax = -1 pushl %ecx CFI_ADJUST_CFA_OFFSET 4 CFI_REL_OFFSET ecx, 0 @@ -637,17 +619,21 @@ error_code: CFI_ADJUST_CFA_OFFSET 4 CFI_REL_OFFSET ebx, 0 cld + pushl %es + CFI_ADJUST_CFA_OFFSET 4 + /*CFI_REL_OFFSET es, 0*/ UNWIND_ESPFIX_STACK - movl PT_GS(%esp), %edi # get the function address + popl %ecx + CFI_ADJUST_CFA_OFFSET -4 + /*CFI_REGISTER es, ecx*/ + movl PT_ES(%esp), %edi # get the function address movl PT_ORIG_EAX(%esp), %edx # get the error code - movl $-1, PT_ORIG_EAX(%esp) # no syscall to restart - mov %gs, PT_GS(%esp) - /*CFI_REL_OFFSET gs, GS*/ + movl %eax, PT_ORIG_EAX(%esp) + movl %ecx, PT_ES(%esp) + /*CFI_REL_OFFSET es, ES*/ movl $(__USER_DS), %ecx movl %ecx, %ds movl %ecx, %es - movl $(__KERNEL_PDA), %ecx - movl %ecx, %gs movl %esp,%eax # pt_regs pointer call *%edi jmp ret_from_exception @@ -957,7 +943,6 @@ ENTRY(arch_unwind_init_running) movl %ebx, PT_EAX(%edx) movl $__USER_DS, PT_DS(%edx) movl $__USER_DS, PT_ES(%edx) - movl $0, PT_GS(%edx) movl %ebx, PT_ORIG_EAX(%edx) movl %ecx, PT_EIP(%edx) movl 12(%esp), %ecx diff -puN arch/i386/kernel/process.c~revert-x86_64-mm-i386-pda-use-gs arch/i386/kernel/process.c --- a/arch/i386/kernel/process.c~revert-x86_64-mm-i386-pda-use-gs +++ a/arch/i386/kernel/process.c @@ -56,7 +56,6 @@ #include <asm/tlbflush.h> #include <asm/cpu.h> -#include <asm/pda.h> asmlinkage void ret_from_fork(void) __asm__("ret_from_fork"); @@ -345,7 +344,6 @@ int kernel_thread(int (*fn)(void *), voi regs.xds = __USER_DS; regs.xes = __USER_DS; - regs.xgs = __KERNEL_PDA; regs.orig_eax = -1; regs.eip = (unsigned long) kernel_thread_helper; regs.xcs = __KERNEL_CS | get_kernel_rpl(); @@ -431,6 +429,7 @@ int copy_thread(int nr, unsigned long cl p->thread.eip = (unsigned long) ret_from_fork; savesegment(fs,p->thread.fs); + savesegment(gs,p->thread.gs); tsk = current; if (unlikely(test_tsk_thread_flag(tsk, TIF_IO_BITMAP))) { @@ -654,16 +653,16 @@ struct task_struct fastcall * __switch_t load_esp0(tss, next); /* - * Save away %fs. No need to save %gs, as it was saved on the - * stack on entry. No need to save %es and %ds, as those are - * always kernel segments while inside the kernel. Doing this - * before setting the new TLS descriptors avoids the situation - * where we temporarily have non-reloadable segments in %fs - * and %gs. This could be an issue if the NMI handler ever - * used %fs or %gs (it does not today), or if the kernel is - * running inside of a hypervisor layer. + * Save away %fs and %gs. No need to save %es and %ds, as + * those are always kernel segments while inside the kernel. + * Doing this before setting the new TLS descriptors avoids + * the situation where we temporarily have non-reloadable + * segments in %fs and %gs. This could be an issue if the + * NMI handler ever used %fs or %gs (it does not today), or + * if the kernel is running inside of a hypervisor layer. */ savesegment(fs, prev->fs); + savesegment(gs, prev->gs); /* * Load the per-thread Thread-Local Storage descriptor. @@ -671,14 +670,16 @@ struct task_struct fastcall * __switch_t load_TLS(next, cpu); /* - * Restore %fs if needed. + * Restore %fs and %gs if needed. * - * Glibc normally makes %fs be zero. + * Glibc normally makes %fs be zero, and %gs is one of + * the TLS segments. */ if (unlikely(prev->fs | next->fs)) loadsegment(fs, next->fs); - write_pda(pcurrent, next_p); + if (prev->gs | next->gs) + loadsegment(gs, next->gs); /* * Restore IOPL if needed. diff -puN arch/i386/kernel/signal.c~revert-x86_64-mm-i386-pda-use-gs arch/i386/kernel/signal.c --- a/arch/i386/kernel/signal.c~revert-x86_64-mm-i386-pda-use-gs +++ a/arch/i386/kernel/signal.c @@ -128,7 +128,7 @@ restore_sigcontext(struct pt_regs *regs, X86_EFLAGS_TF | X86_EFLAGS_SF | X86_EFLAGS_ZF | \ X86_EFLAGS_AF | X86_EFLAGS_PF | X86_EFLAGS_CF) - COPY_SEG(gs); + GET_SEG(gs); GET_SEG(fs); COPY_SEG(es); COPY_SEG(ds); @@ -244,7 +244,9 @@ setup_sigcontext(struct sigcontext __use { int tmp, err = 0; - err |= __put_user(regs->xgs, (unsigned int __user *)&sc->gs); + tmp = 0; + savesegment(gs, tmp); + err |= __put_user(tmp, (unsigned int __user *)&sc->gs); savesegment(fs, tmp); err |= __put_user(tmp, (unsigned int __user *)&sc->fs); diff -puN include/asm-i386/mmu_context.h~revert-x86_64-mm-i386-pda-use-gs include/asm-i386/mmu_context.h --- a/include/asm-i386/mmu_context.h~revert-x86_64-mm-i386-pda-use-gs +++ a/include/asm-i386/mmu_context.h @@ -62,8 +62,8 @@ static inline void switch_mm(struct mm_s #endif } -#define deactivate_mm(tsk, mm) \ - asm("movl %0,%%fs": :"r" (0)); +#define deactivate_mm(tsk, mm) \ + asm("movl %0,%%fs ; movl %0,%%gs": :"r" (0)) #define activate_mm(prev, next) \ switch_mm((prev),(next),NULL) diff -puN include/asm-i386/processor.h~revert-x86_64-mm-i386-pda-use-gs include/asm-i386/processor.h --- a/include/asm-i386/processor.h~revert-x86_64-mm-i386-pda-use-gs +++ a/include/asm-i386/processor.h @@ -479,7 +479,6 @@ struct thread_struct { .vm86_info = NULL, \ .sysenter_cs = __KERNEL_CS, \ .io_bitmap_ptr = NULL, \ - .gs = __KERNEL_PDA, \ } /* @@ -507,8 +506,7 @@ static inline void load_esp0(struct tss_ } #define start_thread(regs, new_eip, new_esp) do { \ - __asm__("movl %0,%%fs": :"r" (0)); \ - regs->xgs = 0; \ + __asm__("movl %0,%%fs ; movl %0,%%gs": :"r" (0)); \ set_fs(USER_DS); \ regs->xds = __USER_DS; \ regs->xes = __USER_DS; \ diff -puN include/asm-i386/ptrace.h~revert-x86_64-mm-i386-pda-use-gs include/asm-i386/ptrace.h --- a/include/asm-i386/ptrace.h~revert-x86_64-mm-i386-pda-use-gs +++ a/include/asm-i386/ptrace.h @@ -33,8 +33,6 @@ struct pt_regs { long eax; int xds; int xes; - /* int xfs; */ - int xgs; long orig_eax; long eip; int xcs; diff -puN kernel/fork.c~revert-x86_64-mm-i386-pda-use-gs kernel/fork.c --- a/kernel/fork.c~revert-x86_64-mm-i386-pda-use-gs +++ a/kernel/fork.c @@ -1303,7 +1303,7 @@ fork_out: return ERR_PTR(retval); } -noinline struct pt_regs * __devinit __attribute__((weak)) idle_regs(struct pt_regs *regs) +struct pt_regs * __devinit __attribute__((weak)) idle_regs(struct pt_regs *regs) { memset(regs, 0, sizeof(struct pt_regs)); return regs; _ Patches currently in -mm which might be from akpm@xxxxxxxx are origin.patch git-acpi.patch acpi-asus-s3-resume-fix.patch sony_apci-resume.patch kauditd_thread-warning-fix.patch git-block.patch git-block-fixup.patch git-block-hack.patch scsi-device_reprobe-can-fail.patch git-drm.patch git-dvb.patch git-dvb-fixup.patch git-geode-fixup.patch git-gfs2.patch git-gfs2-fixup.patch git-ia64.patch git-ieee1394.patch git-intelfb-fixup.patch git-kbuild.patch hdrcheck-permission-fix.patch git-libata-all.patch 1-of-2-jmicron-driver-fix.patch via-pata-controller-xfer-fixes-fix.patch mmc-driver-for-ti-flashmedia-card-reader-source-tidy.patch git-netdev-all.patch git-netdev-all-fixup.patch drivers-net-ns83820c-add-paramter-to-disable-auto.patch revert-allow-file-systems-to-manually-d_move-inside-of-rename.patch git-ocfs2.patch revert-genirq-core-fix-handle_level_irq.patch git-parisc-fixup.patch git-parisc-powerpc-fix.patch git-pcmcia-fixup.patch git-serial.patch git-serial-fixup.patch tickle-nmi-watchdog-on-serial-output-fix.patch serial-fix-uart_bug_txen-test.patch pcie-check-and-return-bus_register-errors-fix.patch revert-scsi-improve-inquiry-printing.patch git-block-vs-git-sas.patch git-scsi-target-fixup.patch git-scsi-target-vs-git-block.patch gregkh-usb-usb-storage-add-rio-karma-eject-support-fix.patch fix-gregkh-usb-usbcore-add-autosuspend-autoresume-infrastructure.patch xpad-dance-pad-support-tidy.patch git-watchdog.patch revert-x86_64-mm-i386-remove-lock-section.patch fix-x86_64-mm-i386-pda-smp-processorid.patch fix-x86_64-mm-spinlock-cleanup.patch revert-x86_64-mm-i386-pda-current.patch revert-x86_64-mm-i386-pda-smp-processorid.patch revert-x86_64-mm-i386-pda-vm86.patch revert-x86_64-mm-i386-pda-user-abi.patch revert-x86_64-mm-i386-pda-use-gs.patch revert-x86_64-mm-i386-pda-init-pda.patch xfs-rename-uio_read.patch adix-tree-rcu-lockless-readside-update-tidy.patch mm-tracking-shared-dirty-pages-checks.patch mm-tracking-shared-dirty-pages-wimp.patch convert-i386-numa-kva-space-to-bootmem-tidy.patch reduce-max_nr_zones-make-display-of-highmem-counters-conditional-on-config_highmem-tidy.patch reduce-max_nr_zones-use-enum-to-define-zones-reformat-and-comment-cleanup.patch reduce-max_nr_zones-use-enum-to-define-zones-reformat-and-comment-fix.patch reduce-max_nr_zones-remove-display-of-counters-for-unconfigured-zones-s390-fix.patch out-of-memory-notifier-tidy.patch mm-swap-write-failure-fixup-fix.patch slab-optimize-kmalloc_node-the-same-way-as-kmalloc-fix.patch slab-fix-lockdep-warnings-fix-2.patch have-x86-use-add_active_range-and-free_area_init_nodes-fix.patch zone_reclaim-dynamic-slab-reclaim-tidy.patch vm-add-per-zone-writeout-counter.patch convert-s390-page-handling-macros-to-functions-fix.patch slab-fix-kmalloc_node-applying-memory-policies-if-nodeid-==-numa_node_id-fix.patch gfp_thisnode-for-the-slab-allocator-v2-fix.patch get-rid-of-zone_table-fix.patch do_no_pfn-tweaks.patch shared-page-table-for-hugetlb-page-v2-tidy.patch acx1xx-wireless-driver.patch tiacx-pci-build-fix.patch tiacx-ia64-fix.patch tiacx-build-fix.patch binfmt_elf-consistently-use-loff_t.patch nommu-set-bdi-capabilities-for-dev-mem-and-dev-kmem-tidy.patch nommu-move-the-fallback-arch_vma_name-to-a-sensible-place-fix.patch convert-i386-summit-subarch-to-use-srat-info-for-apicid_to_node-calls-tidy.patch i386-adds-smp_call_function_single-fix.patch swsusp-write-timer.patch swsusp-write-speedup.patch swsusp-read-timer.patch swsusp-read-speedup.patch swsusp-read-speedup-fix.patch swsusp-read-speedup-cleanup.patch swsusp-read-speedup-cleanup-2.patch swsusp-read-speedup-fix-fix-2.patch deprecate-smbfs-in-favour-of-cifs.patch edac-new-opteron-athlon64-memory-controller-driver-tidy.patch inode_diet-replace-inodeugeneric_ip-with-inodei_private-gfs-fix.patch inode-diet-eliminate-i_blksize-and-use-a-per-superblock-default-fix-fix.patch x86-microcode-microcode-driver-cleanup-tidy.patch x86-microcode-add-sysfs-and-hotplug-support-fix.patch eisa-bus-modalias-attributes-support-1-fix-git-kbuild-fix.patch add-address_space_operationsbatch_write-fix.patch alloc_fdtable-cleanup.patch sysctl-allow-proc-sys-without-sys_sysctl-fix.patch add-probe_kernel_address.patch x86-use-probe_kernel_address-in-handle_bug.patch blockdevc-check-errors.patch let-warn_on-warn_on_once-return-the-condition-fix.patch let-warn_on-warn_on_once-return-the-condition-fix-2.patch omap-add-watchdog-driver-support-tweaks.patch move-valid_dma_direction-from-x86_64-to-generic-code-fix.patch single-bit-flip-detector-tidy.patch fix-unserialized-task-files-changing-fix.patch tty-make-termios_sem-a-mutex-fix.patch solaris-emulation-incorrect-tty-locking-fix.patch solaris-emulation-incorrect-tty-locking-fix-2.patch cpuset-top_cpuset-tracks-hotplug-changes-to-node_online_map-fix.patch remove-sound-oss-copying.patch maximum-latency-tracking-infrastructure-tidy.patch fs-nameic-replace-multiple-current-fs-by-shortcut-variable-tidy.patch call-mm-page-writebackcset_ratelimit-when-new-pages-tidy.patch sys-modules-patch-allow-full-length-section-names.patch expand_fdtable-remove-pointless-unlocklock.patch add-config_headers_check-option-to-automatically-run-make-headers_check-nobble.patch submit-checklist-mention-headers_check.patch ntp-move-all-the-ntp-related-code-to-ntpc-fix.patch reiserfs-on-demand-bitmap-loading.patch streamline-generic_file_-interfaces-and-filemap-gfs-fix.patch add-vector-aio-support-fix.patch csa-basic-accounting-over-taskstats-fix.patch fs-cache-make-kafs-use-fs-cache-fix.patch fs-cache-make-kafs-use-fs-cache-vs-streamline-generic_file_-interfaces-and-filemap.patch nfs-use-local-caching-12-fix.patch stack-overflow-safe-kdump-crash_use_safe_smp_processor_id-fix.patch generic-ioremap_page_range-x86_64-conversion-fix.patch vfs-make-filldir_t-and-struct-kstat-deal-in-64-bit-inode-numbers-alpha-fix.patch some-cleanup-in-the-pipe-code-tidy.patch support-piping-into-commands-in-proc-sys-kernel-core_pattern-fix.patch move-pidmap-to-pspaceh-fix.patch kprobes-handle-symbol-resolution-when-modulesymbol-is-specified-tidy.patch isdn-work-around-excessive-udelay.patch knfsd-add-a-callback-for-when-last-rpc-thread-finishes-tidy.patch knfsd-add-a-callback-for-when-last-rpc-thread-finishes-fix.patch knfsd-separate-out-some-parts-of-nfsd_svc-which-start-nfs-servers-tweaks.patch knfsd-define-new-nfsdfs-file-portlist-contains-list-of-ports-tidy.patch knfsd-define-new-nfsdfs-file-portlist-contains-list-of-ports-fix.patch knfsd-drop-serv-option-to-svc_recv-and-svc_process-nfs-callback-fix-nfs-callback-fix.patch knfsd-move-tempsock-aging-to-a-timer-tidy.patch sched-remove-unnecessary-sched-group-allocations-fix.patch swap_prefetch-vs-zoned-counters.patch ecryptfs-mmap-operations.patch ecryptfs-alpha-build-fix.patch ecryptfs-more-elegant-aes-key-size-manipulation.patch ecryptfs-get_sb_dev-fix.patch make-kmem_cache_destroy-return-void-ecryptfs.patch ecryptfs-versioning-fixes-tidy.patch namespaces-add-nsproxy.patch namespaces-utsname-switch-to-using-uts-namespaces.patch namespaces-utsname-switch-to-using-uts-namespaces-klibc-bit-sparc.patch namespaces-utsname-use-init_utsname-when-appropriate.patch namespaces-utsname-implement-utsname-namespaces.patch namespaces-utsname-sysctl-hack.patch ipc-namespace-core.patch rename-the-provided-execve-functions-to-kernel_execve-headers-fix.patch replace-cad_pid-by-a-struct-pid-fixes.patch readahead-sysctl-parameters-fix.patch make-copy_from_user_inatomic-not-zero-the-tail-on-i386-vs-reiser4.patch make-kmem_cache_destroy-return-void-reiser4.patch reiser4-hardirq-include-fix.patch reiser4-run-truncate_inode_pages-in-reiser4_delete_inode.patch reiser4-get_sb_dev-fix.patch reiser4-vs-zoned-allocator.patch reiser4-rename-generic_sounding_globalspatch-fix.patch hpt3xx-rework-rate-filtering-tidy.patch genirq-convert-the-i386-architecture-to-irq-chips.patch genirq-x86_64-irq-reenable-migrating-irqs-to-other-cpus.patch genirq-msi-simplify-msi-enable-and-disable.patch genirq-ia64-irq-dynamic-irq-support.patch genirq-msi-only-build-msi-apicc-on-ia64-fix.patch genirq-i386-irq-remove-the-msi-assumption-that-irq-==-vector.patch genirq-x86_64-irq-make-vector_irq-per-cpu-fix.patch genirq-x86_64-irq-make-vector_irq-per-cpu-warning-fix.patch add-hypertransport-capability-defines-fix.patch initial-generic-hypertransport-interrupt-support-Kconfig-fix.patch srcu-report-out-of-memory-errors-fixlet.patch isdn-debug-build-fix.patch isdn-more-pr_debug-fixes.patch nr_blockdev_pages-in_interrupt-warning.patch device-suspend-debug.patch slab-leaks3-default-y.patch x86-kmap_atomic-debugging.patch restore-rogue-readahead-printk.patch put_bh-debug.patch acpi_format_exception-debug.patch jmicron-warning-fix.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html