19 Apr, 2014

1 commit

  • Commit 93ea02bb8435 ("arch: Clean up asm/barrier.h implementations")
    wired generic barrier.h for ARC, but failed to delete the existing file.

    In 3.15, due to rcupdate.h updates, this causes a build breakage on ARC:

    CC arch/arc/kernel/asm-offsets.s
    In file included from include/linux/sched.h:45:0,
    from arch/arc/kernel/asm-offsets.c:9:
    include/linux/rculist.h: In function __list_add_rcu:
    include/linux/rculist.h:54:2: error: implicit declaration of function smp_store_release [-Werror=implicit-function-declaration]
    rcu_assign_pointer(list_next_rcu(prev), new);
    ^

    Cc: Peter Zijlstra
    Signed-off-by: Vineet Gupta
    Signed-off-by: Linus Torvalds

    Vineet Gupta
     

08 Apr, 2014

1 commit

  • Pull ARC changes from Vineet Gupta:
    - Support for external initrd from Noam
    - Fix broken serial console in nsimosci Virtual Platform
    - Reuse of ENTRY/END assembler macros across hand asm code
    - Other minor fixes here and there

    * tag 'arc-v3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
    ARC: [nsimosci] Unbork console
    ARC: [nsimosci] Change .dts to use generic 8250 UART
    ARC: [SMP] General Fixes
    ARC: Remove unused DT template file
    ARC: [clockevent] simplify timer ISR
    ARC: [clockevent] can't be SoC specific
    ARC: Remove ARC_HAS_COH_RTSC
    ARC: switch to generic ENTRY/END assembler annotations
    ARC: support external initrd
    ARC: add uImage to .gitignore
    ARC: [arcfpga] Fix __initconst data const-correctness

    Linus Torvalds
     

26 Mar, 2014

1 commit


10 Feb, 2014

