15 Mar, 2017

1 commit

  • This was detected by allmodconfig, errors reported:

    ERROR: "empty_zero_page" [net/ceph/libceph.ko] undefined!
    ERROR: "__ucmpdi2" [lib/842/842_decompress.ko] undefined!
    ERROR: "empty_zero_page" [fs/nfs/objlayout/objlayoutdriver.ko] undefined!
    ERROR: "empty_zero_page" [fs/exofs/exofs.ko] undefined!
    ERROR: "empty_zero_page" [fs/crypto/fscrypto.ko] undefined!
    ERROR: "__ucmpdi2" [fs/btrfs/btrfs.ko] undefined!
    ERROR: "pm_power_off" [drivers/regulator/act8865-regulator.ko] undefined!
    ERROR: "__ucmpdi2" [drivers/media/i2c/adv7842.ko] undefined!
    ERROR: "__clear_user" [drivers/md/dm-mod.ko] undefined!
    ERROR: "__clear_user" [net/netfilter/x_tables.ko] undefined!

    Signed-off-by: Stafford Horne

    Stafford Horne
     

02 Mar, 2017

4 commits


28 Feb, 2017

2 commits

  • Fix typos and add the following to the scripts/spelling.txt:

    efective||effective

    While we are here, fix the "addres" as well in the touched line in
    arch/openrisc/kernel/entry.S.

    Link: http://lkml.kernel.org/r/1481573103-11329-10-git-send-email-yamada.masahiro@socionext.com
    Signed-off-by: Masahiro Yamada
    Acked-by: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Masahiro Yamada
     
  • Fix typos and add the following to the scripts/spelling.txt:

    aligment||alignment

    I did not touch the "N_BYTE_ALIGMENT" macro in
    drivers/net/wireless/realtek/rtlwifi/wifi.h to avoid unpredictable
    impact.

    I fixed "_aligment_handler" in arch/openrisc/kernel/entry.S because
    it is surrounded by #if 0 ... #endif. It is surely safe and I
    confirmed "_alignment_handler" is correct.

    I also fixed the "controler" I found in the same hunk in
    arch/openrisc/kernel/head.S.

    Link: http://lkml.kernel.org/r/1481573103-11329-8-git-send-email-yamada.masahiro@socionext.com
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Masahiro Yamada
     

26 Feb, 2017

1 commit

  • Pull rdma DMA mapping updates from Doug Ledford:
    "Drop IB DMA mapping code and use core DMA code instead.

    Bart Van Assche noted that the ib DMA mapping code was significantly
    similar enough to the core DMA mapping code that with a few changes it
    was possible to remove the IB DMA mapping code entirely and switch the
    RDMA stack to use the core DMA mapping code.

    This resulted in a nice set of cleanups, but touched the entire tree
    and has been kept separate for that reason."

    * tag 'for-next-dma_ops' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (37 commits)
    IB/rxe, IB/rdmavt: Use dma_virt_ops instead of duplicating it
    IB/core: Remove ib_device.dma_device
    nvme-rdma: Switch from dma_device to dev.parent
    RDS: net: Switch from dma_device to dev.parent
    IB/srpt: Modify a debug statement
    IB/srp: Switch from dma_device to dev.parent
    IB/iser: Switch from dma_device to dev.parent
    IB/IPoIB: Switch from dma_device to dev.parent
    IB/rxe: Switch from dma_device to dev.parent
    IB/vmw_pvrdma: Switch from dma_device to dev.parent
    IB/usnic: Switch from dma_device to dev.parent
    IB/qib: Switch from dma_device to dev.parent
    IB/qedr: Switch from dma_device to dev.parent
    IB/ocrdma: Switch from dma_device to dev.parent
    IB/nes: Remove a superfluous assignment statement
    IB/mthca: Switch from dma_device to dev.parent
    IB/mlx5: Switch from dma_device to dev.parent
    IB/mlx4: Switch from dma_device to dev.parent
    IB/i40iw: Remove a superfluous assignment statement
    IB/hns: Switch from dma_device to dev.parent
    ...

    Linus Torvalds
     

25 Feb, 2017

