25 Dec, 2016

2 commits


15 Dec, 2016

1 commit

  • This change allows us to pass DMA_ATTR_SKIP_CPU_SYNC which allows us to
    avoid invoking cache line invalidation if the driver will just handle it
    later via a sync_for_cpu or sync_for_device call.

    Link: http://lkml.kernel.org/r/20161110113457.76501.77603.stgit@ahduyck-blue-test.jf.intel.com
    Signed-off-by: Alexander Duyck
    Cc: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexander Duyck
     

13 Dec, 2016

3 commits

  • Pull locking updates from Ingo Molnar:
    "The tree got pretty big in this development cycle, but the net effect
    is pretty good:

    115 files changed, 673 insertions(+), 1522 deletions(-)

    The main changes were:

    - Rework and generalize the mutex code to remove per arch mutex
    primitives. (Peter Zijlstra)

    - Add vCPU preemption support: add an interface to query the
    preemption status of vCPUs and use it in locking primitives - this
    optimizes paravirt performance. (Pan Xinhui, Juergen Gross,
    Christian Borntraeger)

    - Introduce cpu_relax_yield() and remov cpu_relax_lowlatency() to
    clean up and improve the s390 lock yielding machinery and its core
    kernel impact. (Christian Borntraeger)

    - Micro-optimize mutexes some more. (Waiman Long)

    - Reluctantly add the to-be-deprecated mutex_trylock_recursive()
    interface on a temporary basis, to give the DRM code more time to
    get rid of its locking hacks. Any other users will be NAK-ed on
    sight. (We turned off the deprecation warning for the time being to
    not pollute the build log.) (Peter Zijlstra)

    - Improve the rtmutex code a bit, in light of recent long lived
    bugs/races. (Thomas Gleixner)

    - Misc fixes, cleanups"

    * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (36 commits)
    x86/paravirt: Fix bool return type for PVOP_CALL()
    x86/paravirt: Fix native_patch()
    locking/ww_mutex: Use relaxed atomics
    locking/rtmutex: Explain locking rules for rt_mutex_proxy_unlock()/init_proxy_locked()
    locking/rtmutex: Get rid of RT_MUTEX_OWNER_MASKALL
    x86/paravirt: Optimize native pv_lock_ops.vcpu_is_preempted()
    locking/mutex: Break out of expensive busy-loop on {mutex,rwsem}_spin_on_owner() when owner vCPU is preempted
    locking/osq: Break out of spin-wait busy waiting loop for a preempted vCPU in osq_lock()
    Documentation/virtual/kvm: Support the vCPU preemption check
    x86/xen: Support the vCPU preemption check
    x86/kvm: Support the vCPU preemption check
    x86/kvm: Support the vCPU preemption check
    kvm: Introduce kvm_write_guest_offset_cached()
    locking/core, x86/paravirt: Implement vcpu_is_preempted(cpu) for KVM and Xen guests
    locking/spinlocks, s390: Implement vcpu_is_preempted(cpu)
    locking/core, powerpc: Implement vcpu_is_preempted(cpu)
    sched/core: Introduce the vcpu_is_preempted(cpu) interface
    sched/wake_q: Rename WAKE_Q to DEFINE_WAKE_Q
    locking/core: Provide common cpu_relax_yield() definition
    locking/mutex: Don't mark mutex_trylock_recursive() as deprecated, temporarily
    ...

    Linus Torvalds
     
  • Pull m68k updates from Geert Uytterhoeven:
    "Use seq_puts() for fixed strings"

    * tag 'm68k-for-v4.10-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
    m68k/atari: Use seq_puts() in atari_get_hardware_list()
    m68k/amiga: Use seq_puts() in amiga_get_hardware_list()

    Linus Torvalds
     
  • Pull m68knommu updates from Greg Ungerer:
    "There are two sets of changes in this pull.

    The largest is the addition of the ColdFire platform side i2c support
    (the IO addressing, setup and clock definitions). The i2c hardware
    module itself is driven by the kernels existing iMX i2c driver.

    The other change is the addition of support for the Amcore board"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
    m68knommu: AMCORE board, add iMX i2c support
    m68k: add Sysam AMCORE open board support
    m68knommu: platform support for i2c devices on ColdFire SoC

    Linus Torvalds
     

