1. 26 Apr, 2016 10 commits
    • Seth Forshee's avatar
      fs: Refuse uid/gid changes which don't map into s_user_ns · 09b503ec
      Seth Forshee authored
      Add checks to inode_change_ok to verify that uid and gid changes
      will map into the superblock's user namespace. If they do not
      fail with -EOVERFLOW. This cannot be overriden with ATTR_FORCE.
      Signed-off-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      Acked-by: default avatarSerge Hallyn <serge.hallyn@canonical.com>
      09b503ec
    • Seth Forshee's avatar
      cred: Reject inodes with invalid ids in set_create_file_as() · 71e6906f
      Seth Forshee authored
      Using INVALID_[UG]ID for the LSM file creation context doesn't
      make sense, so return an error if the inode passed to
      set_create_file_as() has an invalid id.
      Signed-off-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      Acked-by: default avatarSerge Hallyn <serge.hallyn@canonical.com>
      71e6906f
    • Seth Forshee's avatar
      fs: Check for invalid i_uid in may_follow_link() · 0e418868
      Seth Forshee authored
      Filesystem uids which don't map into a user namespace may result
      in inode->i_uid being INVALID_UID. A symlink and its parent
      could have different owners in the filesystem can both get
      mapped to INVALID_UID, which may result in following a symlink
      when this would not have otherwise been permitted when protected
      symlinks are enabled.
      
      Add a new helper function, uid_valid_eq(), and use this to
      validate that the ids in may_follow_link() are both equal and
      valid. Also add an equivalent helper for gids, which is
      currently unused.
      Signed-off-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      Acked-by: default avatarSerge Hallyn <serge.hallyn@canonical.com>
      0e418868
    • Seth Forshee's avatar
      Smack: Handle labels consistently in untrusted mounts · 7724e1d6
      Seth Forshee authored
      The SMACK64, SMACK64EXEC, and SMACK64MMAP labels are all handled
      differently in untrusted mounts. This is confusing and
      potentically problematic. Change this to handle them all the same
      way that SMACK64 is currently handled; that is, read the label
      from disk and check it at use time. For SMACK64 and SMACK64MMAP
      access is denied if the label does not match smk_root. To be
      consistent with suid, a SMACK64EXEC label which does not match
      smk_root will still allow execution of the file but will not run
      with the label supplied in the xattr.
      Signed-off-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      Acked-by: default avatarCasey Schaufler <casey@schaufler-ca.com>
      7724e1d6
    • Seth Forshee's avatar
      userns: Replace in_userns with current_in_userns · 031163c2
      Seth Forshee authored
      All current callers of in_userns pass current_user_ns as the
      first argument. Simplify by replacing in_userns with
      current_in_userns which checks whether current_user_ns is in the
      namespace supplied as an argument.
      Signed-off-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      Acked-by: default avatarJames Morris <james.l.morris@oracle.com>
      Acked-by: default avatarSerge Hallyn <serge.hallyn@canonical.com>
      031163c2
    • Seth Forshee's avatar
      selinux: Add support for unprivileged mounts from user namespaces · 55e62c38
      Seth Forshee authored
      Security labels from unprivileged mounts in user namespaces must
      be ignored. Force superblocks from user namespaces whose labeling
      behavior is to use xattrs to use mountpoint labeling instead.
      For the mountpoint label, default to converting the current task
      context into a form suitable for file objects, but also allow the
      policy writer to specify a different label through policy
      transition rules.
      
      Pieced together from code snippets provided by Stephen Smalley.
      Signed-off-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      Acked-by: default avatarStephen Smalley <sds@tycho.nsa.gov>
      Acked-by: default avatarJames Morris <james.l.morris@oracle.com>
      55e62c38
    • Andy Lutomirski's avatar
      fs: Treat foreign mounts as nosuid · 0f36f56d
      Andy Lutomirski authored
      If a process gets access to a mount from a different user
      namespace, that process should not be able to take advantage of
      setuid files or selinux entrypoints from that filesystem.  Prevent
      this by treating mounts from other mount namespaces and those not
      owned by current_user_ns() or an ancestor as nosuid.
      
      This will make it safer to allow more complex filesystems to be
      mounted in non-root user namespaces.
      
      This does not remove the need for MNT_LOCK_NOSUID.  The setuid,
      setgid, and file capability bits can no longer be abused if code in
      a user namespace were to clear nosuid on an untrusted filesystem,
      but this patch, by itself, is insufficient to protect the system
      from abuse of files that, when execed, would increase MAC privilege.
      
      As a more concrete explanation, any task that can manipulate a
      vfsmount associated with a given user namespace already has
      capabilities in that namespace and all of its descendents.  If they
      can cause a malicious setuid, setgid, or file-caps executable to
      appear in that mount, then that executable will only allow them to
      elevate privileges in exactly the set of namespaces in which they
      are already privileges.
      
      On the other hand, if they can cause a malicious executable to
      appear with a dangerous MAC label, running it could change the
      caller's security context in a way that should not have been
      possible, even inside the namespace in which the task is confined.
      
      As a hardening measure, this would have made CVE-2014-5207 much
      more difficult to exploit.
      Signed-off-by: default avatarAndy Lutomirski <luto@amacapital.net>
      Signed-off-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      Acked-by: default avatarJames Morris <james.l.morris@oracle.com>
      Acked-by: default avatarSerge Hallyn <serge.hallyn@canonical.com>
      0f36f56d
    • Seth Forshee's avatar
      block_dev: Check permissions towards block device inode when mounting · 87d1699a
      Seth Forshee authored
      Unprivileged users should not be able to mount block devices when
      they lack sufficient privileges towards the block device inode.
      Update blkdev_get_by_path() to validate that the user has the
      required access to the inode at the specified path. The check
      will be skipped for CAP_SYS_ADMIN, so privileged mounts will
      continue working as before.
      Signed-off-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      Acked-by: default avatarSerge Hallyn <serge.hallyn@canonical.com>
      87d1699a
    • Seth Forshee's avatar
      block_dev: Support checking inode permissions in lookup_bdev() · 470ebd6c
      Seth Forshee authored
      When looking up a block device by path no permission check is
      done to verify that the user has access to the block device inode
      at the specified path. In some cases it may be necessary to
      check permissions towards the inode, such as allowing
      unprivileged users to mount block devices in user namespaces.
      
      Add an argument to lookup_bdev() to optionally perform this
      permission check. A value of 0 skips the permission check and
      behaves the same as before. A non-zero value specifies the mask
      of access rights required towards the inode at the specified
      path. The check is always skipped if the user has CAP_SYS_ADMIN.
      
      All callers of lookup_bdev() currently pass a mask of 0, so this
      patch results in no functional change. Subsequent patches will
      add permission checks where appropriate.
      Signed-off-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      Acked-by: default avatarSerge Hallyn <serge.hallyn@canonical.com>
      470ebd6c
    • Seth Forshee's avatar
      fs: Allow sysfs and cgroupfs to share super blocks between user namespaces · 810bf840
      Seth Forshee authored
      Both of these filesystems already have use cases for mounting the
      same super block from multiple user namespaces. For sysfs this
      happens when using criu for snapshotting a container, where sysfs
      is mounted in the containers network ns but the hosts user ns.
      The cgroup filesystem shares the same super block for all mounts
      of the same hierarchy regardless of the namespace.
      
      As a result, the restriction on mounting a super block from a
      single user namespace creates regressions for existing uses of
      these filesystems. For these specific filesystems this
      restriction isn't really necessary since the backing store is
      objects in kernel memory and thus the ids assigned from inodes
      is not subject to translation relative to s_user_ns.
      
      Add a new filesystem flag, FS_USERNS_SHARE_SB, which when set
      causes sget_userns() to skip the check of s_user_ns. Set this
      flag for the sysfs and cgroup filesystems to fix the
      regressions.
      Signed-off-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      Acked-by: default avatarSerge Hallyn <serge.hallyn@ubuntu.com>
      810bf840
  2. 25 Apr, 2016 6 commits
    • Seth Forshee's avatar
      fs: Remove check of s_user_ns for existing mounts in fs_fully_visible() · f7be69dd
      Seth Forshee authored
      fs_fully_visible() ignores MNT_LOCK_NODEV when FS_USERS_DEV_MOUNT
      is not set for the filesystem, but there is a bug in the logic
      that may cause mounting to fail. It is doing this only when the
      existing mount is not in init_user_ns but should check the new
      mount instead. But the new mount is always in a non-init
      namespace when fs_fully_visible() is called, so that condition
      can simply be removed.
      Signed-off-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      f7be69dd
    • Pavel Tikhomirov's avatar
      fs: fix a posible leak of allocated superblock · 1b86ddd3
      Pavel Tikhomirov authored
      We probably need to fix superblock leak in patch (v4 "fs: Add user
      namesapace member to struct super_block"):
      
      Imagine posible code path in sget_userns: we iterate through
      type->fs_supers and do not find suitable sb, we drop sb_lock to
      allocate s and go to retry. After we dropped sb_lock some other
      task from different userns takes sb_lock, it is already in retry
      stage and has s allocated, so it puts its s in type->fs_supers
      list. So in retry we will find these sb in list and check it has
      a different userns, and finally we will return without freeing s.
      Signed-off-by: default avatarPavel Tikhomirov <ptikhomirov@virtuozzo.com>
      Acked-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      1b86ddd3
    • Seth Forshee's avatar
      Smack: Add support for unprivileged mounts from user namespaces · 9c71bd0f
      Seth Forshee authored
      Security labels from unprivileged mounts cannot be trusted.
      Ideally for these mounts we would assign the objects in the
      filesystem the same label as the inode for the backing device
      passed to mount. Unfortunately it's currently impossible to
      determine which inode this is from the LSM mount hooks, so we
      settle for the label of the process doing the mount.
      
      This label is assigned to s_root, and also to smk_default to
      ensure that new inodes receive this label. The transmute property
      is also set on s_root to make this behavior more explicit, even
      though it is technically not necessary.
      
      If a filesystem has existing security labels, access to inodes is
      permitted if the label is the same as smk_root, otherwise access
      is denied. The SMACK64EXEC xattr is completely ignored.
      
      Explicit setting of security labels continues to require
      CAP_MAC_ADMIN in init_user_ns.
      
      Altogether, this ensures that filesystem objects are not
      accessible to subjects which cannot already access the backing
      store, that MAC is not violated for any objects in the fileystem
      which are already labeled, and that a user cannot use an
      unprivileged mount to gain elevated MAC privileges.
      
      sysfs, tmpfs, and ramfs are already mountable from user
      namespaces and support security labels. We can't rule out the
      possibility that these filesystems may already be used in mounts
      from user namespaces with security lables set from the init
      namespace, so failing to trust lables in these filesystems may
      introduce regressions. It is safe to trust labels from these
      filesystems, since the unprivileged user does not control the
      backing store and thus cannot supply security labels, so an
      explicit exception is made to trust labels from these
      filesystems.
      Signed-off-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      Acked-by: default avatarCasey Schaufler <casey@schaufler-ca.com>
      Signed-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>
      9c71bd0f
    • Seth Forshee's avatar
      fs: Limit file caps to the user namespace of the super block · 65922e0a
      Seth Forshee authored
      Capability sets attached to files must be ignored except in the
      user namespaces where the mounter is privileged, i.e. s_user_ns
      and its descendants. Otherwise a vector exists for gaining
      privileges in namespaces where a user is not already privileged.
      
      Add a new helper function, in_user_ns(), to test whether a user
      namespace is the same as or a descendant of another namespace.
      Use this helper to determine whether a file's capability set
      should be applied to the caps constructed during exec.
      Acked-by: default avatarSerge Hallyn <serge.hallyn@canonical.com>
      Signed-off-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      Signed-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>
      65922e0a
    • Eric W. Biederman's avatar
      userns: Simpilify MNT_NODEV handling. · 03aedadc
      Eric W. Biederman authored
      - Consolidate the testing if a device node may be opened in a new
        function may_open_dev.
      
      - Move the check for allowing access to device nodes on filesystems
        not mounted in the initial user namespace from mount time to open
        time and include it in may_open_dev.
      
      This set of changes removes the implicit adding of MNT_NODEV which
      simplifies the logic in fs/namespace.c and removes a potentially
      problematic difference in how normal and unprivileged mount
      namespaces work.  This is a user visible change in behavior for
      remount in unpriviliged mount namespaces but is unlikely to cause
      problems for existing software.
      Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
      03aedadc
    • Seth Forshee's avatar
      fs: Add user namesapace member to struct super_block · 97c8c9ae
      Seth Forshee authored
      Initially this will be used to eliminate the implicit MNT_NODEV
      flag for mounts from user namespaces. In the future it will also
      be used for translating ids and checking capabilities for
      filesystems mounted from user namespaces.
      
      s_user_ns is initialized in alloc_super() and is generally set to
      current_user_ns(). To avoid security and corruption issues, two
      additional mount checks are also added:
      
       - do_new_mount() gains a check that the user has CAP_SYS_ADMIN
         in current_user_ns().
      
       - sget() will fail with EBUSY when the filesystem it's looking
         for is already mounted from another user namespace.
      
      proc requires some special handling. The user namespace of
      current isn't appropriate when forking as a result of clone (2)
      with CLONE_NEWPID|CLONE_NEWUSER, as it will set s_user_ns to the
      namespace of the parent and make proc unmountable in the new user
      namespace. Instead, the user namespace which owns the new pid
      namespace is used. sget_userns() is allowed to allow passing in
      a namespace other than that of current, and sget becomes a
      wrapper around sget_userns() which passes current_user_ns().
      
      Changes to original version of this patch
        * Documented @user_ns in sget_userns, alloc_super and fs.h
        * Kept an blank line in fs.h
        * Removed unncessary include of user_namespace.h from fs.h
        * Tweaked the location of get_user_ns and put_user_ns so
          the security modules can (if they wish) depend on it.
        -- EWB
      Signed-off-by: default avatarSeth Forshee <seth.forshee@canonical.com>
      Signed-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>
      97c8c9ae
  3. 24 Apr, 2016 2 commits
  4. 23 Apr, 2016 10 commits
  5. 22 Apr, 2016 12 commits
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v4.6-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · 09502d9f
      Linus Torvalds authored
      Pull pin control fixes from Linus Walleij:
       "Some pin control driver fixes came in.  One headed for stable and the
        other two are just ordinary merge window fixes.
      
         - Make the i.MX driver select REGMAP as a dependency
         - Fix up the Mediatek debounce time unit
         - Fix a real hairy ffs vs __ffs issue in the Single pinctrl driver"
      
      * tag 'pinctrl-v4.6-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: single: Fix pcs_parse_bits_in_pinctrl_entry to use __ffs than ffs
        pinctrl: mediatek: correct debounce time unit in mtk_gpio_set_debounce
        pinctrl: imx: Kconfig: PINCTRL_IMX select REGMAP
      09502d9f
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · ddce1921
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
      
       - Cache invalidation fix for early CPU boot status update (incorrect
         cacheline)
      
       - of_put_node() missing in the spin_table code
      
       - EL1/El2 early init inconsistency when Virtualisation Host Extensions
         are present
      
       - RCU warning fix in the arm_pmu.c driver
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: Fix EL1/EL2 early init inconsistencies with VHE
        drivers/perf: arm-pmu: fix RCU usage on pmu resume from low-power
        arm64: spin-table: add missing of_node_put()
        arm64: fix invalidation of wrong __early_cpu_boot_status cacheline
      ddce1921
    • Linus Torvalds's avatar
      Merge tag 'powerpc-4.6-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · ff061624
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "Three powerpc cpu feature fixes from Anton Blanchard:
      
         - scan_features() updated incorrect bits for REAL_LE
      
         - update cpu_user_features2 in scan_features()
      
         - update TM user feature bits in scan_features()"
      
      * tag 'powerpc-4.6-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc: Update TM user feature bits in scan_features()
        powerpc: Update cpu_user_features2 in scan_features()
        powerpc: scan_features() updates incorrect bits for REAL_LE
      ff061624
    • Linus Torvalds's avatar
      Merge tag 'iommu-fixes-v4.6-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 7c5047a1
      Linus Torvalds authored
      Pull IOMMU fixes from Joerg Roedel:
       "The fixes include:
      
         - Two patches to revert the use of default domains in the ARM SMMU
           driver.  Enabling this caused regressions which need more thorough
           fixing.  So the regressions are fixed for now by disabling the use
           of default domains.
      
         - A fix for a v4.4 regression in the AMD IOMMU driver which broke
           devices behind invisible PCIe-to-PCI bridges with IOMMU enabled"
      
      * tag 'iommu-fixes-v4.6-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        iommu/arm-smmu: Don't allocate resources for bypass domains
        iommu/arm-smmu: Fix stream-match conflict with IOMMU_DOMAIN_DMA
        iommu/amd: Fix checking of pci dma aliases
      7c5047a1
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · d61fb48b
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "i915, nouveau and amdgpu/radeon fixes in this:
      
        nouveau:
           Two fixes, one for a regression with dithering and one for a bug
           hit by the userspace drivers.
      
        i915:
           A few fixes, mostly things heading for stable, two important
           skylake GT3/4 hangs.
      
        radeon/amdgpu:
           Some audio, suspend/resume and some runtime PM fixes, along with
           two patches to harden the userptr ABI a bit"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (24 commits)
        drm: Loongson-3 doesn't fully support wc memory
        drm/nouveau/gr/gf100: select a stream master to fixup tfb offset queries
        amdgpu/uvd: add uvd fw version for amdgpu
        drm/amdgpu: forbid mapping of userptr bo through radeon device file
        drm/radeon: forbid mapping of userptr bo through radeon device file
        drm/amdgpu: bump the afmt limit for CZ, ST, Polaris
        drm/amdgpu: use defines for CRTCs and AMFT blocks
        drm/dp/mst: Validate port in drm_dp_payload_send_msg()
        drm/nouveau/kms: fix setting of default values for dithering properties
        drm/radeon: print a message if ATPX dGPU power control is missing
        Revert "drm/radeon: disable runtime pm on PX laptops without dGPU power control"
        drm/amdgpu/acp: fix resume on CZ systems with AZ audio
        drm/radeon: add a quirk for a XFX R9 270X
        drm/radeon: print pci revision as well as pci ids on driver load
        drm/i915: Use fw_domains_put_with_fifo() on HSW
        drm/i915: Force ringbuffers to not be at offset 0
        drm/i915: Adjust size of PIPE_CONTROL used for gen8 render seqno write
        drm/i915/skl: Fix spurious gpu hang with gt3/gt4 revs
        drm/i915/skl: Fix rc6 based gpu/system hang
        drm/i915/userptr: Hold mmref whilst calling get-user-pages
        ...
      d61fb48b
    • Linus Torvalds's avatar
      Merge tag 'sound-4.6-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · d4b05288
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Again a relatively calm week without surprise: most of fixes are about
        HD-audio, including fixes for Cirrus codec regression and a race over
        regmap access.  Although both change are slightly unintuitive, the
        risk of further breakage is quite low, I hope.
      
        Other than that, all the rest are trivial"
      
      * tag 'sound-4.6-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda - Fix possible race on regmap bypass flip
        ALSA: pcxhr: Fix missing mutex unlock
        ALSA: hda - add PCI ID for Intel Broxton-T
        ALSA: hda - Keep powering up ADCs on Cirrus codecs
        ALSA: hda/realtek - Add ALC3234 headset mode for Optiplex 9020m
        ALSA - hda: hdmi check NULL pointer in hdmi_set_chmap
        ALSA: hda - Don't trust the reported actual power state
      d4b05288
    • Greg Kroah-Hartman's avatar
      Merge tag 'phy-for-4.6-rc' of... · d40d3347
      Greg Kroah-Hartman authored
      Merge tag 'phy-for-4.6-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy into usb-linus
      
      Kishon writes:
      
      phy: for 4.6-rc
      
      *) make rockchip-dp and rockchip-emmc PHY child device of
         GRF
      Signed-off-by: default avatarKishon Vijay Abraham I <kishon@ti.com>
      d40d3347
    • Tony Luck's avatar
      x86 EDAC, sb_edac.c: Take account of channel hashing when needed · ea5dfb5f
      Tony Luck authored
      Haswell and Broadwell can be configured to hash the channel
      interleave function using bits [27:12] of the physical address.
      
      On those processor models we must check to see if hashing is
      enabled (bit21 of the HASWELL_HASYSDEFEATURE2 register) and
      act accordingly.
      
      Based on a patch by patrickg <patrickg@supermicro.com>
      Tested-by: default avatarPatrick Geary <patrickg@supermicro.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      Acked-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      Cc: Aristeu Rozanski <arozansk@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-edac@vger.kernel.org
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      ea5dfb5f
    • Tony Luck's avatar
      x86 EDAC, sb_edac.c: Repair damage introduced when "fixing" channel address · ff15e95c
      Tony Luck authored
      In commit:
      
        eb1af3b7 ("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: default avatarPatrick Geary <patrickg@supermicro.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      Acked-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
      Cc: Aristeu Rozanski <arozansk@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: linux-edac@vger.kernel.org
      Cc: stable@vger.kernel.org
      Fixes: eb1af3b7 ("Fix computation of channel address")
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      ff15e95c
    • Greg Kroah-Hartman's avatar
      Merge tag 'fixes-for-v4.6-rc5' of... · 5813dea9
      Greg Kroah-Hartman authored
      Merge tag 'fixes-for-v4.6-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus
      
      Felipe writes:
      
      usb: fixes for v4.6-rc5
      
      No more major fixes left. Out of the 6 fixes we have
      here, 4 are on dwc3.
      
      The most important is the memory leak fix in
      dwc3/debugfs.c. We also have a fix for PHY handling
      in suspend/resume and a fix for dwc3-omap's error
      handling.
      
      Suspend/resume also had the potential to trigger a
      NULL pointer dereference on dwc3; that's also fixed
      now.
      
      Our good ol' ffs function gets a use-after-free fix
      while the generic composite.c layer has a robustness
      fix by making sure reserved fields of a possible SSP
      device capability descriptor is cleared to 0.
      5813dea9
    • Jan Beulich's avatar
      x86/mm/xen: Suppress hugetlbfs in PV guests · 103f6112
      Jan Beulich authored
      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: default avatarVitaly Kuznetsov <vkuznets@redhat.com>
      Signed-off-by: default avatarJan Beulich <jbeulich@suse.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: David Vrabel <david.vrabel@citrix.com>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Juergen Gross <JGross@suse.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Luis R. Rodriguez <mcgrof@suse.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Toshi Kani <toshi.kani@hp.com>
      Cc: stable@vger.kernel.org
      Cc: xen-devel <xen-devel@lists.xenproject.org>
      Link: http://lkml.kernel.org/r/57188ED802000078000E431C@prv-mh.provo.novell.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      103f6112
    • Juergen Gross's avatar
      x86/doc: Correct limits in Documentation/x86/x86_64/mm.txt · 78b0634d
      Juergen Gross authored
      Correct the size of the module mapping space and the maximum available
      physical memory size of current processors.
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: corbet@lwn.net
      Cc: linux-doc@vger.kernel.org
      Link: http://lkml.kernel.org/r/1461310504-15977-1-git-send-email-jgross@suse.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      78b0634d