From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 582CCC43381 for ; Thu, 28 Mar 2019 19:29:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2ADA521773 for ; Thu, 28 Mar 2019 19:29:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="iqL4iKLX" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726476AbfC1T3O (ORCPT ); Thu, 28 Mar 2019 15:29:14 -0400 Received: from mail-wr1-f66.google.com ([209.85.221.66]:35187 "EHLO mail-wr1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726047AbfC1T3N (ORCPT ); Thu, 28 Mar 2019 15:29:13 -0400 Received: by mail-wr1-f66.google.com with SMTP id w1so24412880wrp.2 for ; Thu, 28 Mar 2019 12:29:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=lzo6+RcvI/w2HqP2TXGZctH9r9jrj3Ntp/O1bfoZ7z0=; b=iqL4iKLXubkLblCr8U86UnVpg7uKKYjjxswmdl8oWVJdl0Xi8eDiGFtM1KdRTAgtTL WY9rAybGmcmcnJB52DGgBBX6KMgmcOJ2NXn8no7ayKmIKRCj80Hzf/sGxH34o76RTWDv 7hwcRxpRAglopV7ERFSE4jf6Q8byYutB+qL53CMt9ZpMcw4E3pzGw3fWafH82kOE0xI2 MmToqyTrHXU8yj7IjK58GlJBCZ1TmWpvVIizVPmPjkUCKkiDSCMoDPcMknoKGf6i9obs bNcKfDtSk9TUz65j/RJQ5mQAZzpfAzx8PrKsMtom3psqCVLgA1E2jogz5pk8Cxjyvh+B fnSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=lzo6+RcvI/w2HqP2TXGZctH9r9jrj3Ntp/O1bfoZ7z0=; b=qkMcYUIZlFFGZ+WUbqNgn9IHfR1z+3Og4l4QV3TSjgfNCMKLru7qiiIRRYmVRGlvKE rh0eaJK44pOR/UwVLYp648f+cmsKOJD+hDucIly9Y69YSjSULHPZQdLeEsHKPSdhqs9m 8oO+EzJBeAGeWbZrknwcxxZJRRTJn9iW05NJQile+4hc4pUVX1o2eWpephBniKYFfzm6 3JVC0XfLCJTJZa5PQRqqZhZC3qQkasZdnLzat2yrUcSnehiO1Ef9Bne/H7uPRKkR/Mho gRB/l8wlosptT0Ypyxody1iPP4u13zlY7IswpzGBYsE4Vo7ZVIXFKs3SoLiAZ1qbSCba Thpg== X-Gm-Message-State: APjAAAWeDRIXkSmigONN5P7bxMoEECLqG5uL2Jk+BRlmXmWkyZN0Os8Z m8XQRoojR6Tzg3DkfwdHJ47uFIQW X-Google-Smtp-Source: APXvYqwbUSp6yIqQ4snSEbEKvlcFqWhr1G9D22Snsn9j1BKbUeV3vGbhkFx32I1cPx778YsNwnjAuQ== X-Received: by 2002:adf:e407:: with SMTP id g7mr17609958wrm.47.1553801351587; Thu, 28 Mar 2019 12:29:11 -0700 (PDT) Received: from ?IPv6:2003:ea:8bc4:dc00:347a:eb2e:ca45:166d? (p200300EA8BC4DC00347AEB2ECA45166D.dip0.t-ipconnect.de. [2003:ea:8bc4:dc00:347a:eb2e:ca45:166d]) by smtp.googlemail.com with ESMTPSA id j22sm5250546wrd.91.2019.03.28.12.29.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Mar 2019 12:29:10 -0700 (PDT) Subject: [PATCH 2/4] ethtool: simplify handling of PHY tunable downshift From: Heiner Kallweit To: John Linville , Andrew Lunn , Florian Fainelli Cc: "netdev@vger.kernel.org" References: <7abec5a5-8087-8591-8619-83605de6dddc@gmail.com> Message-ID: Date: Thu, 28 Mar 2019 20:27:13 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 MIME-Version: 1.0 In-Reply-To: <7abec5a5-8087-8591-8619-83605de6dddc@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In preparation of adding support for Fast Link Down as PHY tunable let's simplify the handling of PHY tunable downshift a little. Signed-off-by: Heiner Kallweit --- ethtool.c | 43 +++++++++++++------------------------------ 1 file changed, 13 insertions(+), 30 deletions(-) diff --git a/ethtool.c b/ethtool.c index 59131e8..f67cd1b 100644 --- a/ethtool.c +++ b/ethtool.c @@ -4818,28 +4818,15 @@ static int do_get_phy_tunable(struct cmd_context *ctx) { int argc = ctx->argc; char **argp = ctx->argp; - u8 downshift_changed = 0; - int i; if (argc < 1) exit_bad_args(); - for (i = 0; i < argc; i++) { - if (!strcmp(argp[i], "downshift")) { - downshift_changed = 1; - i += 1; - if (i < argc) - exit_bad_args(); - } else { - exit_bad_args(); - } - } - if (downshift_changed) { + if (!strcmp(argp[0], "downshift")) { struct { struct ethtool_tunable ds; - u8 __count; + u8 count; } cont; - u8 count = 0; cont.ds.cmd = ETHTOOL_PHY_GTUNABLE; cont.ds.id = ETHTOOL_PHY_DOWNSHIFT; @@ -4849,11 +4836,12 @@ static int do_get_phy_tunable(struct cmd_context *ctx) perror("Cannot Get PHY downshift count"); return 87; } - count = *((u8 *)&cont.ds.data[0]); - if (count) - fprintf(stdout, "Downshift count: %d\n", count); + if (cont.count) + fprintf(stdout, "Downshift count: %d\n", cont.count); else fprintf(stdout, "Downshift disabled\n"); + } else { + exit_bad_args(); } return 0; @@ -4995,17 +4983,12 @@ static int do_set_phy_tunable(struct cmd_context *ctx) u8 ds_cnt = DOWNSHIFT_DEV_DEFAULT_COUNT; u8 ds_changed = 0, ds_has_cnt = 0, ds_enable = 0; - if (ctx->argc == 0) - exit_bad_args(); - /* Parse arguments */ - while (ctx->argc) { - if (parse_named_bool(ctx, "downshift", &ds_enable)) { - ds_changed = 1; - ds_has_cnt = parse_named_u8(ctx, "count", &ds_cnt); - } else { - exit_bad_args(); - } + if (parse_named_bool(ctx, "downshift", &ds_enable)) { + ds_changed = 1; + ds_has_cnt = parse_named_u8(ctx, "count", &ds_cnt); + } else { + exit_bad_args(); } /* Validate parameters */ @@ -5029,14 +5012,14 @@ static int do_set_phy_tunable(struct cmd_context *ctx) if (ds_changed) { struct { struct ethtool_tunable ds; - u8 __count; + u8 count; } cont; cont.ds.cmd = ETHTOOL_PHY_STUNABLE; cont.ds.id = ETHTOOL_PHY_DOWNSHIFT; cont.ds.type_id = ETHTOOL_TUNABLE_U8; cont.ds.len = 1; - *((u8 *)&cont.ds.data[0]) = ds_cnt; + cont.count = ds_cnt; err = send_ioctl(ctx, &cont.ds); if (err < 0) { perror("Cannot Set PHY downshift count"); -- 2.21.0