GIT: wrapfs-4.2.y -- Wrapfs: update copyright year to 2015 (push to branch refs/heads/master)

ezk at fsl.cs.sunysb.edu ezk at fsl.cs.sunysb.edu
Sun Dec 13 18:55:49 EST 2015


Push to branch refs/heads/master:
c2db38b79f3bd53cb33c4fb0b3389a3ee85ed692 -->
  fa73aa21aca87330af3c0c46fe801a17b26621e8

 Documentation/devicetree/bindings/usb/dwc3.txt     |   2 +
 Documentation/filesystems/00-INDEX                 |   3 +
 Documentation/filesystems/proc.txt                 |   5 +-
 Documentation/filesystems/wrapfs.txt               | 172 ++++++
 MAINTAINERS                                        |   9 +
 Makefile                                           |   2 +-
 arch/arm/boot/dts/am57xx-beagle-x15.dts            |   3 +-
 arch/arm/boot/dts/armada-385-db-ap.dts             |   2 +-
 arch/arm/boot/dts/berlin2q.dtsi                    |   6 +-
 arch/arm/boot/dts/exynos5420-peach-pit.dts         |   5 +
 arch/arm/boot/dts/exynos5800-peach-pi.dts          |   5 +
 arch/arm/boot/dts/imx27.dtsi                       |  16 +-
 arch/arm/boot/dts/imx7d.dtsi                       |   4 +-
 arch/arm/boot/dts/omap5-uevm.dts                   |  66 ++-
 arch/arm/boot/dts/sama5d4.dtsi                     |   8 +-
 arch/arm/boot/dts/ste-hrefv60plus.dtsi             |   2 +-
 arch/arm/boot/dts/sun6i-a31-hummingbird.dts        |   8 +-
 arch/arm/common/edma.c                             |   6 +-
 arch/arm/include/asm/irq.h                         |   5 +
 arch/arm/kvm/Kconfig                               |   1 +
 arch/arm/mach-at91/pm_suspend.S                    |   2 +
 arch/arm/mach-exynos/pm_domains.c                  |   8 +-
 arch/arm/mach-pxa/include/mach/pxa27x.h            |   2 +-
 arch/arm/mach-pxa/pxa27x.c                         |   2 +-
 arch/arm/mach-tegra/board-paz00.c                  |   4 +-
 arch/arm/mm/dma-mapping.c                          |   7 +
 arch/arm/plat-orion/common.c                       |   2 +-
 arch/arm/vdso/vdsomunge.c                          |  17 +-
 arch/arm64/include/asm/irq.h                       |   5 +
 arch/arm64/include/asm/ptrace.h                    |  16 +-
 arch/arm64/kernel/armv8_deprecated.c               |  18 +-
 arch/arm64/kernel/stacktrace.c                     |   6 +-
 arch/arm64/kernel/suspend.c                        |  22 +-
 arch/arm64/kernel/vmlinux.lds.S                    |   5 +-
 arch/mips/ath79/setup.c                            |   2 +-
 arch/mips/include/asm/cdmm.h                       |  11 +
 arch/mips/kvm/emulate.c                            |   2 +-
 arch/mips/kvm/locore.S                             |  16 +-
 arch/mips/kvm/mips.c                               |   5 +-
 arch/mips/lantiq/clk.c                             |  17 +
 arch/powerpc/kernel/rtas.c                         |   3 +
 arch/s390/kvm/interrupt.c                          |   7 +-
 arch/s390/kvm/kvm-s390.c                           |  10 +-
 arch/s390/kvm/sigp.c                               |   8 +-
 arch/tile/kernel/usb.c                             |   1 +
 arch/um/kernel/trap.c                              |   2 +-
 arch/x86/boot/compressed/eboot.c                   |   8 +-
 arch/x86/include/asm/i8259.h                       |   1 +
 arch/x86/include/asm/kvm_emulate.h                 |  10 +
 arch/x86/include/uapi/asm/svm.h                    |   1 +
 arch/x86/kernel/apic/io_apic.c                     |   4 +-
 arch/x86/kernel/apic/vector.c                      |   6 +-
 arch/x86/kernel/cpu/common.c                       |   3 +-
 arch/x86/kernel/fpu/signal.c                       |  11 +-
 arch/x86/kernel/fpu/xstate.c                       |   1 -
 arch/x86/kernel/head_64.S                          |   8 +
 arch/x86/kernel/i8259.c                            |  29 +-
 arch/x86/kernel/setup.c                            |   8 +
 arch/x86/kernel/verify_cpu.S                       |  12 +-
 arch/x86/kvm/emulate.c                             |  35 +-
 arch/x86/kvm/lapic.c                               |   2 +
 arch/x86/kvm/svm.c                                 |  19 +-
 arch/x86/kvm/vmx.c                                 |   8 +-
 arch/x86/kvm/x86.c                                 |  14 +-
 arch/x86/mm/mpx.c                                  |  47 +-
 arch/x86/xen/enlighten.c                           |   6 +-
 block/blk-core.c                                   |   2 +-
 block/blk-mq-tag.c                                 |   1 +
 block/blk-mq.c                                     |   4 +-
 block/blk-sysfs.c                                  |   1 +
 crypto/ablkcipher.c                                |   2 +-
 crypto/algapi.c                                    |   2 +-
 crypto/api.c                                       |   6 +-
 crypto/crypto_user.c                               |   2 +-
 drivers/block/nvme-core.c                          |  15 +-
 drivers/block/rbd.c                                |  72 +--
 drivers/block/xen-blkfront.c                       |   3 +-
 drivers/bluetooth/ath3k.c                          |   4 +
 drivers/bluetooth/btusb.c                          |   2 +
 drivers/bus/arm-ccn.c                              |   3 +-
 drivers/clk/bcm/clk-iproc-pll.c                    |  13 +-
 drivers/clk/clkdev.c                               |   3 +-
 drivers/clk/versatile/clk-icst.c                   |   4 +-
 drivers/cpufreq/intel_pstate.c                     |   5 +
 drivers/edac/sb_edac.c                             |   8 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu.h                |   1 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c             |   5 +
 drivers/gpu/drm/amd/amdgpu/kv_dpm.c                |   3 +
 drivers/gpu/drm/drm_crtc.c                         |   4 +-
 drivers/gpu/drm/drm_dp_mst_topology.c              |   7 +-
 drivers/gpu/drm/i915/i915_gem_userptr.c            |   5 +-
 drivers/gpu/drm/i915/intel_display.c               |   7 +
 drivers/gpu/drm/i915/intel_lrc.c                   |   1 +
 drivers/gpu/drm/i915/intel_ringbuffer.c            |   2 +
 drivers/gpu/drm/nouveau/nouveau_gem.c              |   5 +-
 drivers/gpu/drm/radeon/atombios_encoders.c         |  19 +-
 drivers/gpu/drm/radeon/radeon.h                    |   1 +
 drivers/gpu/drm/radeon/radeon_encoders.c           |   1 -
 drivers/gpu/drm/radeon/radeon_legacy_encoders.c    |   1 +
 drivers/gpu/drm/radeon/radeon_pm.c                 |  43 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c                |   3 +
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.h                |   6 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c            |   6 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c            |   2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_resource.c           |  29 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_shader.c             |   2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_surface.c            |  12 +-
 drivers/i2c/busses/i2c-mv64xxx.c                   |   2 -
 drivers/iio/accel/st_accel_core.c                  |   6 -
 drivers/infiniband/core/cm.c                       |  10 +-
 drivers/input/mouse/alps.c                         |  48 +-
 drivers/iommu/amd_iommu.c                          |   4 +-
 drivers/iommu/amd_iommu_types.h                    |   1 +
 drivers/iommu/amd_iommu_v2.c                       |   7 +
 drivers/iommu/intel-iommu.c                        |  12 +-
 drivers/irqchip/irq-tegra.c                        |   1 +
 drivers/md/dm-cache-metadata.c                     |   2 +-
 drivers/md/md.c                                    |   3 +-
 drivers/md/persistent-data/dm-btree-remove.c       |  17 +-
 drivers/md/persistent-data/dm-btree.c              |   2 +-
 drivers/md/raid1.c                                 |   2 +-
 drivers/md/raid10.c                                |   2 +-
 drivers/md/raid5.c                                 |   6 +-
 drivers/media/dvb-frontends/m88ds3103.c            |  73 ++-
 drivers/media/dvb-frontends/si2168.c               |   4 +
 drivers/media/tuners/si2157.c                      |   4 +
 drivers/media/usb/dvb-usb-v2/rtl28xxu.c            |  15 +-
 drivers/media/usb/dvb-usb-v2/rtl28xxu.h            |   2 +-
 drivers/mfd/twl6040.c                              |   2 +
 drivers/mmc/card/mmc_test.c                        |   9 +-
 drivers/mmc/core/mmc.c                             |   7 -
 drivers/net/bonding/bond_main.c                    |   1 +
 drivers/net/can/dev.c                              |   2 +-
 drivers/net/can/sja1000/sja1000.c                  |   3 +
 drivers/net/ethernet/amd/xgbe/xgbe-dev.c           |   2 +-
 drivers/net/ethernet/amd/xgbe/xgbe-drv.c           |   8 +-
 drivers/net/ethernet/freescale/fec_main.c          |  10 +-
 drivers/net/ethernet/marvell/mvneta.c              |  10 +-
 drivers/net/ethernet/mellanox/mlx4/cmd.c           |   2 +-
 drivers/net/ethernet/mellanox/mlx4/eq.c            |   2 +-
 drivers/net/ethernet/sfc/ef10.c                    |   4 +-
 drivers/net/ethernet/sfc/farch.c                   |   4 +-
 drivers/net/ethernet/sfc/net_driver.h              |   2 +
 drivers/net/ethernet/sfc/tx.c                      |  30 +-
 .../net/ethernet/stmicro/stmmac/stmmac_ethtool.c   |   7 +-
 drivers/net/macvtap.c                              |   2 +-
 drivers/net/ppp/pppoe.c                            |   2 +-
 drivers/net/usb/qmi_wwan.c                         |   4 +
 drivers/net/wireless/ath/ath10k/mac.c              |   7 +-
 drivers/net/wireless/ath/ath9k/init.c              |   1 +
 drivers/net/wireless/iwlwifi/dvm/lib.c             |   2 +-
 drivers/net/wireless/iwlwifi/iwl-7000.c            |   2 +-
 drivers/net/wireless/iwlwifi/mvm/d3.c              |  27 +-
 drivers/net/wireless/iwlwifi/mvm/fw.c              |   4 +-
 drivers/net/wireless/iwlwifi/mvm/mac80211.c        |   1 +
 drivers/net/wireless/iwlwifi/mvm/mvm.h             |   5 +
 drivers/net/wireless/iwlwifi/mvm/ops.c             |   1 +
 drivers/net/wireless/iwlwifi/pcie/drv.c            |  24 +-
 drivers/net/wireless/iwlwifi/pcie/trans.c          |  10 +-
 drivers/net/wireless/mwifiex/debugfs.c             |  14 +-
 drivers/net/wireless/rtlwifi/pci.h                 |   2 +
 drivers/net/wireless/rtlwifi/rtl8821ae/hw.c        |  17 +
 drivers/net/wireless/rtlwifi/rtl8821ae/sw.c        |   5 +
 drivers/net/wireless/rtlwifi/wifi.h                |   3 +
 drivers/pci/pci-sysfs.c                            |   2 +-
 drivers/pinctrl/intel/pinctrl-baytrail.c           |  59 ++-
 drivers/scsi/mvsas/mv_sas.c                        |   2 +
 drivers/staging/iio/accel/sca3000_ring.c           |   2 +-
 drivers/staging/iio/adc/mxs-lradc.c                |   9 +-
 .../staging/lustre/include/linux/lnet/lib-lnet.h   |   2 +-
 drivers/staging/rtl8712/usb_intf.c                 |   1 +
 drivers/thermal/samsung/exynos_tmu.c               |   2 +-
 drivers/tty/mips_ejtag_fdc.c                       |  35 +-
 drivers/tty/n_tty.c                                |   2 +-
 drivers/tty/serial/8250/8250_dma.c                 |   4 -
 drivers/tty/tty_audit.c                            |   2 +-
 drivers/tty/tty_io.c                               |   4 +
 drivers/tty/tty_ioctl.c                            |   4 -
 drivers/usb/chipidea/ci_hdrc_imx.c                 | 131 ++++-
 drivers/usb/chipidea/udc.c                         |  17 +
 drivers/usb/class/usblp.c                          |   2 +-
 drivers/usb/dwc3/core.c                            |  16 +-
 drivers/usb/dwc3/core.h                            |  22 +
 drivers/usb/dwc3/dwc3-pci.c                        |  26 +
 drivers/usb/dwc3/gadget.c                          |  61 ++-
 drivers/usb/dwc3/platform_data.h                   |   1 +
 drivers/usb/gadget/udc/atmel_usba_udc.c            |   2 +-
 drivers/usb/gadget/udc/net2280.c                   |   2 +-
 drivers/usb/host/ehci-orion.c                      |   3 +-
 drivers/usb/host/xhci-pci.c                        |   1 +
 drivers/usb/host/xhci-ring.c                       |  20 +-
 drivers/usb/host/xhci.c                            |  10 +
 drivers/usb/musb/musb_core.c                       |  10 +-
 drivers/usb/serial/option.c                        |  11 +
 drivers/usb/serial/qcserial.c                      |  96 +++-
 drivers/usb/serial/ti_usb_3410_5052.c              |   2 +
 drivers/usb/serial/ti_usb_3410_5052.h              |   4 +
 drivers/video/console/fbcon.c                      |   1 +
 drivers/xen/events/events_base.c                   |   5 +-
 fs/Kconfig                                         |   1 +
 fs/Makefile                                        |   1 +
 fs/btrfs/ioctl.c                                   |   5 +-
 fs/overlayfs/copy_up.c                             |   6 +-
 fs/overlayfs/inode.c                               |   3 +
 fs/overlayfs/super.c                               |   2 +
 fs/proc/array.c                                    |  16 +-
 fs/proc/base.c                                     |   9 +-
 fs/wrapfs/Kconfig                                  |   8 +
 fs/wrapfs/Makefile                                 |   7 +
 fs/wrapfs/dentry.c                                 |  49 ++
 fs/wrapfs/file.c                                   | 381 ++++++++++++++
 fs/wrapfs/inode.c                                  | 582 +++++++++++++++++++++
 fs/wrapfs/lookup.c                                 | 304 +++++++++++
 fs/wrapfs/main.c                                   | 174 ++++++
 fs/wrapfs/mmap.c                                   |  93 ++++
 fs/wrapfs/super.c                                  | 168 ++++++
 fs/wrapfs/wrapfs.h                                 | 205 ++++++++
 include/linux/backing-dev.h                        |   6 +-
 include/linux/kvm_host.h                           |  11 +
 include/linux/namei.h                              |   2 +
 include/linux/omap-dma.h                           |   2 +-
 include/linux/tty.h                                |   6 +-
 include/net/inet_common.h                          |   3 +-
 include/net/ip_fib.h                               |   2 +-
 include/sound/soc.h                                |   6 +-
 include/sound/wm8904.h                             |   2 +-
 include/uapi/linux/magic.h                         |   2 +
 kernel/module.c                                    |   8 +-
 kernel/sched/deadline.c                            |   8 +-
 kernel/trace/trace_stack.c                         |   7 +
 lib/fault-inject.c                                 |   2 +-
 mm/backing-dev.c                                   |  12 +-
 mm/filemap.c                                       |   9 +-
 mm/huge_memory.c                                   |   3 +-
 net/bluetooth/hidp/core.c                          |  14 +
 net/bluetooth/mgmt.c                               |  12 +-
 net/core/dst.c                                     |   2 +-
 net/ipv4/fib_frontend.c                            |  13 +-
 net/ipv4/fib_semantics.c                           |  18 +-
 net/ipv4/fib_trie.c                                |   2 +-
 net/ipv4/gre_offload.c                             |   3 +-
 net/ipv4/ipmr.c                                    |   6 +-
 net/ipv4/sysctl_net_ipv4.c                         |   4 +-
 net/ipv4/tcp_output.c                              |   2 +-
 net/ipv6/addrconf.c                                |   1 +
 net/ipv6/sit.c                                     |  26 +-
 net/irda/irlmp.c                                   |   2 +-
 net/mac80211/debugfs.c                             |   2 +-
 net/mac80211/mlme.c                                |  21 +-
 net/mac80211/trace.h                               |  10 +-
 net/mac80211/util.c                                |   7 +
 net/netfilter/ipset/ip_set_list_set.c              |   2 +-
 net/netlink/af_netlink.c                           |   4 +-
 net/nfc/nci/hci.c                                  |  90 +++-
 net/packet/af_packet.c                             |  80 +--
 net/rds/connection.c                               |   6 +
 net/rds/tcp_recv.c                                 |  11 +-
 net/tipc/msg.c                                     |  12 +-
 net/tipc/udp_media.c                               |   5 +
 net/wireless/nl80211.c                             |  12 +-
 sound/hda/ext/hdac_ext_bus.c                       |   1 +
 sound/pci/hda/hda_codec.c                          |   4 +-
 sound/pci/hda/patch_conexant.c                     |   1 +
 sound/soc/soc-ops.c                                |  28 +
 sound/usb/midi.c                                   |  46 ++
 sound/usb/quirks-table.h                           |  11 +
 sound/usb/quirks.c                                 |   2 +
 sound/usb/usbaudio.h                               |   1 +
 virt/kvm/irqchip.c                                 |   8 +-
 269 files changed, 3978 insertions(+), 710 deletions(-)

