1. 08 6月, 2017 22 次提交
    • P
      atomics: Add header comment so spin_unlock_wait() · 6016ffc3
      Paul E. McKenney 提交于
      There is material describing the ordering guarantees provided by
      spin_unlock_wait(), but it is not necessarily easy to find.  This commit
      therefore adds a docbook header comment to this function informally
      describing its semantics.
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Acked-by: NPeter Zijlstra <peterz@infradead.org>
      6016ffc3
    • P
      doc/atomic_ops: Clarify smp_mb__{before,after}_atomic() · 79269ee3
      Paul E. McKenney 提交于
      This commit explicitly states that surrounding a non-value-returning
      atomic read-modify atomic operations provides full ordering, just as
      is provided by value-returning atomic read-modify-write operations.
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      79269ee3
    • P
      rcuperf: Add test for dynamically initialized srcu_struct · f60cb4d4
      Paul E. McKenney 提交于
      This commit adds a perf_type of "srcud", which species that rcuperf
      test SRCU on a dynamically initialized srcu_struct.
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      f60cb4d4
    • P
      checkpatch: Remove checks for expedited grace periods · 98953135
      Paul E. McKenney 提交于
      There was a time when the expedited grace-period primitives
      (synchronize_rcu_expedited(), synchronize_rcu_bh_expedited(), and
      synchronize_sched_expedited()) used rather antisocial kernel
      facilities like try_stop_cpus().  However, they have since been
      housebroken to use only single-CPU IPIs, and typically cause less
      disturbance than a scheduling-clock interrupt.  Furthermore, this
      disturbance can be eliminated entirely using NO_HZ_FULL on the
      one hand or the rcupdate.rcu_normal boot parameter on the other.
      
      This commit therefore removes checkpatch's complaints about use
      of the expedited RCU primitives.
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      98953135
    • P
      rcu: Make sync_rcu_preempt_exp_done() return bool · dcfc315b
      Paul E. McKenney 提交于
      The sync_rcu_preempt_exp_done() function returns a logical expression,
      but its return type is nevertheless int.  This commit therefore changes
      the return type to bool.
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      dcfc315b
    • P
      rcuperf: Add a Kconfig-fragment file for Classic SRCU · ced8d6fd
      Paul E. McKenney 提交于
      This commit adds a Kconfig-fragment file for Classic SRCU to ease
      performance comparisons with Tree SRCU.
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      ced8d6fd
    • P
      rcuperf: Add ability to performance-test call_rcu() and friends · 881ed593
      Paul E. McKenney 提交于
      This commit upgrades rcuperf so that it can do performance testing on
      asynchronous grace-period primitives such as call_srcu().  There is
      a new rcuperf.gp_async module parameter that specifies this new behavior,
      with the pre-existing rcuperf.gp_exp testing expedited grace periods such as
      synchronize_rcu_expedited, and with the default being to test synchronous
      non-expedited grace periods such as synchronize_rcu().
      
      There is also a new rcuperf.gp_async_max module parameter that specifies
      the maximum number of outstanding callbacks per writer kthread, defaulting
      to 1,000.  When this limit is exceeded, the writer thread invokes the
      appropriate flavor of rcu_barrier() to wait for callbacks to drain.
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      [ paulmck: Removed the redundant initialization noted by Arnd Bergmann. ]
      881ed593
    • P
      rcu: Remove obsolete reference to synchronize_kernel() · e28371c8
      Paul E. McKenney 提交于
      The synchronize_kernel() primitive was removed in favor of
      synchronize_sched() more than a decade ago, and it seems likely that
      rather few kernel hackers are familiar with it.  Its continued presence
      is therefore providing more confusion than enlightenment.  This commit
      therefore removes the reference from the synchronize_sched() header
      comment, and adds the corresponding information to the synchronize_rcu(0
      header comment.
      Reported-by: NPeter Zijlstra <peterz@infradead.org>
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      e28371c8
    • P
      rcuperf: Remove conflicting Kconfig options · 1dcf2806
      Paul E. McKenney 提交于
      The TREE and TREE54 rcuperf scenarios' Kconfig fragment files specified
      conflicting values for CONFIG_RCU_TRACE.  This commit therefore removes
      the =n line in favor of the =y line.
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      1dcf2806
    • P
      rcuperf: Defer expedited/normal check to end of test · 9683937d
      Paul E. McKenney 提交于
      Current rcuperf startup checks to see if the user asked to measure
      only expedited grace periods, yet constrained all grace periods to be
      normal, or if the user asked to measure only normal grace periods, yet
      constrained all grace periods to be expedited.  Useless tests of this
      sort are aborted.
      
      Unfortunately, making RCU work through the mid-boot dead zone [1] puts
      RCU into expedited-only mode during that zone.  Which happens to also
      be the exact time that rcuperf carries out the aforementioned check.
      So if the user asks rcuperf to measure only normal grace periods (the
      default), rcuperf will now always complain and terminate the test.
      
      This commit therefore moves the checks to rcu_perf_cleanup().  This has
      the disadvantage of failing to abort useless tests, but avoids the need to
      create yet another kthread and the need to do fiddly checks involving the
      holdoff time.  (Yes, another approach is to do the checks in a late-stage
      init function, but that would require some way to communicate badness
      to rcuperf's kthreads, and seems not worth the bother.)
      
      [1] https://lwn.net/Articles/716148/Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      9683937d
    • P
      rcu: Complain if blocking in preemptible RCU read-side critical section · 5b72f964
      Paul E. McKenney 提交于
      Although preemptible RCU allows its read-side critical sections to be
      preempted, general blocking is forbidden.  The reason for this is that
      excessive preemption times can be handled by CONFIG_RCU_BOOST=y, but a
      voluntarily blocked task doesn't care how high you boost its priority.
      Because preemptible RCU is a global mechanism, one ill-behaved reader
      hurts everyone.  Hence the prohibition against general blocking in
      RCU-preempt read-side critical sections.  Preemption yes, blocking no.
      
      This commit enforces this prohibition.
      
      There is a special exception for the -rt patchset (which they kindly
      volunteered to implement):  It is OK to block (as opposed to merely being
      preempted) within an RCU-preempt read-side critical section, but only if
      the blocking is subject to priority inheritance.  This exception permits
      CONFIG_RCU_BOOST=y to get -rt RCU readers out of trouble.
      
      Why doesn't this exception also apply to mainline's rt_mutex?  Because
      of the possibility that someone does general blocking while holding
      an rt_mutex.  Yes, the priority boosting will affect the rt_mutex,
      but it won't help with the task doing general blocking while holding
      that rt_mutex.
      Reported-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      5b72f964
    • P
      srcu: Eliminate possibility of destructive counter overflow · 881ec9d2
      Paul E. McKenney 提交于
      Earlier versions of Tree SRCU were subject to a counter overflow bug that
      could theoretically result in too-short grace periods.  This commit
      eliminates this problem by adding an update-side memory barrier.
      The short explanation is that if the updater sums the unlock counts
      too late to see a given __srcu_read_unlock() increment, that CPU's
      next __srcu_read_lock() must see the new value of ->srcu_idx, thus
      incrementing the other bank of counters.  This eliminates the possibility
      of destructive counter overflow as long as the srcu_read_lock() nesting
      level does not exceed floor(ULONG_MAX/NR_CPUS/2), which should be an
      eminently reasonable nesting limit, especially on 64-bit systems.
      Reported-by: NLance Roy <ldr709@gmail.com>
      Suggested-by: NLance Roy <ldr709@gmail.com>
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      881ec9d2
    • P
      rcutorture: Update test scenarios based on new Kconfig dependencies · 17ed2b6c
      Paul E. McKenney 提交于
      A number of the rcutorture test scenarios were not using the desired
      Kconfig options because dependencies were preventing the selections in the
      Kconfig-fragment files from being honored.  This commit therefore updates
      the Kconfig-fragment files to account for these changes in dependencies.
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      17ed2b6c
    • P
      rcutorture: Correctly handle CONFIG_RCU_TORTURE_TEST_* options · 39687d6c
      Paul E. McKenney 提交于
      The rcutorture scripting handles the CONFIG_*_TORTURE_TEST Kconfig
      options specially, and therefore greps them out of the Kconfig-fragment
      files.  Unfortunately, a poor choice of grep pattern means that the
      CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP, CONFIG_RCU_TORTURE_TEST_SLOW_INIT,
      and CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT Kconfig options are also grepped
      out, preventing rcutorture from using them.  This commit therefore fixes
      the offending grep pattern to focus only on the CONFIG_*_TORTURE_TEST
      Kconfig options.
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      39687d6c
    • P
      rcu: Prevent rcu_barrier() from starting needless grace periods · f92c734f
      Paul E. McKenney 提交于
      Currently rcu_barrier() uses call_rcu() to enqueue new callbacks
      on each CPU with a non-empty callback list.  This works, but means
      that rcu_barrier() forces grace periods that are not otherwise needed.
      The key point is that rcu_barrier() never needs to wait for a grace
      period, but instead only for all pre-existing callbacks to be invoked.
      This means that rcu_barrier()'s new callbacks should be placed in
      the callback-list segment containing the last pre-existing callback.
      
      This commit makes this change using the new rcu_segcblist_entrain()
      function.
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      f92c734f
    • P
      rcutorture: Add a scenario for Classic SRCU · c0ee4500
      Paul E. McKenney 提交于
      A robust combination of paranoia and cowardice has resulted in retaining
      Classic SRCU (CONFIG_CLASSIC_SRCU) as a backup for the shiny new Tiny
      and Tree SRCU implementations.  If it is to be a viable backup, it of
      course needs to be tested.  This commit therefore adds an rcutorture
      scenario named SRCU-C for Classic SRCU.  This commit also adds this
      scenario to the set that are run by default.
      
      Once sufficient good experience has accumulated for Tiny and Tree SRCU,
      this test will be removed, along with the Classic SRCU implementation
      itself.
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      c0ee4500
    • P
      rcutorture: Add a scenario for Tiny SRCU · 23ca0967
      Paul E. McKenney 提交于
      This commit adds an SRCU-t rcutorture scenario for the new Tiny SRCU
      implementation, removing the need to pass the --bootargs parameter to
      kvm.sh to run Tiny SRCU tests.  This commit also adds SRCU-t to the set
      of scenarios that are run by default.
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      23ca0967
    • P
      rcutorture: Fix bug in reporting Kconfig mis-settings · 3c52f262
      Paul E. McKenney 提交于
      Kconfig "select" clauses can defeat Kconfig-fragment file attempts to
      clear a given Kconfig variable, and dependencies can defeat attempts to
      set a given Kconfig variable.  Because "select" clauses and dependencies
      can be added at any time, there needs to be a way to verify that the
      Kconfig-fragment file's requests were honored.  And there is, except
      that it is buggy.  This commit therefore provides the needed fix.
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      3c52f262
    • P
      rcutorture: Add three-level tree test for Tree SRCU · 8d6dd656
      Paul E. McKenney 提交于
      This commit adds a test for a three-level srcu_node tree for Tree SRCU
      in the existing SRCU-P scenario.  This requires enabling CONFIG_RCU_EXPERT,
      so the CONFIG_RCU_EXPERT=n scenario is now SRCU-N.  The reason for using
      SRCU-P for the tall tree is that preemption raises the possibility of
      locating more bugs than does the non-preemptive SRCU-N.
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      8d6dd656
    • P
      rcutorture: Add lockdep to one of the SRCU scenarios · 27dc0b1b
      Paul E. McKenney 提交于
      Back when SRCU was simpler, there wasn't much need for lockdep.
      However, with Tree SRCU, it is needed.  This commit therefore adds
      CONFIG_PROVE_LOCKING to the SRCU-P scenario.
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      27dc0b1b
    • P
      srcu: Allow use of Classic SRCU from both process and interrupt context · 1123a604
      Paolo Bonzini 提交于
      Linu Cherian reported a WARN in cleanup_srcu_struct() when shutting
      down a guest running iperf on a VFIO assigned device.  This happens
      because irqfd_wakeup() calls srcu_read_lock(&kvm->irq_srcu) in interrupt
      context, while a worker thread does the same inside kvm_set_irq().  If the
      interrupt happens while the worker thread is executing __srcu_read_lock(),
      updates to the Classic SRCU ->lock_count[] field or the Tree SRCU
      ->srcu_lock_count[] field can be lost.
      
      The docs say you are not supposed to call srcu_read_lock() and
      srcu_read_unlock() from irq context, but KVM interrupt injection happens
      from (host) interrupt context and it would be nice if SRCU supported the
      use case.  KVM is using SRCU here not really for the "sleepable" part,
      but rather due to its IPI-free fast detection of grace periods.  It is
      therefore not desirable to switch back to RCU, which would effectively
      revert commit 719d93cd ("kvm/irqchip: Speed up KVM_SET_GSI_ROUTING",
      2014-01-16).
      
      However, the docs are overly conservative.  You can have an SRCU instance
      only has users in irq context, and you can mix process and irq context
      as long as process context users disable interrupts.  In addition,
      __srcu_read_unlock() actually uses this_cpu_dec() on both Tree SRCU and
      Classic SRCU.  For those two implementations, only srcu_read_lock()
      is unsafe.
      
      When Classic SRCU's __srcu_read_unlock() was changed to use this_cpu_dec(),
      in commit 5a41344a ("srcu: Simplify __srcu_read_unlock() via
      this_cpu_dec()", 2012-11-29), __srcu_read_lock() did two increments.
      Therefore it kept __this_cpu_inc(), with preempt_disable/enable in
      the caller.  Tree SRCU however only does one increment, so on most
      architectures it is more efficient for __srcu_read_lock() to use
      this_cpu_inc(), and any performance differences appear to be down in
      the noise.
      
      Cc: stable@vger.kernel.org
      Fixes: 719d93cd ("kvm/irqchip: Speed up KVM_SET_GSI_ROUTING")
      Reported-by: NLinu Cherian <linuc.decode@gmail.com>
      Suggested-by: NLinu Cherian <linuc.decode@gmail.com>
      Cc: kvm@vger.kernel.org
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      1123a604
    • P
      srcu: Allow use of Tiny/Tree SRCU from both process and interrupt context · cdf7abc4
      Paolo Bonzini 提交于
      Linu Cherian reported a WARN in cleanup_srcu_struct() when shutting
      down a guest running iperf on a VFIO assigned device.  This happens
      because irqfd_wakeup() calls srcu_read_lock(&kvm->irq_srcu) in interrupt
      context, while a worker thread does the same inside kvm_set_irq().  If the
      interrupt happens while the worker thread is executing __srcu_read_lock(),
      updates to the Classic SRCU ->lock_count[] field or the Tree SRCU
      ->srcu_lock_count[] field can be lost.
      
      The docs say you are not supposed to call srcu_read_lock() and
      srcu_read_unlock() from irq context, but KVM interrupt injection happens
      from (host) interrupt context and it would be nice if SRCU supported the
      use case.  KVM is using SRCU here not really for the "sleepable" part,
      but rather due to its IPI-free fast detection of grace periods.  It is
      therefore not desirable to switch back to RCU, which would effectively
      revert commit 719d93cd ("kvm/irqchip: Speed up KVM_SET_GSI_ROUTING",
      2014-01-16).
      
      However, the docs are overly conservative.  You can have an SRCU instance
      only has users in irq context, and you can mix process and irq context
      as long as process context users disable interrupts.  In addition,
      __srcu_read_unlock() actually uses this_cpu_dec() on both Tree SRCU and
      Classic SRCU.  For those two implementations, only srcu_read_lock()
      is unsafe.
      
      When Classic SRCU's __srcu_read_unlock() was changed to use this_cpu_dec(),
      in commit 5a41344a ("srcu: Simplify __srcu_read_unlock() via
      this_cpu_dec()", 2012-11-29), __srcu_read_lock() did two increments.
      Therefore it kept __this_cpu_inc(), with preempt_disable/enable in
      the caller.  Tree SRCU however only does one increment, so on most
      architectures it is more efficient for __srcu_read_lock() to use
      this_cpu_inc(), and any performance differences appear to be down in
      the noise.
      
      Unlike Classic and Tree SRCU, Tiny SRCU does increments and decrements on
      a single variable.  Therefore, as Peter Zijlstra pointed out, Tiny SRCU's
      implementation already supports mixed-context use of srcu_read_lock()
      and srcu_read_unlock(), at least as long as uses of srcu_read_lock()
      and srcu_read_unlock() in each handler are nested and paired properly.
      In other words, it is still illegal to (say) invoke srcu_read_lock()
      in an interrupt handler and to invoke the matching srcu_read_unlock()
      in a softirq handler.  Therefore, the only change required for Tiny SRCU
      is to its comments.
      
      Fixes: 719d93cd ("kvm/irqchip: Speed up KVM_SET_GSI_ROUTING")
      Reported-by: NLinu Cherian <linuc.decode@gmail.com>
      Suggested-by: NLinu Cherian <linuc.decode@gmail.com>
      Cc: kvm@vger.kernel.org
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Tested-by: NPaolo Bonzini <pbonzini@redhat.com>
      cdf7abc4
  2. 05 6月, 2017 8 次提交
    • L
      Linux 4.12-rc4 · 3c2993b8
      Linus Torvalds 提交于
      3c2993b8
    • R
      fs/ufs: Set UFS default maximum bytes per file · 239e250e
      Richard Narron 提交于
      This fixes a problem with reading files larger than 2GB from a UFS-2
      file system:
      
          https://bugzilla.kernel.org/show_bug.cgi?id=195721
      
      The incorrect UFS s_maxsize limit became a problem as of commit
      c2a9737f ("vfs,mm: fix a dead loop in truncate_inode_pages_range()")
      which started using s_maxbytes to avoid a page index overflow in
      do_generic_file_read().
      
      That caused files to be truncated on UFS-2 file systems because the
      default maximum file size is 2GB (MAX_NON_LFS) and UFS didn't update it.
      
      Here I simply increase the default to a common value used by other file
      systems.
      Signed-off-by: NRichard Narron <comet.berkeley@gmail.com>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: Will B <will.brokenbourgh2877@gmail.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Cc: <stable@vger.kernel.org> # v4.9 and backports of c2a9737fSigned-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      239e250e
    • L
      Merge tag 'nfs-for-4.12-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 125f42b0
      Linus Torvalds 提交于
      Pull NFS client bugfixes from Trond Myklebust:
       "Bugfixes include:
      
         - Fix a typo in commit e0926934 ("NFS append COMMIT after
           synchronous COPY") that breaks copy offload
      
         - Fix the connect error propagation in xs_tcp_setup_socket()
      
         - Fix a lock leak in nfs40_walk_client_list
      
         - Verify that pNFS requests lie within the offset range of the layout
           segment"
      
      * tag 'nfs-for-4.12-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        nfs: Mark unnecessarily extern functions as static
        SUNRPC: ensure correct error is reported by xs_tcp_setup_socket()
        NFSv4.0: Fix a lock leak in nfs40_walk_client_list
        pnfs: Fix the check for requests in range of layout segment
        xprtrdma: Delete an error message for a failed memory allocation in xprt_rdma_bc_setup()
        pNFS/flexfiles: missing error code in ff_layout_alloc_lseg()
        NFS fix COMMIT after COPY
      125f42b0
    • L
      Merge tag 'tty-4.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 3c06e6cb
      Linus Torvalds 提交于
      Pull tty fix from Greg KH:
       "Here is a single tty core fix for 4.12-rc4. It reverts a patch that a
        lot of people reported as causing lockdep and other warnings.
      
        Right after I reverted this in my tree, it seems like another
        "correct" fix might have shown up, but it's too late in the release
        cycle to be messing with tty core locking, so let's just revert this
        for now to go back how things always have been and try it again for
        4.13.
      
        This has not been in linux-next as I only reverted it a few hours ago"
      
      * tag 'tty-4.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        Revert "tty: fix port buffer locking"
      3c06e6cb
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · e00811b4
      Linus Torvalds 提交于
      Pull input subsystem fixes from Dmitry Torokhov:
      
       - a couple of regression fixes in synaptics and axp20x-pek drivers
      
       - try to ease transition from PS/2 to RMI for Synaptics touchpad users
         by ensuring we do not try to activate RMI mode when RMI SMBus support
         is not enabled, and nag users a bit to enable it
      
       - plus a couple of other changes that seemed worthwhile for this
         release
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: axp20x-pek - switch to acpi_dev_present and check for ACPI0011 too
        Input: axp20x-pek - only check for "INTCFD9" ACPI device on Cherry Trail
        Input: tm2-touchkey - use LEN_ON as boolean value instead of LED_FULL
        Input: synaptics - tell users to report when they should be using rmi-smbus
        Input: synaptics - warn the users when there is a better mode
        Input: synaptics - keep PS/2 around when RMI4_SMB is not enabled
        Input: synaptics - clear device info before filling in
        Input: silead - disable interrupt during suspend
      e00811b4
    • L
      Merge tag 'rtc-4.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux · 9f03b2c7
      Linus Torvalds 提交于
      Pull RTC fixlet from Alexandre Belloni:
       "A single patch, not really a fix but I don't think there is any reason
        to delay it.
      
        Change the mailing list address"
      
      * tag 'rtc-4.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux:
        MAINTAINERS: update RTC mailing list
      9f03b2c7
    • L
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 1f915b7f
      Linus Torvalds 提交于
      Pull SCSI fixes from James Bottomley:
       "This is nine fixes, seven of which are for the qedi driver (new as of
        4.10) the other two are a use after free in the cxgbi drivers and a
        potential NULL dereference in the rdac device handler"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: libcxgbi: fix skb use after free
        scsi: qedi: Fix endpoint NULL panic during recovery.
        scsi: qedi: set max_fin_rt default value
        scsi: qedi: Set firmware tcp msl timer value.
        scsi: qedi: Fix endpoint NULL panic in qedi_set_path.
        scsi: qedi: Set dma_boundary to 0xfff.
        scsi: qedi: Correctly set firmware max supported BDs.
        scsi: qedi: Fix bad pte call trace when iscsiuio is stopped.
        scsi: scsi_dh_rdac: Use ctlr directly in rdac_failover_get()
      1f915b7f
    • L
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma · 55cbdaf6
      Linus Torvalds 提交于
      Pull rdma fixes from Doug Ledford:
       "For the most part this is just a minor -rc cycle for the rdma
        subsystem. Even given that this is all of the -rc patches since the
        merge window closed, it's still only about 25 patches:
      
         - Multiple i40iw, nes, iw_cxgb4, hfi1, qib, mlx4, mlx5 fixes
      
         - A few upper layer protocol fixes (IPoIB, iSER, SRP)
      
         - A modest number of core fixes"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (26 commits)
        RDMA/SA: Fix kernel panic in CMA request handler flow
        RDMA/umem: Fix missing mmap_sem in get umem ODP call
        RDMA/core: not to set page dirty bit if it's already set.
        RDMA/uverbs: Declare local function static and add brackets to sizeof
        RDMA/netlink: Reduce exposure of RDMA netlink functions
        RDMA/srp: Fix NULL deref at srp_destroy_qp()
        RDMA/IPoIB: Limit the ipoib_dev_uninit_default scope
        RDMA/IPoIB: Replace netdev_priv with ipoib_priv for ipoib_get_link_ksettings
        RDMA/qedr: add null check before pointer dereference
        RDMA/mlx5: set UMR wqe fence according to HCA cap
        net/mlx5: Define interface bits for fencing UMR wqe
        RDMA/mlx4: Fix MAD tunneling when SRIOV is enabled
        RDMA/qib,hfi1: Fix MR reference count leak on write with immediate
        RDMA/hfi1: Defer setting VL15 credits to link-up interrupt
        RDMA/hfi1: change PCI bar addr assignments to Linux API functions
        RDMA/hfi1: fix array termination by appending NULL to attr array
        RDMA/iw_cxgb4: fix the calculation of ipv6 header size
        RDMA/iw_cxgb4: calculate t4_eq_status_entries properly
        RDMA/iw_cxgb4: Avoid touch after free error in ARP failure handlers
        RDMA/nes: ACK MPA Reply frame
        ...
      55cbdaf6
  3. 04 6月, 2017 2 次提交
  4. 03 6月, 2017 8 次提交
    • L
      Merge tag 'hwmon-for-linus-v4.12-rc4' of... · ea094f3c
      Linus Torvalds 提交于
      Merge tag 'hwmon-for-linus-v4.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
       "A couple of patches for the aspeed pwm fan driver"
      
      * tag 'hwmon-for-linus-v4.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (aspeed-pwm-tacho) make fan/pwm names start with index 1
        hwmon: (aspeed-pwm-tacho) Call of_node_put() on a node not claimed
        hwmon: (aspeed-pwm-tacho) On read failure return -ETIMEDOUT
        hwmon: (aspeed-pwm-tacho) Select REGMAP
      ea094f3c
    • L
      Merge tag 'for-linus-20170602' of git://git.infradead.org/linux-mtd · cc548740
      Linus Torvalds 提交于
      Pull MTD fixes from Brian Norris:
       "NAND updates from Boris:
      
        tango fixes:
         - Add missing MODULE_DEVICE_TABLE() in tango_nand.c
         - Update the number of corrected bitflips
      
        core fixes:
         - Fix a long standing memory leak in nand_scan_tail()
         - Fix several bugs introduced by the per-vendor init/detection
           infrastructure (introduced in 4.12)
         - Add a static specifier to nand_ooblayout_lp_hamming_ops definition"
      
      * tag 'for-linus-20170602' of git://git.infradead.org/linux-mtd:
        mtd: nand: make nand_ooblayout_lp_hamming_ops static
        mtd: nand: tango: Update ecc_stats.corrected
        mtd: nand: tango: Export OF device ID table as module aliases
        mtd: nand: samsung: warn about un-parseable ECC info
        mtd: nand: free vendor-specific resources in init failure paths
        mtd: nand: drop unneeded module.h include
        mtd: nand: don't leak buffers when ->scan_bbt() fails
      cc548740
    • S
      hwmon: (aspeed-pwm-tacho) make fan/pwm names start with index 1 · 5f348fa3
      Stefan Schaeckeler 提交于
      Make fan and pwm names in sysfs start with index 1 in accordance to
      Documentation/hwmon/sysfs-interface conventions.
      
      Current implementation starts with index 0, making tools such as
      sensors(1) skip the first fan.
      Signed-off-by: NStefan Schaeckeler <sschaeck@cisco.com>
      Fixes: 2d7a548a ("drivers: hwmon: Support for ASPEED PWM/Fan tach")
      Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
      5f348fa3
    • S
      hwmon: (aspeed-pwm-tacho) Call of_node_put() on a node not claimed · 4d58e732
      Stefan Schaeckeler 提交于
      Call of_node_put() on a node claimed with of_node_get() or by any other
      means such as for_each_child_of_node().
      Signed-off-by: NStefan Schaeckeler <sschaeck@cisco.com>
      Fixes: 2d7a548a ("drivers: hwmon: Support for ASPEED PWM/Fan tach")
      Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
      4d58e732
    • H
      Input: axp20x-pek - switch to acpi_dev_present and check for ACPI0011 too · 0fd5f221
      Hans de Goede 提交于
      acpi_dev_found checks that there is a matching ACPI node, but it
      may be disabled (_STA method returns 0) in which case the
      soc_button_array driver will not bind to it and axp20x-pek should
      handle the power-button.
      
      This commit switches from acpi_dev_found to acpi_dev_present to
      avoid not registering an input-dev for the powerbutton when there
      is a disabled PNP0C40 device.
      
      The ACPI-6.0 standard defines a standard gpio button device using
      the ACPI0011 HID replacing the custom PNP0C40 gpio device, many
      newer devices define both PNP0C40 and ACPI0011 devices enabling one
      or the other depending on whether the BIOS thinks it is going to boot
      Android or Windows.
      
      This commit adds a check for the ACPI0011 device, so that if
      either device is present *and* enabled we don't register an input-dev
      for the powerbutton.
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      0fd5f221
    • H
      Input: axp20x-pek - only check for "INTCFD9" ACPI device on Cherry Trail · 8d4b3137
      Hans de Goede 提交于
      Commit 9b13a4ca ("Input: axp20x-pek - do not register input device
      on some systems") added a check for the INTCFD9 ACPI device which also
      handles the powerbutton as on some systems the powerbutton is connected
      to both the PMIC, handled by axp20x-pek, and to a gpio on the SoC, handled
      by soc_button_array which attaches itself to the INTCFD9 ACPI device.
      
      Testing + comparing DSDTs has shown that this only happens on Cherry
      Trail devices with an AXP288 PMIC, the AXP288 PMIC is also used on
      Bay Trail devices but there the power button is only connected to
      the PMIC and not handled by soc_button_array.
      
      This means that the INTCFD9 check has caused a regression on Bay Trail
      devices, causing power-button presses to no longer be seen.
      
      This commit fixes this by limiting the check to devices where the ACPI
      node for the AXP288 contains a _HRV (hardware revision) attribute with
      a value of 3 which indicates we are dealing with a Cherry Trail platform.
      
      Fixes: 9b13a4ca ("Input: axp20x-pek - do not register input ...")
      Reported-by: NСергей Трусов <t.rus76@ya.ru>
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Signed-off-by: NDmitry Torokhov <dmitry.torokhov@gmail.com>
      8d4b3137
    • D
      Merge tag 'v4.12-rc3' into for-linus · eadcbfa5
      Dmitry Torokhov 提交于
      Merge with mainline to get acpi_dev_present() needed by patches to
      axp20x-pek driver.
      eadcbfa5
    • L
      Merge tag 'acpi-4.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 104c08ba
      Linus Torvalds 提交于
      Pull ACPI fixes from Rafael Wysocki:
       "These revert one more problematic commit related to the ACPI-based
        handling of laptop lids and make some unuseful error messages coming
        from ACPICA go away.
      
        Specifics:
      
         - Revert one more commit related to the ACPI-based handling of laptop
           lids that changed the default behavior on laptops that booted with
           closed lids and introduced a regression there (Benjamin Tissoires).
      
         - Add a missing acpi_put_table() to the code implementing the
           /sys/firmware/acpi/tables interface to prevent a counter in the
           ACPICA core from overflowing (Dan Williams).
      
         - Drop error messages printed by ACPICA on acpi_get_table() reference
           counting mismatches as they need not indicate real errors at this
           point (Lv Zheng)"
      
      * tag 'acpi-4.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPICA: Tables: Fix regression introduced by a too early mechanism enabling
        Revert "ACPI / button: Change default behavior to lid_init_state=open"
        ACPI / sysfs: fix acpi_get_table() leak / acpi-sysfs denial of service
      104c08ba