14 Oct, 2015

1 commit

  • The struct irq_domain contains a "struct device_node *" field
    (of_node) that is almost the only link between the irqdomain
    and the device tree infrastructure.

    In order to prepare for the removal of that field, convert all
    users to use irq_domain_get_of_node() instead.

    Signed-off-by: Marc Zyngier
    Reviewed-and-tested-by: Hanjun Guo
    Tested-by: Lorenzo Pieralisi
    Cc:
    Cc: Tomasz Nowicki
    Cc: Suravee Suthikulpanit
    Cc: Graeme Gregory
    Cc: Jake Oshins
    Cc: Jiang Liu
    Cc: Jason Cooper
    Cc: Rafael J. Wysocki
    Link: http://lkml.kernel.org/r/1444737105-31573-2-git-send-email-marc.zyngier@arm.com
    Signed-off-by: Thomas Gleixner

    Marc Zyngier
     

04 Oct, 2015

1 commit

  • Pull strscpy string copy function implementation from Chris Metcalf.

    Chris sent this during the merge window, but I waffled back and forth on
    the pull request, which is why it's going in only now.

    The new "strscpy()" function is definitely easier to use and more secure
    than either strncpy() or strlcpy(), both of which are horrible nasty
    interfaces that have serious and irredeemable problems.

    strncpy() has a useless return value, and doesn't NUL-terminate an
    overlong result. To make matters worse, it pads a short result with
    zeroes, which is a performance disaster if you have big buffers.

    strlcpy(), by contrast, is a mis-designed "fix" for strlcpy(), lacking
    the insane NUL padding, but having a differently broken return value
    which returns the original length of the source string. Which means
    that it will read characters past the count from the source buffer, and
    you have to trust the source to be properly terminated. It also makes
    error handling fragile, since the test for overflow is unnecessarily
    subtle.

    strscpy() avoids both these problems, guaranteeing the NUL termination
    (but not excessive padding) if the destination size wasn't zero, and
    making the overflow condition very obvious by returning -E2BIG. It also
    doesn't read past the size of the source, and can thus be used for
    untrusted source data too.

    So why did I waffle about this for so long?

    Every time we introduce a new-and-improved interface, people start doing
    these interminable series of trivial conversion patches.

    And every time that happens, somebody does some silly mistake, and the
    conversion patch to the improved interface actually makes things worse.
    Because the patch is mindnumbing and trivial, nobody has the attention
    span to look at it carefully, and it's usually done over large swatches
    of source code which means that not every conversion gets tested.

    So I'm pulling the strscpy() support because it *is* a better interface.
    But I will refuse to pull mindless conversion patches. Use this in
    places where it makes sense, but don't do trivial patches to fix things
    that aren't actually known to be broken.

    * 'strscpy' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
    tile: use global strscpy() rather than private copy
    string: provide strscpy()
    Make asm/word-at-a-time.h available on all architectures

    Linus Torvalds
     

16 Sep, 2015

1 commit

  • Most interrupt flow handlers do not use the irq argument. Those few
    which use it can retrieve the irq number from the irq descriptor.

    Remove the argument.

    Search and replace was done with coccinelle and some extra helper
    scripts around it. Thanks to Julia for her help!

    Signed-off-by: Thomas Gleixner
    Cc: Julia Lawall
    Cc: Jiang Liu

    Thomas Gleixner
     

02 Sep, 2015