commit fa73aa21aca87330af3c0c46fe801a17b26621e8
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Nov 3 21:28:59 2015 -0500

    Wrapfs: update copyright year to 2015

commit a2651b2c31df77758248f48b1f1d97cf938b16e8
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Nov 3 21:28:59 2015 -0500

    Wrapfs: use vfs xattr helpers
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 538df9831a8d60fc59471b166986785040200afb
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Fri Sep 4 22:59:00 2015 -0400

    Wrapfs: update follow_link
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 6a538ac684a73c57e3bcdfd81604c48c7a568138
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Fri Sep 4 22:33:26 2015 -0400

    Wrapfs: update ->direct_IO op prototype
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit f6467ce782a1f582deb7c7db59030d866c1e8f5a
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Fri Sep 4 22:32:26 2015 -0400

    Wrapfs: use d_inode macro
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit ee9576db86830d6c8b3f92de70079aa515adf024
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Fri Sep 4 22:31:26 2015 -0400

    Wrapfs: remove aio_read/write ops
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit aaca7259e8d1c874bafbb7c7912d833ab8663122
Author: Erez Zadok <ezk at 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.mengyang at stonybrook.edu>
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 80de251481a0b39da83de68d3c8e5439731b6339
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 3e5052135e08f3eee92b99c105a02fc221023f67
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>
    Signed-off-by: Mengyang Li <li.mengyang at stonybrook.edu>

commit ca25de4a1059fb131e2040ef8ff6f749e3ba6a2b
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Sun Aug 10 00:40:56 2014 -0400

    Wrapfs: add read_iter/write_iter opeations
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>
    Signed-off-by: Mengyang Li <li.mengyang at stonybrook.edu>

commit b6e898aac49c4ae775738c632a271759facbd745
Author: Erez Zadok <ezk at 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.mengyang at stonybrook.edu>
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit d7ae74c75e739741fc39efc7131b1b3f0128b7b0
Author: Erez Zadok <ezk at 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.mengyang at stonybrook.edu>
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit b34e30f4650ee584a26c62f097391884c4df8f81
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>
    Signed-off-by: Mengyang Li <li.mengyang at stonybrook.edu>

commit 166aab7fb2f1c185cd1adbfce0d35b6efc3a5861
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Wed Jun 25 22:30:27 2014 -0400

     Wrapfs: support extended attributes (xattr) operations
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>
    Signed-off-by: Mengyang Li <li.mengyang at stonybrook.edu>

