# git rev-parse -q --verify 5d1904204c99596b50a700f092fe49d78edba400^{commit} 5d1904204c99596b50a700f092fe49d78edba400 already have revision, skipping fetch # git checkout -q -f -B kisskb 5d1904204c99596b50a700f092fe49d78edba400 # git clean -qxdf # git log -1 commit 5d1904204c99596b50a700f092fe49d78edba400 Author: Aaron Lu Date: Thu Nov 10 17:16:33 2016 +0800 mremap: fix race between mremap() and page cleanning Prior to 3.15, there was a race between zap_pte_range() and page_mkclean() where writes to a page could be lost. Dave Hansen discovered by inspection that there is a similar race between move_ptes() and page_mkclean(). We've been able to reproduce the issue by enlarging the race window with a msleep(), but have not been able to hit it without modifying the code. So, we think it's a real issue, but is difficult or impossible to hit in practice. The zap_pte_range() issue is fixed by commit 1cf35d47712d("mm: split 'tlb_flush_mmu()' into tlb flushing and memory freeing parts"). And this patch is to fix the race between page_mkclean() and mremap(). Here is one possible way to hit the race: suppose a process mmapped a file with READ | WRITE and SHARED, it has two threads and they are bound to 2 different CPUs, e.g. CPU1 and CPU2. mmap returned X, then thread 1 did a write to addr X so that CPU1 now has a writable TLB for addr X on it. Thread 2 starts mremaping from addr X to Y while thread 1 cleaned the page and then did another write to the old addr X again. The 2nd write from thread 1 could succeed but the value will get lost. thread 1 thread 2 (bound to CPU1) (bound to CPU2) 1: write 1 to addr X to get a writeable TLB on this CPU 2: mremap starts 3: move_ptes emptied PTE for addr X and setup new PTE for addr Y and then dropped PTL for X and Y 4: page laundering for N by doing fadvise FADV_DONTNEED. When done, pageframe N is deemed clean. 5: *write 2 to addr X 6: tlb flush for addr X 7: munmap (Y, pagesize) to make the page unmapped 8: fadvise with FADV_DONTNEED again to kick the page off the pagecache 9: pread the page from file to verify the value. If 1 is there, it means we have lost the written 2. *the write may or may not cause segmentation fault, it depends on if the TLB is still on the CPU. Please note that this is only one specific way of how the race could occur, it didn't mean that the race could only occur in exact the above config, e.g. more than 2 threads could be involved and fadvise() could be done in another thread, etc. For anonymous pages, they could race between mremap() and page reclaim: THP: a huge PMD is moved by mremap to a new huge PMD, then the new huge PMD gets unmapped/splitted/pagedout before the flush tlb happened for the old huge PMD in move_page_tables() and we could still write data to it. The normal anonymous page has similar situation. To fix this, check for any dirty PTE in move_ptes()/move_huge_pmd() and if any, did the flush before dropping the PTL. If we did the flush for every move_ptes()/move_huge_pmd() call then we do not need to do the flush in move_pages_tables() for the whole range. But if we didn't, we still need to do the whole range flush. Alternatively, we can track which part of the range is flushed in move_ptes()/move_huge_pmd() and which didn't to avoid flushing the whole range in move_page_tables(). But that would require multiple tlb flushes for the different sub-ranges and should be less efficient than the single whole range flush. KBuild test on my Sandybridge desktop doesn't show any noticeable change. v4.9-rc4: real 5m14.048s user 32m19.800s sys 4m50.320s With this commit: real 5m13.888s user 32m19.330s sys 4m51.200s Reported-by: Dave Hansen Signed-off-by: Aaron Lu Signed-off-by: Linus Torvalds # < /opt/cross/kisskb/br-sh4-full-2016.08-613-ge98b4dd/bin/sh4-linux-gcc --version # < git log --format=%s --max-count=1 5d1904204c99596b50a700f092fe49d78edba400 # < make -j 10 ARCH=sh O=/home/kisskb/slave/build/linus_edosk7705_defconfig_sh4 CROSS_COMPILE=/opt/cross/kisskb/br-sh4-full-2016.08-613-ge98b4dd/bin/sh4-linux- edosk7705_defconfig # make -j 10 ARCH=sh O=/home/kisskb/slave/build/linus_edosk7705_defconfig_sh4 CROSS_COMPILE=/opt/cross/kisskb/br-sh4-full-2016.08-613-ge98b4dd/bin/sh4-linux- make[1]: Entering directory '/home/kisskb/slave/build/linus_edosk7705_defconfig_sh4' GEN ./Makefile scripts/kconfig/conf --silentoldconfig Kconfig CHK include/config/kernel.release UPD include/config/kernel.release GEN ./Makefile WRAP arch/sh/include/generated/asm/bitsperlong.h WRAP arch/sh/include/generated/asm/clkdev.h WRAP arch/sh/include/generated/asm/cputime.h WRAP arch/sh/include/generated/asm/current.h WRAP arch/sh/include/generated/asm/delay.h WRAP arch/sh/include/generated/asm/div64.h WRAP arch/sh/include/generated/asm/emergency-restart.h WRAP arch/sh/include/generated/asm/errno.h WRAP arch/sh/include/generated/asm/exec.h WRAP arch/sh/include/generated/asm/fcntl.h WRAP arch/sh/include/generated/asm/ioctl.h WRAP arch/sh/include/generated/asm/ipcbuf.h WRAP arch/sh/include/generated/asm/irq_regs.h WRAP arch/sh/include/generated/asm/irq_work.h WRAP arch/sh/include/generated/asm/kvm_para.h WRAP arch/sh/include/generated/asm/local.h WRAP arch/sh/include/generated/asm/local64.h WRAP arch/sh/include/generated/asm/mcs_spinlock.h WRAP arch/sh/include/generated/asm/mm-arch-hooks.h WRAP arch/sh/include/generated/asm/mman.h WRAP arch/sh/include/generated/asm/msgbuf.h WRAP arch/sh/include/generated/asm/param.h WRAP arch/sh/include/generated/asm/parport.h WRAP arch/sh/include/generated/asm/percpu.h WRAP arch/sh/include/generated/asm/poll.h WRAP arch/sh/include/generated/asm/preempt.h WRAP arch/sh/include/generated/asm/resource.h WRAP arch/sh/include/generated/asm/rwsem.h WRAP arch/sh/include/generated/asm/sembuf.h WRAP arch/sh/include/generated/asm/serial.h WRAP arch/sh/include/generated/asm/shmbuf.h WRAP arch/sh/include/generated/asm/siginfo.h WRAP arch/sh/include/generated/asm/sizes.h WRAP arch/sh/include/generated/asm/socket.h WRAP arch/sh/include/generated/asm/statfs.h WRAP arch/sh/include/generated/asm/termbits.h WRAP arch/sh/include/generated/asm/termios.h WRAP arch/sh/include/generated/asm/trace_clock.h WRAP arch/sh/include/generated/asm/ucontext.h WRAP arch/sh/include/generated/asm/xor.h CHK include/generated/uapi/linux/version.h UPD include/generated/uapi/linux/version.h CHK include/generated/utsrelease.h UPD include/generated/utsrelease.h Using /home/kisskb/slave/src as source for kernel HOSTCC scripts/kallsyms HOSTCC scripts/conmakehash CC scripts/mod/empty.o HOSTCC scripts/mod/mk_elfconfig CC scripts/mod/devicetable-offsets.s GEN scripts/mod/devicetable-offsets.h MKELF scripts/mod/elfconfig.h HOSTCC scripts/mod/modpost.o HOSTCC scripts/mod/file2alias.o HOSTCC scripts/mod/sumversion.o HOSTLD scripts/mod/modpost Generating include/generated/machtypes.h CHK include/generated/timeconst.h CC kernel/bounds.s UPD include/generated/timeconst.h CHK include/generated/bounds.h UPD include/generated/bounds.h CC arch/sh/kernel/asm-offsets.s CHK include/generated/asm-offsets.h UPD include/generated/asm-offsets.h CALL /home/kisskb/slave/src/scripts/checksyscalls.sh :1316:2: warning: #warning syscall pkey_mprotect not implemented [-Wcpp] :1319:2: warning: #warning syscall pkey_alloc not implemented [-Wcpp] :1322:2: warning: #warning syscall pkey_free not implemented [-Wcpp] CC init/main.o CHK include/generated/compile.h CC init/do_mounts.o CC init/noinitramfs.o CC init/init_task.o UPD include/generated/compile.h LD usr/built-in.o CC init/version.o AS arch/sh/kernel/debugtraps.o CC arch/sh/kernel/dma-nommu.o CC arch/sh/kernel/dumpstack.o CC arch/sh/mm/alignment.o CC arch/sh/mm/cache.o CC arch/sh/boards/board-edosk7705.o CC kernel/fork.o LD certs/built-in.o CC arch/sh/kernel/idle.o CC arch/sh/kernel/io.o CC arch/sh/mm/init.o LD arch/sh/boards/built-in.o CC kernel/exec_domain.o CC mm/filemap.o CC fs/open.o CC arch/sh/mm/consistent.o CC arch/sh/kernel/irq.o LD ipc/built-in.o CC arch/sh/kernel/irq_32.o CC arch/sh/kernel/kdebugfs.o CC fs/read_write.o LD init/mounts.o LD init/built-in.o CC arch/sh/mm/mmap.o CC security/commoncap.o CC arch/sh/mm/cache-sh3.o CC arch/sh/mm/cache-sh7705.o CC arch/sh/kernel/machvec.o CC arch/sh/kernel/nmi_debug.o CC fs/file_table.o CC arch/sh/mm/extable_32.o CC kernel/panic.o CC arch/sh/kernel/process.o CC arch/sh/kernel/process_32.o CC arch/sh/mm/fault.o CC arch/sh/kernel/ptrace.o CC security/min_addr.o CC fs/super.o CC kernel/cpu.o LD crypto/built-in.o CC kernel/exit.o CC arch/sh/mm/gup.o CC arch/sh/kernel/ptrace_32.o CC mm/mempool.o CC arch/sh/kernel/reboot.o LD security/built-in.o CC arch/sh/kernel/return_address.o CC block/bio.o CC arch/sh/mm/ioremap.o CC arch/sh/kernel/setup.o CC block/elevator.o LD sound/built-in.o CC arch/sh/mm/kmap.o LD drivers/amba/built-in.o LD firmware/built-in.o LD drivers/auxdisplay/built-in.o CC mm/oom_kill.o CC drivers/base/component.o LD arch/sh/drivers/dma/built-in.o LD arch/sh/drivers/built-in.o LD drivers/block/built-in.o CC arch/sh/kernel/signal_32.o CC drivers/base/core.o CC arch/sh/kernel/sys_sh.o CC fs/char_dev.o CC arch/sh/mm/pgtable.o CC fs/stat.o CC arch/sh/mm/tlbex_32.o LD drivers/bus/built-in.o AS arch/sh/kernel/syscalls_32.o CC kernel/softirq.o CC arch/sh/kernel/time.o LD net/built-in.o AS arch/sh/lib/movmem.o CC arch/sh/lib/ashldi3.o CC arch/sh/mm/tlbflush_32.o CC mm/maccess.o CC arch/sh/mm/tlb-sh3.o CC mm/page_alloc.o CC arch/sh/lib/ashrdi3.o CC block/blk-core.o CC arch/sh/kernel/topology.o CC block/blk-tag.o CC fs/exec.o LD drivers/cdrom/built-in.o CC fs/pipe.o CC arch/sh/lib/lshrdi3.o CC arch/sh/mm/uncached.o CC arch/sh/kernel/traps.o CC kernel/resource.o AS arch/sh/lib/ashlsi3.o CC drivers/base/bus.o LD arch/sh/mm/built-in.o AS arch/sh/lib/ashrsi3.o AS arch/sh/lib/ashiftrt.o CC drivers/base/dd.o AS arch/sh/lib/lshrsi3.o AS arch/sh/lib/udiv_qrnnd.o CC arch/sh/lib/io.o CC arch/sh/kernel/traps_32.o CC kernel/sysctl.o AS arch/sh/lib/__clear_user.o AS arch/sh/lib/checksum.o AS arch/sh/lib/copy_page.o CC arch/sh/lib/delay.o CC arch/sh/lib/div64-generic.o CC drivers/base/syscore.o AS arch/sh/lib/div64.o AS arch/sh/lib/memchr.o AS arch/sh/lib/memcpy.o AS arch/sh/lib/memmove.o AS arch/sh/lib/memset.o AS arch/sh/lib/strlen.o AS arch/sh/lib/udivsi3.o CC kernel/sysctl_binary.o AS arch/sh/lib/udivsi3_i4i.o AR arch/sh/lib/lib.a CC arch/sh/kernel/unwinder.o EXPORTS arch/sh/lib/lib-ksyms.o LD arch/sh/lib/built-in.o CC lib/lockref.o CC lib/bcd.o LD virt/lib/built-in.o LD virt/built-in.o CC mm/page-writeback.o CC arch/sh/kernel/iomap.o CC fs/namei.o CC lib/div64.o CC drivers/base/driver.o CC drivers/base/class.o CC arch/sh/kernel/sys_sh32.o CC lib/sort.o CC lib/parser.o CC kernel/capability.o CC block/blk-sysfs.o CC drivers/char/mem.o LD drivers/char/ipmi/built-in.o CC lib/halfmd4.o CC drivers/base/platform.o CC arch/sh/kernel/cpu/irq/imask.o AS arch/sh/kernel/cpu/sh3/ex.o CC arch/sh/kernel/cpu/sh3/probe.o CC lib/debug_locks.o CC lib/random32.o AS arch/sh/kernel/cpu/sh3/entry.o /home/kisskb/slave/src/arch/sh/kernel/cpu/sh3/../../entry-common.S: Assembler messages: /home/kisskb/slave/src/arch/sh/kernel/cpu/sh3/../../entry-common.S:389: Warning: overflow in branch to syscall_exit_work; converted into longer instruction sequence /home/kisskb/slave/src/arch/sh/kernel/cpu/sh3/../../entry-common.S:392: Warning: overflow in branch to syscall_exit_work; converted into longer instruction sequence CC arch/sh/kernel/cpu/sh3/setup-sh3.o CC kernel/ptrace.o LD arch/sh/kernel/cpu/irq/built-in.o CC lib/bust_spinlocks.o CC arch/sh/kernel/cpu/sh3/setup-sh7705.o CC drivers/char/random.o CC block/blk-flush.o CC kernel/user.o CC lib/kasprintf.o CC kernel/signal.o CC drivers/base/cpu.o CC lib/bitmap.o CC arch/sh/kernel/cpu/sh3/serial-sh770x.o CC fs/fcntl.o CC block/blk-settings.o CC block/blk-ioc.o CC mm/readahead.o CC drivers/base/firmware.o CC arch/sh/kernel/cpu/sh3/clock-sh7705.o CC drivers/base/init.o CC drivers/char/misc.o CC lib/scatterlist.o LD arch/sh/kernel/cpu/sh3/built-in.o CC arch/sh/kernel/cpu/adc.o CC drivers/clk/clk-devres.o CC kernel/sys.o CC drivers/base/map.o CC arch/sh/kernel/cpu/clock-cpg.o CC block/blk-map.o CC mm/swap.o CC drivers/clk/clkdev.o LD drivers/char/agp/built-in.o LD drivers/char/built-in.o CC arch/sh/kernel/vsyscall/vsyscall.o CC fs/ioctl.o CC drivers/base/devres.o CC arch/sh/kernel/cpu/init.o CC lib/gcd.o LDS arch/sh/kernel/vsyscall/vsyscall.lds AS arch/sh/kernel/vsyscall/vsyscall-trapa.o CC lib/lcm.o AS arch/sh/kernel/vsyscall/vsyscall-note.o CC lib/list_sort.o LD drivers/clk/bcm/built-in.o LD drivers/clk/mvebu/built-in.o LD drivers/clk/ti/built-in.o LD drivers/clk/built-in.o CC arch/sh/kernel/perf_event.o SYSCALL arch/sh/kernel/vsyscall/vsyscall-trapa.so SYSCALL arch/sh/kernel/vsyscall/vsyscall-syms.o CC block/blk-exec.o AS arch/sh/kernel/vsyscall/vsyscall-syscall.o LD arch/sh/kernel/vsyscall/built-in.o CC kernel/kmod.o CC lib/uuid.o CC arch/sh/kernel/cpu/clock.o CC lib/flex_array.o CC drivers/base/attribute_container.o CC drivers/base/transport_class.o CC fs/readdir.o CC arch/sh/kernel/cpu/fpu.o CC block/blk-merge.o CC block/blk-softirq.o CC lib/iov_iter.o CC mm/truncate.o CC arch/sh/kernel/cpu/pfc.o CC block/blk-timeout.o CC kernel/workqueue.o CC drivers/base/topology.o CC block/blk-lib.o CC arch/sh/kernel/cpu/proc.o CC fs/select.o CC kernel/pid.o CC drivers/base/container.o CC kernel/task_work.o LD arch/sh/kernel/cpu/built-in.o CC arch/sh/kernel/perf_callchain.o CC drivers/base/property.o CC mm/vmscan.o CC drivers/base/cacheinfo.o CC lib/clz_ctz.o CC arch/sh/kernel/hw_breakpoint.o CC kernel/extable.o CC block/blk-mq.o CC drivers/clocksource/sh_tmu.o CC lib/bsearch.o CC kernel/params.o LD drivers/firewire/built-in.o LD drivers/firmware/broadcom/built-in.o LD drivers/firmware/meson/built-in.o AS arch/sh/kernel/head_32.o LD drivers/firmware/built-in.o CC fs/dcache.o LDS arch/sh/kernel/vmlinux.lds CC kernel/kthread.o LD arch/sh/kernel/built-in.o CC mm/shmem.o CC lib/find_bit.o CC lib/llist.o CC drivers/base/power/clock_ops.o CC lib/memweight.o LD drivers/clocksource/built-in.o CC mm/util.o CC lib/kfifo.o LD drivers/base/power/built-in.o CC drivers/base/dma-mapping.o CC mm/mmzone.o CC mm/vmstat.o CC mm/backing-dev.o CC kernel/sys_ni.o CC kernel/nsproxy.o CC mm/mm_init.o CC lib/percpu-refcount.o CC drivers/base/dma-coherent.o CC block/blk-mq-tag.o CC lib/percpu_ida.o CC mm/mmu_context.o CC mm/percpu.o CC kernel/notifier.o CC mm/slab_common.o CC drivers/base/firmware_class.o LD drivers/gpu/drm/bridge/built-in.o LD drivers/gpu/drm/hisilicon/built-in.o LD drivers/gpu/drm/i2c/built-in.o LD drivers/gpu/drm/omapdrm/displays/built-in.o LD drivers/gpu/drm/omapdrm/dss/built-in.o CC drivers/hid/hid-core.o LD drivers/gpu/drm/omapdrm/built-in.o LD drivers/gpu/drm/panel/built-in.o LD drivers/gpu/drm/tilcdc/built-in.o LD drivers/gpu/drm/built-in.o LD drivers/gpu/vga/built-in.o LD drivers/gpu/built-in.o LD drivers/hwtracing/intel_th/built-in.o CC fs/inode.o CC lib/rhashtable.o LD drivers/i2c/algos/built-in.o LD drivers/i2c/busses/built-in.o LD drivers/i2c/muxes/built-in.o LD drivers/i2c/built-in.o CC kernel/ksysfs.o CC kernel/cred.o CC block/blk-mq-sysfs.o CC kernel/reboot.o CC block/blk-mq-cpumap.o CC mm/compaction.o LD drivers/base/built-in.o CC mm/vmacache.o CC block/ioctl.o CC kernel/async.o CC lib/reciprocal_div.o CC block/genhd.o LD drivers/idle/built-in.o CC mm/interval_tree.o CC lib/once.o CC drivers/hid/hid-input.o CC drivers/hid/hid-generic.o CC kernel/range.o CC lib/string_helpers.o CC kernel/smpboot.o CC drivers/hid/hid-a4tech.o CC fs/attr.o CC drivers/hid/hid-apple.o CC drivers/hid/hid-belkin.o CC block/scsi_ioctl.o CC drivers/hid/hid-cherry.o CC kernel/ucount.o CC mm/list_lru.o CC fs/bad_inode.o CC drivers/hid/hid-chicony.o CC lib/hexdump.o CC block/partition-generic.o CC drivers/hid/hid-cypress.o CC block/ioprio.o CC kernel/groups.o CC lib/kstrtox.o CC fs/file.o CC mm/workingset.o CC drivers/hid/hid-ezkey.o CC drivers/hid/hid-kensington.o CC drivers/hid/hid-lg.o CC kernel/events/core.o CC kernel/irq/irqdesc.o CC lib/iomap_copy.o CC drivers/hid/hid-microsoft.o CC lib/devres.o CC mm/debug.o CC block/badblocks.o CC drivers/hid/hid-monterey.o CC fs/filesystems.o CC lib/hweight.o CC lib/bitrev.o CC mm/gup.o HOSTCC lib/gen_crc32table LD kernel/livepatch/built-in.o CC fs/namespace.o CC drivers/input/input.o CC kernel/irq/handle.o CC drivers/input/serio/serio.o CC lib/syscall.o CC block/partitions/check.o CC block/partitions/msdos.o CC kernel/irq/manage.o CC lib/atomic64.o CC drivers/input/serio/serport.o CC lib/strncpy_from_user.o CC mm/highmem.o CC mm/memory.o LD drivers/hid/hid-logitech.o LD drivers/hid/hid.o LD drivers/hid/built-in.o CC block/bsg.o CC lib/strnlen_user.o CC block/partitions/efi.o CC drivers/input/serio/libps2.o CC drivers/input/input-compat.o CC lib/sbitmap.o CC kernel/irq/spurious.o CC kernel/irq/resend.o CC drivers/input/input-mt.o LD drivers/input/serio/built-in.o CC fs/seq_file.o CC lib/argv_split.o CC mm/mincore.o CC kernel/irq/chip.o CC mm/mlock.o CC lib/bug.o CC drivers/input/ff-core.o LD block/partitions/built-in.o CC kernel/locking/mutex.o CC block/noop-iosched.o CC lib/chacha20.o CC drivers/input/mousedev.o CC fs/xattr.o CC kernel/irq/dummychip.o CC mm/mmap.o CC block/deadline-iosched.o CC lib/cmdline.o CC kernel/locking/semaphore.o CC lib/ctype.o LD drivers/iommu/built-in.o CC lib/dec_and_lock.o CC kernel/irq/devres.o CC mm/mprotect.o CC lib/decompress.o LD drivers/irqchip/built-in.o CC lib/dma-noop.o CC kernel/irq/irqdomain.o CC kernel/locking/rwsem.o CC kernel/power/qos.o CC drivers/input/keyboard/atkbd.o CC block/cfq-iosched.o CC lib/dump_stack.o CC kernel/locking/percpu-rwsem.o CC fs/libfs.o CC fs/fs-writeback.o CC lib/earlycpio.o /home/kisskb/slave/src/mm/mmap.c: In function '__vma_adjust': /home/kisskb/slave/src/mm/mmap.c:584:2: warning: 'rb_link' may be used uninitialized in this function [-Wmaybe-uninitialized] __vma_link_rb(mm, vma, rb_link, rb_parent); ^ /home/kisskb/slave/src/mm/mmap.c:615:19: note: 'rb_link' was declared here struct rb_node **rb_link, *rb_parent; ^ /home/kisskb/slave/src/mm/mmap.c:584:2: warning: 'rb_parent' may be used uninitialized in this function [-Wmaybe-uninitialized] __vma_link_rb(mm, vma, rb_link, rb_parent); ^ /home/kisskb/slave/src/mm/mmap.c:615:29: note: 'rb_parent' was declared here struct rb_node **rb_link, *rb_parent; ^ /home/kisskb/slave/src/mm/mmap.c:583:2: warning: 'prev' may be used uninitialized in this function [-Wmaybe-uninitialized] __vma_link_list(mm, vma, prev, rb_parent); ^ /home/kisskb/slave/src/mm/mmap.c:614:25: note: 'prev' was declared here struct vm_area_struct *prev; ^ CC kernel/irq/proc.o CC kernel/locking/rtmutex.o CC lib/extable.o /home/kisskb/slave/src/block/cfq-iosched.c: In function 'cfq_async_queue_prio': /home/kisskb/slave/src/block/cfq-iosched.c:3826:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ LD kernel/power/built-in.o CC drivers/input/mouse/psmouse-base.o CC lib/flex_proportions.o LD kernel/irq/built-in.o CC lib/idr.o CC kernel/locking/rwsem-spinlock.o LD drivers/input/keyboard/built-in.o LD drivers/lguest/built-in.o CC mm/mremap.o CC fs/pnode.o CC mm/msync.o CC drivers/input/mouse/synaptics.o LD kernel/locking/built-in.o CC fs/splice.o CC kernel/events/ring_buffer.o CC kernel/events/callchain.o CC lib/int_sqrt.o CC lib/ioremap.o LD drivers/input/input-core.o CC mm/rmap.o CC kernel/events/hw_breakpoint.o CC drivers/input/mouse/focaltech.o CC kernel/printk/printk.o CC lib/irq_regs.o CC lib/is_single_threaded.o CC lib/klist.o CC lib/kobject.o CC kernel/printk/nmi.o CC mm/vmalloc.o CC drivers/input/mouse/alps.o LD kernel/events/built-in.o LD drivers/macintosh/built-in.o CC lib/kobject_uevent.o LD drivers/media/common/b2c2/built-in.o LD block/built-in.o LD drivers/media/common/saa7146/built-in.o CC drivers/input/mouse/byd.o LD drivers/media/common/siano/built-in.o LD drivers/media/common/v4l2-tpg/built-in.o CC drivers/input/mouse/logips2pp.o LD drivers/media/common/built-in.o LD drivers/media/firewire/built-in.o LD drivers/media/i2c/soc_camera/built-in.o LD drivers/media/i2c/built-in.o LD drivers/media/mmc/siano/built-in.o LD drivers/media/mmc/built-in.o CC fs/sync.o LD drivers/media/pci/b2c2/built-in.o LD drivers/media/pci/ddbridge/built-in.o LD drivers/media/pci/dm1105/built-in.o LD drivers/media/pci/mantis/built-in.o LD drivers/media/pci/netup_unidvb/built-in.o LD drivers/media/pci/ngene/built-in.o LD drivers/media/pci/pluto2/built-in.o LD drivers/media/pci/pt1/built-in.o LD drivers/media/pci/pt3/built-in.o LD drivers/media/pci/saa7146/built-in.o LD drivers/media/pci/smipcie/built-in.o LD drivers/media/pci/ttpci/built-in.o LD drivers/media/pci/built-in.o LD drivers/media/platform/omap/built-in.o CC drivers/input/mouse/trackpoint.o LD drivers/media/platform/built-in.o LD drivers/media/rc/keymaps/built-in.o CC drivers/input/mouse/cypress_ps2.o LD drivers/media/rc/built-in.o LD drivers/media/spi/built-in.o LD drivers/media/tuners/built-in.o LD drivers/media/usb/b2c2/built-in.o LD drivers/media/usb/dvb-usb/built-in.o LD drivers/media/usb/dvb-usb-v2/built-in.o LD drivers/media/usb/s2255/built-in.o LD drivers/media/usb/siano/built-in.o LD drivers/media/usb/stkwebcam/built-in.o CC lib/md5.o LD drivers/media/usb/ttusb-budget/built-in.o LD drivers/media/usb/ttusb-dec/built-in.o CC mm/pagewalk.o LD drivers/media/usb/zr364xx/built-in.o LD drivers/media/usb/built-in.o LD drivers/media/built-in.o LD drivers/mfd/built-in.o LD drivers/misc/cb710/built-in.o LD drivers/misc/eeprom/built-in.o LD drivers/misc/lis3lv02d/built-in.o LD drivers/misc/mic/bus/built-in.o LD drivers/misc/mic/built-in.o LD drivers/misc/ti-st/built-in.o LD drivers/misc/built-in.o CC lib/nmi_backtrace.o LD drivers/mmc/built-in.o LD drivers/net/built-in.o LD drivers/nfc/built-in.o CC kernel/rcu/update.o CC fs/utimes.o LD drivers/nvme/host/built-in.o LD drivers/nvme/target/built-in.o LD drivers/nvme/built-in.o LD drivers/perf/built-in.o CC kernel/rcu/sync.o LD drivers/platform/built-in.o LD drivers/power/built-in.o LD drivers/pwm/built-in.o CC mm/pgtable-generic.o CC fs/stack.o LD kernel/printk/built-in.o CC mm/process_vm_access.o CC mm/init-mm.o CC lib/nodemask.o CC kernel/sched/core.o CC kernel/rcu/srcu.o CC kernel/futex.o CC kernel/up.o CC kernel/time/time.o CC fs/fs_struct.o CC lib/plist.o CC drivers/rtc/rtc-lib.o CC lib/radix-tree.o CC mm/bootmem.o CC kernel/rcu/tiny.o CC fs/statfs.o CC fs/fs_pin.o LD drivers/input/mouse/psmouse.o LD drivers/input/mouse/built-in.o LD drivers/input/built-in.o CC fs/nsfs.o /home/kisskb/slave/src/kernel/sched/core.c: In function 'pick_next_task': /home/kisskb/slave/src/kernel/sched/core.c:3292:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ /home/kisskb/slave/src/mm/bootmem.c: In function 'mark_bootmem': /home/kisskb/slave/src/mm/bootmem.c:385:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ LD drivers/rtc/built-in.o CC drivers/sh/clk/core.o LD kernel/rcu/built-in.o CC fs/buffer.o CC drivers/sh/intc/access.o CC kernel/time/timer.o CC fs/block_dev.o CC lib/ratelimit.o CC mm/fadvise.o CC drivers/sh/pm_runtime.o CC drivers/sh/intc/chip.o CC lib/rbtree.o CC drivers/sh/clk/cpg.o CC lib/seq_buf.o CC drivers/sh/intc/core.o /home/kisskb/slave/src/drivers/sh/clk/cpg.c: In function 'r8': /home/kisskb/slave/src/drivers/sh/clk/cpg.c:41:17: warning: passing argument 1 of 'ioread8' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] return ioread8(addr); ^ In file included from /home/kisskb/slave/src/arch/sh/include/asm/io.h:20:0, from /home/kisskb/slave/src/include/linux/io.h:25, from /home/kisskb/slave/src/drivers/sh/clk/cpg.c:14: /home/kisskb/slave/src/include/asm-generic/iomap.h:28:21: note: expected 'void *' but argument is of type 'const void *' extern unsigned int ioread8(void __iomem *); ^ /home/kisskb/slave/src/drivers/sh/clk/cpg.c: In function 'r16': /home/kisskb/slave/src/drivers/sh/clk/cpg.c:46:18: warning: passing argument 1 of 'ioread16' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] return ioread16(addr); ^ In file included from /home/kisskb/slave/src/arch/sh/include/asm/io.h:20:0, from /home/kisskb/slave/src/include/linux/io.h:25, from /home/kisskb/slave/src/drivers/sh/clk/cpg.c:14: /home/kisskb/slave/src/include/asm-generic/iomap.h:29:21: note: expected 'void *' but argument is of type 'const void *' extern unsigned int ioread16(void __iomem *); ^ /home/kisskb/slave/src/drivers/sh/clk/cpg.c: In function 'r32': /home/kisskb/slave/src/drivers/sh/clk/cpg.c:51:18: warning: passing argument 1 of 'ioread32' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers] return ioread32(addr); ^ In file included from /home/kisskb/slave/src/arch/sh/include/asm/io.h:20:0, from /home/kisskb/slave/src/include/linux/io.h:25, from /home/kisskb/slave/src/drivers/sh/clk/cpg.c:14: /home/kisskb/slave/src/include/asm-generic/iomap.h:31:21: note: expected 'void *' but argument is of type 'const void *' extern unsigned int ioread32(void __iomem *); ^ CC kernel/sched/loadavg.o CC mm/madvise.o CC kernel/sched/clock.o CC kernel/time/hrtimer.o CC lib/sha1.o LD drivers/sh/clk/built-in.o CC lib/show_mem.o CC kernel/time/itimer.o CC kernel/time/posix-timers.o CC kernel/sched/cputime.o CC kernel/uid16.o CC fs/direct-io.o CC drivers/sh/intc/handle.o CC lib/string.o CC mm/memblock.o CC kernel/sched/idle_task.o CC kernel/sched/fair.o CC kernel/sched/rt.o CC drivers/sh/intc/irqdomain.o CC lib/timerqueue.o LD drivers/soc/bcm/built-in.o LD drivers/soc/fsl/built-in.o LD drivers/soc/built-in.o CC kernel/sched/deadline.o CC lib/vsprintf.o CC fs/mpage.o CC kernel/time/posix-cpu-timers.o CC drivers/sh/intc/virq.o CC lib/win_minmax.o CC fs/proc_namespace.o CC fs/devpts/inode.o LD drivers/sh/intc/built-in.o CC kernel/sched/stop_task.o LD drivers/sh/built-in.o CC drivers/tty/tty_io.o CC mm/page_io.o LD fs/exofs/built-in.o CC kernel/time/timekeeping.o LD drivers/video/backlight/built-in.o CC drivers/video/console/dummycon.o CC kernel/sched/wait.o LD drivers/video/fbdev/core/built-in.o LD drivers/video/fbdev/omap2/omapfb/displays/built-in.o LD drivers/video/fbdev/omap2/omapfb/dss/built-in.o LD drivers/video/fbdev/omap2/omapfb/built-in.o LD drivers/video/fbdev/omap2/built-in.o LD drivers/video/fbdev/built-in.o CC fs/exportfs/expfs.o CC kernel/sched/swait.o LD fs/devpts/devpts.o LD fs/devpts/built-in.o CC fs/kernfs/mount.o LD drivers/video/console/built-in.o LD drivers/video/built-in.o CC mm/swap_state.o CC kernel/kallsyms.o CC kernel/sched/completion.o CC kernel/sched/idle.o LD fs/exportfs/exportfs.o LD fs/exportfs/built-in.o CC mm/swapfile.o CC fs/kernfs/inode.o CC drivers/tty/n_tty.o CC drivers/tty/tty_ioctl.o GEN lib/crc32table.h CC kernel/time/ntp.o AR lib/lib.a CC mm/dmapool.o CC lib/crc32.o LD kernel/sched/built-in.o CC kernel/time/clocksource.o CC fs/kernfs/dir.o CC fs/kernfs/file.o CC kernel/utsname.o EXPORTS lib/lib-ksyms.o CC fs/kernfs/symlink.o CC mm/sparse.o LD lib/built-in.o CC mm/slub.o CC mm/migrate.o CC kernel/time/jiffies.o CC fs/notify/fsnotify.o CC drivers/tty/tty_ldisc.o CC mm/quicklist.o CC kernel/pid_namespace.o LD fs/kernfs/built-in.o CC kernel/time/timer_list.o CC fs/proc/task_mmu.o CC fs/notify/notification.o CC drivers/tty/tty_buffer.o LD fs/quota/built-in.o CC fs/ramfs/inode.o CC fs/sysfs/file.o CC fs/ramfs/file-mmu.o CC kernel/time/timeconv.o CC fs/notify/group.o CC fs/sysfs/dir.o CC drivers/tty/tty_port.o CC fs/sysfs/symlink.o CC kernel/utsname_sysctl.o CC drivers/tty/tty_mutex.o LD fs/ramfs/ramfs.o LD fs/ramfs/built-in.o CC kernel/time/timecounter.o CC fs/eventpoll.o CC kernel/time/posix-clock.o CC fs/notify/inode_mark.o CC fs/sysfs/mount.o CC fs/proc/inode.o CC kernel/elfcore.o CC fs/notify/mark.o CC kernel/irq_work.o CC drivers/tty/tty_ldsem.o CC fs/sysfs/group.o CC fs/notify/vfsmount_mark.o CC fs/notify/fdinfo.o CC kernel/time/alarmtimer.o CC fs/proc/root.o CC fs/anon_inodes.o LD fs/sysfs/built-in.o CC drivers/tty/pty.o CC fs/signalfd.o LD fs/notify/dnotify/built-in.o CC fs/timerfd.o LD drivers/tty/ipwireless/built-in.o LD fs/notify/fanotify/built-in.o LD drivers/tty/serial/built-in.o CC fs/notify/inotify/inotify_fsnotify.o CC fs/notify/inotify/inotify_user.o CC fs/eventfd.o CC fs/proc/base.o CC fs/aio.o CC kernel/time/clockevents.o CC fs/locks.o CC fs/binfmt_script.o LD mm/built-in.o CC drivers/tty/vt/vt_ioctl.o CC fs/proc/generic.o CC fs/proc/array.o LD fs/notify/inotify/built-in.o LD fs/notify/built-in.o CC fs/binfmt_elf.o CC fs/coredump.o CC fs/drop_caches.o CC kernel/time/tick-common.o CC drivers/tty/vt/vc_screen.o CC drivers/tty/vt/selection.o CC drivers/tty/vt/keyboard.o CC kernel/time/sched_clock.o CC drivers/tty/vt/consolemap.o CC fs/fhandle.o CC fs/proc/fd.o CC fs/proc/proc_tty.o LD kernel/time/built-in.o CC kernel/membarrier.o CONMK drivers/tty/vt/consolemap_deftbl.c CC drivers/tty/vt/vt.o CC kernel/memremap.o CC fs/proc/cmdline.o CC fs/proc/consoles.o CC fs/proc/cpuinfo.o CC fs/proc/devices.o CC fs/proc/interrupts.o CC fs/proc/loadavg.o CC fs/proc/meminfo.o SHIPPED drivers/tty/vt/defkeymap.c CC fs/proc/stat.o LD kernel/built-in.o CC fs/proc/uptime.o CC fs/proc/version.o CC drivers/tty/vt/consolemap_deftbl.o CC drivers/tty/vt/defkeymap.o CC fs/proc/softirqs.o CC fs/proc/namespaces.o CC fs/proc/self.o CC fs/proc/thread_self.o CC fs/proc/proc_sysctl.o CC fs/proc/kmsg.o CC fs/proc/page.o LD fs/proc/proc.o LD fs/proc/built-in.o LD fs/built-in.o LD drivers/tty/vt/built-in.o LD drivers/tty/built-in.o LD drivers/built-in.o LD vmlinux.o MODPOST vmlinux.o GEN .version CHK include/generated/compile.h UPD include/generated/compile.h CC init/version.o LD init/built-in.o KSYM .tmp_kallsyms1.o KSYM .tmp_kallsyms2.o LD vmlinux SYSMAP System.map AS arch/sh/boot/compressed/head_32.o CC arch/sh/boot/compressed/misc.o CC arch/sh/boot/compressed/cache.o OBJCOPY arch/sh/boot/compressed/vmlinux.bin SHIPPED arch/sh/boot/compressed/ashiftrt.S SHIPPED arch/sh/boot/compressed/ashldi3.c SHIPPED arch/sh/boot/compressed/lshrsi3.S SHIPPED arch/sh/boot/compressed/ashlsi3.S SHIPPED arch/sh/boot/compressed/ashrsi3.S AS arch/sh/boot/compressed/ashiftrt.o AS arch/sh/boot/compressed/ashrsi3.o CC arch/sh/boot/compressed/ashldi3.o AS arch/sh/boot/compressed/ashlsi3.o AS arch/sh/boot/compressed/lshrsi3.o GZIP arch/sh/boot/compressed/vmlinux.bin.gz LD arch/sh/boot/compressed/piggy.o LD arch/sh/boot/compressed/vmlinux OBJCOPY arch/sh/boot/zImage Kernel: arch/sh/boot/zImage is ready make[1]: Leaving directory '/home/kisskb/slave/build/linus_edosk7705_defconfig_sh4' Completed OK # rm -rf /home/kisskb/slave/build/linus_edosk7705_defconfig_sh4 # Build took: 0:00:39.701100