Push to branch refs/heads/master: 82be55ad861ae44a1d1748a61af02b8ff1d56d53 --> c843f6a022e07cd5a679d7f7c3e8434d17b87108
.../ABI/testing/sysfs-bus-iio-proximity-as3935 | 2 +- Documentation/DocBook/gpu.tmpl | 6 + Documentation/cpu-freq/pcc-cpufreq.txt | 4 +- .../devicetree/bindings/clock/imx35-clock.txt | 1 + Documentation/filesystems/00-INDEX | 3 + Documentation/filesystems/wrapfs.txt | 172 ++++++ Documentation/scsi/scsi_eh.txt | 8 +- Documentation/serial/tty.txt | 3 - Documentation/x86/pat.txt | 32 ++ MAINTAINERS | 9 + Makefile | 9 +- arch/arc/Makefile | 2 - arch/arc/kernel/stacktrace.c | 2 +- arch/arm/boot/dts/armada-385-linksys.dtsi | 10 +- arch/arm/boot/dts/armada-xp-linksys-mamba.dts | 4 +- arch/arm/boot/dts/exynos4210-trats.dts | 2 + arch/arm/boot/dts/sama5d2-pinfunc.h | 4 +- arch/arm/boot/dts/sun4i-a10.dtsi | 2 +- arch/arm/boot/dts/sun5i-r8-chip.dts | 2 +- arch/arm/boot/dts/sun6i-a31s-primo81.dts | 2 - .../dts/sun6i-a31s-yones-toptech-bs1078-v2.dts | 2 - arch/arm/boot/dts/sun7i-a20.dtsi | 5 +- arch/arm/include/asm/pgtable-2level.h | 1 + arch/arm/include/asm/pgtable-3level.h | 5 +- arch/arm/include/asm/pgtable.h | 1 - arch/arm/kernel/ptrace.c | 2 +- arch/arm/kernel/sys_oabi-compat.c | 8 +- arch/arm/kvm/arm.c | 1 + arch/arm/kvm/mmu.c | 17 +- arch/arm/mach-imx/mach-imx6ul.c | 2 +- arch/arm/mach-mvebu/coherency.c | 22 +- arch/arm64/include/asm/elf.h | 4 +- arch/arm64/include/asm/pgtable-hwdef.h | 1 - arch/arm64/include/asm/pgtable.h | 25 +- arch/arm64/include/asm/ptrace.h | 2 + arch/arm64/kernel/asm-offsets.c | 1 + arch/arm64/kernel/cpuinfo.c | 11 +- arch/arm64/kernel/entry.S | 19 +- arch/arm64/kernel/traps.c | 26 +- arch/arm64/kvm/hyp/vgic-v3-sr.c | 7 +- arch/arm64/kvm/inject_fault.c | 2 +- arch/arm64/mm/fault.c | 53 +- arch/arm64/mm/flush.c | 4 - arch/mips/ath79/early_printk.c | 6 +- arch/mips/include/asm/asmmacro.h | 40 +- arch/mips/include/asm/cacheflush.h | 6 - arch/mips/include/asm/kvm_host.h | 3 +- arch/mips/include/asm/mips-cm.h | 5 +- arch/mips/include/asm/msa.h | 13 + arch/mips/include/asm/pgtable.h | 26 +- arch/mips/include/asm/switch_to.h | 2 +- arch/mips/include/asm/watch.h | 10 +- arch/mips/include/uapi/asm/siginfo.h | 22 +- arch/mips/kernel/mips-r2-to-r6-emul.c | 105 ++-- arch/mips/kernel/pm.c | 2 +- arch/mips/kernel/process.c | 46 +- arch/mips/kernel/ptrace.c | 27 +- arch/mips/kernel/r4k_fpu.S | 10 +- arch/mips/kernel/scall64-n32.S | 2 +- arch/mips/kernel/scall64-o32.S | 2 +- arch/mips/kernel/setup.c | 3 + arch/mips/kernel/signal.c | 15 +- arch/mips/kernel/traps.c | 8 +- arch/mips/kernel/watch.c | 5 +- arch/mips/kvm/emulate.c | 89 ++-- arch/mips/kvm/interrupt.h | 1 + arch/mips/kvm/locore.S | 1 + arch/mips/kvm/mips.c | 11 +- arch/mips/kvm/trap_emul.c | 2 +- arch/mips/lib/ashldi3.c | 2 +- arch/mips/lib/ashrdi3.c | 2 +- arch/mips/lib/bswapdi.c | 2 +- arch/mips/lib/bswapsi.c | 2 +- arch/mips/lib/cmpdi2.c | 2 +- arch/mips/lib/lshrdi3.c | 2 +- arch/mips/lib/ucmpdi2.c | 2 +- arch/mips/loongson64/Platform | 2 +- arch/mips/loongson64/loongson-3/numa.c | 6 +- arch/mips/math-emu/cp1emu.c | 8 +- arch/mips/mm/cache.c | 41 +- arch/mips/vdso/Makefile | 4 +- arch/parisc/kernel/unaligned.c | 10 +- arch/powerpc/Kconfig | 2 +- arch/powerpc/include/asm/reg.h | 6 +- arch/powerpc/kernel/eeh.c | 2 +- arch/powerpc/kernel/eeh_driver.c | 33 +- arch/powerpc/kernel/exceptions-64s.S | 16 +- arch/powerpc/kernel/process.c | 10 + arch/powerpc/kernel/prom_init.c | 3 +- arch/powerpc/kvm/book3s_hv.c | 1 + arch/powerpc/mm/hash_utils_64.c | 22 +- arch/powerpc/platforms/pseries/eeh_pseries.c | 51 +- arch/powerpc/platforms/pseries/iommu.c | 24 +- arch/s390/include/asm/fpu/api.h | 2 +- arch/s390/kernel/ipl.c | 7 - arch/s390/mm/pgtable.c | 2 +- arch/s390/net/bpf_jit.h | 4 +- arch/s390/net/bpf_jit_comp.c | 4 +- arch/sparc/include/asm/head_64.h | 4 + arch/sparc/include/asm/pgtable_64.h | 43 +- arch/sparc/include/asm/tlbflush_64.h | 3 +- arch/sparc/include/asm/ttable.h | 8 +- arch/sparc/kernel/Makefile | 1 + arch/sparc/kernel/rtrap_64.S | 57 +- arch/sparc/kernel/signal32.c | 46 +- arch/sparc/kernel/signal_32.c | 41 +- arch/sparc/kernel/signal_64.c | 31 +- arch/sparc/kernel/sigutil_32.c | 9 +- arch/sparc/kernel/sigutil_64.c | 10 +- arch/sparc/kernel/urtt_fill.S | 98 ++++ arch/sparc/mm/hugetlbpage.c | 33 +- arch/sparc/mm/init_64.c | 22 +- arch/sparc/mm/tlb.c | 25 +- arch/sparc/mm/tsb.c | 32 +- arch/x86/boot/Makefile | 3 + arch/x86/crypto/sha-mb/sha1_x8_avx2.S | 13 +- arch/x86/entry/syscalls/syscall_32.tbl | 2 +- arch/x86/events/core.c | 11 +- arch/x86/events/intel/rapl.c | 2 +- arch/x86/events/intel/uncore.c | 2 +- arch/x86/include/asm/cpufeature.h | 12 +- arch/x86/include/asm/disabled-features.h | 6 +- arch/x86/include/asm/microcode.h | 2 - arch/x86/include/asm/msr.h | 4 +- arch/x86/include/asm/mtrr.h | 6 +- arch/x86/include/asm/pat.h | 2 +- arch/x86/include/asm/pvclock.h | 2 + arch/x86/kernel/amd_nb.c | 4 +- arch/x86/kernel/cpu/common.c | 4 + arch/x86/kernel/cpu/microcode/core.c | 3 +- arch/x86/kernel/cpu/mtrr/generic.c | 24 +- arch/x86/kernel/cpu/mtrr/main.c | 13 +- arch/x86/kernel/cpu/mtrr/mtrr.h | 1 + arch/x86/kernel/early-quirks.c | 105 +++- arch/x86/kernel/kprobes/core.c | 12 + arch/x86/kernel/pvclock.c | 4 + arch/x86/kernel/traps.c | 20 +- arch/x86/kvm/mtrr.c | 2 - arch/x86/kvm/vmx.c | 40 +- arch/x86/kvm/x86.c | 5 + arch/x86/mm/init.c | 7 - arch/x86/mm/pat.c | 109 ++-- arch/x86/pci/xen.c | 7 +- arch/x86/power/hibernate_asm_64.S | 4 +- arch/x86/xen/enlighten.c | 9 - arch/x86/xen/setup.c | 65 +-- block/genhd.c | 1 + block/ioprio.c | 2 + crypto/asymmetric_keys/Kconfig | 1 + crypto/asymmetric_keys/pkcs7_parser.c | 1 + crypto/crypto_user.c | 1 + crypto/gcm.c | 4 +- crypto/rsa-pkcs1pad.c | 4 +- crypto/scatterwalk.c | 3 +- drivers/acpi/device_pm.c | 1 + drivers/acpi/osl.c | 16 +- drivers/ata/libata-core.c | 6 + drivers/ata/libata-eh.c | 2 +- drivers/base/module.c | 8 +- drivers/base/power/main.c | 5 +- drivers/base/power/runtime.c | 9 +- drivers/bcma/bcma_private.h | 2 - drivers/block/xen-blkfront.c | 126 +++-- drivers/bluetooth/hci_vhci.c | 28 +- drivers/char/hw_random/exynos-rng.c | 10 +- drivers/char/ipmi/ipmi_msghandler.c | 8 +- drivers/char/random.c | 13 +- drivers/clk/at91/clk-h32mx.c | 2 +- drivers/clk/at91/clk-programmable.c | 2 +- drivers/clk/bcm/clk-bcm2835.c | 62 ++- drivers/clk/imx/clk-imx35.c | 4 +- drivers/clk/qcom/gcc-msm8916.c | 2 + drivers/clk/rockchip/clk-mmc-phase.c | 1 + drivers/cpufreq/cpufreq.c | 4 + drivers/cpufreq/pcc-cpufreq.c | 2 - drivers/cpuidle/cpuidle.c | 4 +- drivers/crypto/caam/jr.c | 2 +- drivers/crypto/ccp/ccp-crypto-aes-xts.c | 17 +- drivers/crypto/qat/qat_common/Makefile | 1 + drivers/crypto/sunxi-ss/sun4i-ss-cipher.c | 10 +- drivers/crypto/talitos.c | 64 +++ drivers/crypto/ux500/hash/hash_core.c | 4 +- drivers/crypto/vmx/aes_cbc.c | 2 +- drivers/crypto/vmx/aes_ctr.c | 2 +- drivers/dma/at_xdmac.c | 82 ++- drivers/edac/edac_mc.c | 3 +- drivers/edac/sb_edac.c | 13 +- drivers/extcon/extcon-palmas.c | 2 + drivers/gpio/gpio-bcm-kona.c | 4 +- drivers/gpio/gpio-sch.c | 21 +- drivers/gpio/gpio-zynq.c | 11 +- drivers/gpio/gpiolib-legacy.c | 8 +- drivers/gpio/gpiolib.c | 90 ++-- drivers/gpu/drm/Makefile | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 10 +- drivers/gpu/drm/amd/amdgpu/amdgpu_dpm.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 3 +- drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c | 2 +- drivers/gpu/drm/amd/amdkfd/kfd_process.c | 70 ++- .../gpu/drm/amd/powerplay/hwmgr/hardwaremanager.c | 6 +- drivers/gpu/drm/amd/powerplay/hwmgr/pp_acpi.c | 18 +- drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 2 +- .../amd/powerplay/hwmgr/tonga_processpptables.c | 2 +- drivers/gpu/drm/amd/powerplay/inc/pp_acpi.h | 1 + drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 2 + drivers/gpu/drm/drm_atomic.c | 32 +- drivers/gpu/drm/drm_crtc.c | 62 ++- drivers/gpu/drm/drm_dp_dual_mode_helper.c | 366 +++++++++++++ drivers/gpu/drm/drm_dp_mst_topology.c | 8 +- drivers/gpu/drm/drm_fb_cma_helper.c | 2 +- drivers/gpu/drm/drm_fb_helper.c | 5 +- drivers/gpu/drm/drm_gem_cma_helper.c | 12 +- drivers/gpu/drm/drm_modes.c | 2 + drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 3 +- drivers/gpu/drm/gma500/mdfld_dsi_pkg_sender.c | 2 +- drivers/gpu/drm/i915/i915_gem_shrinker.c | 2 +- drivers/gpu/drm/i915/i915_irq.c | 4 +- drivers/gpu/drm/i915/intel_atomic.c | 3 +- drivers/gpu/drm/i915/intel_atomic_plane.c | 4 +- drivers/gpu/drm/i915/intel_ddi.c | 12 + drivers/gpu/drm/i915/intel_display.c | 85 ++- drivers/gpu/drm/i915/intel_dp.c | 11 +- drivers/gpu/drm/i915/intel_dp_link_training.c | 25 +- drivers/gpu/drm/i915/intel_drv.h | 10 +- drivers/gpu/drm/i915/intel_fbc.c | 3 +- drivers/gpu/drm/i915/intel_fbdev.c | 6 +- drivers/gpu/drm/i915/intel_hdmi.c | 78 ++- drivers/gpu/drm/i915/intel_pm.c | 2 + drivers/gpu/drm/i915/intel_psr.c | 55 +- drivers/gpu/drm/imx/imx-drm-core.c | 8 + drivers/gpu/drm/imx/ipuv3-crtc.c | 2 +- drivers/gpu/drm/mgag200/mgag200_mode.c | 10 +- drivers/gpu/drm/msm/msm_drv.c | 1 - .../drm/nouveau/include/nvkm/subdev/bios/disp.h | 5 +- drivers/gpu/drm/nouveau/nouveau_fbcon.c | 2 + drivers/gpu/drm/nouveau/nv04_fbcon.c | 7 +- drivers/gpu/drm/nouveau/nv50_fbcon.c | 6 +- drivers/gpu/drm/nouveau/nvc0_fbcon.c | 6 +- drivers/gpu/drm/nouveau/nvkm/engine/device/pci.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/Kbuild | 1 + drivers/gpu/drm/nouveau/nvkm/engine/disp/gf119.c | 13 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/gm107.c | 2 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.c | 12 +- drivers/gpu/drm/nouveau/nvkm/engine/disp/outpdp.h | 9 +- .../gpu/drm/nouveau/nvkm/engine/disp/sorgf119.c | 6 +- .../gpu/drm/nouveau/nvkm/engine/disp/sorgm107.c | 53 ++ .../gpu/drm/nouveau/nvkm/engine/disp/sorgm200.c | 15 +- drivers/gpu/drm/nouveau/nvkm/engine/gr/gf100.c | 37 +- drivers/gpu/drm/nouveau/nvkm/subdev/bios/disp.c | 8 +- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm107.c | 6 +- drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gm200.c | 2 +- drivers/gpu/drm/radeon/radeon_device.c | 21 + drivers/gpu/drm/ttm/ttm_bo.c | 7 +- drivers/gpu/drm/vmwgfx/vmwgfx_dmabuf.c | 25 +- drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 13 + drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 2 + drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 47 +- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 37 +- drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 3 + drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 11 +- drivers/gpu/ipu-v3/ipu-common.c | 5 +- drivers/hid/hid-elo.c | 2 +- drivers/hid/hid-multitouch.c | 21 +- drivers/hid/usbhid/hiddev.c | 10 +- drivers/hwmon/ads7828.c | 10 + drivers/hwmon/dell-smm-hwmon.c | 80 ++- drivers/hwtracing/intel_th/core.c | 35 +- drivers/hwtracing/intel_th/intel_th.h | 3 + drivers/hwtracing/intel_th/pci.c | 5 + drivers/i2c/busses/i2c-i801.c | 103 +++- drivers/i2c/busses/i2c-qup.c | 2 + drivers/i2c/muxes/i2c-mux-reg.c | 2 +- drivers/iio/accel/kxsd9.c | 4 +- drivers/iio/adc/ad7266.c | 7 +- drivers/iio/humidity/hdc100x.c | 20 +- drivers/iio/industrialio-trigger.c | 23 +- drivers/iio/light/apds9960.c | 1 + drivers/iio/pressure/st_pressure_core.c | 80 +-- drivers/iio/proximity/as3935.c | 17 +- drivers/infiniband/core/cm.c | 4 +- drivers/infiniband/hw/mlx4/ah.c | 2 +- drivers/infiniband/sw/rdmavt/qp.c | 4 +- drivers/infiniband/ulp/srp/ib_srp.c | 16 +- drivers/input/joystick/xpad.c | 32 +- drivers/input/misc/pwm-beeper.c | 69 ++- drivers/input/misc/uinput.c | 6 + drivers/input/mouse/elantech.c | 8 +- drivers/input/mouse/vmmouse.c | 22 +- drivers/input/rmi4/rmi_f12.c | 9 +- drivers/input/touchscreen/tsc2004.c | 7 +- drivers/input/touchscreen/tsc2005.c | 7 +- drivers/input/touchscreen/tsc200x-core.c | 15 +- drivers/input/touchscreen/tsc200x-core.h | 2 +- drivers/input/touchscreen/wacom_w8001.c | 14 +- drivers/iommu/amd_iommu_init.c | 14 +- drivers/iommu/arm-smmu-v3.c | 1 + drivers/iommu/intel-iommu.c | 17 +- drivers/iommu/rockchip-iommu.c | 2 +- drivers/irqchip/irq-gic-v3.c | 19 + drivers/irqchip/irq-gic.c | 8 + drivers/irqchip/irq-mips-gic.c | 16 +- drivers/mcb/mcb-parse.c | 2 +- drivers/md/md.c | 2 +- drivers/media/i2c/adv7604.c | 46 +- drivers/media/usb/airspy/airspy.c | 3 +- drivers/media/usb/uvc/uvc_v4l2.c | 39 +- drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 3 +- drivers/memory/omap-gpmc.c | 2 +- drivers/mfd/intel-lpss.c | 19 +- drivers/mfd/intel_quark_i2c_gpio.c | 25 +- drivers/mfd/intel_soc_pmic_core.c | 1 + drivers/mfd/omap-usb-tll.c | 13 +- drivers/misc/mei/amthif.c | 4 +- drivers/misc/mei/bus.c | 15 +- drivers/misc/mei/client.c | 4 + drivers/misc/mei/hbm.c | 3 +- drivers/misc/mei/interrupt.c | 6 +- drivers/misc/mei/mei_dev.h | 2 + drivers/misc/mic/vop/vop_vringh.c | 5 + drivers/mmc/card/block.c | 21 +- drivers/mmc/core/core.c | 4 +- drivers/mmc/core/mmc.c | 7 + drivers/mmc/host/sdhci-acpi.c | 13 +- drivers/mmc/host/sdhci-pci-core.c | 5 +- drivers/mtd/ubi/eba.c | 43 +- drivers/mtd/ubi/fastmap.c | 1 + drivers/mtd/ubi/ubi.h | 2 + drivers/net/bonding/bond_netlink.c | 6 +- drivers/net/can/at91_can.c | 5 +- drivers/net/can/c_can/c_can.c | 38 +- drivers/net/can/dev.c | 65 ++- drivers/net/can/m_can/m_can.c | 2 +- drivers/net/ethernet/atheros/alx/alx.h | 4 + drivers/net/ethernet/atheros/alx/main.c | 48 +- drivers/net/ethernet/broadcom/bgmac.c | 2 +- drivers/net/ethernet/ezchip/nps_enet.c | 4 +- drivers/net/ethernet/marvell/mvneta.c | 2 +- drivers/net/ethernet/marvell/mvneta_bm.c | 1 + drivers/net/ethernet/qlogic/qed/qed_spq.c | 7 +- drivers/net/ethernet/rocker/rocker_ofdpa.c | 4 +- drivers/net/ethernet/sfc/ef10.c | 16 + drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 2 +- drivers/net/geneve.c | 19 +- drivers/net/macsec.c | 8 +- drivers/net/ppp/ppp_generic.c | 5 +- drivers/net/team/team.c | 9 +- drivers/net/tun.c | 6 +- drivers/net/usb/asix_common.c | 2 +- drivers/net/usb/cdc_ncm.c | 7 + drivers/net/vxlan.c | 7 +- drivers/net/wireless/ath/ath10k/core.c | 8 +- drivers/net/wireless/ath/ath10k/debug.c | 7 +- drivers/net/wireless/ath/ath10k/mac.c | 13 +- drivers/net/wireless/ath/ath5k/led.c | 2 +- drivers/net/wireless/ath/ath9k/init.c | 7 + drivers/net/wireless/ath/ath9k/pci.c | 10 + drivers/net/wireless/mac80211_hwsim.c | 1 + drivers/net/wireless/realtek/rtlwifi/base.c | 4 +- .../realtek/rtlwifi/btcoexist/halbtc8723b2ant.c | 9 +- .../realtek/rtlwifi/btcoexist/halbtcoutsrc.c | 27 +- .../realtek/rtlwifi/btcoexist/halbtcoutsrc.h | 2 +- .../wireless/realtek/rtlwifi/btcoexist/rtl_btc.c | 5 +- drivers/net/wireless/realtek/rtlwifi/core.c | 6 +- drivers/net/wireless/realtek/rtlwifi/pci.c | 2 +- .../net/wireless/realtek/rtlwifi/rtl8723be/hw.c | 5 + .../net/wireless/realtek/rtlwifi/rtl8723be/sw.c | 3 + drivers/net/wireless/realtek/rtlwifi/wifi.h | 3 + drivers/nfc/st21nfca/i2c.c | 6 +- drivers/nvdimm/pfn.h | 4 +- drivers/nvdimm/pfn_devs.c | 53 +- drivers/nvdimm/pmem.c | 4 +- drivers/of/irq.c | 19 +- drivers/pci/probe.c | 6 +- drivers/pci/vc.c | 4 +- drivers/perf/arm_pmu.c | 6 +- drivers/pinctrl/freescale/pinctrl-imx.c | 4 +- drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 5 +- drivers/pinctrl/pinctrl-single.c | 3 + drivers/pinctrl/samsung/pinctrl-exynos5440.c | 15 +- drivers/platform/chrome/cros_ec_dev.c | 8 +- drivers/platform/x86/dell-rbtn.c | 56 ++ drivers/power/power_supply_core.c | 27 +- drivers/pps/clients/pps_parport.c | 2 +- drivers/regulator/core.c | 17 +- drivers/regulator/qcom_smd-regulator.c | 13 +- drivers/s390/net/qeth_l2_main.c | 1 + drivers/s390/net/qeth_l3_main.c | 1 + drivers/scsi/53c700.c | 4 +- drivers/scsi/aacraid/aacraid.h | 1 + drivers/scsi/aacraid/comminit.c | 24 + drivers/scsi/aacraid/commsup.c | 12 +- drivers/scsi/aacraid/linit.c | 2 +- drivers/scsi/ipr.c | 1 + drivers/scsi/lpfc/lpfc_mem.c | 6 +- drivers/scsi/qla2xxx/qla_isr.c | 2 +- drivers/scsi/scsi_devinfo.c | 11 +- drivers/scsi/scsi_error.c | 4 +- drivers/scsi/scsi_lib.c | 7 +- drivers/scsi/scsi_scan.c | 1 + drivers/scsi/scsi_sysfs.c | 6 +- drivers/scsi/sd.c | 8 +- drivers/scsi/sd.h | 5 + drivers/spi/spi-rockchip.c | 4 +- drivers/spi/spi-sun4i.c | 23 +- drivers/spi/spi-sun6i.c | 10 +- drivers/staging/comedi/drivers/das1800.c | 22 +- drivers/staging/iio/accel/sca3000_core.c | 2 +- drivers/staging/rdma/hfi1/qp.c | 5 +- drivers/staging/rdma/hfi1/ud.c | 23 +- drivers/staging/rdma/hfi1/verbs_txreq.c | 4 +- drivers/staging/rdma/hfi1/verbs_txreq.h | 1 + drivers/thermal/cpu_cooling.c | 16 +- drivers/thunderbolt/eeprom.c | 1 + drivers/tty/n_gsm.c | 4 +- drivers/tty/n_hdlc.c | 4 +- drivers/tty/n_tty.c | 70 ++- drivers/tty/pty.c | 11 +- drivers/tty/serial/8250/8250_mid.c | 35 +- drivers/tty/serial/8250/8250_pci.c | 3 + drivers/tty/serial/atmel_serial.c | 14 +- drivers/tty/serial/mvebu-uart.c | 2 + drivers/tty/serial/samsung.c | 4 +- drivers/tty/serial/ucc_uart.c | 3 + drivers/tty/tty_buffer.c | 34 +- drivers/tty/vt/keyboard.c | 30 +- drivers/tty/vt/vt.c | 6 +- drivers/usb/common/usb-otg-fsm.c | 2 + drivers/usb/core/driver.c | 40 +- drivers/usb/core/hcd.c | 26 +- drivers/usb/core/hub.c | 8 +- drivers/usb/core/quirks.c | 23 +- drivers/usb/dwc2/core.h | 27 + drivers/usb/dwc3/dwc3-exynos.c | 19 +- drivers/usb/gadget/function/f_fs.c | 2 +- drivers/usb/gadget/function/f_mass_storage.c | 36 +- drivers/usb/gadget/function/f_mass_storage.h | 2 - drivers/usb/gadget/legacy/acm_ms.c | 4 - drivers/usb/gadget/legacy/inode.c | 17 +- drivers/usb/gadget/legacy/mass_storage.c | 4 - drivers/usb/gadget/legacy/multi.c | 12 - drivers/usb/gadget/legacy/nokia.c | 7 - drivers/usb/gadget/udc/udc-core.c | 2 +- drivers/usb/host/Kconfig | 3 +- drivers/usb/host/ehci-tegra.c | 2 +- drivers/usb/host/ohci-q.c | 3 +- drivers/usb/host/xhci-pci.c | 5 + drivers/usb/host/xhci-plat.c | 3 + drivers/usb/host/xhci-ring.c | 30 +- drivers/usb/host/xhci.c | 27 +- drivers/usb/misc/usbtest.c | 4 +- drivers/usb/musb/musb_core.c | 3 +- drivers/usb/musb/musb_host.c | 23 +- drivers/usb/serial/cp210x.c | 3 +- drivers/usb/serial/io_edgeport.c | 56 +- drivers/usb/serial/keyspan.c | 4 + drivers/usb/serial/mos7720.c | 1 + drivers/usb/serial/mxuport.c | 10 + drivers/usb/serial/option.c | 155 +++++- drivers/usb/serial/quatech2.c | 1 + drivers/usb/storage/uas.c | 1 + drivers/virtio/virtio_balloon.c | 20 +- drivers/watchdog/sp5100_tco.c | 15 +- drivers/watchdog/watchdog_dev.c | 1 - drivers/xen/balloon.c | 28 +- drivers/xen/events/events_base.c | 6 +- drivers/xen/xen-acpi-processor.c | 35 +- drivers/xen/xen-pciback/conf_space.c | 6 +- drivers/xen/xenbus/xenbus_dev_frontend.c | 14 +- drivers/xen/xenbus/xenbus_xs.c | 3 - fs/9p/vfs_file.c | 6 +- fs/Kconfig | 1 + fs/Makefile | 1 + fs/affs/super.c | 5 +- fs/btrfs/ctree.c | 5 +- fs/btrfs/ctree.h | 1 + fs/btrfs/extent-tree.c | 2 +- fs/btrfs/file.c | 29 +- fs/btrfs/inode.c | 2 +- fs/btrfs/ioctl.c | 21 + fs/btrfs/super.c | 2 +- fs/btrfs/transaction.h | 2 +- fs/cifs/cifs_unicode.c | 33 +- fs/cifs/cifs_unicode.h | 2 + fs/cifs/connect.c | 4 +- fs/cifs/ntlmssp.h | 2 +- fs/cifs/sess.c | 203 ++++--- fs/cifs/smb2glob.h | 1 + fs/cifs/smb2inode.c | 8 +- fs/cifs/smb2pdu.c | 53 +- fs/cifs/smb2proto.h | 2 + fs/crypto/keyinfo.c | 120 +++-- fs/dcache.c | 11 +- fs/ecryptfs/file.c | 15 +- fs/ext4/balloc.c | 3 + fs/ext4/extents.c | 12 +- fs/ext4/ialloc.c | 59 +-- fs/ext4/inode.c | 59 ++- fs/ext4/ioctl.c | 2 +- fs/ext4/mballoc.c | 27 +- fs/ext4/namei.c | 2 +- fs/ext4/super.c | 17 + fs/f2fs/data.c | 3 +- fs/f2fs/f2fs.h | 8 + fs/f2fs/super.c | 13 + fs/fuse/file.c | 24 + fs/fuse/inode.c | 2 +- fs/hpfs/super.c | 42 +- fs/inode.c | 8 +- fs/ioctl.c | 1 + fs/lockd/svc.c | 13 +- fs/locks.c | 2 +- fs/namei.c | 8 +- fs/namespace.c | 11 +- fs/nfs/callback_proc.c | 6 +- fs/nfs/dir.c | 2 +- fs/nfs/nfs4proc.c | 5 +- fs/nfs/pnfs_nfs.c | 36 ++ fs/nfs/read.c | 4 +- fs/nfs/write.c | 4 + fs/nfsd/nfs2acl.c | 20 +- fs/nfsd/nfs3acl.c | 16 +- fs/nfsd/nfs4acl.c | 16 +- fs/nfsd/nfs4callback.c | 18 +- fs/nfsd/nfs4state.c | 50 +- fs/nfsd/state.h | 2 +- fs/nilfs2/the_nilfs.c | 2 +- fs/overlayfs/dir.c | 54 +- fs/overlayfs/inode.c | 35 +- fs/overlayfs/overlayfs.h | 1 + fs/overlayfs/super.c | 21 +- fs/posix_acl.c | 42 +- fs/proc/root.c | 7 + fs/ubifs/file.c | 24 + fs/udf/super.c | 67 ++- fs/wrapfs/Kconfig | 8 + fs/wrapfs/Makefile | 7 + fs/wrapfs/dentry.c | 49 ++ fs/wrapfs/file.c | 381 ++++++++++++++ fs/wrapfs/inode.c | 586 +++++++++++++++++++++ fs/wrapfs/lookup.c | 325 ++++++++++++ fs/wrapfs/main.c | 176 +++++++ fs/wrapfs/mmap.c | 93 ++++ fs/wrapfs/super.c | 208 ++++++++ fs/wrapfs/wrapfs.h | 207 ++++++++ fs/xfs/xfs_fsops.c | 4 +- fs/xfs/xfs_inode.c | 26 +- fs/xfs/xfs_super.c | 38 +- include/asm-generic/qspinlock.h | 32 +- include/asm-generic/siginfo.h | 15 - include/asm-generic/vmlinux.lds.h | 4 + include/drm/drm_dp_dual_mode_helper.h | 92 ++++ include/drm/ttm/ttm_bo_api.h | 14 + include/linux/bcma/bcma.h | 1 + include/linux/bpf.h | 4 + include/linux/can/dev.h | 22 +- include/linux/cpuidle.h | 3 + include/linux/dcache.h | 12 + include/linux/fscrypto.h | 1 + include/linux/irqchip/arm-gic-v3.h | 2 +- include/linux/jump_label.h | 16 +- include/linux/memcontrol.h | 25 +- include/linux/mm.h | 2 +- include/linux/namei.h | 2 + include/linux/net.h | 3 +- include/linux/netdevice.h | 7 + include/linux/netfilter/x_tables.h | 12 +- include/linux/radix-tree.h | 1 + include/linux/rmap.h | 2 +- include/linux/signal.h | 15 + include/linux/skbuff.h | 20 + include/linux/sock_diag.h | 6 + include/linux/sunrpc/clnt.h | 2 - include/linux/sunrpc/svc_xprt.h | 1 + include/linux/sunrpc/xprt.h | 1 + include/linux/tty.h | 2 +- include/linux/usb.h | 5 +- include/linux/usb/ehci_def.h | 4 +- include/linux/usb/hcd.h | 1 + include/net/switchdev.h | 2 +- include/rdma/ib_verbs.h | 2 +- include/rdma/rdma_vt.h | 4 +- include/scsi/scsi_device.h | 1 + include/uapi/linux/Kbuild | 1 + include/uapi/linux/libc-compat.h | 2 +- include/uapi/linux/magic.h | 2 + include/video/imx-ipu-v3.h | 2 + init/Kconfig | 1 + ipc/msg.c | 2 +- ipc/sem.c | 12 +- kernel/bpf/inode.c | 3 +- kernel/cgroup.c | 148 +++--- kernel/cpu.c | 2 + kernel/events/core.c | 2 +- kernel/exit.c | 29 +- kernel/futex.c | 14 +- kernel/jump_label.c | 36 +- kernel/locking/mutex.c | 9 +- kernel/locking/qspinlock.c | 60 +++ kernel/sched/core.c | 9 +- kernel/sched/fair.c | 50 +- kernel/sched/idle.c | 2 +- kernel/sched/loadavg.c | 11 +- kernel/time/posix-cpu-timers.c | 1 + kernel/trace/bpf_trace.c | 4 +- kernel/trace/ring_buffer.c | 35 +- kernel/trace/trace_printk.c | 7 +- lib/dma-debug.c | 2 +- lib/radix-tree.c | 14 +- mm/compaction.c | 65 ++- mm/hugetlb.c | 2 +- mm/internal.h | 3 +- mm/memcontrol.c | 148 +++++- mm/memory.c | 3 +- mm/mempool.c | 18 +- mm/migrate.c | 2 + mm/page-writeback.c | 21 +- mm/page_alloc.c | 8 +- mm/percpu.c | 73 ++- mm/rmap.c | 7 +- mm/shmem.c | 8 +- mm/slab_common.c | 4 +- mm/swap.c | 11 +- mm/swap_state.c | 5 +- net/8021q/vlan_dev.c | 10 +- net/8021q/vlan_netlink.c | 7 +- net/ax25/af_ax25.c | 3 +- net/ax25/ax25_ds_timer.c | 5 +- net/ax25/ax25_std_timer.c | 5 +- net/ax25/ax25_subr.c | 3 +- net/batman-adv/bat_v_ogm.c | 4 +- net/bluetooth/6lowpan.c | 11 +- net/bridge/br_fdb.c | 2 + net/bridge/br_input.c | 18 + net/bridge/br_multicast.c | 4 + net/bridge/br_private.h | 23 +- net/ceph/osdmap.c | 156 ++++-- net/core/flow_dissector.c | 43 ++ net/core/hwbm.c | 3 + net/core/neighbour.c | 6 +- net/core/skbuff.c | 18 - net/ipv4/af_inet.c | 8 + net/ipv4/esp4.c | 52 +- net/ipv4/ipmr.c | 4 +- net/ipv4/netfilter/arp_tables.c | 293 ++++------- net/ipv4/netfilter/ip_tables.c | 318 +++-------- net/ipv4/sysctl_net_ipv4.c | 4 - net/ipv4/tcp_input.c | 54 +- net/ipv4/tcp_output.c | 3 +- net/ipv4/udp.c | 2 +- net/ipv6/addrconf.c | 4 + net/ipv6/ip6_fib.c | 1 + net/ipv6/ip6_output.c | 11 +- net/ipv6/ip6mr.c | 1 + net/ipv6/netfilter/ip6_tables.c | 311 +++-------- net/ipv6/sit.c | 4 +- net/ipv6/tcp_ipv6.c | 4 +- net/ipv6/udp.c | 2 +- net/irda/af_irda.c | 7 +- net/kcm/kcmproc.c | 1 + net/l2tp/l2tp_core.c | 2 +- net/mac80211/mesh.c | 11 +- net/mac80211/sta_info.h | 2 +- net/netfilter/x_tables.c | 245 ++++++++- net/netlink/af_netlink.c | 7 +- net/packet/af_packet.c | 2 +- net/rds/tcp.c | 5 +- net/sched/act_ipt.c | 7 +- net/sched/act_mirred.c | 2 +- net/sched/sch_fifo.c | 4 + net/sched/sch_netem.c | 12 +- net/sunrpc/auth_gss/svcauth_gss.c | 4 +- net/sunrpc/clnt.c | 31 +- net/sunrpc/svc_xprt.c | 2 + net/sunrpc/xprtsock.c | 1 + net/switchdev/switchdev.c | 6 +- net/tipc/netlink_compat.c | 2 +- net/tipc/socket.c | 3 + net/unix/af_unix.c | 6 +- net/wireless/core.c | 2 - net/wireless/util.c | 4 +- net/wireless/wext-core.c | 25 +- scripts/Makefile.extrawarn | 1 + scripts/mod/file2alias.c | 2 +- scripts/package/Makefile | 4 +- security/apparmor/apparmorfs.c | 1 + security/apparmor/lsm.c | 36 +- security/keys/key.c | 2 +- sound/core/control.c | 2 + sound/core/pcm.c | 14 +- sound/core/timer.c | 5 +- sound/drivers/dummy.c | 1 + sound/hda/hdac_regmap.c | 4 +- sound/pci/au88x0/au88x0_core.c | 5 +- sound/pci/echoaudio/echoaudio.c | 4 +- sound/pci/hda/hda_generic.c | 2 + sound/pci/hda/hda_intel.c | 21 +- sound/pci/hda/patch_realtek.c | 126 ++++- sound/soc/codecs/ak4642.c | 3 + sound/usb/card.c | 2 +- tools/objtool/Makefile | 4 + tools/objtool/elf.h | 5 + virt/kvm/arm/hyp/vgic-v2-sr.c | 7 +- virt/kvm/irqchip.c | 2 +- virt/kvm/kvm_main.c | 2 +- 705 files changed, 9779 insertions(+), 3767 deletions(-) commit c843f6a022e07cd5a679d7f7c3e8434d17b87108 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Sat May 21 23:33:35 2016 -0400 Wrapfs: support NFS exports Based on patch from Sandeep Joshi <sanjos...@gmail.com>. Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit cb2921212f1bfc3778cecdd1c1b88d37dcf45a08 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Sat May 21 22:04:02 2016 -0400 Wrapfs: use d_splice_alias Refactor interpose code to allow lookup to use d_splice_alias. Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 2823edbc512d55afaaf2665f24df332b65ee1ef9 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Sun Apr 3 17:22:07 2016 -0400 Wrapfs: use inode_un/lock helper macros Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit eafdf7bcf8cb9ab8fbad1868c7b9dc3d12f13089 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Sun Apr 3 17:22:07 2016 -0400 Wrapfs: use new get_link operation Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 01efdcc5e4e50e7c9ba1ed0e22976d6b23cf8cc1 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Nov 3 21:19:11 2015 -0500 Wrapfs: update copyright year to 2015 commit c9841dbbab69a4443685e1e3dec55798fb9cb98e Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Nov 3 21:16:58 2015 -0500 Wrapfs: use vfs xattr helpers Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 1d2f1c106f9c8ffedfb09f42254918ebd0d27af0 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Fri Sep 4 23:23:14 2015 -0400 Wrapfs: update follow_link Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit c8819b7d8b4596922ab05ba646ca6f4e303add01 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Fri Sep 4 23:13:21 2015 -0400 Wrapfs: update ->direct_IO op prototype Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 4e252074654ac57b3505a47b49f0b63ead415202 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Fri Sep 4 23:12:21 2015 -0400 Wrapfs: use d_inode macro Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit a9c39afc98786174ff2e076418d02f38d8e771fa Author: Erez Zadok <e...@cs.sunysb.edu> Date: Fri Sep 4 23:11:21 2015 -0400 Wrapfs: remove aio_read/write ops Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 9afd098d7cbadbf7e18db87a53e57ca92a8ec7e6 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Fri Aug 15 22:48:32 2014 -0400 Wrapfs: properly copy meta-data after AIO operations from lower inode Signed-off-by: Mengyang Li <li.mengy...@stonybrook.edu> Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit c9e7fec0b58c84d1176ceb80666a8e2d92e41928 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Mon Aug 11 18:10:35 2014 -0400 Wrapfs: leave placeholders for updating upper inode after AIO Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit b9ed48f959f988a6787fdaebe4a9840a4cbf82f1 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Sun Aug 10 00:40:56 2014 -0400 Wrapfs: protect lower_file by ref-count during aio operation Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> Signed-off-by: Mengyang Li <li.mengy...@stonybrook.edu> commit 8ae35053b87e6318be15c253d2c131e36d130b10 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Sun Aug 10 00:40:56 2014 -0400 Wrapfs: add read_iter/write_iter opeations Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> Signed-off-by: Mengyang Li <li.mengy...@stonybrook.edu> commit 543e1bcc85e0d755333f3c53e53a594a68126830 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Sun Aug 10 00:40:56 2014 -0400 Wrapfs: update to new direct_IO interface Signed-off-by: Mengyang Li <li.mengy...@stonybrook.edu> Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 88fcf22c67efd0682eee4f296915adac9b8a6baa Author: Erez Zadok <e...@cs.sunysb.edu> Date: Sat Jul 26 19:06:53 2014 -0400 Wrapfs: update wrapfs_fsync In v3.16 generic_file_fsync will access ->i_sb->s_bdev->bd_disk, but s_bdev is NULL for wrapfs inode. This will trigger a kernel panic in xfstests generic/075, generic/091, etc. as of kernel v3.16-rc1. This patch fixes this issue by using __generic_file_fsync, a new interface introduced in v3.16. Signed-off-by: Mengyang Li <li.mengy...@stonybrook.edu> Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 6e438a98169c321ad82952ad2854fcd96455aaaf Author: Erez Zadok <e...@cs.sunysb.edu> Date: Wed Jun 25 22:37:16 2014 -0400 Wrapfs: fix ->llseek to update upper and lower offsets Fixes bug: xfstests generic/257. f_pos consistently is required by and only by dir_ops->wrapfs_readdir, main_ops is not affected. Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> Signed-off-by: Mengyang Li <li.mengy...@stonybrook.edu> commit cc3be25d6740546bd4a9882745e8f60b1cedae52 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Wed Jun 25 22:30:27 2014 -0400 Wrapfs: support extended attributes (xattr) operations Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> Signed-off-by: Mengyang Li <li.mengy...@stonybrook.edu> commit 4e136345bef34f675afcc027134cbf3c59511cd8 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Fri Jun 20 19:40:04 2014 -0400 Wrapfs: support asynchronous-IO (AIO) operations Signed-off-by: Li Mengyang <li.mengy...@stonybrook.edu> Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit adfd48d8014129cbda47c6963e69a56a7c7972a8 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Fri Jun 20 19:39:40 2014 -0400 Wrapfs: support direct-IO (DIO) operations Signed-off-by: Li Mengyang <li.mengy...@stonybrook.edu> Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 4a64869bd570d1611d9d0766cde6f9eb582490ab Author: Erez Zadok <e...@cs.sunysb.edu> Date: Wed May 14 23:45:28 2014 -0400 Wrapfs: implement vm_ops->page_mkwrite Some file systems (e.g., ext4) require it. Reported by Ted Ts'o. Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit ab4aa1636034955542ed379b07560533918d2c32 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Sat Apr 26 22:43:20 2014 -0400 Wrapfs: use new vfs_rename prototype Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit beee262e47628b70a7d56befc3bce842ffdee5c0 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Thu Apr 3 13:24:28 2014 -0400 Wrapfs: update documentation Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit b975e64b088faa36c4693de1e6e2c2849ea32ec1 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Thu Apr 3 13:17:55 2014 -0400 Wrapfs: update maintainers Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 131749e92904980c97e9454627bc78a944efe919 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Jan 21 03:03:00 2014 -0500 Wrapfs: update documentation Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit a0ff72199a2339826e8f1ce3126de93caf4f45b2 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Jan 21 01:25:54 2014 -0500 Wrapfs: 2014 Copyright update Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit e3786b24a98e75bd3f30be3297954f39c9985d6e Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Nov 26 23:05:22 2013 -0500 Wrapfs: use generic put_link helper Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 1be3b5137ef14fa48776ea9e9d3a6cb3cd27bc88 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Nov 26 23:03:46 2013 -0500 Wrapfs: remove unnecessary initializations Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit f8e346338e9315001dbe22081e9e19c5724a4663 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Sun Nov 24 11:12:07 2013 -0500 Wrapfs: remove deprecated init_lower_nd Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 5c243342bb3313ba7c2bcf291e7af0799b6d427d Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Nov 19 19:00:00 2013 -0500 Wrapfs: update MAINTAINERS info Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 984e64efa37449edd159de89c931648e0e14b730 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Nov 19 18:59:47 2013 -0500 patch wrapfs-copyright-update.patch commit 26d74fec6fd1aacdd9bf960eba206f7bc87bf4aa Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Nov 19 17:23:31 2013 -0500 Wrapfs: use DCACHE_OP_REVALIDATE flag in ->d_revalidate Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit e4e7bbc70cbc4aebc7ad2cb62c2ae8d31cde4617 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Nov 19 17:22:31 2013 -0500 Wrapfs: implement ->getattr Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 53c3fc9c72fbe0bbc51f5415d06880e1e63326c0 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Nov 19 17:21:31 2013 -0500 Wrapfs: use file_inode helper Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit d2e2964480f4b542911b582abfc09c68c44ed965 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Nov 19 17:20:31 2013 -0500 Wrapfs: call filemap_write_and_wait in ->flush Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 2cc48ea8a5b2c82ca2a8f3bc1aefe4a5108d40de Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Nov 19 17:19:31 2013 -0500 Wrapfs: handle new VFS API with delegation support For now, wrapfs isn't supporting NFS delegations. Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 354fe478d346cb9a943cd2aa9460de3ca5ea56c4 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Nov 19 17:18:31 2013 -0500 VFS: export vfs_path_lookup In 3.12, this useful function was unexported: wrapfs needs a way to lookup relative to a struct path and use a proper vfsmount, unlike lookup_one_len. Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 102336317bb4336ef64386f9c8ef360ad474da29 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Nov 19 17:17:31 2013 -0500 Wrapfs: ->readdir op now ->iterate Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 2156c85d7f64169f975f6270312e5241f98e651e Author: Erez Zadok <e...@cs.sunysb.edu> Date: Wed Jun 5 01:36:58 2013 -0400 Wrapfs: copy lower inode attributes in ->ioctl Some ioctls (e.g., EXT2_IOC_SETFLAGS) can change inode attributes, so copy them from lower inode. Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 954f5b2b17bc44d34e9158ccf7407b73d7dc8d41 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Wed Jun 5 01:36:58 2013 -0400 Wrapfs: remove unnecessary call to vm_unmap in ->mmap Code is unnecessary and causes deadlocks in newer kernels. Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 2a43cfba484ce607e09c05c50edfa6fbd1545fa4 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Jun 4 23:19:32 2013 -0400 Wrapfs: declare MODULE_ALIAS_FS Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit d8bd354f1f85a91ea7dfcff1d19854ba53b7d665 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Jun 4 23:19:32 2013 -0400 Wrapfs: don't use FS_REVAL_DOT in fs_flags Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 6f16338e05600c076f43a03f8c84347c8d446a58 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Jun 4 23:19:31 2013 -0400 Wrapfs: remove dependency on now-defunct CONFIG_EXPERIMENTAL Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit a5c79cd0914e5f3fdf8b5489d5c03d80bb92c449 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Jun 4 23:19:31 2013 -0400 Wrapfs: dentry_open() no longer does mntput/dput We need to grab a reference on the path before dentry_open, and drop it after. Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 6c15a21967be0f8babdd0eb28a2e7dcd8b65e88e Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Jun 4 23:19:30 2013 -0400 Wrapfs: no need to call mnt_want_write any longer Apparently this is now being done by the VFS. Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 35231a9035f7c7b01af709772914b10faea47256 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Jun 4 23:19:30 2013 -0400 Wrapfs: remove VM_CAN_NONLINEAR flag use in ->mmap Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 34f57177a4def0a536eb7d56744e286fce6db229 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Jun 4 23:19:29 2013 -0400 Wrapfs: ->lookup takes flags not a nameidata Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit e4d05a17ac896a273156f659599b5eb5db82e221 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Jun 4 23:19:29 2013 -0400 Wrapfs: ->create no longer takes a nameidata, only a flag Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 9bd03b0ff80b66dee1140311902e4e8ca352d074 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Jun 4 23:19:29 2013 -0400 Wrapfs: ->d_revalidate now takes namei flags, not nameidata Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit d7e31285b7714a814e5baa26651b0735ba0f0afb Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Jun 4 23:19:28 2013 -0400 Wrapfs: struct nameidata no longer has an open-intent data Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit d1b137faf5e8c0bc75b2dec0eae3cfe51c627565 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Jun 4 23:19:28 2013 -0400 Wrapfs: dentry_open now takes a struct path Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit d81618941fe66ee28c26b9f44de8ca098a8f8de7 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Jun 4 23:19:27 2013 -0400 Wrapfs: use vm_munmap in ->mmap Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 480ec8727b91acca68d3deb57632659b2ea39b08 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Jun 4 23:19:27 2013 -0400 Wrapfs: use clear_inode in evict_inode Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 328617840dad983a3f69edc3df79d90b022ccfab Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Jun 4 23:19:26 2013 -0400 Wrapfs: use d_make_root Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit be8875978fa9cb613bab894ee9ad54c8aaf7d342 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Jan 31 04:40:19 2012 -0500 Wrapfs: use mode_t Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit e554de86b7d7f502802f0f90ff9a505b5b3d6a05 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Sun Jan 29 20:34:27 2012 -0500 Wrapfs: use set_nlink() Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit a62a6e2fe423fa954742c42f958efbc6de2e4890 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Fri Sep 9 00:47:49 2011 -0400 Wrapfs: drop our dentry in ->rmdir Also clear nlinks on our inode. Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 155a5e2c78b3c200db2d6b748e063dc5ddd40b99 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Sep 6 00:10:32 2011 -0400 Wrapfs: use d_alloc_root Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 3a54414a1ce6c13e0f7c44c14bc36bda5bc3078f Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Sep 6 00:10:31 2011 -0400 Wrapfs: use d_set_d_op Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 415389ba17e31f46a52de8a011b1de1aa823f69f Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Sep 6 00:10:30 2011 -0400 Wrapfs: use updated vfs_path_lookup prototype Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit ad04db287f0aff8f95bd6ccb77bf8bd1984922e9 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Sep 6 00:10:30 2011 -0400 Wrapfs: ->fsync updates for new prototype Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 115a92ac91d1615d2baff5a0d27293938fa5aa35 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Sep 6 00:10:29 2011 -0400 Wrapfs: support LOOKUP_RCU in ->d_revalidate Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit dfab3c6472a3a13e9a3f01d3df4d322e57055524 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Sep 6 00:10:28 2011 -0400 Wrapfs: new ->permission prototype and fixes. Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit e8220a67b09ed4cd9fe4a6878c00d53d67087628 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Mon May 2 02:00:02 2011 -0400 Wrapfs: lookup fixes Don't use lookup_one_len any longer (doesn't work for NFS). Initialize lower wrapfs_dentry_info so lower_path is NULL. Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 4ae2c287870ad1b1583547a58b1bc5ddb5b687d2 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Fri Mar 18 13:14:28 2011 -0400 Wrapfs: remove extra debug in rmdir Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 9561149d35ea87a3ece2e734f123b2dc2539cdd5 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Fri Mar 18 12:38:01 2011 -0400 Wrapfs: checkpatch fixes Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 283b940d1cf324b0ade5dba0926443b2d717a4a9 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Fri Mar 18 00:45:17 2011 -0400 Wrapfs: port to 2.6.39 Remove lock/unlock_kernel in ->fasync. Convert from ->get_sb to ->mount op. Remove include to smp_lock.h, added sched.h. Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 0d4ac7220da81a48be8e2b2f866a9b48d478fae0 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Thu Mar 17 23:21:55 2011 -0400 Wrapfs: copyright update for 2011 Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit b2de2be643de88951cacaffe4de8e946d263211e Author: Erez Zadok <e...@cs.sunysb.edu> Date: Thu Mar 17 23:21:55 2011 -0400 Wrapfs: better handling of NFS silly-renamed files In ->unlink, if we try to unlink an NFS silly-renamed file, NFS returns -EBUSY. We have to treat it as a success and return 0 to the VFS. NFS will remove silly-deleted files later on anyway. Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 027b636c2626262c3ef1e4e45f4d44915c3a2e8c Author: Erez Zadok <e...@cs.sunysb.edu> Date: Thu Mar 17 23:21:55 2011 -0400 Wrapfs: update parent directory inode size in inode ops After ->unlink, ->rmdir, and ->rename, we need to copy the (possibly changed) inode size of the parent directory(ies) where the operation took place. Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit c8b5785177bf19e7d60f1d8ef24d1e369351d7b2 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Thu Mar 17 23:21:55 2011 -0400 Wrapfs: remove unnecessary calls to copy lower inode->n_links Removed from ->create, ->symlink, and ->mknod. Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit d79a7937da5c457b58038676fc6b020fbe3ddc5b Author: Erez Zadok <e...@cs.sunysb.edu> Date: Mon Mar 7 23:20:33 2011 -0500 Wrapfs: ->setattr fixes Call inode_change_ok on our inode, not lower. Don't copy inode sizes (VFS does it). Pass lower file in struct iattr passed to notify_change on lower inode. Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 7da6981545d7470189b6bcc389cbdbe74b95dc03 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Sun Mar 6 16:23:16 2011 -0500 Wrapfs: update ->permission prototye and code for new iperm flag Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit a0dcc5737b1a72daf06576ab2e460a9ba38f4a8b Author: Erez Zadok <e...@cs.sunysb.edu> Date: Fri Nov 12 18:15:05 2010 -0500 Wrapfs: handle maxbytes properly Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit e82902ce1a0a3fc14e718b90d8594c23e72f08dd Author: Erez Zadok <e...@cs.sunysb.edu> Date: Sat Sep 11 15:49:33 2010 -0400 Wrapfs: support ->unlocked_ioctl and ->compat_ioctl Old ->ioctl was split into ->unlocked_ioctl and ->compat_ioctl. Compat version doesn't need to lock_kernel any longer. Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 8ed900c9684f872e98bd879b4c7d920013287355 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Aug 10 23:50:14 2010 -0400 Wrapfs: new vfs_statfs and ->evict_inode prototypes Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit fda8f345157f5d73ba1937a0956a24163beeaa02 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Fri Aug 6 23:37:29 2010 -0400 Wrapfs: update ->fsync prototype Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 07eca8d07b294c2007631cb0c9ecba4eaceddc16 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Apr 20 21:22:02 2010 -0400 Wrapfs: update documentation Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 6b53f9163dbdefd061d67d361c7407e9fb4c90a5 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Apr 20 15:32:09 2010 -0400 Wrapfs: include slab.h Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit aee0676da7b7d8154d7486e68dfbcbe1846ed8b0 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Apr 20 15:26:02 2010 -0400 Wrapfs: avoid an extra path_get/put pair in wrapfs_open Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit ca948cb13b0fa21a40501b6ea118031a75bd3982 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Fri Feb 26 03:18:04 2010 -0500 Wrapfs: decrement nd_path on follow_link error Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 6a3002d2bb0b9e9e600bb36d467096290927a10b Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Jan 5 04:27:00 2010 -0500 Wrapfs: don't mention kernel version in modload message Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 1108021348703e47b7cec032e04be9a58a62d174 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Mon Jan 4 20:45:06 2010 -0500 Kconfig: hook to configure Wrapfs Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit d51bff8b987413361a0d9ed73dea23d03117b9e3 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Mon Jan 4 20:45:06 2010 -0500 Makefile: hook to compile Wrapfs Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 99f1609604a21d2200475295d9375ebf583614d8 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Mon Jan 4 20:45:06 2010 -0500 Wrapfs: file system magic number Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 6e56003af81ff654d89b81ea17496b97b9f77552 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Mon Jan 4 20:45:06 2010 -0500 Wrapfs: Kconfig options Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 4fa7c3dfc2dfab3e5580b864a6f4b41bbcdfd902 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Mon Jan 4 20:45:06 2010 -0500 Wrapfs: main Makefile Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 63f34f371379b8bc3b65aab01306b803c8fb7c77 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Mon Jan 4 20:45:06 2010 -0500 Wrapfs: vm_ops operations Includes necessary address_space workaround ops. Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit e4fde3d86e9de4078a30693ac406c0049262ae18 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Mon Jan 4 20:45:06 2010 -0500 Wrapfs: mount-time and module-linkage functions Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit fc61c351b6b0e300bee341b20d4d8f83f43ef5ca Author: Erez Zadok <e...@cs.sunysb.edu> Date: Mon Jan 4 20:45:06 2010 -0500 Wrapfs: lookup-related functions Main lookup function, nameidata helpers, and stacking-interposition functions. Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 5c091050e5573b6813fdccdff00e9196333a7d13 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Mon Jan 4 20:45:06 2010 -0500 Wrapfs: file operations Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit f01e7a833be85e035b4e1ca2acb5f6610e5d7a6f Author: Erez Zadok <e...@cs.sunysb.edu> Date: Mon Jan 4 20:45:06 2010 -0500 Wrapfs: dentry operations Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 4404ee8f42acdfffd4cda611fb0c0ce4c60d3d6d Author: Erez Zadok <e...@cs.sunysb.edu> Date: Mon Jan 4 20:45:06 2010 -0500 Wrapfs: inode operations Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 45bfdca77af43b7bec9818f79f20872eb06e4063 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Mon Jan 4 20:45:06 2010 -0500 Wrapfs: superblock operations Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 1d7be7a41ecf92741a998d81c6a2b28ed945cc0a Author: Erez Zadok <e...@cs.sunysb.edu> Date: Mon Jan 4 20:45:06 2010 -0500 Wrapfs: main header file Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 579bcd643d9f3a59ce24da1f486b9a68af252486 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Mon Jan 4 20:45:06 2010 -0500 Wrapfs: Maintainers Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit d523a561e1ddca3736710d7f6ed223f6dd22090b Author: Erez Zadok <e...@cs.sunysb.edu> Date: Mon Jan 4 20:45:06 2010 -0500 Documentation: index entry for Wrapfs Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit d06cbed4f0cb0348f90224a95d50caebdf1fbc08 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Mon Jan 4 20:45:06 2010 -0500 Wrapfs: introduction and usage documentation Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 096998b11906dd79df5af4d688c9974342dd09f2 Author: Greg Kroah-Hartman <gre...@linuxfoundation.org> Date: Tue Aug 16 09:33:36 2016 +0200 Linux 4.6.7 commit ce1afec0b14dc1cfb7b9777bec8833ffa216a6a8 Author: Vegard Nossum <vegard.nos...@oracle.com> Date: Thu Jul 14 23:02:47 2016 -0400 ext4: fix reference counting bug on block allocation error commit 554a5ccc4e4a20c5f3ec859de0842db4b4b9c77e upstream. If we hit this error when mounted with errors=continue or errors=remount-ro: EXT4-fs error (device loop0): ext4_mb_mark_diskspace_used:2940: comm ext4.exe: Allocating blocks 5090-6081 which overlap fs metadata then ext4_mb_new_blocks() will call ext4_mb_release_context() and try to continue. However, ext4_mb_release_context() is the wrong thing to call here since we are still actually using the allocation context. Instead, just error out. We could retry the allocation, but there is a possibility of getting stuck in an infinite loop instead, so this seems safer. [ Fixed up so we don't return EAGAIN to userspace. --tytso ] Fixes: 8556e8f3b6 ("ext4: Don't allow new groups to be added during block allocation") Signed-off-by: Vegard Nossum <vegard.nos...@oracle.com> Signed-off-by: Theodore Ts'o <ty...@mit.edu> Cc: Aneesh Kumar K.V <aneesh.ku...@linux.vnet.ibm.com> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> diff --git a/Documentation/ABI/testing/sysfs-bus-iio-proximity-as3935 b/Documentation/ABI/testing/sysfs-bus-iio-proximity-as3935 index 6708c5e..33e96f7 100644 --- a/Documentation/ABI/testing/sysfs-bus-iio-proximity-as3935 +++ b/Documentation/ABI/testing/sysfs-bus-iio-proximity-as3935 @@ -1,4 +1,4 @@ -What /sys/bus/iio/devices/iio:deviceX/in_proximity_raw +What /sys/bus/iio/devices/iio:deviceX/in_proximity_input Date: March 2014 KernelVersion: 3.15 Contact: Matt Ranostay <mranos...@gmail.com> diff --git a/Documentation/DocBook/gpu.tmpl b/Documentation/DocBook/gpu.tmpl index 1692c4d..ab037f6 100644 --- a/Documentation/DocBook/gpu.tmpl +++ b/Documentation/DocBook/gpu.tmpl @@ -1623,6 +1623,12 @@ void intel_crt_init(struct drm_device *dev) !Edrivers/gpu/drm/drm_dp_helper.c </sect2> <sect2> + <title>Display Port Dual Mode Adaptor Helper Functions Reference</title> +!Pdrivers/gpu/drm/drm_dp_dual_mode_helper.c dp dual mode helpers +!Iinclude/drm/drm_dp_dual_mode_helper.h +!Edrivers/gpu/drm/drm_dp_dual_mode_helper.c + </sect2> + <sect2> <title>Display Port MST Helper Functions Reference</title> !Pdrivers/gpu/drm/drm_dp_mst_topology.c dp mst helper !Iinclude/drm/drm_dp_mst_helper.h diff --git a/Documentation/cpu-freq/pcc-cpufreq.txt b/Documentation/cpu-freq/pcc-cpufreq.txt index 0a94224..9e3c3b3 100644 --- a/Documentation/cpu-freq/pcc-cpufreq.txt +++ b/Documentation/cpu-freq/pcc-cpufreq.txt @@ -159,8 +159,8 @@ to be strictly associated with a P-state. 2.2 cpuinfo_transition_latency: ------------------------------- -The cpuinfo_transition_latency field is CPUFREQ_ETERNAL. The PCC specification -does not include a field to expose this value currently. +The cpuinfo_transition_latency field is 0. The PCC specification does +not include a field to expose this value currently. 2.3 cpuinfo_cur_freq: --------------------- diff --git a/Documentation/devicetree/bindings/clock/imx35-clock.txt b/Documentation/devicetree/bindings/clock/imx35-clock.txt index a703564..f497832 100644 --- a/Documentation/devicetree/bindings/clock/imx35-clock.txt +++ b/Documentation/devicetree/bindings/clock/imx35-clock.txt @@ -94,6 +94,7 @@ clocks and IDs. csi_sel 79 iim_gate 80 gpu2d_gate 81 + ckli_gate 82 Examples: diff --git a/Documentation/scsi/scsi_eh.txt b/Documentation/scsi/scsi_eh.txt index 8638f61..37eca00 100644 --- a/Documentation/scsi/scsi_eh.txt +++ b/Documentation/scsi/scsi_eh.txt @@ -263,19 +263,23 @@ scmd->allowed. 3. scmd recovered ACTION: scsi_eh_finish_cmd() is invoked to EH-finish scmd - - shost->host_failed-- - clear scmd->eh_eflags - scsi_setup_cmd_retry() - move from local eh_work_q to local eh_done_q LOCKING: none + CONCURRENCY: at most one thread per separate eh_work_q to + keep queue manipulation lockless 4. EH completes ACTION: scsi_eh_flush_done_q() retries scmds or notifies upper - layer of failure. + layer of failure. May be called concurrently but must have + a no more than one thread per separate eh_work_q to + manipulate the queue locklessly - scmd is removed from eh_done_q and scmd->eh_entry is cleared - if retry is necessary, scmd is requeued using scsi_queue_insert() - otherwise, scsi_finish_command() is invoked for scmd + - zero shost->host_failed LOCKING: queue or finish function performs appropriate locking diff --git a/Documentation/serial/tty.txt b/Documentation/serial/tty.txt index 798cba8..b487809 100644 --- a/Documentation/serial/tty.txt +++ b/Documentation/serial/tty.txt @@ -210,9 +210,6 @@ TTY_IO_ERROR If set, causes all subsequent userspace read/write TTY_OTHER_CLOSED Device is a pty and the other side has closed. -TTY_OTHER_DONE Device is a pty and the other side has closed and - all pending input processing has been completed. - TTY_NO_WRITE_SPLIT Prevent driver from splitting up writes into smaller chunks. diff --git a/Documentation/x86/pat.txt b/Documentation/x86/pat.txt index 54944c7..2a4ee63 100644 --- a/Documentation/x86/pat.txt +++ b/Documentation/x86/pat.txt @@ -196,3 +196,35 @@ Another, more verbose way of getting PAT related debug messages is with "debugpat" boot parameter. With this parameter, various debug messages are printed to dmesg log. +PAT Initialization +------------------ + +The following table describes how PAT is initialized under various +configurations. The PAT MSR must be updated by Linux in order to support WC +and WT attributes. Otherwise, the PAT MSR has the value programmed in it +by the firmware. Note, Xen enables WC attribute in the PAT MSR for guests. + + MTRR PAT Call Sequence PAT State PAT MSR + ========================================================= + E E MTRR -> PAT init Enabled OS + E D MTRR -> PAT init Disabled - + D E MTRR -> PAT disable Disabled BIOS + D D MTRR -> PAT disable Disabled - + - np/E PAT -> PAT disable Disabled BIOS + - np/D PAT -> PAT disable Disabled - + E !P/E MTRR -> PAT init Disabled BIOS + D !P/E MTRR -> PAT disable Disabled BIOS + !M !P/E MTRR stub -> PAT disable Disabled BIOS + + Legend + ------------------------------------------------ + E Feature enabled in CPU + D Feature disabled/unsupported in CPU + np "nopat" boot option specified + !P CONFIG_X86_PAT option unset + !M CONFIG_MTRR option unset + Enabled PAT state set to enabled + Disabled PAT state set to disabled + OS PAT initializes PAT MSR with OS setting + BIOS PAT keeps PAT MSR with BIOS setting + diff --git a/Makefile b/Makefile index 0f9cb36..5fe9a7a 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ VERSION = 4 PATCHLEVEL = 6 -SUBLEVEL = 0 +SUBLEVEL = 7 EXTRAVERSION = NAME = Charred Weasel @@ -364,7 +364,7 @@ AFLAGS_MODULE = LDFLAGS_MODULE = CFLAGS_KERNEL = AFLAGS_KERNEL = -CFLAGS_GCOV = -fprofile-arcs -ftest-coverage +CFLAGS_GCOV = -fprofile-arcs -ftest-coverage -fno-tree-loop-im CFLAGS_KCOV = -fsanitize-coverage=trace-pc @@ -697,9 +697,10 @@ KBUILD_CFLAGS += $(call cc-option, -mno-global-merge,) KBUILD_CFLAGS += $(call cc-option, -fcatch-undefined-behavior) else -# This warning generated too much noise in a regular build. -# Use make W=1 to enable this warning (see scripts/Makefile.build) +# These warnings generated too much noise in a regular build. +# Use make W=1 to enable them (see scripts/Makefile.build) KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable) +KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable) endif ifdef CONFIG_FRAME_POINTER diff --git a/arch/arc/Makefile b/arch/arc/Makefile index def69e3..f5add97 100644 --- a/arch/arc/Makefile +++ b/arch/arc/Makefile @@ -66,8 +66,6 @@ endif endif -cflags-$(CONFIG_ARC_DW2_UNWIND) += -fasynchronous-unwind-tables - # By default gcc 4.8 generates dwarf4 which kernel unwinder can't grok ifeq ($(atleast_gcc48),y) cflags-$(CONFIG_ARC_DW2_UNWIND) += -gdwarf-2 diff --git a/arch/arc/kernel/stacktrace.c b/arch/arc/kernel/stacktrace.c index e0efff1..b9192a6 100644 --- a/arch/arc/kernel/stacktrace.c +++ b/arch/arc/kernel/stacktrace.c @@ -142,7 +142,7 @@ arc_unwind_core(struct task_struct *tsk, struct pt_regs *regs, * prelogue is setup (callee regs saved and then fp set and not other * way around */ - pr_warn("CONFIG_ARC_DW2_UNWIND needs to be enabled\n"); + pr_warn_once("CONFIG_ARC_DW2_UNWIND needs to be enabled\n"); return 0; #endif diff --git a/arch/arm/boot/dts/armada-385-linksys.dtsi b/arch/arm/boot/dts/armada-385-linksys.dtsi index 85d2c37..22f7a13 100644 --- a/arch/arm/boot/dts/armada-385-linksys.dtsi +++ b/arch/arm/boot/dts/armada-385-linksys.dtsi @@ -58,8 +58,8 @@ soc { ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000 MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000 - MBUS_ID(0x09, 0x09) 0 0xf1100000 0x10000 - MBUS_ID(0x09, 0x05) 0 0xf1110000 0x10000>; + MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000 + MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000>; internal-regs { @@ -245,7 +245,7 @@ button@2 { label = "Factory Reset Button"; linux,code = <KEY_RESTART>; - gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; + gpios = <&gpio0 29 GPIO_ACTIVE_LOW>; }; }; @@ -260,7 +260,7 @@ }; sata { - gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>; + gpios = <&gpio1 22 GPIO_ACTIVE_LOW>; default-state = "off"; }; }; @@ -313,7 +313,7 @@ &pinctrl { keys_pin: keys-pin { - marvell,pins = "mpp24", "mpp47"; + marvell,pins = "mpp24", "mpp29"; marvell,function = "gpio"; }; diff --git a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts index b89e6cf..7a46154 100644 --- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts +++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts @@ -304,13 +304,13 @@ button@1 { label = "WPS"; linux,code = <KEY_WPS_BUTTON>; - gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>; + gpios = <&gpio1 0 GPIO_ACTIVE_LOW>; }; button@2 { label = "Factory Reset Button"; linux,code = <KEY_RESTART>; - gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>; + gpios = <&gpio1 1 GPIO_ACTIVE_LOW>; }; }; diff --git a/arch/arm/boot/dts/exynos4210-trats.dts b/arch/arm/boot/dts/exynos4210-trats.dts index 1df2f0b..a9fae91 100644 --- a/arch/arm/boot/dts/exynos4210-trats.dts +++ b/arch/arm/boot/dts/exynos4210-trats.dts @@ -298,6 +298,8 @@ compatible = "maxim,max8997-pmic"; reg = <0x66>; + interrupt-parent = <&gpx0>; + interrupts = <7 0>; max8997,pmic-buck1-uses-gpio-dvs; max8997,pmic-buck2-uses-gpio-dvs; diff --git a/arch/arm/boot/dts/sama5d2-pinfunc.h b/arch/arm/boot/dts/sama5d2-pinfunc.h index b0c912fe..8a394f3 100644 --- a/arch/arm/boot/dts/sama5d2-pinfunc.h +++ b/arch/arm/boot/dts/sama5d2-pinfunc.h @@ -837,8 +837,8 @@ #define PIN_PD23__ISC_FIELD PINMUX_PIN(PIN_PD23, 6, 4) #define PIN_PD24 120 #define PIN_PD24__GPIO PINMUX_PIN(PIN_PD24, 0, 0) -#define PIN_PD24__UTXD2 PINMUX_PIN(PIN_PD23, 1, 2) -#define PIN_PD24__FLEXCOM4_IO3 PINMUX_PIN(PIN_PD23, 3, 3) +#define PIN_PD24__UTXD2 PINMUX_PIN(PIN_PD24, 1, 2) +#define PIN_PD24__FLEXCOM4_IO3 PINMUX_PIN(PIN_PD24, 3, 3) #define PIN_PD25 121 #define PIN_PD25__GPIO PINMUX_PIN(PIN_PD25, 0, 0) #define PIN_PD25__SPI1_SPCK PINMUX_PIN(PIN_PD25, 1, 3) diff --git a/arch/arm/boot/dts/sun4i-a10.dtsi b/arch/arm/boot/dts/sun4i-a10.dtsi index 2c8f5e6..bf70d0a 100644 --- a/arch/arm/boot/dts/sun4i-a10.dtsi +++ b/arch/arm/boot/dts/sun4i-a10.dtsi @@ -96,7 +96,7 @@ allwinner,pipeline = "de_fe0-de_be0-lcd0-tve0"; clocks = <&pll5 1>, <&ahb_gates 34>, <&ahb_gates 36>, <&ahb_gates 44>, <&ahb_gates 46>, - <&dram_gates 25>, <&dram_gates 26>; + <&dram_gates 5>, <&dram_gates 25>, <&dram_gates 26>; status = "disabled"; }; }; diff --git a/arch/arm/boot/dts/sun5i-r8-chip.dts b/arch/arm/boot/dts/sun5i-r8-chip.dts index f6898c6..c937c85 100644 --- a/arch/arm/boot/dts/sun5i-r8-chip.dts +++ b/arch/arm/boot/dts/sun5i-r8-chip.dts @@ -52,7 +52,7 @@ / { model = "NextThing C.H.I.P."; - compatible = "nextthing,chip", "allwinner,sun5i-r8"; + compatible = "nextthing,chip", "allwinner,sun5i-r8", "allwinner,sun5i-a13"; aliases { i2c0 = &i2c0; diff --git a/arch/arm/boot/dts/sun6i-a31s-primo81.dts b/arch/arm/boot/dts/sun6i-a31s-primo81.dts index 68b479b..73c133f 100644 --- a/arch/arm/boot/dts/sun6i-a31s-primo81.dts +++ b/arch/arm/boot/dts/sun6i-a31s-primo81.dts @@ -176,8 +176,6 @@ }; ®_dc1sw { - regulator-min-microvolt = <3000000>; - regulator-max-microvolt = <3000000>; regulator-name = "vcc-lcd"; }; diff --git a/arch/arm/boot/dts/sun6i-a31s-yones-toptech-bs1078-v2.dts b/arch/arm/boot/dts/sun6i-a31s-yones-toptech-bs1078-v2.dts index 360adfb..d6ad619 100644 --- a/arch/arm/boot/dts/sun6i-a31s-yones-toptech-bs1078-v2.dts +++ b/arch/arm/boot/dts/sun6i-a31s-yones-toptech-bs1078-v2.dts @@ -135,8 +135,6 @@ ®_dc1sw { regulator-name = "vcc-lcd-usb2"; - regulator-min-microvolt = <3000000>; - regulator-max-microvolt = <3000000>; }; ®_dc5ldo { diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi index 0940a78..ee4e8e7 100644 --- a/arch/arm/boot/dts/sun7i-a20.dtsi +++ b/arch/arm/boot/dts/sun7i-a20.dtsi @@ -85,8 +85,9 @@ compatible = "allwinner,simple-framebuffer", "simple-framebuffer"; allwinner,pipeline = "de_be0-lcd0-tve0"; - clocks = <&pll5 1>, <&ahb_gates 34>, <&ahb_gates 36>, - <&ahb_gates 44>, <&dram_gates 26>; + clocks = <&pll5 1>, + <&ahb_gates 34>, <&ahb_gates 36>, <&ahb_gates 44>, + <&dram_gates 5>, <&dram_gates 26>; status = "disabled"; }; }; diff --git a/arch/arm/include/asm/pgtable-2level.h b/arch/arm/include/asm/pgtable-2level.h index aeddd28..92fd2c8 100644 --- a/arch/arm/include/asm/pgtable-2level.h +++ b/arch/arm/include/asm/pgtable-2level.h @@ -193,6 +193,7 @@ static inline pmd_t *pmd_offset(pud_t *pud, unsigned long addr) #define pmd_large(pmd) (pmd_val(pmd) & 2) #define pmd_bad(pmd) (pmd_val(pmd) & 2) +#define pmd_present(pmd) (pmd_val(pmd)) #define copy_pmd(pmdpd,pmdps) \ do { \ diff --git a/arch/arm/include/asm/pgtable-3level.h b/arch/arm/include/asm/pgtable-3level.h index dc46398..7411466 100644 --- a/arch/arm/include/asm/pgtable-3level.h +++ b/arch/arm/include/asm/pgtable-3level.h @@ -211,6 +211,7 @@ static inline pmd_t *pmd_offset(pud_t *pud, unsigned long addr) : !!(pmd_val(pmd) & (val))) #define pmd_isclear(pmd, val) (!(pmd_val(pmd) & (val))) +#define pmd_present(pmd) (pmd_isset((pmd), L_PMD_SECT_VALID)) #define pmd_young(pmd) (pmd_isset((pmd), PMD_SECT_AF)) #define pte_special(pte) (pte_isset((pte), L_PTE_SPECIAL)) static inline pte_t pte_mkspecial(pte_t pte) @@ -249,10 +250,10 @@ PMD_BIT_FUNC(mkyoung, |= PMD_SECT_AF); #define pfn_pmd(pfn,prot) (__pmd(((phys_addr_t)(pfn) << PAGE_SHIFT) | pgprot_val(prot))) #define mk_pmd(page,prot) pfn_pmd(page_to_pfn(page),prot) -/* represent a notpresent pmd by zero, this is used by pmdp_invalidate */ +/* represent a notpresent pmd by faulting entry, this is used by pmdp_invalidate */ static inline pmd_t pmd_mknotpresent(pmd_t pmd) { - return __pmd(0); + return __pmd(pmd_val(pmd) & ~L_PMD_SECT_VALID); } static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot) diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h index 348caab..d622040 100644 --- a/arch/arm/include/asm/pgtable.h +++ b/arch/arm/include/asm/pgtable.h @@ -182,7 +182,6 @@ extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; #define pgd_offset_k(addr) pgd_offset(&init_mm, addr) #define pmd_none(pmd) (!pmd_val(pmd)) -#define pmd_present(pmd) (pmd_val(pmd)) static inline pte_t *pmd_page_vaddr(pmd_t pmd) { diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c index ef9119f..4d93758 100644 --- a/arch/arm/kernel/ptrace.c +++ b/arch/arm/kernel/ptrace.c @@ -733,8 +733,8 @@ static int vfp_set(struct task_struct *target, if (ret) return ret; - vfp_flush_hwstate(thread); thread->vfpstate.hard = new_vfp; + vfp_flush_hwstate(thread); return 0; } diff --git a/arch/arm/kernel/sys_oabi-compat.c b/arch/arm/kernel/sys_oabi-compat.c index 087acb5..5f221ac 100644 --- a/arch/arm/kernel/sys_oabi-compat.c +++ b/arch/arm/kernel/sys_oabi-compat.c @@ -279,8 +279,12 @@ asmlinkage long sys_oabi_epoll_wait(int epfd, mm_segment_t fs; long ret, err, i; - if (maxevents <= 0 || maxevents > (INT_MAX/sizeof(struct epoll_event))) + if (maxevents <= 0 || + maxevents > (INT_MAX/sizeof(*kbuf)) || + maxevents > (INT_MAX/sizeof(*events))) return -EINVAL; + if (!access_ok(VERIFY_WRITE, events, sizeof(*events) * maxevents)) + return -EFAULT; kbuf = kmalloc(sizeof(*kbuf) * maxevents, GFP_KERNEL); if (!kbuf) return -ENOMEM; @@ -317,6 +321,8 @@ asmlinkage long sys_oabi_semtimedop(int semid, if (nsops < 1 || nsops > SEMOPM) return -EINVAL; + if (!access_ok(VERIFY_READ, tsops, sizeof(*tsops) * nsops)) + return -EFAULT; sops = kmalloc(sizeof(*sops) * nsops, GFP_KERNEL); if (!sops) return -ENOMEM; diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c index dded1b7..72b11d9 100644 --- a/arch/arm/kvm/arm.c +++ b/arch/arm/kvm/arm.c @@ -267,6 +267,7 @@ void kvm_arch_vcpu_free(struct kvm_vcpu *vcpu) kvm_timer_vcpu_terminate(vcpu); kvm_vgic_vcpu_destroy(vcpu); kvm_pmu_vcpu_destroy(vcpu); + kvm_vcpu_uninit(vcpu); kmem_cache_free(kvm_vcpu_cache, vcpu); } diff --git a/arch/arm/kvm/mmu.c b/arch/arm/kvm/mmu.c index d6d4191..dea1452 100644 --- a/arch/arm/kvm/mmu.c +++ b/arch/arm/kvm/mmu.c @@ -893,11 +893,14 @@ static int stage2_set_pmd_huge(struct kvm *kvm, struct kvm_mmu_memory_cache VM_BUG_ON(pmd_present(*pmd) && pmd_pfn(*pmd) != pmd_pfn(*new_pmd)); old_pmd = *pmd; - kvm_set_pmd(pmd, *new_pmd); - if (pmd_present(old_pmd)) + if (pmd_present(old_pmd)) { + pmd_clear(pmd); kvm_tlb_flush_vmid_ipa(kvm, addr); - else + } else { get_page(virt_to_page(pmd)); + } + + kvm_set_pmd(pmd, *new_pmd); return 0; } @@ -946,12 +949,14 @@ static int stage2_set_pte(struct kvm *kvm, struct kvm_mmu_memory_cache *cache, /* Create 2nd stage page table mapping - Level 3 */ old_pte = *pte; - kvm_set_pte(pte, *new_pte); - if (pte_present(old_pte)) + if (pte_present(old_pte)) { + kvm_set_pte(pte, __pte(0)); kvm_tlb_flush_vmid_ipa(kvm, addr); - else + } else { get_page(virt_to_page(pte)); + } + kvm_set_pte(pte, *new_pte); return 0; } diff --git a/arch/arm/mach-imx/mach-imx6ul.c b/arch/arm/mach-imx/mach-imx6ul.c index a38b16b..b56de4b 100644 --- a/arch/arm/mach-imx/mach-imx6ul.c +++ b/arch/arm/mach-imx/mach-imx6ul.c @@ -46,7 +46,7 @@ static int ksz8081_phy_fixup(struct phy_device *dev) static void __init imx6ul_enet_phy_init(void) { if (IS_BUILTIN(CONFIG_PHYLIB)) - phy_register_fixup_for_uid(PHY_ID_KSZ8081, 0xffffffff, + phy_register_fixup_for_uid(PHY_ID_KSZ8081, MICREL_PHY_ID_MASK, ksz8081_phy_fixup); } diff --git a/arch/arm/mach-mvebu/coherency.c b/arch/arm/mach-mvebu/coherency.c index 7e989d6..474abff 100644 --- a/arch/arm/mach-mvebu/coherency.c +++ b/arch/arm/mach-mvebu/coherency.c @@ -162,22 +162,16 @@ exit: } /* - * This ioremap hook is used on Armada 375/38x to ensure that PCIe - * memory areas are mapped as MT_UNCACHED instead of MT_DEVICE. This - * is needed as a workaround for a deadlock issue between the PCIe - * interface and the cache controller. + * This ioremap hook is used on Armada 375/38x to ensure that all MMIO + * areas are mapped as MT_UNCACHED instead of MT_DEVICE. This is + * needed for the HW I/O coherency mechanism to work properly without + * deadlock. */ static void __iomem * -armada_pcie_wa_ioremap_caller(phys_addr_t phys_addr, size_t size, - unsigned int mtype, void *caller) +armada_wa_ioremap_caller(phys_addr_t phys_addr, size_t size, + unsigned int mtype, void *caller) { - struct resource pcie_mem; - - mvebu_mbus_get_pcie_mem_aperture(&pcie_mem); - - if (pcie_mem.start <= phys_addr && (phys_addr + size) <= pcie_mem.end) - mtype = MT_UNCACHED; - + mtype = MT_UNCACHED; return __arm_ioremap_caller(phys_addr, size, mtype, caller); } @@ -186,7 +180,7 @@ static void __init armada_375_380_coherency_init(struct device_node *np) struct device_node *cache_dn; coherency_cpu_base = of_iomap(np, 0); - arch_ioremap_caller = armada_pcie_wa_ioremap_caller; + arch_ioremap_caller = armada_wa_ioremap_caller; /* * We should switch the PL310 to I/O coherency mode only if diff --git a/arch/arm64/include/asm/elf.h b/arch/arm64/include/asm/elf.h index 24ed037..83d48a5 100644 --- a/arch/arm64/include/asm/elf.h +++ b/arch/arm64/include/asm/elf.h @@ -160,14 +160,14 @@ extern int arch_setup_additional_pages(struct linux_binprm *bprm, #define STACK_RND_MASK (0x3ffff >> (PAGE_SHIFT - 12)) #endif -#ifdef CONFIG_COMPAT - #ifdef __AARCH64EB__ #define COMPAT_ELF_PLATFORM ("v8b") #else #define COMPAT_ELF_PLATFORM ("v8l") #endif +#ifdef CONFIG_COMPAT + #define COMPAT_ELF_ET_DYN_BASE (2 * TASK_SIZE_32 / 3) /* AArch32 registers. */ diff --git a/arch/arm64/include/asm/pgtable-hwdef.h b/arch/arm64/include/asm/pgtable-hwdef.h index 5c25b83..9786f77 100644 --- a/arch/arm64/include/asm/pgtable-hwdef.h +++ b/arch/arm64/include/asm/pgtable-hwdef.h @@ -133,7 +133,6 @@ * Section */ #define PMD_SECT_VALID (_AT(pmdval_t, 1) << 0) -#define PMD_SECT_PROT_NONE (_AT(pmdval_t, 1) << 58) #define PMD_SECT_USER (_AT(pmdval_t, 1) << 6) /* AP[1] */ #define PMD_SECT_RDONLY (_AT(pmdval_t, 1) << 7) /* AP[2] */ #define PMD_SECT_S (_AT(pmdval_t, 3) << 8) diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h index 989fef1..44430ce 100644 --- a/arch/arm64/include/asm/pgtable.h +++ b/arch/arm64/include/asm/pgtable.h @@ -280,6 +280,7 @@ static inline pgprot_t mk_sect_prot(pgprot_t prot) #define pmd_trans_huge(pmd) (pmd_val(pmd) && !(pmd_val(pmd) & PMD_TABLE_BIT)) #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ +#define pmd_present(pmd) pte_present(pmd_pte(pmd)) #define pmd_dirty(pmd) pte_dirty(pmd_pte(pmd)) #define pmd_young(pmd) pte_young(pmd_pte(pmd)) #define pmd_wrprotect(pmd) pte_pmd(pte_wrprotect(pmd_pte(pmd))) @@ -288,7 +289,7 @@ static inline pgprot_t mk_sect_prot(pgprot_t prot) #define pmd_mkclean(pmd) pte_pmd(pte_mkclean(pmd_pte(pmd))) #define pmd_mkdirty(pmd) pte_pmd(pte_mkdirty(pmd_pte(pmd))) #define pmd_mkyoung(pmd) pte_pmd(pte_mkyoung(pmd_pte(pmd))) -#define pmd_mknotpresent(pmd) (__pmd(pmd_val(pmd) & ~PMD_TYPE_MASK)) +#define pmd_mknotpresent(pmd) (__pmd(pmd_val(pmd) & ~PMD_SECT_VALID)) #define __HAVE_ARCH_PMD_WRITE #define pmd_write(pmd) pte_write(pmd_pte(pmd)) @@ -327,7 +328,6 @@ extern pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn, unsigned long size, pgprot_t vma_prot); #define pmd_none(pmd) (!pmd_val(pmd)) -#define pmd_present(pmd) (pmd_val(pmd)) #define pmd_bad(pmd) (!(pmd_val(pmd) & 2)) @@ -526,6 +526,21 @@ static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot) } #ifdef CONFIG_ARM64_HW_AFDBM +#define __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS +extern int ptep_set_access_flags(struct vm_area_struct *vma, + unsigned long address, pte_t *ptep, + pte_t entry, int dirty); + +#ifdef CONFIG_TRANSPARENT_HUGEPAGE +#define __HAVE_ARCH_PMDP_SET_ACCESS_FLAGS +static inline int pmdp_set_access_flags(struct vm_area_struct *vma, + unsigned long address, pmd_t *pmdp, + pmd_t entry, int dirty) +{ + return ptep_set_access_flags(vma, address, (pte_t *)pmdp, pmd_pte(entry), dirty); +} +#endif + /* * Atomic pte/pmd modifications. */ @@ -578,9 +593,9 @@ static inline pte_t ptep_get_and_clear(struct mm_struct *mm, } #ifdef CONFIG_TRANSPARENT_HUGEPAGE -#define __HAVE_ARCH_PMDP_GET_AND_CLEAR -static inline pmd_t pmdp_get_and_clear(struct mm_struct *mm, - unsigned long address, pmd_t *pmdp) +#define __HAVE_ARCH_PMDP_HUGE_GET_AND_CLEAR +static inline pmd_t pmdp_huge_get_and_clear(struct mm_struct *mm, + unsigned long address, pmd_t *pmdp) { return pte_pmd(ptep_get_and_clear(mm, address, (pte_t *)pmdp)); } diff --git a/arch/arm64/include/asm/ptrace.h b/arch/arm64/include/asm/ptrace.h index a307eb6..7f94755 100644 --- a/arch/arm64/include/asm/ptrace.h +++ b/arch/arm64/include/asm/ptrace.h @@ -117,6 +117,8 @@ struct pt_regs { }; u64 orig_x0; u64 syscallno; + u64 orig_addr_limit; + u64 unused; // maintain 16 byte alignment }; #define arch_has_single_step() (1) diff --git a/arch/arm64/kernel/asm-offsets.c b/arch/arm64/kernel/asm-offsets.c index 3ae6b31..1abcd88 100644 --- a/arch/arm64/kernel/asm-offsets.c +++ b/arch/arm64/kernel/asm-offsets.c @@ -59,6 +59,7 @@ int main(void) DEFINE(S_PC, offsetof(struct pt_regs, pc)); DEFINE(S_ORIG_X0, offsetof(struct pt_regs, orig_x0)); DEFINE(S_SYSCALLNO, offsetof(struct pt_regs, syscallno)); + DEFINE(S_ORIG_ADDR_LIMIT, offsetof(struct pt_regs, orig_addr_limit)); DEFINE(S_FRAME_SIZE, sizeof(struct pt_regs)); BLANK(); DEFINE(MM_CONTEXT_ID, offsetof(struct mm_struct, context.id.counter)); diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c index 84c8684..2d2d7cb 100644 --- a/arch/arm64/kernel/cpuinfo.c +++ b/arch/arm64/kernel/cpuinfo.c @@ -22,6 +22,8 @@ #include <linux/bitops.h> #include <linux/bug.h> +#include <linux/compat.h> +#include <linux/elf.h> #include <linux/init.h> #include <linux/kernel.h> #include <linux/personality.h> @@ -87,7 +89,8 @@ static const char *const compat_hwcap_str[] = { "idivt", "vfpd32", "lpae", - "evtstrm" + "evtstrm", + NULL }; static const char *const compat_hwcap2_str[] = { @@ -103,6 +106,7 @@ static const char *const compat_hwcap2_str[] = { static int c_show(struct seq_file *m, void *v) { int i, j; + bool compat = personality(current->personality) == PER_LINUX32; for_each_online_cpu(i) { struct cpuinfo_arm64 *cpuinfo = &per_cpu(cpu_data, i); @@ -114,6 +118,9 @@ static int c_show(struct seq_file *m, void *v) * "processor". Give glibc what it expects. */ seq_printf(m, "processor\t: %d\n", i); + if (compat) + seq_printf(m, "model name\t: ARMv8 Processor rev %d (%s)\n", + MIDR_REVISION(midr), COMPAT_ELF_PLATFORM); seq_printf(m, "BogoMIPS\t: %lu.%02lu\n", loops_per_jiffy / (500000UL/HZ), @@ -126,7 +133,7 @@ static int c_show(struct seq_file *m, void *v) * software which does already (at least for 32-bit). */ seq_puts(m, "Features\t:"); - if (personality(current->personality) == PER_LINUX32) { + if (compat) { #ifdef CONFIG_COMPAT for (j = 0; compat_hwcap_str[j]; j++) if (compat_elf_hwcap & (1 << j)) diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S index 12e8d2b..6c3b734 100644 --- a/arch/arm64/kernel/entry.S +++ b/arch/arm64/kernel/entry.S @@ -28,6 +28,7 @@ #include <asm/errno.h> #include <asm/esr.h> #include <asm/irq.h> +#include <asm/memory.h> #include <asm/thread_info.h> #include <asm/unistd.h> @@ -97,7 +98,14 @@ mov x29, xzr // fp pointed to user-space .else add x21, sp, #S_FRAME_SIZE - .endif + get_thread_info tsk + /* Save the task's original addr_limit and set USER_DS (TASK_SIZE_64) */ + ldr x20, [tsk, #TI_ADDR_LIMIT] + str x20, [sp, #S_ORIG_ADDR_LIMIT] + mov x20, #TASK_SIZE_64 + str x20, [tsk, #TI_ADDR_LIMIT] + ALTERNATIVE(nop, SET_PSTATE_UAO(0), ARM64_HAS_UAO, CONFIG_ARM64_UAO) + .endif /* \el == 0 */ mrs x22, elr_el1 mrs x23, spsr_el1 stp lr, x21, [sp, #S_LR] @@ -128,6 +136,14 @@ .endm .macro kernel_exit, el + .if \el != 0 + /* Restore the task's original addr_limit. */ + ldr x20, [sp, #S_ORIG_ADDR_LIMIT] + str x20, [tsk, #TI_ADDR_LIMIT] + + /* No need to restore UAO, it will be restored from SPSR_EL1 */ + .endif + ldp x21, x22, [sp, #S_PC] // load ELR, SPSR .if \el == 0 ct_user_enter @@ -406,7 +422,6 @@ el1_irq: bl trace_hardirqs_off #endif - get_thread_info tsk irq_handler #ifdef CONFIG_PREEMPT diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c index c539208..58651a9 100644 --- a/arch/arm64/kernel/traps.c +++ b/arch/arm64/kernel/traps.c @@ -64,8 +64,7 @@ static void dump_mem(const char *lvl, const char *str, unsigned long bottom, /* * We need to switch to kernel mode so that we can use __get_user - * to safely read from kernel space. Note that we now dump the - * code first, just in case the backtrace kills us. + * to safely read from kernel space. */ fs = get_fs(); set_fs(KERNEL_DS); @@ -111,21 +110,12 @@ static void dump_backtrace_entry(unsigned long where) print_ip_sym(where); } -static void dump_instr(const char *lvl, struct pt_regs *regs) +static void __dump_instr(const char *lvl, struct pt_regs *regs) { unsigned long addr = instruction_pointer(regs); - mm_segment_t fs; char str[sizeof("00000000 ") * 5 + 2 + 1], *p = str; int i; - /* - * We need to switch to kernel mode so that we can use __get_user - * to safely read from kernel space. Note that we now dump the - * code first, just in case the backtrace kills us. - */ - fs = get_fs(); - set_fs(KERNEL_DS); - for (i = -4; i < 1; i++) { unsigned int val, bad; @@ -139,8 +129,18 @@ static void dump_instr(const char *lvl, struct pt_regs *regs) } } printk("%sCode: %s\n", lvl, str); +} - set_fs(fs); +static void dump_instr(const char *lvl, struct pt_regs *regs) +{ + if (!user_mode(regs)) { + mm_segment_t fs = get_fs(); + set_fs(KERNEL_DS); + __dump_instr(lvl, regs); + set_fs(fs); + } else { + __dump_instr(lvl, regs); + } } static void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk) diff --git a/arch/arm64/kvm/hyp/vgic-v3-sr.c b/arch/arm64/kvm/hyp/vgic-v3-sr.c index fff7cd4..3129df9 100644 --- a/arch/arm64/kvm/hyp/vgic-v3-sr.c +++ b/arch/arm64/kvm/hyp/vgic-v3-sr.c @@ -190,12 +190,11 @@ void __hyp_text __vgic_v3_save_state(struct kvm_vcpu *vcpu) if (!(vcpu->arch.vgic_cpu.live_lrs & (1UL << i))) continue; - if (cpu_if->vgic_elrsr & (1 << i)) { + if (cpu_if->vgic_elrsr & (1 << i)) cpu_if->vgic_lr[i] &= ~ICH_LR_STATE; - continue; - } + else + cpu_if->vgic_lr[i] = __gic_v3_get_lr(i); - cpu_if->vgic_lr[i] = __gic_v3_get_lr(i); __gic_v3_set_lr(0, i); } diff --git a/arch/arm64/kvm/inject_fault.c b/arch/arm64/kvm/inject_fault.c index 4d1ac81..e9e0e6d 100644 --- a/arch/arm64/kvm/inject_fault.c +++ b/arch/arm64/kvm/inject_fault.c @@ -162,7 +162,7 @@ static void inject_abt64(struct kvm_vcpu *vcpu, bool is_iabt, unsigned long addr esr |= (ESR_ELx_EC_IABT_CUR << ESR_ELx_EC_SHIFT); if (!is_iabt) - esr |= ESR_ELx_EC_DABT_LOW; + esr |= ESR_ELx_EC_DABT_LOW << ESR_ELx_EC_SHIFT; vcpu_sys_reg(vcpu, ESR_EL1) = esr | ESR_ELx_FSC_EXTABT; } diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c index 95df28b..e22849a9 100644 --- a/arch/arm64/mm/fault.c +++ b/arch/arm64/mm/fault.c @@ -81,6 +81,56 @@ void show_pte(struct mm_struct *mm, unsigned long addr) printk("\n"); } +#ifdef CONFIG_ARM64_HW_AFDBM +/* + * This function sets the access flags (dirty, accessed), as well as write + * permission, and only to a more permissive setting. + * + * It needs to cope with hardware update of the accessed/dirty state by other + * agents in the system and can safely skip the __sync_icache_dcache() call as, + * like set_pte_at(), the PTE is never changed from no-exec to exec here. + * + * Returns whether or not the PTE actually changed. + */ +int ptep_set_access_flags(struct vm_area_struct *vma, + unsigned long address, pte_t *ptep, + pte_t entry, int dirty) +{ + pteval_t old_pteval; + unsigned int tmp; + + if (pte_same(*ptep, entry)) + return 0; + + /* only preserve the access flags and write permission */ + pte_val(entry) &= PTE_AF | PTE_WRITE | PTE_DIRTY; + + /* + * PTE_RDONLY is cleared by default in the asm below, so set it in + * back if necessary (read-only or clean PTE). + */ + if (!pte_write(entry) || !pte_sw_dirty(entry)) + pte_val(entry) |= PTE_RDONLY; + + /* + * Setting the flags must be done atomically to avoid racing with the + * hardware update of the access/dirty state. + */ + asm volatile("// ptep_set_access_flags\n" + " prfm pstl1strm, %2\n" + "1: ldxr %0, %2\n" + " and %0, %0, %3 // clear PTE_RDONLY\n" + " orr %0, %0, %4 // set flags\n" + " stxr %w1, %0, %2\n" + " cbnz %w1, 1b\n" + : "=&r" (old_pteval), "=&r" (tmp), "+Q" (pte_val(*ptep)) + : "L" (~PTE_RDONLY), "r" (pte_val(entry))); + + flush_tlb_fix_spurious_fault(vma, address); + return 1; +} +#endif + /* * The kernel tried to access some page that wasn't present. */ @@ -234,7 +284,8 @@ static int __kprobes do_page_fault(unsigned long addr, unsigned int esr, } if (permission_fault(esr) && (addr < USER_DS)) { - if (get_fs() == KERNEL_DS) + /* regs->orig_addr_limit may be 0 if we entered from EL0 */ + if (regs->orig_addr_limit == KERNEL_DS) die("Accessing user space memory with fs=KERNEL_DS", regs, esr); if (!search_exception_tables(regs->pc)) diff --git a/arch/arm64/mm/flush.c b/arch/arm64/mm/flush.c index dbd12ea..43a76b0 100644 --- a/arch/arm64/mm/flush.c +++ b/arch/arm64/mm/flush.c @@ -71,10 +71,6 @@ void __sync_icache_dcache(pte_t pte, unsigned long addr) { struct page *page = pte_page(pte); - /* no flushing needed for anonymous pages */ - if (!page_mapping(page)) - return; - if (!test_and_set_bit(PG_dcache_clean, &page->flags)) sync_icache_aliases(page_address(page), PAGE_SIZE << compound_order(page)); diff --git a/arch/mips/ath79/early_printk.c b/arch/mips/ath79/early_printk.c index b955faf..d1adc59 100644 --- a/arch/mips/ath79/early_printk.c +++ b/arch/mips/ath79/early_printk.c @@ -31,13 +31,15 @@ static inline void prom_putchar_wait(void __iomem *reg, u32 mask, u32 val) } while (1); } +#define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE) + static void prom_putchar_ar71xx(unsigned char ch) { void __iomem *base = (void __iomem *)(KSEG1ADDR(AR71XX_UART_BASE)); - prom_putchar_wait(base + UART_LSR * 4, UART_LSR_THRE, UART_LSR_THRE); + prom_putchar_wait(base + UART_LSR * 4, BOTH_EMPTY, BOTH_EMPTY); __raw_writel(ch, base + UART_TX * 4); - prom_putchar_wait(base + UART_LSR * 4, UART_LSR_THRE, UART_LSR_THRE); + prom_putchar_wait(base + UART_LSR * 4, BOTH_EMPTY, BOTH_EMPTY); } static void prom_putchar_ar933x(unsigned char ch) diff --git a/arch/mips/include/asm/asmmacro.h b/arch/mips/include/asm/asmmacro.h index 867f924..e689b89 100644 --- a/arch/mips/include/asm/asmmacro.h +++ b/arch/mips/include/asm/asmmacro.h @@ -298,21 +298,21 @@ .set pop .endm - .macro copy_u_w ws, n + .macro copy_s_w ws, n .set push .set mips32r2 .set fp=64 .set msa - copy_u.w $1, $w\ws[\n] + copy_s.w $1, $w\ws[\n] .set pop .endm - .macro copy_u_d ws, n + .macro copy_s_d ws, n .set push .set mips64r2 .set fp=64 .set msa _______________________________________________ unionfs-cvs mailing list: http://unionfs.filesystems.org/ unionfs-cvs@fsl.cs.sunysb.edu http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs