1. 12 Sep, 2015 7 commits
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · 01b0c014
      Linus Torvalds authored
      Merge fourth patch-bomb from Andrew Morton:
      
       - sys_membarier syscall
      
       - seq_file interface changes
      
       - a few misc fixups
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        revert "ocfs2/dlm: use list_for_each_entry instead of list_for_each"
        mm/early_ioremap: add explicit #include of asm/early_ioremap.h
        fs/seq_file: convert int seq_vprint/seq_printf/etc... returns to void
        selftests: enhance membarrier syscall test
        selftests: add membarrier syscall test
        sys_membarrier(): system-wide memory barrier (generic, x86)
        MODSIGN: fix a compilation warning in extract-cert
      01b0c014
    • Vineet Gupta's avatar
      ARCv2: [axs103_smp] Reduce clk for SMP FPGA configs · 3ebb0540
      Vineet Gupta authored
      Newer bitfiles needs the reduced clk even for SMP builds
      
      Cc: <stable@vger.kernel.org>  #4.2
      Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3ebb0540
    • Linus Torvalds's avatar
      Merge tag 'ntb-4.3' of git://github.com/jonmason/ntb · ded0e250
      Linus Torvalds authored
      Pull NTB fixes from Jon Mason:
       "NTB bug and documentation fixes, new device IDs, performance
        improvements, and adding a mailing list to MAINTAINERS for NTB"
      
      * tag 'ntb-4.3' of git://github.com/jonmason/ntb:
        NTB: Fix range check on memory window index
        NTB: Improve index handling in B2B MW workaround
        NTB: Fix documentation for ntb_peer_db_clear.
        NTB: Fix documentation for ntb_link_is_up
        NTB: Use unique DMA channels for TX and RX
        NTB: Remove dma_sync_wait from ntb_async_rx
        NTB: Clean up QP stats info
        NTB: Make the transport list in order of discovery
        NTB: Add PCI Device IDs for Broadwell Xeon
        NTB: Add flow control to the ntb_netdev
        NTB: Add list to MAINTAINERS
      ded0e250
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · f0c032d8
      Linus Torvalds authored
      Pull more input updates from Dmitry Torokhov:
       "Second round of updates for the input subsystem.
      
        This introduces two brand new touchscreen drivers (Colibri and
        imx6ul_tsc), some small driver fixes, and we are no longer report
        errors from evdev_flush() as users do not really have a way of
        handling errors, error codes that we were returning were not on the
        list of errors supposed to be returned by close(), and errors were
        causing issues with one of older versions of systemd"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: imx_keypad - remove obsolete comment
        Input: touchscreen - add imx6ul_tsc driver support
        Input: Add touchscreen support for Colibri VF50
        Input: i8042 - lower log level for "no controller" message
        Input: evdev - do not report errors form flush()
        Input: elants_i2c - extend the calibration timeout to 12 seconds
        Input: sparcspkr - fix module autoload for OF platform drivers
        Input: regulator-haptic - fix module autoload for OF platform driver
        Input: pwm-beeper - fix module autoload for OF platform driver
        Input: ab8500-ponkey - Fix module autoload for OF platform driver
        Input: cyttsp - remove unnecessary MODULE_ALIAS()
        Input: elan_i2c - add ACPI ID "ELAN1000"
      f0c032d8
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-4.3-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · fa9a67ef
      Linus Torvalds authored
      Pull more power management and ACPI updates from Rafael Wysocki:
       "These are mostly fixes and cleanups on top of the previous PM+ACPI
        pull request (cpufreq core and drivers, cpuidle, generic power domains
        framework).  Some of them didn't make to that pull request and some
        fix issues introduced by it.
      
        The only really new thing is the support for suspend frequency in the
        cpufreq-dt driver, but it is needed to fix an issue with Exynos
        platforms.
      
        Specifics:
      
         - build fix for the new Mediatek MT8173 cpufreq driver (Guenter
           Roeck).
      
         - generic power domains framework fixes (power on error code path,
           subdomain removal) and cleanup of a deprecated API user (Geert
           Uytterhoeven, Jon Hunter, Ulf Hansson).
      
         - cpufreq-dt driver fixes including two fixes for bugs related to the
           new Operating Performance Points Device Tree bindings introduced
           recently (Viresh Kumar).
      
         - suspend frequency support for the cpufreq-dt driver (Bartlomiej
           Zolnierkiewicz, Viresh Kumar).
      
         - cpufreq core cleanups (Viresh Kumar).
      
         - intel_pstate driver fixes (Chen Yu, Kristen Carlson Accardi).
      
         - additional sanity check in the cpuidle core (Xunlei Pang).
      
         - fix for a comment related to CPU power management (Lina Iyer)"
      
      * tag 'pm+acpi-4.3-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        intel_pstate: fix PCT_TO_HWP macro
        intel_pstate: Fix user input of min/max to legal policy region
        PM / OPP: Return suspend_opp only if it is enabled
        cpufreq-dt: add suspend frequency support
        cpufreq: allow cpufreq_generic_suspend() to work without suspend frequency
        PM / OPP: add dev_pm_opp_get_suspend_opp() helper
        staging: board: Migrate away from __pm_genpd_name_add_device()
        cpufreq: Use __func__ to print function's name
        cpufreq: staticize cpufreq_cpu_get_raw()
        PM / Domains: Ensure subdomain is not in use before removing
        cpufreq: Add ARM_MT8173_CPUFREQ dependency on THERMAL
        cpuidle/coupled: Add sanity check for safe_state_index
        PM / Domains: Try power off masters in error path of __pm_genpd_poweron()
        cpufreq: dt: Tolerance applies on both sides of target voltage
        cpufreq: dt: Print error on failing to mark OPPs as shared
        cpufreq: dt: Check OPP count before marking them shared
        kernel/cpu_pm: fix cpu_cluster_pm_exit comment
      fa9a67ef
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending · 05c78081
      Linus Torvalds authored
      Pull SCSI target updates from Nicholas Bellinger:
       "Here are the outstanding target-pending updates for v4.3-rc1.
      
        Mostly bug-fixes and minor changes this round.  The fallout from the
        big v4.2-rc1 RCU conversion have (thus far) been minimal.
      
        The highlights this round include:
      
         - Move sense handling routines into scsi_common code (Sagi)
      
         - Return ABORTED_COMMAND sense key for PI errors (Sagi)
      
         - Add tpg_enabled_sendtargets attribute for disabled iscsi-target
           discovery (David)
      
         - Shrink target struct se_cmd by rearranging fields (Roland)
      
         - Drop iSCSI use of mutex around max_cmd_sn increment (Roland)
      
         - Replace iSCSI __kernel_sockaddr_storage with sockaddr_storage (Andy +
           Chris)
      
         - Honor fabric max_data_sg_nents I/O transfer limit (Arun + Himanshu +
           nab)
      
         - Fix EXTENDED_COPY >= v4.1 regression OOPsen (Alex + nab)"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: (37 commits)
        target: use stringify.h instead of own definition
        target/user: Fix UFLAG_UNKNOWN_OP handling
        target: Remove no-op conditional
        target/user: Remove unused variable
        target: Fix max_cmd_sn increment w/o cmdsn mutex regressions
        target: Attach EXTENDED_COPY local I/O descriptors to xcopy_pt_sess
        target/qla2xxx: Honor max_data_sg_nents I/O transfer limit
        target/iscsi: Replace __kernel_sockaddr_storage with sockaddr_storage
        target/iscsi: Replace conn->login_ip with login_sockaddr
        target/iscsi: Keep local_ip as the actual sockaddr
        target/iscsi: Fix np_ip bracket issue by removing np_ip
        target: Drop iSCSI use of mutex around max_cmd_sn increment
        qla2xxx: Update tcm_qla2xxx module description to 24xx+
        iscsi-target: Add tpg_enabled_sendtargets for disabled discovery
        drivers: target: Drop unlikely before IS_ERR(_OR_NULL)
        target: check DPO/FUA usage for COMPARE AND WRITE
        target: Shrink struct se_cmd by rearranging fields
        target: Remove cmd->se_ordered_id (unused except debug log lines)
        target: add support for START_STOP_UNIT SCSI opcode
        target: improve unsupported opcode message
        ...
      05c78081
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 8e78b7dc
      Linus Torvalds authored
      Pull second round of SCSI updates from James Bottomley:
       "There's one late arriving patch here (added today), fixing a build
        issue which the scsi_dh patch set in here uncovered.  Other than that,
        everything has been incubated in -next and the checkers for a week.
      
        The major pieces of this patch are a set patches facilitating better
        integration between scsi and scsi_dh (the device handling layer used
        by multi-path; all the dm parts are acked by Mike Snitzer).
      
        This also includes driver updates for mp3sas, scsi_debug and an
        assortment of bug fixes"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (50 commits)
        scsi_dh: fix randconfig build error
        scsi: fix scsi_error_handler vs. scsi_host_dev_release race
        fcoe: Convert use of __constant_htons to htons
        mpt2sas: setpci reset kernel oops fix
        pm80xx: Don't override ts->stat on IO_OPEN_CNX_ERROR_HW_RESOURCE_BUSY
        lpfc: Fix possible use-after-free and double free in lpfc_mbx_cmpl_rdp_page_a2()
        bfa: Fix incorrect de-reference of pointer
        bfa: Fix indentation
        scsi_transport_sas: Remove check for SAS expander when querying bay/enclosure IDs.
        scsi_debug: resp_request: remove unused variable
        scsi_debug: fix REPORT LUNS Well Known LU
        scsi_debug: schedule_resp fix input variable check
        scsi_debug: make dump_sector static
        scsi_debug: vfree is null safe so drop the check
        scsi_debug: use SCSI_W_LUN_REPORT_LUNS instead of SAM2_WLUN_REPORT_LUNS;
        scsi_debug: define pr_fmt() for consistent logging
        mpt2sas: Refcount fw_events and fix unsafe list usage
        mpt2sas: Refcount sas_device objects and fix unsafe list usage
        scsi_dh: return SCSI_DH_NOTCONN in scsi_dh_activate()
        scsi_dh: don't allow to detach device handlers at runtime
        ...
      8e78b7dc
  2. 11 Sep, 2015 33 commits
    • Linus Torvalds's avatar
      Merge tag 'media/v4.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 06a660ad
      Linus Torvalds authored
      Pull media updates from Mauro Carvalho Chehab:
       "A series of patches that move part of the code used to allocate memory
        from the media subsystem to the mm subsystem"
      
      [ The mm parts have been acked by VM people, and the series was
        apparently in -mm for a while   - Linus ]
      
      * tag 'media/v4.3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
        [media] drm/exynos: Convert g2d_userptr_get_dma_addr() to use get_vaddr_frames()
        [media] media: vb2: Remove unused functions
        [media] media: vb2: Convert vb2_dc_get_userptr() to use frame vector
        [media] media: vb2: Convert vb2_vmalloc_get_userptr() to use frame vector
        [media] media: vb2: Convert vb2_dma_sg_get_userptr() to use frame vector
        [media] vb2: Provide helpers for mapping virtual addresses
        [media] media: omap_vout: Convert omap_vout_uservirt_to_phys() to use get_vaddr_pfns()
        [media] mm: Provide new get_vaddr_frames() helper
        [media] vb2: Push mmap_sem down to memops
      06a660ad
    • Linus Torvalds's avatar
      Merge tag 'edac/v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac · d9b44fe3
      Linus Torvalds authored
      Pull edac updates from Mauro Carvalho Chehab:
       "Two EDAC fixes for Intel systems (Haswell and Ivy Bridge)"
      
      * tag 'edac/v4.3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac:
        sb_edac: correctly fetch DIMM width on Ivy Bridge and Haswell
        sb_edac: look harder for DDRIO on Haswell systems
      d9b44fe3
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux · 9ebd051a
      Linus Torvalds authored
      Pull thermal updates from Zhang Rui:
      
       - use int instead of unsigned long to represent temperature to avoid
         bogus overheat detection when negative temperature reported.  From
         Sascha Hauer.
      
       - export available thermal governors information to user space via
         sysfs.  From Wei Ni.
      
       - introduce new thermal driver for Wildcat Point platform controller
         hub, which uses PCH thermal sensor and associated critical and hot
         trip points.  From Tushar Dave.
      
       - add suuport for Intel Skylake and Denlow platforms in powerclamp
         driver.
      
       - some small cleanups in thermal core.
      
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
        thermal: Add Intel PCH thermal driver
        thermal: Add comment explaining test for critical temperature
        thermal: Use IS_ENABLED instead of #ifdef
        thermal: remove unnecessary call to thermal_zone_device_set_polling
        thermal: trivial: fix typo in comment
        thermal: consistently use int for temperatures
        thermal: add available policies sysfs attribute
        thermal/powerclamp: add cpu id for denlow platform
        thermal/powerclamp: add cpu id for Skylake u/y
        thermal/powerclamp: add cpu id for skylake h/s
      9ebd051a
    • Andrew Morton's avatar
      revert "ocfs2/dlm: use list_for_each_entry instead of list_for_each" · e527b22c
      Andrew Morton authored
      Revert commit f83c7b5e ("ocfs2/dlm: use list_for_each_entry instead
      of list_for_each").
      
      list_for_each_entry() will dereference its `pos' argument, which can be
      NULL in dlm_process_recovery_data().
      Reported-by: default avatarJulia Lawall <julia.lawall@lip6.fr>
      Reported-by: default avatarFengguang Wu <fengguang.wu@gmail.com>
      Cc: Joseph Qi <joseph.qi@huawei.com>
      Cc: Mark Fasheh <mfasheh@suse.de>
      Cc: Joel Becker <jlbec@evilplan.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e527b22c
    • Ard Biesheuvel's avatar
      mm/early_ioremap: add explicit #include of asm/early_ioremap.h · 4f1af60b
      Ard Biesheuvel authored
      Commit 6b0f68e3 ("mm: add utility for early copy from unmapped ram")
      introduces a function copy_from_early_mem() into mm/early_ioremap.c
      which itself calls early_memremap()/early_memunmap().  However, since
      early_memunmap() has not been declared yet at this point in the .c file,
      nor by any explicitly included header files, we are depending on a
      transitive include of asm/early_ioremap.h to declare it, which is
      fragile.
      
      So instead, include this header explicitly.
      Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
      Acked-by: default avatarMark Salter <msalter@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      4f1af60b
    • Joe Perches's avatar
      fs/seq_file: convert int seq_vprint/seq_printf/etc... returns to void · 6798a8ca
      Joe Perches authored
      The seq_<foo> function return values were frequently misused.
      
      See: commit 1f33c41c ("seq_file: Rename seq_overflow() to
           seq_has_overflowed() and make public")
      
      All uses of these return values have been removed, so convert the
      return types to void.
      
      Miscellanea:
      
      o Move seq_put_decimal_<type> and seq_escape prototypes closer the
        other seq_vprintf prototypes
      o Reorder seq_putc and seq_puts to return early on overflow
      o Add argument names to seq_vprintf and seq_printf
      o Update the seq_escape kernel-doc
      o Convert a couple of leading spaces to tabs in seq_escape
      Signed-off-by: default avatarJoe Perches <joe@perches.com>
      Cc: Al Viro <viro@ZenIV.linux.org.uk>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Mark Brown <broonie@kernel.org>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      Cc: Joerg Roedel <jroedel@suse.de>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6798a8ca
    • Mathieu Desnoyers's avatar
      selftests: enhance membarrier syscall test · c9946c42
      Mathieu Desnoyers authored
      Update the membarrier syscall self-test to match the membarrier
      interface.  Extend coverage of the interface.  Consider ENOSYS as a
      "SKIP" test, since it is a valid configuration, but does not allow
      testing the system call.
      Signed-off-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Pranith Kumar <bobby.prani@gmail.com>
      Cc: Shuah Khan <shuahkh@osg.samsung.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c9946c42
    • Pranith Kumar's avatar
      selftests: add membarrier syscall test · b6d97344
      Pranith Kumar authored
      Add a self test for the membarrier system call.
      Signed-off-by: default avatarPranith Kumar <bobby.prani@gmail.com>
      Signed-off-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Shuah Khan <shuahkh@osg.samsung.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b6d97344
    • Mathieu Desnoyers's avatar
      sys_membarrier(): system-wide memory barrier (generic, x86) · 5b25b13a
      Mathieu Desnoyers authored
      Here is an implementation of a new system call, sys_membarrier(), which
      executes a memory barrier on all threads running on the system.  It is
      implemented by calling synchronize_sched().  It can be used to
      distribute the cost of user-space memory barriers asymmetrically by
      transforming pairs of memory barriers into pairs consisting of
      sys_membarrier() and a compiler barrier.  For synchronization primitives
      that distinguish between read-side and write-side (e.g.  userspace RCU
      [1], rwlocks), the read-side can be accelerated significantly by moving
      the bulk of the memory barrier overhead to the write-side.
      
      The existing applications of which I am aware that would be improved by
      this system call are as follows:
      
      * Through Userspace RCU library (http://urcu.so)
        - DNS server (Knot DNS) https://www.knot-dns.cz/
        - Network sniffer (http://netsniff-ng.org/)
        - Distributed object storage (https://sheepdog.github.io/sheepdog/)
        - User-space tracing (http://lttng.org)
        - Network storage system (https://www.gluster.org/)
        - Virtual routers (https://events.linuxfoundation.org/sites/events/files/slides/DPDK_RCU_0MQ.pdf)
        - Financial software (https://lkml.org/lkml/2015/3/23/189)
      
      Those projects use RCU in userspace to increase read-side speed and
      scalability compared to locking.  Especially in the case of RCU used by
      libraries, sys_membarrier can speed up the read-side by moving the bulk of
      the memory barrier cost to synchronize_rcu().
      
      * Direct users of sys_membarrier
        - core dotnet garbage collector (https://github.com/dotnet/coreclr/issues/198)
      
      Microsoft core dotnet GC developers are planning to use the mprotect()
      side-effect of issuing memory barriers through IPIs as a way to implement
      Windows FlushProcessWriteBuffers() on Linux.  They are referring to
      sys_membarrier in their github thread, specifically stating that
      sys_membarrier() is what they are looking for.
      
      To explain the benefit of this scheme, let's introduce two example threads:
      
      Thread A (non-frequent, e.g. executing liburcu synchronize_rcu())
      Thread B (frequent, e.g. executing liburcu
      rcu_read_lock()/rcu_read_unlock())
      
      In a scheme where all smp_mb() in thread A are ordering memory accesses
      with respect to smp_mb() present in Thread B, we can change each
      smp_mb() within Thread A into calls to sys_membarrier() and each
      smp_mb() within Thread B into compiler barriers "barrier()".
      
      Before the change, we had, for each smp_mb() pairs:
      
      Thread A                    Thread B
      previous mem accesses       previous mem accesses
      smp_mb()                    smp_mb()
      following mem accesses      following mem accesses
      
      After the change, these pairs become:
      
      Thread A                    Thread B
      prev mem accesses           prev mem accesses
      sys_membarrier()            barrier()
      follow mem accesses         follow mem accesses
      
      As we can see, there are two possible scenarios: either Thread B memory
      accesses do not happen concurrently with Thread A accesses (1), or they
      do (2).
      
      1) Non-concurrent Thread A vs Thread B accesses:
      
      Thread A                    Thread B
      prev mem accesses
      sys_membarrier()
      follow mem accesses
                                  prev mem accesses
                                  barrier()
                                  follow mem accesses
      
      In this case, thread B accesses will be weakly ordered. This is OK,
      because at that point, thread A is not particularly interested in
      ordering them with respect to its own accesses.
      
      2) Concurrent Thread A vs Thread B accesses
      
      Thread A                    Thread B
      prev mem accesses           prev mem accesses
      sys_membarrier()            barrier()
      follow mem accesses         follow mem accesses
      
      In this case, thread B accesses, which are ensured to be in program
      order thanks to the compiler barrier, will be "upgraded" to full
      smp_mb() by synchronize_sched().
      
      * Benchmarks
      
      On Intel Xeon E5405 (8 cores)
      (one thread is calling sys_membarrier, the other 7 threads are busy
      looping)
      
      1000 non-expedited sys_membarrier calls in 33s =3D 33 milliseconds/call.
      
      * User-space user of this system call: Userspace RCU library
      
      Both the signal-based and the sys_membarrier userspace RCU schemes
      permit us to remove the memory barrier from the userspace RCU
      rcu_read_lock() and rcu_read_unlock() primitives, thus significantly
      accelerating them. These memory barriers are replaced by compiler
      barriers on the read-side, and all matching memory barriers on the
      write-side are turned into an invocation of a memory barrier on all
      active threads in the process. By letting the kernel perform this
      synchronization rather than dumbly sending a signal to every process
      threads (as we currently do), we diminish the number of unnecessary wake
      ups and only issue the memory barriers on active threads. Non-running
      threads do not need to execute such barrier anyway, because these are
      implied by the scheduler context switches.
      
      Results in liburcu:
      
      Operations in 10s, 6 readers, 2 writers:
      
      memory barriers in reader:    1701557485 reads, 2202847 writes
      signal-based scheme:          9830061167 reads,    6700 writes
      sys_membarrier:               9952759104 reads,     425 writes
      sys_membarrier (dyn. check):  7970328887 reads,     425 writes
      
      The dynamic sys_membarrier availability check adds some overhead to
      the read-side compared to the signal-based scheme, but besides that,
      sys_membarrier slightly outperforms the signal-based scheme. However,
      this non-expedited sys_membarrier implementation has a much slower grace
      period than signal and memory barrier schemes.
      
      Besides diminishing the number of wake-ups, one major advantage of the
      membarrier system call over the signal-based scheme is that it does not
      need to reserve a signal. This plays much more nicely with libraries,
      and with processes injected into for tracing purposes, for which we
      cannot expect that signals will be unused by the application.
      
      An expedited version of this system call can be added later on to speed
      up the grace period. Its implementation will likely depend on reading
      the cpu_curr()->mm without holding each CPU's rq lock.
      
      This patch adds the system call to x86 and to asm-generic.
      
      [1] http://urcu.so
      
      membarrier(2) man page:
      
      MEMBARRIER(2)              Linux Programmer's Manual             MEMBARRIER(2)
      
      NAME
             membarrier - issue memory barriers on a set of threads
      
      SYNOPSIS
             #include <linux/membarrier.h>
      
             int membarrier(int cmd, int flags);
      
      DESCRIPTION
             The cmd argument is one of the following:
      
             MEMBARRIER_CMD_QUERY
                    Query  the  set  of  supported commands. It returns a bitmask of
                    supported commands.
      
             MEMBARRIER_CMD_SHARED
                    Execute a memory barrier on all threads running on  the  system.
                    Upon  return from system call, the caller thread is ensured that
                    all running threads have passed through a state where all memory
                    accesses  to  user-space  addresses  match program order between
                    entry to and return from the system  call  (non-running  threads
                    are de facto in such a state). This covers threads from all pro=E2=80=90
                    cesses running on the system.  This command returns 0.
      
             The flags argument needs to be 0. For future extensions.
      
             All memory accesses performed  in  program  order  from  each  targeted
             thread is guaranteed to be ordered with respect to sys_membarrier(). If
             we use the semantic "barrier()" to represent a compiler barrier forcing
             memory  accesses  to  be performed in program order across the barrier,
             and smp_mb() to represent explicit memory barriers forcing full  memory
             ordering  across  the barrier, we have the following ordering table for
             each pair of barrier(), sys_membarrier() and smp_mb():
      
             The pair ordering is detailed as (O: ordered, X: not ordered):
      
                                    barrier()   smp_mb() sys_membarrier()
                    barrier()          X           X            O
                    smp_mb()           X           O            O
                    sys_membarrier()   O           O            O
      
      RETURN VALUE
             On success, these system calls return zero.  On error, -1 is  returned,
             and errno is set appropriately. For a given command, with flags
             argument set to 0, this system call is guaranteed to always return the
             same value until reboot.
      
      ERRORS
             ENOSYS System call is not implemented.
      
             EINVAL Invalid arguments.
      
      Linux                             2015-04-15                     MEMBARRIER(2)
      Signed-off-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Reviewed-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Reviewed-by: default avatarJosh Triplett <josh@joshtriplett.org>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Nicholas Miell <nmiell@comcast.net>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Alan Cox <gnomes@lxorguk.ukuu.org.uk>
      Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
      Cc: Stephen Hemminger <stephen@networkplumber.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Pranith Kumar <bobby.prani@gmail.com>
      Cc: Michael Kerrisk <mtk.manpages@gmail.com>
      Cc: Shuah Khan <shuahkh@osg.samsung.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5b25b13a
    • David Howells's avatar
      MODSIGN: fix a compilation warning in extract-cert · 7c0d35a3
      David Howells authored
      Fix the following warning when compiling extract-cert:
      
        scripts/extract-cert.c: In function `write_cert':
        scripts/extract-cert.c:89:2: warning: format not a string literal and no format arguments [-Wformat-security]
          ERR(!i2d_X509_bio(wb, x509), cert_dst);
          ^
      
      whereby the ERR() macro is taking cert_dst as the format string.  "%s"
      should be used as the format string as the path could contain special
      characters.
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Reported-by: default avatarJim Davis <jim.epost@gmail.com>
      Acked-by : David Woodhouse <david.woodhouse@intel.com>
      Cc: James Morris <jmorris@namei.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      7c0d35a3
    • Linus Torvalds's avatar
      Merge git://www.linux-watchdog.org/linux-watchdog · 51a73ba5
      Linus Torvalds authored
      Pull watchdog updates from Wim Van Sebroeck:
       - new driver for NXP LPC18xx Watchdog Timer
       - new driver for SAMA5D4 watchdog timer
       - add support for MCP79 to nv_tco driver
       - clean-up and improvement of the mpc8xxx watchdog driver
       - improvements to gpio-wdt
       - at91sam9_wdt clock improvements
       ... and other small fixes and improvements
      
      * git://www.linux-watchdog.org/linux-watchdog: (25 commits)
        Watchdog: Fix parent of watchdog_devices
        watchdog: at91rm9200: Correct check for syscon_node_to_regmap() errors
        watchdog: at91sam9: get and use slow clock
        Documentation: dt: binding: atmel-sama5d4-wdt: for SAMA5D4 watchdog driver
        watchdog: add a driver to support SAMA5D4 watchdog timer
        watchdog: mpc8xxx: allow to compile for MPC512x
        watchdog: mpc8xxx: use better error code when watchdog cannot be enabled
        watchdog: mpc8xxx: use dynamic memory for device specific data
        watchdog: mpc8xxx: use devm_ioremap_resource to map memory
        watchdog: mpc8xxx: make use of of_device_get_match_data
        watchdog: mpc8xxx: simplify registration
        watchdog: mpc8xxx: remove dead code
        watchdog: lpc18xx_wdt_get_timeleft() can be static
        DT: watchdog: Add NXP LPC18xx Watchdog Timer binding documentation
        watchdog: NXP LPC18xx Watchdog Timer Driver
        watchdog: gpio-wdt: ping already at startup for always running devices
        watchdog: gpio-wdt: be more strict about hw_algo matching
        Documentation: watchdog: at91sam9_wdt: add clocks property
        watchdog: booke_wdt: Use infrastructure to check timeout limits
        watchdog: (nv_tco) add support for MCP79
        ...
      51a73ba5
    • Linus Torvalds's avatar
      Merge branch 'for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · e91eb620
      Linus Torvalds authored
      Pull btrfs cleanups and fixes from Chris Mason:
       "These are small cleanups, and also some fixes for our async worker
        thread initialization.
      
        I was having some trouble testing these, but it ended up being a
        combination of changing around my test servers and a shiny new
        schedule while atomic from the new start/finish_plug in
        writeback_sb_inodes().
      
        That one only hits on btrfs raid5/6 or MD raid10, and if I wasn't
        changing a bunch of things in my test setup at once it would have been
        really clear.  Fix for writeback_sb_inodes() on the way as well"
      
      * 'for-linus-4.3' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        Btrfs: cleanup: remove unnecessary check before btrfs_free_path is called
        btrfs: async_thread: Fix workqueue 'max_active' value when initializing
        btrfs: Add raid56 support for updating  num_tolerated_disk_barrier_failures in btrfs_balance
        btrfs: Cleanup for btrfs_calc_num_tolerated_disk_barrier_failures
        btrfs: Remove noused chunk_tree and chunk_objectid from scrub_enumerate_chunks and scrub_chunk
        btrfs: Update out-of-date "skip parity stripe" comment
      e91eb620
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · e013f74b
      Linus Torvalds authored
      Pull Ceph update from Sage Weil:
       "There are a few fixes for snapshot behavior with CephFS and support
        for the new keepalive protocol from Zheng, a libceph fix that affects
        both RBD and CephFS, a few bug fixes and cleanups for RBD from Ilya,
        and several small fixes and cleanups from Jianpeng and others"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
        ceph: improve readahead for file holes
        ceph: get inode size for each append write
        libceph: check data_len in ->alloc_msg()
        libceph: use keepalive2 to verify the mon session is alive
        rbd: plug rbd_dev->header.object_prefix memory leak
        rbd: fix double free on rbd_dev->header_name
        libceph: set 'exists' flag for newly up osd
        ceph: cleanup use of ceph_msg_get
        ceph: no need to get parent inode in ceph_open
        ceph: remove the useless judgement
        ceph: remove redundant test of head->safe and silence static analysis warnings
        ceph: fix queuing inode to mdsdir's snaprealm
        libceph: rename con_work() to ceph_con_workfn()
        libceph: Avoid holding the zero page on ceph_msgr_slab_init errors
        libceph: remove the unused macro AES_KEY_SIZE
        ceph: invalidate dirty pages after forced umount
        ceph: EIO all operations after forced umount
      e013f74b
    • Linus Torvalds's avatar
      Merge tag 'gfs2-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 01cab554
      Linus Torvalds authored
      Pull GFS2 updates from Bob Peterson:
       "Here is a list of patches we've accumulated for GFS2 for the current
        upstream merge window.  This time we've only got six patches, many of
        which are very small:
      
         - three cleanups from Andreas Gruenbacher, including a nice cleanup
           of the sequence file code for the sbstats debugfs file.
      
         - a patch from Ben Hutchings that changes statistics variables from
           signed to unsigned.
      
         - two patches from me that increase GFS2's glock scalability by
           switching from a conventional hash table to rhashtable"
      
      * tag 'gfs2-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: A minor "sbstats" cleanup
        gfs2: Fix a typo in a comment
        gfs2: Make statistics unsigned, suitable for use with do_div()
        GFS2: Use resizable hash table for glocks
        GFS2: Move glock superblock pointer to field gl_name
        gfs2: Simplify the seq file code for "sbstats"
      01cab554
    • Christoph Hellwig's avatar
      scsi_dh: fix randconfig build error · 294ab783
      Christoph Hellwig authored
      It looks like the Kconfig check that was meant to fix this (commit
      fe9233fb [SCSI] scsi_dh: fix kconfig related
      build errors) was actually reversed, but no-one noticed until the new set of
      patches which separated DM and SCSI_DH).
      
      Fixes: fe9233fbSigned-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Tested-by: default avatarMike Snitzer <snitzer@redhat.com>
      Signed-off-by: default avatarJames Bottomley <JBottomley@Odin.com>
      294ab783
    • Linus Torvalds's avatar
      Merge tag 'sound-fix-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 64d1def7
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A collection of small fixes since the last update: the HD-audio quirks
        as usual with a USB-audio fix and a trivial fix for the old sparc
        driver"
      
      * tag 'sound-fix-4.3-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: usb-audio: Change internal PCM order
        ALSA: hda - Fix white noise on Dell M3800
        ALSA: hda - Use ALC880_FIXUP_FUJITSU for FSC Amilo M1437
        ALSA: hda - Enable headphone jack detect on old Fujitsu laptops
        ALSA: sparc: amd7930: Fix module autoload for OF platform driver
        ALSA: hda - Add some FIXUP quirks for white noise on Dell laptop.
      64d1def7
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 04d78e39
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Just a bunch of fixes to squeeze in before -rc1:
      
         - three nouveau regression fixes
      
         - one qxl regression fix
      
         - a bunch of i915 fixes
      
        ... and some core displayport/atomic fixes"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/nouveau/device: enable c800 quirk for tecra w50
        drm/nouveau/clk/gt215: Unbreak engine pausing for GT21x/MCP7x
        drm/nouveau/gr/nv04: fix big endian setting on gr context
        drm/qxl: validate monitors config modes
        drm/i915: Allow DSI dual link to be configured on any pipe
        drm/i915: Don't try to use DDR DVFS on CHV when disabled in the BIOS
        drm/i915: Fix CSR MMIO address check
        drm/i915: Limit the number of loops for reading a split 64bit register
        drm/i915: Fix broken mst get_hw_state.
        drm/i915: Pass hpd_status_i915[] to intel_get_hpd_pins() in pre-g4x
        uapi/drm/i915_drm.h: fix userspace compilation.
        drm/i915: Always mark the object as dirty when used by the GPU
        drm/dp: Add dp_aux_i2c_speed_khz module param to set the assume i2c bus speed
        drm/dp: Adjust i2c-over-aux retry count based on message size and i2c bus speed
        drm/dp: Define AUX_RETRY_INTERVAL as 500 us
        drm/atomic: Fix bookkeeping with TEST_ONLY, v3.
      04d78e39
    • Dmitry Torokhov's avatar
      Merge branch 'next' into for-linus · 53431d0a
      Dmitry Torokhov authored
      Prepare second round of input updates for 4.3 merge window.
      53431d0a
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-cpu', 'pm-cpuidle' and 'pm-domains' · 4614e0cc
      Rafael J. Wysocki authored
      * pm-cpu:
        kernel/cpu_pm: fix cpu_cluster_pm_exit comment
      
      * pm-cpuidle:
        cpuidle/coupled: Add sanity check for safe_state_index
      
      * pm-domains:
        staging: board: Migrate away from __pm_genpd_name_add_device()
        PM / Domains: Ensure subdomain is not in use before removing
        PM / Domains: Try power off masters in error path of __pm_genpd_poweron()
      4614e0cc
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-cpufreq' · 3e66c4b8
      Rafael J. Wysocki authored
      * pm-cpufreq:
        intel_pstate: fix PCT_TO_HWP macro
        intel_pstate: Fix user input of min/max to legal policy region
        cpufreq-dt: add suspend frequency support
        cpufreq: allow cpufreq_generic_suspend() to work without suspend frequency
        cpufreq: Use __func__ to print function's name
        cpufreq: staticize cpufreq_cpu_get_raw()
        cpufreq: Add ARM_MT8173_CPUFREQ dependency on THERMAL
        cpufreq: dt: Tolerance applies on both sides of target voltage
        cpufreq: dt: Print error on failing to mark OPPs as shared
        cpufreq: dt: Check OPP count before marking them shared
      3e66c4b8
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-opp' · 7c976664
      Rafael J. Wysocki authored
      * pm-opp:
        PM / OPP: Return suspend_opp only if it is enabled
        PM / OPP: add dev_pm_opp_get_suspend_opp() helper
      7c976664
    • David Disseldorp's avatar
    • Andy Grover's avatar
      target/user: Fix UFLAG_UNKNOWN_OP handling · ed97d0cd
      Andy Grover authored
      Calling transport_generic_request_failure() from here causes list
      corruption. We should be using target_complete_cmd() instead.
      
      Which we do in all other cases, so the UNKNOWN_OP case can become just
      another member of the big else/if chain in tcmu_handle_completion().
      Signed-off-by: default avatarAndy Grover <agrover@redhat.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      ed97d0cd
    • Andy Grover's avatar
      target: Remove no-op conditional · 06b967e4
      Andy Grover authored
      This does nothing, and there are many other places where
      transport_cmd_check_stop_to_fabric()'s retval is not checked>, If we
      wanted to check it here, we should probably do it those other places too.
      Signed-off-by: default avatarAndy Grover <agrover@redhat.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      06b967e4
    • Andy Grover's avatar
      target/user: Remove unused variable · 4824640e
      Andy Grover authored
      We don't use it any more.
      Signed-off-by: default avatarAndy Grover <agrover@redhat.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      4824640e
    • Roland Dreier's avatar
      target: Fix max_cmd_sn increment w/o cmdsn mutex regressions · 7dd03aca
      Roland Dreier authored
      Current for-next iscsi target is broken:
      
      commit 109e2381
      Author: Roland Dreier <roland@purestorage.com>
      Date:   Thu Jul 23 14:53:32 2015 -0700
      
          target: Drop iSCSI use of mutex around max_cmd_sn increment
      
      This patch fixes incorrect pr_debug() + atomic_inc_return() usage
      within iscsit_increment_maxcmdsn() code.
      
      Also fix funny iscsit_determine_maxcmdsn() usage and update
      iscsi_target_do_tx_login_io() code.
      Reported-by: default avatarSagi Grimberg <sagig@mellanox.com>
      Cc: Sagi Grimberg <sagig@mellanox.com>
      Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
      Cc: Roland Dreier <roland@purestorage.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      7dd03aca
    • Nicholas Bellinger's avatar
      target: Attach EXTENDED_COPY local I/O descriptors to xcopy_pt_sess · 4416f89b
      Nicholas Bellinger authored
      This patch is a >= v4.1 regression bug-fix where control CDB
      emulation logic in commit 38b57f82 now expects a se_cmd->se_sess
      pointer to exist when determining T10-PI support is to be exposed
      for initiator host ports.
      
      To address this bug, go ahead and add locally generated se_cmd
      descriptors for copy-offload block-copy to it's own stand-alone
      se_session nexus, while the parent EXTENDED_COPY se_cmd descriptor
      remains associated with it's originating se_cmd->se_sess nexus.
      
      Note a valid se_cmd->se_sess is also required for future support
      of WRITE_INSERT and READ_STRIP software emulation when submitting
      backend I/O to se_device that exposes T10-PI suport.
      Reported-by: default avatarAlex Gorbachev <ag@iss-integration.com>
      Tested-by: default avatarAlex Gorbachev <ag@iss-integration.com>
      Cc: "Martin K. Petersen" <martin.petersen@oracle.com>
      Cc: Hannes Reinecke <hare@suse.de>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Doug Gilbert <dgilbert@interlog.com>
      Cc: <stable@vger.kernel.org> # v4.1+
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      4416f89b
    • Nicholas Bellinger's avatar
      target/qla2xxx: Honor max_data_sg_nents I/O transfer limit · 8f9b5654
      Nicholas Bellinger authored
      This patch adds an optional fabric driver provided SGL limit
      that target-core will honor as it's own internal I/O maximum
      transfer length limit, as exposed by EVPD=0xb0 block limits
      parameters.
      
      This is required for handling cases when host I/O transfer
      length exceeds the requested EVPD block limits maximum
      transfer length. The initial user of this logic is qla2xxx,
      so that we can avoid having to reject I/Os from some legacy
      FC hosts where EVPD=0xb0 parameters are not honored.
      
      When se_cmd payload length exceeds the provided limit in
      target_check_max_data_sg_nents() code, se_cmd->data_length +
      se_cmd->prot_length are reset with se_cmd->residual_count
      plus underflow bit for outgoing TFO response callbacks.
      It also checks for existing CDB level underflow + overflow
      and recalculates final residual_count as necessary.
      
      Note this patch currently assumes 1:1 mapping of PAGE_SIZE
      per struct scatterlist entry.
      Reported-by: default avatarCraig Watson <craig.watson@vanguard-rugged.com>
      Cc: Craig Watson <craig.watson@vanguard-rugged.com>
      Tested-by: default avatarHimanshu Madhani <himanshu.madhani@qlogic.com>
      Cc: Roland Dreier <roland@purestorage.com>
      Cc: Arun Easi <arun.easi@qlogic.com>
      Cc: Giridhar Malavali <giridhar.malavali@qlogic.com>
      Cc: Andrew Vasquez <andrew.vasquez@qlogic.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Hannes Reinecke <hare@suse.de>
      Cc: Martin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
      8f9b5654
    • Dave Airlie's avatar
      Merge branch 'linux-4.3' of git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-next · 9fbcc7c0
      Dave Airlie authored
      three nouveau regression fixes.
      * 'linux-4.3' of git://anongit.freedesktop.org/git/nouveau/linux-2.6:
        drm/nouveau/device: enable c800 quirk for tecra w50
        drm/nouveau/clk/gt215: Unbreak engine pausing for GT21x/MCP7x
        drm/nouveau/gr/nv04: fix big endian setting on gr context
      9fbcc7c0
    • Linus Torvalds's avatar
      Merge branch 'for-4.3/blkcg' of git://git.kernel.dk/linux-block · b0a1ea51
      Linus Torvalds authored
      Pull blk-cg updates from Jens Axboe:
       "A bit later in the cycle, but this has been in the block tree for a a
        while.  This is basically four patchsets from Tejun, that improve our
        buffered cgroup writeback.  It was dependent on the other cgroup
        changes, but they went in earlier in this cycle.
      
        Series 1 is set of 5 patches that has cgroup writeback updates:
      
         - bdi_writeback iteration fix which could lead to some wb's being
           skipped or repeated during e.g. sync under memory pressure.
      
         - Simplification of wb work wait mechanism.
      
         - Writeback tracepoints updated to report cgroup.
      
        Series 2 is is a set of updates for the CFQ cgroup writeback handling:
      
           cfq has always charged all async IOs to the root cgroup.  It didn't
           have much choice as writeback didn't know about cgroups and there
           was no way to tell who to blame for a given writeback IO.
           writeback finally grew support for cgroups and now tags each
           writeback IO with the appropriate cgroup to charge it against.
      
           This patchset updates cfq so that it follows the blkcg each bio is
           tagged with.  Async cfq_queues are now shared across cfq_group,
           which is per-cgroup, instead of per-request_queue cfq_data.  This
           makes all IOs follow the weight based IO resource distribution
           implemented by cfq.
      
           - Switched from GFP_ATOMIC to GFP_NOWAIT as suggested by Jeff.
      
           - Other misc review points addressed, acks added and rebased.
      
        Series 3 is the blkcg policy cleanup patches:
      
           This patchset contains assorted cleanups for blkcg_policy methods
           and blk[c]g_policy_data handling.
      
           - alloc/free added for blkg_policy_data.  exit dropped.
      
           - alloc/free added for blkcg_policy_data.
      
           - blk-throttle's async percpu allocation is replaced with direct
             allocation.
      
           - all methods now take blk[c]g_policy_data instead of blkcg_gq or
             blkcg.
      
        And finally, series 4 is a set of patches cleaning up the blkcg stats
        handling:
      
          blkcg's stats have always been somwhat of a mess.  This patchset
          tries to improve the situation a bit.
      
           - The following patches added to consolidate blkcg entry point and
             blkg creation.  This is in itself is an improvement and helps
             colllecting common stats on bio issue.
      
           - per-blkg stats now accounted on bio issue rather than request
             completion so that bio based and request based drivers can behave
             the same way.  The issue was spotted by Vivek.
      
           - cfq-iosched implements custom recursive stats and blk-throttle
             implements custom per-cpu stats.  This patchset make blkcg core
             support both by default.
      
           - cfq-iosched and blk-throttle keep track of the same stats
             multiple times.  Unify them"
      
      * 'for-4.3/blkcg' of git://git.kernel.dk/linux-block: (45 commits)
        blkcg: use CGROUP_WEIGHT_* scale for io.weight on the unified hierarchy
        blkcg: s/CFQ_WEIGHT_*/CFQ_WEIGHT_LEGACY_*/
        blkcg: implement interface for the unified hierarchy
        blkcg: misc preparations for unified hierarchy interface
        blkcg: separate out tg_conf_updated() from tg_set_conf()
        blkcg: move body parsing from blkg_conf_prep() to its callers
        blkcg: mark existing cftypes as legacy
        blkcg: rename subsystem name from blkio to io
        blkcg: refine error codes returned during blkcg configuration
        blkcg: remove unnecessary NULL checks from __cfqg_set_weight_device()
        blkcg: reduce stack usage of blkg_rwstat_recursive_sum()
        blkcg: remove cfqg_stats->sectors
        blkcg: move io_service_bytes and io_serviced stats into blkcg_gq
        blkcg: make blkg_[rw]stat_recursive_sum() to be able to index into blkcg_gq
        blkcg: make blkcg_[rw]stat per-cpu
        blkcg: add blkg_[rw]stat->aux_cnt and replace cfq_group->dead_stats with it
        blkcg: consolidate blkg creation in blkcg_bio_issue_check()
        blk-throttle: improve queue bypass handling
        blkcg: move root blkg lookup optimization from throtl_lookup_tg() to __blkg_lookup()
        blkcg: inline [__]blkg_lookup()
        ...
      b0a1ea51
    • Ben Skeggs's avatar
      778613e5
    • Roy Spliet's avatar
      drm/nouveau/clk/gt215: Unbreak engine pausing for GT21x/MCP7x · c5bf4609
      Roy Spliet authored
      Typo that snuck in with commit 6979c630Signed-off-by: default avatarRoy Spliet <rspliet@eclipso.eu>
      Reported-by: default avatarPierre Moreau <pierre.morrow@free.fr>
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      c5bf4609
    • Ilia Mirkin's avatar
      drm/nouveau/gr/nv04: fix big endian setting on gr context · 15ee0058
      Ilia Mirkin authored
      Broken since "gr: convert user classes to new-style nvkm_object"
      
      Tested on a PPC64 G5 + NV34
      Signed-off-by: default avatarIlia Mirkin <imirkin@alum.mit.edu>
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      15ee0058