1 commit

  • Pull irq updates from Thomas Gleixner:
    "This updated pull request does not contain the last few GIC related
    patches which were reported to cause a regression. There is a fix
    available, but I let it breed for a couple of days first.

    The irq departement provides:

    - new infrastructure to support non PCI based MSI interrupts
    - a couple of new irq chip drivers
    - the usual pile of fixlets and updates to irq chip drivers
    - preparatory changes for removal of the irq argument from interrupt
    flow handlers
    - preparatory changes to remove IRQF_VALID"

    * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (129 commits)
    irqchip/imx-gpcv2: IMX GPCv2 driver for wakeup sources
    irqchip: Add bcm2836 interrupt controller for Raspberry Pi 2
    irqchip: Add documentation for the bcm2836 interrupt controller
    irqchip/bcm2835: Add support for being used as a second level controller
    irqchip/bcm2835: Refactor handle_IRQ() calls out of MAKE_HWIRQ
    PCI: xilinx: Fix typo in function name
    irqchip/gic: Ensure gic_cpu_if_up/down() programs correct GIC instance
    irqchip/gic: Only allow the primary GIC to set the CPU map
    PCI/MSI: pci-xgene-msi: Consolidate chained IRQ handler install/remove
    unicore32/irq: Prepare puv3_gpio_handler for irq argument removal
    tile/pci_gx: Prepare trio_handle_level_irq for irq argument removal
    m68k/irq: Prepare irq handlers for irq argument removal
    C6X/megamode-pic: Prepare megamod_irq_cascade for irq argument removal
    blackfin: Prepare irq handlers for irq argument removal
    arc/irq: Prepare idu_cascade_isr for irq argument removal
    sparc/irq: Use access helper irq_data_get_affinity_mask()
    sparc/irq: Use helper irq_data_get_irq_handler_data()
    parisc/irq: Use access helper irq_data_get_affinity_mask()
    mn10300/irq: Use access helper irq_data_get_affinity_mask()
    irqchip/i8259: Prepare i8259_irq_dispatch for irq argument removal
    ...

    Linus Torvalds
     

10 Aug, 2015

1 commit

  • Migrate c6x 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 ->set_mode(RESUME) and so tick_resume()
    isn't implemented.

    Cc: Mark Salter
    Cc: Aurelien Jacquiot
    Cc: linux-c6x-dev@linux-c6x.org
    Signed-off-by: Viresh Kumar
    Signed-off-by: Daniel Lezcano

    Viresh Kumar
     

01 Aug, 2015

1 commit

  • The irq argument of most interrupt flow handlers is unused or merily
    used instead of a local variable. The handlers which need the irq
    argument can retrieve the irq number from the irq descriptor.

    Search and update was done with coccinelle and the invaluable help of
    Julia Lawall.

    Signed-off-by: Thomas Gleixner
    Cc: Julia Lawall
    Cc: Mark Salter
    Cc: linux-c6x-dev@linux-c6x.org

    Thomas Gleixner
     

30 Jul, 2015

1 commit


27 Jul, 2015

1 commit

  • Chained irq handlers usually set up handler data as well. We now have
    a function to set both under irq_desc->lock. Replace the two calls
    with one.

    Search and conversion was done with coccinelle.

    Reported-by: Russell King
    Signed-off-by: Thomas Gleixner
    Cc: Mark Salter
    Cc: Aurelien Jacquiot
    Cc: linux-c6x-dev@linux-c6x.org
    Cc: Julia Lawall
    Link: http://lkml.kernel.org/r/20150713130429.697731509@linutronix.de
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     

18 Jul, 2015

1 commit

  • Commit 2ae416b142b6 ("mm: new mm hook framework") introduced an empty
    header file (mm-arch-hooks.h) for every architecture, even those which
    doesn't need to define mm hooks.

    As suggested by Geert Uytterhoeven, this could be cleaned through the use
    of a generic header file included via each per architecture
    asm/include/Kbuild file.

    The PowerPC architecture is not impacted here since this architecture has
    to defined the arch_remap MM hook.

    Signed-off-by: Laurent Dufour
    Suggested-by: Geert Uytterhoeven
    Acked-by: Geert Uytterhoeven
    Acked-by: Vineet Gupta
    Cc: Oleg Nesterov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Laurent Dufour
     

09 Jul, 2015

1 commit

  • Added the x86 implementation of word-at-a-time to the
    generic version, which previously only supported big-endian.

    Omitted the x86-specific load_unaligned_zeropad(), which in
    any case is also not present for the existing BE-only
    implementation of a word-at-a-time, and is only used under
    CONFIG_DCACHE_WORD_ACCESS.

    Added as a "generic-y" to the Kbuilds of all architectures
    that didn't previously have it.

    Signed-off-by: Chris Metcalf

    Chris Metcalf
     

26 Jun, 2015

1 commit


25 Jun, 2015

