1. 22 Jun, 2013 3 commits
  2. 21 Jun, 2013 8 commits
  3. 20 Jun, 2013 15 commits
    • Dave Airlie's avatar
      Merge branch 'drm-fixes-3.10' of git://people.freedesktop.org/~agd5f/linux into drm-fixes · 9aa36876
      Dave Airlie authored
      One user visible fix to stop misreport GPU hangs and subsequent resets.
      * 'drm-fixes-3.10' of git://people.freedesktop.org/~agd5f/linux:
        drm/radeon: update lockup tracking when scheduling in empty ring
      9aa36876
    • Jerome Glisse's avatar
      drm/radeon: update lockup tracking when scheduling in empty ring · 8444d5c6
      Jerome Glisse authored
      There might be issue with lockup detection when scheduling on an
      empty ring that have been sitting idle for a while. Thus update
      the lockup tracking data when scheduling new work in an empty ring.
      Signed-off-by: default avatarJerome Glisse <jglisse@redhat.com>
      Tested-by: default avatarAndy Lutomirski <luto@amacapital.net>
      Cc: stable@vger.kernel.org
      Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      8444d5c6
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a3d5c346
      Linus Torvalds authored
      Pull scheduler fixes from Ingo Molnar:
       "Two smaller fixes - plus a context tracking tracing fix that is a bit
        bigger"
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        tracing/context-tracking: Add preempt_schedule_context() for tracing
        sched: Fix clear NOHZ_BALANCE_KICK
        sched/x86: Construct all sibling maps if smt
      a3d5c346
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 86c76676
      Linus Torvalds authored
      Pull perf fixes from Ingo Molnar:
       "Four fixes.  The mmap ones are unfortunately larger than desired -
        fuzzing uncovered bugs that needed perf context life time management
        changes to fix properly"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86: Fix broken PEBS-LL support on SNB-EP/IVB-EP
        perf: Fix mmap() accounting hole
        perf: Fix perf mmap bugs
        kprobes: Fix to free gone and unused optprobes
      86c76676
    • Linus Torvalds's avatar
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 805e3185
      Linus Torvalds authored
      Pull cpu idle fixes from Thomas Gleixner:
       - Add a missing irq enable. Fallout of the idle conversion
       - Fix stackprotector wreckage caused by the idle conversion
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        idle: Enable interrupts in the weak arch_cpu_idle() implementation
        idle: Add the stack canary init to cpu_startup_entry()
      805e3185
    • Linus Torvalds's avatar
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4db88eb4
      Linus Torvalds authored
      Pull timer fixes from Thomas Gleixner:
       - Fix inconstinant clock usage in virtual time accounting
       - Fix a build error in KVM caused by the NOHZ work
       - Remove a pointless timekeeping duty assignment which breaks NOHZ
       - Use a proper notifier return value to avoid random behaviour
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        tick: Remove useless timekeeping duty attribution to broadcast source
        nohz: Fix notifier return val that enforce timekeeping
        kvm: Move guest entry/exit APIs to context_tracking
        vtime: Use consistent clocks among nohz accounting
      4db88eb4
    • Linus Torvalds's avatar
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · 53d5defc
      Linus Torvalds authored
      Pull powerpc fix fro, Benjamin Herrenschmidt:
       "We accidentally broke hugetlbfs on Freescale embedded processors which
        use a slightly different page table layout than our server processors"
      
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
        powerpc: Fix bad pmd error with book3E config
      53d5defc
    • Linus Torvalds's avatar
      Merge branch 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile · f92d0dc9
      Linus Torvalds authored
      Pull tilepro fix from Chris Metcalf:
       "This change allows the older tilepro architecture to be correctly
        built by newer gccs, despite a change that caused gcc to start trying
        to use an out-of-line implementation for __builtin_ffsll().
      
        This should be inline again starting with gcc 4.7.4 and 4.8.2 or so,
        but meanwhile this change keeps things from breaking, with the only
        cost being a few bytes of code in the kernel to provide __ffsdi2 even
        for compilers that do inline it"
      
      * 'stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
        tilepro: work around module link error with gcc 4.7
      f92d0dc9
    • Linus Torvalds's avatar
      Merge tag 'arm64-stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64 · fd58b517
      Linus Torvalds authored
      Pull arm64 perf fix from Catalin Marinas:
       "Perf fix (user-mode PC recording)"
      
      * tag 'arm64-stable' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64:
        perf: arm64: Record the user-mode PC in the call chain.
      fd58b517
    • Al Viro's avatar
      7995bd28
    • Mauro Carvalho Chehab's avatar
      [media] Fix build when drivers are builtin and frontend modules · bb69ee27
      Mauro Carvalho Chehab authored
      There are a large number of reports that the media build is
      not compiling when some drivers are compiled as builtin, while
      the needed frontends are compiled as module.
      
      On the last one of such reports:
      	From: kbuild test robot <fengguang.wu@intel.com>
      	Subject: saa7134-dvb.c:undefined reference to `zl10039_attach'
      
      The .config file has:
      
      	CONFIG_VIDEO_SAA7134=y
      	CONFIG_VIDEO_SAA7134_DVB=y
      	# CONFIG_MEDIA_ATTACH is not set
      	CONFIG_DVB_ZL10039=m
      
      And it produces all those errors:
      
         drivers/built-in.o: In function `set_type':
         tuner-core.c:(.text+0x2f263e): undefined reference to `tea5767_attach'
         tuner-core.c:(.text+0x2f273e): undefined reference to `tda9887_attach'
         drivers/built-in.o: In function `tuner_probe':
         tuner-core.c:(.text+0x2f2d20): undefined reference to `tea5767_autodetection'
         drivers/built-in.o: In function `av7110_attach':
         av7110.c:(.text+0x330bda): undefined reference to `ves1x93_attach'
         av7110.c:(.text+0x330bf7): undefined reference to `stv0299_attach'
         av7110.c:(.text+0x330c63): undefined reference to `tda8083_attach'
         av7110.c:(.text+0x330d09): undefined reference to `ves1x93_attach'
         av7110.c:(.text+0x330d33): undefined reference to `tda8083_attach'
         av7110.c:(.text+0x330d5d): undefined reference to `stv0297_attach'
         av7110.c:(.text+0x330dbe): undefined reference to `stv0299_attach'
         drivers/built-in.o: In function `tuner_attach_dtt7520x':
         ngene-cards.c:(.text+0x3381cb): undefined reference to `dvb_pll_attach'
         drivers/built-in.o: In function `demod_attach_lg330x':
         ngene-cards.c:(.text+0x33828a): undefined reference to `lgdt330x_attach'
         drivers/built-in.o: In function `demod_attach_stv0900':
         ngene-cards.c:(.text+0x3383d5): undefined reference to `stv090x_attach'
         drivers/built-in.o: In function `cineS2_probe':
         ngene-cards.c:(.text+0x338b7f): undefined reference to `drxk_attach'
         drivers/built-in.o: In function `configure_tda827x_fe':
         saa7134-dvb.c:(.text+0x346ae7): undefined reference to `tda10046_attach'
         drivers/built-in.o: In function `dvb_init':
         saa7134-dvb.c:(.text+0x347283): undefined reference to `mt352_attach'
         saa7134-dvb.c:(.text+0x3472cd): undefined reference to `mt352_attach'
         saa7134-dvb.c:(.text+0x34731c): undefined reference to `tda10046_attach'
         saa7134-dvb.c:(.text+0x34733c): undefined reference to `tda10046_attach'
         saa7134-dvb.c:(.text+0x34735c): undefined reference to `tda10046_attach'
         saa7134-dvb.c:(.text+0x347378): undefined reference to `tda10046_attach'
         saa7134-dvb.c:(.text+0x3473db): undefined reference to `tda10046_attach'
         drivers/built-in.o:saa7134-dvb.c:(.text+0x347502): more undefined references to `tda10046_attach' follow
         drivers/built-in.o: In function `dvb_init':
         saa7134-dvb.c:(.text+0x347812): undefined reference to `mt352_attach'
         saa7134-dvb.c:(.text+0x347951): undefined reference to `mt312_attach'
         saa7134-dvb.c:(.text+0x3479a9): undefined reference to `mt312_attach'
      >> saa7134-dvb.c:(.text+0x3479c1): undefined reference to `zl10039_attach'
      
      This is happening because a builtin module can't use directly a symbol
      found on a module. By enabling CONFIG_MEDIA_ATTACH, the configuration
      becomes valid, as dvb_attach() macro loads the module if needed, making
      the symbol available to the builtin module.
      
      While this bug started to appear after the patches that use IS_DEFINED
      macro (like changeset 7b34be71), this
      bug is a way ancient than that.
      
      The thing is that, before the IS_DEFINED() patches, the logic used to be:
      
             && defined(MODULE))
      struct dvb_frontend *zl10039_attach(struct dvb_frontend *fe,
      					u8 i2c_addr,
      					struct i2c_adapter *i2c);
      static inline struct dvb_frontend *zl10039_attach(struct dvb_frontend *fe,
      					u8 i2c_addr,
      					struct i2c_adapter *i2c)
      {
      	printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
      	return NULL;
      }
      
      The above code, with the .config file used, was evoluting to FALSE
      (instead of TRUE as it should be, as CONFIG_DVB_ZL10039 is 'm'),
      and were adding the static inline code at saa7134-dvb, instead
      of the external call. So, while it weren't producing any compilation
      error, the code weren't working either.
      
      So, as the overhead for using CONFIG_MEDIA_ATTACH is minimal, just
      enable it, if MODULES is defined.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      bb69ee27
    • Michel Lespinasse's avatar
      x86: Fix trigger_all_cpu_backtrace() implementation · b52e0a7c
      Michel Lespinasse authored
      The following change fixes the x86 implementation of
      trigger_all_cpu_backtrace(), which was previously (accidentally,
      as far as I can tell) disabled to always return false as on
      architectures that do not implement this function.
      
      trigger_all_cpu_backtrace(), as defined in include/linux/nmi.h,
      should call arch_trigger_all_cpu_backtrace() if available, or
      return false if the underlying arch doesn't implement this
      function.
      
      x86 did provide a suitable arch_trigger_all_cpu_backtrace()
      implementation, but it wasn't actually being used because it was
      declared in asm/nmi.h, which linux/nmi.h doesn't include. Also,
      linux/nmi.h couldn't easily be fixed by including asm/nmi.h,
      because that file is not available on all architectures.
      
      I am proposing to fix this by moving the x86 definition of
      arch_trigger_all_cpu_backtrace() to asm/irq.h.
      
      Tested via: echo l > /proc/sysrq-trigger
      
      Before the change, this uses a fallback implementation which
      shows backtraces on active CPUs (using
      smp_call_function_interrupt() )
      
      After the change, this shows NMI backtraces on all CPUs
      Signed-off-by: default avatarMichel Lespinasse <walken@google.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Link: http://lkml.kernel.org/r/1370518875-1346-1-git-send-email-walken@google.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      b52e0a7c
    • Jed Davis's avatar
      perf: arm64: Record the user-mode PC in the call chain. · abc41254
      Jed Davis authored
      With this change, we no longer lose the innermost entry in the user-mode
      part of the call chain.  See also the x86 port, which includes the ip,
      and the corresponding change in arch/arm.
      Signed-off-by: default avatarJed Davis <jld@mozilla.com>
      Acked-by: default avatarIngo Molnar <mingo@kernel.org>
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      abc41254
    • Mauro Carvalho Chehab's avatar
      [media] s5p makefiles: don't override other selections on obj-[ym] · 5f63adbb
      Mauro Carvalho Chehab authored
      The $obj-m/$obj-y vars should be adding new modules to build, not
      overriding it. So, it should never use
      	$obj-y := foo.o
      instead, it should use:
      	$obj-y += foo.o
      
      Failing to do that is very bad, as it will suppress needed modules.
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      5f63adbb
    • Aneesh Kumar K.V's avatar
      powerpc: Fix bad pmd error with book3E config · 8bbd9f04
      Aneesh Kumar K.V authored
      Book3E uses the hugepd at PMD level and don't encode pte directly
      at the pmd level. So it will find the lower bits of pmd set
      and the pmd_bad check throws error. Infact the current code
      will never take the free_hugepd_range call at all because it will
      clear the pmd if it find a hugepd pointer. Fix this by clearing
      bad pmd only if it is not a hugepd pointer.
      
      This is regression introduced by e2b3d202
      "powerpc: Switch 16GB and 16MB explicit hugepages to a different page table format"
      Reported-by: default avatarScott Wood <scottwood@freescale.com>
      Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      8bbd9f04
  4. 19 Jun, 2013 14 commits
    • Rafael J. Wysocki's avatar
      ACPI / LPSS: Power up LPSS devices during enumeration · b9e95fc6
      Rafael J. Wysocki authored
      Commit 7cd8407d (ACPI / PM: Do not execute _PS0 for devices without
      _PSC during initialization) introduced a regression on some systems
      with Intel Lynxpoint Low-Power Subsystem (LPSS) where some devices
      need to be powered up during initialization, but their device objects
      in the ACPI namespace have _PS0 and _PS3 only (without _PSC or power
      resources).
      
      To work around this problem, make the ACPI LPSS driver power up
      devices it knows about by using a new helper function
      acpi_device_fix_up_power() that does all of the necessary
      sanity checks and calls acpi_dev_pm_explicit_set() to put the
      device into D0.
      Reported-and-tested-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      b9e95fc6
    • Rafael J. Wysocki's avatar
      ACPI / PM: Fix error code path for power resources initialization · 6ee22e9d
      Rafael J. Wysocki authored
      Commit 781d737c (ACPI: Drop power resources driver) introduced a
      bug in the power resources initialization error code path causing
      a NULL pointer to be referenced in acpi_release_power_resource()
      if there's an error triggering a jump to the 'err' label in
      acpi_add_power_resource().  This happens because the list_node
      field of struct acpi_power_resource has not been initialized yet
      at this point and doing a list_del() on it is a bad idea.
      
      To prevent this problem from occuring, initialize the list_node
      field of struct acpi_power_resource upfront.
      Reported-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Tested-by: default avatarLan Tianyu <tianyu.lan@intel.com>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Cc: 3.9+ <stable@vger.kernel.org>
      Acked-by: default avatarYasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com>
      Reviewed-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      6ee22e9d
    • Rafael J. Wysocki's avatar
      ACPI / dock: Take ACPI scan lock in write_undock() · 8112006f
      Rafael J. Wysocki authored
      Since commit 3757b948 (ACPI / hotplug: Fix concurrency issues and
      memory leaks) acpi_bus_scan() and acpi_bus_trim() must always be
      called under acpi_scan_lock, but currently the following scenario
      violating that requirement is possible:
      
       write_undock()
        handle_eject_request()
         hotplug_dock_devices()
          dock_remove_acpi_device()
           acpi_bus_trim()
      
      Fix that by making write_undock() acquire acpi_scan_lock before
      calling handle_eject_request() as appropriate (begin_undock() is
      under the lock too in analogy with acpi_dock_deferred_cb()).
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Cc: 3.9+ <stable@vger.kernel.org>
      Acked-by: default avatarToshi Kani <toshi.kani@hp.com>
      8112006f
    • Mika Westerberg's avatar
      ACPI / resources: call acpi_get_override_irq() only for legacy IRQ resources · 204ebc0a
      Mika Westerberg authored
      acpi_get_override_irq() was added because there was a problem with
      buggy BIOSes passing wrong IRQ() resource for the RTC IRQ.  The
      commit that added the workaround was 61fd47e0 (ACPI: fix two
      IRQ8 issues in IOAPIC mode).
      
      With ACPI 5 enumerated devices there are typically one or more
      extended IRQ resources per device (and these IRQs can be shared).
      However, the acpi_get_override_irq() workaround forces all IRQs in
      range 0 - 15 (the legacy ISA IRQs) to be edge triggered, active high
      as can be seen from the dmesg below:
      
      	ACPI: IRQ 6 override to edge, high
      	ACPI: IRQ 7 override to edge, high
      	ACPI: IRQ 7 override to edge, high
      	ACPI: IRQ 13 override to edge, high
      
      Also /proc/interrupts for the I2C controllers (INT33C2 and INT33C3) shows
      the same thing:
      
      	7:          4          0          0          0   IO-APIC-edge INT33C2:00, INT33C3:00
      
      The _CSR method for INT33C2 (and INT33C3) device returns following
      resource:
      
      	Interrupt (ResourceConsumer, Level, ActiveLow, Shared,,, )
      	{
      		0x00000007,
      	}
      
      which states that this is supposed to be level triggered, active low,
      shared IRQ instead.
      
      Fix this by making sure that acpi_get_override_irq() gets only called
      when we are dealing with legacy IRQ() or IRQNoFlags() descriptors.
      
      While we are there, correct pr_warning() to print the right triggering
      value.
      
      This change turns out to be necessary to make DMA work correctly on
      systems based on the Intel Lynxpoint PCH (Platform Controller Hub).
      
      [rjw: Changelog]
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Cc: 3.9+ <stable@vger.kernel.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      204ebc0a
    • Paul Gortmaker's avatar
      x86: Fix section mismatch on load_ucode_ap · 94978599
      Paul Gortmaker authored
      We are in the process of removing all the __cpuinit annotations.
      While working on making that change, an existing problem was
      made evident:
      
        WARNING: arch/x86/kernel/built-in.o(.text+0x198f2): Section mismatch
        in reference from the function cpu_init() to the function
        .init.text:load_ucode_ap()   The function cpu_init() references
        the function __init load_ucode_ap().  This is often because cpu_init
        lacks a __init annotation or the annotation of load_ucode_ap is wrong.
      
      This now appears because in my working tree, cpu_init() is no longer
      tagged as __cpuinit, and so the audit picks up the mismatch.  The 2nd
      hypothesis from the audit is the correct one, as there was an incorrect
      __init tag on the prototype in the header (but __cpuinit was used on
      the function itself.)
      
      The audit is telling us that the prototype's __init annotation took
      effect and the function did land in the .init.text section.  Checking
      with objdump on a mainline tree that still has __cpuinit shows that
      the __cpuinit on the function takes precedence over the __init on the
      prototype, but that won't be true once we make __cpuinit a no-op.
      
      Even though we are removing __cpuinit, we temporarily align both
      the function and the prototype on __cpuinit so that the changeset
      can be applied to stable trees  if desired.
      
      [ hpa: build fix only, no object code change ]
      
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: stable <stable@vger.kernel.org> # 3.9+
      Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Link: http://lkml.kernel.org/r/1371654926-11729-1-git-send-email-paul.gortmaker@windriver.comSigned-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
      94978599
    • David Daney's avatar
      mn10300: Fix include dependency in irqflags.h et al. · c0691143
      David Daney authored
      We need to pick up the definition of raw_smp_processor_id() from
      asm/smp.h.  For the !SMP case, we need to supply a definition of
      raw_smp_processor_id().
      
      Because of the include dependencies we cannot use smp_call_func_t in
      asm/smp.h, but we do need linux/thread_info.h
      Signed-off-by: default avatarDavid Daney <david.daney@cavium.com>
      Acked-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Acked-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c0691143
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc · b9e763cd
      Linus Torvalds authored
      Pull sparc fixes from David Miller:
       "Various sparc bug fixes, in particular:
      
        1) TSB hashes have to be flushed before TLB on sparc64, from Dave
           Kleikamp.
      
        2) LEON timer interrupts can get stuck, from Andreas Larsson.
      
        3) Sparc64 needs to handle lack of address-congruence devicetree
           property, from Bob Picco"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
        sparc: tsb must be flushed before tlb
        sparc,leon: Convert to use devm_ioremap_resource
        sparc64 address-congruence property
        sparc32, leon: Enable interrupts before going idle to avoid getting stuck
        sparc32, leon: Remove separate "ticker" timer for SMP
        sparc: kernel: using strlcpy() instead of strcpy()
        arch: sparc: prom: looping issue, need additional length check in the outside looping
        sparc: remove inline marking of EXPORT_SYMBOL functions
        sparc: Switch to asm-generic/linkage.h
      b9e763cd
    • Linus Torvalds's avatar
      Merge branch 'parisc-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux · aa4927b9
      Linus Torvalds authored
      Pull parisc fixes from Helge Deller:
       "This contains a kernel segfault fix when reading /proc/kpageflags or
        /proc/kpagecount, two fixes for the serial port and PCI graphic card
        support on C8000 workstations and a fix to use unshadowed registers
        for flushing D- and I-caches."
      
      * 'parisc-3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
        parisc: Use unshadowed index register for flush instructions in flush_dcache_page_asm and flush_icache_page_asm
        parisc: provide pci_mmap_page_range() for parisc
        parisc: fix serial ports on C8000 workstation
        parisc: fix kernel BUG at arch/parisc/include/asm/mmzone.h:50 (part 2)
      aa4927b9
    • James Hogan's avatar
      metag: fix mm/hugetlb.c build breakage · 418a133b
      James Hogan authored
      Commit 106c992a ("mm/hugetlb: add more arch-defined huge_pte
      functions") added an include of <asm-generic/hugetlb.h> to each
      architecture's <asm/hugetlb.h> (except s390).  Unfortunately metag was
      missed which resulted in build errors when hugetlbfs is enabled (see
      below).
      
      Add the include for metag too to fix the build errors:
      
        mm/hugetlb.c In function 'make_huge_pte':
        mm/hugetlb.c +2250 : error: implicit declaration of function 'huge_pte_mkwrite'
        mm/hugetlb.c +2250 : error: implicit declaration of function 'huge_pte_mkdirty'
        ...
      Signed-off-by: default avatarJames Hogan <james.hogan@imgtec.com>
      Cc: Gerald Schaefer <gerald.schaefer@de.ibm.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Michal Hocko <mhocko@suse.cz>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      418a133b
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm · 262fd6ff
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
       "The larger changes this time are
      
         - "ARM: 7755/1: handle user space mapped pages in flush_kernel_dcache_page"
           which fixes more data corruption problems with O_DIRECT
      
         - "ARM: 7759/1: decouple CPU offlining from reboot/shutdown" which
           gets us back to working shutdown/reboot on SMP platforms
      
         - "ARM: 7752/1: errata: LoUIS bit field in CLIDR register is incorrect"
           which fixes a shutdown regression found in v3.10 on Versatile
           Express platforms.
      
        The remainder are the quite small, maybe one or two line changes"
      
      * 'fixes' of git://git.linaro.org/people/rmk/linux-arm:
        ARM: 7759/1: decouple CPU offlining from reboot/shutdown
        ARM: 7756/1: zImage/virt: remove hyp-stub.S during distclean
        ARM: 7755/1: handle user space mapped pages in flush_kernel_dcache_page
        ARM: 7754/1: Fix the CPU ID and the mask associated to the PJ4B
        ARM: 7753/1: map_init_section flushes incorrect pmd
        ARM: 7752/1: errata: LoUIS bit field in CLIDR register is incorrect
      262fd6ff
    • Sylwester Nawrocki's avatar
      [media] exynos4-is: Fix FIMC-IS clocks initialization · 722a860e
      Sylwester Nawrocki authored
      The ISP clock register content is not preserved over the ISP power domain
      off/on cycle. Instead of setting the clock frequencies once at probe time
      the clock rates set up is moved to the runtime_resume handler, which is
      invoked after the related power domain is already enabled, ensuring the
      clocks are properly configured when the device is actively used.
      This fixes the FIMC-IS malfunctions and STREAM ON timeout errors accuring
      on some boards:
      [ 59.860000] fimc_is_general_irq_handler:583 ISR_NDONE: 5: 0x800003e8, IS_ERROR_UNKNOWN
      [ 59.860000] fimc_is_general_irq_handler:586 IS_ERROR_TIME_OUT
      Signed-off-by: default avatarSylwester Nawrocki <s.nawrocki@samsung.com>
      Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
      722a860e
    • Steven Rostedt's avatar
      tracing/context-tracking: Add preempt_schedule_context() for tracing · 29bb9e5a
      Steven Rostedt authored
      Dave Jones hit the following bug report:
      
       ===============================
       [ INFO: suspicious RCU usage. ]
       3.10.0-rc2+ #1 Not tainted
       -------------------------------
       include/linux/rcupdate.h:771 rcu_read_lock() used illegally while idle!
       other info that might help us debug this:
       RCU used illegally from idle CPU! rcu_scheduler_active = 1, debug_locks = 0
       RCU used illegally from extended quiescent state!
       2 locks held by cc1/63645:
        #0:  (&rq->lock){-.-.-.}, at: [<ffffffff816b39fd>] __schedule+0xed/0x9b0
        #1:  (rcu_read_lock){.+.+..}, at: [<ffffffff8109d645>] cpuacct_charge+0x5/0x1f0
      
       CPU: 1 PID: 63645 Comm: cc1 Not tainted 3.10.0-rc2+ #1 [loadavg: 40.57 27.55 13.39 25/277 64369]
       Hardware name: Gigabyte Technology Co., Ltd. GA-MA78GM-S2H/GA-MA78GM-S2H, BIOS F12a 04/23/2010
        0000000000000000 ffff88010f78fcf8 ffffffff816ae383 ffff88010f78fd28
        ffffffff810b698d ffff88011c092548 000000000023d073 ffff88011c092500
        0000000000000001 ffff88010f78fd60 ffffffff8109d7c5 ffffffff8109d645
       Call Trace:
        [<ffffffff816ae383>] dump_stack+0x19/0x1b
        [<ffffffff810b698d>] lockdep_rcu_suspicious+0xfd/0x130
        [<ffffffff8109d7c5>] cpuacct_charge+0x185/0x1f0
        [<ffffffff8109d645>] ? cpuacct_charge+0x5/0x1f0
        [<ffffffff8108dffc>] update_curr+0xec/0x240
        [<ffffffff8108f528>] put_prev_task_fair+0x228/0x480
        [<ffffffff816b3a71>] __schedule+0x161/0x9b0
        [<ffffffff816b4721>] preempt_schedule+0x51/0x80
        [<ffffffff816b4800>] ? __cond_resched_softirq+0x60/0x60
        [<ffffffff816b6824>] ? retint_careful+0x12/0x2e
        [<ffffffff810ff3cc>] ftrace_ops_control_func+0x1dc/0x210
        [<ffffffff816be280>] ftrace_call+0x5/0x2f
        [<ffffffff816b681d>] ? retint_careful+0xb/0x2e
        [<ffffffff816b4805>] ? schedule_user+0x5/0x70
        [<ffffffff816b4805>] ? schedule_user+0x5/0x70
        [<ffffffff816b6824>] ? retint_careful+0x12/0x2e
       ------------[ cut here ]------------
      
      What happened was that the function tracer traced the schedule_user() code
      that tells RCU that the system is coming back from userspace, and to
      add the CPU back to the RCU monitoring.
      
      Because the function tracer does a preempt_disable/enable_notrace() calls
      the preempt_enable_notrace() checks the NEED_RESCHED flag. If it is set,
      then preempt_schedule() is called. But this is called before the user_exit()
      function can inform the kernel that the CPU is no longer in user mode and
      needs to be accounted for by RCU.
      
      The fix is to create a new preempt_schedule_context() that checks if
      the kernel is still in user mode and if so to switch it to kernel mode
      before calling schedule. It also switches back to user mode coming back
      from schedule in need be.
      
      The only user of this currently is the preempt_enable_notrace(), which is
      only used by the tracing subsystem.
      Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/1369423420.6828.226.camel@gandalf.local.homeSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      29bb9e5a
    • Vincent Guittot's avatar
      sched: Fix clear NOHZ_BALANCE_KICK · 873b4c65
      Vincent Guittot authored
      I have faced a sequence where the Idle Load Balance was sometime not
      triggered for a while on my platform, in the following scenario:
      
       CPU 0 and CPU 1 are running tasks and CPU 2 is idle
      
       CPU 1 kicks the Idle Load Balance
       CPU 1 selects CPU 2 as the new Idle Load Balancer
       CPU 2 sets NOHZ_BALANCE_KICK for CPU 2
       CPU 2 sends a reschedule IPI to CPU 2
      
       While CPU 3 wakes up, CPU 0 or CPU 1 migrates a waking up task A on CPU 2
      
       CPU 2 finally wakes up, runs task A and discards the Idle Load Balance
             task A quickly goes back to sleep (before a tick occurs on CPU 2)
       CPU 2 goes back to idle with NOHZ_BALANCE_KICK set
      
      Whenever CPU 2 will be selected as the ILB, no reschedule IPI will be sent
      because NOHZ_BALANCE_KICK is already set and no Idle Load Balance will be
      performed.
      
      We must wait for the sched softirq to be raised on CPU 2 thanks to another
      part the kernel to come back to clear NOHZ_BALANCE_KICK.
      
      The proposed solution clears NOHZ_BALANCE_KICK in schedule_ipi if
      we can't raise the sched_softirq for the Idle Load Balance.
      
      Change since V1:
      
      - move the clear of NOHZ_BALANCE_KICK in got_nohz_idle_kick if the ILB
        can't run on this CPU (as suggested by Peter)
      Signed-off-by: default avatarVincent Guittot <vincent.guittot@linaro.org>
      Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/1370419991-13870-1-git-send-email-vincent.guittot@linaro.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      873b4c65
    • Stephane Eranian's avatar
      perf/x86: Fix broken PEBS-LL support on SNB-EP/IVB-EP · f1a52789
      Stephane Eranian authored
      This patch fixes broken support of PEBS-LL on SNB-EP/IVB-EP.
      For some reason, the LDLAT extra reg definition for snb_ep
      showed up as duplicate in the snb table.
      
      This patch moves the definition of LDLAT back into the
      snb_ep table.
      
      Thanks to Don Zickus for tracking this one down.
      Signed-off-by: default avatarStephane Eranian <eranian@google.com>
      Signed-off-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Link: http://lkml.kernel.org/r/20130607212210.GA11849@quadSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
      f1a52789