[kernel/f15] Linux 3.2.9

Justin M. Forbes jforbes at fedoraproject.org
Thu Mar 1 22:46:13 UTC 2012


commit 48010561b5bb5a68942db94b6918cd0a594ff915
Author: Justin M. Forbes <jforbes at redhat.com>
Date:   Thu Mar 1 16:46:04 2012 -0600

    Linux 3.2.9

 kernel.spec                       |   15 ++----
 linux-2.6-i386-nx-emulation.patch |   98 ++++++++++++++++++++++++-------------
 sources                           |    2 +-
 utrace.patch                      |    2 +-
 4 files changed, 71 insertions(+), 46 deletions(-)
---
diff --git a/kernel.spec b/kernel.spec
index f3838b6..402cc24 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -42,7 +42,7 @@ Summary: The Linux kernel
 # When changing real_sublevel below, reset this by hand to 1
 # (or to 0 and then use rpmdev-bumpspec).
 #
-%global baserelease 4
+%global baserelease 1
 %global fedora_build %{baserelease}
 
 # real_sublevel is the 3.x kernel version we're starting with
@@ -51,7 +51,7 @@ Summary: The Linux kernel
 %define fake_sublevel %(echo $((40 + %{real_sublevel})))
 
 # Do we have a -stable update to apply?
-%define stable_update 7
+%define stable_update 9
 # Is it a -stable RC?
 %define stable_rc 0
 # Set rpm version accordingly
@@ -644,8 +644,6 @@ Patch12016: disable-i8042-check-on-apple-mac.patch
 
 Patch12026: bsg-fix-sysfs-link-remove-warning.patch
 
-Patch12030: epoll-limit-paths.patch
-
 Patch12303: dmar-disable-when-ricoh-multifunction.patch
 
 Patch13002: revert-efi-rtclock.patch
@@ -669,8 +667,6 @@ Patch21004: arm-tegra-nvec-kconfig.patch
 #rhbz 717735
 Patch21045: nfs-client-freezer.patch
 
-Patch21046: nfs-oops-getacl.patch
-
 #rhbz 590880
 Patch21050: alps.patch
 
@@ -1266,8 +1262,6 @@ ApplyOptionalPatch linux-2.6-v4l-dvb-experimental.patch
 
 ApplyPatch disable-i8042-check-on-apple-mac.patch
 
-ApplyPatch epoll-limit-paths.patch
-
 ApplyPatch bsg-fix-sysfs-link-remove-warning.patch
 
 # rhbz#605888
@@ -1295,8 +1289,6 @@ ApplyPatch hpsa-add-irqf-shared.patch
 #rhbz 717735
 ApplyPatch nfs-client-freezer.patch
 
-ApplyPatch nfs-oops-getacl.patch
-
 #rhbz 590880
 ApplyPatch alps.patch
 
@@ -1990,6 +1982,9 @@ fi
 # and build.
 
 %changelog
+* Thu Mar 01 2012 Justin M. Forbes <jforbes at redhat.com> 2.6.42.9-1
+- Linux 3.2.9
+
 * Thu Mar 01 2012 Dave Jones <davej at redhat.com>
 - Temporarily enable CONFIG_DEBUG_PAGEALLOC in -debug builds to help track
   down some long-standing bugs.
diff --git a/linux-2.6-i386-nx-emulation.patch b/linux-2.6-i386-nx-emulation.patch
index 07a0fae..d97d529 100644
--- a/linux-2.6-i386-nx-emulation.patch
+++ b/linux-2.6-i386-nx-emulation.patch
@@ -1,3 +1,5 @@
+diff --git a/arch/x86/include/asm/desc.h b/arch/x86/include/asm/desc.h
+index 41935fa..6e9259b 100644
 --- a/arch/x86/include/asm/desc.h
 +++ b/arch/x86/include/asm/desc.h
 @@ -5,6 +5,7 @@
@@ -44,6 +46,8 @@
 +#endif /* CONFIG_X86_32 */
 +
  #endif /* _ASM_X86_DESC_H */
+diff --git a/arch/x86/include/asm/mmu.h b/arch/x86/include/asm/mmu.h
+index 5f55e69..aba94f0 100644
 --- a/arch/x86/include/asm/mmu.h
 +++ b/arch/x86/include/asm/mmu.h
 @@ -7,6 +7,9 @@
@@ -68,9 +72,11 @@
  } mm_context_t;
  
  #ifdef CONFIG_SMP
+diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
+index a7d2db9..cc4ad60 100644
 --- a/arch/x86/include/asm/paravirt.h
 +++ b/arch/x86/include/asm/paravirt.h
