Skip to content
  1. Jul 08, 2016
    • Catalin Marinas's avatar
      arm64: Fix vdso-offsets.h dependency · 90f777be
      Catalin Marinas authored
      
      
      arch/arm64/kernel/{vdso,signal}.c include generated/vdso-offsets.h, and
      therefore the symbol offsets must be generated before these files are
      compiled.
      
      The current rules in arm64/kernel/Makefile do not actually enforce
      this, because even though $(obj)/vdso is listed as a prerequisite for
      vdso-offsets.h, this does not result in the intended effect of
      building the vdso subdirectory (before all the other objects). As a
      consequence, depending on the order in which the rules are followed,
      vdso-offsets.h is updated or not before arm64/kernel/{vdso,signal}.o
      are built. The current rules also impose an unnecessary dependency on
      vdso-offsets.h for all arm64/kernel/*.o, resulting in unnecessary
      rebuilds.
      
      This patch removes the arch/arm64/kernel/vdso/vdso-offsets.h file
      generation, leaving only the include/generated/vdso-offsets.h one. It
      adds a forced dependency check of the vdso-offsets.h file in
      arch/arm64/kernel/Makefile which, if not up to date according to the
      arch/arm64/kernel/vdso/Makefile rules (depending on vdso.so.dbg), will
      trigger the vdso/ subdirectory build and vdso-offsets.h re-generation.
      Automatic kbuild dependency rules between kernel/{vdso,signal}.c rules
      and vdso-offsets.h will guarantee that the vDSO object is built first,
      followed by the generated symbol offsets header file.
      
      Reported-by: default avatarKevin Brodsky <kevin.brodsky@arm.com>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      90f777be
  2. Jul 01, 2016
  3. Jun 28, 2016
  4. Jun 27, 2016
  5. Jun 22, 2016
    • Catalin Marinas's avatar
      Revert "arm64: Add support ARCH_SUPPORTS_INT128" · d770b5a0
      Catalin Marinas authored
      This reverts commit 6b14c517
      
      .
      
      The original patch and UBSAN+KASAN enabled causes Linux to fail to link
      with:
      
      lib/built-in.o: In function `get_signed_val':
      lib/ubsan.c:93: undefined reference to `__ashlti3'
      lib/ubsan.c:93: undefined reference to `__ashrti3'
      
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      d770b5a0
    • Mark Rutland's avatar
      arm64: kill ESR_LNX_EXEC · 541ec870
      Mark Rutland authored
      
      
      Currently we treat ESR_EL1 bit 24 as software-defined for distinguishing
      instruction aborts from data aborts, but this bit is architecturally
      RES0 for instruction aborts, and could be allocated for an arbitrary
      purpose in future. Additionally, we hard-code the value in entry.S
      without the mnemonic, making the code difficult to understand.
      
      Instead, remove ESR_LNX_EXEC, and distinguish aborts based on the esr,
      which we already pass to the sole use of ESR_LNX_EXEC. A new helper,
      is_el0_instruction_abort() is added to make the logic clear. Any
      instruction aborts taken from EL1 will already have been handled by
      bad_mode, so we need not handle that case in the helper.
      
      For consistency, the existing permission_fault helper is renamed to
      is_permission_fault, and the return type is changed to bool. There
      should be no functional changes as the return value was a boolean
      expression, and the result is only used in another boolean expression.
      
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: Dave P Martin <dave.martin@arm.com>
      Cc: Huang Shijie <shijie.huang@arm.com>
      Cc: James Morse <james.morse@arm.com>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      541ec870
    • Mark Rutland's avatar
      arm64/kvm: use ESR_ELx_EC to extract EC · 561454e2
      Mark Rutland authored
      
      
      Now that we have a helper to extract the EC from an ESR_ELx value, make
      use of this in the arm64 KVM code for simplicity and consistency. There
      should be no functional changes as a result of this patch.
      
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: Dave P Martin <dave.martin@arm.com>
      Cc: Huang Shijie <shijie.huang@arm.com>
      Cc: James Morse <james.morse@arm.com>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: kvmarm@lists.cs.columbia.edu
      Acked-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      561454e2
    • Mark Rutland's avatar
      arm64: add macro to extract ESR_ELx.EC · 275f344b
      Mark Rutland authored
      
      
      Several places open-code extraction of the EC field from an ESR_ELx
      value, in subtly different ways. This is unfortunate duplication and
      variation, and the precise logic used to extract the field is a
      distraction.
      
      This patch adds a new macro, ESR_ELx_EC(), to extract the EC field from
      an ESR_ELx value in a consistent fashion.
      
      Existing open-coded extractions in core arm64 code are moved over to the
      new helper. KVM code is left as-is for the moment.
      
      Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
      Tested-by: default avatarHuang Shijie <shijie.huang@arm.com>
      Cc: Dave P Martin <dave.martin@arm.com>
      Cc: James Morse <james.morse@arm.com>
      Cc: Marc Zyngier <marc.zyngier@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      275f344b
  6. Jun 21, 2016
  7. Jun 20, 2016
  8. Jun 19, 2016
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 049a40c0
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "Another batch of fixes for ARM SoC platforms.  Most are smaller fixes.
      
        Two areas that are worth pointing out are:
      
         - OMAP had a handful of changes to voltage specs that caused a bit of
           churn, most of volume of change in this branch is due to this.
      
         - There are a couple of _rcuidle fixes from Paul that touch common
           code and came in through the OMAP tree since they were the ones who
           saw the problems.
      
       The rest is smaller changes across a handful of platforms"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (36 commits)
        ARM: dts: STi: stih407-family: Disable reserved-memory co-processor nodes
        ARM: dts: am437x-sk-evm: Reduce i2c0 bus speed for tps65218
        ARM: OMAP2+: timer: add probe for clocksources
        ARM: OMAP1: fix ams-delta FIQ handler to work with sparse IRQ
        memory: omap-gpmc: Fix omap gpmc EXTRADELAY timing
        arm: Use _rcuidle for smp_cross_call() tracepoints
        MAINTAINERS: Add myself as reviewer of ARM FSL/NXP
        ARM: OMAP: DRA7: powerdomain data: Remove unused pwrsts_mem_ret
        ARM: OMAP: DRA7: powerdomain data: Remove unused pwrsts_logic_ret
        ARM: OMAP: DRA7: powerdomain data: Set L3init and L4per to ON
        ARM: imx6ul: Fix Micrel PHY mask
        ARM: OMAP2+: Select OMAP_INTERCONNECT for SOC_AM43XX
        ARM: dts: DRA74x: fix DSS PLL2 addresses
        ARM: OMAP2: Enable Errata 430973 for OMAP3
        ARM: dts: socfpga: Add missing PHY phandle
        ARM: dts: exynos: Fix port nodes names for Exynos5420 Peach Pit board
        ARM: dts: exynos: Fix port nodes names for Exynos5250 Snow board
        ARM: dts: sun6i: yones-toptech-bs1078-v2: Drop constraints on dc1sw regulator
        ARM: dts: sun6i: primo81: Drop constraints on dc1sw regulator
        ARM: dts: sunxi: Add OLinuXino Lime2 eMMC to the Makefile
        ...
      049a40c0
    • Olof Johansson's avatar
      Merge tag 'gpmc-omap-fixes-for-v4.7' of https://github.com/rogerq/linux into fixes · 8fd09767
      Olof Johansson authored
      OMAP-GPMC: Fixes for for v4.7-rc cycle:
      
      - Fix omap gpmc EXTRADELAY timing. The DT provided timings
      were wrongly used causing devices requiring extra delay timing
      to fail.
      
      * tag 'gpmc-omap-fixes-for-v4.7' of https://github.com/rogerq/linux
      
      :
        memory: omap-gpmc: Fix omap gpmc EXTRADELAY timing
        + Linux 4.7-rc3
      
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      8fd09767
    • Olof Johansson's avatar
      Merge tag 'omap-for-v4.7/fixes-powedomain' of... · 58935f24
      Olof Johansson authored
      Merge tag 'omap-for-v4.7/fixes-powedomain' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
      
      Fixes for omaps for v4.7-rc cycle:
      
      - Fix dra7 for hardware issues limiting L4Per and L3init power domains
        to on state. Without this the devices may not work correctly after
        some time of use because of asymmetric aging. And related to this,
        let's also remove the unusable states.
      
      - Always select omap interconnect for am43x as otherwise the am43x
        only configurations will not boot properly. This can happen easily
        for any product kernels that leave out other SoCs to save memory.
      
      - Fix DSS PLL2 addresses that have gone unused for now
      
      - Select erratum 430973 for omap3, this is now safe to do and can
        save quite a bit of debugging time for people who may have left
        it out.
      
      * tag 'omap-for-v4.7/fixes-powedomain' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap
      
      :
        ARM: OMAP: DRA7: powerdomain data: Remove unused pwrsts_mem_ret
        ARM: OMAP: DRA7: powerdomain data: Remove unused pwrsts_logic_ret
        ARM: OMAP: DRA7: powerdomain data: Set L3init and L4per to ON
        ARM: OMAP2+: Select OMAP_INTERCONNECT for SOC_AM43XX
        ARM: dts: DRA74x: fix DSS PLL2 addresses
        ARM: OMAP2: Enable Errata 430973 for OMAP3
        + Linux 4.7-rc2
      
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      58935f24
    • Olof Johansson's avatar
      Merge tag 'fixes-rcu-fiq-signed' of... · 9503427e
      Olof Johansson authored
      Merge tag 'fixes-rcu-fiq-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
      
      Fixes for omaps for v4.7-rc cycle:
      
      - Two boot warning fixes from the RCU tree that should have gotten
        merged several weeks ago already but did not because of issues
        with who merges them. Paul has now split the RCU warning fixes into
        sets for various maintainers.
      
      - Fix ams-delta FIQ regression caused by omap1 sparse IRQ changes
      
      - Fix PM for omap3 boards using timer12 and gptimer, like the
        original beagleboard
      
      - Fix hangs on am437x-sk-evm by lowering the I2C bus speed
      
      * tag 'fixes-rcu-fiq-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap
      
      :
        ARM: dts: am437x-sk-evm: Reduce i2c0 bus speed for tps65218
        ARM: OMAP2+: timer: add probe for clocksources
        ARM: OMAP1: fix ams-delta FIQ handler to work with sparse IRQ
        arm: Use _rcuidle for smp_cross_call() tracepoints
        arm: Use _rcuidle tracepoint to allow use from idle
      
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      9503427e
    • Lee Jones's avatar
      ARM: dts: STi: stih407-family: Disable reserved-memory co-processor nodes · 0e289e53
      Lee Jones authored
      This patch fixes a non-booting issue in Mainline.
      
      When booting with a compressed kernel, we need to be careful how we
      populate memory close to DDR start.  AUTO_ZRELADDR is enabled by default
      in multi-arch enabled configurations, which place some restrictions on
      where the kernel is placed and where it will be uncompressed to on boot.
      
      AUTO_ZRELADDR takes the decompressor code's start address and masks out
      the bottom 28 bits to obtain an address to uncompress the kernel to
      (thus a load address of 0x42000000 means that the kernel will be
      uncompressed to 0x40000000 i.e. DDR START on this platform).
      
      Even changing the load address to after the co-processor's shared memory
      won't render a booting platform, since the AUTO_ZRELADDR algorithm still
      ensures the kernel is uncompressed into memory shared with the first
      co-processor (0x40000000).
      
      Another option would be to move loading to 0x4A000000, since this will
      mean the decompressor will decompress the kernel to 0x48000000. However,
      this would mean a large chunk (0x44000000 => 0x48000000 (64MB)) of
      memory would essentially be wasted for no good reason.
      
      Until we can work with ST to find a suitable memory location to
      relocate co-processor shared memory, let's disable the shared memory
      nodes.  This will ensure a working platform in the mean time.
      
      NB: The more observant of you will notice that we're leaving the DMU
      shared memory node enabled; this is because a) it is the only one in
      active use at the time of this writing and b) it is not affected by
      the current default behaviour which is causing issues.
      
      Fixes: fe135c63
      
       (ARM: dts: STiH407: Move over to using the 'reserved-memory' API for obtaining DMA memory)
      Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
      Reviewed-by Peter Griffin <peter.griffin@linaro.org>
      Signed-off-by: default avatarMaxime Coquelin <maxime.coquelin@st.com>
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      0e289e53