10 commits

  • Pull OpenRISC updates from Stafford Horne:
    "Highlights include:

    - optimized memset and memcpy routines, ~20% boot time saving

    - support for cpu idling

    - adding support for l.swa and l.lwa atomic operations (in spec from
    2014)

    - use atomics to implement: bitops, cmpxchg, futex

    - the atomics are in preparation for SMP support"

    * tag 'openrisc-for-linus' of git://github.com/openrisc/linux: (25 commits)
    openrisc: head: Init r0 to 0 on start
    openrisc: Export ioremap symbols used by modules
    arch/openrisc/lib/memcpy.c: use correct OR1200 option
    openrisc: head: Remove unused strings
    openrisc: head: Move init strings to rodata section
    openrisc: entry: Fix delay slot detection
    openrisc: entry: Whitespace and comment cleanups
    scripts/checkstack.pl: Add openrisc support
    MAINTAINERS: Add the openrisc official repository
    openrisc: Add .gitignore
    openrisc: Add optimized memcpy routine
    openrisc: Add optimized memset
    openrisc: Initial support for the idle state
    openrisc: Fix the bitmask for the unit present register
    openrisc: remove unnecessary stddef.h include
    openrisc: add futex_atomic_* implementations
    openrisc: add optimized atomic operations
    openrisc: add cmpxchg and xchg implementations
    openrisc: add atomic bitops
    openrisc: add l.lwa/l.swa emulation
    ...

    Linus Torvalds
     
  • Originally openrisc spec 0 specified that r0 would be wired to ground.
    This is no longer the case. r0 is not guaranteed to be 0 at init, so we
    need to initialize it to 0 before using it.

    Also, if we are clearing r0 we cant use r0 to clear itself. Change the
    the CLEAR_GPR macro to use movhi for clearing.

    Reported-by: Jakob Viketoft
    Signed-off-by: Stafford Horne

    Stafford Horne
     
  • These string definitions are no longer used removed them. Noticed this
    while working on a CONFIG_DEBUG_INFO build issue.

    Signed-off-by: Stafford Horne

    Stafford Horne
     
  • The strings used during the head/init phase of openrisc bootup were
    stored in the executable section of the binary.

    This causes compilation to fail when using CONFIG_DEBUG_INFO with
    error:
    Error: unaligned opcodes detected in executable segment

    Signed-off-by: Stafford Horne

    Stafford Horne
     
  • Use execption SR stored in pt_regs for detection, the current SR is not
    correct as the handler is running after return from exception.

    Also, The code that checks for a delay slot uses a flag bitmask and then
    wants to check if the result is not zero. The test it implemented was
    wrong.

    Correct it by changing the test to check result against non zero.

    Signed-off-by: Stafford Horne

    Stafford Horne
     
  • Cleanups to whitespace and add some comments. Reading through the delay
    slot logic I noticed some things:
    - Delay slot instructions were not indented
    - Some comments are not lined up
    - Use tabs and spaces consistent with other code

    No functional change

    Signed-off-by: Stafford Horne

    Stafford Horne
     
  • This helps to suppress the vmlinux.lds file.

    Signed-off-by: Stafford Horne

    Stafford Horne
     
  • This adds a hand-optimized assembler version of memset and sets
    __HAVE_ARCH_MEMSET to use this version instead of the generic C
    routine

    Signed-off-by: Olof Kindgren
    Signed-off-by: Stafford Horne

    Olof Kindgren
     
  • This patch adds basic support for the idle state of the cpu.
    The patch overrides the regular idle function, enables the interupts,
    checks for the power management unit and enables the cpu doze mode
    if available.

    Signed-off-by: Sebastian Macke
    [shorne@gmail.com: Fixed checkpatch, blankline after declarations]
    Signed-off-by: Stafford Horne

    Sebastian Macke
     
  • This causes the build to fail when building with the or1k-musl-linux-
    toolchain and it is not needed.

    Signed-off-by: Stafford Horne

    Stefan Kristiansson
     

06 Feb, 2017

5 commits


26 Jan, 2017

1 commit

  • These files were only including module.h for exception table related
    functions. We've now separated that content out into its own file
    "extable.h" so now move over to that and avoid all the extra header
    content in module.h that we don't really need to compile these files.

    Reported-by: kbuild test robot
    Cc: Jonas Bonn
    Cc: Stefan Kristiansson
    Cc: Stafford Horne
    Cc: openrisc@lists.librecores.org
    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     

25 Jan, 2017

