summaryrefslogtreecommitdiff
path: root/curvetun.zsh
blob: 16a1fd332212c01bd9d773458393013570035a43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#compdef curvetun
#
# curvetun.zsh -- zsh completion function for curvetun
#
# Copyright (C) 2013 Hideo Hattori <hhatto.jp@gmail.com>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.

typeset -A opt_args

_interfaces () {
    _wanted interfaces expl 'network interface' \
    _net_interfaces
    _values "Pseudo-device that captures on all interfaces" "any"
}

_arguments -s -S \
    "(-k --keygen)"{-k,--keygen}"[Generate public/private keypair]" \
    "(-x --export)"{-x,--export}"[Export your public data for remote servers]" \
    "(-C --dumpc)"{-C,--dumpc}"[Dump parsed clients]" \
    "(-S --dumps)"{-S,--dumps}"[Dump parsed servers]" \
    "(-D --nofork)"{-D,--nofork}"[Do not daemonize]" \
    "(-d --dev)"{-d,--dev}"[Networking tunnel device, e.g. tun0]:device:_interfaces" \
    {-v,--version}"[Print version]:" \
    {-h,--help}"[Print this help]:" \
    "(-s --server -N --no-logging -p --port -t --stun -u --udp -4 --ipv4 -6 --ipv6 -c --client)"{-c,--client}"[Client mode, server alias optional]:client:_gnu_generic" \
    "(-c --client -s --server)"{-s,--server}"[Server mode]" \
    "(-c --client -N --no-logging)"{-N,--no-logging}"[Disable server logging (for better anonymity)]" \
    "(-c --client -p --port)"{-p,--port}"[Port number (mandatory)]:port:_gnu_generic" \
    "(-c --client -t --stun)"{-t,--stun}"[Show public IP/Port mapping via STUN]:stun:_gnu_generic" \
    "(-c --client -u --udp)"{-u,--udp}"[Use UDP as carrier instead of TCP]" \
    "(-c --client -4 --ipv4)"{-4,--ipv4}"[Tunnel devices are IPv4]" \
    "(-c --client -6 --ipv6)"{-6,--ipv6}"[Tunnel devices are IPv6 (default: same as carrier protocol)]" \
    "*::args:_gnu_generic"
imer is already queued which triggers the BUG. Using add_timer_on() is pretty pointless in this code because the timer is strictlty per CPU, initialized as pinned and all operations which arm the timer happen on the CPU to which the timer belongs. Simplify the whole machinery by using mod_timer() instead of add_timer_on() which avoids the problem because mod_timer() can handle already queued timers. Use __start_timer() everywhere so the earliest armed expiry time is preserved. Reported-by: Erik Veijola <erik.veijola@intel.com> Tested-by: Borislav Petkov <bp@alien8.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Borislav Petkov <bp@alien8.de> Cc: Tony Luck <tony.luck@intel.com> Link: http://lkml.kernel.org/r/alpine.DEB.2.20.1701310936080.3457@nanos Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'tools/perf/arch/xtensa')