1. 18 Sep, 2015 20 commits
  2. 17 Sep, 2015 18 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · 8e64a733
      Linus Torvalds authored
      Pull Ceph fixes from Sage Weil:
       "These are both fixes to the new and improved keepalive2 behavior"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
        libceph: advertise support for keepalive2
        libceph: don't access invalid memory in keepalive2 path
      8e64a733
    • Linus Torvalds's avatar
      Merge tag 'for-v4.3-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · 2e5735f4
      Linus Torvalds authored
      Pull power supply fixes from Sebastian Reichel:
       "twl4030-charger fixes"
      
      * tag 'for-v4.3-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply:
        twl4030_charger: fix another compile error
        Revert "twl4030_charger: correctly handle -EPROBE_DEFER from devm_usb_get_phy_by_node"
      2e5735f4
    • Peter Senna Tschudin's avatar
      perf tools: Bool functions shouldn't return -1 · bf644563
      Peter Senna Tschudin authored
      Returning a negative value for a boolean function seem to have the
      undesired effect of returning true. Replace -1 by false in a
      bool-returning function.
      
      The diff of the .s file before and after the change (for x86_64):
      
        3907c3907
        < 	movl	$1, %ebx
        ---
        > 	xorl	%ebx, %ebx
      
      while if -1 is replaced by true, the diff is empty.
      
      This issue was found by the following Coccinelle semantic patch:
      
        <smpl>
        @@
        identifier f;
        constant C;
        typedef bool;
        @@
        bool f (...){
        <+...
        * return -C;
        ...+>
        }
        </smpl>
      Signed-off-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@intel.com>
      Cc: Matt Fleming <matt.fleming@intel.com>
      Cc: Milos Vyletel <milos@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Link: http://lkml.kernel.org/r/1442484533-19742-1-git-send-email-peter.senna@gmail.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      bf644563
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · d109c4bb
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "This addresses some problems with filesystem writeback due to the
        recently merged hardware DBM patches, which caused us to treat some
        read-only pages as dirty.
      
        There are also some other, less significant fixes that are described
        in the summary below:
      
        A mixture of fixes for regressions introduced during the merge window,
        some longer standing problems that we spotted and a couple of hardware
        errata.  The main changes are:
      
         - Fix fallout from the h/w DBM patches, causing filesystem writeback
           issues on both v8 and v8.1 CPUs
      
         - Workaround for Cortex-A53 erratum #843419 in the module loader
      
         - Fix for long-standing issue with compat big-endian signal handlers
           using the saved floating point state"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: errata: add module build workaround for erratum #843419
        arm64: compat: fix vfp save/restore across signal handlers in big-endian
        arm64: cpu hotplug: ensure we mask out CPU_TASKS_FROZEN in notifiers
        arm64: head.S: initialise mdcr_el2 in el2_setup
        arm64: enable generic idle loop
        arm64: pgtable: use a single bit for PTE_WRITE regardless of DBM
        arm64: Fix pte_modify() to preserve the hardware dirty information
        arm64: Fix the pte_hw_dirty() check when AF/DBM is enabled
        arm64: dma-mapping: check whether cma area is initialized or not
      d109c4bb
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 42dc2a30
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       - misc fixes all around the map
       - block non-root vm86(old) if mmap_min_addr != 0
       - two small debuggability improvements
       - removal of obsolete paravirt op
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/platform: Fix Geode LX timekeeping in the generic x86 build
        x86/apic: Serialize LVTT and TSC_DEADLINE writes
        x86/ioapic: Force affinity setting in setup_ioapic_dest()
        x86/paravirt: Remove the unused pv_time_ops::get_tsc_khz method
        x86/ldt: Fix small LDT allocation for Xen
        x86/vm86: Fix the misleading CONFIG_VM86 Kconfig help text
        x86/cpu: Print family/model/stepping in hex
        x86/vm86: Block non-root vm86(old) if mmap_min_addr != 0
        x86/alternatives: Make optimize_nops() interrupt safe and synced
        x86/mm/srat: Print non-volatile flag in SRAT
        x86/cpufeatures: Enable cpuid for Intel SHA extensions
      42dc2a30
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1345df21
      Linus Torvalds authored
      Pull timer fixes from Ingo Molnar:
       "A fix for an abs()/abs64() bug that caused too slow NTP convergence on
        32-bit kernels, plus a removal of an obsolete clockevents driver
        facility after all users got converted during the merge window"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        clockevents: Remove unused set_mode() callback
        time: Fix timekeeping_freqadjust()'s incorrect use of abs() instead of abs64()
      1345df21
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c2ea72fd
      Linus Torvalds authored
      Pull scheduler fixes from Ingo Molnar:
       "A migrate_tasks() locking fix, and a late-coming nohz change plus a
        nohz debug check"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched: 'Annotate' migrate_tasks()
        nohz: Assert existing housekeepers when nohz full enabled
        nohz: Affine unpinned timers to housekeepers
      c2ea72fd
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a706797f
      Linus Torvalds authored
      Pull perf fixes from Ingo MOlnar:
       "Mostly tooling fixes, but also two x86 PMU driver fixes"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf tests: Fix software clock events test setting maps
        perf tests: Fix task exit test setting maps
        perf evlist: Fix create_syswide_maps() not propagating maps
        perf evlist: Fix add() not propagating maps
        perf evlist: Factor out a function to propagate maps for a single evsel
        perf evlist: Make create_maps() use set_maps()
        perf evlist: Make set_maps() more resilient
        perf evsel: Add own_cpus member
        perf evlist: Fix missing thread_map__put in propagate_maps()
        perf evlist: Fix splice_list_tail() not setting evlist
        perf evlist: Add has_user_cpus member
        perf evlist: Remove redundant validation from propagate_maps()
        perf evlist: Simplify set_maps() logic
        perf evlist: Simplify propagate_maps() logic
        perf top: Fix segfault pressing -> with no hist entries
        perf header: Fixup reading of HEADER_NRCPUS feature
        perf/x86/intel: Fix constraint access
        perf/x86/intel/bts: Set event->hw.itrace_started in pmu::start to match the new logic
        perf tools: Fix use of wrong event when processing exit events
        perf tools: Fix parse_events_add_pmu caller
      a706797f
    • Ilya Dryomov's avatar
      libceph: advertise support for keepalive2 · 335c2585
      Ilya Dryomov authored
      We are the client, but advertise keepalive2 anyway - for consistency,
      if nothing else.  In the future the server might want to know whether
      its clients support keepalive2.
      Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
      Reviewed-by: default avatarYan, Zheng <zyan@redhat.com>
      335c2585
    • Ilya Dryomov's avatar
      libceph: don't access invalid memory in keepalive2 path · 7f61f545
      Ilya Dryomov authored
      This
      
          struct ceph_timespec ceph_ts;
          ...
          con_out_kvec_add(con, sizeof(ceph_ts), &ceph_ts);
      
      wraps ceph_ts into a kvec and adds it to con->out_kvec array, yet
      ceph_ts becomes invalid on return from prepare_write_keepalive().  As
      a result, we send out bogus keepalive2 stamps.  Fix this by encoding
      into a ceph_timespec member, similar to how acks are read and written.
      Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
      Reviewed-by: default avatarYan, Zheng <zyan@redhat.com>
      7f61f545
    • Arnaldo Carvalho de Melo's avatar
      tools build: Add test for presence of __get_cpuid() gcc builtin · b0063dbf
      Arnaldo Carvalho de Melo authored
      The auxtrace code needed by Intel PT uses the __get_cpuid() gcc builtin,
      that is not present in old systems, breaking the build.
      
      Add a test to check for that builtin and disable AUXTRACE in those
      systems.
      
        [acme@rhel5 linux]$  make NO_LIBPERL=1 -C tools/perf O=/tmp/build/perf install-bin
        make: Entering directory `/home/acme/git/linux/tools/perf'
          BUILD:   Doing 'make -j2' parallel build
      
        Auto-detecting system features:
        <SNIP>
        ...                          lzma: [ on  ]
        ...                     get_cpuid: [ OFF ]
        <SNIP>
        config/Makefile:630: Your gcc lacks the __get_cpuid() builtin, disables support for auxtrace/Intel PT, please install a newer gcc
          MKDIR    /tmp/build/perf/util/
        <SNIP>
      
      This fixes the build on old systems such as RHEL/CentOS 5.11.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Victor Kamensky <victor.kamensky@linaro.org>
      Cc: Vinson Lee <vlee@twopensource.com>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-d4puslul0jltoodzpx9r4sje@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      b0063dbf
    • Arnaldo Carvalho de Melo's avatar
      tools build: Add test for presence of numa_num_possible_cpus() in libnuma · f8ac8606
      Arnaldo Carvalho de Melo authored
      The existing numa test checks only if numa.h and numa_available() are
      present, but that can be satisfied with an old libnuma that is not
      enough for the 'perf bench numa' entry, so add a test to check for that:
      
        [acme@rhel5 linux]$  make NO_AUXTRACE=1 NO_LIBPERL=1 -C tools/perf O=/tmp/build/perf install-bin
        make: Entering directory `/home/acme/git/linux/tools/perf'
          BUILD:   Doing 'make -j2' parallel build
      
        Auto-detecting system features:
        ...                        libelf: [ on  ]
        ...                       libnuma: [ on  ]
        ...        numa_num_possible_cpus: [ OFF ]
        ...                       libperl: [ on  ]
      
        <SNIP>
        config/Makefile:577: Old numa library found, disables 'perf bench numa mem' benchmark, please install numactl-devel/libnuma-devel/libnuma-dev >= 2.0.8
          INSTALL  binaries
        <SNIP>
      
      This fixes the build on old systems such as RHEL/CentOS 5.11.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Victor Kamensky <victor.kamensky@linaro.org>
      Cc: Vinson Lee <vlee@twopensource.com>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-zqriqkezppi2de2iyjin1tnc@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      f8ac8606
    • Arnaldo Carvalho de Melo's avatar
      Revert "perf symbols: Fix mismatched declarations for elf_getphdrnum" · 179f36dd
      Arnaldo Carvalho de Melo authored
      This reverts commit f785f235.
      
      We have a test to check if elf_getphdrnum() is present, so, if it fails,
      we'll get:
      
        [acme@rhel5 linux]$ cat /tmp/build/perf/feature/test-libelf-getphdrnum.make.output
        cc1: warnings being treated as errors
        test-libelf-getphdrnum.c: In function ‘main’:
        test-libelf-getphdrnum.c:7: warning: implicit declaration of function ‘elf_getphdrnum’
        [acme@rhel5 linux]$
      
      And this block will not be compiled:
      
        #ifndef HAVE_ELF_GETPHDRNUM_SUPPORT
        static int elf_getphdrnum(Elf *elf, size_t *dst)
        ...
        #endif
      
      So, if elf_getphdrnum() is being defined somewhere, there is a problem
      with the test that is not detecting that function, go fix it.
      Reported-by: default avatarVinson Lee <vlee@twopensource.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: "Naveen N. Rao" <naveen.n.rao@linux.vnet.ibm.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
      Cc: Stephane Eranian <eranian@google.com>
      Cc: Victor Kamensky <victor.kamensky@linaro.org>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: http://lkml.kernel.org/n/tip-qn459fal6acvcvm50i8zxx9k@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      179f36dd
    • Linus Torvalds's avatar
      Merge branch 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9786cff3
      Linus Torvalds authored
      Pull locking fixes from Ingo Molnar:
       "Spinlock performance regression fix, plus documentation fixes"
      
      * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        locking/static_keys: Fix up the static keys documentation
        locking/qspinlock/x86: Only emit the test-and-set fallback when building guest support
        locking/qspinlock/x86: Fix performance regression under unaccelerated VMs
        locking/static_keys: Fix a silly typo
      9786cff3
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1b3dfde3
      Linus Torvalds authored
      Pull RCU fix from Ingo Molnar:
       "Fix a false positive warning"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        security/device_cgroup: Fix RCU_LOCKDEP_WARN() condition
      1b3dfde3
    • Will Deacon's avatar
      arm64: errata: add module build workaround for erratum #843419 · df057cc7
      Will Deacon authored
      Cortex-A53 processors <= r0p4 are affected by erratum #843419 which can
      lead to a memory access using an incorrect address in certain sequences
      headed by an ADRP instruction.
      
      There is a linker fix to generate veneers for ADRP instructions, but
      this doesn't work for kernel modules which are built as unlinked ELF
      objects.
      
      This patch adds a new config option for the erratum which, when enabled,
      builds kernel modules with the mcmodel=large flag. This uses absolute
      addressing for all kernel symbols, thereby removing the use of ADRP as
      a PC-relative form of addressing. The ADRP relocs are removed from the
      module loader so that we fail to load any potentially affected modules.
      
      Cc: <stable@vger.kernel.org>
      Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      df057cc7
    • Will Deacon's avatar
      arm64: compat: fix vfp save/restore across signal handlers in big-endian · bdec97a8
      Will Deacon authored
      When saving/restoring the VFP registers from a compat (AArch32)
      signal frame, we rely on the compat registers forming a prefix of the
      native register file and therefore make use of copy_{to,from}_user to
      transfer between the native fpsimd_state and the compat_vfp_sigframe.
      
      Unfortunately, this doesn't work so well in a big-endian environment.
      Our fpsimd save/restore code operates directly on 128-bit quantities
      (Q registers) whereas the compat_vfp_sigframe represents the registers
      as an array of 64-bit (D) registers. The architecture packs the compat D
      registers into the Q registers, with the least significant bytes holding
      the lower register. Consequently, we need to swap the 64-bit halves when
      converting between these two representations on a big-endian machine.
      
      This patch replaces the __copy_{to,from}_user invocations in our
      compat VFP signal handling code with explicit __put_user loops that
      operate on 64-bit values and swap them accordingly.
      
      Cc: <stable@vger.kernel.org>
      Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      bdec97a8
    • Will Deacon's avatar
      arm64: cpu hotplug: ensure we mask out CPU_TASKS_FROZEN in notifiers · e56d82a1
      Will Deacon authored
      We have a couple of CPU hotplug notifiers for resetting the CPU debug
      state to a sane value when a CPU comes online.
      
      This patch ensures that we mask out CPU_TASKS_FROZEN so that we don't
      miss any online events occuring due to suspend/resume.
      Acked-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      e56d82a1
  3. 16 Sep, 2015 2 commits
    • Stephane Eranian's avatar
      perf stat: Fix per-pkg event reporting bug · 02d8dabc
      Stephane Eranian authored
      Per-pkg events need to be captured once per processor socket. The code
      in check_per_pkg() ensures only one value per processor package is used.
      However there is a problem with this function in case the first CPU of
      the package does not measure anything for the per-pkg event, but other
      CPUs do.
      
      Consider the following:
      
        $ create cgroup FOO; echo $$ >FOO/tasks; taskset -c 1 noploop &
        $ perf stat -a -I 1000 -e intel_cqm/llc_occupancy/ -G FOO sleep 100
          1.00000 <not counted> Bytes intel_cqm/llc_occupancy/  FOO
      
      The reason for this is that CPU0 in the cgroup has nothing running on it.
      Yet check_per_plg() will mark socket0 as processed and no other event
      value will be considered for the socket.
      
      This patch fixes the problem by having check_per_pkg() only consider
      events which actually ran.
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Kan Liang <kan.liang@intel.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/1441286620-10117-1-git-send-email-eranian@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      02d8dabc
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma · 72714841
      Linus Torvalds authored
      Pull rdma driver move from Doug Ledford:
       "This is a move only, no functional changes.
      
        I tried to get it in prior to the rc1 release, but we were waiting on
        IBM to get back to us that they were OK with the deprecation and
        eventual removal of this driver.  That OK didn't materialize until
        last week, so integration and testing time pushed us beyond the rc1
        release.
      
        Summary:
      
         - Move ehca driver to staging/rdma and schedule for deletion"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma:
        IB/ehca: Deprecate driver, move to staging, schedule deletion
      72714841