1. 11 Jul, 2016 2 commits
    • Kevin Brodsky's avatar
      arm64: fix vdso-offsets.h dependency · a66649da
      Kevin Brodsky authored
      arm64/kernel/{vdso,signal}.c include vdso-offsets.h, as well as any
      file that includes asm/vdso.h. Therefore, vdso-offsets.h 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 is made obvious when using make -j:
      
        touch arch/arm64/kernel/vdso/gettimeofday.S && make -j$NCPUS arch/arm64/kernel
      
      will sometimes result in none of arm64/kernel/*.o being
      rebuilt, sometimes all of them, or even just some of them.
      
      It is quite difficult to ensure that a header is generated before it
      is used with recursive Makefiles by using normal rules.  Instead,
      arch-specific generated headers are normally built in the archprepare
      recipe in the arch Makefile (see for instance arch/ia64/Makefile).
      Unfortunately, asm-offsets.h is included in gettimeofday.S, and must
      therefore be generated before vdso-offsets.h, which is not the case if
      archprepare is used. For this reason, a rule run after archprepare has
      to be used.
      
      This commit adds rules in arm64/Makefile to build vdso-offsets.h
      during the prepare step, ensuring that vdso-offsets.h is generated
      before building anything. It also removes the now-unnecessary
      dependencies on vdso-offsets.h in arm64/kernel/Makefile. Finally, it
      removes the duplication of asm-offsets.h between arm64/kernel/vdso/
      and include/generated/ and makes include/generated/vdso-offsets.h a
      target in arm64/kernel/vdso/Makefile.
      
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Michal Marek <mmarek@suse.com>
      Signed-off-by: default avatarKevin Brodsky <kevin.brodsky@arm.com>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      a66649da
    • Catalin Marinas's avatar
      Revert "arm64: Fix vdso-offsets.h dependency" · 7d9a7086
      Catalin Marinas authored
      This reverts commit 90f777be.
      
      While this commit was aimed at fixing the dependencies, with a large
      make -j the vdso-offsets.h file is not generated, leading to build
      failures.
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      7d9a7086
  2. 08 Jul, 2016 3 commits
    • Lorenzo Pieralisi's avatar
      arm64: mm: change IOMMU notifier action to attach DMA ops · 16c11325
      Lorenzo Pieralisi authored
      Current bus notifier in ARM64 (__iommu_attach_notifier)
      attempts to attach dma_ops to a device on BUS_NOTIFY_ADD_DEVICE
      action notification.
      
      This will cause issues on ACPI based systems, where PCI devices
      can be added before the IOMMUs the devices are attached to
      had a chance to be probed, causing failures on attempts to
      attach dma_ops in that the domain for the respective IOMMU
      may not be set-up yet by the time the bus notifier is run.
      
      Devices dma_ops do not require to be set-up till the matching
      device drivers are probed. This means that instead of running
      the notifier attaching dma_ops to devices (__iommu_attach_notifier)
      on BUS_NOTIFY_ADD_DEVICE action, it can be run just before the
      device driver is bound to the device in question (on action
      BUS_NOTIFY_BIND_DRIVER) so that it is certain that its IOMMU
      group and domain are set-up accordingly at the time the
      notifier is triggered.
      
      This patch changes the notifier action upon which dma_ops
      are attached to devices and defer it to driver binding time,
      so that IOMMU devices have a chance to be probed and to register
      their bus notifiers before the dma_ops attach sequence for a
      device is actually carried out.
      
      As a result we also no longer need worry about racing with
      iommu_bus_notifier(), or about retrying the queue in case devices
      were added too early on DT-based systems, so clean up the notifier
      itself plus the additional workaround from 722ec35f ("arm64:
      dma-mapping: fix handling of devices registered before arch_initcall")
      Acked-by: default avatarWill Deacon <will.deacon@arm.com>
      Cc: Marek Szyprowski <m.szyprowski@samsung.com>
      Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      [rm: get rid of other now-redundant bits]
      Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      16c11325
    • Marc Zyngier's avatar
      drivers/perf: arm-pmu: Handle per-interrupt affinity mask · 19a469a5
      Marc Zyngier authored
      On a big-little system, PMUs can be wired to CPUs using per CPU
      interrups (PPI). In this case, it is important to make sure that
      the enable/disable do happen on the right set of CPUs.
      
      So instead of relying on the interrupt-affinity property, we can
      use the actual percpu affinity that DT exposes as part of the
      interrupt specifier. The DT binding is also updated to reflect
      the fact that the interrupt-affinity property shouldn't be used
      in that case.
      Acked-by: default avatarRob Herring <robh@kernel.org>
      Tested-by: default avatarCaesar Wang <wxt@rock-chips.com>
      Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      19a469a5
    • 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
  3. 01 Jul, 2016 11 commits
  4. 30 Jun, 2016 1 commit
  5. 27 Jun, 2016 7 commits
  6. 22 Jun, 2016 1 commit
  7. 21 Jun, 2016 11 commits
  8. 20 Jun, 2016 1 commit
  9. 19 Jun, 2016 3 commits
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · c3695331
      Linus Torvalds authored
      Pull UDF fixes and a reiserfs fix from Jan Kara:
       "A couple of udf fixes (most notably a bug in parsing UDF partitions
        which led to inability to mount recent Windows installation media) and
        a reiserfs fix for handling kstrdup failure"
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        reiserfs: check kstrdup failure
        udf: Use correct partition reference number for metadata
        udf: Use IS_ERR when loading metadata mirror file entry
        udf: Don't BUG on missing metadata partition descriptor
      c3695331
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-fix-4.7-rc4' of git://git.infradead.org/users/vkoul/slave-dma · 9af1f5d8
      Linus Torvalds authored
      Pull dmaengine fixes from Vinod Koul:
       "Some fixes has piled up, so time to send them upstream.
      
        These fixes include:
         - at_xdmac fixes for residue and other stuff
         - update MAINTAINERS for dma dt bindings
         - mv_xor fix for incorrect offset"
      
      * tag 'dmaengine-fix-4.7-rc4' of git://git.infradead.org/users/vkoul/slave-dma:
        dmaengine: mv_xor: Fix incorrect offset in dma_map_page()
        dmaengine: at_xdmac: double FIFO flush needed to compute residue
        dmaengine: at_xdmac: fix residue corruption
        dmaengine: at_xdmac: align descriptors on 64 bits
        MAINTAINERS: Add file patterns for dma device tree bindings
      9af1f5d8
    • 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