18 Apr, 2016

1 commit


21 Mar, 2016

1 commit

  • Pull x86 protection key support from Ingo Molnar:
    "This tree adds support for a new memory protection hardware feature
    that is available in upcoming Intel CPUs: 'protection keys' (pkeys).

    There's a background article at LWN.net:

    https://lwn.net/Articles/643797/

    The gist is that protection keys allow the encoding of
    user-controllable permission masks in the pte. So instead of having a
    fixed protection mask in the pte (which needs a system call to change
    and works on a per page basis), the user can map a (handful of)
    protection mask variants and can change the masks runtime relatively
    cheaply, without having to change every single page in the affected
    virtual memory range.

    This allows the dynamic switching of the protection bits of large
    amounts of virtual memory, via user-space instructions. It also
    allows more precise control of MMU permission bits: for example the
    executable bit is separate from the read bit (see more about that
    below).

    This tree adds the MM infrastructure and low level x86 glue needed for
    that, plus it adds a high level API to make use of protection keys -
    if a user-space application calls:

    mmap(..., PROT_EXEC);

    or

    mprotect(ptr, sz, PROT_EXEC);

    (note PROT_EXEC-only, without PROT_READ/WRITE), the kernel will notice
    this special case, and will set a special protection key on this
    memory range. It also sets the appropriate bits in the Protection
    Keys User Rights (PKRU) register so that the memory becomes unreadable
    and unwritable.

    So using protection keys the kernel is able to implement 'true'
    PROT_EXEC on x86 CPUs: without protection keys PROT_EXEC implies
    PROT_READ as well. Unreadable executable mappings have security
    advantages: they cannot be read via information leaks to figure out
    ASLR details, nor can they be scanned for ROP gadgets - and they
    cannot be used by exploits for data purposes either.

    We know about no user-space code that relies on pure PROT_EXEC
    mappings today, but binary loaders could start making use of this new
    feature to map binaries and libraries in a more secure fashion.

    There is other pending pkeys work that offers more high level system
    call APIs to manage protection keys - but those are not part of this
    pull request.

    Right now there's a Kconfig that controls this feature
    (CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS) that is default enabled
    (like most x86 CPU feature enablement code that has no runtime
    overhead), but it's not user-configurable at the moment. If there's
    any serious problem with this then we can make it configurable and/or
    flip the default"

    * 'mm-pkeys-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (38 commits)
    x86/mm/pkeys: Fix mismerge of protection keys CPUID bits
    mm/pkeys: Fix siginfo ABI breakage caused by new u64 field
    x86/mm/pkeys: Fix access_error() denial of writes to write-only VMA
    mm/core, x86/mm/pkeys: Add execute-only protection keys support
    x86/mm/pkeys: Create an x86 arch_calc_vm_prot_bits() for VMA flags
    x86/mm/pkeys: Allow kernel to modify user pkey rights register
    x86/fpu: Allow setting of XSAVE state
    x86/mm: Factor out LDT init from context init
    mm/core, x86/mm/pkeys: Add arch_validate_pkey()
    mm/core, arch, powerpc: Pass a protection key in to calc_vm_flag_bits()
    x86/mm/pkeys: Actually enable Memory Protection Keys in the CPU
    x86/mm/pkeys: Add Kconfig prompt to existing config option
    x86/mm/pkeys: Dump pkey from VMA in /proc/pid/smaps
    x86/mm/pkeys: Dump PKRU with other kernel registers
    mm/core, x86/mm/pkeys: Differentiate instruction fetches
    x86/mm/pkeys: Optimize fault handling in access_error()
    mm/core: Do not enforce PKEY permissions on remote mm access
    um, pkeys: Add UML arch_*_access_permitted() methods
    mm/gup, x86/mm/pkeys: Check VMAs and PTEs for protection keys
    x86/mm/gup: Simplify get_user_pages() PTE bit handling
    ...

    Linus Torvalds
     

20 Mar, 2016