commit 3b0e4016ac631d8f252ef5596b87879f694dc05c
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Fri Jun 20 19:40:04 2014 -0400

    Wrapfs: support asynchronous-IO (AIO) operations
    
    Signed-off-by: Li Mengyang <li.mengyang at stonybrook.edu>
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit bdb34bdd58b0d7005a7e97b8505a9fade3903c83
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Fri Jun 20 19:39:40 2014 -0400

    Wrapfs: support direct-IO (DIO) operations
    
    Signed-off-by: Li Mengyang <li.mengyang at stonybrook.edu>
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 29e9b0552f3fe476be35c8436fc20abfbea43742
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit d23e0e0e78439cc1fb3ad39326c2ed3cb81d5be4
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Sat Apr 26 22:43:20 2014 -0400

    Wrapfs: use new vfs_rename prototype
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 58c78200c25c4d95f81e811630c922fef2cc1717
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Thu Apr 3 13:24:28 2014 -0400

    Wrapfs: update documentation
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 5ea4a79b3633aa0bd3f93e9ccf4955dd70fd0b7d
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Thu Apr 3 13:17:55 2014 -0400

    Wrapfs: update maintainers
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit b7216cf2240fa6318f9ec57d92d803136e5d7eae
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Jan 21 03:03:00 2014 -0500

    Wrapfs: update documentation
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit acd1a4c0c34fd7c028f2467f5f2e1f5e3556a940
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Jan 21 01:25:54 2014 -0500

    Wrapfs: 2014 Copyright update
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 40d58e2003d4428a897f685fdcd6b5587bd4fa72
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Nov 26 23:05:22 2013 -0500

    Wrapfs: use generic put_link helper
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit f4af81d6672c7d400fd0e5007e3804ac677bbd5b
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Nov 26 23:03:46 2013 -0500

    Wrapfs: remove unnecessary initializations
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 0fd060eaa77b467aa54f786df58ed6c887e228e5
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Sun Nov 24 11:12:07 2013 -0500

    Wrapfs: remove deprecated init_lower_nd
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit c38857fdb6877c029dfcdf9d3f4de70f4b71746c
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Nov 19 19:00:00 2013 -0500

    Wrapfs: update MAINTAINERS info
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 519942e07bd4f561334e18d41d1a7240c2c03bc5
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Nov 19 18:59:47 2013 -0500

    patch wrapfs-copyright-update.patch

commit b91c2225676fd121097c61ddb37303ea0fcabbd7
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 9f7562af8c3640e98b3133d1171bd2f0591bfffb
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Nov 19 17:22:31 2013 -0500

    Wrapfs: implement ->getattr
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit c95f2c8d0c8cf798542f6a33065c4a7218f0e63f
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Nov 19 17:21:31 2013 -0500

    Wrapfs: use file_inode helper
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit a041588d98bf5513fdde3fbbc32575290e47d6fa
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit fa162c0ffaa37ac025fc8429e2b6cc47b77545af
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 51fd1d9867380c705f8f176fcae8ae1d223e9f28
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 66ad8b5a12af16ae8ed04b47be48174b53656dd9
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Nov 19 17:17:31 2013 -0500

    Wrapfs: ->readdir op now ->iterate
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 6d7559a233672251a469072d96c1061d15480bfb
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 59d931f262a8715ee6a3d899b96efa6364423d6b
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 06ed23c357faf12e75691411615032d1c959a8ab
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Jun 4 23:19:32 2013 -0400

    Wrapfs: declare MODULE_ALIAS_FS
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit f5cbe70a89ebe067afa6dd42d37162cea2a22c98
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 8cb91beea5ce5a3fac0f3ac8d5793195462a1063
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit ee79b02b6ae1eba1153176ad03bffd2f26567f36
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 6c50ab2a9c61b04172f4246c4eb468d0e6859e1e
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 87d6b17624eb1184067c848a0f8c94f8eccde5bf
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit d73f42d264a04b483a537891cf9601d79876b328
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Jun 4 23:19:29 2013 -0400

    Wrapfs: ->lookup takes flags not a nameidata
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit bc5005e27b010ca746d0a9379c21719510485eb3
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 7e7cddb85fff0367522ebbf66e9c4c81a25ef130
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 69a9c8b5852b8221cd83339b62e3cbf3792814a1
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit e59d29cfc687f074267640b9a6314d3c59fd10be
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit cdef3a8139ce6a7869ada897cc649d7f053b39e0
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Jun 4 23:19:27 2013 -0400

    Wrapfs: use vm_munmap in ->mmap
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit c3fa4025cedf59dda3043cf5a7c1fde248d61668
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Jun 4 23:19:27 2013 -0400

    Wrapfs: use clear_inode in evict_inode
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 106df4b634a7cae8bf7b6dfc50c63b7c2a708c09
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Jun 4 23:19:26 2013 -0400

    Wrapfs: use d_make_root
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit c6d847b152f044639a5b99b168d8725caa435d3d
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Jan 31 04:40:19 2012 -0500

    Wrapfs: use mode_t
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit dc3f4f9fa5ec82c8984caef3a1095f201a641987
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Sun Jan 29 20:34:27 2012 -0500

    Wrapfs: use set_nlink()
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 6d6c8e8744338d40ebe56b86af269d2c25baa693
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 3cbff103999abab39138e6c5e50b19ea575505bb
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Sep 6 00:10:32 2011 -0400

    Wrapfs: use d_alloc_root
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit fdbecb67b5d13d7174765289a08c1d3cf5d73c3e
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Sep 6 00:10:31 2011 -0400

    Wrapfs: use d_set_d_op
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 1eb25ad92e16c2427a78cabca00059ed7a131048
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Sep 6 00:10:30 2011 -0400

    Wrapfs: use updated vfs_path_lookup prototype
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 84f32cef70f11dd62a1af0198322d65fcbeeda99
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Sep 6 00:10:30 2011 -0400

    Wrapfs: ->fsync updates for new prototype
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit afd3f9275f75c6835d5d711e38df9f1a58f814e3
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Sep 6 00:10:29 2011 -0400

    Wrapfs: support LOOKUP_RCU in ->d_revalidate
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 5f722e46a851cd69cee48e6f0790240105c6b051
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Sep 6 00:10:28 2011 -0400

    Wrapfs: new ->permission prototype and fixes.
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 0acffb008f2db5759368ddd52113c10cca2faa67
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 70b6321a10de88a76ac1da7dd1f44c10b815f428
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Fri Mar 18 13:14:28 2011 -0400

    Wrapfs: remove extra debug in rmdir
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 9e5e0ba11f1dfaabb3b4f4045f5d64fde8161640
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Fri Mar 18 12:38:01 2011 -0400

    Wrapfs: checkpatch fixes
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 72fac1af050ad08883c9435f1014a9a5423a3c16
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit f9540e433e0db59f62a5496669c9d97efca00999
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Thu Mar 17 23:21:55 2011 -0400

    Wrapfs: copyright update for 2011
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit ac70b319d05ffd0580b850ee77ad0eee21731e79
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 5305bea34eda700c42656928eb08f03c99742c7b
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 8966a80bfd5a24656fa031d02cdeac28de12204d
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 541250fa5081d83dae6bbba8ea6d8e71a61b34c5
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit b9221e4cdeda1fe70de6cc316aae85178600bbea
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 55226db2c40a6a1f33910aa1bc6168045b301fae
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Fri Nov 12 18:15:05 2010 -0500

    Wrapfs: handle maxbytes properly
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 6f517193fe2fd9df3f6f6835c23340e95d5decd8
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 54472d0e0a9944f3606aedd08f4b784dd8d92962
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit a3b28fbdfec9f0aa3dcde6c94363e495c67b075d
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Fri Aug 6 23:37:29 2010 -0400

    Wrapfs: update ->fsync prototype
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit cf469d0173f371725259e0146859d2150838811b
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Apr 20 21:22:02 2010 -0400

    Wrapfs: update documentation
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 7549355adc85aa6d5f61b3c24d3aee8e9cc8813a
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Tue Apr 20 15:32:09 2010 -0400

    Wrapfs: include slab.h
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 306ad92a5658e5c97c69ccf7675b8177b61d7ce3
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 13eb53aac17437ff5efcab22b4d1f747890bc372
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 7f64b44e67f9bca677e50007e62c11730796b0da
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 401ad04e65c9ceba17fbfa3082337f9421d6b995
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Mon Jan 4 20:45:06 2010 -0500

    Kconfig: hook to configure Wrapfs
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 40fc58a091492d60cb4d8b4465cd4752c817fe6c
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Mon Jan 4 20:45:06 2010 -0500

    Makefile: hook to compile Wrapfs
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 67f5607d7ab2c9224db2abccd01c34e3920e2f77
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Mon Jan 4 20:45:06 2010 -0500

    Wrapfs: file system magic number
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 8df6c398fcd260933602c17ac72693a91fe4dae6
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Mon Jan 4 20:45:06 2010 -0500

    Wrapfs: Kconfig options
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 2abbffdd677401578c92cf10bed653126ee7d5ff
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Mon Jan 4 20:45:06 2010 -0500

    Wrapfs: main Makefile
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 4c0e9ff4219deaa784f630b1f285b9cbd2a8c74d
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 50294ed824c445c7fc103ff465b6bd6b158beb4d
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Mon Jan 4 20:45:06 2010 -0500

    Wrapfs: mount-time and module-linkage functions
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 321c7ead1e3deb593261a8665768c3a91346d3da
Author: Erez Zadok <ezk at 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 <ezk at cs.sunysb.edu>

commit 415ef7d82774cafaf7b5901d7e2d3b8e3bb4e23a
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Mon Jan 4 20:45:06 2010 -0500

    Wrapfs: file operations
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 89e830fa32168dd2c9ed38465be33c8853445abb
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Mon Jan 4 20:45:06 2010 -0500

    Wrapfs: dentry operations
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit e7da25436e996d8e2e009cf3a962496ecc6ff780
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Mon Jan 4 20:45:06 2010 -0500

    Wrapfs: inode operations
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 2a867ae59676a2089a8303d0895d27bad0f37226
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Mon Jan 4 20:45:06 2010 -0500

    Wrapfs: superblock operations
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 441a919b559a16ac3f730da7e82734ef6360f5da
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Mon Jan 4 20:45:06 2010 -0500

    Wrapfs: main header file
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 620cb6e0e746acc47b2cf086a10b7a6cf0e69a1a
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Mon Jan 4 20:45:06 2010 -0500

    Wrapfs: Maintainers
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 7b8f6376b1552ba8f4e23c5ef5f667a771f025f8
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Mon Jan 4 20:45:06 2010 -0500

    Documentation: index entry for Wrapfs
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 018695ac2c434cf2de27c7a5f12725c49287cc67
Author: Erez Zadok <ezk at cs.sunysb.edu>
Date:   Mon Jan 4 20:45:06 2010 -0500

    Wrapfs: introduction and usage documentation
    
    Signed-off-by: Erez Zadok <ezk at cs.sunysb.edu>