1 commit

  • CRIU is recreating the process memory layout by remapping the checkpointee
    memory area on top of the current process (criu). This includes remapping
    the vDSO to the place it has at checkpoint time.

    However some architectures like powerpc are keeping a reference to the
    vDSO base address to build the signal return stack frame by calling the
    vDSO sigreturn service. So once the vDSO has been moved, this reference
    is no more valid and the signal frame built later are not usable.

    This patch serie is introducing a new mm hook framework, and a new
    arch_remap hook which is called when mremap is done and the mm lock still
    hold. The next patch is adding the vDSO remap and unmap tracking to the
    powerpc architecture.

    This patch (of 3):

    This patch introduces a new set of header file to manage mm hooks:
    - per architecture empty header file (arch/x/include/asm/mm-arch-hooks.h)
    - a generic header (include/linux/mm-arch-hooks.h)

    The architecture which need to overwrite a hook as to redefine it in its
    header file, while architecture which doesn't need have nothing to do.

    The default hooks are defined in the generic header and are used in the
    case the architecture is not defining it.

    In a next step, mm hooks defined in include/asm-generic/mm_hooks.h should
    be moved here.

    Signed-off-by: Laurent Dufour
    Suggested-by: Andrew Morton
    Cc: "Kirill A. Shutemov"
    Cc: Hugh Dickins
    Cc: Rik van Riel
    Cc: Mel Gorman
    Cc: Pavel Emelyanov
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Michael Ellerman
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Laurent Dufour
     

19 May, 2015

1 commit


17 Apr, 2015

1 commit

  • Pull arch/c6x fixes from Mark Salter.

    * tag 'for-linus' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming:
    c6x: platforms: cache: Export symbol L1P_cache_block_invalidate and L1D_cache_block_writeback
    c6x: kernel: setup: Export symbol memory_end
    c6x: kernel: setup: Add screen_info global variable
    c6x: include: asm: Kbuild: Add generic serial.h
    c6x: include: asm: dma-mapping: Add dummy dma_sync_single_range_for_device
    c6x: include: asm: setup: Include "linux/types.h"
    c6x: asm: Add default flat.h according to xtensa architecture
    c6x: kernel: setup: Remove 'const' for local variables in machine_init
    c6x: Makefile: Add -D__linux__
    C6x: time: Ensure consistency in __init
    c6x: kernel: setup: Include "linux/console.h"

    Linus Torvalds
     

16 Apr, 2015

1 commit

  • Pull exec domain removal from Richard Weinberger:
    "This series removes execution domain support from Linux.

    The idea behind exec domains was to support different ABIs. The
    feature was never complete nor stable. Let's rip it out and make the
    kernel signal handling code less complicated"

    * 'exec_domain_rip_v2' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/misc: (27 commits)
    arm64: Removed unused variable
    sparc: Fix execution domain removal
    Remove rest of exec domains.
    arch: Remove exec_domain from remaining archs
    arc: Remove signal translation and exec_domain
    xtensa: Remove signal translation and exec_domain
    xtensa: Autogenerate offsets in struct thread_info
    x86: Remove signal translation and exec_domain
    unicore32: Remove signal translation and exec_domain
    um: Remove signal translation and exec_domain
    tile: Remove signal translation and exec_domain
    sparc: Remove signal translation and exec_domain
    sh: Remove signal translation and exec_domain
    s390: Remove signal translation and exec_domain
    mn10300: Remove signal translation and exec_domain
    microblaze: Remove signal translation and exec_domain
    m68k: Remove signal translation and exec_domain
    m32r: Remove signal translation and exec_domain
    m32r: Autogenerate offsets in struct thread_info
    frv: Remove signal translation and exec_domain
    ...

    Linus Torvalds
     

13 Apr, 2015

1 commit


12 Apr, 2015

1 commit


26 Mar, 2015

