From patchwork Tue Feb 2 23:36:36 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nikolay Aleksandrov X-Patchwork-Id: 577648 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 8760314076B for ; Wed, 3 Feb 2016 10:36:52 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=blackwall-org.20150623.gappssmtp.com header.i=@blackwall-org.20150623.gappssmtp.com header.b=qWOto2vn; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755221AbcBBXgs (ORCPT ); Tue, 2 Feb 2016 18:36:48 -0500 Received: from mail-wm0-f65.google.com ([74.125.82.65]:35888 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754817AbcBBXgn (ORCPT ); Tue, 2 Feb 2016 18:36:43 -0500 Received: by mail-wm0-f65.google.com with SMTP id 128so4693192wmz.3 for ; Tue, 02 Feb 2016 15:36:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=blackwall-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=S/ASeH/Tw/IxtBUloXo4QlvG+cPHk86K6vypZLAgLkU=; b=qWOto2vntb71ZrR6sMztgi63ZDZTKt2uD/efPKNSPE0JWDbFv+nPbOncF6gF6EhW/F d8j93B1mtOLcsHix5n24G0BZJA3FBj1UkRU4Tm11FHQGK0zI3QOdP3aEvWT2qVdeLm0H gd59HIOZx1cysDt+PIPWzismBMW0fIJMiZHsXkenxMpDtiOWAGJ6YNaaphkIFYeohX+J NpzrtUzYMOt8+Z8bho6M8e7HxBEcLv+Av2pV2fhPf0nGesoKa+O1+Ofg/AOJ7wvKq/eT jCkh4+eRrH6BY/eOq5ZkRmyyWtHjm5PZi5niNUE4HM/UJ2E9cfW8/AZKFmXqvqRmPaaQ tW/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=S/ASeH/Tw/IxtBUloXo4QlvG+cPHk86K6vypZLAgLkU=; b=LHK8bdWd68EXdVAgU4uhOlzbdBPdAceyttZ9FNHx2Jfzzqvdl8VjC1NsSfBBkJpFe9 IU8R3V6jZ2y4tIGuB+KSYfkAj801wCZz7xbPrLVw+XqkRViRh+G/78G2vFccDIgZAhYm ioAdAkfaN1mAtEzzqmk5T9/dguMshtOBKc/ti0idhtF2Hl2ajhIzk8Cx7HuAShF9IgJx rp2190Y1/y0xmg8EacxrI9PoBeXEdYRHlvDSoTFG5mUmw1dzheBkALPV1PLZmhI5DcUa HoH6EJvE1EWRp3qKgG3uTrwU68ToiyC9pJjjpxQAJuVhagDazzUzOIJYaZNsgtGtAs3U lWsw== X-Gm-Message-State: AG10YORwE5cluW0FTSeBTSR2g9QLCZOIwYzezSc/nlt8uDkMQigw2WSDoRfmD/AzDBOq7g== X-Received: by 10.28.132.146 with SMTP id g140mr21174988wmd.49.1454456202580; Tue, 02 Feb 2016 15:36:42 -0800 (PST) Received: from debil.localdomain (ip4-62-4-104-109.cust.nbox.cz. [62.4.104.109]) by smtp.gmail.com with ESMTPSA id r10sm3622300wjz.24.2016.02.02.15.36.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 02 Feb 2016 15:36:41 -0800 (PST) From: Nikolay Aleksandrov To: netdev@vger.kernel.org Cc: mst@redhat.com, roopa@cumulusnetworks.com, davem@davemloft.net, Nikolay Aleksandrov Subject: [PATCH net-next v4 1/2] ethtool: add speed/duplex validation functions Date: Wed, 3 Feb 2016 00:36:36 +0100 Message-Id: <1454456197-7826-2-git-send-email-razor@blackwall.org> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1454456197-7826-1-git-send-email-razor@blackwall.org> References: <1454456197-7826-1-git-send-email-razor@blackwall.org> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Nikolay Aleksandrov Add functions which check if the speed/duplex are defined. Signed-off-by: Nikolay Aleksandrov Acked-by: Michael S. Tsirkin --- v2: new patch v3: added Michael's ack v4: no change include/uapi/linux/ethtool.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/include/uapi/linux/ethtool.h b/include/uapi/linux/ethtool.h index 57fa39005e79..b2e180181629 100644 --- a/include/uapi/linux/ethtool.h +++ b/include/uapi/linux/ethtool.h @@ -1319,11 +1319,45 @@ enum ethtool_sfeatures_retval_bits { #define SPEED_UNKNOWN -1 +static inline int ethtool_validate_speed(__u32 speed) +{ + switch (speed) { + case SPEED_10: + case SPEED_100: + case SPEED_1000: + case SPEED_2500: + case SPEED_5000: + case SPEED_10000: + case SPEED_20000: + case SPEED_25000: + case SPEED_40000: + case SPEED_50000: + case SPEED_56000: + case SPEED_100000: + case SPEED_UNKNOWN: + return 1; + } + + return 0; +} + /* Duplex, half or full. */ #define DUPLEX_HALF 0x00 #define DUPLEX_FULL 0x01 #define DUPLEX_UNKNOWN 0xff +static inline int ethtool_validate_duplex(__u8 duplex) +{ + switch (duplex) { + case DUPLEX_HALF: + case DUPLEX_FULL: + case DUPLEX_UNKNOWN: + return 1; + } + + return 0; +} + /* Which connector port. */ #define PORT_TP 0x00 #define PORT_AUI 0x01