commit 7317505d86acdb03b248901d198386764fb6c2f6
Author: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
Date:   Wed Dec 9 14:31:40 2015 -0500

    Linux 4.2.7

commit 069e1ce1b502506c23b5d98b41c6c6ef88bf1d9e
Author: Sudip Mukherjee <sudipm.mukherjee at gmail.com>
Date:   Mon Sep 7 20:06:57 2015 +0530

    tile: fix build failure
    
    commit 3a48d13d76c0088a988a2e4f5b4d94872bdf58f3 upstream.
    
    When building with allmodconfig the build was failing with the error:
    
    arch/tile/kernel/usb.c:70:1: warning: data definition has no type or storage class [enabled by default]
    arch/tile/kernel/usb.c:70:1: error: type defaults to 'int' in declaration of 'arch_initcall' [-Werror=implicit-int]
    arch/tile/kernel/usb.c:70:1: warning: parameter names (without types) in function declaration [enabled by default]
    arch/tile/kernel/usb.c:63:19: warning: 'tilegx_usb_init' defined but not used [-Wunused-function]
    
    Include linux/module.h to resolve the build failure.
    
    Signed-off-by: Sudip Mukherjee <sudip at vectorindia.org>
    Signed-off-by: Chris Metcalf <cmetcalf at ezchip.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>

commit 7691b85a0295aafb1648da2caee75ada0f090033
Author: David Hildenbrand <dahi at linux.vnet.ibm.com>
Date:   Fri Nov 6 12:08:48 2015 +0100

    KVM: s390: enable SIMD only when no VCPUs were created
    
    commit 5967c17b118a2bd1dd1d554cc4eee16233e52bec upstream.
    
    We should never allow to enable/disable any facilities for the guest
    when other VCPUs were already created.
    
    kvm_arch_vcpu_(load|put) relies on SIMD not changing during runtime.
    If somebody would create and run VCPUs and then decides to enable
    SIMD, undefined behaviour could be possible (e.g. vector save area
    not being set up).
    
    Acked-by: Christian Borntraeger <borntraeger at de.ibm.com>
    Acked-by: Cornelia Huck <cornelia.huck at de.ibm.com>
    Signed-off-by: David Hildenbrand <dahi at linux.vnet.ibm.com>
    Signed-off-by: Christian Borntraeger <borntraeger at de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>

commit e8d097151d309eb71f750bbf34e6a7ef6256da7e
Author: Boris Ostrovsky <boris.ostrovsky at oracle.com>
Date:   Fri Nov 20 11:25:04 2015 -0500

    xen/events: Always allocate legacy interrupts on PV guests
    
    commit b4ff8389ed14b849354b59ce9b360bdefcdbf99c upstream.
    
    After commit 8c058b0b9c34 ("x86/irq: Probe for PIC presence before
    allocating descs for legacy IRQs") early_irq_init() will no longer
    preallocate descriptors for legacy interrupts if PIC does not
    exist, which is the case for Xen PV guests.
    
    Therefore we may need to allocate those descriptors ourselves.
    
    Signed-off-by: Boris Ostrovsky <boris.ostrovsky at oracle.com>
    Suggested-by: Thomas Gleixner <tglx at linutronix.de>
    Signed-off-by: David Vrabel <david.vrabel at citrix.com>
    Cc: Vitaly Kuznetsov <vkuznets at redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>

commit 06992dcaf2476456a66a0ab907b36c507161dedf
Author: Arnd Bergmann <arnd at arndb.de>
Date:   Sun Sep 27 16:45:01 2015 -0400

    staging/lustre: use jiffies for lp_last_query times
    
    commit 9f088dba3cc267ea11ec0da318cd0175575b5f9b upstream.
    
    The recently introduced lnet_peer_set_alive() function uses
    get_seconds() to read the current time into a shared variable,
    but all other uses of that variable compare it to jiffies values.
    
    This changes the current use to jiffies as well for consistency.
    
    Signed-off-by: Arnd Bergmann <arnd at arndb.de>
    Fixes: af3fa7c71bf ("staging/lustre/lnet: peer aliveness status and NI status")
    Cc: Liang Zhen <liang.zhen at intel.com>
    Cc: James Simmons <uja.ornl at gmail.com>
    Cc: Isaac Huang <he.huang at intel.com>
    Signed-off-by: Oleg Drokin <oleg.drokin at intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>

commit dcdd1b5255126b84682e3bc6884df25bbf46c0c4
Author: Rajmohan Mani <rajmohan.mani at intel.com>
Date:   Wed Nov 18 10:48:20 2015 +0200

    xhci: Workaround to get Intel xHCI reset working more reliably
    
    commit a5964396190d0c40dd549c23848c282fffa5d1f2 upstream.
    
    Existing Intel xHCI controllers require a delay of 1 mS,
    after setting the CMD_RESET bit in command register, before
    accessing any HC registers. This allows the HC to complete
    the reset operation and be ready for HC register access.
    Without this delay, the subsequent HC register access,
    may result in a system hang, very rarely.
    
    Verified CherryView / Braswell platforms go through over
    5000 warm reboot cycles (which was not possible without
    this patch), without any xHCI reset hang.
    
    Signed-off-by: Rajmohan Mani <rajmohan.mani at intel.com>
    Tested-by: Joe Lawrence <joe.lawrence at stratus.com>
    Signed-off-by: Mathias Nyman <mathias.nyman at linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>

diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt
index 0815eac..e12f344 100644
--- a/Documentation/devicetree/bindings/usb/dwc3.txt
+++ b/Documentation/devicetree/bindings/usb/dwc3.txt
@@ -35,6 +35,8 @@ Optional properties:
 			LTSSM during USB3 Compliance mode.
  - snps,dis_u3_susphy_quirk: when set core will disable USB3 suspend phy.
  - snps,dis_u2_susphy_quirk: when set core will disable USB2 suspend phy.
+ - snps,dis_enblslpm_quirk: when set clears the enblslpm in GUSB2PHYCFG,
+			disabling the suspend signal to the PHY.
  - snps,is-utmi-l1-suspend: true when DWC3 asserts output signal
 			utmi_l1_suspend_n, false when asserts utmi_sleep_n
  - snps,hird-threshold: HIRD threshold
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt
index 6f7fafd..3e2844e 100644
--- a/Documentation/filesystems/proc.txt
+++ b/Documentation/filesystems/proc.txt
@@ -140,7 +140,8 @@ Table 1-1: Process specific entries in /proc
  stat		Process status
  statm		Process memory status information
  status		Process status in human readable form
- wchan		If CONFIG_KALLSYMS is set, a pre-decoded wchan
+ wchan		Present with CONFIG_KALLSYMS=y: it shows the kernel function
+		symbol the task is blocked in - or "0" if not blocked.
  pagemap	Page table
  stack		Report full stack trace, enable via CONFIG_STACKTRACE
  smaps		a extension based on maps, showing the memory consumption of
@@ -310,7 +311,7 @@ Table 1-4: Contents of the stat files (as of 2.6.30-rc7)
   blocked       bitmap of blocked signals
   sigign        bitmap of ignored signals
   sigcatch      bitmap of caught signals
-  wchan         address where process went to sleep
+  0		(place holder, used to be the wchan address, use /proc/PID/wchan instead)
   0             (place holder)
   0             (place holder)
   exit_signal   signal to send to parent thread on exit
diff --git a/Makefile b/Makefile
index 96076dc..f5014ea 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 VERSION = 4
 PATCHLEVEL = 2
-SUBLEVEL = 5
+SUBLEVEL = 7
 EXTRAVERSION =
 NAME = Hurr durr I'ma sheep
 
diff --git a/arch/arm/boot/dts/am57xx-beagle-x15.dts b/arch/arm/boot/dts/am57xx-beagle-x15.dts
index a63bf78..03385fa 100644
--- a/arch/arm/boot/dts/am57xx-beagle-x15.dts
+++ b/arch/arm/boot/dts/am57xx-beagle-x15.dts
@@ -415,11 +415,12 @@
 				/* SMPS9 unused */
 
 				ldo1_reg: ldo1 {
-					/* VDD_SD  */
+					/* VDD_SD / VDDSHV8  */
 					regulator-name = "ldo1";
 					regulator-min-microvolt = <1800000>;
 					regulator-max-microvolt = <3300000>;
 					regulator-boot-on;
+					regulator-always-on;
 				};
 
 				ldo2_reg: ldo2 {
diff --git a/arch/arm/boot/dts/armada-385-db-ap.dts b/arch/arm/boot/dts/armada-385-db-ap.dts
index 89f5a95..4047621 100644
--- a/arch/arm/boot/dts/armada-385-db-ap.dts
+++ b/arch/arm/boot/dts/armada-385-db-ap.dts
@@ -46,7 +46,7 @@
 
 / {
 	model = "Marvell Armada 385 Access Point Development Board";
-	compatible = "marvell,a385-db-ap", "marvell,armada385", "marvell,armada38x";
+	compatible = "marvell,a385-db-ap", "marvell,armada385", "marvell,armada380";
 
 	chosen {
 		stdout-path = "serial1:115200n8";
diff --git a/arch/arm/boot/dts/berlin2q.dtsi b/arch/arm/boot/dts/berlin2q.dtsi
index 63a4849..d4dbd28 100644
--- a/arch/arm/boot/dts/berlin2q.dtsi
+++ b/arch/arm/boot/dts/berlin2q.dtsi
@@ -152,7 +152,7 @@
 		};
 
 		usb_phy2: phy at a2f400 {
-			compatible = "marvell,berlin2-usb-phy";
+			compatible = "marvell,berlin2cd-usb-phy";
 			reg = <0xa2f400 0x128>;
 			#phy-cells = <0>;
 			resets = <&chip_rst 0x104 14>;
@@ -170,7 +170,7 @@
 		};
 
 		usb_phy0: phy at b74000 {
-			compatible = "marvell,berlin2-usb-phy";
+			compatible = "marvell,berlin2cd-usb-phy";
 			reg = <0xb74000 0x128>;
 			#phy-cells = <0>;
 			resets = <&chip_rst 0x104 12>;
@@ -178,7 +178,7 @@
 		};
 
 		usb_phy1: phy at b78000 {
-			compatible = "marvell,berlin2-usb-phy";
+			compatible = "marvell,berlin2cd-usb-phy";
 			reg = <0xb78000 0x128>;
 			#phy-cells = <0>;
 			resets = <&chip_rst 0x104 13>;
diff --git a/arch/arm/boot/dts/exynos5420-peach-pit.dts b/arch/arm/boot/dts/exynos5420-peach-pit.dts
index 8f4d76c..1b95da7 100644
--- a/arch/arm/boot/dts/exynos5420-peach-pit.dts
+++ b/arch/arm/boot/dts/exynos5420-peach-pit.dts
@@ -915,6 +915,11 @@
 	};
 };
 
+&pmu_system_controller {
+	assigned-clocks = <&pmu_system_controller 0>;
+	assigned-clock-parents = <&clock CLK_FIN_PLL>;
+};
+
 &rtc {
 	status = "okay";
 	clocks = <&clock CLK_RTC>, <&max77802 MAX77802_CLK_32K_AP>;
diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts b/arch/arm/boot/dts/exynos5800-peach-pi.dts
index 7d5b386..8f40c7e 100644
--- a/arch/arm/boot/dts/exynos5800-peach-pi.dts
+++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts
@@ -878,6 +878,11 @@
 	};
 };
 
+&pmu_system_controller {
+	assigned-clocks = <&pmu_system_controller 0>;
+	assigned-clock-parents = <&clock CLK_FIN_PLL>;
+};
+
 &rtc {
 	status = "okay";
 	clocks = <&clock CLK_RTC>, <&max77802 MAX77802_CLK_32K_AP>;
diff --git a/arch/arm/boot/dts/imx27.dtsi b/arch/arm/boot/dts/imx27.dtsi
index b69be5c..8c603fd 100644
--- a/arch/arm/boot/dts/imx27.dtsi
+++ b/arch/arm/boot/dts/imx27.dtsi
@@ -477,7 +477,10 @@
 				compatible = "fsl,imx27-usb";
 				reg = <0x10024000 0x200>;
 				interrupts = <56>;
-				clocks = <&clks IMX27_CLK_USB_IPG_GATE>;
+				clocks = <&clks IMX27_CLK_USB_IPG_GATE>,
+					<&clks IMX27_CLK_USB_AHB_GATE>,
+					<&clks IMX27_CLK_USB_DIV>;
+				clock-names = "ipg", "ahb", "per";
 				fsl,usbmisc = <&usbmisc 0>;
 				status = "disabled";
 			};
@@ -486,7 +489,10 @@
 				compatible = "fsl,imx27-usb";
 				reg = <0x10024200 0x200>;
 				interrupts = <54>;
-				clocks = <&clks IMX27_CLK_USB_IPG_GATE>;
+				clocks = <&clks IMX27_CLK_USB_IPG_GATE>,
+					<&clks IMX27_CLK_USB_AHB_GATE>,
+					<&clks IMX27_CLK_USB_DIV>;
+				clock-names = "ipg", "ahb", "per";
 				fsl,usbmisc = <&usbmisc 1>;
 				dr_mode = "host";
 				status = "disabled";
@@ -496,7 +502,10 @@
 				compatible = "fsl,imx27-usb";
 				reg = <0x10024400 0x200>;
 				interrupts = <55>;
-				clocks = <&clks IMX27_CLK_USB_IPG_GATE>;
+				clocks = <&clks IMX27_CLK_USB_IPG_GATE>,
+					<&clks IMX27_CLK_USB_AHB_GATE>,
+					<&clks IMX27_CLK_USB_DIV>;
+				clock-names = "ipg", "ahb", "per";
 				fsl,usbmisc = <&usbmisc 2>;
 				dr_mode = "host";
 				status = "disabled";
@@ -506,7 +515,6 @@
 				#index-cells = <1>;
 				compatible = "fsl,imx27-usbmisc";
 				reg = <0x10024600 0x200>;
-				clocks = <&clks IMX27_CLK_USB_AHB_GATE>;
 			};
 
 			sahara2: sahara at 10025000 {
diff --git a/arch/arm/boot/dts/imx7d.dtsi b/arch/arm/boot/dts/imx7d.dtsi
index c42cf8d..9accbae 100644
--- a/arch/arm/boot/dts/imx7d.dtsi
+++ b/arch/arm/boot/dts/imx7d.dtsi
@@ -340,10 +340,10 @@
 				status = "disabled";
 			};
 
