Commit de74646c authored by Linus Torvalds's avatar Linus Torvalds

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
parents a5e13512 1c7e7f6c
...@@ -43,9 +43,9 @@ endif ...@@ -43,9 +43,9 @@ endif
OBJCOPYFLAGS += -R .empty_zero_page OBJCOPYFLAGS += -R .empty_zero_page
suffix_$(CONFIG_KERNEL_GZIP) = gz suffix-$(CONFIG_KERNEL_GZIP) = gz
suffix_$(CONFIG_KERNEL_BZIP2) = bz2 suffix-$(CONFIG_KERNEL_BZIP2) = bz2
suffix_$(CONFIG_KERNEL_LZMA) = lzma 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)
...@@ -28,7 +28,7 @@ static unsigned long free_mem_ptr; ...@@ -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) ...@@ -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
......
...@@ -113,9 +113,6 @@ struct pt_regs { ...@@ -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 */
......
...@@ -591,17 +591,16 @@ void user_enable_single_step(struct task_struct *child) ...@@ -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)
......
...@@ -286,7 +286,7 @@ handle_signal(unsigned long sig, struct k_sigaction *ka, siginfo_t *info, ...@@ -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;
} }
} }
......
...@@ -459,10 +459,11 @@ static int handle_signal(int sig, ...@@ -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;
} }
/* /*
......
...@@ -710,6 +710,10 @@ void * __init ___alloc_bootmem_node_nopanic(pg_data_t *pgdat, ...@@ -710,6 +710,10 @@ void * __init ___alloc_bootmem_node_nopanic(pg_data_t *pgdat,
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;
......
...@@ -2688,7 +2688,10 @@ static void kswapd_try_to_sleep(pg_data_t *pgdat, int order, int classzone_idx) ...@@ -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)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment