31 May, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 3029 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070032.746973796@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

03 Jul, 2018

1 commit


02 Jul, 2018

1 commit


22 Jun, 2018

1 commit

  • Due to the use of rhashtables in net namespaces,
    rhashtable.h is included in lots of the kernel,
    so a small changes can required a large recompilation.
    This makes development painful.

    This patch splits out rhashtable-types.h which just includes
    the major type declarations, and does not include (non-trivial)
    inline code. rhashtable.h is no longer included by anything
    in the include/ directory.
    Common include files only include rhashtable-types.h so a large
    recompilation is only triggered when that changes.

    Acked-by: Herbert Xu
    Signed-off-by: NeilBrown
    Signed-off-by: David S. Miller

    NeilBrown
     

02 Sep, 2017

1 commit


08 Feb, 2017

1 commit


04 Feb, 2017

1 commit

  • In the latest version of the IPv6 Segment Routing IETF draft [1] the
    cleanup flag is removed and the flags field length is shrunk from 16 bits
    to 8 bits. As a consequence, the input of the HMAC computation is modified
    in a non-backward compatible way by covering the whole octet of flags
    instead of only the cleanup bit. As such, if an implementation compatible
    with the latest draft computes the HMAC of an SRH who has other flags set
    to 1, then the HMAC result would differ from the current implementation.

    This patch carries those modifications to prevent conflict with other
    implementations of IPv6 SR.

    [1] https://tools.ietf.org/html/draft-ietf-6man-segment-routing-header-05

    Signed-off-by: David Lebrun
    Signed-off-by: David S. Miller

    David Lebrun
     

23 Jan, 2017

1 commit


18 Jan, 2017

1 commit


14 Jan, 2017

1 commit

  • When CONFIG_PREEMPT=y, CONFIG_IPV6=m and CONFIG_SEG6_HMAC=y,
    seg6_hmac_init() is called during the initialization of the ipv6 module.
    This causes a subsequent call to smp_processor_id() with preemption
    enabled, resulting in the following trace.

    [ 20.451460] BUG: using smp_processor_id() in preemptible [00000000] code: systemd/1
    [ 20.452556] caller is debug_smp_processor_id+0x17/0x19
    [ 20.453304] CPU: 0 PID: 1 Comm: systemd Not tainted 4.9.0-rc5-00973-g46738b1 #1
    [ 20.454406] ffffc9000062fc18 ffffffff813607b2 0000000000000000 ffffffff81a7f782
    [ 20.455528] ffffc9000062fc48 ffffffff813778dc 0000000000000000 00000000001dcf98
    [ 20.456539] ffffffffa003bd08 ffffffff81af93e0 ffffc9000062fc58 ffffffff81377905
    [ 20.456539] Call Trace:
    [ 20.456539] [] dump_stack+0x63/0x7f
    [ 20.456539] [] check_preemption_disabled+0xd1/0xe3
    [ 20.456539] [] debug_smp_processor_id+0x17/0x19
    [ 20.460260] [] seg6_hmac_init+0xfa/0x192 [ipv6]
    [ 20.460260] [] seg6_init+0x39/0x6f [ipv6]
    [ 20.460260] [] inet6_init+0x21a/0x321 [ipv6]
    [ 20.460260] [] ? 0xffffffffa0061000
    [ 20.460260] [] do_one_initcall+0x8b/0x115
    [ 20.460260] [] do_init_module+0x53/0x1c4
    [ 20.460260] [] load_module+0x1153/0x14ec
    [ 20.460260] [] SYSC_finit_module+0x8c/0xb9
    [ 20.460260] [] ? SYSC_finit_module+0x8c/0xb9
    [ 20.460260] [] SyS_finit_module+0x9/0xb
    [ 20.460260] [] do_syscall_64+0x62/0x75
    [ 20.460260] [] entry_SYSCALL64_slow_path+0x25/0x25

    Moreover, dst_cache_* functions also call smp_processor_id(), generating
    a similar trace.

    This patch uses raw_cpu_ptr() in seg6_hmac_init() rather than this_cpu_ptr()
    and disable preemption when using dst_cache_* functions.

    Signed-off-by: David Lebrun
    Signed-off-by: David S. Miller

    David Lebrun
     

13 Jan, 2017

1 commit


10 Nov, 2016

1 commit

  • This patch adds the necessary functions to compute and check the HMAC signature
    of an SR-enabled packet. Two HMAC algorithms are supported: hmac(sha1) and
    hmac(sha256).

    In order to avoid dynamic memory allocation for each HMAC computation,
    a per-cpu ring buffer is allocated for this purpose.

    A new per-interface sysctl called seg6_require_hmac is added, allowing a
    user-defined policy for processing HMAC-signed SR-enabled packets.
    A value of -1 means that the HMAC field will always be ignored.
    A value of 0 means that if an HMAC field is present, its validity will
    be enforced (the packet is dropped is the signature is incorrect).
    Finally, a value of 1 means that any SR-enabled packet that does not
    contain an HMAC signature or whose signature is incorrect will be dropped.

    Signed-off-by: David Lebrun
    Signed-off-by: David S. Miller

    David Lebrun