-			uart2: serial at 30870000 {
+			uart2: serial at 30890000 {
 				compatible = "fsl,imx7d-uart",
 					     "fsl,imx6q-uart";
-				reg = <0x30870000 0x10000>;
+				reg = <0x30890000 0x10000>;
 				interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
 				clocks = <&clks IMX7D_UART2_ROOT_CLK>,
 					<&clks IMX7D_UART2_ROOT_CLK>;
diff --git a/arch/arm/boot/dts/omap5-uevm.dts b/arch/arm/boot/dts/omap5-uevm.dts
index 5771a14..23d645d 100644
--- a/arch/arm/boot/dts/omap5-uevm.dts
+++ b/arch/arm/boot/dts/omap5-uevm.dts
@@ -31,6 +31,24 @@
 		regulator-max-microvolt = <3000000>;
 	};
 
+	mmc3_pwrseq: sdhci0_pwrseq {
+		compatible = "mmc-pwrseq-simple";
+		clocks = <&clk32kgaudio>;
+		clock-names = "ext_clock";
+	};
+
+	vmmcsdio_fixed: fixedregulator-mmcsdio {
+		compatible = "regulator-fixed";
+		regulator-name = "vmmcsdio_fixed";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		gpio = <&gpio5 12 GPIO_ACTIVE_HIGH>;	/* gpio140 WLAN_EN */
+		enable-active-high;
+		startup-delay-us = <70000>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&wlan_pins>;
+	};
+
 	/* HS USB Host PHY on PORT 2 */
 	hsusb2_phy: hsusb2_phy {
 		compatible = "usb-nop-xceiv";
@@ -197,12 +215,20 @@
 		>;
 	};
 
-	mcspi4_pins: pinmux_mcspi4_pins {
+	mmc3_pins: pinmux_mmc3_pins {
+		pinctrl-single,pins = <
+			OMAP5_IOPAD(0x01a4, PIN_INPUT_PULLUP | MUX_MODE0) /* wlsdio_clk */
+			OMAP5_IOPAD(0x01a6, PIN_INPUT_PULLUP | MUX_MODE0) /* wlsdio_cmd */
+			OMAP5_IOPAD(0x01a8, PIN_INPUT_PULLUP | MUX_MODE0) /* wlsdio_data0 */
+			OMAP5_IOPAD(0x01aa, PIN_INPUT_PULLUP | MUX_MODE0) /* wlsdio_data1 */
+			OMAP5_IOPAD(0x01ac, PIN_INPUT_PULLUP | MUX_MODE0) /* wlsdio_data2 */
+			OMAP5_IOPAD(0x01ae, PIN_INPUT_PULLUP | MUX_MODE0) /* wlsdio_data3 */
+		>;
+	};
+
+	wlan_pins: pinmux_wlan_pins {
 		pinctrl-single,pins = <
-			0x164 (PIN_INPUT | MUX_MODE1)		/*  mcspi4_clk */
-			0x168 (PIN_INPUT | MUX_MODE1)		/*  mcspi4_simo */
-			0x16a (PIN_INPUT | MUX_MODE1)		/*  mcspi4_somi */
-			0x16c (PIN_INPUT | MUX_MODE1)		/*  mcspi4_cs0 */
+			OMAP5_IOPAD(0x1bc, PIN_OUTPUT | MUX_MODE6) /* mcspi1_clk.gpio5_140 */
 		>;
 	};
 
@@ -276,6 +302,12 @@
 			0x1A (PIN_OUTPUT | MUX_MODE0) /* fref_clk1_out, USB hub clk */
 		>;
 	};
+
+	wlcore_irq_pin: pinmux_wlcore_irq_pin {
+		pinctrl-single,pins = <
+			OMAP5_IOPAD(0x040, WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE6)	/* llia_wakereqin.gpio1_wk14 */
+		>;
+	};
 };
 
 &mmc1 {
@@ -290,8 +322,25 @@
 };
 
 &mmc3 {
+	vmmc-supply = <&vmmcsdio_fixed>;
+	mmc-pwrseq = <&mmc3_pwrseq>;
 	bus-width = <4>;
-	ti,non-removable;
+	non-removable;
+	cap-power-off-card;
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc3_pins &wlcore_irq_pin>;
+	interrupts-extended = <&gic GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH
+			       &omap5_pmx_core 0x168>;
+
+	#address-cells = <1>;
+	#size-cells = <0>;
+	wlcore: wlcore at 2 {
+		compatible = "ti,wl1271";
+		reg = <2>;
+		interrupt-parent = <&gpio1>;
+		interrupts = <14 IRQ_TYPE_LEVEL_HIGH>;	/* gpio 14 */
+		ref-clock-frequency = <26000000>;
+	};
 };
 
 &mmc4 {
@@ -591,11 +640,6 @@
 	pinctrl-0 = <&mcspi3_pins>;
 };
 
-&mcspi4 {
-	pinctrl-names = "default";
-	pinctrl-0 = <&mcspi4_pins>;
-};
-
 &uart1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&uart1_pins>;
diff --git a/arch/arm/boot/dts/sama5d4.dtsi b/arch/arm/boot/dts/sama5d4.dtsi
index 3ee22ee..1ba10e4 100644
--- a/arch/arm/boot/dts/sama5d4.dtsi
+++ b/arch/arm/boot/dts/sama5d4.dtsi
@@ -939,11 +939,11 @@
 				reg = <0xf8018000 0x4000>;
 				interrupts = <33 IRQ_TYPE_LEVEL_HIGH 6>;
 				dmas = <&dma1
-					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1))
-					AT91_XDMAC_DT_PERID(4)>,
+					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
+					| AT91_XDMAC_DT_PERID(4))>,
 				       <&dma1
-					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1))
-					AT91_XDMAC_DT_PERID(5)>;
+					(AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1)
+					| AT91_XDMAC_DT_PERID(5))>;
 				dma-names = "tx", "rx";
 				pinctrl-names = "default";
 				pinctrl-0 = <&pinctrl_i2c1>;