1 commit

  • Pull networking updates from David Miller:
    "Highlights:

    1) Support more Realtek wireless chips, from Jes Sorenson.

    2) New BPF types for per-cpu hash and arrap maps, from Alexei
    Starovoitov.

    3) Make several TCP sysctls per-namespace, from Nikolay Borisov.

    4) Allow the use of SO_REUSEPORT in order to do per-thread processing
    of incoming TCP/UDP connections. The muxing can be done using a
    BPF program which hashes the incoming packet. From Craig Gallek.

    5) Add a multiplexer for TCP streams, to provide a messaged based
    interface. BPF programs can be used to determine the message
    boundaries. From Tom Herbert.

    6) Add 802.1AE MACSEC support, from Sabrina Dubroca.

    7) Avoid factorial complexity when taking down an inetdev interface
    with lots of configured addresses. We were doing things like
    traversing the entire address less for each address removed, and
    flushing the entire netfilter conntrack table for every address as
    well.

    8) Add and use SKB bulk free infrastructure, from Jesper Brouer.

    9) Allow offloading u32 classifiers to hardware, and implement for
    ixgbe, from John Fastabend.

    10) Allow configuring IRQ coalescing parameters on a per-queue basis,
    from Kan Liang.

    11) Extend ethtool so that larger link mode masks can be supported.
    From David Decotigny.

    12) Introduce devlink, which can be used to configure port link types
    (ethernet vs Infiniband, etc.), port splitting, and switch device
    level attributes as a whole. From Jiri Pirko.

    13) Hardware offload support for flower classifiers, from Amir Vadai.

    14) Add "Local Checksum Offload". Basically, for a tunneled packet
    the checksum of the outer header is 'constant' (because with the
    checksum field filled into the inner protocol header, the payload
    of the outer frame checksums to 'zero'), and we can take advantage
    of that in various ways. From Edward Cree"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1548 commits)
    bonding: fix bond_get_stats()
    net: bcmgenet: fix dma api length mismatch
    net/mlx4_core: Fix backward compatibility on VFs
    phy: mdio-thunder: Fix some Kconfig typos
    lan78xx: add ndo_get_stats64
    lan78xx: handle statistics counter rollover
    RDS: TCP: Remove unused constant
    RDS: TCP: Add sysctl tunables for sndbuf/rcvbuf on rds-tcp socket
    net: smc911x: convert pxa dma to dmaengine
    team: remove duplicate set of flag IFF_MULTICAST
    bonding: remove duplicate set of flag IFF_MULTICAST
    net: fix a comment typo
    ethernet: micrel: fix some error codes
    ip_tunnels, bpf: define IP_TUNNEL_OPTS_MAX and use it
    bpf, dst: add and use dst_tclassid helper
    bpf: make skb->tc_classid also readable
    net: mvneta: bm: clarify dependencies
    cls_bpf: reset class and reuse major in da
    ldmvsw: Checkpatch sunvnet.c and sunvnet_common.c
    ldmvsw: Add ldmvsw.c driver code
    ...

    Linus Torvalds
     

14 Mar, 2016

1 commit

  • This patch updates all instances of csum_tcpudp_magic and
    csum_tcpudp_nofold to reflect the types that are usually used as the source
    inputs. For example the protocol field is populated based on nexthdr which
    is actually an unsigned 8 bit value. The length is usually populated based
    on skb->len which is an unsigned integer.

    This addresses an issue in which the IPv6 function csum_ipv6_magic was
    generating a checksum using the full 32b of skb->len while
    csum_tcpudp_magic was only using the lower 16 bits. As a result we could
    run into issues when attempting to adjust the checksum as there was no
    protocol agnostic way to update it.

    With this change the value is still truncated as many architectures use
    "(len + proto) << 8", however this truncation only occurs for values
    greater than 16776960 in length and as such is unlikely to occur as we stop
    the inner headers at ~64K in size.

    I did have to make a few minor changes in the arm, mn10300, nios2, and
    score versions of the function in order to support these changes as they
    were either using things such as an OR to combine the protocol and length,
    or were using ntohs to convert the length which would have truncated the
    value.

    I also updated a few spots in terms of whitespace and type differences for
    the addresses. Most of this was just to make sure all of the definitions
    were in sync going forward.

    Signed-off-by: Alexander Duyck
    Signed-off-by: David S. Miller

    Alexander Duyck
     