-@@ -289,6 +289,12 @@ static inline void set_ldt(const void *addr, unsigned entries)
+@@ -298,6 +298,12 @@ static inline void set_ldt(const void *addr, unsigned entries)
  {
  	PVOP_VCALL2(pv_cpu_ops.set_ldt, addr, entries);
  }
@@ -83,9 +89,11 @@
  static inline void store_gdt(struct desc_ptr *dtr)
  {
  	PVOP_VCALL1(pv_cpu_ops.store_gdt, dtr);
+diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
+index 8e8b9a4..cca421e 100644
 --- a/arch/x86/include/asm/paravirt_types.h
 +++ b/arch/x86/include/asm/paravirt_types.h
-@@ -118,6 +118,9 @@ struct pv_cpu_ops {
+@@ -125,6 +125,9 @@ struct pv_cpu_ops {
  	void (*store_gdt)(struct desc_ptr *);
  	void (*store_idt)(struct desc_ptr *);
  	void (*set_ldt)(const void *desc, unsigned entries);
@@ -95,9 +103,11 @@
  	unsigned long (*store_tr)(void);
  	void (*load_tls)(struct thread_struct *t, unsigned int cpu);
  #ifdef CONFIG_X86_64
+diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
+index aa003b1..c094152 100644
 --- a/arch/x86/kernel/cpu/common.c
 +++ b/arch/x86/kernel/cpu/common.c
-@@ -802,6 +802,22 @@ static void __cpuinit identify_cpu(struct cpuinfo_x86 *c)
+@@ -844,6 +844,22 @@ static void __cpuinit identify_cpu(struct cpuinfo_x86 *c)
  	/* Filter out anything that depends on CPUID levels we don't have */
  	filter_cpuid_features(c, true);
  
@@ -120,9 +130,11 @@
  	/* If the model name is still unset, do table lookup. */
  	if (!c->x86_model_id[0]) {
  		const char *p;
+diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
+index d90272e..cc594fc 100644
 --- a/arch/x86/kernel/paravirt.c
 +++ b/arch/x86/kernel/paravirt.c
-@@ -345,6 +345,9 @@ struct pv_cpu_ops pv_cpu_ops = {
+@@ -358,6 +358,9 @@ struct pv_cpu_ops pv_cpu_ops = {
  	.read_tscp = native_read_tscp,
  	.load_tr_desc = native_load_tr_desc,
  	.set_ldt = native_set_ldt,
@@ -132,9 +144,11 @@
  	.load_gdt = native_load_gdt,
  	.load_idt = native_load_idt,
  	.store_gdt = native_store_gdt,
+diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
+index 8598296..641ae48 100644
 --- a/arch/x86/kernel/process_32.c
 +++ b/arch/x86/kernel/process_32.c
-@@ -243,7 +243,10 @@ int copy_thread(unsigned long clone_flags, unsigned long sp,
+@@ -247,7 +247,10 @@ int copy_thread(unsigned long clone_flags, unsigned long sp,
  void
  start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp)
  {
@@ -145,7 +159,7 @@
  	regs->fs		= 0;
  	regs->ds		= __USER_DS;
  	regs->es		= __USER_DS;
-@@ -252,6 +255,11 @@ start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp)
+@@ -255,6 +258,11 @@ start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp)
  	regs->cs		= __USER_CS;
  	regs->ip		= new_ip;
  	regs->sp		= new_sp;
@@ -157,17 +171,17 @@
  	/*
  	 * Free the old FP and other extended state
  	 */
-@@ -311,6 +319,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
- 	if (preload_fpu)
- 		prefetch(next->fpu.state);
+@@ -320,6 +328,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
+ 	 */
+ 	lazy_save_gs(prev->gs);
  
 +	if (next_p->mm)
 +		load_user_cs_desc(cpu, next_p->mm);
 +
  	/*
- 	 * Reload esp0.
+ 	 * Load the per-thread Thread-Local Storage descriptor.
  	 */
-@@ -404,3 +415,40 @@ unsigned long get_wchan(struct task_struct *p)
+@@ -390,3 +401,40 @@ unsigned long get_wchan(struct task_struct *p)
  	return 0;
  }
  
@@ -208,9 +222,11 @@
 +	mm->context.exec_limit = 0;
 +	set_user_cs(&mm->context.user_cs, 0);
 +}
+diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
+index 31d9d0f..f7c210d 100644
 --- a/arch/x86/kernel/traps.c
 +++ b/arch/x86/kernel/traps.c
-@@ -109,6 +109,78 @@ static inline void preempt_conditional_cli(struct pt_regs *regs)
+@@ -107,6 +107,78 @@ static inline void preempt_conditional_cli(struct pt_regs *regs)
  	dec_preempt_count();
  }
  
@@ -289,7 +305,7 @@
  static void __kprobes
  do_trap(int trapnr, int signr, char *str, struct pt_regs *regs,
  	long error_code, siginfo_t *info)
-@@ -265,6 +337,29 @@ do_general_protection(struct pt_regs *regs, long error_code)
+@@ -263,6 +335,29 @@ do_general_protection(struct pt_regs *regs, long error_code)
  	if (!user_mode(regs))
  		goto gp_in_kernel;
  
@@ -319,7 +335,7 @@
  	tsk->thread.error_code = error_code;
  	tsk->thread.trap_no = 13;
  
-@@ -792,19 +887,37 @@ do_device_not_available(struct pt_regs *regs, long error_code)
+@@ -649,19 +744,37 @@ do_device_not_available(struct pt_regs *regs, long error_code)
  }
  
  #ifdef CONFIG_X86_32
@@ -366,6 +382,8 @@
  }
  #endif
  
+diff --git a/arch/x86/mm/setup_nx.c b/arch/x86/mm/setup_nx.c
+index 410531d..eb040ad 100644
 --- a/arch/x86/mm/setup_nx.c
 +++ b/arch/x86/mm/setup_nx.c
 @@ -1,3 +1,4 @@
@@ -373,16 +391,16 @@
  #include <linux/spinlock.h>
  #include <linux/errno.h>
  #include <linux/init.h>
-@@ -6,7 +6,7 @@
+@@ -5,7 +6,7 @@
  #include <asm/pgtable.h>
  #include <asm/proto.h>
-
+ 
 -static int disable_nx __cpuinitdata;
 +int disable_nx __cpuinitdata;
-
+ 
  /*
   * noexec = on|off
-@@ -40,6 +42,10 @@ void __cpuinit x86_configure_nx(void)
+@@ -40,6 +41,10 @@ void __cpuinit x86_configure_nx(void)
  void __init x86_report_nx(void)
  {
  	if (!cpu_has_nx) {
@@ -393,9 +411,11 @@
  		printk(KERN_NOTICE "Notice: NX (Execute Disable) protection "
  		       "missing in CPU!\n");
  	} else {
+diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c
+index d6c0418..c15b765 100644
 --- a/arch/x86/mm/tlb.c
 +++ b/arch/x86/mm/tlb.c
-@@ -6,6 +6,7 @@
+@@ -7,6 +7,7 @@
  #include <linux/module.h>
  #include <linux/cpu.h>
  
@@ -403,7 +423,7 @@
  #include <asm/tlbflush.h>
  #include <asm/mmu_context.h>
  #include <asm/cache.h>
-@@ -131,6 +132,12 @@ void smp_invalidate_interrupt(struct pt_regs *regs)
+@@ -134,6 +135,12 @@ void smp_invalidate_interrupt(struct pt_regs *regs)
  	union smp_flush_state *f;
  
  	cpu = smp_processor_id();
@@ -416,9 +436,11 @@
  	/*
  	 * orig_rax contains the negated interrupt vector.
  	 * Use that to determine where the sender put the data.
+diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+index 1f92865..b8f4319 100644
 --- a/arch/x86/xen/enlighten.c
 +++ b/arch/x86/xen/enlighten.c
-@@ -335,6 +335,24 @@ static void xen_set_ldt(const void *addr, unsigned entries)
+@@ -354,6 +354,24 @@ static void xen_set_ldt(const void *addr, unsigned entries)
  	xen_mc_issue(PARAVIRT_LAZY_CPU);
  }
  
@@ -443,7 +465,7 @@
  static void xen_load_gdt(const struct desc_ptr *dtr)
  {
  	unsigned long va = dtr->address;
-@@ -961,6 +979,9 @@ static const struct pv_cpu_ops xen_cpu_ops __initdata = {
+@@ -994,6 +1012,9 @@ static const struct pv_cpu_ops xen_cpu_ops __initconst = {
  
  	.load_tr_desc = paravirt_nop,
  	.set_ldt = xen_set_ldt,
@@ -453,9 +475,11 @@
  	.load_gdt = xen_load_gdt,
  	.load_idt = xen_load_idt,
  	.load_tls = xen_load_tls,
+diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
+index 21ac5ee..3f26963 100644
 --- a/fs/binfmt_elf.c
 +++ b/fs/binfmt_elf.c
-@@ -717,6 +722,15 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
+@@ -711,6 +711,15 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
  	if (retval)
  		goto out_free_dentry;
  
@@ -471,9 +495,11 @@
  	/* OK, This is the point of no return */
  	current->flags &= ~PF_FORKNOEXEC;
  	current->mm->def_flags = def_flags;
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index 1c4f3e9..52011a7 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -101,6 +101,9 @@ struct bio_list;
+@@ -102,6 +102,9 @@ struct fs_struct;
  struct perf_event_context;
  struct blk_plug;
  
@@ -483,9 +509,11 @@
  /*
   * List of flags we want to share for kernel threads,
   * if only because they are not used by them anyway.
---- b/mm/mmap.c
+diff --git a/mm/mmap.c b/mm/mmap.c
+index eae90af..f4de6c0 100644
+--- a/mm/mmap.c
 +++ b/mm/mmap.c
-@@ -44,6 +45,18 @@
+@@ -46,6 +46,18 @@
  #define arch_rebalance_pgtables(addr, len)		(addr)
  #endif
  
@@ -504,7 +532,7 @@
  static void unmap_region(struct mm_struct *mm,
  		struct vm_area_struct *vma, struct vm_area_struct *prev,
  		unsigned long start, unsigned long end);
-@@ -432,6 +432,8 @@ __vma_link(struct mm_struct *mm, struct vm_area_struct *vma,
+@@ -424,6 +436,8 @@ __vma_link(struct mm_struct *mm, struct vm_area_struct *vma,
  	struct vm_area_struct *prev, struct rb_node **rb_link,
  	struct rb_node *rb_parent)
  {
@@ -513,7 +541,7 @@
  	__vma_link_list(mm, vma, prev, rb_parent);
  	__vma_link_rb(mm, vma, rb_link, rb_parent);
  }
-@@ -489,6 +504,8 @@
+@@ -478,6 +492,8 @@ __vma_unlink(struct mm_struct *mm, struct vm_area_struct *vma,
  	rb_erase(&vma->vm_rb, &mm->mm_rb);
  	if (mm->mmap_cache == vma)
  		mm->mmap_cache = prev;
@@ -522,7 +550,7 @@
  }
  
  /*
-@@ -790,6 +807,8 @@
+@@ -794,6 +810,8 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
  		} else					/* cases 2, 5, 7 */
  			err = vma_adjust(prev, prev->vm_start,
  				end, prev->vm_pgoff, NULL);
@@ -530,8 +558,8 @@
 +			arch_add_exec_range(mm, prev->vm_end);
  		if (err)
  			return NULL;
- 		return prev;
-@@ -1966,10 +2075,14 @@
+ 		khugepaged_enter_vma_merge(prev);
+@@ -1972,10 +1990,14 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
  	if (new->vm_ops && new->vm_ops->open)
  		new->vm_ops->open(new);
  
@@ -548,7 +576,7 @@
  		err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new);
  
  	/* Success. */