diff --git a/arch/arm/boot/dts/ste-hrefv60plus.dtsi b/arch/arm/boot/dts/ste-hrefv60plus.dtsi
index 810cda7..9c2387b 100644
--- a/arch/arm/boot/dts/ste-hrefv60plus.dtsi
+++ b/arch/arm/boot/dts/ste-hrefv60plus.dtsi
@@ -56,7 +56,7 @@
 					/* VMMCI level-shifter enable */
 					default_hrefv60_cfg2 {
 						pins = "GPIO169_D22";
-						ste,config = <&gpio_out_lo>;
+						ste,config = <&gpio_out_hi>;
 					};
 					/* VMMCI level-shifter voltage select */
 					default_hrefv60_cfg3 {
diff --git a/arch/arm/boot/dts/sun6i-a31-hummingbird.dts b/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
index d0cfada..18f26ca 100644
--- a/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
+++ b/arch/arm/boot/dts/sun6i-a31-hummingbird.dts
@@ -184,18 +184,18 @@
 				regulator-name = "vcc-3v0";
 			};
 
-			vdd_cpu: dcdc2 {
+			vdd_gpu: dcdc2 {
 				regulator-always-on;
 				regulator-min-microvolt = <700000>;
 				regulator-max-microvolt = <1320000>;
-				regulator-name = "vdd-cpu";
+				regulator-name = "vdd-gpu";
 			};
 
-			vdd_gpu: dcdc3 {
+			vdd_cpu: dcdc3 {
 				regulator-always-on;
 				regulator-min-microvolt = <700000>;
 				regulator-max-microvolt = <1320000>;
-				regulator-name = "vdd-gpu";
+				regulator-name = "vdd-cpu";
 			};
 
 			vdd_sys_dll: dcdc4 {
diff --git a/arch/arm/common/edma.c b/arch/arm/common/edma.c
index 873dbfc..56fc339 100644
--- a/arch/arm/common/edma.c
+++ b/arch/arm/common/edma.c
@@ -406,7 +406,8 @@ static irqreturn_t dma_irq_handler(int irq, void *data)
 					BIT(slot));
 			if (edma_cc[ctlr]->intr_data[channel].callback)
 				edma_cc[ctlr]->intr_data[channel].callback(
-					channel, EDMA_DMA_COMPLETE,
+					EDMA_CTLR_CHAN(ctlr, channel),
+					EDMA_DMA_COMPLETE,
 					edma_cc[ctlr]->intr_data[channel].data);
 		}
 	} while (sh_ipr);
