diff options
-rw-r--r-- | MAINTAINERS | 19 | ||||
-rw-r--r-- | arch/avr32/Kconfig | 1 | ||||
-rw-r--r-- | arch/xtensa/include/asm/string.h | 3 | ||||
-rw-r--r-- | drivers/misc/lkdtm.c | 6 | ||||
-rw-r--r-- | drivers/tty/vt/vt_ioctl.c | 1 | ||||
-rw-r--r-- | kernel/kprobes.c | 6 | ||||
-rw-r--r-- | mm/compaction.c | 13 | ||||
-rw-r--r-- | mm/filemap.c | 8 | ||||
-rw-r--r-- | mm/filemap_xip.c | 7 | ||||
-rw-r--r-- | mm/memcontrol.c | 3 | ||||
-rw-r--r-- | mm/migrate.c | 2 |
11 files changed, 41 insertions, 28 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 252972b6c4a0..8591c03354ef 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -789,12 +789,6 @@ F: arch/arm/mach-mx*/ | |||
789 | F: arch/arm/mach-imx/ | 789 | F: arch/arm/mach-imx/ |
790 | F: arch/arm/plat-mxc/ | 790 | F: arch/arm/plat-mxc/ |
791 | 791 | ||
792 | ARM/FREESCALE IMX51 | ||
793 | M: Amit Kucheria <amit.kucheria@canonical.com> | ||
794 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) | ||
795 | S: Maintained | ||
796 | F: arch/arm/mach-mx5/ | ||
797 | |||
798 | ARM/FREESCALE IMX6 | 792 | ARM/FREESCALE IMX6 |
799 | M: Shawn Guo <shawn.guo@linaro.org> | 793 | M: Shawn Guo <shawn.guo@linaro.org> |
800 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) | 794 | L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) |
@@ -3992,11 +3986,11 @@ M: Rusty Russell <rusty@rustcorp.com.au> | |||
3992 | L: lguest@lists.ozlabs.org | 3986 | L: lguest@lists.ozlabs.org |
3993 | W: http://lguest.ozlabs.org/ | 3987 | W: http://lguest.ozlabs.org/ |
3994 | S: Odd Fixes | 3988 | S: Odd Fixes |
3995 | F: Documentation/virtual/lguest/ | 3989 | F: arch/x86/include/asm/lguest*.h |
3996 | F: arch/x86/lguest/ | 3990 | F: arch/x86/lguest/ |
3997 | F: drivers/lguest/ | 3991 | F: drivers/lguest/ |
3998 | F: include/linux/lguest*.h | 3992 | F: include/linux/lguest*.h |
3999 | F: arch/x86/include/asm/lguest*.h | 3993 | F: tools/lguest/ |
4000 | 3994 | ||
4001 | LINUX FOR IBM pSERIES (RS/6000) | 3995 | LINUX FOR IBM pSERIES (RS/6000) |
4002 | M: Paul Mackerras <paulus@au.ibm.com> | 3996 | M: Paul Mackerras <paulus@au.ibm.com> |
@@ -4136,7 +4130,7 @@ L: linux-ntfs-dev@lists.sourceforge.net | |||
4136 | W: http://www.linux-ntfs.org/content/view/19/37/ | 4130 | W: http://www.linux-ntfs.org/content/view/19/37/ |
4137 | S: Maintained | 4131 | S: Maintained |
4138 | F: Documentation/ldm.txt | 4132 | F: Documentation/ldm.txt |
4139 | F: fs/partitions/ldm.* | 4133 | F: block/partitions/ldm.* |
4140 | 4134 | ||
4141 | LogFS | 4135 | LogFS |
4142 | M: Joern Engel <joern@logfs.org> | 4136 | M: Joern Engel <joern@logfs.org> |
@@ -5633,7 +5627,7 @@ W: http://www.ibm.com/developerworks/linux/linux390/ | |||
5633 | S: Supported | 5627 | S: Supported |
5634 | F: arch/s390/ | 5628 | F: arch/s390/ |
5635 | F: drivers/s390/ | 5629 | F: drivers/s390/ |
5636 | F: fs/partitions/ibm.c | 5630 | F: block/partitions/ibm.c |
5637 | F: Documentation/s390/ | 5631 | F: Documentation/s390/ |
5638 | F: Documentation/DocBook/s390* | 5632 | F: Documentation/DocBook/s390* |
5639 | 5633 | ||
@@ -6396,11 +6390,6 @@ M: Omar Ramirez Luna <omar.ramirez@ti.com> | |||
6396 | S: Odd Fixes | 6390 | S: Odd Fixes |
6397 | F: drivers/staging/tidspbridge/ | 6391 | F: drivers/staging/tidspbridge/ |
6398 | 6392 | ||
6399 | STAGING - TRIDENT TVMASTER TMxxxx USB VIDEO CAPTURE DRIVERS | ||
6400 | L: linux-media@vger.kernel.org | ||
6401 | S: Odd Fixes | ||
6402 | F: drivers/staging/tm6000/ | ||
6403 | |||
6404 | STAGING - USB ENE SM/MS CARD READER DRIVER | 6393 | STAGING - USB ENE SM/MS CARD READER DRIVER |
6405 | M: Al Cho <acho@novell.com> | 6394 | M: Al Cho <acho@novell.com> |
6406 | S: Odd Fixes | 6395 | S: Odd Fixes |
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig index 197e96f70405..3dea7231f637 100644 --- a/arch/avr32/Kconfig +++ b/arch/avr32/Kconfig | |||
@@ -8,6 +8,7 @@ config AVR32 | |||
8 | select HAVE_KPROBES | 8 | select HAVE_KPROBES |
9 | select HAVE_GENERIC_HARDIRQS | 9 | select HAVE_GENERIC_HARDIRQS |
10 | select GENERIC_IRQ_PROBE | 10 | select GENERIC_IRQ_PROBE |
11 | select GENERIC_ATOMIC64 | ||
11 | select HARDIRQS_SW_RESEND | 12 | select HARDIRQS_SW_RESEND |
12 | select GENERIC_IRQ_SHOW | 13 | select GENERIC_IRQ_SHOW |
13 | select ARCH_HAVE_NMI_SAFE_CMPXCHG | 14 | select ARCH_HAVE_NMI_SAFE_CMPXCHG |
diff --git a/arch/xtensa/include/asm/string.h b/arch/xtensa/include/asm/string.h index 5fb8c27cbef5..405a8c49ff2c 100644 --- a/arch/xtensa/include/asm/string.h +++ b/arch/xtensa/include/asm/string.h | |||
@@ -118,7 +118,4 @@ extern void *memmove(void *__dest, __const__ void *__src, size_t __n); | |||
118 | /* Don't build bcopy at all ... */ | 118 | /* Don't build bcopy at all ... */ |
119 | #define __HAVE_ARCH_BCOPY | 119 | #define __HAVE_ARCH_BCOPY |
120 | 120 | ||
121 | #define __HAVE_ARCH_MEMSCAN | ||
122 | #define memscan memchr | ||
123 | |||
124 | #endif /* _XTENSA_STRING_H */ | 121 | #endif /* _XTENSA_STRING_H */ |
diff --git a/drivers/misc/lkdtm.c b/drivers/misc/lkdtm.c index 150cd7061b80..28adefe70f96 100644 --- a/drivers/misc/lkdtm.c +++ b/drivers/misc/lkdtm.c | |||
@@ -354,6 +354,7 @@ static void lkdtm_do_action(enum ctype which) | |||
354 | static void lkdtm_handler(void) | 354 | static void lkdtm_handler(void) |
355 | { | 355 | { |
356 | unsigned long flags; | 356 | unsigned long flags; |
357 | bool do_it = false; | ||
357 | 358 | ||
358 | spin_lock_irqsave(&count_lock, flags); | 359 | spin_lock_irqsave(&count_lock, flags); |
359 | count--; | 360 | count--; |
@@ -361,10 +362,13 @@ static void lkdtm_handler(void) | |||
361 | cp_name_to_str(cpoint), cp_type_to_str(cptype), count); | 362 | cp_name_to_str(cpoint), cp_type_to_str(cptype), count); |
362 | 363 | ||
363 | if (count == 0) { | 364 | if (count == 0) { |
364 | lkdtm_do_action(cptype); | 365 | do_it = true; |
365 | count = cpoint_count; | 366 | count = cpoint_count; |
366 | } | 367 | } |
367 | spin_unlock_irqrestore(&count_lock, flags); | 368 | spin_unlock_irqrestore(&count_lock, flags); |
369 | |||
370 | if (do_it) | ||
371 | lkdtm_do_action(cptype); | ||
368 | } | 372 | } |
369 | 373 | ||
370 | static int lkdtm_register_cpoint(enum cname which) | 374 | static int lkdtm_register_cpoint(enum cname which) |
diff --git a/drivers/tty/vt/vt_ioctl.c b/drivers/tty/vt/vt_ioctl.c index 5e096f43bcea..65447c5f91d7 100644 --- a/drivers/tty/vt/vt_ioctl.c +++ b/drivers/tty/vt/vt_ioctl.c | |||
@@ -1463,7 +1463,6 @@ compat_kdfontop_ioctl(struct compat_console_font_op __user *fontop, | |||
1463 | if (!perm && op->op != KD_FONT_OP_GET) | 1463 | if (!perm && op->op != KD_FONT_OP_GET) |
1464 | return -EPERM; | 1464 | return -EPERM; |
1465 | op->data = compat_ptr(((struct compat_console_font_op *)op)->data); | 1465 | op->data = compat_ptr(((struct compat_console_font_op *)op)->data); |
1466 | op->flags |= KD_FONT_FLAG_OLD; | ||
1467 | i = con_font_op(vc, op); | 1466 | i = con_font_op(vc, op); |
1468 | if (i) | 1467 | if (i) |
1469 | return i; | 1468 | return i; |
diff --git a/kernel/kprobes.c b/kernel/kprobes.c index 29f5b65bee29..9788c0ec6f43 100644 --- a/kernel/kprobes.c +++ b/kernel/kprobes.c | |||
@@ -1673,8 +1673,12 @@ static int __kprobes pre_handler_kretprobe(struct kprobe *p, | |||
1673 | ri->rp = rp; | 1673 | ri->rp = rp; |
1674 | ri->task = current; | 1674 | ri->task = current; |
1675 | 1675 | ||
1676 | if (rp->entry_handler && rp->entry_handler(ri, regs)) | 1676 | if (rp->entry_handler && rp->entry_handler(ri, regs)) { |
1677 | raw_spin_lock_irqsave(&rp->lock, flags); | ||
1678 | hlist_add_head(&ri->hlist, &rp->free_instances); | ||
1679 | raw_spin_unlock_irqrestore(&rp->lock, flags); | ||
1677 | return 0; | 1680 | return 0; |
1681 | } | ||
1678 | 1682 | ||
1679 | arch_prepare_kretprobe(ri, regs); | 1683 | arch_prepare_kretprobe(ri, regs); |
1680 | 1684 | ||
diff --git a/mm/compaction.c b/mm/compaction.c index 71a58f67f481..bd939a574b84 100644 --- a/mm/compaction.c +++ b/mm/compaction.c | |||
@@ -313,6 +313,19 @@ static isolate_migrate_t isolate_migratepages(struct zone *zone, | |||
313 | } else if (!locked) | 313 | } else if (!locked) |
314 | spin_lock_irq(&zone->lru_lock); | 314 | spin_lock_irq(&zone->lru_lock); |
315 | 315 | ||
316 | /* | ||
317 | * migrate_pfn does not necessarily start aligned to a | ||
318 | * pageblock. Ensure that pfn_valid is called when moving | ||
319 | * into a new MAX_ORDER_NR_PAGES range in case of large | ||
320 | * memory holes within the zone | ||
321 | */ | ||
322 | if ((low_pfn & (MAX_ORDER_NR_PAGES - 1)) == 0) { | ||
323 | if (!pfn_valid(low_pfn)) { | ||
324 | low_pfn += MAX_ORDER_NR_PAGES - 1; | ||
325 | continue; | ||
326 | } | ||
327 | } | ||
328 | |||
316 | if (!pfn_valid_within(low_pfn)) | 329 | if (!pfn_valid_within(low_pfn)) |
317 | continue; | 330 | continue; |
318 | nr_scanned++; | 331 | nr_scanned++; |
diff --git a/mm/filemap.c b/mm/filemap.c index 97f49ed35bd2..b66275757c28 100644 --- a/mm/filemap.c +++ b/mm/filemap.c | |||
@@ -1400,15 +1400,12 @@ generic_file_aio_read(struct kiocb *iocb, const struct iovec *iov, | |||
1400 | unsigned long seg = 0; | 1400 | unsigned long seg = 0; |
1401 | size_t count; | 1401 | size_t count; |
1402 | loff_t *ppos = &iocb->ki_pos; | 1402 | loff_t *ppos = &iocb->ki_pos; |
1403 | struct blk_plug plug; | ||
1404 | 1403 | ||
1405 | count = 0; | 1404 | count = 0; |
1406 | retval = generic_segment_checks(iov, &nr_segs, &count, VERIFY_WRITE); | 1405 | retval = generic_segment_checks(iov, &nr_segs, &count, VERIFY_WRITE); |
1407 | if (retval) | 1406 | if (retval) |
1408 | return retval; | 1407 | return retval; |
1409 | 1408 | ||
1410 | blk_start_plug(&plug); | ||
1411 | |||
1412 | /* coalesce the iovecs and go direct-to-BIO for O_DIRECT */ | 1409 | /* coalesce the iovecs and go direct-to-BIO for O_DIRECT */ |
1413 | if (filp->f_flags & O_DIRECT) { | 1410 | if (filp->f_flags & O_DIRECT) { |
1414 | loff_t size; | 1411 | loff_t size; |
@@ -1424,8 +1421,12 @@ generic_file_aio_read(struct kiocb *iocb, const struct iovec *iov, | |||
1424 | retval = filemap_write_and_wait_range(mapping, pos, | 1421 | retval = filemap_write_and_wait_range(mapping, pos, |
1425 | pos + iov_length(iov, nr_segs) - 1); | 1422 | pos + iov_length(iov, nr_segs) - 1); |
1426 | if (!retval) { | 1423 | if (!retval) { |
1424 | struct blk_plug plug; | ||
1425 | |||
1426 | blk_start_plug(&plug); | ||
1427 | retval = mapping->a_ops->direct_IO(READ, iocb, | 1427 | retval = mapping->a_ops->direct_IO(READ, iocb, |
1428 | iov, pos, nr_segs); | 1428 | iov, pos, nr_segs); |
1429 | blk_finish_plug(&plug); | ||
1429 | } | 1430 | } |
1430 | if (retval > 0) { | 1431 | if (retval > 0) { |
1431 | *ppos = pos + retval; | 1432 | *ppos = pos + retval; |
@@ -1481,7 +1482,6 @@ generic_file_aio_read(struct kiocb *iocb, const struct iovec *iov, | |||
1481 | break; | 1482 | break; |
1482 | } | 1483 | } |
1483 | out: | 1484 | out: |
1484 | blk_finish_plug(&plug); | ||
1485 | return retval; | 1485 | return retval; |
1486 | } | 1486 | } |
1487 | EXPORT_SYMBOL(generic_file_aio_read); | 1487 | EXPORT_SYMBOL(generic_file_aio_read); |
diff --git a/mm/filemap_xip.c b/mm/filemap_xip.c index f91b2f687343..a4eb31132229 100644 --- a/mm/filemap_xip.c +++ b/mm/filemap_xip.c | |||
@@ -263,7 +263,12 @@ found: | |||
263 | xip_pfn); | 263 | xip_pfn); |
264 | if (err == -ENOMEM) | 264 | if (err == -ENOMEM) |
265 | return VM_FAULT_OOM; | 265 | return VM_FAULT_OOM; |
266 | BUG_ON(err); | 266 | /* |
267 | * err == -EBUSY is fine, we've raced against another thread | ||
268 | * that faulted-in the same page | ||
269 | */ | ||
270 | if (err != -EBUSY) | ||
271 | BUG_ON(err); | ||
267 | return VM_FAULT_NOPAGE; | 272 | return VM_FAULT_NOPAGE; |
268 | } else { | 273 | } else { |
269 | int err, ret = VM_FAULT_OOM; | 274 | int err, ret = VM_FAULT_OOM; |
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 556859fec4ef..6728a7ae6f2d 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c | |||
@@ -776,7 +776,8 @@ static void memcg_check_events(struct mem_cgroup *memcg, struct page *page) | |||
776 | /* threshold event is triggered in finer grain than soft limit */ | 776 | /* threshold event is triggered in finer grain than soft limit */ |
777 | if (unlikely(mem_cgroup_event_ratelimit(memcg, | 777 | if (unlikely(mem_cgroup_event_ratelimit(memcg, |
778 | MEM_CGROUP_TARGET_THRESH))) { | 778 | MEM_CGROUP_TARGET_THRESH))) { |
779 | bool do_softlimit, do_numainfo; | 779 | bool do_softlimit; |
780 | bool do_numainfo __maybe_unused; | ||
780 | 781 | ||
781 | do_softlimit = mem_cgroup_event_ratelimit(memcg, | 782 | do_softlimit = mem_cgroup_event_ratelimit(memcg, |
782 | MEM_CGROUP_TARGET_SOFTLIMIT); | 783 | MEM_CGROUP_TARGET_SOFTLIMIT); |
diff --git a/mm/migrate.c b/mm/migrate.c index 9871a56d82c3..df141f60289e 100644 --- a/mm/migrate.c +++ b/mm/migrate.c | |||
@@ -445,7 +445,6 @@ void migrate_page_copy(struct page *newpage, struct page *page) | |||
445 | ClearPageSwapCache(page); | 445 | ClearPageSwapCache(page); |
446 | ClearPagePrivate(page); | 446 | ClearPagePrivate(page); |
447 | set_page_private(page, 0); | 447 | set_page_private(page, 0); |
448 | page->mapping = NULL; | ||
449 | 448 | ||
450 | /* | 449 | /* |
451 | * If any waiters have accumulated on the new page then | 450 | * If any waiters have accumulated on the new page then |
@@ -667,6 +666,7 @@ static int move_to_new_page(struct page *newpage, struct page *page, | |||
667 | } else { | 666 | } else { |
668 | if (remap_swapcache) | 667 | if (remap_swapcache) |
669 | remove_migration_ptes(page, newpage); | 668 | remove_migration_ptes(page, newpage); |
669 | page->mapping = NULL; | ||
670 | } | 670 | } |
671 | 671 | ||
672 | unlock_page(newpage); | 672 | unlock_page(newpage); |