1. 16 12月, 2014 1 次提交
  2. 27 11月, 2014 3 次提交
  3. 26 11月, 2014 2 次提交
    • A
      arm/arm64: kvm: drop inappropriate use of kvm_is_mmio_pfn() · bb55e9b1
      Ard Biesheuvel 提交于
      Instead of using kvm_is_mmio_pfn() to decide whether a host region
      should be stage 2 mapped with device attributes, add a new static
      function kvm_is_device_pfn() that disregards RAM pages with the
      reserved bit set, as those should usually not be mapped as device
      memory.
      Signed-off-by: NArd Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      bb55e9b1
    • M
      arm64: KVM: fix unmapping with 48-bit VAs · 7cbb87d6
      Mark Rutland 提交于
      Currently if using a 48-bit VA, tearing down the hyp page tables (which
      can happen in the absence of a GICH or GICV resource) results in the
      rather nasty splat below, evidently becasue we access a table that
      doesn't actually exist.
      
      Commit 38f791a4 (arm64: KVM: Implement 48 VA support for KVM EL2
      and Stage-2) added a pgd_none check to __create_hyp_mappings to account
      for the additional level of tables, but didn't add a corresponding check
      to unmap_range, and this seems to be the source of the problem.
      
      This patch adds the missing pgd_none check, ensuring we don't try to
      access tables that don't exist.
      
      Original splat below:
      
      kvm [1]: Using HYP init bounce page @83fe94a000
      kvm [1]: Cannot obtain GICH resource
      Unable to handle kernel paging request at virtual address ffff7f7fff000000
      pgd = ffff800000770000
      [ffff7f7fff000000] *pgd=0000000000000000
      Internal error: Oops: 96000004 [#1] PREEMPT SMP
      Modules linked in:
      CPU: 1 PID: 1 Comm: swapper/0 Not tainted 3.18.0-rc2+ #89
      task: ffff8003eb500000 ti: ffff8003eb45c000 task.ti: ffff8003eb45c000
      PC is at unmap_range+0x120/0x580
      LR is at free_hyp_pgds+0xac/0xe4
      pc : [<ffff80000009b768>] lr : [<ffff80000009cad8>] pstate: 80000045
      sp : ffff8003eb45fbf0
      x29: ffff8003eb45fbf0 x28: ffff800000736000
      x27: ffff800000735000 x26: ffff7f7fff000000
      x25: 0000000040000000 x24: ffff8000006f5000
      x23: 0000000000000000 x22: 0000007fffffffff
      x21: 0000800000000000 x20: 0000008000000000
      x19: 0000000000000000 x18: ffff800000648000
      x17: ffff800000537228 x16: 0000000000000000
      x15: 000000000000001f x14: 0000000000000000
      x13: 0000000000000001 x12: 0000000000000020
      x11: 0000000000000062 x10: 0000000000000006
      x9 : 0000000000000000 x8 : 0000000000000063
      x7 : 0000000000000018 x6 : 00000003ff000000
      x5 : ffff800000744188 x4 : 0000000000000001
      x3 : 0000000040000000 x2 : ffff800000000000
      x1 : 0000007fffffffff x0 : 000000003fffffff
      
      Process swapper/0 (pid: 1, stack limit = 0xffff8003eb45c058)
      Stack: (0xffff8003eb45fbf0 to 0xffff8003eb460000)
      fbe0:                                     eb45fcb0 ffff8003 0009cad8 ffff8000
      fc00: 00000000 00000080 00736140 ffff8000 00736000 ffff8000 00000000 00007c80
      fc20: 00000000 00000080 006f5000 ffff8000 00000000 00000080 00743000 ffff8000
      fc40: 00735000 ffff8000 006d3030 ffff8000 006fe7b8 ffff8000 00000000 00000080
      fc60: ffffffff 0000007f fdac1000 ffff8003 fd94b000 ffff8003 fda47000 ffff8003
      fc80: 00502b40 ffff8000 ff000000 ffff7f7f fdec6000 00008003 fdac1630 ffff8003
      fca0: eb45fcb0 ffff8003 ffffffff 0000007f eb45fd00 ffff8003 0009b378 ffff8000
      fcc0: ffffffea 00000000 006fe000 ffff8000 00736728 ffff8000 00736120 ffff8000
      fce0: 00000040 00000000 00743000 ffff8000 006fe7b8 ffff8000 0050cd48 00000000
      fd00: eb45fd60 ffff8003 00096070 ffff8000 006f06e0 ffff8000 006f06e0 ffff8000
      fd20: fd948b40 ffff8003 0009a320 ffff8000 00000000 00000000 00000000 00000000
      fd40: 00000ae0 00000000 006aa25c ffff8000 eb45fd60 ffff8003 0017ca44 00000002
      fd60: eb45fdc0 ffff8003 0009a33c ffff8000 006f06e0 ffff8000 006f06e0 ffff8000
      fd80: fd948b40 ffff8003 0009a320 ffff8000 00000000 00000000 00735000 ffff8000
      fda0: 006d3090 ffff8000 006aa25c ffff8000 00735000 ffff8000 006d3030 ffff8000
      fdc0: eb45fdd0 ffff8003 000814c0 ffff8000 eb45fe50 ffff8003 006aaac4 ffff8000
      fde0: 006ddd90 ffff8000 00000006 00000000 006d3000 ffff8000 00000095 00000000
      fe00: 006a1e90 ffff8000 00735000 ffff8000 006d3000 ffff8000 006aa25c ffff8000
      fe20: 00735000 ffff8000 006d3030 ffff8000 eb45fe50 ffff8003 006fac68 ffff8000
      fe40: 00000006 00000006 fe293ee6 ffff8003 eb45feb0 ffff8003 004f8ee8 ffff8000
      fe60: 004f8ed4 ffff8000 00735000 ffff8000 00000000 00000000 00000000 00000000
      fe80: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      fea0: 00000000 00000000 00000000 00000000 00000000 00000000 000843d0 ffff8000
      fec0: 004f8ed4 ffff8000 00000000 00000000 00000000 00000000 00000000 00000000
      fee0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      ff00: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      ff20: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      ff40: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      ff60: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      ff80: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      ffa0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000005 00000000
      ffe0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
      Call trace:
      [<ffff80000009b768>] unmap_range+0x120/0x580
      [<ffff80000009cad4>] free_hyp_pgds+0xa8/0xe4
      [<ffff80000009b374>] kvm_arch_init+0x268/0x44c
      [<ffff80000009606c>] kvm_init+0x24/0x260
      [<ffff80000009a338>] arm_init+0x18/0x24
      [<ffff8000000814bc>] do_one_initcall+0x88/0x1a0
      [<ffff8000006aaac0>] kernel_init_freeable+0x148/0x1e8
      [<ffff8000004f8ee4>] kernel_init+0x10/0xd4
      Code: 8b000263 92628479 d1000720 eb01001f (f9400340)
      ---[ end trace 3bc230562e926fa4 ]---
      Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
      Signed-off-by: NMark Rutland <mark.rutland@arm.com>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Jungseok Lee <jungseoklee85@gmail.com>
      Acked-by: NMarc Zyngier <marc.zyngier@arm.com>
      Acked-by: NChristoffer Dall <christoffer.dall@linaro.org>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      7cbb87d6
  4. 21 11月, 2014 2 次提交
  5. 20 11月, 2014 1 次提交
    • T
      ARM: multi_v7_defconfig: fix failure setting CPU voltage by enabling dependent I2C controller · 49e41938
      Tyler Baker 提交于
      This patch fixes a long standing issue introduced during the 3.16 merge window.
      Shortly after the merge, exynos5250-based arndale boards began to produce the
      following errors:
      
      kern.err kernel:  exynos-cpufreq exynos-cpufreq: failed to set cpu voltage
      kern.err kernel:  cpufreq: __target_index: Failed to change cpu frequency: -22
      
      Further analysis revealed that the S5M8767 voltage regulator used on the
      exynos5250-based arndale board utilizes the S3C2410 I2C controller. If the
      S3C2410 I2C controller driver is not enabled, the S5M8767 voltage regulator
      fails to probe. Therefore a dependency exists between these two drivers.
      In the exynos_defconfig both CONFIG_REGULATOR_S5M8767 and CONFIG_I2C_S3C2410
      options are enabled, and no errors are produced. However, in the
      multi_v7_defconfig only the CONFIG_REGULATOR_S5M8767 option is enabled and the
      errors are present. So let's enable the CONFIG_I2C_S3C2410 option in the
      multi_v7_defconfig to allow the S5M8767 voltage regulator to probe.
      Signed-off-by: NTyler Baker <tyler.baker@linaro.org>
      Acked-by: NKukjin Kim <kgene.kim@samsung.com>
      Signed-off-by: NKevin Hilman <khilman@linaro.org>
      49e41938
  6. 19 11月, 2014 1 次提交
  7. 17 11月, 2014 1 次提交
  8. 14 11月, 2014 2 次提交
    • N
      ARM: 8198/1: make kuser helpers depend on MMU · 08b964ff
      Nathan Lynch 提交于
      The kuser helpers page is not set up on non-MMU systems, so it does
      not make sense to allow CONFIG_KUSER_HELPERS to be enabled when
      CONFIG_MMU=n.  Allowing it to be set on !MMU results in an oops in
      set_tls (used in execve and the arm_syscall trap handler):
      
      Unhandled exception: IPSR = 00000005 LR = fffffff1
      CPU: 0 PID: 1 Comm: swapper Not tainted 3.18.0-rc1-00041-ga30465a #216
      task: 8b838000 ti: 8b82a000 task.ti: 8b82a000
      PC is at flush_thread+0x32/0x40
      LR is at flush_thread+0x21/0x40
      pc : [<8f00157a>]    lr : [<8f001569>]    psr: 4100000b
      sp : 8b82be20  ip : 00000000  fp : 8b83c000
      r10: 00000001  r9 : 88018c84  r8 : 8bb85000
      r7 : 8b838000  r6 : 00000000  r5 : 8bb77400  r4 : 8b82a000
      r3 : ffff0ff0  r2 : 8b82a000  r1 : 00000000  r0 : 88020354
      xPSR: 4100000b
      CPU: 0 PID: 1 Comm: swapper Not tainted 3.18.0-rc1-00041-ga30465a #216
      [<8f002bc1>] (unwind_backtrace) from [<8f002033>] (show_stack+0xb/0xc)
      [<8f002033>] (show_stack) from [<8f00265b>] (__invalid_entry+0x4b/0x4c)
      
      As best I can tell this issue existed for the set_tls ARM syscall
      before commit fbfb872f "ARM: 8148/1: flush TLS and thumbee
      register state during exec" consolidated the TLS manipulation code
      into the set_tls helper function, but now that we're using it to flush
      register state during execve, !MMU users encounter the oops at the
      first exec.
      
      Prevent CONFIG_MMU=n configurations from enabling
      CONFIG_KUSER_HELPERS.
      
      Fixes: fbfb872f (ARM: 8148/1: flush TLS and thumbee register state during exec)
      Signed-off-by: NNathan Lynch <nathan_lynch@mentor.com>
      Reported-by: NStefan Agner <stefan@agner.ch>
      Acked-by: NUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Cc: stable@vger.kernel.org
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      08b964ff
    • W
      ARM: 8191/1: decompressor: ensure I-side picks up relocated code · 238962ac
      Will Deacon 提交于
      To speed up decompression, the decompressor sets up a flat, cacheable
      mapping of memory. However, when there is insufficient space to hold
      the page tables for this mapping, we don't bother to enable the caches
      and subsequently skip all the cache maintenance hooks.
      
      Skipping the cache maintenance before jumping to the relocated code
      allows the processor to predict the branch and populate the I-cache
      with stale data before the relocation loop has completed (since a
      bootloader may have SCTLR.I set, which permits normal, cacheable
      instruction fetches regardless of SCTLR.M).
      
      This patch moves the cache maintenance check into the maintenance
      routines themselves, allowing the v6/v7 versions to invalidate the
      I-cache regardless of the MMU state.
      
      Cc: <stable@vger.kernel.org>
      Reported-by: NMarc Carino <marc.ceeeee@gmail.com>
      Tested-by: NJulien Grall <julien.grall@linaro.org>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      238962ac
  9. 13 11月, 2014 4 次提交
  10. 12 11月, 2014 1 次提交
  11. 11 11月, 2014 3 次提交
  12. 10 11月, 2014 5 次提交
  13. 09 11月, 2014 1 次提交
  14. 08 11月, 2014 1 次提交
  15. 07 11月, 2014 2 次提交
  16. 06 11月, 2014 2 次提交
  17. 04 11月, 2014 2 次提交
    • F
      ARM: imx: Fix the removal of CONFIG_SPI option · 89fbec5b
      Fabio Estevam 提交于
      Since 64546e9f ("ARM: imx_v6_v7_defconfig updates") and commit
      0650f855 ("ARM: imx_v4_v5_defconfig: Select CONFIG_IMX_WEIM") CONFIG_SPI
      selection was dropped by savedefconfig for imx_v4_v5_defconfig and
      imx_v6_v7_defconfig.
      
      In order to keep the same behaviour as previous kernel versions and avoid
      regressions, let's add CONFIG_SPI option back.
      Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      89fbec5b
    • S
      ARM: imx: clk-vf610: define PLL's clock tree · c72c5532
      Stefan Agner 提交于
      So far, the required PLL's (PLL1/PLL2/PLL5) have been initialized
      by boot loader and the kernel code defined fixed rates according
      to those default configurations. Beginning with the USB PLL7 the
      code started to initialize the PLL's itself (using imx_clk_pllv3).
      
      However, since commit dc4805c2
      (ARM: imx: remove ENABLE and BYPASS bits from clk-pllv3 driver)
      imx_clk_pllv3 no longer takes care of the ENABLE and BYPASS bits,
      hence the USB PLL were not configured correctly anymore.
      
      This patch not only fixes those USB PLL's, but also makes use of
      the imx_clk_pllv3 for all PLL's and alignes the code with the PLL
      support of the i.MX6 series.
      Signed-off-by: NStefan Agner <stefan@agner.ch>
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      c72c5532
  18. 02 11月, 2014 2 次提交
  19. 01 11月, 2014 1 次提交
  20. 30 10月, 2014 3 次提交
    • T
      ARM: OMAP2+: Warn about deprecated legacy booting mode · 4b91f7f3
      Tony Lindgren 提交于
      We're moving omaps to use device tree based booting and already have
      omap2, omap4, omap5, am335x and am437x booting in device tree only
      mode.
      
      Only omap3 still has legacy booting still around and we really want
      to make that device tree only. So let's add a warning about deprecated
      legacy booting so we get people to upgrade their boards to use device
      tree based booting and find out about any remaining issues.
      
      Note that for most boards we already have the .dts file and those can
      be booted with without changing the bootloader using the appended
      DTB mode.
      Acked-By: NSebastian Reichel <sre@kernel.org>
      Reviewed-by: NAaro Koskinen <aaro.koskinen@iki.fi>
      Reviewed-by: NJavier Martinez Canillas <javier@dowhile0.org>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      4b91f7f3
    • T
      ARM: omap2plus_defconfig: Fix errors with NAND BCH · 739fd507
      Tony Lindgren 提交于
      Looks like we need to have BCH enabled to get NAND
      working and to avoid getting:
      
      nand: error: CONFIG_MTD_NAND_ECC_BCH not enabled
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      739fd507
    • T
      ARM: 8180/1: mm: implement no-highmem fast path in kmap_atomic_pfn() · 9ff0bb5b
      Thomas Petazzoni 提交于
      Since CONFIG_HIGHMEM got enabled on ARMv5 Kirkwood, we have noticed a
      very significant drop in networking performance. The test were
      conducted on an OpenBlocks A7 board. Without this patch, the outgoing
      performance measured with iperf are:
      
       - highmem OFF, TSO OFF   544 Mbit/s
       - highmem OFF, TSO ON	  942 Mbit/s
       - highmem ON,  TSO OFF   306 Mbit/s
       - highmem ON,  TSO ON    246 Mbit/s
      
      On this Kirkwood platform, the L2 cache is a Feroceon cache, and with
      this cache, all the range operations have to be done on virtual
      addresses and not physical addresses. Therefore, whenever
      CONFIG_HIGHMEM is enabled, the cache maintenance operations call
      kmap_atomic_pfn() and kunmap_atomic().
      
      However, kmap_atomic_pfn() does not implement the same fast path for
      non-highmem pages as the one implemented in kmap_atomic(), and this is
      one of the reason for the performance drop. While this patch does not
      fully restore the performances, it clearly improves them a lot:
      
            	      	        without patch  with patch
      
       - highmem ON, TSO OFF   306 Mbit/s     387 Mbit/s
       - highmem ON, TSO ON    246 Mbit/s     434 Mbit/s
      
      We're still far from the !CONFIG_HIGHMEM performances, but it does
      improve a bit the situation.
      
      Thanks a lot to Ezequiel Garcia and Gregory Clement for all the
      testing work around this topic.
      Signed-off-by: NThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      9ff0bb5b