lkml.org 
[lkml]   [2020]   [Jan]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 026/171] samples: pktgen: fix proc_cmd command result check logic
    Date
    From: Daniel T. Lee <danieltimlee@gmail.com>

    [ Upstream commit 3cad8f911575191fb3b81d8ed0e061e30f922223 ]

    Currently, proc_cmd is used to dispatch command to 'pg_ctrl', 'pg_thread',
    'pg_set'. proc_cmd is designed to check command result with grep the
    "Result:", but this might fail since this string is only shown in
    'pg_thread' and 'pg_set'.

    This commit fixes this logic by grep-ing the "Result:" string only when
    the command is not for 'pg_ctrl'.

    For clarity of an execution flow, 'errexit' flag has been set.

    To cleanup pktgen on exit, trap has been added for EXIT signal.

    Signed-off-by: Daniel T. Lee <danieltimlee@gmail.com>
    Acked-by: Jesper Dangaard Brouer <brouer@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    samples/pktgen/functions.sh | 17 +++++++++++------
    1 file changed, 11 insertions(+), 6 deletions(-)

    diff --git a/samples/pktgen/functions.sh b/samples/pktgen/functions.sh
    index 205e4cde4601..065a7e296ee3 100644
    --- a/samples/pktgen/functions.sh
    +++ b/samples/pktgen/functions.sh
    @@ -5,6 +5,8 @@
    # Author: Jesper Dangaaard Brouer
    # License: GPL

    +set -o errexit
    +
    ## -- General shell logging cmds --
    function err() {
    local exitcode=$1
    @@ -58,6 +60,7 @@ function pg_set() {
    function proc_cmd() {
    local result
    local proc_file=$1
    + local status=0
    # after shift, the remaining args are contained in $@
    shift
    local proc_ctrl=${PROC_DIR}/$proc_file
    @@ -73,13 +76,13 @@ function proc_cmd() {
    echo "cmd: $@ > $proc_ctrl"
    fi
    # Quoting of "$@" is important for space expansion
    - echo "$@" > "$proc_ctrl"
    - local status=$?
    + echo "$@" > "$proc_ctrl" || status=$?

    - result=$(grep "Result: OK:" $proc_ctrl)
    - # Due to pgctrl, cannot use exit code $? from grep
    - if [[ "$result" == "" ]]; then
    - grep "Result:" $proc_ctrl >&2
    + if [[ "$proc_file" != "pgctrl" ]]; then
    + result=$(grep "Result: OK:" $proc_ctrl) || true
    + if [[ "$result" == "" ]]; then
    + grep "Result:" $proc_ctrl >&2
    + fi
    fi
    if (( $status != 0 )); then
    err 5 "Write error($status) occurred cmd: \"$@ > $proc_ctrl\""
    @@ -105,6 +108,8 @@ function pgset() {
    fi
    }

    +[[ $EUID -eq 0 ]] && trap 'pg_ctrl "reset"' EXIT
    +
    ## -- General shell tricks --

    function root_check_run_with_sudo() {
    --
    2.20.1


    \
     
     \ /
      Last update: 2020-01-02 23:28    [W:4.244 / U:0.268 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site