08 Mar, 2016

1 commit

  • For a long time all architectures implement the pci_dma_* functions using
    the generic DMA API, and they all use the same header to do so.

    Move this header, pci-dma-compat.h, to include/linux and include it from
    the generic pci.h instead of having each arch duplicate this include.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Bjorn Helgaas

    Christoph Hellwig
     

16 Feb, 2016

1 commit

  • We will soon modify the vanilla get_user_pages() so it can no
    longer be used on mm/tasks other than 'current/current->mm',
    which is by far the most common way it is called. For now,
    we allow the old-style calls, but warn when they are used.
    (implemented in previous patch)

    This patch switches all callers of:

    get_user_pages()
    get_user_pages_unlocked()
    get_user_pages_locked()

    to stop passing tsk/mm so they will no longer see the warnings.

    Signed-off-by: Dave Hansen
    Reviewed-by: Thomas Gleixner
    Cc: Andrea Arcangeli
    Cc: Andrew Morton
    Cc: Andy Lutomirski
    Cc: Borislav Petkov
    Cc: Brian Gerst
    Cc: Dave Hansen
    Cc: Denys Vlasenko
    Cc: H. Peter Anvin
    Cc: Kirill A. Shutemov
    Cc: Linus Torvalds
    Cc: Naoya Horiguchi
    Cc: Peter Zijlstra
    Cc: Rik van Riel
    Cc: Srikar Dronamraju
    Cc: Vlastimil Babka
    Cc: jack@suse.cz
    Cc: linux-mm@kvack.org
    Link: http://lkml.kernel.org/r/20160212210156.113E9407@viggo.jf.intel.com
    Signed-off-by: Ingo Molnar

    Dave Hansen
     

22 Jan, 2016

2 commits

  • Merge third patch-bomb from Andrew Morton:
    "I'm pretty much done for -rc1 now:

    - the rest of MM, basically

    - lib/ updates

    - checkpatch, epoll, hfs, fatfs, ptrace, coredump, exit

    - cpu_mask simplifications

    - kexec, rapidio, MAINTAINERS etc, etc.

    - more dma-mapping cleanups/simplifications from hch"

    * emailed patches from Andrew Morton : (109 commits)
    MAINTAINERS: add/fix git URLs for various subsystems
    mm: memcontrol: add "sock" to cgroup2 memory.stat
    mm: memcontrol: basic memory statistics in cgroup2 memory controller
    mm: memcontrol: do not uncharge old page in page cache replacement
    Documentation: cgroup: add memory.swap.{current,max} description
    mm: free swap cache aggressively if memcg swap is full
    mm: vmscan: do not scan anon pages if memcg swap limit is hit
    swap.h: move memcg related stuff to the end of the file
    mm: memcontrol: replace mem_cgroup_lruvec_online with mem_cgroup_online
    mm: vmscan: pass memcg to get_scan_count()
    mm: memcontrol: charge swap to cgroup2
    mm: memcontrol: clean up alloc, online, offline, free functions
    mm: memcontrol: flatten struct cg_proto
    mm: memcontrol: rein in the CONFIG space madness
    net: drop tcp_memcontrol.c
    mm: memcontrol: introduce CONFIG_MEMCG_LEGACY_KMEM
    mm: memcontrol: allow to disable kmem accounting for cgroup2
    mm: memcontrol: account "kmem" consumers in cgroup2 memory controller
    mm: memcontrol: move kmem accounting code to CONFIG_MEMCG
    mm: memcontrol: separate kmem code from legacy tcp accounting code
    ...

    Linus Torvalds
     
  • Pull CRIS updates from Jesper Nilsson:
    "Just some fixups for section mismatches from Guenter"

    * tag 'cris-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/jesper/cris:
    cris: Fix section mismatches in architecture startup code
    cris: debugport: Fix section mismatches

    Linus Torvalds
     

21 Jan, 2016