11 Dec, 2016

2 commits


09 Dec, 2016

2 commits


05 Dec, 2016

3 commits

  • Add iMX i2c support for the Sysam AMCORE board.

    Signed-off-by: Angelo Dureghello
    Signed-off-by: Greg Ungerer

    Angelo Dureghello
     
  • Add support for Sysam AMCORE board, an open hardware embedded Linux
    board, see http://sysam.it/openzone/projects/amcore/amcore.html for
    any info.

    Signed-off-by: Angelo Dureghello
    Signed-off-by: Greg Ungerer

    Angelo Dureghello
     
  • These changes based on work by Steven King to support
    the i2c hardware modules on ColdFire SoC family devices.

    This is the per SoC hardware support. Contains a common platform device
    setup. Each of the SoC family members tends to have some minor local
    setup required to initialize the module. But all ColdFire family members
    use the same i2c hardware module.

    This i2c hardware module is the same as used in the Freescale iMX ARM
    based family of SoC devices. Steven's original patches were based on using
    a new and different i2c-coldfire.c driver. But this is not neccessary as
    we can use the existing Linux i2c-imx.c driver with no change required to
    it. And this patch is now based on using the existing i2c-imx driver.

    This patch only contains the ColdFire platform changes.

    Signed-off-by: Greg Ungerer
    Tested-by: Angelo Dureghello

    Steven King
     

17 Nov, 2016

1 commit

  • No need to duplicate the same define everywhere. Since
    the only user is stop-machine and the only provider is
    s390, we can use a default implementation of cpu_relax_yield()
    in sched.h.

    Suggested-by: Russell King
    Signed-off-by: Christian Borntraeger
    Reviewed-by: David Hildenbrand
    Acked-by: Russell King
    Cc: Andrew Morton
    Cc: Catalin Marinas
    Cc: Heiko Carstens
    Cc: Linus Torvalds
    Cc: Martin Schwidefsky
    Cc: Nicholas Piggin
    Cc: Noam Camus
    Cc: Paul E. McKenney
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: Will Deacon
    Cc: kvm@vger.kernel.org
    Cc: linux-arch@vger.kernel.org
    Cc: linux-s390
    Cc: linuxppc-dev@lists.ozlabs.org
    Cc: sparclinux@vger.kernel.org
    Cc: virtualization@lists.linux-foundation.org
    Cc: xen-devel@lists.xenproject.org
    Link: http://lkml.kernel.org/r/1479298985-191589-1-git-send-email-borntraeger@de.ibm.com
    Signed-off-by: Ingo Molnar

    Christian Borntraeger
     

16 Nov, 2016

2 commits

  • As there are no users left, we can remove cpu_relax_lowlatency()
    implementations from every architecture.

    Signed-off-by: Christian Borntraeger
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Catalin Marinas
    Cc: Heiko Carstens
    Cc: Linus Torvalds
    Cc: Martin Schwidefsky
    Cc: Nicholas Piggin
    Cc: Noam Camus
    Cc: Peter Zijlstra
    Cc: Russell King
    Cc: Thomas Gleixner
    Cc: Will Deacon
    Cc: linuxppc-dev@lists.ozlabs.org
    Cc: virtualization@lists.linux-foundation.org
    Cc: xen-devel@lists.xenproject.org
    Cc:
    Link: http://lkml.kernel.org/r/1477386195-32736-6-git-send-email-borntraeger@de.ibm.com
    Signed-off-by: Ingo Molnar

    Christian Borntraeger
     
  • For spinning loops people do often use barrier() or cpu_relax().
    For most architectures cpu_relax and barrier are the same, but on
    some architectures cpu_relax can add some latency.
    For example on power,sparc64 and arc, cpu_relax can shift the CPU
    towards other hardware threads in an SMT environment.
    On s390 cpu_relax does even more, it uses an hypercall to the
    hypervisor to give up the timeslice.
    In contrast to the SMT yielding this can result in larger latencies.
    In some places this latency is unwanted, so another variant
    "cpu_relax_lowlatency" was introduced. Before this is used in more
    and more places, lets revert the logic and provide a cpu_relax_yield
    that can be called in places where yielding is more important than
    latency. By default this is the same as cpu_relax on all architectures.

    Signed-off-by: Christian Borntraeger
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Catalin Marinas
    Cc: Heiko Carstens
    Cc: Linus Torvalds
    Cc: Martin Schwidefsky
    Cc: Nicholas Piggin
    Cc: Noam Camus
    Cc: Peter Zijlstra
    Cc: Russell King
    Cc: Thomas Gleixner
    Cc: Will Deacon
    Cc: linuxppc-dev@lists.ozlabs.org
    Cc: virtualization@lists.linux-foundation.org
    Cc: xen-devel@lists.xenproject.org
    Link: http://lkml.kernel.org/r/1477386195-32736-2-git-send-email-borntraeger@de.ibm.com
    Signed-off-by: Ingo Molnar

    Christian Borntraeger
     