2 commits

  • This patch allows each architecture to add its specific assembly optimized
    arch_mcs_spin_lock_contended and arch_mcs_spinlock_uncontended for
    MCS lock and unlock functions.

    Signed-off-by: Tim Chen
    Cc: Scott J Norton
    Cc: Raghavendra K T
    Cc: AswinChandramouleeswaran
    Cc: George Spelvin
    Cc: Rik vanRiel
    Cc: Andrea Arcangeli
    Cc: MichelLespinasse
    Cc: Peter Hurley
    Cc: Andi Kleen
    Cc: Alex Shi
    Cc: Dave Hansen
    Cc: Tim Chen
    Cc: Arnd Bergmann
    Cc: "Figo.zhang"
    Cc: "Paul E.McKenney"
    Cc: "H. Peter Anvin"
    Cc: Davidlohr Bueso
    Cc: Waiman Long
    Cc: Ingo Molnar
    Cc: Will Deacon
    Cc: Andrew Morton
    Cc: Linus Torvalds
    Cc: Matthew R Wilcox
    Signed-off-by: Peter Zijlstra
    Link: http://lkml.kernel.org/r/1390347382.3138.67.camel@schen9-DESK
    Signed-off-by: Ingo Molnar

    Tim Chen
     
  • We perform a clean up of the Kbuid files in each architecture.
    We order the files in each Kbuild in alphabetical order
    by running the below script.

    for i in arch/*/include/asm/Kbuild
    do
    cat $i | gawk '/^generic-y/ {
    i = 3;
    do {
    for (; i ${i}.sorted;
    mv ${i}.sorted $i;
    done

    Signed-off-by: Tim Chen
    Cc: Arnd Bergmann
    Cc: Matthew R Wilcox
    Cc: AswinChandramouleeswaran
    Cc: Dave Hansen
    Cc: "Paul E.McKenney"
    Cc: Scott J Norton
    Cc: Will Deacon
    Cc: "Figo.zhang"
    Cc: Linus Torvalds
    Cc: Rik van Riel
    Cc: Waiman Long
    Cc: Peter Hurley
    Cc: Andrea Arcangeli
    Cc: Tim Chen
    Cc: Alex Shi
    Cc: Raghavendra K T
    Cc: Andi Kleen
    Cc: George Spelvin
    Cc: MichelLespinasse
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Davidlohr Bueso
    Cc: Andrew Morton
    Signed-off-by: Peter Zijlstra
    [ Fixed build bug. ]
    Signed-off-by: Ingo Molnar

    Tim Chen
     

31 Jan, 2014

1 commit

  • Pull kbuild changes from Michal Marek:
    - fix make -s detection with make-4.0
    - fix for scripts/setlocalversion when the kernel repository is a
    submodule
    - do not hardcode ';' in macros that expand to assembler code, as some
    architectures' assemblers use a different character for newline
    - Fix passing --gdwarf-2 to the assembler

    * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    frv: Remove redundant debugging info flag
    mn10300: Remove redundant debugging info flag
    kbuild: Fix debugging info generation for .S files
    arch: use ASM_NL instead of ';' for assembler new line character in the macro
    kbuild: Fix silent builds with make-4
    Fix detectition of kernel git repository in setlocalversion script [take #2]

    Linus Torvalds
     

28 Jan, 2014

1 commit


26 Jan, 2014

2 commits

  • Pull networking updates from David Miller:

    1) BPF debugger and asm tool by Daniel Borkmann.

    2) Speed up create/bind in AF_PACKET, also from Daniel Borkmann.

    3) Correct reciprocal_divide and update users, from Hannes Frederic
    Sowa and Daniel Borkmann.

    4) Currently we only have a "set" operation for the hw timestamp socket
    ioctl, add a "get" operation to match. From Ben Hutchings.

    5) Add better trace events for debugging driver datapath problems, also
    from Ben Hutchings.

    6) Implement auto corking in TCP, from Eric Dumazet. Basically, if we
    have a small send and a previous packet is already in the qdisc or
    device queue, defer until TX completion or we get more data.

    7) Allow userspace to manage ipv6 temporary addresses, from Jiri Pirko.

    8) Add a qdisc bypass option for AF_PACKET sockets, from Daniel
    Borkmann.

    9) Share IP header compression code between Bluetooth and IEEE802154
    layers, from Jukka Rissanen.

    10) Fix ipv6 router reachability probing, from Jiri Benc.

    11) Allow packets to be captured on macvtap devices, from Vlad Yasevich.

    12) Support tunneling in GRO layer, from Jerry Chu.

    13) Allow bonding to be configured fully using netlink, from Scott
    Feldman.

    14) Allow AF_PACKET users to obtain the VLAN TPID, just like they can
    already get the TCI. From Atzm Watanabe.

    15) New "Heavy Hitter" qdisc, from Terry Lam.

    16) Significantly improve the IPSEC support in pktgen, from Fan Du.

    17) Allow ipv4 tunnels to cache routes, just like sockets. From Tom
    Herbert.

    18) Add Proportional Integral Enhanced packet scheduler, from Vijay
    Subramanian.

    19) Allow openvswitch to mmap'd netlink, from Thomas Graf.

    20) Key TCP metrics blobs also by source address, not just destination
    address. From Christoph Paasch.

    21) Support 10G in generic phylib. From Andy Fleming.

    22) Try to short-circuit GRO flow compares using device provided RX
    hash, if provided. From Tom Herbert.

    The wireless and netfilter folks have been busy little bees too.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (2064 commits)
    net/cxgb4: Fix referencing freed adapter
    ipv6: reallocate addrconf router for ipv6 address when lo device up
    fib_frontend: fix possible NULL pointer dereference
    rtnetlink: remove IFLA_BOND_SLAVE definition
    rtnetlink: remove check for fill_slave_info in rtnl_have_link_slave_info
    qlcnic: update version to 5.3.55
    qlcnic: Enhance logic to calculate msix vectors.
    qlcnic: Refactor interrupt coalescing code for all adapters.
    qlcnic: Update poll controller code path
    qlcnic: Interrupt code cleanup
    qlcnic: Enhance Tx timeout debugging.
    qlcnic: Use bool for rx_mac_learn.
    bonding: fix u64 division
    rtnetlink: add missing IFLA_BOND_AD_INFO_UNSPEC
    sfc: Use the correct maximum TX DMA ring size for SFC9100
    Add Shradha Shah as the sfc driver maintainer.
    net/vxlan: Share RX skb de-marking and checksum checks with ovs
    tulip: cleanup by using ARRAY_SIZE()
    ip_tunnel: clear IPCB in ip_tunnel_xmit() in case dst_link_failure() is called
    net/cxgb4: Don't retrieve stats during recovery
    ...

    Linus Torvalds
     
  • Pull ARC changes from Vineet Gupta:
    - IPI optimization and cleanups
    - Support for bootloader provided external Device Tree blobs

    * tag 'arc-v3.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
    ARC: [cmdline] support External Device Trees from u-boot
    ARC: [cmdline] uboot cmdline handling rework
    ARC: [SMP] optimize IPI send and receive
    ARC: [SMP] simplify IPI code
    ARC: [SMP] cpu halt interface doesn't need "self" cpu-id
    ARC: [SMP] IPI ACK interface doesn't need "self" cpu-id
    ARC: [SMP] cpumask not needed in IPI send path

    Linus Torvalds
     

14 Jan, 2014

2 commits


13 Jan, 2014

1 commit


12 Jan, 2014

2 commits

  • We're going to be adding a few new barrier primitives, and in order to
    avoid endless duplication make more agressive use of
    asm-generic/barrier.h.

    Change the asm-generic/barrier.h such that it allows partial barrier
    definitions and fills out the rest with defaults.

    There are a few architectures (m32r, m68k) that could probably
    do away with their barrier.h file entirely but are kept for now due to
    their unconventional nop() implementation.

    Suggested-by: Geert Uytterhoeven
    Reviewed-by: "Paul E. McKenney"
    Reviewed-by: Mathieu Desnoyers
    Signed-off-by: Peter Zijlstra
    Cc: Michael Ellerman
    Cc: Michael Neuling
    Cc: Russell King
    Cc: Heiko Carstens
    Cc: Linus Torvalds
    Cc: Martin Schwidefsky
    Cc: Victor Kaplansky
    Cc: Tony Luck
    Cc: Oleg Nesterov
    Cc: Benjamin Herrenschmidt
    Cc: Frederic Weisbecker
    Link: http://lkml.kernel.org/r/20131213150640.846368594@infradead.org
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     
  • Move the barriers functions that depend on the atomic implementation
    into the atomic implementation.

    Reviewed-by: Paul E. McKenney
    Signed-off-by: Peter Zijlstra
    Acked-by: Vineet Gupta [for arch/arc bits]
    Cc: Peter Zijlstra
    Cc: Linus Torvalds
    Cc: Andrew Morton
    Cc: Thomas Gleixner
    Cc: Paul E. McKenney
    Link: http://lkml.kernel.org/r/20131213150640.786183683@infradead.org
    Signed-off-by: Ingo Molnar

    Peter Zijlstra
     

07 Jan, 2014

1 commit


23 Dec, 2013

2 commits

  • The interface is confusing, it feels like we are getting "sender" info,
    whereas it is the "receiver", which can very well be retrived by
    smp_processor_id(), if need be.

    Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • The current IPI sending callstack needlessly involves cpumask.

    arch_send_call_function_single_ipi(cpu) / smp_send_reschedule(cpu)
    ipi_send_msg(cpumask_of(cpu)) --> [cpu to cpumask]
    plat_smp_ops.ipi_send(callmap)
    for_each_cpu(callmap) --> [cpuask to cpu]
    do_plat_specific_ipi_PER_CPU

    Given that current backends are not capable of 1:N IPIs, lets simplify
    the interface for now, by keeping "a" cpu all along.

    Signed-off-by: Vineet Gupta

    Vineet Gupta
     

19 Dec, 2013

2 commits


18 Dec, 2013

1 commit


25 Nov, 2013

1 commit

  • Chen originally proposed this as "right thing to do" however I
    actually ran into this when building perf tools. Some of the utils
    include unistd.h as well as linux/unistd.h. Since -I includes kernel
    headers too, we end up including the ARC unistd.h twice, leading to
    redefinition nwarnings.

    ------------------>8-------------------
    CC bench/sched-pipe.o
    In file included from ~/kernel/arch/arc/include/uapi/asm/unistd.h:21:0,
    from ~/kernel/include/uapi/linux/unistd.h:7,
    from bench/sched-pipe.c:24:
    ~/kernel/include/uapi/asm-generic/unistd.h:889:0: error: "__NR_fcntl64"
    redefined [-Werror]
    #define __NR_fcntl64 __NR3264_fcntl
    ^
    In file included from
    ~/gnu/arc-linux-uclibc/sys-include/sys/syscall.h:24:0,
    from bench/../perf.h:112,
    from bench/sched-pipe.c:13:
    ~/gnu/arc-linux-uclibc/include/bits/sysnum.h:761:0: note: this is the
    location of the previous definition
    ------------------>8-------------------

    Verified that make headers_install works fine with this.

    Suggested-by: Chen Gang
    Signed-off-by: Vineet Gupta
    Cc: David Howells

    Vineet Gupta
     

20 Nov, 2013

2 commits

  • Pull second set of ARC changes from Vineet Gupta:
    - Support for Perf from Mischa
    - Enabling GPIO/Pinctrl drivers for Abilis TB10x platform
    - New defconfig for buildroot

    * tag 'arc-v3.13-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
    ARC: [plat-arcfpga] Add defconfig without initramfs location
    ARC: perf: ARC 700 PMU doesn't support sampling events
    ARC: Add documentation on DT binding for ARC700 PMU
    ARC: Add perf support for ARC700 cores
    ARC: [TB10x] Updates for GPIO and pinctrl

    Linus Torvalds
     
  • Pull irq cleanups from Ingo Molnar:
    "This is a multi-arch cleanup series from Thomas Gleixner, which we
    kept to near the end of the merge window, to not interfere with
    architecture updates.

    This series (motivated by the -rt kernel) unifies more aspects of IRQ
    handling and generalizes PREEMPT_ACTIVE"

    * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    preempt: Make PREEMPT_ACTIVE generic
    sparc: Use preempt_schedule_irq
    ia64: Use preempt_schedule_irq
    m32r: Use preempt_schedule_irq
    hardirq: Make hardirq bits generic
    m68k: Simplify low level interrupt handling code
    genirq: Prevent spurious detection for unconditionally polled interrupts

    Linus Torvalds
     

15 Nov, 2013

1 commit


14 Nov, 2013

1 commit


12 Nov, 2013

3 commits

  • Pull devicetree updates from Rob Herring:
    "DeviceTree updates for 3.13. This is a bit larger pull request than
    usual for this cycle with lots of clean-up.

    - Cross arch clean-up and consolidation of early DT scanning code.
    - Clean-up and removal of arch prom.h headers. Makes arch specific
    prom.h optional on all but Sparc.
    - Addition of interrupts-extended property for devices connected to
    multiple interrupt controllers.
    - Refactoring of DT interrupt parsing code in preparation for
    deferred probe of interrupts.
    - ARM cpu and cpu topology bindings documentation.
    - Various DT vendor binding documentation updates"

    * tag 'devicetree-for-3.13' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (82 commits)
    powerpc: add missing explicit OF includes for ppc
    dt/irq: add empty of_irq_count for !OF_IRQ
    dt: disable self-tests for !OF_IRQ
    of: irq: Fix interrupt-map entry matching
    MIPS: Netlogic: replace early_init_devtree() call
    of: Add Panasonic Corporation vendor prefix
    of: Add Chunghwa Picture Tubes Ltd. vendor prefix
    of: Add AU Optronics Corporation vendor prefix
    of/irq: Fix potential buffer overflow
    of/irq: Fix bug in interrupt parsing refactor.
    of: set dma_mask to point to coherent_dma_mask
    of: add vendor prefix for PHYTEC Messtechnik GmbH
    DT: sort vendor-prefixes.txt
    of: Add vendor prefix for Cadence
    of: Add empty for_each_available_child_of_node() macro definition
    arm/versatile: Fix versatile irq specifications.
    of/irq: create interrupts-extended property
    microblaze/pci: Drop PowerPC-ism from irq parsing
    of/irq: Create of_irq_parse_and_map_pci() to consolidate arch code.
    of/irq: Use irq_of_parse_and_map()
    ...

    Linus Torvalds
     
  • This adds basic perf support for ARC700 cores. Most PERF_COUNT_HW* events
    are supported now.

    Signed-off-by: Mischa Jonker
    Acked-by: Peter Zijlstra
    Signed-off-by: Vineet Gupta

    Mischa Jonker
     
  • Pull scheduler changes from Ingo Molnar:
    "The main changes in this cycle are:

    - (much) improved CONFIG_NUMA_BALANCING support from Mel Gorman, Rik
    van Riel, Peter Zijlstra et al. Yay!

    - optimize preemption counter handling: merge the NEED_RESCHED flag
    into the preempt_count variable, by Peter Zijlstra.

    - wait.h fixes and code reorganization from Peter Zijlstra

    - cfs_bandwidth fixes from Ben Segall

    - SMP load-balancer cleanups from Peter Zijstra

    - idle balancer improvements from Jason Low

    - other fixes and cleanups"

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (129 commits)
    ftrace, sched: Add TRACE_FLAG_PREEMPT_RESCHED
    stop_machine: Fix race between stop_two_cpus() and stop_cpus()
    sched: Remove unnecessary iteration over sched domains to update nr_busy_cpus
    sched: Fix asymmetric scheduling for POWER7
    sched: Move completion code from core.c to completion.c
    sched: Move wait code from core.c to wait.c
    sched: Move wait.c into kernel/sched/
    sched/wait: Fix __wait_event_interruptible_lock_irq_timeout()
    sched: Avoid throttle_cfs_rq() racing with period_timer stopping
    sched: Guarantee new group-entities always have weight
    sched: Fix hrtimer_cancel()/rq->lock deadlock
    sched: Fix cfs_bandwidth misuse of hrtimer_expires_remaining
    sched: Fix race on toggling cfs_bandwidth_used
    sched: Remove extra put_online_cpus() inside sched_setaffinity()
    sched/rt: Fix task_tick_rt() comment
    sched/wait: Fix build breakage
    sched/wait: Introduce prepare_to_wait_event()
    sched/wait: Add ___wait_cond_timeout() to wait_event*_timeout() too
    sched: Remove get_online_cpus() usage
    sched: Fix race in migrate_swap_stop()
    ...

    Linus Torvalds
     

08 Nov, 2013

1 commit


06 Nov, 2013

8 commits

  • - Add mm_cpumask setting (aggregating only, unlike some other arches)
    used to restrict the TLB flush cross-calling

    - cross-calling versions of TLB flush routines (thanks to Noam)

    Signed-off-by: Noam Camus
    Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • -Track a Per CPU ASID counter
    -mm-per-cpu ASID (multiple threads, or mm migrated around)

    Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • get_hw_config_num_irq() may be called by normal iss_model_init_smp()
    which is a function pointer for 'init_smp' which may be called by
    first_lines_of_secondary() which also need be normal too.

    The related warning (with allmodconfig):

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

    Signed-off-by: Chen Gang

    Chen Gang
     
  • first_lines_of_secondary() is a '__init' function, but it may be called
    by __cpu_up() by _cpu_up() by cpu_up() which is a normal export symbol
    function. So recommend to remove '__init'.

    The related warning (with allmodconfig):

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

    Signed-off-by: Chen Gang

    Chen Gang
     
  • They haven't '__init' in definition, but has '__init' in declaration.
    And normal function start_kernel_secondary() may call setup_processor()
    which will call arc_init_IRQ().

    So need remove '__init' for both of them. The related warning (with
    allmodconfig):

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

    Signed-off-by: Chen Gang

    Chen Gang
     
  • Lockdep required a small fix to stacktrace API which was incorrectly
    unwindign out of __switch_to for the current call frame.

    Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • Emulation not enabled is treated as if the fixup failed, so no need for
    special #ifdef checks.

    Signed-off-by: Vineet Gupta

    Vineet Gupta
     
  • Having them be different seems an obscure configuration.

    Signed-off-by: Vineet Gupta

    Vineet Gupta
     

10 Oct, 2013

3 commits

  • Now that prom.h is optional, all the empty prom.h headers can be removed.

    Signed-off-by: Rob Herring
    Acked-by: Vineet Gupta
    Acked-by: Catalin Marinas
    Acked-by: Grant Likely
    Cc: Will Deacon
    Cc: Mark Salter
    Cc: Aurelien Jacquiot
    Cc: James Hogan
    Cc: Jonas Bonn
    Cc: Chris Zankel
    Cc: Max Filippov

    Rob Herring
     
  • HAVE_ARCH_DEVTREE_FIXUPS appears to always be needed except for sparc,
    but it is only used for /proc/device-teee and sparc does not enable
    /proc/device-tree. So this option is redundant. Remove the option and
    always enable it. This has the side effect of fixing /proc/device-tree
    on arches such as arm64 which failed to define this option.

    Signed-off-by: Rob Herring
    Acked-by: Vineet Gupta
    Acked-by: Grant Likely
    Cc: Russell King
    Cc: James Hogan
    Cc: Michal Simek
    Cc: Jonas Bonn
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: x86@kernel.org
    Cc: Chris Zankel
    Cc: Max Filippov

    Rob Herring
     
  • Convert arc to use the common of_flat_dt_match_machine function.

    Signed-off-by: Rob Herring
    Acked-by: Vineet Gupta

    Rob Herring