2 commits

  • Move the generic implementation to now that all
    architectures support it and remove the HAVE_DMA_ATTR Kconfig symbol now
    that everyone supports them.

    [valentinrothberg@gmail.com: remove leftovers in Kconfig]
    Signed-off-by: Christoph Hellwig
    Cc: "David S. Miller"
    Cc: Aurelien Jacquiot
    Cc: Chris Metcalf
    Cc: David Howells
    Cc: Geert Uytterhoeven
    Cc: Haavard Skinnemoen
    Cc: Hans-Christian Egtvedt
    Cc: Helge Deller
    Cc: James Hogan
    Cc: Jesper Nilsson
    Cc: Koichi Yasutake
    Cc: Ley Foon Tan
    Cc: Mark Salter
    Cc: Mikael Starvik
    Cc: Steven Miao
    Cc: Vineet Gupta
    Cc: Christian Borntraeger
    Cc: Joerg Roedel
    Cc: Sebastian Ott
    Signed-off-by: Valentin Rothberg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • Signed-off-by: Christoph Hellwig
    Cc: Mikael Starvik
    Cc: Jesper Nilsson
    Cc: Christian Borntraeger
    Cc: Joerg Roedel
    Cc: Sebastian Ott
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     

19 Dec, 2015

2 commits


15 Dec, 2015

2 commits

  • Section mismatches can now result in build failures.
    As result, cris:allnoconfig fails to build as follows.

    WARNING: modpost: Found 7 section mismatch(es).
    To see full details build your kernel with:
    'make CONFIG_DEBUG_SECTION_MISMATCH=y'
    FATAL: modpost: Section mismatches detected.
    Set CONFIG_SECTION_MISMATCH_WARN_ONLY=y to allow them.

    Part of the problem is that references from .text to .init.text
    are not permitted, and such references are used in cris startup code.
    Since references from .head.text to .init.text are permitted, move
    cris startup code to a new section .head.text.

    Signed-off-by: Guenter Roeck
    Signed-off-by: Jesper Nilsson

    Guenter Roeck
     
  • Section mismatches can now cause build failures, such as for
    cris:allnoconfig. Rename affected variables to end with _console
    to make section mismatch checks happy.

    Signed-off-by: Guenter Roeck
    Signed-off-by: Jesper Nilsson

    Guenter Roeck
     

09 Dec, 2015

1 commit


03 Nov, 2015