10 commits

  • They are needed by other modules, the related error with allmodconfig:

    MODPOST 3327 modules
    ERROR: "L1P_cache_block_invalidate" [drivers/misc/lkdtm.ko] undefined!
    ERROR: "L1D_cache_block_writeback" [drivers/misc/lkdtm.ko] undefined!

    Signed-off-by: Chen Gang
    Signed-off-by: Mark Salter

    Chen Gang
     
  • It is needed by several modules, the related error with allmodconfig:

    MODPOST 3327 modules
    ERROR: "memory_end" [net/wireless/lib80211_crypt_tkip.ko] undefined!
    ERROR: "memory_end" [net/sunrpc/sunrpc.ko] undefined!
    ERROR: "memory_end" [net/sunrpc/auth_gss/rpcsec_gss_krb5.ko] undefined!
    ERROR: "memory_end" [net/rxrpc/rxkad.ko] undefined!
    ERROR: "memory_end" [net/mac802154/mac802154.ko] undefined!
    ERROR: "memory_end" [net/mac80211/mac80211.ko] undefined!
    ERROR: "memory_end" [net/ipv6/esp6.ko] undefined!
    ERROR: "memory_end" [net/ipv6/ah6.ko] undefined!
    ERROR: "memory_end" [net/ipv4/esp4.ko] undefined!
    ERROR: "memory_end" [net/ipv4/ah4.ko] undefined!
    ERROR: "memory_end" [net/ceph/libceph.ko] undefined!
    ERROR: "memory_end" [net/9p/9pnet_virtio.ko] undefined!
    ERROR: "memory_end" [drivers/usb/wusbcore/wusbcore.ko] undefined!
    ERROR: "memory_end" [drivers/usb/misc/usbtest.ko] undefined!
    ERROR: "memory_end" [drivers/usb/core/usbcore.ko] undefined!
    ERROR: "memory_end" [drivers/target/target_core_file.ko] undefined!
    ERROR: "memory_end" [drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.ko] undefined!
    ERROR: "memory_end" [drivers/net/wireless/ath/ath6kl/ath6kl_sdio.ko] undefined!
    ERROR: "memory_end" [drivers/net/virtio_net.ko] undefined!
    ERROR: "memory_end" [drivers/net/usb/usbnet.ko] undefined!
    ERROR: "memory_end" [drivers/net/ppp/ppp_mppe.ko] undefined!
    ERROR: "memory_end" [drivers/mtd/nand/nand.ko] undefined!
    ERROR: "memory_end" [drivers/mmc/card/mmc_block.ko] undefined!
    ERROR: "memory_end" [drivers/crypto/qce/qcrypto.ko] undefined!
    ERROR: "memory_end" [drivers/block/drbd/drbd.ko] undefined!
    ERROR: "memory_end" [drivers/block/aoe/aoe.ko] undefined!
    ERROR: "memory_end" [crypto/tcrypt.ko] undefined!
    ERROR: "memory_end" [crypto/gcm.ko] undefined!
    ERROR: "memory_end" [crypto/cts.ko] undefined!
    ERROR: "memory_end" [crypto/ccm.ko] undefined!
    ERROR: "memory_end" [crypto/authencesn.ko] undefined!
    ERROR: "memory_end" [crypto/authenc.ko] undefined!

    Signed-off-by: Chen Gang
    Signed-off-by: Mark Salter

    Chen Gang
     
  • Or can not pass building with allmodconfig:

    LD init/built-in.o
    drivers/built-in.o: In function `vgacon_switch':
    vgacon.c:(.text+0x47f8): undefined reference to `screen_info'
    vgacon.c:(.text+0x4810): undefined reference to `screen_info'
    drivers/built-in.o: In function `vgacon_resize':
    vgacon.c:(.text+0x4ac8): undefined reference to `screen_info'
    vgacon.c:(.text+0x4acc): undefined reference to `screen_info'
    drivers/built-in.o: In function `vgacon_save_screen':
    vgacon.c:(.text+0x4cc8): undefined reference to `screen_info'
    drivers/built-in.o:vgacon.c:(.text+0x4cd0): more undefined references to `screen_info' follow

    Signed-off-by: Chen Gang
    Signed-off-by: Mark Salter

    Chen Gang
     
  • Or it will cause building break with allmodconfig:

    CC [M] drivers/tty/serial/8250/8250_core.o
    drivers/tty/serial/8250/8250_core.c:102:24: fatal error: asm/serial.h: No such file or directory

    Signed-off-by: Chen Gang
    Signed-off-by: Mark Salter

    Chen Gang
     
  • c6x does not implement get_dma_ops() for dma-mapping-common.h. And in
    dma-mapping-common.h, dma_sync_single_range_for_device() may be dummy.
    So c6x can just define a dummy function for allmodconfig building.

    CC [M] drivers/net/ethernet/micrel/ks8851.o
    drivers/net/ethernet/micrel/ks8842.c: In function 'ks8842_tx_frame_dma':
    drivers/net/ethernet/micrel/ks8842.c:453:2: error: implicit declaration of function 'dma_sync_single_range_for_device' [-Werror=implicit-function-declaration]
    dma_sync_single_range_for_device(adapter->dev,
    ^

    Signed-off-by: Chen Gang
    Signed-off-by: Mark Salter

    Chen Gang
     
  • Some modules may assume "asm/setup.h" already include all headers which
    needed by itself. So need let "asm/setup.h" include "linux/types.h", the
    related error:

    C [M] drivers/input/joydev.o
    In file included from include/asm-generic/page.h:23:0,
    from ./arch/c6x/include/asm/page.h:9,
    from include/asm-generic/io.h:14,
    from arch/c6x/include/generated/asm/io.h:1,
    from drivers/input/joydev.c:15:
    ./arch/c6x/include/asm/setup.h:17:27: error: unknown type name 'phys_addr_t'
    extern int c6x_add_memory(phys_addr_t start, unsigned long size);
    ^

    Signed-off-by: Chen Gang
    Signed-off-by: Mark Salter

    Chen Gang
     
  • For supporting uClinux flat-format executables, c6x needs to define the
    fewest features to support it, at present, xtensa architecture has the
    fewest feature for it, so just copy xtensa flat.h. The related error:

    CC fs/binfmt_flat.o
    In file included from fs/binfmt_flat.c:36:0:
    include/linux/flat.h:12:22: fatal error: asm/flat.h: No such file or directory

    Signed-off-by: Chen Gang
    Signed-off-by: Mark Salter

    Chen Gang
     
  • early_init_dt_scan() accepts "void *", the related warning:

    CC arch/c6x/kernel/setup.o
    arch/c6x/kernel/setup.c: In function 'machine_init':
    arch/c6x/kernel/setup.c:290:21: warning: passing argument 1 of 'early_init_dt_scan' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
    early_init_dt_scan(fdt);
    ^
    In file included from arch/c6x/kernel/setup.c:19:0:
    include/linux/of_fdt.h:75:13: note: expected 'void *' but argument is of type 'const void *'
    extern bool early_init_dt_scan(void *params);
    ^

    Signed-off-by: Chen Gang
    Signed-off-by: Mark Salter

    Chen Gang
     
  • For gcc5 c6x raw compiler, at present, it may not define __linux__, so
    c6x kernel still needs to define __linux__ just like another archs have
    done. The related error:

    CC [M] fs/coda/psdev.o
    In file included from include/linux/coda.h:64:0,
    from fs/coda/psdev.c:45:
    include/uapi/linux/coda.h:221:2: error: unknown type name 'u_quad_t'
    u_quad_t va_size; /* file size in bytes */
    ^
    include/uapi/linux/coda.h:229:2: error: unknown type name 'u_quad_t'
    u_quad_t va_bytes; /* bytes of disk space held by file */
    ^
    include/uapi/linux/coda.h:230:2: error: unknown type name 'u_quad_t'
    u_quad_t va_filerev; /* file modification number */
    ^

    Signed-off-by: Chen Gang
    Signed-off-by: Mark Salter

    Chen Gang
     
  • time_init invokes timer64_init (which is __init annotation)
    since all of these are invoked at init time, lets maintain
    consistency by ensuring time_init is marked appropriately
    as well.

    This fixes the following warning with CONFIG_DEBUG_SECTION_MISMATCH=y

    WARNING: vmlinux.o(.text+0x3bfc): Section mismatch in reference from the function time_init() to the function .init.text:timer64_init()
    The function time_init() references
    the function __init timer64_init().
    This is often because time_init lacks a __init
    annotation or the annotation of timer64_init is wrong.

    Fixes: 546a39546c64 ("C6X: time management")
    Signed-off-by: Nishanth Menon
    Signed-off-by: Mark Salter

    Nishanth Menon
     

13 Mar, 2015

1 commit

  • When !MMU, asm-generic will not define default pgprot_writecombine, so c6x
    needs to define it by itself. The related error:

    CC [M] fs/pstore/ram_core.o
    fs/pstore/ram_core.c: In function 'persistent_ram_vmap':
    fs/pstore/ram_core.c:399:10: error: implicit declaration of function 'pgprot_writecombine' [-Werror=implicit-function-declaration]
    prot = pgprot_writecombine(PAGE_KERNEL);
    ^
    fs/pstore/ram_core.c:399:8: error: incompatible types when assigning to type 'pgprot_t {aka struct }' from type 'int'
    prot = pgprot_writecombine(PAGE_KERNEL);
    ^

    Signed-off-by: Chen Gang
    Cc: Mark Salter
    Cc: Aurelien Jacquiot
    Cc: "Kirill A. Shutemov"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Chen Gang
     

04 Mar, 2015

1 commit

  • Or c6x will cause building break for allmodconfig, the related error:

    CC arch/c6x/kernel/setup.o
    arch/c6x/kernel/setup.c: In function 'setup_arch':
    arch/c6x/kernel/setup.c:433:2: error: 'conswitchp' undeclared (first use in this function)
    conswitchp = &dummy_con;
    ^
    arch/c6x/kernel/setup.c:433:2: note: each undeclared identifier is reported only once for each function it appears in
    arch/c6x/kernel/setup.c:433:16: error: 'dummy_con' undeclared (first use in this function)
    conswitchp = &dummy_con;
    ^

    Signed-off-by: Chen Gang
    [removed unnecessary #ifdef around include]
    Signed-off-by: Mark Salter

    Chen Gang
     

13 Feb, 2015

1 commit

  • If an attacker can cause a controlled kernel stack overflow, overwriting
    the restart block is a very juicy exploit target. This is because the
    restart_block is held in the same memory allocation as the kernel stack.

    Moving the restart block to struct task_struct prevents this exploit by
    making the restart_block harder to locate.

    Note that there are other fields in thread_info that are also easy
    targets, at least on some architectures.

    It's also a decent simplification, since the restart code is more or less
    identical on all architectures.

    [james.hogan@imgtec.com: metag: align thread_info::supervisor_stack]
    Signed-off-by: Andy Lutomirski
    Cc: Thomas Gleixner
    Cc: Al Viro
    Cc: "H. Peter Anvin"
    Cc: Ingo Molnar
    Cc: Kees Cook
    Cc: David Miller
    Acked-by: Richard Weinberger
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Cc: Matt Turner
    Cc: Vineet Gupta
    Cc: Russell King
    Cc: Catalin Marinas
    Cc: Will Deacon
    Cc: Haavard Skinnemoen
    Cc: Hans-Christian Egtvedt
    Cc: Steven Miao
    Cc: Mark Salter
    Cc: Aurelien Jacquiot
    Cc: Mikael Starvik
    Cc: Jesper Nilsson
    Cc: David Howells
    Cc: Richard Kuo
    Cc: "Luck, Tony"
    Cc: Geert Uytterhoeven
    Cc: Michal Simek
    Cc: Ralf Baechle
    Cc: Jonas Bonn
    Cc: "James E.J. Bottomley"
    Cc: Helge Deller
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Acked-by: Michael Ellerman (powerpc)
    Tested-by: Michael Ellerman (powerpc)
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Cc: Chen Liqin
    Cc: Lennox Wu
    Cc: Chris Metcalf
    Cc: Guan Xuetao
    Cc: Chris Zankel
    Cc: Max Filippov
    Cc: Oleg Nesterov
    Cc: Guenter Roeck
    Signed-off-by: James Hogan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andy Lutomirski
     

11 Feb, 2015

1 commit

  • We've replaced remap_file_pages(2) implementation with emulation. Nobody
    creates non-linear mapping anymore.

    Signed-off-by: Kirill A. Shutemov
    Acked-by: Mark Salter
    Cc: Aurelien Jacquiot
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kirill A. Shutemov
     

11 Dec, 2014

1 commit

  • As there are now no remaining users of arch_fast_hash(), lets kill
    it entirely.

    This basically reverts commit 71ae8aac3e19 ("lib: introduce arch
    optimized hash library") and follow-up work, that is f.e., commit
    237217546d44 ("lib: hash: follow-up fixups for arch hash"),
    commit e3fec2f74f7f ("lib: Add missing arch generic-y entries for
    asm-generic/hash.h") and last but not least commit 6a02652df511
    ("perf tools: Fix include for non x86 architectures").

    Cc: Francesco Fusco
    Cc: Thomas Graf
    Cc: Arnaldo Carvalho de Melo
    Signed-off-by: Daniel Borkmann
    Signed-off-by: David S. Miller

    Daniel Borkmann
     

14 Sep, 2014

1 commit

  • The nohz full code needs irq work to trigger its own interrupt so that
    the subsystem can work even when the tick is stopped.

    Lets introduce arch_irq_work_has_interrupt() that archs can override to
    tell about their support for this ability.

    Signed-off-by: Peter Zijlstra
    Cc: Ingo Molnar
    Cc: Paul E. McKenney
    Cc: Peter Zijlstra
    Cc: Thomas Gleixner
    Signed-off-by: Frederic Weisbecker

    Peter Zijlstra
     

10 Aug, 2014

1 commit

  • Pull arch signal handling cleanup from Richard Weinberger:
    "This patch series moves all remaining archs to the get_signal(),
    signal_setup_done() and sigsp() functions.

    Currently these archs use open coded variants of the said functions.
    Further, unused parameters get removed from get_signal_to_deliver(),
    tracehook_signal_handler() and signal_delivered().

    At the end of the day we save around 500 lines of code."

    * 'signal-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/misc: (43 commits)
    powerpc: Use sigsp()
    openrisc: Use sigsp()
    mn10300: Use sigsp()
    mips: Use sigsp()
    microblaze: Use sigsp()
    metag: Use sigsp()
    m68k: Use sigsp()
    m32r: Use sigsp()
    hexagon: Use sigsp()
    frv: Use sigsp()
    cris: Use sigsp()
    c6x: Use sigsp()
    blackfin: Use sigsp()
    avr32: Use sigsp()
    arm64: Use sigsp()
    arc: Use sigsp()
    sas_ss_flags: Remove nested ternary if
    Rip out get_signal_to_deliver()
    Clean up signal_delivered()
    tracehook_signal_handler: Remove sig, info, ka and regs
    ...

    Linus Torvalds
     

06 Aug, 2014

2 commits


17 Jul, 2014

1 commit

  • The arch_mutex_cpu_relax() function, introduced by 34b133f, is
    hacky and ugly. It was added a few years ago to address the fact
    that common cpu_relax() calls include yielding on s390, and thus
    impact the optimistic spinning functionality of mutexes. Nowadays
    we use this function well beyond mutexes: rwsem, qrwlock, mcs and
    lockref. Since the macro that defines the call is in the mutex header,
    any users must include mutex.h and the naming is misleading as well.

    This patch (i) renames the call to cpu_relax_lowlatency ("relax, but
    only if you can do it with very low latency") and (ii) defines it in
    each arch's asm/processor.h local header, just like for regular cpu_relax
    functions. On all archs, except s390, cpu_relax_lowlatency is simply cpu_relax,
    and thus we can take it out of mutex.h. While this can seem redundant,
    I believe it is a good choice as it allows us to move out arch specific
    logic from generic locking primitives and enables future(?) archs to
    transparently define it, similarly to System Z.

    Signed-off-by: Davidlohr Bueso
    Signed-off-by: Peter Zijlstra
    Cc: Andrew Morton
    Cc: Anton Blanchard
    Cc: Aurelien Jacquiot
    Cc: Benjamin Herrenschmidt
    Cc: Bharat Bhushan
    Cc: Catalin Marinas
    Cc: Chen Liqin
    Cc: Chris Metcalf
    Cc: Christian Borntraeger
    Cc: Chris Zankel
    Cc: David Howells
    Cc: David S. Miller
    Cc: Deepthi Dharwar
    Cc: Dominik Dingel
    Cc: Fenghua Yu
    Cc: Geert Uytterhoeven
    Cc: Guan Xuetao
    Cc: Haavard Skinnemoen
    Cc: Hans-Christian Egtvedt
    Cc: Heiko Carstens
    Cc: Helge Deller
    Cc: Hirokazu Takata
    Cc: Ivan Kokshaysky
    Cc: James E.J. Bottomley
    Cc: James Hogan
    Cc: Jason Wang
    Cc: Jesper Nilsson
    Cc: Joe Perches
    Cc: Jonas Bonn
    Cc: Joseph Myers
    Cc: Kees Cook
    Cc: Koichi Yasutake
    Cc: Lennox Wu
    Cc: Linus Torvalds
    Cc: Mark Salter
    Cc: Martin Schwidefsky
    Cc: Matt Turner
    Cc: Max Filippov
    Cc: Michael Neuling
    Cc: Michal Simek
    Cc: Mikael Starvik
    Cc: Nicolas Pitre
    Cc: Paolo Bonzini
    Cc: Paul Burton
    Cc: Paul E. McKenney
    Cc: Paul Gortmaker
    Cc: Paul Mackerras
    Cc: Qais Yousef
    Cc: Qiaowei Ren
    Cc: Rafael Wysocki
    Cc: Ralf Baechle
    Cc: Richard Henderson
    Cc: Richard Kuo
    Cc: Russell King
    Cc: Steven Miao
    Cc: Steven Rostedt
    Cc: Stratos Karafotis
    Cc: Tim Chen
    Cc: Tony Luck
    Cc: Vasily Kulikov
    Cc: Vineet Gupta
    Cc: Vineet Gupta
    Cc: Waiman Long
    Cc: Will Deacon
    Cc: Wolfram Sang
    Cc: adi-buildroot-devel@lists.sourceforge.net
    Cc: linux390@de.ibm.com
    Cc: linux-alpha@vger.kernel.org
    Cc: linux-am33-list@redhat.com
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-c6x-dev@linux-c6x.org
    Cc: linux-cris-kernel@axis.com
    Cc: linux-hexagon@vger.kernel.org
    Cc: linux-ia64@vger.kernel.org
    Cc: linux@lists.openrisc.net
    Cc: linux-m32r-ja@ml.linux-m32r.org
    Cc: linux-m32r@ml.linux-m32r.org
    Cc: linux-m68k@lists.linux-m68k.org
    Cc: linux-metag@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Cc: linux-parisc@vger.kernel.org
    Cc: linuxppc-dev@lists.ozlabs.org
    Cc: linux-s390@vger.kernel.org
    Cc: linux-sh@vger.kernel.org
    Cc: linux-xtensa@linux-xtensa.org
    Cc: sparclinux@vger.kernel.org
    Link: http://lkml.kernel.org/r/1404079773.2619.4.camel@buesod1.americas.hpqcorp.net
    Signed-off-by: Ingo Molnar

    Davidlohr Bueso
     

05 Jun, 2014

1 commit

  • …/robh/linux into next

    Pull DeviceTree updates from Rob Herring:
    - Another round of clean-up of FDT related code in architecture code.
    This removes knowledge of internal FDT details from most
    architectures except powerpc.
    - Conversion of kernel's custom FDT parsing code to use libfdt.
    - DT based initialization for generic serial earlycon. The
    introduction of generic serial earlycon support went in through the
    tty tree.
    - Improve the platform device naming for DT probed devices to ensure
    unique naming and use parent names instead of a global index.
    - Fix a race condition in of_update_property.
    - Unify the various linker section OF match tables and fix several
    function prototype errors.
    - Update platform_get_irq_byname to work in deferred probe cases.
    - 2 binding doc updates

    * tag 'devicetree-for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (58 commits)
    of: handle NULL node in next_child iterators
    of/irq: provide more wrappers for !CONFIG_OF
    devicetree: bindings: Document micrel vendor prefix
    dt: bindings: dwc2: fix required value for the phy-names property
    of_pci_irq: kill useless variable in of_irq_parse_pci()
    of/irq: do irq resolution in platform_get_irq_byname()
    of: Add a testcase for of_find_node_by_path()
    of: Make of_find_node_by_path() handle /aliases
    of: Create unlocked version of for_each_child_of_node()
    lib: add glibc style strchrnul() variant
    of: Handle memory@0 node on PPC32 only
    pci/of: Remove dead code
    of: fix race between search and remove in of_update_property()
    of: Use NULL for pointers
    of: Stop naming platform_device using dcr address
    of: Ensure unique names without sacrificing determinism
    tty/serial: pl011: add DT based earlycon support
    of/fdt: add FDT serial scanning for earlycon
    of/fdt: add FDT address translation support
    serial: earlycon: add DT support
    ...

    Linus Torvalds
     

30 Apr, 2014

1 commit


18 Apr, 2014

1 commit

  • c6x doesn't have a barrier.h and completely relies on
    asm-generic/barrier.h. Therefore its smp_mb() is barrier() and we can
    use the default versions that are smp_mb().

    Signed-off-by: Peter Zijlstra
    Acked-by: Mark Salter
    Acked-by: Paul E. McKenney
    Link: http://lkml.kernel.org/n/tip-kl53k3pyj0rbd80jq8ralpf3@git.kernel.org
    Cc: Aurelien Jacquiot
    Cc: Linus Torvalds
    Cc: Mark Salter
    Cc: linux-c6x-dev@linux-c6x.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar

    Peter Zijlstra