Skip to content
  1. Nov 28, 2015
    • Linus Torvalds's avatar
      Merge branch 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · 7e4b9359
      Linus Torvalds authored
      Pull security layer fixes from James Morris:
       "A fix for SELinux policy processing (regression introduced by
        commit fa1aa143: "selinux: extended permissions for ioctls"), as
        well as a fix for the user-triggerable oops in the Keys code"
      
      * 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        KEYS: Fix handling of stored error in a negatively instantiated user key
        selinux: fix bug in conditional rules handling
      7e4b9359
    • Linus Torvalds's avatar
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · c64410f3
      Linus Torvalds authored
      Pull ARM SoC fixes from Arnd Bergmann:
       "There is a small backlog of at91 patches here, the most significant is
        the addition of some sama5d2 Xplained nodes that were waiting on an
        MFD include file to get merged through another tree.
      
        We normally try to sort those out before the merge window opens, but
        the maintainer wasn't aware of that here and I decided to merge the
        changes this time as an exception.
      
        On OMAP a series of audio changes for dra7 missed the merge window but
        turned out to be necessary to fix a boot time imprecise external abort
        error and to get audio working.
      
        The other changes are the usual simple changes, here is a list sorted
        by platform:
      
        at91:
      	removal of a useless defconfig option
      	removal of some legacy DT pieces
      	use of the proper watchdog compatible string
      	update of the MAINTAINERS entries for some Atmel drivers
      
        drivers/scpi:
      	hide get_scpi_ops in module from built-in code
      
        imx:
      	add missing .irq_set_type for i.MX GPC irq_chip.
      	fix the wrong spi-num-chipselects settings for Vybrid DSPI devices.
      	fix a merge error in Vybrid dts regarding to ADC device property
      
        keystone:
              fix the optional PDSP firmware loading
              fix linking RAM setup for QMs
              fix crash with clk_ignore_unused
      
        mediatek:
      	Enable SCPSYS power domain driver by default
      
        mvebu:
      	fix QNAP TS219 power-off in dts
      	fix legacy get_irqnr_and_base for dove and orion5x
      
        omap:
      	fix l4 related boot time errors for dm81xx
      	use lockless cldm/pwrdm api in omap4_boot_secondary
      	remove t410 abort handler to avoid hiding other critical errors
      	mark cpuidle tracepoints as _rcuidle
      	fix module alias for omap-ocp2scp
      
        pxa:
      	palm: Fix typos in PWM lookup table code
      
        renesas:
      	missing __initconst annotation for r8a7793_boards_compat_dt
      
        rockchip:
      	disable mmc-tuning on the veyron-minnie board
      	adding the init state for the over-temperature-protection
      
        zx:
      	only build power domain code when CONFIG_PM=y"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (31 commits)
        ARM: OMAP4+: SMP: use lockless clkdm/pwrdm api in omap4_boot_secondary
        arm: omap2+: add missing HWMOD_NO_IDLEST in 81xx hwmod data
        ARM: orion5x: Fix legacy get_irqnr_and_base
        ARM: dove: Fix legacy get_irqnr_and_base
        soc: Mediatek: Enable SCPSYS power domain driver by default
        ARM: dts: vfxxx: Fix dspi[01] spi-num-chipselects.
        ARM: dts: keystone: k2l: fix kernel crash when clk_ignore_unused is not in bootargs
        soc: ti: knav_qmss_queue: Fix linking RAM setup for queue managers
        soc: ti: use request_firmware_direct() as acc firmware is optional
        ARM: imx: add platform irq type setting in gpc
        ARM: dts: vfxxx: Fix erroneous property in esdhc0 node
        ARM: shmobile: r8a7793: proper constness with __initconst
        scpi: hide get_scpi_ops in module from built-in code
        ARM: zx: only build power domain code when CONFIG_PM=y
        ARM: pxa: palm: Fix typos in PWM lookup table code
        ARM: dts: Kirkwood: Fix QNAP TS219 power-off
        ARM: dts: rockchip: Add OTP gpio pinctrl to rk3288 tsadc node
        ARM: dts: rockchip: temporarily remove emmc hs200 speed from rk3288 minnie
        MAINTAINERS: Atmel drivers: change NAND and ISI entries
        ARM: at91/dt: sama5d2 Xplained: add several devices
        ...
      c64410f3
    • Linus Torvalds's avatar
      Merge tag 'pm+acpi-4.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · a3b11c79
      Linus Torvalds authored
      Pull more power management and ACPI fixes from Rafael Wysocki:
       "These fix one recent regression (cpufreq core), fix up two features
        added recently (ACPI CPPC support, SCPI support in the arm_big_little
        cpufreq driver) and fix three older bugs in the intel_pstate driver.
      
        Specifics:
      
         - Fix a recent regression in the cpufreq core causing it to fail to
           clean up sysfs directories properly on cpufreq driver removal
           (Viresh Kumar).
      
         - Fix a build problem in the SCPI support code recently added to the
           arm_big_little cpufreq driver (Punit Agrawal).
      
         - Fix up the recently added CPPC cpufreq frontend to process the CPU
           coordination information provided by the platform firmware
           correctly (Ashwin Chaugule).
      
         - Fix the intel_pstate driver to behave as intended when switched
           over to the "performance" mode via sysfs if hardware-driven P-state
           selection (HWP) is enabled (Alexandra Yates).
      
         - Fix two rounding errors in the intel_pstate driver that sometimes
           cause it to use lower P-states than requested (Prarit Bhargava)"
      
      * tag 'pm+acpi-4.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        intel_pstate: Fix "performance" mode behavior with HWP enabled
        cpufreq: SCPI: Depend on SCPI clk driver
        cpufreq: intel_pstate: Fix limits->max_perf rounding error
        cpufreq: intel_pstate: Fix limits->max_policy_pct rounding error
        cpufreq: Always remove sysfs cpuX/cpufreq link on ->remove_dev()
        cpufreq: CPPC: Initialize and check CPUFreq CPU co-ord type correctly
      a3b11c79
    • Linus Torvalds's avatar
      Merge tag 'sound-4.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 17247340
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Here are no big surprises but just all small fixes, mostly
        device-specific quirks for HD-audio and USB-audio:
      
         - Fix for detection of FireWire DICE Loud devices
         - Intel Broxton HDMI/DP PCI IDs and relevant quirks
         - Noise fixes: Dell XPS13 2015 model, Dell Latitude E6440, Gigabyte
           Z170X mobo
         - Fix the headphone mixer assignment on HP laptops for PulseAudio
         - USB-MIDI fixes for Medeli DD305 and CH345
         - Apply fixup for Acer Aspire One Cloudbook 14"
      
      * tag 'sound-4.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda - Fix noise on Gigabyte Z170X mobo
        ALSA: hda - Fix headphone noise after Dell XPS 13 resume back from S3
        ALSA: hda - Apply HP headphone fixups more generically
        ALSA: hda - Add fixup for Acer Aspire One Cloudbook 14
        ALSA: hda - apply SKL display power request/release patch to BXT
        ALSA: hda - add PCI IDs for Intel Broxton
        ALSA: usb-audio: work around CH345 input SysEx corruption
        ALSA: usb-audio: prevent CH345 multiport output SysEx corruption
        ALSA: usb-audio: add packet size quirk for the Medeli DD305
        ALSA: dice: fix detection of Loud devices
        ALSA: hda - Fix noise on Dell Latitude E6440
      17247340
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 5d868627
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
      
       - Build fix when !CONFIG_UID16 (the patch is touching generic files but
         it only affects arm64 builds; submitted by Arnd Bergmann)
      
       - EFI fixes to deal with early_memremap() returning NULL and correctly
         mapping run-time regions
      
       - Fix CPUID register extraction of unsigned fields (not to be
         sign-extended)
      
       - ASID allocator fix to deal with long-running tasks over multiple
         generation roll-overs
      
       - Revert support for marking page ranges as contiguous PTEs (it leads
         to TLB conflicts and requires additional non-trivial kernel changes)
      
       - Proper early_alloc() failure check
      
       - Disable KASan for 48-bit VA and 16KB page configuration (the pgd is
         larger than the KASan shadow memory)
      
       - Update the fault_info table (original descriptions based on early
         engineering spec)
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: efi: fix initcall return values
        arm64: efi: deal with NULL return value of early_memremap()
        arm64: debug: Treat the BRPs/WRPs as unsigned
        arm64: cpufeature: Track unsigned fields
        arm64: cpufeature: Add helpers for extracting unsigned values
        Revert "arm64: Mark kernel page ranges contiguous"
        arm64: mm: keep reserved ASIDs in sync with mm after multiple rollovers
        arm64: KASAN depends on !(ARM64_16K_PAGES && ARM64_VA_BITS_48)
        arm64: efi: correctly map runtime regions
        arm64: mm: fix fault_info table xFSC decoding
        arm64: fix building without CONFIG_UID16
        arm64: early_alloc: Fix check for allocation failure
      5d868627
    • Linus Torvalds's avatar
      Merge tag 'nios2-v4.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/lftan/nios2 · 5a44ed0d
      Linus Torvalds authored
      Pull nios2 fix from Ley Foon Tan:
       "nios2: fix cache coherency"
      
      * tag 'nios2-v4.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/lftan/nios2:
        nios2: fix cache coherency
      5a44ed0d
    • Linus Torvalds's avatar
      Merge tag 'arc-4.4-rc3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · 03018ac2
      Linus Torvalds authored
      Pull ARC fixes from Vineet Gupta:
       - Fix for perf callgraph unwinding causing RCU stalls
       - Fix to enable Linux to run on non-default Interrupt priority 0
       - Removal of pointless SYNC from __switch_to()
      
      * tag 'arc-4.4-rc3-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
        ARC: dw2 unwind: Remove falllback linear search thru FDE entries
        ARC: remove SYNC from __switch_to()
        ARCv2: Use the default irq priority for idle sleep
        ARC: Abstract out ISA specific SLEEP args
        ARC: comments update
        ARC: switch to arc-linux- CROSS_COMPILE prefix across all configs
      03018ac2
    • Arnd Bergmann's avatar
      Merge tag 'v4.4-rockchip-dts32-fixes1' of... · a405fd1b
      Arnd Bergmann authored
      Merge tag 'v4.4-rockchip-dts32-fixes1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into fixes
      
      Merge "ARM: rockchip: devicetree fixes for 4.4" from Heiko Stuebner:
      
      Two fixes to Rockchip devicetree files, disabling the mmc-tuning
      on the veyron-minnie board for now and adding the init state for
      the over-temperature-protection to prevent glitches making the
      system reboot sometimes.
      
      * tag 'v4.4-rockchip-dts32-fixes1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
        ARM: dts: rockchip: Add OTP gpio pinctrl to rk3288 tsadc node
        ARM: dts: rockchip: temporarily remove emmc hs200 speed from rk3288 minnie
      a405fd1b
    • Arnd Bergmann's avatar
      Merge tag 'mvebu-fixes-4.4-1' of git://git.infradead.org/linux-mvebu into fixes · 5530f851
      Arnd Bergmann authored
      Merge "mvebu fixes for 4.4 (part 1)" from Jason Cooper:
      
      - Fix QNAP TS219 power-off in dts
      - Fix legacy get_irqnr_and_base for dove and orion5x
      
      * tag 'mvebu-fixes-4.4-1' of git://git.infradead.org/linux-mvebu:
        ARM: orion5x: Fix legacy get_irqnr_and_base
        ARM: dove: Fix legacy get_irqnr_and_base
        ARM: dts: Kirkwood: Fix QNAP TS219 power-off
      5530f851
    • Arnd Bergmann's avatar
      Merge tag 'renesas-fixes-for-v4.4' of... · 97a586d2
      Arnd Bergmann authored
      Merge tag 'renesas-fixes-for-v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into fixes
      
      Merge "Renesas ARM Based SoC Fixes for v4.4" from Simon Horman:
      
      * r8a7793 SoC: Annotate r8a7793_boards_compat_dt with __initconst
        Aside from being correct this builds that otherwise
        fail with section mismatch errors.
      
      * tag 'renesas-fixes-for-v4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas:
        ARM: shmobile: r8a7793: proper constness with __initconst
      97a586d2
  2. Nov 27, 2015
  3. Nov 26, 2015
    • Catalin Marinas's avatar
      Revert "arm64: Mark kernel page ranges contiguous" · 667c2759
      Catalin Marinas authored
      This reverts commit 348a65cd
      
      .
      
      Incorrect page table manipulation that does not respect the ARM ARM
      recommended break-before-make sequence may lead to TLB conflicts. The
      contiguous PTE patch makes the system even more susceptible to such
      errors by changing the mapping from a single page to a contiguous range
      of pages. An additional TLB invalidation would reduce the risk window,
      however, the correct fix is to switch to a temporary swapper_pg_dir.
      Once the correct workaround is done, the reverted commit will be
      re-applied.
      
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Reported-by: default avatarJeremy Linton <jeremy.linton@arm.com>
      667c2759
    • Will Deacon's avatar
      arm64: mm: keep reserved ASIDs in sync with mm after multiple rollovers · 0ebea808
      Will Deacon authored
      
      
      Under some unusual context-switching patterns, it is possible to end up
      with multiple threads from the same mm running concurrently with
      different ASIDs:
      
      1. CPU x schedules task t with mm p containing ASID a and generation g
         This task doesn't block and the CPU doesn't context switch.
         So:
           * per_cpu(active_asid, x) = {g,a}
           * p->context.id = {g,a}
      
      2. Some other CPU generates an ASID rollover. The global generation is
         now (g + 1). CPU x is still running t, with no context switch and
         so per_cpu(reserved_asid, x) = {g,a}
      
      3. CPU y schedules task t', which shares mm p with t. The generation
         mismatches, so we take the slowpath and hit the reserved ASID from
         CPU x. p is then updated so that p->context.id = {g + 1,a}
      
      4. CPU y schedules some other task u, which has an mm != p.
      
      5. Some other CPU generates *another* CPU rollover. The global
         generation is now (g + 2). CPU x is still running t, with no context
         switch and so per_cpu(reserved_asid, x) = {g,a}.
      
      6. CPU y once again schedules task t', but now *fails* to hit the
         reserved ASID from CPU x because of the generation mismatch. This
         results in a new ASID being allocated, despite the fact that t is
         still running on CPU x with the same mm.
      
      Consequently, TLBIs (e.g. as a result of CoW) will not be synchronised
      between the two threads.
      
      This patch fixes the problem by updating all of the matching reserved
      ASIDs when we hit on the slowpath (i.e. in step 3 above). This keeps
      the reserved ASIDs in-sync with the mm and avoids the problem.
      
      Reported-by: default avatarTony Thompson <anthony.thompson@arm.com>
      Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      0ebea808
    • Andrey Ryabinin's avatar
      arm64: KASAN depends on !(ARM64_16K_PAGES && ARM64_VA_BITS_48) · f1b9032f
      Andrey Ryabinin authored
      
      
      On KASAN + 16K_PAGES + 48BIT_VA
       arch/arm64/mm/kasan_init.c: In function ‘kasan_early_init’:
       include/linux/compiler.h:484:38: error: call to ‘__compiletime_assert_95’ declared with attribute error: BUILD_BUG_ON failed: !IS_ALIGNED(KASAN_SHADOW_END, PGDIR_SIZE)
          _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
      
      Currently KASAN will not work on 16K_PAGES and 48BIT_VA, so
      forbid such configuration to avoid above build failure.
      
      Signed-off-by: default avatarAndrey Ryabinin <aryabinin@virtuozzo.com>
      Reported-by: default avatarSuzuki K. Poulose <Suzuki.Poulose@arm.com>
      Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      f1b9032f
    • Ley Foon Tan's avatar
      nios2: fix cache coherency · 8e3d7c83
      Ley Foon Tan authored
      
      
      There is intermittent cache coherency issue caught in toolchian tests.
      Revert to use flushd.
      
      Signed-off-by: default avatarLey Foon Tan <lftan@altera.com>
      8e3d7c83
    • James Morris's avatar
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 78c4a49a
      Linus Torvalds authored
      Pull vfs fixes from Al Viro:
       "A couple of fixes for sendfile lockups caught by Dmitry + a fix for
        ancient sysvfs symlink breakage"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        vfs: Avoid softlockups with sendfile(2)
        vfs: Make sendfile(2) killable even better
        fix sysvfs symlinks
      78c4a49a
    • Arnd Bergmann's avatar
      Merge tag 'omap-for-v4.4/fixes-rc2' of... · 5597afad
      Arnd Bergmann authored
      Merge tag 'omap-for-v4.4/fixes-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
      
      Merge "Fixes for omaps for v4.4-rc cycle" from Tony Lindgren:
      
      - A series of audio changes for dra7 that missed the merge window but turned
        out to be necessary to fix a boot time imprecise external abort error and to
        getaudio working
      
      - Fix l4 related boot time errors for dm81xx
      
      - Use lockless cldm/pwrdm api in omap4_boot_secondary
      
      - Remove t410 custom abort handler that is no longer needed and may
        hide other critical errors
      
      - Mark cpuidle tracepoints as _rcuidle
      
      - Fix module alias for omap-ocp2scp
      
      * tag 'omap-for-v4.4/fixes-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
        ARM: OMAP4+: SMP: use lockless clkdm/pwrdm api in omap4_boot_secondary
        arm: omap2+: add missing HWMOD_NO_IDLEST in 81xx hwmod data
        ARM: OMAP2+: remove custom abort handler for t410
        ARM: OMAP: DRA7: hwmod: Add data for McASP3
        ARM: OMAP2+: hwmod: Add hwmod flag for HWMOD_OPT_CLKS_NEEDED
        ARM: dts: dra7: Fix McASP3 node regarding to clocks
        bus: omap-ocp2scp: Fix module alias
        ARM: OMAP2+: PM: Denote the cpuidle tracepoints as _rcuidle()
      5597afad
    • Arnd Bergmann's avatar
      Merge tag 'keystone-fixes-for-4.4' of... · e6b66dfb
      Arnd Bergmann authored
      Merge tag 'keystone-fixes-for-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone into fixes
      
      Merge "Few Keystone fixes for 4.4-rcx" from Santosh Shilimkar:
      	- Fix the optional PDSP firmware loading
      	- Fix linking RAM setup for QMs
      	- Fix crash with clk_ignore_unused
      
      * tag 'keystone-fixes-for-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone:
        ARM: dts: keystone: k2l: fix kernel crash when clk_ignore_unused is not in bootargs
        soc: ti: knav_qmss_queue: Fix linking RAM setup for queue managers
        soc: ti: use request_firmware_direct() as acc firmware is optional
      e6b66dfb
    • Arnd Bergmann's avatar
      Merge tag 'v4.4-rc2' into fixes · d3de94ba
      Arnd Bergmann authored
      Linux 4.4-rc2 is backmerged from the keystone fixes.
      d3de94ba
    • Arnd Bergmann's avatar
      Merge tag 'imx-fixes-4.4' of... · fabc2c9c
      Arnd Bergmann authored
      Merge tag 'imx-fixes-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into fixes
      
      Merge "The i.MX fixes for 4.4" from Shawn Guo:
      
      - Add missing .irq_set_type for i.MX GPC irq_chip.  It fixes an issue
        that device IRQ type setting doesn't match the one specified in device
        tree, since stacked IRQ domain is adopted in GPC driver.
      - Fix the wrong spi-num-chipselects settings for Vybrid DSPI devices.
      - Fix a merge error in Vybrid dts regarding to ADC device property
        fsl,adck-max-frequency
      
      * tag 'imx-fixes-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux:
        ARM: dts: vfxxx: Fix dspi[01] spi-num-chipselects.
        ARM: imx: add platform irq type setting in gpc
        ARM: dts: vfxxx: Fix erroneous property in esdhc0 node
      fabc2c9c
    • Alexandra Yates's avatar
      intel_pstate: Fix "performance" mode behavior with HWP enabled · 584ee3dc
      Alexandra Yates authored
      
      
      If hardware-driven P-state selection (HWP) is enabled, the
      "performance" mode of intel_pstate should only allow the processor
      to use the highest-performance P-state available.  That is not
      the case currently, so make it actually happen.
      
      Acked-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      Signed-off-by: default avatarAlexandra Yates <alexandra.yates@linux.intel.com>
      [ rjw: Subject and changelog ]
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      584ee3dc
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.dk/linux-block · 9b81d512
      Linus Torvalds authored
      Pull more block layer fixes from Jens Axboe:
       "I wasn't going to send off a new pull before next week, but the blk
        flush fix from Jan from the other day introduced a regression.  It's
        rare enough not to have hit during testing, since it requires both a
        device that rejects the first flush, and bad timing while it does
        that.  But since someone did hit it, let's get the revert into 4.4-rc3
        so we don't have a released rc with that known issue.
      
        Apart from that revert, three other fixes:
      
         - From Christoph, a fix for a missing unmap in NVMe request
           preparation.
      
         - An NVMe fix from Nishanth that fixes data corruption on powerpc.
      
         - Also from Christoph, fix a list_del() attempt on blk-mq that didn't
           have a matching list_add() at timer start"
      
      * 'for-linus' of git://git.kernel.dk/linux-block:
        Revert "blk-flush: Queue through IO scheduler when flush not required"
        block: fix blk_abort_request for blk-mq drivers
        nvme: add missing unmaps in nvme_queue_rq
        NVMe: default to 4k device page size
      9b81d512
    • Grygorii Strashko's avatar
      ARM: OMAP4+: SMP: use lockless clkdm/pwrdm api in omap4_boot_secondary · 918af9f9
      Grygorii Strashko authored
      
      
      OMAP CPU hotplug uses cpu1's clocks and power domains for CPU1 wake up
      from low power states (or turn on CPU1). This part of code is also
      part of system suspend (disable_nonboot_cpus()).
      >From other side, cpu1's clocks and power domains are used by CPUIdle. All above
      functionality is mutually exclusive and, therefore, lockless clkdm/pwrdm api
      can be used in omap4_boot_secondary().
      
      This fixes below back-trace on -RT which is triggered by
      pwrdm_lock/unlock():
      
      BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:917
       in_atomic(): 1, irqs_disabled(): 0, pid: 118, name: sh
       9 locks held by sh/118:
        #0:  (sb_writers#4){.+.+.+}, at: [<c0144a6c>] vfs_write+0x13c/0x164
        #1:  (&of->mutex){+.+.+.}, at: [<c01b4c70>] kernfs_fop_write+0x48/0x19c
        #2:  (s_active#24){.+.+.+}, at: [<c01b4c78>] kernfs_fop_write+0x50/0x19c
        #3:  (device_hotplug_lock){+.+.+.}, at: [<c03cbff0>] lock_device_hotplug_sysfs+0xc/0x4c
        #4:  (&dev->mutex){......}, at: [<c03cd284>] device_online+0x14/0x88
        #5:  (cpu_add_remove_lock){+.+.+.}, at: [<c003af90>] cpu_up+0x50/0x1a0
        #6:  (cpu_hotplug.lock){++++++}, at: [<c003ae48>] cpu_hotplug_begin+0x0/0xc4
        #7:  (cpu_hotplug.lock#2){+.+.+.}, at: [<c003aec0>] cpu_hotplug_begin+0x78/0xc4
        #8:  (boot_lock){+.+...}, at: [<c002b254>] omap4_boot_secondary+0x1c/0x178
       Preemption disabled at:[<  (null)>]   (null)
      
       CPU: 0 PID: 118 Comm: sh Not tainted 4.1.12-rt11-01998-gb4a62c3-dirty #137
       Hardware name: Generic DRA74X (Flattened Device Tree)
       [<c0017574>] (unwind_backtrace) from [<c0013be8>] (show_stack+0x10/0x14)
       [<c0013be8>] (show_stack) from [<c05a8670>] (dump_stack+0x80/0x94)
       [<c05a8670>] (dump_stack) from [<c05ad158>] (rt_spin_lock+0x24/0x54)
       [<c05ad158>] (rt_spin_lock) from [<c0030dac>] (clkdm_wakeup+0x10/0x2c)
       [<c0030dac>] (clkdm_wakeup) from [<c002b2c0>] (omap4_boot_secondary+0x88/0x178)
       [<c002b2c0>] (omap4_boot_secondary) from [<c0015d00>] (__cpu_up+0xc4/0x164)
       [<c0015d00>] (__cpu_up) from [<c003b09c>] (cpu_up+0x15c/0x1a0)
       [<c003b09c>] (cpu_up) from [<c03cd2d4>] (device_online+0x64/0x88)
       [<c03cd2d4>] (device_online) from [<c03cd360>] (online_store+0x68/0x74)
       [<c03cd360>] (online_store) from [<c01b4ce0>] (kernfs_fop_write+0xb8/0x19c)
       [<c01b4ce0>] (kernfs_fop_write) from [<c0144124>] (__vfs_write+0x20/0xd8)
       [<c0144124>] (__vfs_write) from [<c01449c0>] (vfs_write+0x90/0x164)
       [<c01449c0>] (vfs_write) from [<c01451e4>] (SyS_write+0x44/0x9c)
       [<c01451e4>] (SyS_write) from [<c0010240>] (ret_fast_syscall+0x0/0x54)
       CPU1: smp_ops.cpu_die() returned, trying to resuscitate
      
      Cc: Tero Kristo <t-kristo@ti.com>
      Signed-off-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      918af9f9
    • Tony Lindgren's avatar
      970259bf
    • Neil Armstrong's avatar
      arm: omap2+: add missing HWMOD_NO_IDLEST in 81xx hwmod data · 29f5b34c
      Neil Armstrong authored
      
      
      Add missing HWMOD_NO_IDLEST hwmod flag for entries not
      having omap4 clkctrl values.
      The emac0 hwmod flag fixes the davinci_emac driver probe
      since the return of pm_resume() call is now checked.
      
      This solves the following boot errors :
      [    0.121429] omap_hwmod: l4_ls: _wait_target_ready failed: -16
      [    0.121441] omap_hwmod: l4_ls: cannot be enabled for reset (3)
      [    0.124342] omap_hwmod: l4_hs: _wait_target_ready failed: -16
      [    0.124352] omap_hwmod: l4_hs: cannot be enabled for reset (3)
      [    1.967228] omap_hwmod: emac0: _wait_target_ready failed: -16
      
      Cc: Brian Hutchinson <b.hutchman@gmail.com>
      Signed-off-by: default avatarNeil Armstrong <narmstrong@baylibre.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      29f5b34c
    • Jens Axboe's avatar
      Revert "blk-flush: Queue through IO scheduler when flush not required" · dcd8376c
      Jens Axboe authored
      This reverts commit 1b2ff19e.
      
      Jan writes:
      
      --
      
      Thanks for report! After some investigation I found out we allocate
      elevator specific data in __get_request() only for non-flush requests. And
      this is actually required since the flush machinery uses the space in
      struct request for something else. Doh. So my patch is just wrong and not
      easy to fix since at the time __get_request() is called we are not sure
      whether the flush machinery will be used in the end. Jens, please revert
      1b2ff19e. Thanks!
      
      I'm somewhat surprised that you can reliably hit the race where flushing
      gets disabled for the device just while the request is in flight. But I
      guess during boot it makes some sense.
      
      --
      
      So let's just revert it, we can fix the queue run manually after the
      fact. This race is rare enough that it didn't trigger in testing, it
      requires the specific disable-while-in-flight scenario to trigger.
      dcd8376c
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 4cf193b4
      Linus Torvalds authored
      Pull KVM fixes from Paolo Bonzini:
       "Bug fixes for all architectures.  Nothing really stands out"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (21 commits)
        KVM: nVMX: remove incorrect vpid check in nested invvpid emulation
        arm64: kvm: report original PAR_EL1 upon panic
        arm64: kvm: avoid %p in __kvm_hyp_panic
        KVM: arm/arm64: vgic: Trust the LR state for HW IRQs
        KVM: arm/arm64: arch_timer: Preserve physical dist. active state on LR.active
        KVM: arm/arm64: Fix preemptible timer active state crazyness
        arm64: KVM: Add workaround for Cortex-A57 erratum 834220
        arm64: KVM: Fix AArch32 to AArch64 register mapping
        ARM/arm64: KVM: test properly for a PTE's uncachedness
        KVM: s390: fix wrong lookup of VCPUs by array index
        KVM: s390: avoid memory overwrites on emergency signal injection
        KVM: Provide function for VCPU lookup by id
        KVM: s390: fix pfmf intercept handler
        KVM: s390: enable SIMD only when no VCPUs were created
        KVM: x86: request interrupt window when IRQ chip is split
        KVM: x86: set KVM_REQ_EVENT on local interrupt request from user space
        KVM: x86: split kvm_vcpu_ready_for_interrupt_injection out of dm_request_for_irq_injection
        KVM: x86: fix interrupt window handling in split IRQ chip case
        MIPS: KVM: Uninit VCPU in vcpu_create error path
        MIPS: KVM: Fix CACHE immediate offset sign extension
        ...
      4cf193b4
  4. Nov 25, 2015
    • Mark Rutland's avatar
      arm64: efi: correctly map runtime regions · 3b12acf4
      Mark Rutland authored
      
      
      The kernel may use a page granularity of 4K, 16K, or 64K depending on
      configuration.
      
      When mapping EFI runtime regions, we use memrange_efi_to_native to round
      the physical base address of a region down to a kernel page boundary,
      and round the size up to a kernel page boundary, adding the residue left
      over from rounding down the physical base address. We do not round down
      the virtual base address.
      
      In __create_mapping we account for the offset of the virtual base from a
      granule boundary, adding the residue to the size before rounding the
      base down to said granule boundary.
      
      Thus we account for the residue twice, and when the residue is non-zero
      will cause __create_mapping to map an additional page at the end of the
      region. Depending on the memory map, this page may be in a region we are
      not intended/permitted to map, or may clash with a different region that
      we wish to map. In typical cases, mapping the next item in the memory
      map will overwrite the erroneously created entry, as we sort the memory
      map in the stub.
      
      As __create_mapping can cope with base addresses which are not page
      aligned, we can instead rely on it to map the region appropriately, and
      simplify efi_virtmap_init by removing the unnecessary code.
      
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Reviewed-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
      Cc: Leif Lindholm <leif.lindholm@linaro.org>
      Cc: Will Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      3b12acf4
    • Mark Rutland's avatar
      arm64: mm: fix fault_info table xFSC decoding · c03784ee
      Mark Rutland authored
      
      
      We are missing descriptions for some valid xFSC values in the fault info
      table (e.g. "TLB conflict abort"), and have erroneous descriptions for
      reserved values (e.g. "asynchronous external abort", "debug event").
      
      This patch adds the missing xFSC values, and removes erroneous decoding
      of values reserved by the architecture, as described in ARM DDI 0487A.h.
      
      At the same time, fixed the unbalanced brackets for the synchronous
      parity error strings in the table.
      
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Reviewed-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      c03784ee