13 commits

  • Function get_cmos_time() was removed with commit 657926a83df9 ("cris:
    time: Cleanup of persistent clock stuff"). The remaining reference to
    it may cause the following build error.

    arch/cris/kernel/built-in.o:(___ksymtab+get_cmos_time+0x0):
    undefined reference to `get_cmos_time'
    Makefile:946: recipe for target 'vmlinux' failed

    Fixes: 657926a83df9 ("cris: time: Cleanup of persistent clock stuff")
    Cc: Xunlei Pang
    Cc: Rabin Vincent
    Signed-off-by: Guenter Roeck
    Signed-off-by: Jesper Nilsson

    Guenter Roeck
     
  • Drop all code related to Kconfigs that don't exist.
    Fix one Kconfig where it was actually typo:ed (ETRAX_KGB_PORT2)
    Drop content related to CRIS v32 SoCs from etraxgpio.h headerfile,
    all use of GPIO for both ETRAX FS and ARTPEC-3 should now be through
    standard gpiolib instead.

    Signed-off-by: Jesper Nilsson

    Jesper Nilsson
     
  • - Remove update_persistent_clock(), as it does nothing now.
    - Remove read_persistent_clock(), let it fall back to the weak version.

    Cc: Mikael Starvik
    Cc: John Stultz
    Cc: Arnd Bergmann
    Signed-off-by: Xunlei Pang
    Acked-by: Rabin Vincent
    Signed-off-by: Jesper Nilsson

    Xunlei Pang
     
  • There are native helpers such as print_hex_byte() and %*ph specifier to dump
    data in hex format. Re-use them instead of a custom approach.

    Signed-off-by: Andy Shevchenko
    Signed-off-by: Jesper Nilsson

    Andy Shevchenko
     
  • Since we now have a gpiolib driver, remove this code:

    The gpio-etraxfs driver (along with things like gpio-keys-polled for
    polling support) replaces the GIO driver implementations in mach-a3 and
    mach-fs. The various generic external chip drivers replace the "virtual
    gpio" parts.

    The generic gpio-leds driver replaces the LED handling.

    Signed-off-by: Rabin Vincent
    Signed-off-by: Jesper Nilsson

    Rabin Vincent
     
  • Now that we have a gpiolib GPIO driver, the generic i2c-gpio driver
    provides this functionality.

    Signed-off-by: Rabin Vincent
    Signed-off-by: Jesper Nilsson

    Rabin Vincent
     
  • Add a device tree for the Axis P1343 with the ARTPEC-3 SoC and on-board
    LEDs and RTC.

    Signed-off-by: Rabin Vincent
    Signed-off-by: Jesper Nilsson

    Rabin Vincent
     
  • Add the GPIO driver to the device tree and, using it, support for the
    LEDs and the RTC chip (via I2C-GPIO), as well as the temperature sensor
    (via SPI-GPIO).

    Signed-off-by: Rabin Vincent
    Signed-off-by: Jesper Nilsson

    Rabin Vincent
     
  • Add a dt-bindings symlink to get DT include files, as on other
    architectures. See c58299a ("kbuild: create an "include chroot" for DT
    bindings") for the details.

    Signed-off-by: Rabin Vincent
    Signed-off-by: Jesper Nilsson

    Rabin Vincent
     
  • Increase NR_IQRS so we can fit in GPIO interrupts.

    Signed-off-by: Rabin Vincent
    Signed-off-by: Jesper Nilsson

    Rabin Vincent
     
  • Within one C file, current gcc can optimize the global static variables
    according to the C code, but it will skip assembly code -- it will pass
    them to gas directly.

    if the static variable is used between C code and assembly code in one C
    file (e.g. is_dyn_brkp in kgdb.c), it needs '__used' to let gcc know it
    should be still used, or gcc may remove it for optimization.

    The related error in this case:

    LD init/built-in.o
    arch/cris/arch-v10/kernel/built-in.o: In function `kgdb_handle_breakpoint':
    (.text+0x2aca): undefined reference to `is_dyn_brkp'
    arch/cris/arch-v10/kernel/built-in.o: In function `is_static':
    kgdb.c:(.text+0x2ada): undefined reference to `is_dyn_brkp'

    Signed-off-by: Chen Gang
    Signed-off-by: Jesper Nilsson

    Chen Gang
     
  • For arch-v10, there is no DTP0 register, and at present, assembler know
    BAR, so use BAR instead of DTP0, the related error (with allmodconfig):

    CC arch/cris/arch-v10/kernel/kgdb.o
    {standard input}: Assembler messages:
    {standard input}:6: Error: Illegal operands
    {standard input}:6: Error: Illegal operands

    Signed-off-by: Chen Gang
    Acked-by: Hans-Peter Nilsson
    Signed-off-by: Jesper Nilsson

    Chen Gang
     
  • There are kernel native helpers to convert hex ascii to the binary format:
    hex_to_bin() and hex2bin(). Thus, no need to reimplement them customly.

    Signed-off-by: Andy Shevchenko
    Cc: Geert Uytterhoeven
    Signed-off-by: Jesper Nilsson

    Andy Shevchenko
     

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
     

05 Sep, 2015

11 commits

  • This file is never built.

    Signed-off-by: Rabin Vincent
    Signed-off-by: Jesper Nilsson

    Rabin Vincent
     
  • This file is never built.

    Signed-off-by: Rabin Vincent
    Signed-off-by: Jesper Nilsson

    Rabin Vincent
     
  • With lockdep support implemented on CRISv32, we get the following splat.
    switch_mm() can be called both from the scheduler() (with interrupts
    disabled) and from flush_old_exec (via activate_mm()), with interrupts
    enabled. Fix it by disabling interrupts in activate_mm(), similar to
    powerpc and hexagon.

    t======================================================
    [ INFO: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected ]
    3.19.0-08802-g20bc9f1-dirty #323 Not tainted
    ------------------------------------------------------
    init/1 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
    (mmu_context_lock){+.+...}, at: [] switch_mm+0x22/0xc6

    and this task is already holding:
    (&rq->lock){-.-.-.}, at: [] __schedule+0x5e/0x648
    which would create a new lock dependency:
    (&rq->lock){-.-.-.} -> (mmu_context_lock){+.+...}

    but this new dependency connects a HARDIRQ-irq-safe lock:
    (&rq->lock){-.-.-.}
    ... which became HARDIRQ-irq-safe at:
    [] scheduler_tick+0x28/0x5e
    [] timer_interrupt+0x4e/0x6a
    [] handle_irq_event_percpu+0x54/0x13c
    [] generic_handle_irq+0x2a/0x36

    to a HARDIRQ-irq-unsafe lock:
    (mmu_context_lock){+.+...}
    ... which became HARDIRQ-irq-unsafe at:
    ... [] __lock_acquire+0x8f8/0x1d9c
    [] switch_mm+0x22/0xc6
    [] flush_old_exec+0x500/0x5d4
    [] load_elf_phdrs+0x7a/0x84
    [] load_elf_binary+0x21c/0x13b4
    [] do_execve+0x22/0x2c
    [] ____call_usermodehelper+0x0/0x154
    [] ret_from_kernel_thread+0xe/0x14

    other info that might help us debug this:

    Possible interrupt unsafe locking scenario:

    CPU0 CPU1
    ---- ----
    lock(mmu_context_lock);
    local_irq_disable();
    lock(&rq->lock);
    lock(mmu_context_lock);

    lock(&rq->lock);

    *** DEADLOCK ***

    1 lock held by init/1:
    #0: (&rq->lock){-.-.-.}, at: [] __schedule+0x5e/0x648

    Call Trace:
    [] printk+0x0/0x4e
    [] print_shortest_lock_dependencies+0x0/0x15c
    [] print_stack_trace+0x0/0x88
    [] __lock_is_held+0x3e/0x5e
    [] lock_acquire+0x8a/0xcc
    [] _raw_spin_lock+0x44/0x7a
    [] switch_mm+0x22/0xc6
    [] __schedule+0x0/0x648
    [] schedule+0x36/0x7c
    [] trace_hardirqs_on+0x0/0x1e
    [] do_work_pending+0x30/0xd4
    [] _work_pending+0xe/0x12

    Signed-off-by: Rabin Vincent
    Signed-off-by: Jesper Nilsson

    Rabin Vincent
     
  • Now that we have stack tracing and irq flags tracing support,
    we can also enable lockdep support

    Signed-off-by: Rabin Vincent
    Signed-off-by: Jesper Nilsson

    Rabin Vincent
     
  • Add stacktrace support, which is required for lockdep and tracing. The
    stack tracing simply looks at all kernel text symbols found on the
    stack, similar to the trap stack dumping code, which can also be
    converted to use this.

    Signed-off-by: Rabin Vincent
    Signed-off-by: Jesper Nilsson

    Rabin Vincent
     
  • Use a call to local_irq_enable() instead of incline asm so that the
    irqsoff latency tracer knows that interrupts are enabled here.

    Signed-off-by: Rabin Vincent
    Signed-off-by: Jesper Nilsson

    Rabin Vincent
     
  • Add support irqflags tracing, which is required for things like lockdep
    and ftrace.

    Signed-off-by: Rabin Vincent
    Signed-off-by: Jesper Nilsson

    Rabin Vincent
     
  • CRIS' types.h is functionally identical to the asm-generic version.

    Effective diff:

    +#ifndef _ASM_GENERIC_TYPES_H
    +#define _ASM_GENERIC_TYPES_H
    +
    #include
    +
    +#endif

    Signed-off-by: Rabin Vincent
    Signed-off-by: Jesper Nilsson

    Rabin Vincent
     
  • CRIS' shmbuf.h is equivalent to the asm-generic verison.

    Effective diff:

    -#ifndef _CRIS_SHMBUF_H
    -#define _CRIS_SHMBUF_H
    +#ifndef __ASM_GENERIC_SHMBUF_H
    +#define __ASM_GENERIC_SHMBUF_H
    +
    +#include

    struct ipc64_perm shm_perm;
    size_t shm_segsz;
    __kernel_time_t shm_atime;
    +#if __BITS_PER_LONG != 64
    unsigned long __unused1;
    +#endif
    __kernel_time_t shm_dtime;
    +#if __BITS_PER_LONG != 64
    unsigned long __unused2;
    +#endif
    __kernel_time_t shm_ctime;
    +#if __BITS_PER_LONG != 64
    unsigned long __unused3;
    +#endif
    __kernel_pid_t shm_cpid;
    __kernel_pid_t shm_lpid;
    - unsigned long shm_nattch;
    - unsigned long __unused4;
    - unsigned long __unused5;
    + __kernel_ulong_t shm_nattch;
    + __kernel_ulong_t __unused4;
    + __kernel_ulong_t __unused5;
    };

    struct shminfo64 {
    - unsigned long shmmax;
    - unsigned long shmmin;
    - unsigned long shmmni;
    - unsigned long shmseg;
    - unsigned long shmall;
    - unsigned long __unused1;
    - unsigned long __unused2;
    - unsigned long __unused3;
    - unsigned long __unused4;
    + __kernel_ulong_t shmmax;
    + __kernel_ulong_t shmmin;
    + __kernel_ulong_t shmmni;
    + __kernel_ulong_t shmseg;
    + __kernel_ulong_t shmall;
    + __kernel_ulong_t __unused1;
    + __kernel_ulong_t __unused2;
    + __kernel_ulong_t __unused3;
    + __kernel_ulong_t __unused4;
    };

    #endif

    Signed-off-by: Rabin Vincent
    Signed-off-by: Jesper Nilsson

    Rabin Vincent
     
  • CRIS' msgbuf.h is equivalent to the asm-generic version.

    Effective diff:

    -#ifndef _CRIS_MSGBUF_H
    -#define _CRIS_MSGBUF_H
    -
    -
    +#ifndef __ASM_GENERIC_MSGBUF_H
    +#define __ASM_GENERIC_MSGBUF_H

    +#include

    struct msqid64_ds {
    struct ipc64_perm msg_perm;
    __kernel_time_t msg_stime;
    +#if __BITS_PER_LONG != 64
    unsigned long __unused1;
    +#endif
    __kernel_time_t msg_rtime;
    +#if __BITS_PER_LONG != 64
    unsigned long __unused2;
    +#endif
    __kernel_time_t msg_ctime;
    +#if __BITS_PER_LONG != 64
    unsigned long __unused3;
    - unsigned long msg_cbytes;
    - unsigned long msg_qnum;
    - unsigned long msg_qbytes;
    +#endif
    + __kernel_ulong_t msg_cbytes;
    + __kernel_ulong_t msg_qnum;
    + __kernel_ulong_t msg_qbytes;
    __kernel_pid_t msg_lspid;
    __kernel_pid_t msg_lrpid;
    - unsigned long __unused4;
    - unsigned long __unused5;
    + __kernel_ulong_t __unused4;
    + __kernel_ulong_t __unused5;
    };

    #endif

    Signed-off-by: Rabin Vincent
    Signed-off-by: Jesper Nilsson

    Rabin Vincent
     
  • CRIS' socket.h is equivalent to the asm-generic version.

    Effective diff:

    -#ifndef _ASM_SOCKET_H
    -#define _ASM_SOCKET_H
    -
    -
    +#ifndef __ASM_GENERIC_SOCKET_H
    +#define __ASM_GENERIC_SOCKET_H

    #include

    #define SO_LINGER 13
    #define SO_BSDCOMPAT 14
    #define SO_REUSEPORT 15
    +#ifndef SO_PASSCRED
    #define SO_PASSCRED 16
    #define SO_PEERCRED 17
    #define SO_RCVLOWAT 18
    #define SO_SNDLOWAT 19
    #define SO_RCVTIMEO 20
    #define SO_SNDTIMEO 21
    +#endif

    #define SO_SECURITY_AUTHENTICATION 22

    Signed-off-by: Rabin Vincent
    Signed-off-by: Jesper Nilsson

    Rabin Vincent