Push to branch refs/heads/master: 6c1e5234447a9cbeea16bebb450a35959fe459c6 --> 3eee5116d9afc04d6333ef63da493ee285e89303
.../devicetree/bindings/arm/omap/omap.txt | 1 + Documentation/filesystems/00-INDEX | 3 + Documentation/filesystems/efivarfs.txt | 7 + Documentation/filesystems/wrapfs.txt | 172 ++++++ Documentation/kernel-parameters.txt | 2 + Documentation/virtual/kvm/mmu.txt | 3 +- MAINTAINERS | 13 +- Makefile | 2 +- arch/arm/boot/dts/armada-375.dtsi | 2 +- arch/arm/boot/dts/dra7.dtsi | 10 + arch/arm/include/asm/psci.h | 2 +- arch/arm/mach-omap2/omap_hwmod.c | 83 +-- arch/arm/mach-omap2/omap_hwmod.h | 6 + arch/arm/mach-omap2/sleep34xx.S | 12 +- arch/arm64/Makefile | 2 + arch/arm64/include/asm/pgtable.h | 6 +- arch/arm64/kernel/debug-monitors.c | 42 +- arch/arm64/mm/init.c | 4 +- arch/avr32/mach-at32ap/at32ap700x.c | 16 + arch/mips/Kconfig | 13 +- arch/mips/kernel/smp.c | 1 + arch/parisc/include/asm/uaccess.h | 1 + arch/parisc/kernel/asm-offsets.c | 1 + arch/parisc/kernel/parisc_ksyms.c | 10 +- arch/parisc/kernel/traps.c | 3 + arch/parisc/lib/fixup.S | 6 + arch/parisc/mm/fault.c | 1 + arch/powerpc/include/uapi/asm/cputable.h | 1 + arch/powerpc/kernel/module_64.c | 2 +- arch/powerpc/kernel/prom.c | 19 +- arch/powerpc/kvm/book3s_hv_rmhandlers.S | 14 + arch/s390/include/asm/hugetlb.h | 1 + arch/s390/include/asm/mmu_context.h | 16 +- arch/s390/include/asm/pci.h | 3 +- arch/s390/include/asm/pgalloc.h | 24 +- arch/s390/pci/pci.c | 5 +- arch/um/drivers/mconsole_kern.c | 2 +- arch/x86/crypto/sha-mb/sha1_mb.c | 4 +- arch/x86/ia32/ia32entry.S | 1 + arch/x86/include/asm/apic.h | 2 +- arch/x86/include/asm/hugetlb.h | 1 + arch/x86/include/asm/perf_event.h | 8 + arch/x86/include/asm/xen/hypervisor.h | 2 + arch/x86/include/uapi/asm/msr-index.h | 6 + arch/x86/kernel/ioport.c | 12 +- arch/x86/kernel/process_64.c | 12 + arch/x86/kvm/i8254.c | 12 +- arch/x86/kvm/vmx.c | 44 +- arch/x86/kvm/x86.c | 42 +- arch/x86/pci/fixup.c | 7 + arch/x86/xen/enlighten.c | 2 +- arch/xtensa/kernel/head.S | 2 +- arch/xtensa/mm/cache.c | 8 +- arch/xtensa/platforms/iss/console.c | 10 +- block/blk-core.c | 2 +- crypto/asymmetric_keys/Makefile | 8 +- crypto/asymmetric_keys/pkcs7_trust.c | 4 +- crypto/asymmetric_keys/pkcs7_verify.c | 12 +- crypto/asymmetric_keys/x509_akid.asn1 | 35 ++ crypto/asymmetric_keys/x509_cert_parser.c | 229 +++++--- crypto/asymmetric_keys/x509_parser.h | 12 +- crypto/asymmetric_keys/x509_public_key.c | 17 +- drivers/acpi/video_detect.c | 8 - drivers/block/mtip32xx/mtip32xx.c | 224 ++++---- drivers/block/mtip32xx/mtip32xx.h | 1 + drivers/block/rbd.c | 6 +- drivers/bluetooth/ath3k.c | 8 + drivers/bluetooth/btusb.c | 4 + drivers/bus/imx-weim.c | 2 +- drivers/char/tpm/tpm_crb.c | 4 +- drivers/clk/rockchip/clk-rk3188.c | 3 + drivers/crypto/atmel-sha.c | 7 - drivers/crypto/ccp/ccp-crypto-aes-cmac.c | 39 ++ drivers/crypto/ccp/ccp-crypto-sha.c | 43 ++ drivers/crypto/ccp/ccp-crypto.h | 22 + drivers/dma/at_xdmac.c | 42 +- drivers/dma/dw/core.c | 34 +- drivers/dma/hsu/hsu.c | 2 +- drivers/dma/hsu/hsu.h | 3 + drivers/edac/amd64_edac.c | 2 +- drivers/edac/sb_edac.c | 28 +- drivers/firmware/efi/efivars.c | 46 +- drivers/firmware/efi/vars.c | 144 +++-- drivers/gpio/gpio-pca953x.c | 3 +- drivers/gpu/drm/drm_dp_mst_topology.c | 174 ++++-- drivers/gpu/drm/gma500/gem.c | 2 +- drivers/gpu/drm/i915/intel_display.c | 11 - drivers/gpu/drm/i915/intel_dp_mst.c | 17 +- drivers/gpu/drm/i915/intel_uncore.c | 6 +- drivers/gpu/drm/qxl/qxl_display.c | 13 +- drivers/gpu/drm/qxl/qxl_drv.h | 2 + drivers/gpu/drm/radeon/atombios_dp.c | 118 ++--- drivers/gpu/drm/radeon/atombios_encoders.c | 6 +- drivers/gpu/drm/radeon/radeon_connectors.c | 7 +- drivers/gpu/drm/radeon/radeon_device.c | 1 - drivers/gpu/drm/radeon/radeon_dp_mst.c | 12 +- drivers/gpu/drm/radeon/radeon_fb.c | 19 +- drivers/gpu/drm/radeon/radeon_mode.h | 6 +- drivers/gpu/drm/radeon/radeon_pm.c | 5 +- drivers/gpu/drm/radeon/radeon_ttm.c | 2 + drivers/gpu/drm/radeon/si_dpm.c | 4 + drivers/hid/hid-core.c | 7 +- drivers/hid/hid-multitouch.c | 15 +- drivers/hid/i2c-hid/i2c-hid.c | 16 +- drivers/hid/usbhid/hid-core.c | 77 +-- drivers/iio/dac/mcp4725.c | 1 + drivers/iio/imu/adis_buffer.c | 2 +- drivers/iio/pressure/mpl115.c | 2 +- drivers/infiniband/hw/cxgb3/iwch_cm.c | 4 +- drivers/infiniband/ulp/isert/ib_isert.c | 21 +- drivers/infiniband/ulp/isert/ib_isert.h | 1 + drivers/infiniband/ulp/srpt/ib_srpt.c | 59 +-- drivers/input/misc/ati_remote2.c | 36 +- drivers/input/misc/ims-pcu.c | 4 + drivers/input/misc/powermate.c | 3 + drivers/input/mouse/synaptics.c | 5 +- drivers/input/tablet/gtco.c | 10 +- drivers/irqchip/irq-omap-intc.c | 52 +- drivers/md/bcache/super.c | 46 +- drivers/md/dm-thin-metadata.c | 5 +- drivers/md/dm.c | 13 +- drivers/md/multipath.c | 4 +- drivers/md/raid5.c | 24 +- drivers/md/raid5.h | 2 + drivers/media/i2c/adv7511.c | 21 +- drivers/media/pci/bt8xx/bttv-driver.c | 26 +- drivers/media/pci/saa7134/saa7134-video.c | 18 +- drivers/media/tuners/si2157.c | 1 + drivers/media/usb/au0828/au0828-core.c | 2 +- drivers/media/usb/au0828/au0828-input.c | 4 +- drivers/media/usb/au0828/au0828-video.c | 63 ++- drivers/media/usb/au0828/au0828.h | 9 +- drivers/media/usb/pwc/pwc-if.c | 6 + drivers/media/usb/usbvision/usbvision-video.c | 16 +- drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 21 +- drivers/mmc/host/atmel-mci.c | 17 + drivers/mmc/host/mmc_spi.c | 6 + drivers/mmc/host/sdhci-pxav3.c | 6 +- drivers/mmc/host/sdhci.c | 23 +- drivers/mtd/onenand/onenand_base.c | 3 +- drivers/net/can/usb/gs_usb.c | 24 +- drivers/net/ethernet/marvell/mvneta.c | 2 +- drivers/net/irda/irtty-sir.c | 10 - drivers/net/rionet.c | 4 +- drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 4 +- drivers/net/wireless/iwlwifi/mvm/tx.c | 9 + drivers/of/of_reserved_mem.c | 4 +- drivers/pci/probe.c | 32 ++ drivers/pinctrl/bcm/pinctrl-bcm2835.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 9 +- drivers/platform/x86/ideapad-laptop.c | 14 + drivers/scsi/aacraid/aacraid.h | 2 + drivers/scsi/aacraid/commsup.c | 37 +- drivers/scsi/aacraid/src.c | 30 +- drivers/scsi/aic7xxx/aic7xxx_osm.c | 1 + drivers/scsi/be2iscsi/be_main.c | 1 + drivers/scsi/sd.c | 23 +- drivers/scsi/sd.h | 7 +- drivers/scsi/sg.c | 3 +- drivers/staging/comedi/drivers/ni_mio_common.c | 12 +- drivers/staging/comedi/drivers/ni_tiocmd.c | 2 +- drivers/target/target_core_tmr.c | 1 - drivers/target/target_core_transport.c | 2 - drivers/thermal/thermal_core.c | 13 +- drivers/usb/class/cdc-acm.c | 3 + drivers/usb/core/driver.c | 6 +- drivers/usb/core/hcd-pci.c | 9 + drivers/usb/core/hub.c | 16 +- drivers/usb/gadget/function/f_fs.c | 5 +- drivers/usb/host/xhci-mem.c | 6 + drivers/usb/host/xhci-pci.c | 5 +- drivers/usb/host/xhci-ring.c | 6 +- drivers/usb/host/xhci.c | 24 +- drivers/usb/host/xhci.h | 2 + drivers/usb/misc/iowarrior.c | 6 + drivers/usb/renesas_usbhs/fifo.c | 4 +- drivers/usb/renesas_usbhs/mod_gadget.c | 6 +- drivers/usb/serial/cp210x.c | 1 + drivers/usb/serial/cypress_m8.c | 11 +- drivers/usb/serial/digi_acceleport.c | 19 + drivers/usb/serial/ftdi_sio.c | 4 + drivers/usb/serial/ftdi_sio_ids.h | 8 + drivers/usb/serial/mct_u232.c | 9 +- drivers/usb/serial/option.c | 2 + drivers/usb/storage/uas.c | 16 +- drivers/usb/storage/unusual_uas.h | 7 + drivers/usb/storage/usb.c | 5 +- drivers/virtio/virtio_pci_modern.c | 11 +- drivers/watchdog/rc32434_wdt.c | 2 +- drivers/xen/events/events_base.c | 28 +- fs/Kconfig | 1 + fs/Makefile | 1 + fs/btrfs/async-thread.c | 2 +- fs/btrfs/disk-io.c | 28 + fs/btrfs/extent-tree.c | 5 + fs/btrfs/inode-map.c | 9 +- fs/btrfs/inode-map.h | 1 + fs/btrfs/inode.c | 27 +- fs/btrfs/ioctl.c | 4 + fs/btrfs/send.c | 16 +- fs/btrfs/super.c | 24 + fs/btrfs/tree-log.c | 349 ++++++++++++ fs/btrfs/volumes.c | 1 + fs/coredump.c | 38 +- fs/dax.c | 21 +- fs/debugfs/inode.c | 2 +- fs/efivarfs/file.c | 70 +++ fs/efivarfs/inode.c | 30 +- fs/efivarfs/internal.h | 3 +- fs/efivarfs/super.c | 16 +- fs/ext2/file.c | 4 +- fs/ext4/ext4.h | 36 ++ fs/ext4/extents.c | 89 ++-- fs/ext4/file.c | 18 +- fs/ext4/inode.c | 116 +++- fs/ext4/move_extent.c | 12 +- fs/ext4/super.c | 48 +- fs/ext4/truncate.h | 2 + fs/fhandle.c | 2 +- fs/fuse/cuse.c | 4 +- fs/fuse/file.c | 35 +- fs/fuse/fuse_i.h | 9 + fs/jbd2/journal.c | 17 +- fs/jffs2/dir.c | 11 +- fs/ncpfs/dir.c | 2 +- fs/nfsd/nfs4proc.c | 1 + fs/nfsd/nfs4xdr.c | 13 +- fs/ocfs2/dlm/dlmconvert.c | 24 +- fs/ocfs2/dlm/dlmrecovery.c | 1 - fs/open.c | 6 +- fs/overlayfs/dir.c | 10 +- fs/overlayfs/inode.c | 10 +- fs/overlayfs/super.c | 12 +- fs/proc/array.c | 2 +- fs/proc/base.c | 21 +- fs/proc/namespaces.c | 4 +- fs/proc_namespace.c | 2 + fs/quota/dquot.c | 3 +- fs/splice.c | 3 + fs/wrapfs/Kconfig | 8 + fs/wrapfs/Makefile | 7 + fs/wrapfs/dentry.c | 49 ++ fs/wrapfs/file.c | 381 ++++++++++++++ fs/wrapfs/inode.c | 584 +++++++++++++++++++++ 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 ++++++++ fs/xfs/xfs_attr_list.c | 19 +- include/asm-generic/bitops/lock.h | 14 +- include/drm/drm_cache.h | 2 + include/drm/drm_dp_mst_helper.h | 25 +- include/linux/atmel-mci.h | 2 + include/linux/compiler-gcc.h | 120 ++++- include/linux/compiler-gcc3.h | 23 - include/linux/compiler-gcc4.h | 91 ---- include/linux/compiler-gcc5.h | 67 --- include/linux/efi.h | 5 +- include/linux/fs.h | 8 +- include/linux/hugetlb.h | 17 +- include/linux/kernel.h | 6 +- include/linux/mm.h | 5 +- include/linux/module.h | 17 +- include/linux/namei.h | 2 + include/linux/pageblock-flags.h | 2 +- include/linux/pci.h | 2 + include/linux/poison.h | 4 +- include/linux/ptrace.h | 24 +- include/linux/thermal.h | 2 + include/linux/tracepoint.h | 17 +- include/linux/tty.h | 2 +- include/linux/ucs2_string.h | 4 + include/linux/usb_usual.h | 2 + include/net/iw_handler.h | 6 + include/sound/hdaudio.h | 16 +- include/uapi/linux/magic.h | 2 + kernel/events/core.c | 22 +- kernel/futex.c | 27 +- kernel/futex_compat.c | 2 +- kernel/kcmp.c | 4 +- kernel/module.c | 118 +++-- kernel/ptrace.c | 39 +- kernel/resource.c | 5 +- kernel/sched/core.c | 2 +- kernel/sched/cputime.c | 14 +- kernel/sysctl_binary.c | 2 +- kernel/trace/trace.c | 5 +- kernel/trace/trace_printk.c | 3 + kernel/watchdog.c | 9 +- lib/assoc_array.c | 4 +- lib/lz4/lz4defs.h | 21 +- lib/ucs2_string.c | 62 +++ mm/bootmem.c | 13 +- mm/hugetlb.c | 19 +- mm/internal.h | 7 +- mm/memblock.c | 2 +- mm/memcontrol.c | 6 + mm/nobootmem.c | 4 +- mm/page_alloc.c | 74 ++- mm/process_vm_access.c | 2 +- net/ipv4/tcp_cubic.c | 22 + net/mac80211/agg-rx.c | 2 +- net/mac80211/ieee80211_i.h | 2 +- net/mac80211/rc80211_minstrel.c | 2 +- net/mac80211/rc80211_minstrel_ht.c | 5 +- net/mac80211/rx.c | 37 +- net/mac80211/sta_info.c | 13 +- net/netlink/af_netlink.c | 2 +- net/wireless/core.c | 2 + net/wireless/nl80211.c | 2 +- net/wireless/wext-core.c | 52 +- scripts/coccinelle/iterators/use_after_iter.cocci | 2 +- scripts/ld-version.sh | 2 +- security/commoncap.c | 7 +- security/keys/encrypted-keys/encrypted.c | 2 + security/keys/trusted.c | 5 +- security/keys/user_defined.c | 5 +- security/smack/smack_lsm.c | 8 +- security/yama/yama_lsm.c | 4 +- sound/hda/hdac_device.c | 26 +- sound/hda/hdac_regmap.c | 10 +- sound/pci/hda/hda_generic.c | 87 ++- sound/pci/hda/hda_intel.c | 10 + sound/pci/hda/patch_cirrus.c | 8 +- sound/pci/hda/patch_conexant.c | 7 +- sound/pci/hda/patch_hdmi.c | 113 ++-- sound/pci/hda/patch_realtek.c | 31 +- sound/pci/intel8x0.c | 1 + sound/pci/pcxhr/pcxhr_core.c | 1 + sound/soc/codecs/wm8958-dsp2.c | 8 +- sound/soc/codecs/wm8994.c | 4 +- sound/soc/codecs/wm_adsp.c | 8 +- sound/soc/samsung/i2s.c | 21 +- sound/soc/soc-dapm.c | 8 +- sound/usb/card.c | 76 ++- sound/usb/clock.c | 2 + sound/usb/endpoint.c | 13 +- sound/usb/mixer.c | 96 ++-- sound/usb/mixer.h | 2 + sound/usb/mixer_maps.c | 14 + sound/usb/mixer_quirks.c | 130 ++--- sound/usb/pcm.c | 34 +- sound/usb/proc.c | 4 +- sound/usb/quirks.c | 9 + sound/usb/usbaudio.h | 10 +- tools/hv/Makefile | 2 + tools/perf/util/pmu.c | 15 +- tools/testing/selftests/efivarfs/efivarfs.sh | 19 +- tools/testing/selftests/efivarfs/open-unlink.c | 72 ++- virt/kvm/kvm_main.c | 21 +- 351 files changed, 6386 insertions(+), 1967 deletions(-) commit 3eee5116d9afc04d6333ef63da493ee285e89303 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Nov 3 21:31:17 2015 -0500 Wrapfs: update copyright year to 2015 commit 6fc3f7e79f72dc28cd45efea3e1fd1df1ff5c8b5 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Nov 3 21:31:17 2015 -0500 Wrapfs: use vfs xattr helpers Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 46ec369ea7f13f4c2596669679222715d3ca338d Author: Erez Zadok <e...@cs.sunysb.edu> Date: Fri Sep 4 22:11:34 2015 -0400 Wrapfs: update ->direct_IO op prototype Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 8514db718bfcd950dbc4a8a5946403ff5cade0d0 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Fri Sep 4 22:10:34 2015 -0400 Wrapfs: use d_inode macro Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit 5141773c03f4b24143e5d635e7267cf3e7b4e9f4 Author: Erez Zadok <e...@cs.sunysb.edu> Date: Fri Sep 4 22:09:34 2015 -0400 Wrapfs: remove aio_read/write ops Signed-off-by: Erez Zadok <e...@cs.sunysb.edu> commit c99be09922d9c50a5d23d9a8c6e9c77379d3f893 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 84510905b78923c9e1c82b22c65e251ed8e779fb 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 4b1ad4e65c7445592b42b052bd2e28de75af682a 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 864c5da9c74a4b19067a672ce381409f687cde2c 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 1b346ea9a0dcf1c712aefd8911c153a412712a93 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 8722ed212af5b1dd4c4a14d51321ec6c9c37f6d6 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 0e3d3dd3c818c17b0e44a119b5a7eed470d43942 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 ea7257fb590e74c920bfbd5520736f044dee40ca 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 f670eed1f2a9526200e4f49a2f0996682cea4c23 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 a1a046d31f7a9e2bfea3ed09141c0b247d3c3736 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 ebccf79fb58956d6a541fd237527dc888578d63a 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 065ef0b723c548c86470b5b4e39b5d049d5cee3c 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 3c29df4f96ce709ae5845d4fe89cf6581be59aaf 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 b3e9378ca0a54591f9466ff53075b28d4e583e98 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 ea634693fdc16f2b8fe90546a918f0928768aadc 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 69ed32ea287e52d1cfb270bd10e929eb55cae675 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 a33cba8c3047f49ae52ff5ac9fd64c953b68d2f0 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 70b216ac5c6ac83df1ef7a864785e1a2dc1e77bf 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 761a12269c5d463f3b1cb036490b494ce1636b65 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 b3e066fd7d02e29e9ce9370f16ec0c2b5e82e67c 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 d824a41f2772c7820eb42daf3aa21cc63267a2db Author: Erez Zadok <e...@cs.sunysb.edu> Date: Tue Nov 19 18:59:47 2013 -0500 patch wrapfs-copyright-update.patch commit fbac16e68d15cb88940793277200faff12a987c1 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 67b0193ca80e5bc3783015546e1887b42529f541 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 e790bb79dee8b0e5e551407effefb26d67311db9 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 bb52b29fe2f3d8866490a6a6405a28e4efe66961 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 3b4111332dac0cc636f93e890b1638567ec655c4 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 ab448ed19bfafd3319b5df61c3e64cf60473ec01 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 abc797fe073622a6ad602671cf5ff6f0443d67d3 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 cffa2d1f11e26a06b97a3bd6b3a95cbdaeb68551 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 db8b13ef5b2a0d9d60e0c6d794679c12c01780c9 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 f56de4ce5715fa8d84a3ae26b6df691e8e089d64 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 3e0009626cb58b1e4ccbc0bd6d5a932a0d218d3a 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 cca2e338037ec47583178391442bac6959a26c82 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 ec544d8ab20ccbe8d8e87eabe1d360ce628153f7 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 a428491482995551817ac6772de413e1d64f6bd5 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 53fa2b10553fa2d06f83776887906d6973b6ba31 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 d9d7564257b7f2227f9b0b8622f6f5791ee55c5f 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 12be8f91e3eda74720c7ea0b28b691620fc9f84f 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 b0fe5a62a094e24f2e135cb1ba5bb7b3b4081819 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 9e98cde39b62810f4aa920fa004fae8825a5400c 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 63734c4aa145cbc93e0910c641b244e157fc0769 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 31ad7db444448853ad76a54209d8ea11ecdff0f2 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 d7f33e2648413b885977c86c361cc6eef123f59c 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 98caa5f970a0a8fe48f5d71ca1f45d2f45eee231 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 b4e0b55b4add440d459943f9d2d0e9e76ac85e80 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 efc90a2a996cddd5db5ef84c46c030485ad91dc7 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 b842a0b45e656afe19ab6af768a5fa299b6e3056 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 ea51bd95699cbfe978a788213008b66480bd030a 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 060112d094b43e05ad3791667730e7eee48337af 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 5061837881fadfe50465941336af9d8900b88b39 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 6866f2874c604aaeb8ef64d074be829e8bbb6bed 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 93d7aa0534d9b80d8c9b0d55cd05c76b63652640 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 6c0b468fb6a8f280c7ac571d1e89b6a13636f013 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 c56411e459e8f091fa87c0e8589aafc2c46cd2ec 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 eef7eeb99ab0034385e085a8d8a3ed67f64c2773 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 7905be628b39d2c3a3fb23180c970dc202ebe197 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 9e26e2049a631718151c1eb423cd9e5a8e69f37f 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 77ebb583a1325bd1ad3024ef241232a0b69f535b 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 6f24fa1c56cebe823386ad3e7d19e44e467af995 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 551da929a2dc47dee37ff784272a377a6da999b0 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 51858621b1b875ae02f775f8d3265afe124a1a6c 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 4835de59addd6b984facefb9b0d335226abc7d5b 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 befb51047d72574b94111960a57df6332a9a8297 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 9bb868738b53df07b7da12955947b36e5ac8853b 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 9b6c4829e642262a19817543d477acf608924a9b 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 d9d9ec35837e305029a54d18616a5ded8d327d39 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 789039fd4289286a8e14cf5e27e2eda92552a4e9 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 8b830377d643f72f77b3bd70a89c253ce22d63ef 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 82f56ade7f53a06d23527d736998fde18e4fa57c 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 c4a7d48eb6b104daeba2dda6132781b82b05970c 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 71e7a4201ab8aa24683418f243efc19ee33c96f6 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 5720f5a924c798e530d18dfeecda218b51a76450 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 5010e4357d793208bb0a771f35498d7d9d3bd05a 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 76a0579c1beae36db8d50604de3a0579ad98999b 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 bbfbef71d7b27e68cd480d42cae795d7db4229c5 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 cfab2d55f717681187f15d4dec4c2c6aad655ad4 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 76528e2d673a72cc656180a7d38e31876183e651 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 172df233fd332b6d2e32d9bfdcad17c4507b4a1f 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 384af2c3c97d6e3bc319de50f31160bf03f3352e 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 5cda9396b66f27563175c3071e277df10cf50ad5 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 24c5f6670184c250101aa534c0f40357418ff7b8 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 0fa41f6913bda5c0121e4f2393bf5909fe27a7aa 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 e62f4225b398f1a1d2208bac18b7c415ef6b6abe 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 7845f5e25669106ecf4c7a3c4483432a315c8764 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 dee0781719faf741ef30e930a6db5e803df393b6 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 f63afba3565ccddda4e3df5a57c422b886e2afbb 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 2af91bc8177bf310eb46ccd31dc0eccb049c6633 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 f64d0b3445fda3ee1f557f34f0b49538a15db990 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 648d744eff1aedea4ffe49dfca07aa465669e1f4 Author: Sasha Levin <sasha.le...@oracle.com> Date: Wed May 11 00:10:35 2016 -0400 Linux 4.1.24 Signed-off-by: Sasha Levin <sasha.le...@oracle.com> commit 8e8ad4a07714556769f0bc5496b69c63b0fc902d Author: Tony Luck <tony.l...@intel.com> Date: Thu Apr 14 10:21:52 2016 -0700 x86 EDAC, sb_edac.c: Repair damage introduced when "fixing" channel address [ Upstream commit ff15e95c82768d589957dbb17d7eb7dba7904659 ] In commit: eb1af3b71f9d ("Fix computation of channel address") I switched the "sck_way" variable from holding the log2 value read from the h/w to instead be the actual number. Unfortunately it is needed in log2 form when used to shift the address. Tested-by: Patrick Geary <patri...@supermicro.com> Signed-off-by: Tony Luck <tony.l...@intel.com> Acked-by: Mauro Carvalho Chehab <mche...@osg.samsung.com> Cc: Aristeu Rozanski <aroza...@redhat.com> Cc: Borislav Petkov <b...@alien8.de> Cc: Linus Torvalds <torva...@linux-foundation.org> Cc: Peter Zijlstra <pet...@infradead.org> Cc: Thomas Gleixner <t...@linutronix.de> Cc: linux-e...@vger.kernel.org Cc: sta...@vger.kernel.org Fixes: eb1af3b71f9d ("Fix computation of channel address") Signed-off-by: Ingo Molnar <mi...@kernel.org> Signed-off-by: Sasha Levin <sasha.le...@oracle.com> commit 936d0871135e41fba0dc15095319ca106f55a584 Author: Jan Beulich <jbeul...@suse.com> Date: Thu Apr 21 00:27:04 2016 -0600 x86/mm/xen: Suppress hugetlbfs in PV guests [ Upstream commit 103f6112f253017d7062cd74d17f4a514ed4485c ] Huge pages are not normally available to PV guests. Not suppressing hugetlbfs use results in an endless loop of page faults when user mode code tries to access a hugetlbfs mapped area (since the hypervisor denies such PTEs to be created, but error indications can't be propagated out of xen_set_pte_at(), just like for various of its siblings), and - once killed in an oops like this: kernel BUG at .../fs/hugetlbfs/inode.c:428! invalid opcode: 0000 [#1] SMP ... RIP: e030:[<ffffffff811c333b>] [<ffffffff811c333b>] remove_inode_hugepages+0x25b/0x320 ... Call Trace: [<ffffffff811c3415>] hugetlbfs_evict_inode+0x15/0x40 [<ffffffff81167b3d>] evict+0xbd/0x1b0 [<ffffffff8116514a>] __dentry_kill+0x19a/0x1f0 [<ffffffff81165b0e>] dput+0x1fe/0x220 [<ffffffff81150535>] __fput+0x155/0x200 [<ffffffff81079fc0>] task_work_run+0x60/0xa0 [<ffffffff81063510>] do_exit+0x160/0x400 [<ffffffff810637eb>] do_group_exit+0x3b/0xa0 [<ffffffff8106e8bd>] get_signal+0x1ed/0x470 [<ffffffff8100f854>] do_signal+0x14/0x110 [<ffffffff810030e9>] prepare_exit_to_usermode+0xe9/0xf0 [<ffffffff814178a5>] retint_user+0x8/0x13 This is CVE-2016-3961 / XSA-174. Reported-by: Vitaly Kuznetsov <vkuzn...@redhat.com> Signed-off-by: Jan Beulich <jbeul...@suse.com> Cc: Andrew Morton <a...@linux-foundation.org> Cc: Andy Lutomirski <l...@amacapital.net> Cc: Boris Ostrovsky <boris.ostrov...@oracle.com> Cc: Borislav Petkov <b...@alien8.de> Cc: Brian Gerst <brge...@gmail.com> Cc: David Vrabel <david.vra...@citrix.com> Cc: Denys Vlasenko <dvlas...@redhat.com> Cc: H. Peter Anvin <h...@zytor.com> Cc: Juergen Gross <jgr...@suse.com> Cc: Linus Torvalds <torva...@linux-foundation.org> Cc: Luis R. Rodriguez <mcg...@suse.com> Cc: Peter Zijlstra <pet...@infradead.org> Cc: Thomas Gleixner <t...@linutronix.de> Cc: Toshi Kani <toshi.k...@hp.com> Cc: sta...@vger.kernel.org Cc: xen-devel <xen-de...@lists.xenproject.org> Link: http://lkml.kernel.org/r/57188ed802000078000e4...@prv-mh.provo.novell.com Signed-off-by: Ingo Molnar <mi...@kernel.org> Signed-off-by: Sasha Levin <sasha.le...@oracle.com> commit 5a1b27489677535af7cf2ef082d0521f32fa145b Author: Dominik Dingel <din...@linux.vnet.ibm.com> Date: Fri Jul 17 16:23:39 2015 -0700 s390/hugetlb: add hugepages_supported define [ Upstream commit 7f9be77555bb2e52de84e9dddf7b4eb20cc6e171 ] On s390 we only can enable hugepages if the underlying hardware/hypervisor also does support this. Common code now would assume this to be signaled by setting HPAGE_SHIFT to 0. But on s390, where we only support one hugepage size, there is a link between HPAGE_SHIFT and pageblock_order. So instead of setting HPAGE_SHIFT to 0, we will implement the check for the hardware capability. Signed-off-by: Dominik Dingel <din...@linux.vnet.ibm.com> Acked-by: Martin Schwidefsky <schwidef...@de.ibm.com> Cc: Heiko Carstens <heiko.carst...@de.ibm.com> Cc: Christian Borntraeger <borntrae...@de.ibm.com> Cc: Michael Holzheu <holz...@linux.vnet.ibm.com> Cc: Gerald Schaefer <gerald.schae...@de.ibm.com> Signed-off-by: Andrew Morton <a...@linux-foundation.org> Signed-off-by: Linus Torvalds <torva...@linux-foundation.org> Signed-off-by: Sasha Levin <sasha.le...@oracle.com> commit ec8d85066c3a598ba747f578232d3dc89b33fa13 Author: Dominik Dingel <din...@linux.vnet.ibm.com> Date: Fri Jul 17 16:23:37 2015 -0700 mm: hugetlb: allow hugepages_supported to be architecture specific [ Upstream commit 2531c8cf56a640cd7d17057df8484e570716a450 ] s390 has a constant hugepage size, by setting HPAGE_SHIFT we also change e.g. the pageblock_order, which should be independent in respect to hugepage support. With this patch every architecture is free to define how to check for hugepage support. Signed-off-by: Dominik Dingel <din...@linux.vnet.ibm.com> Acked-by: Martin Schwidefsky <schwidef...@de.ibm.com> Cc: Heiko Carstens <heiko.carst...@de.ibm.com> Cc: Christian Borntraeger <borntrae...@de.ibm.com> Cc: Michael Holzheu <holz...@linux.vnet.ibm.com> Cc: Gerald Schaefer <gerald.schae...@de.ibm.com> Signed-off-by: Andrew Morton <a...@linux-foundation.org> Signed-off-by: Linus Torvalds <torva...@linux-foundation.org> Signed-off-by: Sasha Levin <sasha.le...@oracle.com> commit b9a11c92d2060b6bafa8babb890d9e711e8b0f5e Author: Huacai Chen <che...@lemote.com> Date: Tue Apr 19 19:19:11 2016 +0800 drm: Loongson-3 doesn't fully support wc memory [ Upstream commit 221004c66a58949a0f25c937a6789c0839feb530 ] Signed-off-by: Huacai Chen <che...@lemote.com> Cc: sta...@vger.kernel.org Reviewed-by: Alex Deucher <alexander.deuc...@amd.com> Signed-off-by: Dave Airlie <airl...@redhat.com> Signed-off-by: Sasha Levin <sasha.le...@oracle.com> commit 2719d3c05d4c93054e7c5838cc5b1906f72b465e Author: Jérôme Glisse <jgli...@redhat.com> Date: Tue Apr 19 09:07:50 2016 -0400 drm/radeon: forbid mapping of userptr bo through radeon device file [ Upstream commit b5dcec693f87cb8475f2291c0075b2422addd3d6 ] Allowing userptr bo which are basicly a list of page from some vma (so either anonymous page or file backed page) would lead to serious corruption of kernel structures and counters (because we overwrite the page->mapping field when mapping buffer). This will already block if the buffer was populated before anyone does try to mmap it because then TTM_PAGE_FLAG_SG would be set in in the ttm_tt flags. But that flag is check before ttm_tt_populate in the ttm vm fault handler. So to be safe just add a check to verify_access() callback. Reviewed-by: Christian König <christian.koe...@amd.com> Signed-off-by: Jérôme Glisse <jgli...@redhat.com> Cc: <sta...@vger.kernel.org> Signed-off-by: Alex Deucher <alexander.deuc...@amd.com> Signed-off-by: Sasha Levin <sasha.le...@oracle.com> diff --git a/Documentation/devicetree/bindings/arm/omap/omap.txt b/Documentation/devicetree/bindings/arm/omap/omap.txt index 4f6a82c..cbe35b3 100644 --- a/Documentation/devicetree/bindings/arm/omap/omap.txt +++ b/Documentation/devicetree/bindings/arm/omap/omap.txt @@ -23,6 +23,7 @@ Optional properties: during suspend. - ti,no-reset-on-init: When present, the module should not be reset at init - ti,no-idle-on-init: When present, the module should not be idled at init +- ti,no-idle: When present, the module is never allowed to idle. Example: diff --git a/Documentation/filesystems/efivarfs.txt b/Documentation/filesystems/efivarfs.txt index c477af0..686a64b 100644 --- a/Documentation/filesystems/efivarfs.txt +++ b/Documentation/filesystems/efivarfs.txt @@ -14,3 +14,10 @@ filesystem. efivarfs is typically mounted like this, mount -t efivarfs none /sys/firmware/efi/efivars + +Due to the presence of numerous firmware bugs where removing non-standard +UEFI variables causes the system firmware to fail to POST, efivarfs +files that are not well-known standardized variables are created +as immutable files. This doesn't prevent removal - "chattr -i" will work - +but it does prevent this kind of failure from being accomplished +accidentally. diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index cd03a0f..7bcd7a2 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -3808,6 +3808,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted. sector if the number is odd); i = IGNORE_DEVICE (don't bind to this device); + j = NO_REPORT_LUNS (don't use report luns + command, uas only); l = NOT_LOCKABLE (don't try to lock and unlock ejectable media); m = MAX_SECTORS_64 (don't transfer more diff --git a/Documentation/virtual/kvm/mmu.txt b/Documentation/virtual/kvm/mmu.txt index c59bd9b..4176ab0 100644 --- a/Documentation/virtual/kvm/mmu.txt +++ b/Documentation/virtual/kvm/mmu.txt @@ -352,7 +352,8 @@ In the first case there are two additional complications: - if CR4.SMEP is enabled: since we've turned the page into a kernel page, the kernel may now execute it. We handle this by also setting spte.nx. If we get a user fetch or read fault, we'll change spte.u=1 and - spte.nx=gpte.nx back. + spte.nx=gpte.nx back. For this to work, KVM forces EFER.NX to 1 when + shadow paging is in use. - if CR4.SMAP is disabled: since the page has been changed to a kernel page, it can not be reused when CR4.SMAP is enabled. We set CR4.SMAP && !CR0.WP into shadow page's role to avoid this case. Note, diff --git a/MAINTAINERS b/MAINTAINERS index 5e24680..326fac8 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -9533,9 +9533,11 @@ S: Maintained F: drivers/net/ethernet/dlink/sundance.c SUPERH +M: Yoshinori Sato <ys...@users.sourceforge.jp> +M: Rich Felker <dal...@libc.org> L: linux...@vger.kernel.org Q: http://patchwork.kernel.org/project/linux-sh/list/ -S: Orphan +S: Maintained F: Documentation/sh/ F: arch/sh/ F: drivers/sh/ diff --git a/Makefile b/Makefile index 39be1bb..df1d8b1 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ VERSION = 4 PATCHLEVEL = 1 -SUBLEVEL = 20 +SUBLEVEL = 24 EXTRAVERSION = NAME = Series 4800 diff --git a/arch/arm/boot/dts/armada-375.dtsi b/arch/arm/boot/dts/armada-375.dtsi index f076ff8..07f61bb 100644 --- a/arch/arm/boot/dts/armada-375.dtsi +++ b/arch/arm/boot/dts/armada-375.dtsi @@ -508,7 +508,7 @@ }; sata@a0000 { - compatible = "marvell,orion-sata"; + compatible = "marvell,armada-370-sata"; reg = <0xa0000 0x5000>; interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; clocks = <&gateclk 14>, <&gateclk 20>; diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi index dfcc0dd..bc04b75 100644 --- a/arch/arm/boot/dts/dra7.dtsi +++ b/arch/arm/boot/dts/dra7.dtsi @@ -1411,6 +1411,16 @@ 0x48485200 0x2E00>; #address-cells = <1>; #size-cells = <1>; + + /* + * Do not allow gating of cpsw clock as workaround + * for errata i877. Keeping internal clock disabled + * causes the device switching characteristics + * to degrade over time and eventually fail to meet + * the data manual delay time/skew specs. + */ + ti,no-idle; + /* * rx_thresh_pend * rx_pend diff --git a/arch/arm/include/asm/psci.h b/arch/arm/include/asm/psci.h index c25ef3e..e3789fb 100644 --- a/arch/arm/include/asm/psci.h +++ b/arch/arm/include/asm/psci.h @@ -37,7 +37,7 @@ struct psci_operations { extern struct psci_operations psci_ops; extern struct smp_operations psci_smp_ops; -#ifdef CONFIG_ARM_PSCI +#if defined(CONFIG_SMP) && defined(CONFIG_ARM_PSCI) int psci_init(void); bool psci_smp_available(void); #else diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index 5286e77..dee6831 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c @@ -876,6 +876,36 @@ static int _init_opt_clks(struct omap_hwmod *oh) return ret; } +static void _enable_optional_clocks(struct omap_hwmod *oh) +{ + struct omap_hwmod_opt_clk *oc; + int i; + + pr_debug("omap_hwmod: %s: enabling optional clocks\n", oh->name); + + for (i = oh->opt_clks_cnt, oc = oh->opt_clks; i > 0; i--, oc++) + if (oc->_clk) { + pr_debug("omap_hwmod: enable %s:%s\n", oc->role, + __clk_get_name(oc->_clk)); + clk_enable(oc->_clk); + } +} + +static void _disable_optional_clocks(struct omap_hwmod *oh) +{ + struct omap_hwmod_opt_clk *oc; + int i; + + pr_debug("omap_hwmod: %s: disabling optional clocks\n", oh->name); + + for (i = oh->opt_clks_cnt, oc = oh->opt_clks; i > 0; i--, oc++) + if (oc->_clk) { + pr_debug("omap_hwmod: disable %s:%s\n", oc->role, + __clk_get_name(oc->_clk)); + clk_disable(oc->_clk); + } +} + /** * _enable_clocks - enable hwmod main clock and interface clocks * @oh: struct omap_hwmod * @@ -903,6 +933,9 @@ static int _enable_clocks(struct omap_hwmod *oh) clk_enable(os->_clk); } + if (oh->flags & HWMOD_OPT_CLKS_NEEDED) + _enable_optional_clocks(oh); + /* The opt clocks are controlled by the device driver. */ return 0; @@ -934,41 +967,14 @@ static int _disable_clocks(struct omap_hwmod *oh) clk_disable(os->_clk); } + if (oh->flags & HWMOD_OPT_CLKS_NEEDED) + _disable_optional_clocks(oh); + /* The opt clocks are controlled by the device driver. */ return 0; } -static void _enable_optional_clocks(struct omap_hwmod *oh) -{ - struct omap_hwmod_opt_clk *oc; - int i; - - pr_debug("omap_hwmod: %s: enabling optional clocks\n", oh->name); - - for (i = oh->opt_clks_cnt, oc = oh->opt_clks; i > 0; i--, oc++) - if (oc->_clk) { - pr_debug("omap_hwmod: enable %s:%s\n", oc->role, - __clk_get_name(oc->_clk)); - clk_enable(oc->_clk); - } -} - -static void _disable_optional_clocks(struct omap_hwmod *oh) -{ - struct omap_hwmod_opt_clk *oc; - int i; - - pr_debug("omap_hwmod: %s: disabling optional clocks\n", oh->name); - - for (i = oh->opt_clks_cnt, oc = oh->opt_clks; i > 0; i--, oc++) - if (oc->_clk) { - pr_debug("omap_hwmod: disable %s:%s\n", oc->role, - __clk_get_name(oc->_clk)); - clk_disable(oc->_clk); - } -} - /** * _omap4_enable_module - enable CLKCTRL modulemode on OMAP4 * @oh: struct omap_hwmod * @@ -1396,9 +1402,7 @@ static void _enable_sysc(struct omap_hwmod *oh) (sf & SYSC_HAS_CLOCKACTIVITY)) _set_clockactivity(oh, oh->class->sysc->clockact, &v); - /* If the cached value is the same as the new value, skip the write */ - if (oh->_sysc_cache != v) - _write_sysconfig(v, oh); + _write_sysconfig(v, oh); /* * Set the autoidle bit only after setting the smartidle bit @@ -1461,7 +1465,9 @@ static void _idle_sysc(struct omap_hwmod *oh) _set_master_standbymode(oh, idlemode, &v); } - _write_sysconfig(v, oh); + /* If the cached value is the same as the new value, skip the write */ + if (oh->_sysc_cache != v) + _write_sysconfig(v, oh); } /** @@ -2180,6 +2186,11 @@ static int _enable(struct omap_hwmod *oh) */ static int _idle(struct omap_hwmod *oh) { + if (oh->flags & HWMOD_NO_IDLE) { + oh->_int_flags |= _HWMOD_SKIP_ENABLE; + return 0; + } + pr_debug("omap_hwmod: %s: idling\n", oh->name); if (oh->_state != _HWMOD_STATE_ENABLED) { @@ -2484,6 +2495,8 @@ static int __init _init(struct omap_hwmod *oh, void *data) oh->flags |= HWMOD_INIT_NO_RESET; if (of_find_property(np, "ti,no-idle-on-init", NULL)) oh->flags |= HWMOD_INIT_NO_IDLE; + if (of_find_property(np, "ti,no-idle", NULL)) + oh->flags |= HWMOD_NO_IDLE; } oh->_state = _HWMOD_STATE_INITIALIZED; @@ -2610,7 +2623,7 @@ static void __init _setup_postsetup(struct omap_hwmod *oh) * XXX HWMOD_INIT_NO_IDLE does not belong in hwmod data - * it should be set by the core code as a runtime flag during startup */ - if ((oh->flags & HWMOD_INIT_NO_IDLE) && + if ((oh->flags & (HWMOD_INIT_NO_IDLE | HWMOD_NO_IDLE)) && (postsetup_state == _HWMOD_STATE_IDLE)) { oh->_int_flags |= _HWMOD_SKIP_ENABLE; postsetup_state = _HWMOD_STATE_ENABLED; diff --git a/arch/arm/mach-omap2/omap_hwmod.h b/arch/arm/mach-omap2/omap_hwmod.h index 9611c91..ec289c5 100644 --- a/arch/arm/mach-omap2/omap_hwmod.h +++ b/arch/arm/mach-omap2/omap_hwmod.h @@ -517,6 +517,10 @@ struct omap_hwmod_omap4_prcm { * HWMOD_RECONFIG_IO_CHAIN: omap_hwmod code needs to reconfigure wake-up * events by calling _reconfigure_io_chain() when a device is enabled * or idled. + * HWMOD_OPT_CLKS_NEEDED: The optional clocks are needed for the module to + * operate and they need to be handled at the same time as the main_clk. + * HWMOD_NO_IDLE: Do not idle the hwmod at all. Useful to handle certain + * IPs like CPSW on DRA7, where clocks to this module cannot be disabled. */ #define HWMOD_SWSUP_SIDLE (1 << 0) #define HWMOD_SWSUP_MSTANDBY (1 << 1) @@ -532,6 +536,8 @@ struct omap_hwmod_omap4_prcm { #define HWMOD_FORCE_MSTANDBY (1 << 11) #define HWMOD_SWSUP_SIDLE_ACT (1 << 12) #define HWMOD_RECONFIG_IO_CHAIN (1 << 13) +#define HWMOD_OPT_CLKS_NEEDED (1 << 14) +#define HWMOD_NO_IDLE (1 << 15) /* * omap_hwmod._int_flags definitions diff --git a/arch/arm/mach-omap2/sleep34xx.S b/arch/arm/mach-omap2/sleep34xx.S index 8e2a7ac..1b9f052 100644 --- a/arch/arm/mach-omap2/sleep34xx.S +++ b/arch/arm/mach-omap2/sleep34xx.S @@ -436,12 +436,14 @@ skipl2dis: and r1, #0x700 cmp r1, #0x300 beq l2_inv_gp + adr r0, l2_inv_api_params_offset + ldr r3, [r0] + add r3, r3, r0 @ r3 points to dummy parameters mov r0, #40 @ set service ID for PPA mov r12, r0 @ copy secure Service ID in r12 mov r1, #0 @ set task id for ROM code in r1 mov r2, #4 @ set some flags in r2, r6 mov r6, #0xff - adr r3, l2_inv_api_params @ r3 points to dummy parameters dsb @ data write barrier dmb @ data memory barrier smc #1 @ call SMI monitor (smi #1) @@ -475,8 +477,8 @@ skipl2dis: b logic_l1_restore .align -l2_inv_api_params: - .word 0x1, 0x00 +l2_inv_api_params_offset: + .long l2_inv_api_params - . l2_inv_gp: /* Execute smi to invalidate L2 cache */ mov r12, #0x1 @ set up to invalidate L2 @@ -531,6 +533,10 @@ l2dis_3630_offset: l2dis_3630: .word 0 + .data +l2_inv_api_params: + .word 0x1, 0x00 + /* * Internal functions */ diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index 3258174..f462e6e 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -18,6 +18,8 @@ GZFLAGS :=-9 KBUILD_DEFCONFIG := defconfig KBUILD_CFLAGS += -mgeneral-regs-only +KBUILD_CFLAGS += $(call cc-option, -mpc-relative-literal-loads) + ifeq ($(CONFIG_CPU_BIG_ENDIAN), y) KBUILD_CPPFLAGS += -mbig-endian AS += -EB diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h index cf73194..526a9cb 100644 --- a/arch/arm64/include/asm/pgtable.h +++ b/arch/arm64/include/asm/pgtable.h @@ -33,7 +33,7 @@ /* * VMALLOC and SPARSEMEM_VMEMMAP ranges. * - * VMEMAP_SIZE: allows the whole VA space to be covered by a struct page array + * VMEMAP_SIZE: allows the whole linear region to be covered by a struct page array * (rounded up to PUD_SIZE). * VMALLOC_START: beginning of the kernel VA space * VMALLOC_END: extends to the available space below vmmemmap, PCI I/O space, @@ -43,7 +43,9 @@ #define VMALLOC_START (UL(0xffffffffffffffff) << VA_BITS) #define VMALLOC_END (PAGE_OFFSET - PUD_SIZE - VMEMMAP_SIZE - SZ_64K) -#define vmemmap ((struct page *)(VMALLOC_END + SZ_64K)) +#define VMEMMAP_START (VMALLOC_END + SZ_64K) +#define vmemmap ((struct page *)VMEMMAP_START - \ + SECTION_ALIGN_DOWN(memstart_addr >> PAGE_SHIFT)) #define FIRST_USER_ADDRESS 0UL diff --git a/arch/arm64/kernel/debug-monitors.c b/arch/arm64/kernel/debug-monitors.c index b056369..0d1d675 100644 --- a/arch/arm64/kernel/debug-monitors.c +++ b/arch/arm64/kernel/debug-monitors.c @@ -184,20 +184,21 @@ static void clear_regs_spsr_ss(struct pt_regs *regs) /* EL1 Single Step Handler hooks */ static LIST_HEAD(step_hook); -static DEFINE_RWLOCK(step_hook_lock); +static DEFINE_SPINLOCK(step_hook_lock); void register_step_hook(struct step_hook *hook) { - write_lock(&step_hook_lock); - list_add(&hook->node, &step_hook); - write_unlock(&step_hook_lock); + spin_lock(&step_hook_lock); + list_add_rcu(&hook->node, &step_hook); + spin_unlock(&step_hook_lock); } void unregister_step_hook(struct step_hook *hook) { - write_lock(&step_hook_lock); - list_del(&hook->node); - write_unlock(&step_hook_lock); + spin_lock(&step_hook_lock); + list_del_rcu(&hook->node); + spin_unlock(&step_hook_lock); + synchronize_rcu(); } /* @@ -211,15 +212,15 @@ static int call_step_hook(struct pt_regs *regs, unsigned int esr) struct step_hook *hook; int retval = DBG_HOOK_ERROR; - read_lock(&step_hook_lock); + rcu_read_lock(); - list_for_each_entry(hook, &step_hook, node) { + list_for_each_entry_rcu(hook, &step_hook, node) { retval = hook->fn(regs, esr); if (retval == DBG_HOOK_HANDLED) break; } - read_unlock(&step_hook_lock); + rcu_read_unlock(); return retval; } @@ -271,20 +272,21 @@ static int single_step_handler(unsigned long addr, unsigned int esr, * Use reader/writer locks instead of plain spinlock. */ static LIST_HEAD(break_hook); -static DEFINE_RWLOCK(break_hook_lock); +static DEFINE_SPINLOCK(break_hook_lock); void register_break_hook(struct break_hook *hook) { - write_lock(&break_hook_lock); - list_add(&hook->node, &break_hook); - write_unlock(&break_hook_lock); + spin_lock(&break_hook_lock); + list_add_rcu(&hook->node, &break_hook); + spin_unlock(&break_hook_lock); } void unregister_break_hook(struct break_hook *hook) { - write_lock(&break_hook_lock); - list_del(&hook->node); - write_unlock(&break_hook_lock); + spin_lock(&break_hook_lock); + list_del_rcu(&hook->node); + spin_unlock(&break_hook_lock); + synchronize_rcu(); } static int call_break_hook(struct pt_regs *regs, unsigned int esr) @@ -292,11 +294,11 @@ static int call_break_hook(struct pt_regs *regs, unsigned int esr) struct break_hook *hook; int (*fn)(struct pt_regs *regs, unsigned int esr) = NULL; - read_lock(&break_hook_lock); - list_for_each_entry(hook, &break_hook, node) + rcu_read_lock(); + list_for_each_entry_rcu(hook, &break_hook, node) if ((esr & hook->esr_mask) == hook->esr_val) fn = hook->fn; - read_unlock(&break_hook_lock); + rcu_read_unlock(); return fn ? fn(regs, esr) : DBG_HOOK_ERROR; } diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c index ad87ce8..ae8f940 100644 --- a/arch/arm64/mm/init.c +++ b/arch/arm64/mm/init.c @@ -312,8 +312,8 @@ void __init mem_init(void) " .data : 0x%p" " - 0x%p" " (%6ld KB)\n", MLG(VMALLOC_START, VMALLOC_END), #ifdef CONFIG_SPARSEMEM_VMEMMAP - MLG((unsigned long)vmemmap, - (unsigned long)vmemmap + VMEMMAP_SIZE), + MLG(VMEMMAP_START, + VMEMMAP_START + VMEMMAP_SIZE), MLM((unsigned long)virt_to_page(PAGE_OFFSET), (unsigned long)virt_to_page(high_memory)), #endif diff --git a/arch/avr32/mach-at32ap/at32ap700x.c b/arch/avr32/mach-at32ap/at32ap700x.c index 1d8b147..bbf777c 100644 --- a/arch/avr32/mach-at32ap/at32ap700x.c +++ b/arch/avr32/mach-at32ap/at32ap700x.c @@ -1328,6 +1328,21 @@ static struct clk atmel_mci0_pclk = { .index = 9, }; +static bool at32_mci_dma_filter(struct dma_chan *chan, void *pdata) +{ + struct mci_dma_data *sl = pdata; + + if (!sl) + return false; + + if (find_slave_dev(sl) == chan->device->dev) { + chan->private = slave_data_ptr(sl); + return true; + } + + return false; +} + struct platform_device *__init at32_add_device_mci(unsigned int id, struct mci_platform_data *data) { @@ -1362,6 +1377,7 @@ at32_add_device_mci(unsigned int id, struct mci_platform_data *data) slave->sdata.dst_master = 0; data->dma_slave = slave; + data->dma_filter = at32_mci_dma_filter; if (platform_device_add_data(pdev, data, sizeof(struct mci_platform_data))) diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index a3b1ffe..c99e8a3 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig @@ -2103,11 +2103,11 @@ config CPU_R4K_CACHE_TLB config MIPS_MT_SMP bool "MIPS MT SMP support (1 TC on each available VPE)" - depends on SYS_SUPPORTS_MULTITHREADING + depends on SYS_SUPPORTS_MULTITHREADING && !CPU_MIPSR6 select CPU_MIPSR2_IRQ_VI select CPU_MIPSR2_IRQ_EI select SYNC_R4K - select MIPS_GIC_IPI + select MIPS_GIC_IPI if MIPS_GIC select MIPS_MT select SMP select SMP_UP @@ -2204,8 +2204,8 @@ config MIPS_VPE_APSP_API_MT config MIPS_CMP bool "MIPS CMP framework support (DEPRECATED)" - depends on SYS_SUPPORTS_MIPS_CMP - select MIPS_GIC_IPI + depends on SYS_SUPPORTS_MIPS_CMP && !CPU_MIPSR6 + select MIPS_GIC_IPI if MIPS_GIC select SMP select SYNC_R4K select SYS_SUPPORTS_SMP @@ -2221,11 +2221,11 @@ config MIPS_CMP config MIPS_CPS bool "MIPS Coherent Processing System support" - depends on SYS_SUPPORTS_MIPS_CPS && !64BIT + depends on SYS_SUPPORTS_MIPS_CPS && !CPU_MIPSR6 select MIPS_CM select MIPS_CPC select MIPS_CPS_PM if HOTPLUG_CPU - select MIPS_GIC_IPI + select MIPS_GIC_IPI if MIPS_GIC select SMP select SYNC_R4K if (CEVT_R4K || CSRC_R4K) select SYS_SUPPORTS_HOTPLUG_CPU @@ -2244,6 +2244,7 @@ config MIPS_CPS_PM bool config MIPS_GIC_IPI + depends on MIPS_GIC bool config MIPS_CM diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c index d0744cc..3cef551 100644 --- a/arch/mips/kernel/smp.c +++ b/arch/mips/kernel/smp.c @@ -120,6 +120,7 @@ static inline void calculate_cpu_foreign_map(void) cpumask_t temp_foreign_map; /* Re-calculate the mask */ + cpumask_clear(&temp_foreign_map); for_each_online_cpu(i) { core_present = 0; for_each_cpu(k, &temp_foreign_map) diff --git a/arch/parisc/include/asm/uaccess.h b/arch/parisc/include/asm/uaccess.h index 0abdd4c..1960b87 100644 --- a/arch/parisc/include/asm/uaccess.h +++ b/arch/parisc/include/asm/uaccess.h @@ -76,6 +76,7 @@ struct exception_table_entry { */ struct exception_data { unsigned long fault_ip; + unsigned long fault_gp; unsigned long fault_space; unsigned long fault_addr; }; diff --git a/arch/parisc/kernel/asm-offsets.c b/arch/parisc/kernel/asm-offsets.c index 59001ce..c972e65 100644 --- a/arch/parisc/kernel/asm-offsets.c +++ b/arch/parisc/kernel/asm-offsets.c @@ -291,6 +291,7 @@ int main(void) DEFINE(ASM_PT_INITIAL, PT_INITIAL); BLANK(); DEFINE(EXCDATA_IP, offsetof(struct exception_data, fault_ip)); + DEFINE(EXCDATA_GP, offsetof(struct exception_data, fault_gp)); DEFINE(EXCDATA_SPACE, offsetof(struct exception_data, fault_space)); DEFINE(EXCDATA_ADDR, offsetof(struct exception_data, fault_addr)); BLANK(); diff --git a/arch/parisc/kernel/parisc_ksyms.c b/arch/parisc/kernel/parisc_ksyms.c index 568b2c6..3cad8aa 100644 --- a/arch/parisc/kernel/parisc_ksyms.c +++ b/arch/parisc/kernel/parisc_ksyms.c @@ -47,11 +47,11 @@ EXPORT_SYMBOL(__cmpxchg_u64); EXPORT_SYMBOL(lclear_user); EXPORT_SYMBOL(lstrnlen_user); -/* Global fixups */ -extern void fixup_get_user_skip_1(void); -extern void fixup_get_user_skip_2(void); -extern void fixup_put_user_skip_1(void); -extern void fixup_put_user_skip_2(void); +/* Global fixups - defined as int to avoid creation of function pointers */ +extern int fixup_get_user_skip_1; +extern int fixup_get_user_skip_2; +extern int fixup_put_user_skip_1; +extern int fixup_put_user_skip_2; EXPORT_SYMBOL(fixup_get_user_skip_1); EXPORT_SYMBOL(fixup_get_user_skip_2); EXPORT_SYMBOL(fixup_put_user_skip_1); diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c index 7f67c4c..bbf2265 100644 --- a/arch/parisc/kernel/traps.c +++ b/arch/parisc/kernel/traps.c @@ -798,6 +798,9 @@ void notrace handle_interruption(int code, struct pt_regs *regs) if (fault_space == 0 && !in_atomic()) { + /* Clean up and return if in exception table. */ + if (fixup_exception(regs)) + return; pdc_chassis_send_status(PDC_CHASSIS_DIRECT_PANIC); parisc_terminate("Kernel Fault", regs, code, fault_address); } diff --git a/arch/parisc/lib/fixup.S b/arch/parisc/lib/fixup.S index 536ef66..1052b74 100644 --- a/arch/parisc/lib/fixup.S +++ b/arch/parisc/lib/fixup.S @@ -26,6 +26,7 @@ #ifdef CONFIG_SMP .macro get_fault_ip t1 t2 + loadgp addil LT%__per_cpu_offset,%r27 LDREG RT%__per_cpu_offset(%r1),\t1 /* t2 = smp_processor_id() */ @@ -40,14 +41,19 @@ LDREG RT%exception_data(%r1),\t1 /* t1 = this_cpu_ptr(&exception_data) */ add,l \t1,\t2,\t1 + /* %r27 = t1->fault_gp - restore gp */ + LDREG EXCDATA_GP(\t1), %r27 /* t1 = t1->fault_ip */ LDREG EXCDATA_IP(\t1), \t1 .endm #else .macro get_fault_ip t1 t2 + loadgp /* t1 = this_cpu_ptr(&exception_data) */ addil LT%exception_data,%r27 LDREG RT%exception_data(%r1),\t2 + /* %r27 = t2->fault_gp - restore gp */ + LDREG EXCDATA_GP(\t2), %r27 /* t1 = t2->fault_ip */ LDREG EXCDATA_IP(\t2), \t1 .endm diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c index e5120e6..50d64a7 100644 --- a/arch/parisc/mm/fault.c +++ b/arch/parisc/mm/fault.c @@ -151,6 +151,7 @@ int fixup_exception(struct pt_regs *regs) struct exception_data *d; d = this_cpu_ptr(&exception_data); d->fault_ip = regs->iaoq[0]; + d->fault_gp = regs->gr[27]; d->fault_space = regs->isr; d->fault_addr = regs->ior; diff --git a/arch/powerpc/include/uapi/asm/cputable.h b/arch/powerpc/include/uapi/asm/cputable.h index de2c0e4..67de80a 100644 --- a/arch/powerpc/include/uapi/asm/cputable.h +++ b/arch/powerpc/include/uapi/asm/cputable.h @@ -31,6 +31,7 @@ #define PPC_FEATURE_PSERIES_PERFMON_COMPAT \ 0x00000040 +/* Reserved - do not use 0x00000004 */ #define PPC_FEATURE_TRUE_LE 0x00000002 #define PPC_FEATURE_PPC_LE 0x00000001 diff --git a/arch/powerpc/kernel/module_64.c b/arch/powerpc/kernel/module_64.c index 59663af..e4f7d4e 100644 --- a/arch/powerpc/kernel/module_64.c +++ b/arch/powerpc/kernel/module_64.c @@ -335,7 +335,7 @@ static void dedotify(Elf64_Sym *syms, unsigned int numsyms, char *strtab) if (syms[i].st_shndx == SHN_UNDEF) { char *name = strtab + syms[i].st_name; if (name[0] == '.') - memmove(name, name+1, strlen(name)); + syms[i].st_name++; } } } diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c index 308c5e1..abe9cdc 100644 --- a/arch/powerpc/kernel/prom.c +++ b/arch/powerpc/kernel/prom.c @@ -149,23 +149,24 @@ static struct ibm_pa_feature { unsigned long cpu_features; /* CPU_FTR_xxx bit */ unsigned long mmu_features; /* MMU_FTR_xxx bit */ unsigned int cpu_user_ftrs; /* PPC_FEATURE_xxx bit */ + unsigned int cpu_user_ftrs2; /* PPC_FEATURE2_xxx bit */ unsigned char pabyte; /* byte number in ibm,pa-features */ unsigned char pabit; /* bit number (big-endian) */ unsigned char invert; /* if 1, pa bit set => clear feature */ } ibm_pa_features[] __initdata = { - {0, 0, PPC_FEATURE_HAS_MMU, 0, 0, 0}, - {0, 0, PPC_FEATURE_HAS_FPU, 0, 1, 0}, - {CPU_FTR_CTRL, 0, 0, 0, 3, 0}, - {CPU_FTR_NOEXECUTE, 0, 0, 0, 6, 0}, - {CPU_FTR_NODSISRALIGN, 0, 0, 1, 1, 1}, - {0, MMU_FTR_CI_LARGE_PAGE, 0, 1, 2, 0}, - {CPU_FTR_REAL_LE, PPC_FEATURE_TRUE_LE, 5, 0, 0}, + {0, 0, PPC_FEATURE_HAS_MMU, 0, 0, 0, 0}, + {0, 0, PPC_FEATURE_HAS_FPU, 0, 0, 1, 0}, + {CPU_FTR_CTRL, 0, 0, 0, 0, 3, 0}, + {CPU_FTR_NOEXECUTE, 0, 0, 0, 0, 6, 0}, + {CPU_FTR_NODSISRALIGN, 0, 0, 0, 1, 1, 1}, + {0, MMU_FTR_CI_LARGE_PAGE, 0, 0, 1, 2, 0}, + {CPU_FTR_REAL_LE, 0, PPC_FEATURE_TRUE_LE, 0, 5, 0, 0}, /* * If the kernel doesn't support TM (ie. CONFIG_PPC_TRANSACTIONAL_MEM=n), * we don't want to turn on CPU_FTR_TM here, so we use CPU_FTR_TM_COMP * which is 0 if the kernel doesn't support TM. */ - {CPU_FTR_TM_COMP, 0, 0, 22, 0, 0}, + {CPU_FTR_TM_COMP, 0, 0, 0, 22, 0, 0}, }; static void __init scan_features(unsigned long node, const unsigned char *ftrs, @@ -196,10 +197,12 @@ static void __init scan_features(unsigned long node, const unsigned char *ftrs, if (bit ^ fp->invert) { cur_cpu_spec->cpu_features |= fp->cpu_features; cur_cpu_spec->cpu_user_features |= fp->cpu_user_ftrs; + cur_cpu_spec->cpu_user_features2 |= fp->cpu_user_ftrs2; cur_cpu_spec->mmu_features |= fp->mmu_features; } else { cur_cpu_spec->cpu_features &= ~fp->cpu_features; cur_cpu_spec->cpu_user_features &= ~fp->cpu_user_ftrs; + cur_cpu_spec->cpu_user_features2 &= ~fp->cpu_user_ftrs2; cur_cpu_spec->mmu_features &= ~fp->mmu_features; } } diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S index f8338e6..a34e43e 100644 --- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S +++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S @@ -1273,6 +1273,20 @@ END_FTR_SECTION_IFCLR(CPU_FTR_ARCH_207S) std r6, VCPU_ACOP(r9) stw r7, VCPU_GUEST_PID(r9) std r8, VCPU_WORT(r9) + /* + * Restore various registers to 0, where non-zero values + * set by the guest could disrupt the host. + */ + li r0, 0 + mtspr SPRN_IAMR, r0 + mtspr SPRN_CIABR, r0 + mtspr SPRN_DAWRX, r0 + mtspr SPRN_TCSCR, r0 + mtspr SPRN_WORT, r0 + /* Set MMCRS to 1<<31 to freeze and disable the SPMC counters */ + li r0, 1 + sldi r0, r0, 31 + mtspr SPRN_MMCRS, r0 8: /* Save and reset AMR and UAMOR before turning on the MMU */ diff --git a/arch/s390/include/asm/hugetlb.h b/arch/s390/include/asm/hugetlb.h index 11eae5f..9787b61 100644 --- a/arch/s390/include/asm/hugetlb.h +++ b/arch/s390/include/asm/hugetlb.h @@ -14,6 +14,7 @@ #define is_hugepage_only_range(mm, addr, len) 0 #define hugetlb_free_pgd_range free_pgd_range +#define hugepages_supported() (MACHINE_HAS_HPAGE) void set_huge_pte_at(struct mm_struct *mm, unsigned long addr, pte_t *ptep, pte_t pte); diff --git a/arch/s390/include/asm/mmu_context.h b/arch/s390/include/asm/mmu_context.h index fb1b93e..e485817 100644 --- a/arch/s390/include/asm/mmu_context.h +++ b/arch/s390/include/asm/mmu_context.h @@ -15,17 +15,25 @@ static inline int init_new_context(struct task_struct *tsk, struct mm_struct *mm) { + spin_lock_init(&mm->context.list_lock); + INIT_LIST_HEAD(&mm->context.pgtable_list); + INIT_LIST_HEAD(&mm->context.gmap_list); cpumask_clear(&mm->context.cpu_attach_mask); atomic_set(&mm->context.attach_count, 0); mm->context.flush_mm = 0; - mm->context.asce_bits = _ASCE_TABLE_LENGTH | _ASCE_USER_BITS; - mm->context.asce_bits |= _ASCE_TYPE_REGION3; #ifdef CONFIG_PGSTE mm->context.alloc_pgste = page_table_allocate_pgste; mm->context.has_pgste = 0; mm->context.use_skey = 0; #endif - mm->context.asce_limit = STACK_TOP_MAX; + if (mm->context.asce_limit == 0) { + /* context created by exec, set asce limit to 4TB */ + mm->context.asce_bits = _ASCE_TABLE_LENGTH | + _ASCE_USER_BITS | _ASCE_TYPE_REGION3; + mm->context.asce_limit = STACK_TOP_MAX; + } else if (mm->context.asce_limit == (1UL << 31)) { + mm_inc_nr_pmds(mm); + } crst_table_init((unsigned long *) mm->pgd, pgd_entry_type(mm)); return 0; } @@ -111,8 +119,6 @@ static inline void activate_mm(struct mm_struct *prev, static inline void arch_dup_mmap(struct mm_struct *oldmm, struct mm_struct *mm) { - if (oldmm->context.asce_limit < mm->context.asce_limit) - crst_table_downgrade(mm, oldmm->context.asce_limit); } static inline void arch_exit_mmap(struct mm_struct *mm) diff --git a/arch/s390/include/asm/pci.h b/arch/s390/include/asm/pci.h index a648338..5b7153b 100644 --- a/arch/s390/include/asm/pci.h +++ b/arch/s390/include/asm/pci.h @@ -45,7 +45,8 @@ struct zpci_fmb { u64 rpcit_ops; u64 dma_rbytes; u64 dma_wbytes; -} __packed __aligned(16); + u64 pad[2]; +} __packed __aligned(128); enum zpci_state { ZPCI_FN_STATE_RESERVED, diff --git a/arch/s390/include/asm/pgalloc.h b/arch/s390/include/asm/pgalloc.h index 7b7858f..d7cc79f 100644 --- a/arch/s390/include/asm/pgalloc.h +++ b/arch/s390/include/asm/pgalloc.h @@ -100,12 +100,26 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) static inline pgd_t *pgd_alloc(struct mm_struct *mm) { - spin_lock_init(&mm->context.list_lock); - INIT_LIST_HEAD(&mm->context.pgtable_list); - INIT_LIST_HEAD(&mm->context.gmap_list); - return (pgd_t *) crst_table_alloc(mm); + unsigned long *table = crst_table_alloc(mm); + + if (!table) + return NULL; + if (mm->context.asce_limit == (1UL << 31)) { + /* Forking a compat process with 2 page table levels */ + if (!pgtable_pmd_page_ctor(virt_to_page(table))) { + crst_table_free(mm, table); + return NULL; + } + } + return (pgd_t *) table; +} + +static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd) +{ + if (mm->context.asce_limit == (1UL << 31)) + pgtable_pmd_page_dtor(virt_to_page(pgd)); + crst_table_free(mm, (unsigned long *) pgd); } -#define pgd_free(mm, pgd) crst_table_free(mm, (unsigned long *) pgd) static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t pte) diff --git a/arch/s390/pci/pci.c b/arch/s390/pci/pci.c index 598f023..50a79a5 100644 --- a/arch/s390/pci/pci.c +++ b/arch/s390/pci/pci.c @@ -871,8 +871,11 @@ static inline int barsize(u8 size) static int zpci_mem_init(void) { + BUILD_BUG_ON(!is_power_of_2(__alignof__(struct zpci_fmb)) || + __alignof__(struct zpci_fmb) < sizeof(struct zpci_fmb)); + zdev_fmb_cache = kmem_cache_create("PCI_FMB_cache", sizeof(struct zpci_fmb), - 16, 0, NULL); + __alignof__(struct zpci_fmb), 0, NULL); if (!zdev_fmb_cache) goto error_zdev; diff --git a/arch/um/drivers/mconsole_kern.c b/arch/um/drivers/mconsole_kern.c index 29880c9..e22e572 100644 --- a/arch/um/drivers/mconsole_kern.c +++ b/arch/um/drivers/mconsole_kern.c @@ -133,7 +133,7 @@ void mconsole_proc(struct mc_request *req) ptr += strlen("proc"); ptr = skip_spaces(ptr); - file = file_open_root(mnt->mnt_root, mnt, ptr, O_RDONLY); + file = file_open_root(mnt->mnt_root, mnt, ptr, O_RDONLY, 0); if (IS_ERR(file)) { mconsole_reply(req, "Failed to open file", 1, 0); printk(KERN_ERR "open /proc/%s: %ld\n", ptr, PTR_ERR(file)); diff --git a/arch/x86/crypto/sha-mb/sha1_mb.c b/arch/x86/crypto/sha-mb/sha1_mb.c index e510b1c..e5b79c1 100644 --- a/arch/x86/crypto/sha-mb/sha1_mb.c +++ b/arch/x86/crypto/sha-mb/sha1_mb.c @@ -456,10 +456,10 @@ static int sha_complete_job(struct mcryptd_hash_request_ctx *rctx, req = cast_mcryptd_ctx_to_req(req_ctx); if (irqs_disabled()) - rctx->complete(&req->base, ret); + req_ctx->complete(&req->base, ret); else { local_bh_disable(); - rctx->complete(&req->base, ret); + req_ctx->complete(&req->base, ret); local_bh_enable(); } } diff --git a/arch/x86/ia32/ia32entry.S b/arch/x86/ia32/ia32entry.S index 72bf268..27e5494 100644 --- a/arch/x86/ia32/ia32entry.S +++ b/arch/x86/ia32/ia32entry.S @@ -511,6 +511,7 @@ ENTRY(ia32_syscall) * it is too small to ever cause noticeable irq latency. */ PARAVIRT_ADJUST_EXCEPTION_FRAME + ASM_CLAC /* Do this early to minimize exposure */ SWAPGS ENABLE_INTERRUPTS(CLBR_NONE) diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h index 976b86a..a197e15 100644 --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h @@ -640,8 +640,8 @@ static inline void entering_irq(void) static inline void entering_ack_irq(void) { - ack_APIC_irq(); entering_irq(); + ack_APIC_irq(); } static inline void exiting_irq(void) diff --git a/arch/x86/include/asm/hugetlb.h b/arch/x86/include/asm/hugetlb.h index 68c0539..7aadd3c 100644 --- a/arch/x86/include/asm/hugetlb.h +++ b/arch/x86/include/asm/hugetlb.h @@ -4,6 +4,7 @@ #include <asm/page.h> #include <asm-generic/hugetlb.h> +#define hugepages_supported() cpu_has_pse static inline int is_hugepage_only_range(struct mm_struct *mm, unsigned long addr, diff --git a/arch/x86/include/asm/perf_event.h b/arch/x86/include/asm/perf_event.h index dc0f6ed..5a2ed3e 100644 --- a/arch/x86/include/asm/perf_event.h +++ b/arch/x86/include/asm/perf_event.h @@ -159,6 +159,14 @@ struct x86_pmu_capability { */ #define INTEL_PMC_IDX_FIXED_BTS (INTEL_PMC_IDX_FIXED + 16) +#define GLOBAL_STATUS_COND_CHG BIT_ULL(63) +#define GLOBAL_STATUS_BUFFER_OVF BIT_ULL(62) +#define GLOBAL_STATUS_UNC_OVF BIT_ULL(61) +#define GLOBAL_STATUS_ASIF BIT_ULL(60) +#define GLOBAL_STATUS_COUNTERS_FROZEN BIT_ULL(59) +#define GLOBAL_STATUS_LBRS_FROZEN BIT_ULL(58) +#define GLOBAL_STATUS_TRACE_TOPAPMI BIT_ULL(55) + /* * IBS cpuid feature detection */
_______________________________________________ unionfs-cvs mailing list: http://unionfs.filesystems.org/ unionfs-cvs@fsl.cs.sunysb.edu http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs