diff --git a/Makefile b/Makefile index b76ee94..c1a439c 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 22 -EXTRAVERSION = -rc5 +EXTRAVERSION = -rc5-pa1 NAME = Holy Dancing Manatees, Batman! # *DOCUMENTATION* diff --git a/drivers/parisc/led.c b/drivers/parisc/led.c index 98be288..e5d7ed9 100644 --- a/drivers/parisc/led.c +++ b/drivers/parisc/led.c @@ -195,12 +195,6 @@ static int led_proc_write(struct file *file, const char *buf, cur = lbuf; - /* skip initial spaces */ - while (*cur && isspace(*cur)) - { - cur++; - } - switch ((long)data) { case LED_NOLCD: diff --git a/mm/mmap.c b/mm/mmap.c index 68b9ad2..906ed40 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1536,9 +1536,14 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address) * vma->vm_start/vm_end cannot change under us because the caller * is required to hold the mmap_sem in read mode. We need the * anon_vma lock to serialize against concurrent expand_stacks. + * Also guard against wrapping around to address 0. */ - address += 4 + PAGE_SIZE - 1; - address &= PAGE_MASK; + if (address < PAGE_ALIGN(address+4)) + address = PAGE_ALIGN(address+4); + else { + anon_vma_unlock(vma); + return -ENOMEM; + } error = 0; /* Somebody else might have raced and expanded it already */