31 Oct, 2016

1 commit


30 Oct, 2016

2 commits

  • The current ndelay() macro definition has an extra semi-colon at the
    end of the line thus leading to a compilation error when ndelay is used
    in a conditional block without curly braces like this one:

    if (cond)
    ndelay(t);
    else
    ...

    which, after the preprocessor pass gives:

    if (cond)
    m68k_ndelay(t);;
    else
    ...

    thus leading to the following gcc error:

    error: 'else' without a previous 'if'

    Remove this extra semi-colon.

    Signed-off-by: Boris Brezillon
    Fixes: c8ee038bd1488 ("m68k: Implement ndelay() based on the existing udelay() logic")
    Signed-off-by: Geert Uytterhoeven

    Boris Brezillon
     
  • Signed-off-by: Geert Uytterhoeven

    Geert Uytterhoeven
     

25 Oct, 2016

1 commit

  • Its all generic atomic_long_t stuff now.

    Tested-by: Jason Low
    Signed-off-by: Peter Zijlstra (Intel)
    Cc: Andrew Morton
    Cc: Linus Torvalds
    Cc: Paul E. McKenney
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Cc: linux-arch@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     

15 Oct, 2016

1 commit

  • Pull kbuild updates from Michal Marek:

    - EXPORT_SYMBOL for asm source by Al Viro.

    This does bring a regression, because genksyms no longer generates
    checksums for these symbols (CONFIG_MODVERSIONS). Nick Piggin is
    working on a patch to fix this.

    Plus, we are talking about functions like strcpy(), which rarely
    change prototypes.

    - Fixes for PPC fallout of the above by Stephen Rothwell and Nick
    Piggin

    - fixdep speedup by Alexey Dobriyan.

    - preparatory work by Nick Piggin to allow architectures to build with
    -ffunction-sections, -fdata-sections and --gc-sections

    - CONFIG_THIN_ARCHIVES support by Stephen Rothwell

    - fix for filenames with colons in the initramfs source by me.

    * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: (22 commits)
    initramfs: Escape colons in depfile
    ppc: there is no clear_pages to export
    powerpc/64: whitelist unresolved modversions CRCs
    kbuild: -ffunction-sections fix for archs with conflicting sections
    kbuild: add arch specific post-link Makefile
    kbuild: allow archs to select link dead code/data elimination
    kbuild: allow architectures to use thin archives instead of ld -r
    kbuild: Regenerate genksyms lexer
    kbuild: genksyms fix for typeof handling
    fixdep: faster CONFIG_ search
    ia64: move exports to definitions
    sparc32: debride memcpy.S a bit
    [sparc] unify 32bit and 64bit string.h
    sparc: move exports to definitions
    ppc: move exports to definitions
    arm: move exports to definitions
    s390: move exports to definitions
    m68k: move exports to definitions
    alpha: move exports to actual definitions
    x86: move exports to actual definitions
    ...

    Linus Torvalds
     

14 Oct, 2016

1 commit


13 Oct, 2016