-@@ -2254,6 +2367,7 @@
+@@ -2263,6 +2285,7 @@ void exit_mmap(struct mm_struct *mm)
  
  	free_pgtables(&tlb, vma, FIRST_USER_ADDRESS, 0);
  	tlb_finish_mmu(&tlb, 0, end);
@@ -556,6 +584,8 @@
  
  	/*
  	 * Walk the list again, actually closing and freeing it,
+diff --git a/mm/mprotect.c b/mm/mprotect.c
+index 5a688a2..128d996 100644
 --- a/mm/mprotect.c
 +++ b/mm/mprotect.c
 @@ -25,9 +25,14 @@
@@ -573,7 +603,7 @@
  #ifndef pgprot_modify
  static inline pgprot_t pgprot_modify(pgprot_t oldprot, pgprot_t newprot)
  {
-@@ -138,7 +143,7 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
+@@ -148,7 +153,7 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
  	struct mm_struct *mm = vma->vm_mm;
  	unsigned long oldflags = vma->vm_flags;
  	long nrpages = (end - start) >> PAGE_SHIFT;
@@ -582,7 +612,7 @@
  	pgoff_t pgoff;
  	int error;
  	int dirty_accountable = 0;
-@@ -203,6 +208,9 @@ success:
+@@ -213,6 +218,9 @@ success:
  		dirty_accountable = 1;
  	}
  
diff --git a/sources b/sources
index 8a47cc8..14e00fa 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
 364066fa18767ec0ae5f4e4abcf9dc51  linux-3.2.tar.xz
-e507fce2c266549df9565172196c912d  patch-3.2.7.xz
+3916159a999ee49cd6bd002556c629ad  patch-3.2.9.xz
diff --git a/utrace.patch b/utrace.patch
index 060d351..5f678e5 100644
--- a/utrace.patch
+++ b/utrace.patch
@@ -3962,9 +3962,9 @@ index ba0d172..b8719c2 100644
 --- a/kernel/fork.c
 +++ b/kernel/fork.c
 @@ -66,6 +66,7 @@
- #include <linux/user-return-notifier.h>
  #include <linux/oom.h>
  #include <linux/khugepaged.h>
+ #include <linux/signalfd.h>
 +#include <linux/utrace.h>
  
  #include <asm/pgtable.h>


More information about the scm-commits mailing list