1. 21 Nov, 2014 5 commits
  2. 20 Nov, 2014 1 commit
  3. 18 Nov, 2014 3 commits
  4. 17 Nov, 2014 1 commit
  5. 16 Nov, 2014 20 commits
    • Linus Torvalds's avatar
      Linux 3.18-rc5 · fc14f9c1
      Linus Torvalds authored
      fc14f9c1
    • Linus Torvalds's avatar
      Merge tag 'armsoc-for-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · e35c5a27
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "Another small set of fixes:
      
         - some DT compatible typo fixes
         - irq setup fix dealing with irq storms on orion
         - i2c quirk generalization for mvebu
         - a handful of smaller fixes for OMAP
         - a couple of added file patterns for OMAP entries in MAINTAINERS"
      
      * tag 'armsoc-for-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: at91/dt: Fix sama5d3x typos
        pinctrl: dra: dt-bindings: Fix output pull up/down
        MAINTAINERS: Update entry for omap related .dts files to cover new SoCs
        MAINTAINERS: add more files under OMAP SUPPORT
        ARM: dts: AM437x-SK-EVM: Fix DCDC3 voltage
        ARM: dts: AM437x-GP-EVM: Fix DCDC3 voltage
        ARM: dts: AM43x-EPOS-EVM: Fix DCDC3 voltage
        ARM: dts: am335x-evm: Fix 5th NAND partition's name
        ARM: orion: Fix for certain sequence of request_irq can cause irq storm
        ARM: mvebu: armada xp: Generalize use of i2c quirk
      e35c5a27
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · 435e46f5
      Linus Torvalds authored
      Pull sparc fixes from David Miller:
      
       1) Fix NULL oops in Schizo PCI controller error handler.
      
       2) Fix race between xchg and other operations on 32-bit sparc, from
          Andreas Larsson.
      
       3) swab*() helpers need a dummy memory input operand to show data flow
          on 64-bit sparc.
      
       4) Fix RCU warnings due to missing irq_{enter,exit}() around
          generic_smp_call_function*() calls.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        sparc64: Fix constraints on swab helpers.
        sparc32: Implement xchg and atomic_xchg using ATOMIC_HASH locks
        sparc64: Do irq_{enter,exit}() around generic_smp_call_function*().
        sparc64: Fix crashes in schizo_pcierr_intr_other().
      435e46f5
    • Linus Torvalds's avatar
      Merge tag 'md/3.18-fix' of git://neil.brown.name/md · 0fbae136
      Linus Torvalds authored
      Pull md bugfix from Neil Brown:
       "One fix for md for 3.18.
      
        This fixes a regression introduced in 3.13"
      
      * tag 'md/3.18-fix' of git://neil.brown.name/md:
        md: Always set RECOVERY_NEEDED when clearing RECOVERY_FROZEN
      0fbae136
    • Peter Rosin's avatar
      ARM: at91/dt: Fix sama5d3x typos · e899dbaf
      Peter Rosin authored
      Some DT files had a typo with a missing "5" in sama5d3x first compatible string.
      Signed-off-by: default avatarPeter Rosin <peda@axentia.se>
      [nicolas.ferre@atmel.com: modify commit log]
      Signed-off-by: default avatarNicolas Ferre <nicolas.ferre@atmel.com>
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      e899dbaf
    • Olof Johansson's avatar
      Merge tag 'omap-fixes-against-v3.18-rc4' of... · f7efdad0
      Olof Johansson authored
      Merge tag 'omap-fixes-against-v3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
      
      Merge "omap fixes against v3.18-rc4" from Tony Lindgren:
      
      Few omap fixes for hangs and wrong pinctrl defines, and update
      MAINTAINERS file to avoid missing PMIC and SoC related patches:
      
      - Fix random hangs on am437x because of incorrect default
        value for the DDR regulator
      
      - Fix wrong partition name for NAND on am335x-evm
      
      - Fix wrong pinctrl defines for dra7xx
      
      - Update maintainers entries for PMICs and SoCs
      
      * tag 'omap-fixes-against-v3.18-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
        pinctrl: dra: dt-bindings: Fix output pull up/down
        MAINTAINERS: Update entry for omap related .dts files to cover new SoCs
        MAINTAINERS: add more files under OMAP SUPPORT
        ARM: dts: AM437x-SK-EVM: Fix DCDC3 voltage
        ARM: dts: AM437x-GP-EVM: Fix DCDC3 voltage
        ARM: dts: AM43x-EPOS-EVM: Fix DCDC3 voltage
        ARM: dts: am335x-evm: Fix 5th NAND partition's name
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      f7efdad0
    • Olof Johansson's avatar
      Merge tag 'mvebu-fixes-3.18' of git://git.infradead.org/linux-mvebu into fixes · ae8f5041
      Olof Johansson authored
      Merge "mvebu fixes for v3.18" from Jason Cooper:
      
       - Armada XP
          - Generalize i2c quirk
      
       - orion
          - Fix irq storm caused by specific sequence of request_irq
      
      * tag 'mvebu-fixes-3.18' of git://git.infradead.org/linux-mvebu:
        ARM: orion: Fix for certain sequence of request_irq can cause irq storm
        ARM: mvebu: armada xp: Generalize use of i2c quirk
      ae8f5041
    • NeilBrown's avatar
      md: Always set RECOVERY_NEEDED when clearing RECOVERY_FROZEN · 45eaf45d
      NeilBrown authored
      md_check_recovery will skip any recovery and also clear
      MD_RECOVERY_NEEDED if MD_RECOVERY_FROZEN is set.
      So when we clear _FROZEN, we must set _NEEDED and ensure that
      md_check_recovery gets run.
      Otherwise we could miss out on something that is needed.
      
      In particular, this can make it impossible to remove a
      failed device from an array is the  'recovery-needed' processing
      didn't happen.
      Suitable for stable kernels since 3.13.
      
      Cc: stable@vger.kernel.org (3.13+)
      Reported-and-tested-by: default avatarJoe Lawrence <joe.lawrence@stratus.com>
      Fixes: 30b8feb7Signed-off-by: default avatarNeilBrown <neilb@suse.de>
      45eaf45d
    • David S. Miller's avatar
      sparc64: Fix constraints on swab helpers. · 5a2b59d3
      David S. Miller authored
      We are reading the memory location, so we have to have a memory
      constraint in there purely for the sake of showing the data flow
      to the compiler.
      Reported-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5a2b59d3
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · dec943f5
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "This is a set of six fixes and a MAINTAINER update.
      
        The fixes are two multipath (one in Test Unit Ready handling for the
        path checkers and one in the section of code that sends a start unit
        after failover; both of these were perturbed by the scsi-mq update), a
        CD-ROM door locking fix that was likewise introduced by scsi-mq and
        three driver fixes for a previous code update in cxgb4i, megaraid_sas
        and bnx2fc"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        bnx2fc: fix tgt spinlock locking
        megaraid_sas: fix bug in handling return value of pci_enable_msix_range()
        cxgb4i: send abort_rpl correctly
        cxgbi: add maintainer for cxgb3i/cxgb4i
        scsi: TUR path is down after adapter gets reset with multipath
        scsi: call device handler for failed TUR command
        scsi: only re-lock door after EH on devices that were reset
      dec943f5
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · de55bbbf
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "Microcode fixes, a Xen fix and a KASLR boot loading fix with certain
        memory layouts"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86, microcode, AMD: Fix ucode patch stashing on 32-bit
        x86/core, x86/xen/smp: Use 'die_complete' completion when taking CPU down
        x86, microcode: Fix accessing dis_ucode_ldr on 32-bit
        x86, kaslr: Prevent .bss from overlaping initrd
        x86, microcode, AMD: Fix early ucode loading on 32-bit
      de55bbbf
    • Linus Torvalds's avatar
      x86-64: make csum_partial_copy_from_user() error handling consistent · 3b91270a
      Linus Torvalds authored
      Al Viro pointed out that the x86-64 csum_partial_copy_from_user() is
      somewhat confused about what it should do on errors, notably it mostly
      clears the uncopied end result buffer, but misses that for the initial
      alignment case.
      
      All users should check for errors, so it's dubious whether the clearing
      is even necessary, and Al also points out that we should probably clean
      up the calling conventions, but regardless of any future changes to this
      function, the fact that it is inconsistent is just annoying.
      
      So make the __get_user() failure path use the same error exit as all the
      other errors do.
      Reported-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Cc: David Miller <davem@davemloft.net>
      Cc: Andi Kleen <andi@firstfloor.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3b91270a
    • Dave Hansen's avatar
      x86: Require exact match for 'noxsave' command line option · 2cd3949f
      Dave Hansen authored
      We have some very similarly named command-line options:
      
      arch/x86/kernel/cpu/common.c:__setup("noxsave", x86_xsave_setup);
      arch/x86/kernel/cpu/common.c:__setup("noxsaveopt", x86_xsaveopt_setup);
      arch/x86/kernel/cpu/common.c:__setup("noxsaves", x86_xsaves_setup);
      
      __setup() is designed to match options that take arguments, like
      "foo=bar" where you would have:
      
      	__setup("foo", x86_foo_func...);
      
      The problem is that "noxsave" actually _matches_ "noxsaves" in
      the same way that "foo" matches "foo=bar".  If you boot an old
      kernel that does not know about "noxsaves" with "noxsaves" on the
      command line, it will interpret the argument as "noxsave", which
      is not what you want at all.
      
      This makes the "noxsave" handler only return success when it finds
      an *exact* match.
      
      [ tglx: We really need to make __setup() more robust. ]
      Signed-off-by: default avatarDave Hansen <dave.hansen@linux.intel.com>
      Cc: Dave Hansen <dave@sr71.net>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Cc: x86@kernel.org
      Cc: stable@vger.kernel.org
      Link: http://lkml.kernel.org/r/20141111220133.FE053984@viggo.jf.intel.comSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      2cd3949f
    • Stanislaw Gruszka's avatar
      sched/cputime: Fix clock_nanosleep()/clock_gettime() inconsistency · 6e998916
      Stanislaw Gruszka authored
      Commit d670ec13 "posix-cpu-timers: Cure SMP wobbles" fixes one glibc
      test case in cost of breaking another one. After that commit, calling
      clock_nanosleep(TIMER_ABSTIME, X) and then clock_gettime(&Y) can result
      of Y time being smaller than X time.
      
      Reproducer/tester can be found further below, it can be compiled and ran by:
      
      	gcc -o tst-cpuclock2 tst-cpuclock2.c -pthread
      	while ./tst-cpuclock2 ; do : ; done
      
      This reproducer, when running on a buggy kernel, will complain
      about "clock_gettime difference too small".
      
      Issue happens because on start in thread_group_cputimer() we initialize
      sum_exec_runtime of cputimer with threads runtime not yet accounted and
      then add the threads runtime to running cputimer again on scheduler
      tick, making it's sum_exec_runtime bigger than actual threads runtime.
      
      KOSAKI Motohiro posted a fix for this problem, but that patch was never
      applied: https://lkml.org/lkml/2013/5/26/191 .
      
      This patch takes different approach to cure the problem. It calls
      update_curr() when cputimer starts, that assure we will have updated
      stats of running threads and on the next schedule tick we will account
      only the runtime that elapsed from cputimer start. That also assure we
      have consistent state between cpu times of individual threads and cpu
      time of the process consisted by those threads.
      
      Full reproducer (tst-cpuclock2.c):
      
      	#define _GNU_SOURCE
      	#include <unistd.h>
      	#include <sys/syscall.h>
      	#include <stdio.h>
      	#include <time.h>
      	#include <pthread.h>
      	#include <stdint.h>
      	#include <inttypes.h>
      
      	/* Parameters for the Linux kernel ABI for CPU clocks.  */
      	#define CPUCLOCK_SCHED          2
      	#define MAKE_PROCESS_CPUCLOCK(pid, clock) \
      		((~(clockid_t) (pid) << 3) | (clockid_t) (clock))
      
      	static pthread_barrier_t barrier;
      
      	/* Help advance the clock.  */
      	static void *chew_cpu(void *arg)
      	{
      		pthread_barrier_wait(&barrier);
      		while (1) ;
      
      		return NULL;
      	}
      
      	/* Don't use the glibc wrapper.  */
      	static int do_nanosleep(int flags, const struct timespec *req)
      	{
      		clockid_t clock_id = MAKE_PROCESS_CPUCLOCK(0, CPUCLOCK_SCHED);
      
      		return syscall(SYS_clock_nanosleep, clock_id, flags, req, NULL);
      	}
      
      	static int64_t tsdiff(const struct timespec *before, const struct timespec *after)
      	{
      		int64_t before_i = before->tv_sec * 1000000000ULL + before->tv_nsec;
      		int64_t after_i = after->tv_sec * 1000000000ULL + after->tv_nsec;
      
      		return after_i - before_i;
      	}
      
      	int main(void)
      	{
      		int result = 0;
      		pthread_t th;
      
      		pthread_barrier_init(&barrier, NULL, 2);
      
      		if (pthread_create(&th, NULL, chew_cpu, NULL) != 0) {
      			perror("pthread_create");
      			return 1;
      		}
      
      		pthread_barrier_wait(&barrier);
      
      		/* The test.  */
      		struct timespec before, after, sleeptimeabs;
      		int64_t sleepdiff, diffabs;
      		const struct timespec sleeptime = {.tv_sec = 0,.tv_nsec = 100000000 };
      
      		/* The relative nanosleep.  Not sure why this is needed, but its presence
      		   seems to make it easier to reproduce the problem.  */
      		if (do_nanosleep(0, &sleeptime) != 0) {
      			perror("clock_nanosleep");
      			return 1;
      		}
      
      		/* Get the current time.  */
      		if (clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &before) < 0) {
      			perror("clock_gettime[2]");
      			return 1;
      		}
      
      		/* Compute the absolute sleep time based on the current time.  */
      		uint64_t nsec = before.tv_nsec + sleeptime.tv_nsec;
      		sleeptimeabs.tv_sec = before.tv_sec + nsec / 1000000000;
      		sleeptimeabs.tv_nsec = nsec % 1000000000;
      
      		/* Sleep for the computed time.  */
      		if (do_nanosleep(TIMER_ABSTIME, &sleeptimeabs) != 0) {
      			perror("absolute clock_nanosleep");
      			return 1;
      		}
      
      		/* Get the time after the sleep.  */
      		if (clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &after) < 0) {
      			perror("clock_gettime[3]");
      			return 1;
      		}
      
      		/* The time after sleep should always be equal to or after the absolute sleep
      		   time passed to clock_nanosleep.  */
      		sleepdiff = tsdiff(&sleeptimeabs, &after);
      		if (sleepdiff < 0) {
      			printf("absolute clock_nanosleep woke too early: %" PRId64 "\n", sleepdiff);
      			result = 1;
      
      			printf("Before %llu.%09llu\n", before.tv_sec, before.tv_nsec);
      			printf("After  %llu.%09llu\n", after.tv_sec, after.tv_nsec);
      			printf("Sleep  %llu.%09llu\n", sleeptimeabs.tv_sec, sleeptimeabs.tv_nsec);
      		}
      
      		/* The difference between the timestamps taken before and after the
      		   clock_nanosleep call should be equal to or more than the duration of the
      		   sleep.  */
      		diffabs = tsdiff(&before, &after);
      		if (diffabs < sleeptime.tv_nsec) {
      			printf("clock_gettime difference too small: %" PRId64 "\n", diffabs);
      			result = 1;
      		}
      
      		pthread_cancel(th);
      
      		return result;
      	}
      Signed-off-by: default avatarStanislaw Gruszka <sgruszka@redhat.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Link: http://lkml.kernel.org/r/20141112155843.GA24803@redhat.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      6e998916
    • Peter Zijlstra's avatar
      sched/cputime: Fix cpu_timer_sample_group() double accounting · 23cfa361
      Peter Zijlstra authored
      While looking over the cpu-timer code I found that we appear to add
      the delta for the calling task twice, through:
      
        cpu_timer_sample_group()
          thread_group_cputimer()
            thread_group_cputime()
              times->sum_exec_runtime += task_sched_runtime();
      
          *sample = cputime.sum_exec_runtime + task_delta_exec();
      
      Which would make the sample run ahead, making the sleep short.
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Stanislaw Gruszka <sgruszka@redhat.com>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Rik van Riel <riel@redhat.com>
      Cc: Tejun Heo <tj@kernel.org>
      Link: http://lkml.kernel.org/r/20141112113737.GI10476@twins.programming.kicks-ass.netSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      23cfa361
    • Peter Zijlstra's avatar
      sched/numa: Avoid selecting oneself as swap target · 7af68335
      Peter Zijlstra authored
      Because the whole numa task selection stuff runs with preemption
      enabled (its long and expensive) we can end up migrating and selecting
      oneself as a swap target. This doesn't really work out well -- we end
      up trying to acquire the same lock twice for the swap migrate -- so
      avoid this.
      Reported-and-Tested-by: default avatarSasha Levin <sasha.levin@oracle.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Link: http://lkml.kernel.org/r/20141110100328.GF29390@twins.programming.kicks-ass.netSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      7af68335
    • Maxime COQUELIN's avatar
      bitops: Fix shift overflow in GENMASK macros · 00b4d9a1
      Maxime COQUELIN authored
      On some 32 bits architectures, including x86, GENMASK(31, 0) returns 0
      instead of the expected ~0UL.
      
      This is the same on some 64 bits architectures with GENMASK_ULL(63, 0).
      
      This is due to an overflow in the shift operand, 1 << 32 for GENMASK,
      1 << 64 for GENMASK_ULL.
      Reported-by: default avatarEric Paire <eric.paire@st.com>
      Suggested-by: default avatarRasmus Villemoes <linux@rasmusvillemoes.dk>
      Signed-off-by: default avatarMaxime Coquelin <maxime.coquelin@st.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: <stable@vger.kernel.org> # v3.13+
      Cc: linux@rasmusvillemoes.dk
      Cc: gong.chen@linux.intel.com
      Cc: John Sullivan <jsrhbz@kanargh.force9.co.uk>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Theodore Ts'o <tytso@mit.edu>
      Fixes: 10ef6b0d ("bitops: Introduce a more generic BITMASK macro")
      Link: http://lkml.kernel.org/r/1415267659-10563-1-git-send-email-maxime.coquelin@st.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      00b4d9a1
    • Andi Kleen's avatar
      perf/x86/intel/uncore: Fix boot crash on SBOX PMU on Haswell-EP · 68055915
      Andi Kleen authored
      There were several reports that on some systems writing the SBOX0 PMU
      initialization MSR would #GP at boot. This did not happen on all
      systems -- my two test systems booted fine.
      
      Writing the three initialization bits bit-by-bit seems to avoid the
      problem. So add a special callback to do just that.
      
      This replaces an earlier patch that disabled the SBOX.
      Reported-by: default avatarAlexei Starovoitov <alexei.starovoitov@gmail.com>
      Reported-and-Tested-by: default avatarPatrick Lu <patrick.lu@intel.com>
      Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Link: http://lkml.kernel.org/r/1415062828-19759-4-git-send-email-andi@firstfloor.org
      [ Fixed a whitespace error and added attribution tags that were left out inexplicably. ]
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      68055915
    • Andi Kleen's avatar
      perf/x86/intel/uncore: Fix IRP uncore register offsets on Haswell EP · 41a134a5
      Andi Kleen authored
      The counter register offsets for the IRP box PMU for Haswell-EP
      were incorrect. The offsets actually changed over IvyBridge EP.
      
      Fix them to the correct values. For this we need to fork the read
      function from the IVB and use an own counter array.
      
      Tested-by: patrick.lu@intel.com
      Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Link: http://lkml.kernel.org/r/1415062828-19759-3-git-send-email-andi@firstfloor.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      41a134a5
    • Mark Rutland's avatar
      perf: Fix corruption of sibling list with hotplug · 226424ee
      Mark Rutland authored
      When a CPU hotplugged out, we call perf_remove_from_context() (via
      perf_event_exit_cpu()) to rip each CPU-bound event out of its PMU's cpu
      context, but leave siblings grouped together. Freeing of these events is
      left to the mercy of the usual refcounting.
      
      When a CPU-bound event's refcount drops to zero we cross-call to
      __perf_remove_from_context() to clean it up, detaching grouped siblings.
      
      This works when the relevant CPU is online, but will fail if the CPU is
      currently offline, and we won't detach the event from its siblings
      before freeing the event, leaving the sibling list corrupt. If the
      sibling list is later walked (e.g. because the CPU cam online again
      before a remaining sibling's refcount drops to zero), we will walk the
      now corrupted siblings list, potentially dereferencing garbage values.
      
      Given that the events should never be scheduled again (as we removed
      them from their context), we can simply detatch siblings when the CPU
      goes down in the first place. If the CPU comes back online, the
      redundant call to __perf_remove_from_context() is safe.
      Reported-by: default avatarDrew Richardson <drew.richardson@arm.com>
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
      Cc: vincent.weaver@maine.edu
      Cc: Vince Weaver <vincent.weaver@maine.edu>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Link: http://lkml.kernel.org/r/1415203904-25308-2-git-send-email-mark.rutland@arm.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      226424ee
  6. 15 Nov, 2014 6 commits
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm · 5f01feb8
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
       "Two fixes this time, one to ensure that the kuser helper option
        depends on MMU as they aren't available for noMMU targets (and if the
        option is selected, we end up oopsing.)
      
        The second fix plugs a corner case with the decompressor, ensuring
        that the instruction stream can see the relocated code in every case
        on ARMv7 CPUs"
      
      * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
        ARM: 8198/1: make kuser helpers depend on MMU
        ARM: 8191/1: decompressor: ensure I-side picks up relocated code
      5f01feb8
    • Linus Torvalds's avatar
      Merge branch 'parisc-3.18-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · 555e5986
      Linus Torvalds authored
      Pull parisc updates from Helge Deller:
       "Changes include:
         - wire up the bpf syscall
         - remove CONFIG_64BIT usage from some userspace-exported header files
         - use compat functions for msgctl, shmat, shmctl and semtimedop
           syscalls"
      
      * 'parisc-3.18-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: Avoid using CONFIG_64BIT in userspace exported headers
        parisc: Use compat layer for msgctl, shmat, shmctl and semtimedop syscalls
        parisc: Use BUILD_BUG() instead of undefined functions
        parisc: Wire up bpf syscall
      555e5986
    • Linus Torvalds's avatar
      Merge tag 'for-v3.18-rc' of git://git.infradead.org/battery-2.6 · ec7de656
      Linus Torvalds authored
      Pull power supply updates from Sebastian Reichel:
       "Power supply and reset changes for the v3.18-rc:
      
         - misc. charger-manager fixes
         - year 2038 fix in ab8500_fg
         - fix error handling of bq2415x_charger"
      
      * tag 'for-v3.18-rc' of git://git.infradead.org/battery-2.6:
        power: charger-manager: Fix accessing invalidated power supply after charger unbind
        power: charger-manager: Fix accessing invalidated power supply after fuel gauge unbind
        power: charger-manager: Avoid recursive thermal get_temp call
        power_supply: Add no_thermal property to prevent recursive get_temp calls
        power: bq2415x_charger: Fix memory leak on DTS parsing error
        power: bq2415x_charger: Properly handle ENODEV from power_supply_get_by_phandle
        power: ab8500_fg.c: use 64-bit time types
      ec7de656
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · e0611671
      Linus Torvalds authored
      Pull drm gixes from Dave Airlie:
       - exynos: infinite loop regressions fixed
       - i915: one regression
       - radeon: one race condition on monitor probing
       - noveau: two regressions
       - tegra: one vblank regression fix
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
        drm/tegra: dc: Add missing call to drm_vblank_on()
        drm/nouveau/nv50/disp: Fix modeset on G94
        drm/gk20a/fb: fix setting of large page size bit
        drm/radeon: add locking around atombios scratch space usage
        drm/i915: Fix obj->map_and_fenceable across tiling changes
        drm/exynos: fix possible infinite loop issue
        drm/exynos: g2d: fix null pointer dereference
        drm/exynos: resolve infinite loop issue on non multi-platform
        drm/exynos: resolve infinite loop issue on multi-platform
      e0611671
    • Kirill A. Shutemov's avatar
      kernel: use the gnu89 standard explicitly · 51b97e35
      Kirill A. Shutemov authored
      Sasha Levin reports:
       "gcc5 changes the default standard to c11, which makes kernel build
        unhappy
      
        Explicitly define the kernel standard to be gnu89 which should keep
        everything working exactly like it was before gcc5"
      
      There are multiple small issues with the new default, but the biggest
      issue seems to be that the old - and very useful - GNU extension to
      allow a cast in front of an initializer has gone away.
      
      Patch updated by Kirill:
       "I'm pretty sure all gcc versions you can build kernel with supports
        -std=gnu89.  cc-option is redunrant.
      
        We also need to adjust HOSTCFLAGS otherwise allmodconfig fails for me"
      
      Note by Andrew Pinski:
       "Yes it was reported and both problems relating to this extension has
        been added to gnu99 and gnu11.  Though there are other issues with the
        kernel dealing with extern inline have different semantics between
        gnu89 and gnu99/11"
      
      End result: we may be able to move up to a newer stdc model eventually,
      but right now the newer models have some annoying deficiencies, so the
      traditional "gnu89" model ends up being the preferred one.
      Signed-off-by: default avatarSasha Levin <sasha.levin@oracle.com>
      Singed-off-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      51b97e35
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-3.18-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 1afcb6ed
      Linus Torvalds authored
      Pull NFS client bugfixes from Trond Myklebust:
       "Highlights include:
      
         - stable patches to fix NFSv4.x delegation reclaim error paths
         - fix a bug whereby we were advertising NFSv4.1 but using NFSv4.2
           features
         - fix a use-after-free problem with pNFS block layouts
         - fix a memory leak in the pNFS files O_DIRECT code
         - replace an intrusive and Oops-prone performance fix in the NFSv4
           atomic open code with a safer one-line version and revert the two
           original patches"
      
      * tag 'nfs-for-3.18-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        sunrpc: fix sleeping under rcu_read_lock in gss_stringify_acceptor
        NFS: Don't try to reclaim delegation open state if recovery failed
        NFSv4: Ensure that we call FREE_STATEID when NFSv4.x stateids are revoked
        NFSv4: Fix races between nfs_remove_bad_delegation() and delegation return
        NFSv4.1: nfs41_clear_delegation_stateid shouldn't trust NFS_DELEGATED_STATE
        NFSv4: Ensure that we remove NFSv4.0 delegations when state has expired
        NFS: SEEK is an NFS v4.2 feature
        nfs: Fix use of uninitialized variable in nfs_getattr()
        nfs: Remove bogus assignment
        nfs: remove spurious WARN_ON_ONCE in write path
        pnfs/blocklayout: serialize GETDEVICEINFO calls
        nfs: fix pnfs direct write memory leak
        Revert "NFS: nfs4_do_open should add negative results to the dcache."
        Revert "NFS: remove BUG possibility in nfs4_open_and_get_state"
        NFSv4: Ensure nfs_atomic_open set the dentry verifier on ENOENT
      1afcb6ed
  7. 14 Nov, 2014 4 commits
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 56c381f9
      Linus Torvalds authored
      Pull input subsystem updates from Dmitry Torokhov:
       "Mostly small fixups to PS/2 tochpad drivers (ALPS, Elantech,
        Synaptics) to better deal with specific hardware"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: elantech - update the documentation
        Input: elantech - provide a sysfs knob for crc_enabled
        Input: elantech - report the middle button of the touchpad
        Input: alps - ignore bad data on Dell Latitudes E6440 and E7440
        Input: alps - allow up to 2 invalid packets without resetting device
        Input: alps - ignore potential bare packets when device is out of sync
        Input: elantech - fix crc_enabled for Fujitsu H730
        Input: elantech - use elantech_report_trackpoint for hardware v4 too
        Input: twl4030-pwrbutton - ensure a wakeup event is recorded.
        Input: synaptics - add min/max quirk for Lenovo T440s
      56c381f9
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 0861fd1c
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
      
       - fix EFI stub cache maintenance causing aborts during boot on certain
         platforms
      
       - handle byte stores in __clear_user without panicking
      
       - fix race condition in aarch64_insn_patch_text_sync() (instruction
         patching)
      
       - Couple of type fixes
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: ARCH_PFN_OFFSET should be unsigned long
        Correct the race condition in aarch64_insn_patch_text_sync()
        arm64: __clear_user: handle exceptions on strb
        arm64: Fix data type for physical address
        arm64: efi: Fix stub cache maintenance
      0861fd1c
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v3.18-3' of... · 5ae93760
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v3.18-3' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86
      
      Pull x86 platform drivers fixlets from Darren Hart:
       "Just two patches to remove hp_accel events from the keyboard bus
        stream via an i8042 filter"
      
      * tag 'platform-drivers-x86-v3.18-3' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86:
        platform: hp_accel: Add SERIO_I8042 as a dependency since it now includes i8042.h/serio.h
        platform: hp_accel: add a i8042 filter to remove HPQ6000 data from kb bus stream
      5ae93760
    • Linus Torvalds's avatar
      Merge branch 'for-3.18-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · e57c641f
      Linus Torvalds authored
      Pull libata fixes from Tejun Heo:
       "The most notable is the revert of lock splitting optimization in ahci.
        This also made the IRQ handling threaded even when there's only one
        IRQ in use.  The conversion missed IRFQ_SHARED leading to screaming
        IRQs problem in some cases and the threaded IRQ handling showed
        performance regression in some LKP test cases.  The changes are
        reverted for now.  It'll probably be retried once threaded IRQ
        handling is removed from ahci.
      
        Other than that, there's one fix for ahci and several patches adding
        device IDs"
      
      * 'for-3.18-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        ahci: fix AHCI parameters not taken into account
        ata: sata_rcar: Add r8a7793 device support
        ahci: Add Device IDs for Intel Sunrise Point PCH
        ahci: disable MSI instead of NCQ on Samsung pci-e SSDs on macbooks
        Revert "AHCI: Optimize single IRQ interrupt processing"
        Revert "AHCI: Do not acquire ata_host::lock from single IRQ handler"
        ata: sata_rcar: Disable DIPM mode for r8a7790 ES1
      e57c641f