1 commit

  • Most dma_map_ops structures are never modified. Constify these
    structures such that these can be write-protected. This patch
    has been generated as follows:

    git grep -l 'struct dma_map_ops' |
    xargs -d\\n sed -i \
    -e 's/struct dma_map_ops/const struct dma_map_ops/g' \
    -e 's/const struct dma_map_ops {/struct dma_map_ops {/g' \
    -e 's/^const struct dma_map_ops;$/struct dma_map_ops;/' \
    -e 's/const const struct dma_map_ops /const struct dma_map_ops /g';
    sed -i -e 's/const \(struct dma_map_ops intel_dma_ops\)/\1/' \
    $(git grep -l 'struct dma_map_ops intel_dma_ops');
    sed -i -e 's/const \(struct dma_map_ops dma_iommu_ops\)/\1/' \
    $(git grep -l 'struct dma_map_ops' | grep ^arch/powerpc);
    sed -i -e '/^struct vmd_dev {$/,/^};$/ s/const \(struct dma_map_ops[[:blank:]]dma_ops;\)/\1/' \
    -e '/^static void vmd_setup_dma_ops/,/^}$/ s/const \(struct dma_map_ops \*dest\)/\1/' \
    -e 's/const \(struct dma_map_ops \*dest = \&vmd->dma_ops\)/\1/' \
    drivers/pci/host/*.c
    sed -i -e '/^void __init pci_iommu_alloc(void)$/,/^}$/ s/dma_ops->/intel_dma_ops./' arch/ia64/kernel/pci-dma.c
    sed -i -e 's/static const struct dma_map_ops sn_dma_ops/static struct dma_map_ops sn_dma_ops/' arch/ia64/sn/pci/pci_dma.c
    sed -i -e 's/(const struct dma_map_ops \*)//' drivers/misc/mic/bus/vop_bus.c

    Signed-off-by: Bart Van Assche
    Reviewed-by: Christoph Hellwig
    Cc: Benjamin Herrenschmidt
    Cc: Boris Ostrovsky
    Cc: David Woodhouse
    Cc: Juergen Gross
    Cc: H. Peter Anvin
    Cc: Ingo Molnar
    Cc: linux-arch@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: Russell King
    Cc: x86@kernel.org
    Signed-off-by: Doug Ledford

    Bart Van Assche
     

02 Jan, 2017

1 commit

  • The build robot reports:

    .tmp_kallsyms1.o: In function `kallsyms_relative_base':
    >> (.rodata+0x8a18): undefined reference to `_text'

    This is when using 'make alldefconfig'. Adding this _text symbol to mark
    the start of the kernel as in other architecture fixes this.

    Signed-off-by: Stafford Horne
    Acked-by: Jonas Bonn

    Stafford Horne
     

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
    via a sync_for_cpu or sync_for_device call.

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

    Alexander Duyck
     

12 Dec, 2016

7 commits

  • During page fault handling we check the last instruction to understand
    if the fault was for a read or for a write. By default we fall back to
    read. New instructions were added to the openrisc 1.1 spec for an
    atomic load/store pair (l.lwa/l.swa).

    This patch adds the opcode for l.swa (0x33) allowing it to be treated as
    a write operation.

    Signed-off-by: Stefan Kristiansson
    [shorne@gmail.com: expanded a bit on the comment]
    Signed-off-by: Stafford Horne

    Stefan Kristiansson
     
  • The openrisc.net domain expired and was taken over by squatters.
    These updates point documentation to the new domain, mailing lists
    and git repos.

    Also, Jonas is not the main maintainer anylonger, he reviews changes
    but does not maintain a repo or sent pull requests. Updating this to
    add Stafford and Stefan who are the active maintainers.

    Acked-by: Olof Kindgren
    Signed-off-by: Stafford Horne

    Stafford Horne
     
  • Clearing out one todo item. Use the memblock boot time memory
    which is the current standard.

    Tested-by: Guenter Roeck
    Acked-by: Jonas
    Signed-off-by: Stafford Horne

    Stafford Horne
     
  • The of_platform_populate call in the openrisc arch code is now redundant
    as the DT core provides a default call. Openrisc has a NULL match table
    which means only top level nodes with compatible strings will have
    devices creates. The default version will also descend nodes in the
    match table such as "simple-bus" which should be fine as openrisc
    doesn't have any of these (though it is preferred that memory-mapped
    peripherals be grouped under a bus node(s)).

    Signed-off-by: Rob Herring
    Cc: Jonas Bonn
    Tested-by: Guenter Roeck
    Signed-off-by: Stafford Horne

    Rob Herring
     
  • The output file format for or1k has changed from "elf32-or32"
    to "elf32-or1k". Select the correct output format automatically
    to be able to compile the kernel with both toolchain variants.

    Signed-off-by: Guenter Roeck
    Tested-by: Guenter Roeck
    Signed-off-by: Stafford Horne

    Guenter Roeck
     
  • Historically OpenRISC GCC has reserved r10 which we now use to hold
    the thread pointer for thread-local storage (TLS).

    Signed-off-by: Christian Svensson
    Signed-off-by: Stefan Kristiansson
    Tested-by: Guenter Roeck
    Signed-off-by: Stafford Horne

    Christian Svensson
     
  • Fix signal handling for when signals are handled as the result of timers
    or exceptions, previous code assumed syscalls. This was noticeable with X
    crashing where it uses SIGALRM.

    This patch restores all regs before returning to userspace via
    _resume_userspace instead of via syscall return path.

    The rt_sigreturn syscall is more like a context switch than a function
    call; it entails a return from one context (the signal handler) to another
    (the process in question). For a context switch like this there are
    effectively no call-saved regs that remain constant across the transition.

    Reported-by: Sebastian Macke
    Signed-off-by: Jonas Bonn
    Tested-by: Guenter Roeck
    [shorne@gmail.com: Updated comment better reflect change and issue]
    Signed-off-by: Stafford Horne

    Jonas Bonn
     

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
     

04 Aug, 2016

1 commit

  • The dma-mapping core and the implementations do not change the DMA
    attributes passed by pointer. Thus the pointer can point to const data.
    However the attributes do not have to be a bitfield. Instead unsigned
    long will do fine:

    1. This is just simpler. Both in terms of reading the code and setting
    attributes. Instead of initializing local attributes on the stack
    and passing pointer to it to dma_set_attr(), just set the bits.

    2. It brings safeness and checking for const correctness because the
    attributes are passed by value.

    Semantic patches for this change (at least most of them):

    virtual patch
    virtual context

    @r@
    identifier f, attrs;

    @@
    f(...,
    - struct dma_attrs *attrs
    + unsigned long attrs
    , ...)
    {
    ...
    }

    @@
    identifier r.f;
    @@
    f(...,
    - NULL
    + 0
    )

    and

    // Options: --all-includes
    virtual patch
    virtual context

    @r@
    identifier f, attrs;
    type t;

    @@
    t f(..., struct dma_attrs *attrs);

    @@
    identifier r.f;
    @@
    f(...,
    - NULL
    + 0
    )

    Link: http://lkml.kernel.org/r/1468399300-5399-2-git-send-email-k.kozlowski@samsung.com
    Signed-off-by: Krzysztof Kozlowski
    Acked-by: Vineet Gupta
    Acked-by: Robin Murphy
    Acked-by: Hans-Christian Noren Egtvedt
    Acked-by: Mark Salter [c6x]
    Acked-by: Jesper Nilsson [cris]
    Acked-by: Daniel Vetter [drm]
    Reviewed-by: Bart Van Assche
    Acked-by: Joerg Roedel [iommu]
    Acked-by: Fabien Dessenne [bdisp]
    Reviewed-by: Marek Szyprowski [vb2-core]
    Acked-by: David Vrabel [xen]
    Acked-by: Konrad Rzeszutek Wilk [xen swiotlb]
    Acked-by: Joerg Roedel [iommu]
    Acked-by: Richard Kuo [hexagon]
    Acked-by: Geert Uytterhoeven [m68k]
    Acked-by: Gerald Schaefer [s390]
    Acked-by: Bjorn Andersson
    Acked-by: Hans-Christian Noren Egtvedt [avr32]
    Acked-by: Vineet Gupta [arc]
    Acked-by: Robin Murphy [arm64 and dma-iommu]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Krzysztof Kozlowski
     

26 Mar, 2016

1 commit

  • KASAN needs to know whether the allocation happens in an IRQ handler.
    This lets us strip everything below the IRQ entry point to reduce the
    number of unique stack traces needed to be stored.

    Move the definition of __irq_entry to so that the
    users don't need to pull in . Also introduce the
    __softirq_entry macro which is similar to __irq_entry, but puts the
    corresponding functions to the .softirqentry.text section.

    Signed-off-by: Alexander Potapenko
    Acked-by: Steven Rostedt
    Cc: Christoph Lameter
    Cc: Pekka Enberg
    Cc: David Rientjes
    Cc: Joonsoo Kim
    Cc: Andrey Konovalov
    Cc: Dmitry Vyukov
    Cc: Andrey Ryabinin
    Cc: Konstantin Serebryany
    Cc: Dmitry Chernenkov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexander Potapenko
     

10 Aug, 2015

1 commit

  • Migrate openrisc driver to the new 'set-state' interface provided by
    clockevents core, the earlier 'set-mode' interface is marked obsolete
    now.

    This also enables us to implement callbacks for new states of clockevent
    devices, for example: ONESHOT_STOPPED.

    We weren't doing anything in the ->set_mode() callback. So, this patch
    doesn't provide any set-state callbacks.

    Cc: Jonas Bonn
    Cc: linux@lists.openrisc.net
    Signed-off-by: Viresh Kumar
    Signed-off-by: Daniel Lezcano

    Viresh Kumar