1 commit

  • With centralized MTU checking, there's nothing productive done by
    eth_change_mtu that isn't already done in dev_set_mtu, so mark it as
    deprecated and remove all usage of it in the kernel. All callers have been
    audited for calls to alloc_etherdev* or ether_setup directly, which means
    they all have a valid dev->min_mtu and dev->max_mtu. Now eth_change_mtu
    prints out a netdev_warn about being deprecated, for the benefit of
    out-of-tree drivers that might be utilizing it.

    Of note, dvb_net.c actually had dev->mtu = 4096, while using
    eth_change_mtu, meaning that if you ever tried changing it's mtu, you
    couldn't set it above 1500 anymore. It's now getting dev->max_mtu also set
    to 4096 to remedy that.

    v2: fix up lantiq_etop, missed breakage due to drive not compiling on x86

    CC: netdev@vger.kernel.org
    Signed-off-by: Jarod Wilson
    Signed-off-by: David S. Miller

    Jarod Wilson
     

12 Oct, 2016

1 commit

  • Pull uaccess.h prepwork from Al Viro:
    "Preparations to tree-wide switch to use of linux/uaccess.h (which,
    obviously, will allow to start unifying stuff for real). The last step
    there, ie

    PATT='^[[:blank:]]*#[[:blank:]]*include[[:blank:]]*'
    sed -i -e "s!$PATT!#include !" \
    `git grep -l "$PATT"|grep -v ^include/linux/uaccess.h`

    is not taken here - I would prefer to do it once just before or just
    after -rc1. However, everything should be ready for it"

    * 'work.uaccess2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    remove a stray reference to asm/uaccess.h in docs
    sparc64: separate extable_64.h, switch elf_64.h to it
    score: separate extable.h, switch module.h to it
    mips: separate extable.h, switch module.h to it
    x86: separate extable.h, switch sections.h to it
    remove stray include of asm/uaccess.h from cacheflush.h
    mn10300: remove a bogus processor.h->uaccess.h include
    xtensa: split uaccess.h into C and asm sides
    bonding: quit messing with IOCTL
    kill __kernel_ds_p off
    mn10300: finish verify_area() off
    frv: move HAVE_ARCH_UNMAPPED_AREA to pgtable.h
    exceptions: detritus removal

    Linus Torvalds
     

08 Oct, 2016

1 commit

  • When doing an nmi backtrace of many cores, most of which are idle, the
    output is a little overwhelming and very uninformative. Suppress
    messages for cpus that are idling when they are interrupted and just
    emit one line, "NMI backtrace for N skipped: idling at pc 0xNNN".

    We do this by grouping all the cpuidle code together into a new
    .cpuidle.text section, and then checking the address of the interrupted
    PC to see if it lies within that section.

    This commit suitably tags x86 and tile idle routines, and only adds in
    the minimal framework for other architectures.

    Link: http://lkml.kernel.org/r/1472487169-14923-5-git-send-email-cmetcalf@mellanox.com
    Signed-off-by: Chris Metcalf
    Acked-by: Peter Zijlstra (Intel)
    Tested-by: Peter Zijlstra (Intel)
    Tested-by: Daniel Thompson [arm]
    Tested-by: Petr Mladek
    Cc: Aaron Tomlin
    Cc: Peter Zijlstra (Intel)
    Cc: "Rafael J. Wysocki"
    Cc: Russell King
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chris Metcalf
     

06 Oct, 2016

1 commit

  • Pull m68knommu updates from Greg Ungerer:
    "The bulk of the changes here are to clean up the ColdFire 5441x SoC
    support so that it can run with MMU enabled. We have only supported it
    with MMU disabled up to now.

    There is also a few individual bug fixes across the ColdFire support
    code"

    * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
    m68k: let clk_disable() return immediately if clk is NULL
    m68knommu: convert printk(KERN_INFO) to pr_info()
    m68knommu: clean up uClinux boot log output
    m68k: generalize uboot command line support
    m68k: don't panic if no hardware FPU defined
    m68k: only generate FPU instructions if CONFIG_FPU enabled
    m68k: always make available dump_fpu()
    m68k: generalize io memory region setup for ColdFire ACR registers
    m68k: move ColdFire _bootmem_alloc code
    m68k: report correct FPU type on ColdFire MMU platforms
    m68k: set appropriate machine type for m5411x SoC platforms
    m68k: move CONFIG_FPU set to per-CPU configuration
    m68knommu: fix IO write size in nettel pin set
    m68knommu: switch to using IO access methods in WildFire board code
    m68knommu: fix early setup to not access variables

    Linus Torvalds
     

04 Oct, 2016

1 commit


