浏览代码

Merge branch 'akpm' (Andrew's patch-bomb)

Merge Andrew's remaining patches for 3.5:
 "Nine fixes"

* Merge emailed patches from Andrew Morton <akpm@linux-foundation.org>: (9 commits)
  mm: fix lost kswapd wakeup in kswapd_stop()
  m32r: make memset() global for CONFIG_KERNEL_BZIP2=y
  m32r: add memcpy() for CONFIG_KERNEL_GZIP=y
  m32r: consistently use "suffix-$(...)"
  m32r: fix 'fix breakage from "m32r: use generic ptrace_resume code"' fallout
  m32r: fix pull clearing RESTORE_SIGMASK into block_sigmask() fallout
  m32r: remove duplicate definition of PTRACE_O_TRACESYSGOOD
  mn10300: fix "pull clearing RESTORE_SIGMASK into block_sigmask()" fallout
  bootmem: make ___alloc_bootmem_node_nopanic() really nopanic
Linus Torvalds 13 年之前
父节点
当前提交
de74646c60

+ 3 - 3
arch/m32r/boot/compressed/Makefile

@@ -43,9 +43,9 @@ endif
 
 
 OBJCOPYFLAGS += -R .empty_zero_page
 OBJCOPYFLAGS += -R .empty_zero_page
 
 
-suffix_$(CONFIG_KERNEL_GZIP)	= gz
-suffix_$(CONFIG_KERNEL_BZIP2)	= bz2
-suffix_$(CONFIG_KERNEL_LZMA)	= lzma
+suffix-$(CONFIG_KERNEL_GZIP)	= gz
+suffix-$(CONFIG_KERNEL_BZIP2)	= bz2
+suffix-$(CONFIG_KERNEL_LZMA)	= lzma
 
 
 $(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix-y) FORCE
 $(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix-y) FORCE
 	$(call if_changed,ld)
 	$(call if_changed,ld)

+ 11 - 1
arch/m32r/boot/compressed/misc.c

@@ -28,7 +28,7 @@ static unsigned long free_mem_ptr;
 static unsigned long free_mem_end_ptr;
 static unsigned long free_mem_end_ptr;
 
 
 #ifdef CONFIG_KERNEL_BZIP2
 #ifdef CONFIG_KERNEL_BZIP2
-static void *memset(void *s, int c, size_t n)
+void *memset(void *s, int c, size_t n)
 {
 {
 	char *ss = s;
 	char *ss = s;
 
 
@@ -39,6 +39,16 @@ static void *memset(void *s, int c, size_t n)
 #endif
 #endif
 
 
 #ifdef CONFIG_KERNEL_GZIP
 #ifdef CONFIG_KERNEL_GZIP
+void *memcpy(void *dest, const void *src, size_t n)
+{
+	char *d = dest;
+	const char *s = src;
+	while (n--)
+		*d++ = *s++;
+
+	return dest;
+}
+
 #define BOOT_HEAP_SIZE             0x10000
 #define BOOT_HEAP_SIZE             0x10000
 #include "../../../../lib/decompress_inflate.c"
 #include "../../../../lib/decompress_inflate.c"
 #endif
 #endif

+ 0 - 3
arch/m32r/include/asm/ptrace.h

@@ -113,9 +113,6 @@ struct pt_regs {
 
 
 #define PTRACE_OLDSETOPTIONS	21
 #define PTRACE_OLDSETOPTIONS	21
 
 
-/* options set using PTRACE_SETOPTIONS */
-#define PTRACE_O_TRACESYSGOOD	0x00000001
-
 #ifdef __KERNEL__
 #ifdef __KERNEL__
 
 
 #include <asm/m32r.h>		/* M32R_PSW_BSM, M32R_PSW_BPM */
 #include <asm/m32r.h>		/* M32R_PSW_BSM, M32R_PSW_BPM */

+ 3 - 4
arch/m32r/kernel/ptrace.c

@@ -591,17 +591,16 @@ void user_enable_single_step(struct task_struct *child)
 
 
 	if (access_process_vm(child, pc&~3, &insn, sizeof(insn), 0)
 	if (access_process_vm(child, pc&~3, &insn, sizeof(insn), 0)
 	    != sizeof(insn))
 	    != sizeof(insn))
-		return -EIO;
+		return;
 
 
 	compute_next_pc(insn, pc, &next_pc, child);
 	compute_next_pc(insn, pc, &next_pc, child);
 	if (next_pc & 0x80000000)
 	if (next_pc & 0x80000000)
-		return -EIO;
+		return;
 
 
 	if (embed_debug_trap(child, next_pc))
 	if (embed_debug_trap(child, next_pc))
-		return -EIO;
+		return;
 
 
 	invalidate_cache();
 	invalidate_cache();
-	return 0;
 }
 }
 
 
 void user_disable_single_step(struct task_struct *child)
 void user_disable_single_step(struct task_struct *child)

+ 1 - 1
arch/m32r/kernel/signal.c

@@ -286,7 +286,7 @@ handle_signal(unsigned long sig, struct k_sigaction *ka, siginfo_t *info,
 			case -ERESTARTNOINTR:
 			case -ERESTARTNOINTR:
 				regs->r0 = regs->orig_r0;
 				regs->r0 = regs->orig_r0;
 				if (prev_insn(regs) < 0)
 				if (prev_insn(regs) < 0)
-					return -EFAULT;
+					return;
 		}
 		}
 	}
 	}
 
 

+ 3 - 2
arch/mn10300/kernel/signal.c

@@ -459,10 +459,11 @@ static int handle_signal(int sig,
 	else
 	else
 		ret = setup_frame(sig, ka, oldset, regs);
 		ret = setup_frame(sig, ka, oldset, regs);
 	if (ret)
 	if (ret)
-		return;
+		return ret;
 
 
 	signal_delivered(sig, info, ka, regs,
 	signal_delivered(sig, info, ka, regs,
-				 test_thread_flag(TIF_SINGLESTEP));
+			 test_thread_flag(TIF_SINGLESTEP));
+	return 0;
 }
 }
 
 
 /*
 /*

+ 4 - 0
mm/bootmem.c

@@ -710,6 +710,10 @@ again:
 	if (ptr)
 	if (ptr)
 		return ptr;
 		return ptr;
 
 
+	/* do not panic in alloc_bootmem_bdata() */
+	if (limit && goal + size > limit)
+		limit = 0;
+
 	ptr = alloc_bootmem_bdata(pgdat->bdata, size, align, goal, limit);
 	ptr = alloc_bootmem_bdata(pgdat->bdata, size, align, goal, limit);
 	if (ptr)
 	if (ptr)
 		return ptr;
 		return ptr;

+ 4 - 1
mm/vmscan.c

@@ -2688,7 +2688,10 @@ static void kswapd_try_to_sleep(pg_data_t *pgdat, int order, int classzone_idx)
 		 * them before going back to sleep.
 		 * them before going back to sleep.
 		 */
 		 */
 		set_pgdat_percpu_threshold(pgdat, calculate_normal_threshold);
 		set_pgdat_percpu_threshold(pgdat, calculate_normal_threshold);
-		schedule();
+
+		if (!kthread_should_stop())
+			schedule();
+
 		set_pgdat_percpu_threshold(pgdat, calculate_pressure_threshold);
 		set_pgdat_percpu_threshold(pgdat, calculate_pressure_threshold);
 	} else {
 	} else {
 		if (remaining)
 		if (remaining)