1. 10 Jan, 2017 8 commits
    • Himanshu Shukla's avatar
      SMACK: Use smk_tskacc() instead of smk_access() for proper logging · c9d238a1
      Himanshu Shukla authored
      smack_file_open() is first checking the capability of calling subject,
      this check will skip the SMACK logging for success case. Use smk_tskacc()
      for proper logging and SMACK access check.
      Signed-off-by: default avatarHimanshu Shukla <himanshu.sh@samsung.com>
      Signed-off-by: default avatarCasey Schaufler <casey@schaufler-ca.com>
      c9d238a1
    • Vishal Goel's avatar
      Smack: Traverse the smack_known_list using list_for_each_entry_rcu macro · 348dc288
      Vishal Goel authored
      In smack_from_secattr function,"smack_known_list" is being traversed
      using list_for_each_entry macro, although it is a rcu protected
      structure. So it should be traversed using "list_for_each_entry_rcu"
      macro to fetch the rcu protected entry.
      Signed-off-by: default avatarVishal Goel <vishal.goel@samsung.com>
      Signed-off-by: default avatarHimanshu Shukla <himanshu.sh@samsung.com>
      Signed-off-by: default avatarCasey Schaufler <casey@schaufler-ca.com>
      348dc288
    • Himanshu Shukla's avatar
      SMACK: Free the i_security blob in inode using RCU · 3d4f673a
      Himanshu Shukla authored
      There is race condition issue while freeing the i_security blob in SMACK
      module. There is existing condition where i_security can be freed while
      inode_permission is called from path lookup on second CPU. There has been
      observed the page fault with such condition. VFS code and Selinux module
      takes care of this condition by freeing the inode and i_security field
      using RCU via call_rcu(). But in SMACK directly the i_secuirty blob is
      being freed. Use call_rcu() to fix this race condition issue.
      Signed-off-by: default avatarHimanshu Shukla <himanshu.sh@samsung.com>
      Signed-off-by: default avatarVishal Goel <vishal.goel@samsung.com>
      Signed-off-by: default avatarCasey Schaufler <casey@schaufler-ca.com>
      3d4f673a
    • Himanshu Shukla's avatar
      SMACK: Delete list_head repeated initialization · d54a1979
      Himanshu Shukla authored
      smk_copy_rules() and smk_copy_relabel() are initializing list_head though
      they have been initialized already in new_task_smack() function. Delete
      repeated initialization.
      Signed-off-by: default avatarHimanshu Shukla <himanshu.sh@samsung.com>
      Signed-off-by: default avatarCasey Schaufler <casey@schaufler-ca.com>
      d54a1979
    • Vishal Goel's avatar
      SMACK: Add new lock for adding entry in smack master list · 2e962e2f
      Vishal Goel authored
      "smk_set_access()" function adds a new rule entry in subject label specific
      list(rule_list) and in global rule list(smack_rule_list) both. Mutex lock
      (rule_lock) is used to avoid simultaneous updates. But this lock is subject
      label specific lock. If 2 processes tries to add different rules(i.e with
      different subject labels) simultaneously, then both the processes can take
      the "rule_lock" respectively. So it will cause a problem while adding
      entries in master rule list.
      Now a new mutex lock(smack_master_list_lock) has been taken to add entry in
      smack_rule_list to avoid simultaneous updates of different rules.
      Signed-off-by: default avatarVishal Goel <vishal.goel@samsung.com>
      Signed-off-by: default avatarHimanshu Shukla <himanshu.sh@samsung.com>
      Signed-off-by: default avatarCasey Schaufler <casey@schaufler-ca.com>
      2e962e2f
    • Vishal Goel's avatar
      Smack: Fix the issue of wrong SMACK label update in socket bind fail case · 0c96d1f5
      Vishal Goel authored
      Fix the issue of wrong SMACK label (SMACK64IPIN) update when a second bind
      call is made to same IP address & port, but with different SMACK label
      (SMACK64IPIN) by second instance of server. In this case server returns
      with "Bind:Address already in use" error but before returning, SMACK label
      is updated in SMACK port-label mapping list inside smack_socket_bind() hook
      
      To fix this issue a new check has been added in smk_ipv6_port_label()
      function before updating the existing port entry. It checks whether the
      socket for matching port entry is closed or not. If it is closed then it
      means port is not bound and it is safe to update the existing port entry
      else return if port is still getting used. For checking whether socket is
      closed or not, one more field "smk_can_reuse" has been added in the
      "smk_port_label" structure. This field will be set to '1' in
      "smack_sk_free_security()" function which is called to free the socket
      security blob when the socket is being closed. In this function, port entry
      is searched in the SMACK port-label mapping list for the closing socket.
      If entry is found then "smk_can_reuse" field is set to '1'.Initially
      "smk_can_reuse" field is set to '0' in smk_ipv6_port_label() function after
      creating a new entry in the list which indicates that socket is in use.
      Signed-off-by: default avatarVishal Goel <vishal.goel@samsung.com>
      Signed-off-by: default avatarHimanshu Shukla <himanshu.sh@samsung.com>
      Signed-off-by: default avatarCasey Schaufler <casey@schaufler-ca.com>
      0c96d1f5
    • Vishal Goel's avatar
      Smack: Fix the issue of permission denied error in ipv6 hook · 9d44c973
      Vishal Goel authored
      Permission denied error comes when 2 IPv6 servers are running and client
      tries to connect one of them. Scenario is that both servers are using same
      IP and port but different protocols(Udp and tcp). They are using different
      SMACK64IPIN labels.Tcp server is using "test" and udp server is using
      "test-in". When we try to run tcp client with SMACK64IPOUT label as "test",
      then connection denied error comes. It should not happen since both tcp
      server and client labels are same.This happens because there is no check
      for protocol in smk_ipv6_port_label() function while searching for the
      earlier port entry. It checks whether there is an existing port entry on
      the basis of port only. So it updates the earlier port entry in the list.
      Due to which smack label gets changed for earlier entry in the
      "smk_ipv6_port_list" list and permission denied error comes.
      
      Now a check is added for socket type also.Now if 2 processes use same
      port  but different protocols (tcp or udp), then 2 different port entries
      will be  added in the list. Similarly while checking smack access in
      smk_ipv6_port_check() function,  port entry is searched on the basis of
      both port and protocol.
      Signed-off-by: default avatarVishal Goel <vishal.goel@samsung.com>
      Signed-off-by: default avatarHimanshu Shukla <Himanshu.sh@samsung.com>
      Signed-off-by: default avatarCasey Schaufler <casey@schaufler-ca.com>
      9d44c973
    • Vishal Goel's avatar
      SMACK: Add the rcu synchronization mechanism in ipv6 hooks · 3c7ce342
      Vishal Goel authored
      Add the rcu synchronization mechanism for accessing smk_ipv6_port_list
      in smack IPv6 hooks. Access to the port list is vulnerable to a race
      condition issue,it does not apply proper synchronization methods while
      working on critical section. It is possible that when one thread is
      reading the list, at the same time another thread is modifying the
      same port list, which can cause the major problems.
      
      To ensure proper synchronization between two threads, rcu mechanism
      has been applied while accessing and modifying the port list. RCU will
      also not affect the performance, as there are more accesses than
      modification where RCU is most effective synchronization mechanism.
      Signed-off-by: default avatarVishal Goel <vishal.goel@samsung.com>
      Signed-off-by: default avatarHimanshu Shukla <himanshu.sh@samsung.com>
      Signed-off-by: default avatarCasey Schaufler <casey@schaufler-ca.com>
      3c7ce342
  2. 09 Jan, 2017 1 commit
  3. 08 Jan, 2017 6 commits
    • Linus Torvalds's avatar
      Linux 4.10-rc3 · a121103c
      Linus Torvalds authored
      a121103c
    • Linus Torvalds's avatar
      Merge tag 'usb-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 83280e90
      Linus Torvalds authored
      Pull USB fixes from Greg KH:
       "Here are a bunch of USB fixes for 4.10-rc3. Yeah, it's a lot, an
        artifact of the holiday break I think.
      
        Lots of gadget and the usual XHCI fixups for reported issues (one day
        that driver will calm down...) Also included are a bunch of usb-serial
        driver fixes, and for good measure, a number of much-reported MUSB
        driver issues have finally been resolved.
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'usb-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (72 commits)
        USB: fix problems with duplicate endpoint addresses
        usb: ohci-at91: use descriptor-based gpio APIs correctly
        usb: storage: unusual_uas: Add JMicron JMS56x to unusual device
        usb: hub: Move hub_port_disable() to fix warning if PM is disabled
        usb: musb: blackfin: add bfin_fifo_offset in bfin_ops
        usb: musb: fix compilation warning on unused function
        usb: musb: Fix trying to free already-free IRQ 4
        usb: musb: dsps: implement clear_ep_rxintr() callback
        usb: musb: core: add clear_ep_rxintr() to musb_platform_ops
        USB: serial: ti_usb_3410_5052: fix NULL-deref at open
        USB: serial: spcp8x5: fix NULL-deref at open
        USB: serial: quatech2: fix sleep-while-atomic in close
        USB: serial: pl2303: fix NULL-deref at open
        USB: serial: oti6858: fix NULL-deref at open
        USB: serial: omninet: fix NULL-derefs at open and disconnect
        USB: serial: mos7840: fix misleading interrupt-URB comment
        USB: serial: mos7840: remove unused write URB
        USB: serial: mos7840: fix NULL-deref at open
        USB: serial: mos7720: remove obsolete port initialisation
        USB: serial: mos7720: fix parallel probe
        ...
      83280e90
    • Linus Torvalds's avatar
      Merge tag 'char-misc-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · cc250e26
      Linus Torvalds authored
      Pull char/misc fixes from Greg KH:
       "Here are a few small char/misc driver fixes for 4.10-rc3.
      
        Two MEI driver fixes, and three NVMEM patches for reported issues, and
        a new Hyper-V driver MAINTAINER update. Nothing major at all, all have
        been in linux-next with no reported issues"
      
      * tag 'char-misc-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        hyper-v: Add myself as additional MAINTAINER
        nvmem: fix nvmem_cell_read() return type doc
        nvmem: imx-ocotp: Fix wrong register size
        nvmem: qfprom: Allow single byte accesses for read/write
        mei: move write cb to completion on credentials failures
        mei: bus: fix mei_cldev_enable KDoc
      cc250e26
    • Linus Torvalds's avatar
      Merge tag 'staging-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 6ea17ed1
      Linus Torvalds authored
      Pull staging/IIO fixes from Greg KH:
       "Here are some staging and IIO driver fixes for 4.10-rc3.
      
        Most of these are minor IIO fixes of reported issues, along with one
        network driver fix to resolve an issue. And a MAINTAINERS update with
        a new mailing list. All of these, except the MAINTAINERS file update,
        have been in linux-next with no reported issues (the MAINTAINERS patch
        happened on Friday...)"
      
      * tag 'staging-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        MAINTAINERS: add greybus subsystem mailing list
        staging: octeon: Call SET_NETDEV_DEV()
        iio: accel: st_accel: fix LIS3LV02 reading and scaling
        iio: common: st_sensors: fix channel data parsing
        iio: max44000: correct value in illuminance_integration_time_available
        iio: adc: TI_AM335X_ADC should depend on HAS_DMA
        iio: bmi160: Fix time needed to sleep after command execution
        iio: 104-quad-8: Fix active level mismatch for the preset enable option
        iio: 104-quad-8: Fix off-by-one errors when addressing IOR
        iio: 104-quad-8: Fix index control configuration
      6ea17ed1
    • Johannes Weiner's avatar
      mm: workingset: fix use-after-free in shadow node shrinker · ea07b862
      Johannes Weiner authored
      Several people report seeing warnings about inconsistent radix tree
      nodes followed by crashes in the workingset code, which all looked like
      use-after-free access from the shadow node shrinker.
      
      Dave Jones managed to reproduce the issue with a debug patch applied,
      which confirmed that the radix tree shrinking indeed frees shadow nodes
      while they are still linked to the shadow LRU:
      
        WARNING: CPU: 2 PID: 53 at lib/radix-tree.c:643 delete_node+0x1e4/0x200
        CPU: 2 PID: 53 Comm: kswapd0 Not tainted 4.10.0-rc2-think+ #3
        Call Trace:
           delete_node+0x1e4/0x200
           __radix_tree_delete_node+0xd/0x10
           shadow_lru_isolate+0xe6/0x220
           __list_lru_walk_one.isra.4+0x9b/0x190
           list_lru_walk_one+0x23/0x30
           scan_shadow_nodes+0x2e/0x40
           shrink_slab.part.44+0x23d/0x5d0
           shrink_node+0x22c/0x330
           kswapd+0x392/0x8f0
      
      This is the WARN_ON_ONCE(!list_empty(&node->private_list)) placed in the
      inlined radix_tree_shrink().
      
      The problem is with 14b46879 ("mm: workingset: move shadow entry
      tracking to radix tree exceptional tracking"), which passes an update
      callback into the radix tree to link and unlink shadow leaf nodes when
      tree entries change, but forgot to pass the callback when reclaiming a
      shadow node.
      
      While the reclaimed shadow node itself is unlinked by the shrinker, its
      deletion from the tree can cause the left-most leaf node in the tree to
      be shrunk.  If that happens to be a shadow node as well, we don't unlink
      it from the LRU as we should.
      
      Consider this tree, where the s are shadow entries:
      
             root->rnode
                  |
             [0       n]
              |       |
           [s    ] [sssss]
      
      Now the shadow node shrinker reclaims the rightmost leaf node through
      the shadow node LRU:
      
             root->rnode
                  |
             [0        ]
              |
          [s     ]
      
      Because the parent of the deleted node is the first level below the
      root and has only one child in the left-most slot, the intermediate
      level is shrunk and the node containing the single shadow is put in
      its place:
      
             root->rnode
                  |
             [s        ]
      
      The shrinker again sees a single left-most slot in a first level node
      and thus decides to store the shadow in root->rnode directly and free
      the node - which is a leaf node on the shadow node LRU.
      
        root->rnode
             |
             s
      
      Without the update callback, the freed node remains on the shadow LRU,
      where it causes later shrinker runs to crash.
      
      Pass the node updater callback into __radix_tree_delete_node() in case
      the deletion causes the left-most branch in the tree to collapse too.
      
      Also add warnings when linked nodes are freed right away, rather than
      wait for the use-after-free when the list is scanned much later.
      
      Fixes: 14b46879 ("mm: workingset: move shadow entry tracking to radix tree exceptional tracking")
      Reported-by: default avatarDave Chinner <david@fromorbit.com>
      Reported-by: default avatarHugh Dickins <hughd@google.com>
      Reported-by: default avatarAndrea Arcangeli <aarcange@redhat.com>
      Reported-and-tested-by: default avatarDave Jones <davej@codemonkey.org.uk>
      Signed-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Chris Leech <cleech@redhat.com>
      Cc: Lee Duncan <lduncan@suse.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Matthew Wilcox <mawilcox@linuxonhyperv.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ea07b862
    • Hugh Dickins's avatar
      mm: stop leaking PageTables · b0b9b3df
      Hugh Dickins authored
      4.10-rc loadtest (even on x86, and even without THPCache) fails with
      "fork: Cannot allocate memory" or some such; and /proc/meminfo shows
      PageTables growing.
      
      Commit 953c66c2 ("mm: THP page cache support for ppc64") that got
      merged in rc1 removed the freeing of an unused preallocated pagetable
      after do_fault_around() has called map_pages().
      
      This is usually a good optimization, so that the followup doesn't have
      to reallocate one; but it's not sufficient to shift the freeing into
      alloc_set_pte(), since there are failure cases (most commonly
      VM_FAULT_RETRY) which never reach finish_fault().
      
      Check and free it at the outer level in do_fault(), then we don't need
      to worry in alloc_set_pte(), and can restore that to how it was (I
      cannot find any reason to pte_free() under lock as it was doing).
      
      And fix a separate pagetable leak, or crash, introduced by the same
      change, that could only show up on some ppc64: why does do_set_pmd()'s
      failure case attempt to withdraw a pagetable when it never deposited
      one, at the same time overwriting (so leaking) the vmf->prealloc_pte?
      Residue of an earlier implementation, perhaps? Delete it.
      
      Fixes: 953c66c2 ("mm: THP page cache support for ppc64")
      Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Michael Neuling <mikey@neuling.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Balbir Singh <bsingharora@gmail.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarHugh Dickins <hughd@google.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b0b9b3df
  4. 07 Jan, 2017 2 commits
  5. 06 Jan, 2017 16 commits
    • Linus Torvalds's avatar
      Merge tag 'sound-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 308c470b
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Nothing particular stands out, only a few small fixes for USB-audio,
        HD-audio and Firewire. The USB-audio fix is the respin of the previous
        race fix after a revert due to the regression"
      
      * tag 'sound-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        Revert "ALSA: firewire-lib: change structure member with proper type"
        ALSA: usb-audio: test EP_FLAG_RUNNING at urb completion
        ALSA: usb-audio: Fix irq/process data synchronization
        ALSA: hda - Apply asus-mode8 fixup to ASUS X71SL
        ALSA: hda - Fix up GPIO for ASUS ROG Ranger
        ALSA: firewire-lib: change structure member with proper type
        ALSA: firewire-tascam: Fix to handle error from initialization of stream data
        ALSA: fireworks: fix asymmetric API call at unit removal
      308c470b
    • Linus Torvalds's avatar
      Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · d72f0ded
      Linus Torvalds authored
      Pull clk fixes from Stephen Boyd:
       "One fix for a broken driver on Renesas RZ/A1 SoCs with bootloaders
        that don't turn all the clks on and another fix for stm32f4 SoCs where
        we have multiple drivers attaching to the same DT node"
      
      * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
        clk: stm32f4: Use CLK_OF_DECLARE_DRIVER initialization method
        clk: renesas: mstp: Support 8-bit registers for r7s72100
      d72f0ded
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.10-rc3' of... · baaf0315
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fix from Guenter Roeck:
       "Fix temp1_max_alarm attribute in lm90 driver"
      
      * tag 'hwmon-for-linus-v4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (lm90) fix temp1_max_alarm attribute
      baaf0315
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 08289086
      Linus Torvalds authored
      Pull KVM fixes from Radim Krčmář:
       "MIPS:
         - fix host kernel crashes when receiving a signal with 64-bit
           userspace
      
         - flush instruction cache on all vcpus after generating entry code
      
           (both for stable)
      
        x86:
         - fix NULL dereference in MMU caused by SMM transitions (for stable)
      
         - correct guest instruction pointer after emulating some VMX errors
      
         - minor cleanup"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: VMX: remove duplicated declaration
        KVM: MIPS: Flush KVM entry code from icache globally
        KVM: MIPS: Don't clobber CP0_Status.UX
        KVM: x86: reset MMU on KVM_SET_VCPU_EVENTS
        KVM: nVMX: fix instruction skipping during emulated vm-entry
      08289086
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · b1ee5170
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
      
       - re-introduce the arm64 get_current() optimisation
      
       - KERN_CONT fallout fix in show_pte()
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: restore get_current() optimisation
        arm64: mm: fix show_pte KERN_CONT fallout
      b1ee5170
    • Linus Torvalds's avatar
      Merge tag 'vfio-v4.10-rc3' of git://github.com/awilliam/linux-vfio · 5824f924
      Linus Torvalds authored
      Pull VFIO fixes from Alex Williamson:
       - Add mtty sample driver properly into build system (Alex Williamson)
       - Restore type1 mapping performance after mdev (Alex Williamson)
       - Fix mdev device race (Alex Williamson)
       - Cleanups to the mdev ABI used by vendor drivers (Alex Williamson)
       - Build fix for old compilers (Arnd Bergmann)
       - Fix sample driver error path (Dan Carpenter)
       - Handle pci_iomap() error (Arvind Yadav)
       - Fix mdev ioctl return type (Paul Gortmaker)
      
      * tag 'vfio-v4.10-rc3' of git://github.com/awilliam/linux-vfio:
        vfio-mdev: fix non-standard ioctl return val causing i386 build fail
        vfio-pci: Handle error from pci_iomap
        vfio-mdev: fix some error codes in the sample code
        vfio-pci: use 32-bit comparisons for register address for gcc-4.5
        vfio-mdev: Make mdev_device private and abstract interfaces
        vfio-mdev: Make mdev_parent private
        vfio-mdev: de-polute the namespace, rename parent_device & parent_ops
        vfio-mdev: Fix remove race
        vfio/type1: Restore mapping performance with mdev support
        vfio-mdev: Fix mtty sample driver building
      5824f924
    • Linus Torvalds's avatar
      Merge branch 'stable/for-linus-4.10' of... · 2fd8774c
      Linus Torvalds authored
      Merge branch 'stable/for-linus-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb
      
      Pull swiotlb fixes from Konrad Rzeszutek Wilk:
       "This has one fix to make i915 work when using Xen SWIOTLB, and a
        feature from Geert to aid in debugging of devices that can't do DMA
        outside the 32-bit address space.
      
        The feature from Geert is on top of v4.10 merge window commit
        (specifically you pulling my previous branch), as his changes were
        dependent on the Documentation/ movement patches.
      
        I figured it would just easier than me trying than to cherry-pick the
        Documentation patches to satisfy git.
      
        The patches have been soaking since 12/20, albeit I updated the last
        patch due to linux-next catching an compiler error and adding an
        Tested-and-Reported-by tag"
      
      * 'stable/for-linus-4.10' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb:
        swiotlb: Export swiotlb_max_segment to users
        swiotlb: Add swiotlb=noforce debug option
        swiotlb: Convert swiotlb_force from int to enum
        x86, swiotlb: Simplify pci_swiotlb_detect_override()
      2fd8774c
    • Linus Torvalds's avatar
      Merge tag 'iommu-fixes-v4.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 65cdc405
      Linus Torvalds authored
      Pull IOMMU fixes from Joerg Roedel:
       "Three fixes queued up:
      
         - fix an issue with command buffer overflow handling in the AMD IOMMU
           driver
      
         - add an additional context entry flush to the Intel VT-d driver to
           make sure any old context entry from kdump copying is flushed out
           of the cache
      
         - correct the encoding of the PASID table size in the Intel VT-d
           driver"
      
      * tag 'iommu-fixes-v4.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        iommu/amd: Fix the left value check of cmd buffer
        iommu/vt-d: Fix pasid table size encoding
        iommu/vt-d: Flush old iommu caches for kdump when the device gets context mapped
      65cdc405
    • Linus Torvalds's avatar
      Merge tag 'acpi-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 7397e1e8
      Linus Torvalds authored
      Pull ACPI fixes from Rafael Wysocki:
       "These fix a device enumeration problem related to _ADR matching and an
        IOMMU initialization issue related to the DMAR table missing, remove
        an excessive function call from the core ACPI code, update an error
        message in the ACPI WDAT watchdog driver and add a way to work around
        problems with unhandled GPE notifications.
      
        Specifics:
      
         - Fix a device enumeration issue leading to incorrect associations
           between ACPI device objects and platform device objects
           representing physical devices if the given device object has both
           _ADR and _HID (Rafael Wysocki).
      
         - Avoid passing NULL to acpi_put_table() during IOMMU initialization
           which triggers a (rightful) warning from ACPICA (Rafael Wysocki).
      
         - Drop an excessive call to acpi_dma_deconfigure() from the core code
           that binds ACPI device objects to device objects representing
           physical devices (Lorenzo Pieralisi).
      
         - Update an error message in the ACPI WDAT watchdog driver to make it
           provide more useful information (Mika Westerberg).
      
         - Add a mechanism to work around issues with unhandled GPE
           notifications that occur during system initialization and cannot be
           prevented by means of sysfs (Lv Zheng)"
      
      * tag 'acpi-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI / DMAR: Avoid passing NULL to acpi_put_table()
        ACPI / scan: Prefer devices without _HID/_CID for _ADR matching
        ACPI / watchdog: Print out error number when device creation fails
        ACPI / sysfs: Provide quirk mechanism to prevent GPE flooding
        ACPI: Drop misplaced acpi_dma_deconfigure() call from acpi_bind_one()
      7397e1e8
    • Linus Torvalds's avatar
      Merge tag 'pm-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · b937a869
      Linus Torvalds authored
      Pull power management fixes from Rafael Wysocki:
       "These fix a few issues in the intel_pstate driver, a documetation
        issue, a false-positive compiler warning in the generic power domains
        framework and two problems in the devfreq subsystem. They also update
        the MAINTAINERS entry for devfreq and add a new "compatible" string to
        the generic cpufreq-dt driver.
      
        Specifics:
      
         - Fix a few intel_pstate driver issues: add missing locking it two
           places, avoid exposing a useless debugfs interface and keep the
           attribute values in sysfs in sync (Rafael Wysocki).
      
         - Drop confusing kernel-doc references related to power management
           and ACPI from the driver API manual (Rafael Wysocki).
      
         - Make a false-positive compiler warning in the generic power domains
           framework go away (Augusto Mecking Caringi).
      
         - Fix two initialization issues in the devfreq subsystem and update
           the MAINTAINERS entry for it (Chanwoo Choi).
      
         - Add a new "compatible" string for APM X-Gene 2 to the generic DT
           cpufreq driver (Hoan Tran)"
      
      * tag 'pm-4.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpufreq: dt: Add support for APM X-Gene 2
        PM / devfreq: exynos-bus: Fix the wrong return value
        PM / devfreq: Fix the bug of devfreq_add_device when governor is NULL
        MAINTAINERS: Add myself as reviewer for DEVFREQ subsystem support
        PM / docs: Drop confusing kernel-doc references from infrastructure.rst
        PM / domains: Fix 'may be used uninitialized' build warning
        cpufreq: intel_pstate: Always keep all limits settings in sync
        cpufreq: intel_pstate: Use locking in intel_cpufreq_verify_policy()
        cpufreq: intel_pstate: Use locking in intel_pstate_resume()
        cpufreq: intel_pstate: Do not expose PID parameters in passive mode
      b937a869
    • Konrad Rzeszutek Wilk's avatar
      swiotlb: Export swiotlb_max_segment to users · 7453c549
      Konrad Rzeszutek Wilk authored
      So they can figure out what is the optimal number of pages
      that can be contingously stitched together without fear of
      bounce buffer.
      
      We also expose an mechanism for sub-users of SWIOTLB API, such
      as Xen-SWIOTLB to set the max segment value. And lastly
      if swiotlb=force is set (which mandates we bounce buffer everything)
      we set max_segment so at least we can bounce buffer one 4K page
      instead of a giant 512KB one for which we may not have space.
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Reported-and-Tested-by: default avatarJuergen Gross <jgross@suse.com>
      7453c549
    • Rafael J. Wysocki's avatar
      Merge branches 'acpi-scan', 'acpi-sysfs', 'acpi-wdat' and 'acpi-tables' · f1dabf0b
      Rafael J. Wysocki authored
      * acpi-scan:
        ACPI / scan: Prefer devices without _HID/_CID for _ADR matching
        ACPI: Drop misplaced acpi_dma_deconfigure() call from acpi_bind_one()
      
      * acpi-sysfs:
        ACPI / sysfs: Provide quirk mechanism to prevent GPE flooding
      
      * acpi-wdat:
        ACPI / watchdog: Print out error number when device creation fails
      
      * acpi-tables:
        ACPI / DMAR: Avoid passing NULL to acpi_put_table()
      f1dabf0b
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-domains', 'pm-docs' and 'pm-devfreq' · 7e2b9d85
      Rafael J. Wysocki authored
      * pm-domains:
        PM / domains: Fix 'may be used uninitialized' build warning
      
      * pm-docs:
        PM / docs: Drop confusing kernel-doc references from infrastructure.rst
      
      * pm-devfreq:
        PM / devfreq: exynos-bus: Fix the wrong return value
        PM / devfreq: Fix the bug of devfreq_add_device when governor is NULL
        MAINTAINERS: Add myself as reviewer for DEVFREQ subsystem support
      7e2b9d85
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-cpufreq' · 3baad655
      Rafael J. Wysocki authored
      * pm-cpufreq:
        cpufreq: dt: Add support for APM X-Gene 2
        cpufreq: intel_pstate: Always keep all limits settings in sync
        cpufreq: intel_pstate: Use locking in intel_cpufreq_verify_policy()
        cpufreq: intel_pstate: Use locking in intel_pstate_resume()
        cpufreq: intel_pstate: Do not expose PID parameters in passive mode
      3baad655
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v4.10-3' of... · 88ba6cae
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v4.10-3' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86
      
      Pull x86 platform driver fixes from Darren Hart:
       "Just two small fixes for platform drivers x86:
      
         - use brightness_set_blocking for LED-setting callbacks on Fujitsu
           laptops
      
         - fix surface3_button build errors"
      
      * tag 'platform-drivers-x86-v4.10-3' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86:
        platform/x86: fujitsu-laptop: use brightness_set_blocking for LED-setting callbacks
        platform/x86: fix surface3_button build errors
      88ba6cae
    • Linus Torvalds's avatar
      Merge branch 'stable-4.10' of git://git.infradead.org/users/pcmoore/audit · 6989606a
      Linus Torvalds authored
      Pull audit fixes from Paul Moore:
       "Two small fixes relating to audit's use of fsnotify.
      
        The first patch plugs a leak and the second fixes some lock
        shenanigans. The patches are small and I banged on this for an
        afternoon with our testsuite and didn't see anything odd"
      
      * 'stable-4.10' of git://git.infradead.org/users/pcmoore/audit:
        audit: Fix sleep in atomic
        fsnotify: Remove fsnotify_duplicate_mark()
      6989606a
  6. 05 Jan, 2017 7 commits
    • Linus Torvalds's avatar
      Merge tag 'drm-intel-fixes-2017-01-05' of git://anongit.freedesktop.org/git/drm-intel · ed40875d
      Linus Torvalds authored
      Pull i915 drm fixes from Jani Nikula:
       "Here's a bunch of drm/i915 fixes for v4.10-rc3. It includes GVT-g
        fixes.
      
        My new year's resolution is to start using signed tags for pulls. If
        that feels like a déjà vu, it's ((new year's) resolution), not (new
        (year's resolution))"
      
      [ Taking this directly from Jani because Dave Airlie is only partially
        connected right now.  - Linus ]
      
      * tag 'drm-intel-fixes-2017-01-05' of git://anongit.freedesktop.org/git/drm-intel:
        drm/i915: Prevent timeline updates whilst performing reset
        drm/i915: Silence allocation failure during sg_trim()
        drm/i915: Don't clflush before release phys object
        drm/i915: Fix oops in overlay due to frontbuffer tracking
        drm/i915: Fix oopses in the overlay code due to i915_gem_active stuff
        drm/i915: Initialize overlay->last_flip properly
        drm/i915: Move the min_pixclk[] handling to the end of readout
        drm/i915: Force VDD off on the new power seqeuencer before starting to use it
        drm/i915/gvt: fix typo in cfg_space range check
        drm/i915/gvt: fix an issue in emulating cfg space PCI_COMMAND
        drm/i915/gvt/kvmgt: trival: code cleanup
        drm/i915/gvt/kvmgt: prevent double-release of vgpu
        drm/i915/gvt/kvmgt: check returned slot for gfn
        drm/i915/gvt/kvmgt: dereference the pointer within lock
        drm/i915/gvt: reset the GGTT entry when vGPU created
        drm/i915/gvt: fix an error in opregion handling
      ed40875d
    • Alan Stern's avatar
      USB: fix problems with duplicate endpoint addresses · 0a8fd134
      Alan Stern authored
      When checking a new device's descriptors, the USB core does not check
      for duplicate endpoint addresses.  This can cause a problem when the
      sysfs files for those endpoints are created; trying to create multiple
      files with the same name will provoke a WARNING:
      
      WARNING: CPU: 2 PID: 865 at fs/sysfs/dir.c:31 sysfs_warn_dup+0x8a/0xa0
      sysfs: cannot create duplicate filename
      '/devices/platform/dummy_hcd.0/usb2/2-1/2-1:64.0/ep_05'
      Kernel panic - not syncing: panic_on_warn set ...
      
      CPU: 2 PID: 865 Comm: kworker/2:1 Not tainted 4.9.0-rc7+ #34
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
      Workqueue: usb_hub_wq hub_event
       ffff88006bee64c8 ffffffff81f96b8a ffffffff00000001 1ffff1000d7dcc2c
       ffffed000d7dcc24 0000000000000001 0000000041b58ab3 ffffffff8598b510
       ffffffff81f968f8 ffffffff850fee20 ffffffff85cff020 dffffc0000000000
      Call Trace:
       [<     inline     >] __dump_stack lib/dump_stack.c:15
       [<ffffffff81f96b8a>] dump_stack+0x292/0x398 lib/dump_stack.c:51
       [<ffffffff8168c88e>] panic+0x1cb/0x3a9 kernel/panic.c:179
       [<ffffffff812b80b4>] __warn+0x1c4/0x1e0 kernel/panic.c:542
       [<ffffffff812b8195>] warn_slowpath_fmt+0xc5/0x110 kernel/panic.c:565
       [<ffffffff819e70ca>] sysfs_warn_dup+0x8a/0xa0 fs/sysfs/dir.c:30
       [<ffffffff819e7308>] sysfs_create_dir_ns+0x178/0x1d0 fs/sysfs/dir.c:59
       [<     inline     >] create_dir lib/kobject.c:71
       [<ffffffff81fa1b07>] kobject_add_internal+0x227/0xa60 lib/kobject.c:229
       [<     inline     >] kobject_add_varg lib/kobject.c:366
       [<ffffffff81fa2479>] kobject_add+0x139/0x220 lib/kobject.c:411
       [<ffffffff82737a63>] device_add+0x353/0x1660 drivers/base/core.c:1088
       [<ffffffff82738d8d>] device_register+0x1d/0x20 drivers/base/core.c:1206
       [<ffffffff82cb77d3>] usb_create_ep_devs+0x163/0x260 drivers/usb/core/endpoint.c:195
       [<ffffffff82c9f27b>] create_intf_ep_devs+0x13b/0x200 drivers/usb/core/message.c:1030
       [<ffffffff82ca39d3>] usb_set_configuration+0x1083/0x18d0 drivers/usb/core/message.c:1937
       [<ffffffff82cc9e2e>] generic_probe+0x6e/0xe0 drivers/usb/core/generic.c:172
       [<ffffffff82caa7fa>] usb_probe_device+0xaa/0xe0 drivers/usb/core/driver.c:263
      
      This patch prevents the problem by checking for duplicate endpoint
      addresses during enumeration and skipping any duplicates.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Reported-by: default avatarAndrey Konovalov <andreyknvl@google.com>
      Tested-by: default avatarAndrey Konovalov <andreyknvl@google.com>
      CC: <stable@vger.kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      0a8fd134
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v4.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · c433eb70
      Linus Torvalds authored
      Pull pin control fixes from Linus Walleij:
       "Three small pin control fixes for the v4.10 series. Very little to say
        about them, just driver fixes.
      
         - one fix to the AMD pinctrl ACPI glue
      
         - fix requests on the Meson driver
      
         - fix bitfield widths on Samsungs Exynos 5433"
      
      * tag 'pinctrl-v4.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: samsung: Fix the width of PINCFG_TYPE_DRV bitfields for Exynos5433
        pinctrl: meson: fix gpio request disabling other modes
        pinctrl/amd: Set the level based on ACPI tables
      c433eb70
    • Peter Rosin's avatar
      usb: ohci-at91: use descriptor-based gpio APIs correctly · 8f12dc24
      Peter Rosin authored
      The gpiod_get* function family does not want the -gpio suffix.
      Use devm_gpiod_get_index_optional instead of devm_gpiod_get_optional.
      The descriptor based APIs handle active high/low automatically.
      The vbus-gpios are output, request enable while getting the gpio.
      Don't try to get any vbus-gpios for ports outside num-ports.
      
      WTF? Big sigh.
      
      Fixes: 054d4b7b ("usb: ohci-at91: Use descriptor-based gpio APIs")
      Signed-off-by: default avatarPeter Rosin <peda@axentia.se>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      8f12dc24
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · b4007927
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "This is a rather large set of bugfixes, as we just returned from the
        Christmas break. Most of these are relatively unimportant fixes for
        regressions introduced during the merge window, and about half of the
        changes are for mach-omap2.
      
        A couple of patches are just cleanups and dead code removal that I
        would not normally have considered for merging after -rc2, but I
        decided to take them along with the fixes this time.
      
        Notable fixes include:
      
         - removing the skeleton.dtsi include broke a number of machines, and
           we have to put empty /chosen nodes back to be able to pass kernel
           command lines as before
      
         - enabling Samsung platforms no longer hardwires CONFIG_HZ to 200, as
           it had been for no good reason for a long time"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (46 commits)
        MAINTAINERS: extend PSCI entry to cover the newly add PSCI checker code
        drivers: psci: annotate timer on stack to silence odebug messages
        ARM64: defconfig: enable DRM_MESON as module
        ARM64: dts: meson-gx: Add Graphic Controller nodes
        ARM64: dts: meson-gxl: fix GPIO include
        ARM: dts: imx6: Disable "weim" node in the dtsi files
        ARM: dts: qcom: apq8064: Add missing scm clock
        ARM: davinci: da8xx: Fix sleeping function called from invalid context
        ARM: davinci: Make __clk_{enable,disable} functions public
        ARM: davinci: da850: don't add emac clock to lookup table twice
        ARM: davinci: da850: fix infinite loop in clk_set_rate()
        ARM: i.MX: remove map_io callback
        ARM: dts: vf610-zii-dev-rev-b: Add missing newline
        ARM: dts: imx6qdl-nitrogen6x: remove duplicate iomux entry
        ARM: dts: imx31: fix AVIC base address
        ARM: dts: am572x-idk: Add gpios property to control PCIE_RESETn
        arm64: dts: vexpress: Support GICC_DIR operations
        ARM: dts: vexpress: Support GICC_DIR operations
        firmware: arm_scpi: fix reading sensor values on pre-1.0 SCPI firmwares
        arm64: dts: msm8996: Add required memory carveouts
        ...
      b4007927
    • Linus Torvalds's avatar
      Merge tag 'for-linus-4.10-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 383378d1
      Linus Torvalds authored
      Pull xen fixes and cleanups from Juergen Gross:
      
       - small fixes for xenbus driver
      
       - one fix for xen dom0 boot on huge system
      
       - small cleanups
      
      * tag 'for-linus-4.10-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        Xen: ARM: Zero reserved fields of xatp before making hypervisor call
        xen: events: Replace BUG() with BUG_ON()
        xen: remove stale xs_input_avail() from header
        xen: return xenstore command failures via response instead of rc
        xen: xenbus driver must not accept invalid transaction ids
        xen/evtchn: use rb_entry()
        xen/setup: Don't relocate p2m over existing one
      383378d1
    • Stephen Hemminger's avatar
      hyper-v: Add myself as additional MAINTAINER · 421463b8
      Stephen Hemminger authored
      Update the Hyper-V MAINTAINERS to include myself.
      Signed-off-by: default avatarStephen Hemminger <sthemmin@microsoft.com>
      Acked-by: default avatarK. Y. Srinivasan <kys@microsoft.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      421463b8