30 Sep, 2016

1 commit


28 Sep, 2016

1 commit


26 Sep, 2016

11 commits

  • In many of clk_disable() implementations, it is a no-op for a NULL
    pointer input, but this is one of the exceptions.

    Making it treewide consistent will allow clock consumers to call
    clk_disable() without NULL pointer check.

    Signed-off-by: Masahiro Yamada
    Signed-off-by: Greg Ungerer

    Masahiro Yamada
     
  • The old style use of printk(KERN_INFO) is depracated. Convert use of it
    in setup_no.c to the modern pr_info().

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     
  • During the arch setup phase of kernel boot we print out in the boot banner
    that we are uClinux configured. The printk currently contains a bunch of
    useless newlines and carriage returns - producing wastefull empty lines.
    Remove these.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     
  • The uboot command line support needs to be used by both MMU and no-MMU
    setups, but currently we only have the code in the no-MMU code paths.
    Move the uboot command line processing code into its own file. Add
    appropriate calls to it from both the MMU and no-MMU arch setup code.

    Signed-off-by: Greg Ungerer
    Acked-by: Geert Uytterhoeven

    Greg Ungerer
     
  • If we boot up and find no hardware FPU we panic and die.

    Change this behavior to be that if we boot up and we _expect_ a hardware
    FPU to be present then panic. Don't panic if we don't actually expect to
    have any hardware FPU.

    This lets us compile a kernel without FPU if we really choose too.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     
  • Most of the m68k code that supports a hardware FPU is surrounded by
    CONFIG_FPU. Be consistent and surround the hardware FPU instruction
    setup in setup_mm.c with CONFIG_FPU as well as the check for
    CONFIG_M68KFPU_EMU_ONLY.

    The existing classic m68k architectures all define CONFIG_FPU, so they
    see no change from this. But on ColdFire where we do not support the
    emulated FP code we can now compile without CONFIG_FPU being set as well.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     
  • Our local m68k architecture dump_fpu() is conditionally compiled in on
    CONFIG_FPU. That is OK for all existing MMU enabled CPU types, but won't
    handle the case for some ColdFire SoC CPU parts that we want to support
    that have no FPU hardware.

    dump_fpu() is expected to be present by the ELF loader, so we must always
    have it available and exported.

    Remove the conditional and reorganize the dump_fpu hard FPU code path
    to let the compiler remove code when not needed.

    This change based on changes and discussion from Yannick Gicquel
    .

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     
  • The ACR registers of the ColdFire define at a macro level what regions
    of the addresses space should have caching or other attribute types applied.

    Currently for the MMU enabled setups we map the interal IO peripheral addres
    space as uncachable based on the define for the MBAR address (CONFIG_MBAR).
    Not all ColdFire SoC use a programmable MBAR register address. Some parts
    have fixed addressing for their internal peripheral registers.

    Generalize the way we get the internal peripheral base address so all types
    can be accomodated in the ACR definitions. Each ColdFire SoC type now sets
    its IO memory base and size definitions (which may be based on MBAR) which
    are then used in the ACR definitions.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     
  • The early ColdFire bootmem_alloc() code is currently only included in
    the board support for the Coldire 54xx platforms. It will be used on all
    ColdFire MMU enabled platforms as others are supported. So move the
    mcf54xx_bootmem_alloc() function to be generally available to all MMU
    enabled ColdFire parts (and use a more generic name for it).

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     
  • Not all ColdFire SoC parts that have an MMU also have an FPU - so set
    an FPU type (via m68k_fputype) appropriate for the configured platform.

    With this set correctly /proc/cpuinfo will report FPU "none" on devices
    that don't have one. And kernel code paths that initialize FPU hardware
    will now only execute if an FPU is actually present.

    Signed-off-by: Greg Ungerer

    Greg Ungerer
     
  • Create a new machine type for platforms based around the ColdFire 5441x
    SoC family. Set that machine type on startup when building for this
    platform type.

    Currently the ColdFire head.S hard codes a M54xx machine type at startup -
    since that is the only platform type currently supported with MMU enabled.
    The m5441x has an MMU and this change forms part of the support required
    to run it with the MMU enabled.

    Signed-off-by: Greg Ungerer

    Greg Ungerer