@@ -460,7 +461,8 @@ static irqreturn_t dma_ccerr_handler(int irq, void *data)
 					if (edma_cc[ctlr]->intr_data[k].
 								callback) {
 						edma_cc[ctlr]->intr_data[k].
-						callback(k,
+						callback(
+						EDMA_CTLR_CHAN(ctlr, k),
 						EDMA_DMA_CC_ERROR,
 						edma_cc[ctlr]->intr_data
 						[k].data);
diff --git a/arch/arm/include/asm/irq.h b/arch/arm/include/asm/irq.h
index 53c15de..6a9851e 100644
--- a/arch/arm/include/asm/irq.h
+++ b/arch/arm/include/asm/irq.h
@@ -35,6 +35,11 @@ extern void (*handle_arch_irq)(struct pt_regs *);
 extern void set_handle_irq(void (*handle_irq)(struct pt_regs *));
 #endif
 
+static inline int nr_legacy_irqs(void)
+{
+	return NR_IRQS_LEGACY;
+}
+
 #endif
 
 #endif
diff --git a/arch/arm/kvm/Kconfig b/arch/arm/kvm/Kconfig
index bfb915d..dd5fc1e 100644
--- a/arch/arm/kvm/Kconfig
+++ b/arch/arm/kvm/Kconfig
@@ -21,6 +21,7 @@ config KVM
 	depends on MMU && OF
 	select PREEMPT_NOTIFIERS
 	select ANON_INODES
+	select ARM_GIC
 	select HAVE_KVM_CPU_RELAX_INTERCEPT
 	select HAVE_KVM_ARCH_TLB_FLUSH_ALL
 	select KVM_MMIO
diff --git a/arch/arm/mach-at91/pm_suspend.S b/arch/arm/mach-at91/pm_suspend.S
index 0d95f48..a25defd 100644
--- a/arch/arm/mach-at91/pm_suspend.S
+++ b/arch/arm/mach-at91/pm_suspend.S
@@ -80,6 +80,8 @@ tmp2	.req	r5
  *	@r2: base address of second SDRAM Controller or 0 if not present
  *	@r3: pm information
  */
+/* at91_pm_suspend_in_sram must be 8-byte aligned per the requirements of fncpy() */
+	.align 3
 ENTRY(at91_pm_suspend_in_sram)
 	/* Save registers on stack */
 	stmfd	sp!, {r4 - r12, lr}
diff --git a/arch/arm/mach-exynos/pm_domains.c b/arch/arm/mach-exynos/pm_domains.c
index 4a87e86..7c21760 100644
--- a/arch/arm/mach-exynos/pm_domains.c
+++ b/arch/arm/mach-exynos/pm_domains.c
@@ -200,15 +200,15 @@ no_clk:
 		args.args_count = 0;
 		child_domain = of_genpd_get_from_provider(&args);
 		if (IS_ERR(child_domain))
-			goto next_pd;
+			continue;
 
 		if (of_parse_phandle_with_args(np, "power-domains",
 					 "#power-domain-cells", 0, &args) != 0)
-			goto next_pd;
+			continue;
 
 		parent_domain = of_genpd_get_from_provider(&args);
 		if (IS_ERR(parent_domain))
-			goto next_pd;
+			continue;
 
 		if (pm_genpd_add_subdomain(parent_domain, child_domain))
 			pr_warn("%s failed to add subdomain: %s\n",
@@ -216,8 +216,6 @@ no_clk:
 		else
 			pr_info("%s has as child subdomain: %s.\n",
 				parent_domain->name, child_domain->name);
-next_pd:
-		of_node_put(np);
 	}
 
 	return 0;
diff --git a/arch/arm/mach-pxa/include/mach/pxa27x.h b/arch/arm/mach-pxa/include/mach/pxa27x.h
index 599b925..1a42919 100644
--- a/arch/arm/mach-pxa/include/mach/pxa27x.h
+++ b/arch/arm/mach-pxa/include/mach/pxa27x.h
@@ -19,7 +19,7 @@
 #define ARB_CORE_PARK		(1<<24)	   /* Be parked with core when idle */
 #define ARB_LOCK_FLAG		(1<<23)	   /* Only Locking masters gain access to the bus */
 
-extern int __init pxa27x_set_pwrmode(unsigned int mode);
+extern int pxa27x_set_pwrmode(unsigned int mode);
 extern void pxa27x_cpu_pm_enter(suspend_state_t state);
 
 #endif /* __MACH_PXA27x_H */
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c
index b5abdeb..aa97547 100644
--- a/arch/arm/mach-pxa/pxa27x.c
+++ b/arch/arm/mach-pxa/pxa27x.c
@@ -84,7 +84,7 @@ EXPORT_SYMBOL_GPL(pxa27x_configure_ac97reset);
  */
 static unsigned int pwrmode = PWRMODE_SLEEP;
 
-int __init pxa27x_set_pwrmode(unsigned int mode)
+int pxa27x_set_pwrmode(unsigned int mode)
 {
 	switch (mode) {
 	case PWRMODE_SLEEP:
diff --git a/arch/arm/mach-tegra/board-paz00.c b/arch/arm/mach-tegra/board-paz00.c
index fbe74c6..49d1110 100644
--- a/arch/arm/mach-tegra/board-paz00.c
+++ b/arch/arm/mach-tegra/board-paz00.c
@@ -39,8 +39,8 @@ static struct platform_device wifi_rfkill_device = {
 static struct gpiod_lookup_table wifi_gpio_lookup = {
 	.dev_id = "rfkill_gpio",
 	.table = {
-		GPIO_LOOKUP_IDX("tegra-gpio", 25, NULL, 0, 0),
-		GPIO_LOOKUP_IDX("tegra-gpio", 85, NULL, 1, 0),
+		GPIO_LOOKUP("tegra-gpio", 25, "reset", 0),
+		GPIO_LOOKUP("tegra-gpio", 85, "shutdown", 0),
 		{ },
 	},
 };
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index cba12f3..25ecc6a 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -1413,12 +1413,19 @@ static int arm_iommu_mmap_attrs(struct device *dev, struct vm_area_struct *vma,
 	unsigned long uaddr = vma->vm_start;
 	unsigned long usize = vma->vm_end - vma->vm_start;
 	struct page **pages = __iommu_get_pages(cpu_addr, attrs);
+	unsigned long nr_pages = PAGE_ALIGN(size) >> PAGE_SHIFT;
+	unsigned long off = vma->vm_pgoff;
 
 	vma->vm_page_prot = __get_dma_pgprot(attrs, vma->vm_page_prot);
 
 	if (!pages)
 		return -ENXIO;
 
+	if (off >= nr_pages || (usize >> PAGE_SHIFT) > nr_pages - off)
+		return -ENXIO;
+
+	pages += off;
+
 	do {
 		int ret = vm_insert_page(vma, uaddr, *pages++);
 		if (ret) {
diff --git a/arch/arm/plat-orion/common.c b/arch/arm/plat-orion/common.c
index 2235081..8861c36 100644
--- a/arch/arm/plat-orion/common.c
+++ b/arch/arm/plat-orion/common.c
@@ -495,7 +495,7 @@ void __init orion_ge00_switch_init(struct dsa_platform_data *d, int irq)
 
 	d->netdev = &orion_ge00.dev;
 	for (i = 0; i < d->nr_chips; i++)
-		d->chip[i].host_dev = &orion_ge00_shared.dev;
+		d->chip[i].host_dev = &orion_ge_mvmdio.dev;
 	orion_switch_device.dev.platform_data = d;
 
 	platform_device_register(&orion_switch_device);
diff --git a/arch/arm/vdso/vdsomunge.c b/arch/arm/vdso/vdsomunge.c
index aedec81..f645527 100644
--- a/arch/arm/vdso/vdsomunge.c
+++ b/arch/arm/vdso/vdsomunge.c
@@ -45,7 +45,6 @@
  * it does.
  */
 
-#include <byteswap.h>
 #include <elf.h>
 #include <errno.h>
 #include <fcntl.h>
@@ -59,6 +58,16 @@
 #include <sys/types.h>
 #include <unistd.h>
 
+#define swab16(x) \
+	((((x) & 0x00ff) << 8) | \
+	 (((x) & 0xff00) >> 8))
+
+#define swab32(x) \
+	((((x) & 0x000000ff) << 24) | \
+	 (((x) & 0x0000ff00) <<  8) | \
+	 (((x) & 0x00ff0000) >>  8) | \
+	 (((x) & 0xff000000) >> 24))
+
 #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
 #define HOST_ORDER ELFDATA2LSB
 #elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
@@ -104,17 +113,17 @@ static void cleanup(void)
 
 static Elf32_Word read_elf_word(Elf32_Word word, bool swap)
 {
-	return swap ? bswap_32(word) : word;
+	return swap ? swab32(word) : word;
 }
 
 static Elf32_Half read_elf_half(Elf32_Half half, bool swap)
 {
-	return swap ? bswap_16(half) : half;
+	return swap ? swab16(half) : half;
 }
 
 static void write_elf_word(Elf32_Word val, Elf32_Word *dst, bool swap)
 {
-	*dst = swap ? bswap_32(val) : val;
+	*dst = swap ? swab32(val) : val;
 }
 
 int main(int argc, char **argv)
diff --git a/arch/arm64/include/asm/irq.h b/arch/arm64/include/asm/irq.h
index bbb251b..8b9bf54 100644
--- a/arch/arm64/include/asm/irq.h
+++ b/arch/arm64/include/asm/irq.h
@@ -21,4 +21,9 @@ static inline void acpi_irq_init(void)
 }
 #define acpi_irq_init acpi_irq_init
 
+static inline int nr_legacy_irqs(void)
+{
+	return 0;
+}
+
 #endif
diff --git a/arch/arm64/include/asm/ptrace.h b/arch/arm64/include/asm/ptrace.h
index d6dd9fd..d4264bb 100644
--- a/arch/arm64/include/asm/ptrace.h
+++ b/arch/arm64/include/asm/ptrace.h
@@ -83,14 +83,14 @@
 #define compat_sp	regs[13]
 #define compat_lr	regs[14]
 #define compat_sp_hyp	regs[15]
-#define compat_sp_irq	regs[16]
-#define compat_lr_irq	regs[17]
-#define compat_sp_svc	regs[18]
-#define compat_lr_svc	regs[19]
-#define compat_sp_abt	regs[20]
-#define compat_lr_abt	regs[21]
-#define compat_sp_und	regs[22]
-#define compat_lr_und	regs[23]
+#define compat_lr_irq	regs[16]
+#define compat_sp_irq	regs[17]
+#define compat_lr_svc	regs[18]
+#define compat_sp_svc	regs[19]
+#define compat_lr_abt	regs[20]
+#define compat_sp_abt	regs[21]
+#define compat_lr_und	regs[22]
+#define compat_sp_und	regs[23]
 #define compat_r8_fiq	regs[24]
 #define compat_r9_fiq	regs[25]
 #define compat_r10_fiq	regs[26]
diff --git a/arch/arm64/kernel/armv8_deprecated.c b/arch/arm64/kernel/armv8_deprecated.c
index 7922c2e..7ac3920 100644
--- a/arch/arm64/kernel/armv8_deprecated.c
+++ b/arch/arm64/kernel/armv8_deprecated.c
@@ -279,22 +279,24 @@ static void register_insn_emulation_sysctl(struct ctl_table *table)
  */
 #define __user_swpX_asm(data, addr, res, temp, B)		\
 	__asm__ __volatile__(					\
-	"	mov		%w2, %w1\n"			\
-	"0:	ldxr"B"		%w1, [%3]\n"			\
-	"1:	stxr"B"		%w0, %w2, [%3]\n"		\
+	"0:	ldxr"B"		%w2, [%3]\n"			\
+	"1:	stxr"B"		%w0, %w1, [%3]\n"		\
 	"	cbz		%w0, 2f\n"			\
 	"	mov		%w0, %w4\n"			\
+	"	b		3f\n"				\
 	"2:\n"							\
+	"	mov		%w1, %w2\n"			\
+	"3:\n"							\
 	"	.pushsection	 .fixup,\"ax\"\n"		\
 	"	.align		2\n"				\
-	"3:	mov		%w0, %w5\n"			\
-	"	b		2b\n"				\
+	"4:	mov		%w0, %w5\n"			\
+	"	b		3b\n"				\
 	"	.popsection"					\
 	"	.pushsection	 __ex_table,\"a\"\n"		\
 	"	.align		3\n"				\
-	"	.quad		0b, 3b\n"			\
-	"	.quad		1b, 3b\n"			\
-	"	.popsection"					\
+	"	.quad		0b, 4b\n"			\
+	"	.quad		1b, 4b\n"			\
+	"	.popsection\n"					\
 	: "=&r" (res), "+r" (data), "=&r" (temp)		\
 	: "r" (addr), "i" (-EAGAIN), "i" (-EFAULT)		\
 	: "memory")
diff --git a/arch/arm64/kernel/stacktrace.c b/arch/arm64/kernel/stacktrace.c
index 407991b..ccb6078 100644
--- a/arch/arm64/kernel/stacktrace.c
+++ b/arch/arm64/kernel/stacktrace.c
@@ -48,11 +48,7 @@ int notrace unwind_frame(struct stackframe *frame)
 
 	frame->sp = fp + 0x10;
 	frame->fp = *(unsigned long *)(fp);
-	/*
-	 * -4 here because we care about the PC at time of bl,
-	 * not where the return will go.
-	 */
-	frame->pc = *(unsigned long *)(fp + 8) - 4;
+	frame->pc = *(unsigned long *)(fp + 8);
 
 	return 0;
 }
diff --git a/arch/arm64/kernel/suspend.c b/arch/arm64/kernel/suspend.c
index 8297d50..44ca414 100644
--- a/arch/arm64/kernel/suspend.c
+++ b/arch/arm64/kernel/suspend.c
@@ -80,17 +80,21 @@ int cpu_suspend(unsigned long arg, int (*fn)(unsigned long))
 	if (ret == 0) {
 		/*
 		 * We are resuming from reset with TTBR0_EL1 set to the
-		 * idmap to enable the MMU; restore the active_mm mappings in
-		 * TTBR0_EL1 unless the active_mm == &init_mm, in which case
-		 * the thread entered cpu_suspend with TTBR0_EL1 set to
-		 * reserved TTBR0 page tables and should be restored as such.
+		 * idmap to enable the MMU; set the TTBR0 to the reserved
+		 * page tables to prevent speculative TLB allocations, flush
+		 * the local tlb and set the default tcr_el1.t0sz so that
+		 * the TTBR0 address space set-up is properly restored.
+		 * If the current active_mm != &init_mm we entered cpu_suspend
+		 * with mappings in TTBR0 that must be restored, so we switch
+		 * them back to complete the address space configuration
+		 * restoration before returning.
 		 */
-		if (mm == &init_mm)
-			cpu_set_reserved_ttbr0();
-		else
-			cpu_switch_mm(mm->pgd, mm);
-
+		cpu_set_reserved_ttbr0();
 		flush_tlb_all();
+		cpu_set_default_tcr_t0sz();
+
+		if (mm != &init_mm)
+			cpu_switch_mm(mm->pgd, mm);
 
 		/*
 		 * Restore per-cpu offset before any kernel
diff --git a/arch/arm64/kernel/vmlinux.lds.S b/arch/arm64/kernel/vmlinux.lds.S
index 9807333..4d77757 100644
--- a/arch/arm64/kernel/vmlinux.lds.S
+++ b/arch/arm64/kernel/vmlinux.lds.S
@@ -60,9 +60,12 @@ PECOFF_FILE_ALIGNMENT = 0x200;
 #define PECOFF_EDATA_PADDING
 #endif
 
-#ifdef CONFIG_DEBUG_ALIGN_RODATA
+#if defined(CONFIG_DEBUG_ALIGN_RODATA)
 #define ALIGN_DEBUG_RO			. = ALIGN(1<<SECTION_SHIFT);
 #define ALIGN_DEBUG_RO_MIN(min)		ALIGN_DEBUG_RO
+#elif defined(CONFIG_DEBUG_RODATA)
+#define ALIGN_DEBUG_RO			. = ALIGN(1<<PAGE_SHIFT);
+#define ALIGN_DEBUG_RO_MIN(min)		ALIGN_DEBUG_RO
 #else
 #define ALIGN_DEBUG_RO
 #define ALIGN_DEBUG_RO_MIN(min)		. = ALIGN(min);
diff --git a/arch/mips/ath79/setup.c b/arch/mips/ath79/setup.c
index 1ba2120..9a00137 100644
--- a/arch/mips/ath79/setup.c
+++ b/arch/mips/ath79/setup.c
@@ -216,9 +216,9 @@ void __init plat_mem_setup(void)
 					   AR71XX_RESET_SIZE);
 	ath79_pll_base = ioremap_nocache(AR71XX_PLL_BASE,
 					 AR71XX_PLL_SIZE);
+	ath79_detect_sys_type();
 	ath79_ddr_ctrl_init();
 
-	ath79_detect_sys_type();
 	if (mips_machtype != ATH79_MACH_GENERIC_OF)
 		detect_memory_region(0, ATH79_MEM_SIZE_MIN, ATH79_MEM_SIZE_MAX);
 
diff --git a/arch/mips/include/asm/cdmm.h b/arch/mips/include/asm/cdmm.h
index 16e22ce..85dc4ce 100644
--- a/arch/mips/include/asm/cdmm.h
+++ b/arch/mips/include/asm/cdmm.h
@@ -84,6 +84,17 @@ void mips_cdmm_driver_unregister(struct mips_cdmm_driver *);
 	module_driver(__mips_cdmm_driver, mips_cdmm_driver_register, \
 			mips_cdmm_driver_unregister)
 
+/*
+ * builtin_mips_cdmm_driver() - Helper macro for drivers that don't do anything
+ * special in init and have no exit. This eliminates some boilerplate. Each
+ * driver may only use this macro once, and calling it replaces device_initcall
+ * (or in some cases, the legacy __initcall). This is meant to be a direct
+ * parallel of module_mips_cdmm_driver() above but without the __exit stuff that
+ * is not used for builtin cases.
+ */
+#define builtin_mips_cdmm_driver(__mips_cdmm_driver) \
+	builtin_driver(__mips_cdmm_driver, mips_cdmm_driver_register)
+
 /* drivers/tty/mips_ejtag_fdc.c */
 
 #ifdef CONFIG_MIPS_EJTAG_FDC_EARLYCON
diff --git a/arch/mips/kvm/emulate.c b/arch/mips/kvm/emulate.c
index d5fa3ea..41b1b09 100644
--- a/arch/mips/kvm/emulate.c
+++ b/arch/mips/kvm/emulate.c
@@ -1581,7 +1581,7 @@ enum emulation_result kvm_mips_emulate_cache(uint32_t inst, uint32_t *opc,
 
 	base = (inst >> 21) & 0x1f;
 	op_inst = (inst >> 16) & 0x1f;
-	offset = inst & 0xffff;
+	offset = (int16_t)inst;
 	cache = (inst >> 16) & 0x3;
 	op = (inst >> 18) & 0x7;
 
diff --git a/arch/mips/kvm/locore.S b/arch/mips/kvm/locore.S
index c567240..d1ee95a 100644
--- a/arch/mips/kvm/locore.S
+++ b/arch/mips/kvm/locore.S
@@ -165,9 +165,11 @@ FEXPORT(__kvm_mips_vcpu_run)
 
 FEXPORT(__kvm_mips_load_asid)
 	/* Set the ASID for the Guest Kernel */
-	INT_SLL	t0, t0, 1	/* with kseg0 @ 0x40000000, kernel */
-			        /* addresses shift to 0x80000000 */
-	bltz	t0, 1f		/* If kernel */
+	PTR_L	t0, VCPU_COP0(k1)
+	LONG_L	t0, COP0_STATUS(t0)
+	andi	t0, KSU_USER | ST0_ERL | ST0_EXL
+	xori	t0, KSU_USER
+	bnez	t0, 1f		/* If kernel */
 	 INT_ADDIU t1, k1, VCPU_GUEST_KERNEL_ASID  /* (BD)  */
 	INT_ADDIU t1, k1, VCPU_GUEST_USER_ASID    /* else user */
 1:
@@ -482,9 +484,11 @@ __kvm_mips_return_to_guest:
 	mtc0	t0, CP0_EPC
 
 	/* Set the ASID for the Guest Kernel */
-	INT_SLL	t0, t0, 1	/* with kseg0 @ 0x40000000, kernel */
-				/* addresses shift to 0x80000000 */
-	bltz	t0, 1f		/* If kernel */
+	PTR_L	t0, VCPU_COP0(k1)
+	LONG_L	t0, COP0_STATUS(t0)
+	andi	t0, KSU_USER | ST0_ERL | ST0_EXL
+	xori	t0, KSU_USER
+	bnez	t0, 1f		/* If kernel */
 	 INT_ADDIU t1, k1, VCPU_GUEST_KERNEL_ASID  /* (BD)  */
 	INT_ADDIU t1, k1, VCPU_GUEST_USER_ASID    /* else user */
 1:
diff --git a/arch/mips/kvm/mips.c b/arch/mips/kvm/mips.c
index cd4c129..bafb32b 100644
--- a/arch/mips/kvm/mips.c
+++ b/arch/mips/kvm/mips.c
@@ -278,7 +278,7 @@ struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm, unsigned int id)
 
 	if (!gebase) {
 		err = -ENOMEM;
-		goto out_free_cpu;
+		goto out_uninit_cpu;
 	}
 	kvm_debug("Allocated %d bytes for KVM Exception Handlers @ %p\n",
 		  ALIGN(size, PAGE_SIZE), gebase);
@@ -342,6 +342,9 @@ struct kvm_vcpu *kvm_arch_vcpu_create(struct kvm *kvm, unsigned int id)
 out_free_gebase:
 	kfree(gebase);
 
+out_uninit_cpu:
+	kvm_vcpu_uninit(vcpu);
+
 out_free_cpu:
 	kfree(vcpu);
 
diff --git a/arch/mips/lantiq/clk.c b/arch/mips/lantiq/clk.c
index 3fc2e6d..a0706fd 100644
--- a/arch/mips/lantiq/clk.c
+++ b/arch/mips/lantiq/clk.c
@@ -99,6 +99,23 @@ int clk_set_rate(struct clk *clk, unsigned long rate)
 }
 EXPORT_SYMBOL(clk_set_rate);
 
+long clk_round_rate(struct clk *clk, unsigned long rate)
+{
+	if (unlikely(!clk_good(clk)))
+		return 0;
+	if (clk->rates && *clk->rates) {
+		unsigned long *r = clk->rates;
+
+		while (*r && (*r != rate))
+			r++;
+		if (!*r) {
+			return clk->rate;
+		}
+	}
+	return rate;
+}
+EXPORT_SYMBOL(clk_round_rate);
+
 int clk_enable(struct clk *clk)
 {
 	if (unlikely(!clk_good(clk)))
diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c
index caffb10..5607693 100644
--- a/arch/powerpc/kernel/rtas.c
+++ b/arch/powerpc/kernel/rtas.c
@@ -1041,6 +1041,9 @@ asmlinkage int ppc_rtas(struct rtas_args __user *uargs)
 	if (!capable(CAP_SYS_ADMIN))
 		return -EPERM;
 
+	if (!rtas.entry)
+		return -EINVAL;
+
 	if (copy_from_user(&args, uargs, 3 * sizeof(u32)) != 0)
 		return -EFAULT;
 
diff --git a/arch/s390/kvm/interrupt.c b/arch/s390/kvm/interrupt.c
index c98d897..cbee788 100644
--- a/arch/s390/kvm/interrupt.c
+++ b/arch/s390/kvm/interrupt.c
@@ -1051,8 +1051,7 @@ static int __inject_extcall(struct kvm_vcpu *vcpu, struct kvm_s390_irq *irq)
 				   src_id, 0, 2);
 
 	/* sending vcpu invalid */
-	if (src_id >= KVM_MAX_VCPUS ||
-	    kvm_get_vcpu(vcpu->kvm, src_id) == NULL)
+	if (kvm_get_vcpu_by_id(vcpu->kvm, src_id) == NULL)
 		return -EINVAL;
 
 	if (sclp.has_sigpif)
@@ -1131,6 +1130,10 @@ static int __inject_sigp_emergency(struct kvm_vcpu *vcpu,
 	trace_kvm_s390_inject_vcpu(vcpu->vcpu_id, KVM_S390_INT_EMERGENCY,
 				   irq->u.emerg.code, 0, 2);
 
+	/* sending vcpu invalid */
+	if (kvm_get_vcpu_by_id(vcpu->kvm, irq->u.emerg.code) == NULL)
+		return -EINVAL;
+
 	set_bit(irq->u.emerg.code, li->sigp_emerg_pending);
 	set_bit(IRQ_PEND_EXT_EMERGENCY, &li->pending_irqs);
 	atomic_set_mask(CPUSTAT_EXT_INT, li->cpuflags);
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index f32f843..4a001c1 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -289,12 +289,16 @@ static int kvm_vm_ioctl_enable_cap(struct kvm *kvm, struct kvm_enable_cap *cap)
 		r = 0;
 		break;
 	case KVM_CAP_S390_VECTOR_REGISTERS:
-		if (MACHINE_HAS_VX) {
+		mutex_lock(&kvm->lock);
+		if (atomic_read(&kvm->online_vcpus)) {
+			r = -EBUSY;
+		} else if (MACHINE_HAS_VX) {
 			set_kvm_facility(kvm->arch.model.fac->mask, 129);
 			set_kvm_facility(kvm->arch.model.fac->list, 129);
 			r = 0;
 		} else
 			r = -EINVAL;
+		mutex_unlock(&kvm->lock);
 		break;
 	case KVM_CAP_S390_USER_STSI:
 		kvm->arch.user_stsi = 1;
@@ -1037,7 +1041,9 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
 	if (!kvm->arch.sca)
 		goto out_err;
 	spin_lock(&kvm_lock);
-	sca_offset = (sca_offset + 16) & 0x7f0;
+	sca_offset += 16;
+	if (sca_offset + sizeof(struct sca_block) > PAGE_SIZE)
+		sca_offset = 0;
 	kvm->arch.sca = (struct sca_block *) ((char *) kvm->arch.sca + sca_offset);
 	spin_unlock(&kvm_lock);
 
diff --git a/arch/s390/kvm/sigp.c b/arch/s390/kvm/sigp.c
index 72e58bd..7171056 100644
--- a/arch/s390/kvm/sigp.c
+++ b/arch/s390/kvm/sigp.c
@@ -294,12 +294,8 @@ static int handle_sigp_dst(struct kvm_vcpu *vcpu, u8 order_code,
 			   u16 cpu_addr, u32 parameter, u64 *status_reg)
 {
 	int rc;
-	struct kvm_vcpu *dst_vcpu;
+	struct kvm_vcpu *dst_vcpu = kvm_get_vcpu_by_id(vcpu->kvm, cpu_addr);
 
-	if (cpu_addr >= KVM_MAX_VCPUS)
-		return SIGP_CC_NOT_OPERATIONAL;
-
-	dst_vcpu = kvm_get_vcpu(vcpu->kvm, cpu_addr);
 	if (!dst_vcpu)
 		return SIGP_CC_NOT_OPERATIONAL;
 
@@ -481,7 +477,7 @@ int kvm_s390_handle_sigp_pei(struct kvm_vcpu *vcpu)
 	trace_kvm_s390_handle_sigp_pei(vcpu, order_code, cpu_addr);
 
 	if (order_code == SIGP_EXTERNAL_CALL) {
-		dest_vcpu = kvm_get_vcpu(vcpu->kvm, cpu_addr);
+		dest_vcpu = kvm_get_vcpu_by_id(vcpu->kvm, cpu_addr);
 		BUG_ON(dest_vcpu == NULL);
 
 		kvm_s390_vcpu_wakeup(dest_vcpu);
diff --git a/arch/tile/kernel/usb.c b/arch/tile/kernel/usb.c
index f0da5a2..9f1e05e 100644
--- a/arch/tile/kernel/usb.c
+++ b/arch/tile/kernel/usb.c
@@ -22,6 +22,7 @@
 #include <linux/platform_device.h>
 #include <linux/usb/tilegx.h>
 #include <linux/init.h>
+#include <linux/module.h>
 #include <linux/types.h>
 
 static u64 ehci_dmamask = DMA_BIT_MASK(32);
diff --git a/arch/um/kernel/trap.c b/arch/um/kernel/trap.c
index 557232f..5610b18 100644
--- a/arch/um/kernel/trap.c
+++ b/arch/um/kernel/trap.c
@@ -220,7 +220,7 @@ unsigned long segv(struct faultinfo fi, unsigned long ip, int is_user,
 		show_regs(container_of(regs, struct pt_regs, regs));
 		panic("Segfault with no mm");



More information about the unionfs-cvs mailing list