# git rev-parse -q --verify 984d7a1ec67ce3a46324fa4bcb4c745bbc266cf2^{commit} 984d7a1ec67ce3a46324fa4bcb4c745bbc266cf2 already have revision, skipping fetch # git checkout -q -f -B kisskb 984d7a1ec67ce3a46324fa4bcb4c745bbc266cf2 # git clean -qxdf # git log -1 commit 984d7a1ec67ce3a46324fa4bcb4c745bbc266cf2 Author: Aneesh Kumar K.V Date: Thu Nov 24 15:09:54 2016 +0530 powerpc/mm: Fixup kernel read only mapping With commit e58e87adc8bf9 ("powerpc/mm: Update _PAGE_KERNEL_RO") we started using the ppp value 0b110 to map kernel readonly. But that facility was only added as part of ISA 2.04. For earlier ISA version only supported ppp bit value for readonly mapping is 0b011. (This implies both user and kernel get mapped using the same ppp bit value for readonly mapping.). Update the code such that for earlier architecture version we use ppp value 0b011 for readonly mapping. We don't differentiate between power5+ and power5 here and apply the new ppp bits only from power6 (ISA 2.05). This keep the changes minimal. This fixes issue with PS3 spu usage reported at https://lkml.kernel.org/r/rep.1421449714.geoff@infradead.org Fixes: e58e87adc8bf9 ("powerpc/mm: Update _PAGE_KERNEL_RO") Cc: stable@vger.kernel.org # v4.7+ Tested-by: Geoff Levand Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman # < /opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < git log --format=%s --max-count=1 984d7a1ec67ce3a46324fa4bcb4c745bbc266cf2 # < make -j 48 ARCH=powerpc O=/home/kisskb/slave/build/powerpc-fixes_powerpc-allnoconfig_powerpc-5.3 CROSS_COMPILE=/opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux- allnoconfig # make -j 48 ARCH=powerpc O=/home/kisskb/slave/build/powerpc-fixes_powerpc-allnoconfig_powerpc-5.3 CROSS_COMPILE=/opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux- make[1]: Entering directory '/home/kisskb/slave/build/powerpc-fixes_powerpc-allnoconfig_powerpc-5.3' GEN ./Makefile scripts/kconfig/conf --silentoldconfig Kconfig CHK include/config/kernel.release GEN ./Makefile UPD include/config/kernel.release WRAP arch/powerpc/include/generated/asm/clkdev.h WRAP arch/powerpc/include/generated/asm/div64.h WRAP arch/powerpc/include/generated/asm/irq_regs.h WRAP arch/powerpc/include/generated/asm/export.h WRAP arch/powerpc/include/generated/asm/irq_work.h WRAP arch/powerpc/include/generated/asm/local64.h WRAP arch/powerpc/include/generated/asm/mcs_spinlock.h WRAP arch/powerpc/include/generated/asm/preempt.h WRAP arch/powerpc/include/generated/asm/rwsem.h WRAP arch/powerpc/include/generated/asm/vtime.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/dtc/dtc.o CC scripts/mod/empty.o HOSTCC scripts/mod/mk_elfconfig HOSTCC scripts/dtc/flattree.o HOSTCC scripts/dtc/fstree.o CC scripts/mod/devicetable-offsets.s HOSTCC scripts/dtc/livetree.o HOSTCC scripts/dtc/treesource.o HOSTCC scripts/dtc/srcpos.o SHIPPED scripts/dtc/dtc-lexer.lex.c SHIPPED scripts/dtc/dtc-parser.tab.c HOSTCC scripts/dtc/data.o HOSTCC scripts/dtc/checks.o SHIPPED scripts/dtc/dtc-parser.tab.h HOSTCC scripts/dtc/util.o HOSTCC scripts/dtc/dtc-lexer.lex.o HOSTCC scripts/dtc/dtc-parser.tab.o 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/dtc/dtc HOSTLD scripts/mod/modpost 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/powerpc/kernel/asm-offsets.s CHK include/generated/asm-offsets.h UPD include/generated/asm-offsets.h CALL /home/kisskb/slave/src/scripts/checksyscalls.sh CHK include/generated/compile.h CC init/main.o LD usr/built-in.o CC init/init_task.o CC init/noinitramfs.o CC init/do_mounts.o UPD include/generated/compile.h CC init/version.o CC arch/powerpc/mm/fault.o CC arch/powerpc/mm/mem.o CC arch/powerpc/mm/mmap.o CC arch/powerpc/mm/pgtable.o CC arch/powerpc/mm/init_32.o CC arch/powerpc/kernel/syscalls.o CC arch/powerpc/mm/pgtable_32.o CC arch/powerpc/mm/tlb_hash32.o CC arch/powerpc/mm/ppc_mmu_32.o AS arch/powerpc/lib/string.o CC arch/powerpc/lib/alloc.o CC arch/powerpc/kernel/irq.o CC arch/powerpc/kernel/ptrace.o AS arch/powerpc/mm/hash_low_32.o CC arch/powerpc/mm/mmu_context_hash32.o AS arch/powerpc/lib/checksum_32.o CC arch/powerpc/mm/hugetlbpage.o LD arch/powerpc/sysdev/built-in.o AS arch/powerpc/lib/div64.o CC arch/powerpc/lib/code-patching.o CC arch/powerpc/kernel/vdso.o CC arch/powerpc/lib/feature-fixups.o CC arch/powerpc/kernel/align.o CC arch/powerpc/kernel/pmc.o CC arch/powerpc/kernel/cputable.o CC arch/powerpc/kernel/process.o CC arch/powerpc/kernel/sysfs.o AS arch/powerpc/lib/crtsavres.o CC arch/powerpc/kernel/prom.o CC arch/powerpc/kernel/signal_32.o CC arch/powerpc/kernel/traps.o CC arch/powerpc/kernel/setup-common.o CC arch/powerpc/kernel/udbg.o CPP arch/powerpc/kernel/systbl_chk.i CC arch/powerpc/kernel/signal.o AS arch/powerpc/lib/copy_32.o CC arch/powerpc/kernel/cacheinfo.o CC arch/powerpc/lib/checksum_wrappers.o CC arch/powerpc/kernel/time.o AS arch/powerpc/kernel/misc.o CC arch/powerpc/kernel/idle.o CC arch/powerpc/kernel/io.o LD arch/powerpc/platforms/built-in.o CC arch/powerpc/kernel/dma.o CC arch/powerpc/kernel/of_platform.o AS arch/powerpc/kernel/misc_32.o LD arch/powerpc/math-emu/built-in.o CC arch/powerpc/kernel/prom_parse.o AS arch/powerpc/kernel/cpu_setup_6xx.o AS arch/powerpc/kernel/idle_6xx.o AS arch/powerpc/kernel/entry_32.o AS arch/powerpc/kernel/l2cr_6xx.o CC arch/powerpc/kernel/setup_32.o CC arch/powerpc/kernel/pci_32.o CC arch/powerpc/kernel/pci-common.o CC arch/powerpc/kernel/pci_of_scan.o CC arch/powerpc/kernel/iomap.o AS arch/powerpc/kernel/head_32.o LD arch/powerpc/crypto/built-in.o AS arch/powerpc/kernel/fpu.o LDS arch/powerpc/kernel/vmlinux.lds CALL /home/kisskb/slave/src/arch/powerpc/kernel/systbl_chk.sh LDS arch/powerpc/kernel/vdso32/vdso32.lds AS arch/powerpc/kernel/systbl.o VDSO32A arch/powerpc/kernel/vdso32/sigtramp.o LD arch/powerpc/net/built-in.o VDSO32A arch/powerpc/kernel/vdso32/datapage.o VDSO32A arch/powerpc/kernel/vdso32/cacheflush.o VDSO32A arch/powerpc/kernel/vdso32/gettimeofday.o VDSO32A arch/powerpc/kernel/vdso32/note.o VDSO32L arch/powerpc/kernel/vdso32/vdso32.so.dbg OBJCOPY arch/powerpc/kernel/vdso32/vdso32.so LD certs/built-in.o AS arch/powerpc/kernel/vdso32/vdso32_wrapper.o LD arch/powerpc/lib/built-in.o LD arch/powerpc/kernel/vdso32/built-in.o LD ipc/built-in.o CC security/commoncap.o CC security/min_addr.o LD crypto/built-in.o LD block/built-in.o CC kernel/fork.o CC kernel/panic.o CC kernel/exec_domain.o CC kernel/exit.o CC kernel/softirq.o CC kernel/resource.o CC kernel/sysctl.o CC kernel/capability.o CC kernel/ptrace.o CC kernel/sysctl_binary.o CC kernel/cpu.o CC kernel/pid.o CC kernel/signal.o CC kernel/user.o CC kernel/kmod.o CC kernel/workqueue.o CC kernel/sys.o CC kernel/task_work.o CC kernel/kthread.o CC kernel/notifier.o CC kernel/nsproxy.o CC kernel/sys_ni.o CC kernel/params.o CC kernel/extable.o CC kernel/reboot.o CC kernel/cred.o CC kernel/ksysfs.o CC kernel/async.o LD arch/powerpc/mm/built-in.o CC kernel/range.o CC kernel/smpboot.o LD sound/built-in.o CC mm/filemap.o CC fs/open.o CC fs/read_write.o CC kernel/ucount.o CC mm/mempool.o LD kernel/livepatch/built-in.o CC mm/oom_kill.o CC fs/file_table.o CC fs/super.o LD init/mounts.o LD init/built-in.o LD firmware/built-in.o CC kernel/irq/irqdesc.o CC kernel/locking/mutex.o CC fs/char_dev.o LD net/built-in.o CC mm/maccess.o CC kernel/power/qos.o CC kernel/printk/printk.o CC kernel/dma.o CC kernel/up.o CC kernel/rcu/update.o CC kernel/elfcore.o LD arch/powerpc/kernel/built-in.o CC kernel/memremap.o CC mm/page_alloc.o CC kernel/irq/handle.o CC kernel/rcu/sync.o CC kernel/locking/semaphore.o CC kernel/rcu/tiny.o CC kernel/sched/core.o LD virt/lib/built-in.o CC kernel/irq/manage.o CC kernel/sched/loadavg.o CC mm/page-writeback.o CC kernel/locking/rwsem.o LD virt/built-in.o CC kernel/time/time.o CC kernel/time/timer.o CC mm/readahead.o LD security/built-in.o CC kernel/time/hrtimer.o CC kernel/sched/clock.o CC mm/swap.o CC kernel/locking/percpu-rwsem.o CC kernel/time/posix-timers.o CC kernel/time/itimer.o CC mm/truncate.o CC kernel/time/posix-cpu-timers.o CC fs/stat.o CC kernel/time/timekeeping.o CC kernel/irq/spurious.o CC kernel/time/ntp.o LD drivers/amba/built-in.o CC kernel/sched/cputime.o CC kernel/sched/idle_task.o CC lib/lockref.o CC kernel/locking/rwsem-xadd.o LD drivers/auxdisplay/built-in.o CC kernel/sched/fair.o CC lib/bcd.o CC kernel/time/clocksource.o CC kernel/irq/resend.o CC lib/div64.o CC kernel/time/jiffies.o CC fs/exec.o CC fs/pipe.o LD drivers/block/built-in.o CC kernel/time/timer_list.o CC lib/sort.o CC lib/parser.o LD kernel/rcu/built-in.o CC lib/halfmd4.o CC kernel/sched/rt.o CC kernel/sched/deadline.o LD drivers/bus/built-in.o LD drivers/cdrom/built-in.o CC kernel/time/timeconv.o CC fs/namei.o CC mm/vmscan.o CC kernel/time/timecounter.o CC lib/debug_locks.o CC kernel/sched/stop_task.o LD kernel/power/built-in.o CC kernel/irq/chip.o CC kernel/sched/wait.o CC drivers/char/mem.o CC lib/random32.o CC drivers/base/component.o CC lib/bust_spinlocks.o CC kernel/time/posix-clock.o LD drivers/clk/bcm/built-in.o CC kernel/time/alarmtimer.o CC fs/fcntl.o CC lib/kasprintf.o CC mm/shmem.o CC lib/bitmap.o CC drivers/char/random.o CC kernel/time/clockevents.o CC mm/util.o CC kernel/time/tick-common.o CC lib/scatterlist.o CC lib/gcd.o CC mm/mmzone.o CC kernel/sched/swait.o LD drivers/clk/mvebu/built-in.o CC fs/ioctl.o CC kernel/sched/completion.o CC mm/vmstat.o CC lib/lcm.o LD kernel/locking/built-in.o CC mm/backing-dev.o CC fs/readdir.o LD drivers/clk/ti/built-in.o CC kernel/sched/idle.o LD kernel/printk/built-in.o CC lib/list_sort.o LD drivers/clk/built-in.o CC lib/uuid.o CC fs/select.o CC kernel/irq/dummychip.o CC lib/flex_array.o CC mm/mm_init.o LD drivers/clocksource/built-in.o CC lib/iov_iter.o LD drivers/firewire/built-in.o CC mm/mmu_context.o CC lib/bsearch.o CC mm/percpu.o CC lib/clz_ctz.o CC lib/find_bit.o CC fs/dcache.o LD drivers/hwtracing/intel_th/built-in.o CC mm/slab_common.o CC lib/llist.o CC mm/compaction.o CC lib/memweight.o CC mm/vmacache.o LD drivers/firmware/broadcom/built-in.o CC drivers/base/core.o LD drivers/gpu/vga/built-in.o LD drivers/idle/built-in.o CC drivers/base/bus.o CC drivers/irqchip/irqchip.o LD drivers/firmware/meson/built-in.o CC lib/kfifo.o CC lib/percpu-refcount.o CC mm/interval_tree.o CC fs/inode.o LD drivers/lguest/built-in.o LD drivers/i2c/algos/built-in.o CC mm/list_lru.o CC lib/percpu_ida.o CC drivers/char/misc.o LD drivers/firmware/built-in.o LD drivers/macintosh/built-in.o CC kernel/irq/devres.o CC lib/rhashtable.o LD drivers/i2c/busses/built-in.o CC kernel/irq/irqdomain.o CC mm/workingset.o CC lib/reciprocal_div.o LD drivers/gpu/drm/bridge/built-in.o LD drivers/char/agp/built-in.o LD drivers/mfd/built-in.o LD drivers/i2c/muxes/built-in.o LD drivers/mmc/built-in.o CC drivers/base/dd.o LD kernel/time/built-in.o LD drivers/net/built-in.o CC lib/once.o LD kernel/sched/built-in.o LD drivers/nfc/built-in.o LD drivers/gpu/drm/hisilicon/built-in.o CC mm/debug.o LD drivers/i2c/built-in.o LD drivers/power/built-in.o CC fs/attr.o LD drivers/platform/built-in.o CC mm/gup.o CC fs/bad_inode.o LD drivers/gpu/drm/i2c/built-in.o LD drivers/pwm/built-in.o LD drivers/misc/eeprom/built-in.o LD drivers/nvme/host/built-in.o LD drivers/misc/cb710/built-in.o CC lib/string_helpers.o CC mm/highmem.o LD drivers/soc/bcm/built-in.o CC lib/hexdump.o LD drivers/char/built-in.o LD drivers/tty/ipwireless/built-in.o LD drivers/nvme/target/built-in.o CC fs/file.o LD drivers/misc/lis3lv02d/built-in.o CC lib/kstrtox.o CC drivers/of/base.o CC lib/pci_iomap.o LD drivers/usb/host/built-in.o LD drivers/video/backlight/built-in.o LD drivers/nvme/built-in.o CC lib/iomap_copy.o CC drivers/of/device.o CC lib/devres.o LD drivers/soc/fsl/built-in.o CC lib/hweight.o LD drivers/tty/serial/built-in.o CC lib/bitrev.o CC drivers/base/syscore.o LD drivers/usb/built-in.o LD drivers/gpu/drm/omapdrm/displays/built-in.o LD drivers/soc/built-in.o CC drivers/pci/access.o HOSTCC lib/gen_crc32table CC drivers/pci/bus.o LD drivers/media/common/b2c2/built-in.o CC mm/memory.o LD drivers/misc/mic/bus/built-in.o CC drivers/pci/probe.o LD drivers/video/fbdev/core/built-in.o CC lib/syscall.o CC mm/mincore.o CC fs/filesystems.o CC drivers/base/driver.o LD drivers/gpu/drm/omapdrm/dss/built-in.o LD drivers/tty/vt/built-in.o LD drivers/media/common/saa7146/built-in.o LD drivers/media/common/siano/built-in.o CC lib/atomic64.o LD drivers/misc/mic/built-in.o CC mm/mlock.o LD drivers/irqchip/built-in.o CC lib/strncpy_from_user.o LD drivers/gpu/drm/omapdrm/built-in.o CC mm/mmap.o CC lib/strnlen_user.o CC lib/argv_split.o LD drivers/media/firewire/built-in.o LD drivers/tty/built-in.o CC mm/mprotect.o LD drivers/media/common/v4l2-tpg/built-in.o LD drivers/misc/ti-st/built-in.o LD kernel/irq/built-in.o LD drivers/video/fbdev/omap2/omapfb/displays/built-in.o CC lib/chacha20.o LD kernel/built-in.o LD drivers/gpu/drm/panel/built-in.o LD drivers/media/common/built-in.o CC drivers/base/class.o LD drivers/misc/built-in.o LD drivers/video/fbdev/omap2/omapfb/dss/built-in.o LD drivers/media/i2c/soc_camera/built-in.o CC fs/namespace.o CC lib/ctype.o CC lib/cmdline.o CC mm/mremap.o LD drivers/gpu/drm/tilcdc/built-in.o CC mm/msync.o LD drivers/media/mmc/siano/built-in.o CC mm/rmap.o LD drivers/video/fbdev/omap2/omapfb/built-in.o CC mm/vmalloc.o LD drivers/media/i2c/built-in.o CC lib/dec_and_lock.o LD drivers/gpu/drm/built-in.o CC lib/decompress.o CC fs/seq_file.o CC drivers/base/platform.o LD drivers/media/mmc/built-in.o LD drivers/video/fbdev/omap2/built-in.o CC drivers/base/cpu.o CC drivers/of/fdt.o CC drivers/of/platform.o CC lib/dma-noop.o CC drivers/of/fdt_address.o CC fs/xattr.o CC lib/dump_stack.o CC fs/libfs.o LD drivers/video/fbdev/built-in.o CC fs/fs-writeback.o CC lib/earlycpio.o CC mm/pagewalk.o CC lib/extable.o LD drivers/gpu/built-in.o CC drivers/pci/host-bridge.o CC lib/fdt.o CC lib/fdt_empty_tree.o CC lib/fdt_rw.o LD drivers/video/built-in.o CC lib/fdt_ro.o CC lib/fdt_strerror.o CC fs/pnode.o CC mm/pgtable-generic.o CC lib/fdt_sw.o CC mm/init-mm.o CC drivers/pci/remove.o CC drivers/pci/pci.o CC drivers/pci/search.o CC drivers/pci/pci-driver.o CC drivers/pci/setup-res.o CC drivers/pci/pci-sysfs.o CC drivers/pci/rom.o CC drivers/pci/irq.o CC lib/fdt_wip.o LD drivers/media/pci/b2c2/built-in.o CC drivers/pci/vpd.o CC drivers/pci/setup-bus.o CC drivers/pci/vc.o CC drivers/pci/syscall.o CC lib/flex_proportions.o LD drivers/media/pci/ddbridge/built-in.o CC drivers/base/firmware.o CC drivers/base/init.o CC lib/idr.o CC drivers/base/map.o CC mm/nobootmem.o CC drivers/pci/of.o CC lib/int_sqrt.o CC lib/ioremap.o LD drivers/media/pci/dm1105/built-in.o CC drivers/of/address.o CC lib/irq_regs.o LD drivers/pci/host/built-in.o CC fs/splice.o LD drivers/media/pci/mantis/built-in.o CC lib/is_single_threaded.o CC lib/klist.o CC lib/kobject.o CC drivers/base/devres.o CC drivers/base/attribute_container.o LD drivers/media/pci/netup_unidvb/built-in.o LD drivers/media/pci/ngene/built-in.o CC lib/kobject_uevent.o CC drivers/base/transport_class.o CC mm/memblock.o CC lib/md5.o CC drivers/base/topology.o LD drivers/media/pci/pluto2/built-in.o LD drivers/media/pci/pt1/built-in.o CC mm/dmapool.o CC lib/nmi_backtrace.o CC mm/slub.o CC drivers/of/irq.o CC drivers/of/of_pci.o CC drivers/of/of_pci_irq.o CC lib/nodemask.o CC fs/sync.o LD drivers/media/pci/pt3/built-in.o CC lib/plist.o CC lib/radix-tree.o LD drivers/media/rc/keymaps/built-in.o LD drivers/media/platform/omap/built-in.o CC drivers/of/of_reserved_mem.o LD drivers/media/spi/built-in.o LD drivers/media/platform/built-in.o LD drivers/media/pci/saa7146/built-in.o CC drivers/base/container.o CC drivers/base/property.o CC lib/rbtree.o CC lib/seq_buf.o LD drivers/media/rc/built-in.o CC lib/ratelimit.o CC lib/sha1.o LD drivers/media/tuners/built-in.o LD drivers/media/pci/smipcie/built-in.o CC fs/stack.o CC fs/fs_struct.o CC fs/utimes.o CC fs/statfs.o CC lib/show_mem.o LD drivers/media/pci/ttpci/built-in.o CC lib/string.o CC drivers/base/cacheinfo.o LD drivers/media/pci/built-in.o CC lib/timerqueue.o CC lib/vsprintf.o LD drivers/base/power/built-in.o CC fs/nsfs.o CC fs/fs_pin.o CC fs/no-block.o CC lib/win_minmax.o LD fs/exofs/built-in.o LD fs/devpts/built-in.o CC drivers/base/dma-mapping.o CC fs/binfmt_elf.o GEN lib/crc32table.h CC lib/crc32.o LD fs/quota/built-in.o CC fs/ramfs/inode.o CC fs/ramfs/file-mmu.o LD fs/notify/inotify/built-in.o LD fs/notify/fanotify/built-in.o LD fs/notify/dnotify/built-in.o LD drivers/media/usb/b2c2/built-in.o LD drivers/media/usb/stkwebcam/built-in.o LD drivers/media/usb/s2255/built-in.o LD drivers/media/usb/dvb-usb-v2/built-in.o LD drivers/media/usb/zr364xx/built-in.o LD drivers/media/usb/dvb-usb/built-in.o LD drivers/media/usb/siano/built-in.o LD drivers/media/usb/ttusb-dec/built-in.o LD fs/notify/built-in.o LD drivers/media/usb/ttusb-budget/built-in.o LD drivers/media/usb/built-in.o LD drivers/media/built-in.o LD drivers/of/built-in.o LD drivers/base/built-in.o LD fs/ramfs/ramfs.o LD fs/ramfs/built-in.o LD mm/built-in.o LD fs/built-in.o AR lib/lib.a EXPORTS lib/lib-ksyms.o LD lib/built-in.o LD drivers/pci/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 LD vmlinux SYSMAP System.map /opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux-strip -s -R .comment vmlinux -o arch/powerpc/boot/vmlinux.strip make[1]: Leaving directory '/home/kisskb/slave/build/powerpc-fixes_powerpc-allnoconfig_powerpc-5.3' Completed OK # rm -rf /home/kisskb/slave/build/powerpc-fixes_powerpc-allnoconfig_powerpc-5.3 # Build took: 0:00:16.425140