From patchwork Wed Feb 5 13:11:44 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Seiderer X-Patchwork-Id: 13961046 X-Patchwork-Delegate: kuba@kernel.org Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9AD3715CD74; Wed, 5 Feb 2025 13:12:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738761134; cv=none; b=ODtEGpaKvlGdJUH3CyMu6Bh4SUkBG1KLTo+7znPR315nY5fOP+Y/t2cbld8q8uqHZgtGx0129eY9+IYgdyO2VFxpZA7DwRCDzGtUb2C3skn7yMwc8ORUUsIzYgVjogcldDoRAG0iciAoDfia3fa7ZHLIODC/6INqEIBLDjy6PS4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738761134; c=relaxed/simple; bh=rWyNI/q6myeqPgp/xPCT3DlfzZA8avj6te/QT8pE6/s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=n1Lv52une8ik+ZwMSmQ+QqOltxZWgozWi1foOI/UhKZ9+FqLjpzU22qrVKB3XtgwBlvxuEhPb/Cs3y9I/FqEdY7umV2ARq/gswaI5zxepPbuq8ss6DlcEROnzZe4nah7JAYI34/TnT2jJhbHogIsPmfD3OY35x5dpwUJ8o88yjY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net; spf=pass smtp.mailfrom=gmx.net; dkim=pass (2048-bit key) header.d=gmx.net header.i=ps.report@gmx.net header.b=p/rY5E/q; arc=none smtp.client-ip=212.227.15.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.net header.i=ps.report@gmx.net header.b="p/rY5E/q" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1738761123; x=1739365923; i=ps.report@gmx.net; bh=rWyNI/q6myeqPgp/xPCT3DlfzZA8avj6te/QT8pE6/s=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=p/rY5E/qk119SD5uvjTcRDEHnQIiwXjOz6xp5Uoy4l9ZhEQtdRgU7ZIcYsQa63P0 ir2fH44HH/UjxsyX2e8xRv6Z5yuONWGcSa+7Dw/w3qCTfIBwDdAMk4IHb3dBpZ+8Y yc6BF8C7yhBDSJBfJyh6VUWzDGGwvpZM9K6Pjli3ypEGObE0PA0VkO0srVhgDZ0uN J11LEIZiQWFnJsVRF4vIZxgcBmNlACk+4YRVnBm7+r9o37PBfcru/lIBWrSr/2df3 eRmhlqPTDhOe9yZ0uwS27R/r63pN7yHDHnDoWulraqwMd4uLdLt8018r5ns95CtRs IsPHsHUMCAtq5Au+yA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.162]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MKsnP-1u0EM20G4L-00OMtL; Wed, 05 Feb 2025 14:12:03 +0100 From: Peter Seiderer To: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan , Peter Seiderer Subject: [PATCH net-next v4 08/17] net: pktgen: use defines for the various dec/hex number parsing digits lengths Date: Wed, 5 Feb 2025 14:11:44 +0100 Message-ID: <20250205131153.476278-9-ps.report@gmx.net> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250205131153.476278-1-ps.report@gmx.net> References: <20250205131153.476278-1-ps.report@gmx.net> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Provags-ID: V03:K1:adjaxnHaCXMBHyes901iCunZWew8POIYQFIJzO957iZWxfR2pOx xNaGw0LewBKzU5EUzxiXuNfc3zPY+I8TLoOoCAlfU9nmFhW3q3RAqdVkqB/M6v/sR7RzGnr qsMXfFkEk4XVYPHcXpcRN4liswua4AlyeelyNKMZXFtWp5NjBMHN5veiqB0YFgBYkG/ejHI SZfHCBQVc5+/FBdmzkvSA== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:64VSHwJEwPU=;oDD4HcXihkZ7u5tG4AiXVooeQH1 yBcICgavgC23A++uQs7ZTh2VgnQZoc/iC37p2NotrgaE7iNDbq4HrstfO83GYOT5RDRMozxTX xuB+iQSEgEqH/7UnsDoIdtVFmFBJqTCkuDCoq7MObIg6IDpoLS1AVLVH+JEg2g/8rdimE87gw mnA1IiZjRM7gk7IeFFEvxAihPQ/vWFNOLbjoJhKxpzbHWPF415qFmIrPSrKRVvaYbZV11HmOk HfQ41ZMUdFBAA3mlMg/SDQukcLM1r2FgE1Osd+u2rGg5Urk/JIBo3QibEPBNgbaEp5hXYfupX r0xBF9IUUUc75DTGaEesNiytYHDOHPEZthRGQ42IYipM3u+iNzD+/88HfiJkNncUISn4gYo0Q Y7JD4Lyly4+pkrXuZB73H5VDkVJmwnXItsg1iSBYM0aprNatZLmwEQ5zosYuj/rNEOoteSNHZ j1bnWfXUSQgZlqRugV0dwsMincodDYm2dYBtA8Sbrq8fQbdqUc/kqWYtwObSwtWcBQO2mbQMP DrYnmLi4yqfAezBSn4oODD/Dwx07akgYP7FK8oS+o1ZV/UaIlWdbDn7KSaNSYrsk3mgfGS8Qg bchdJCD64cVd+Tw8H2Wv7T6P+KvaDNJTtWagMSJrPYkmnLidWESPd+J3PX+/tn7U/FL1hn598 XydixADL2+LZ7FbJzAMCL/lxSKubHO4MdJ0c5nU2oiY2kVXZZCWsRCRjCHHunfXaTkoRgUnSn phX8Vov9HWiq+lRtFr0GygaWawpD+zxEkidGiAo6uFW1Ln+vgh4bELSiVC8BT5ft58uO/cvzy 8GIModBiK9dYp5HL5Tez+wrx5agEu99l4EoS3Qb/MYF9i35MJd4rns3a7pLvcatvCgJzy6ECT 0KlINAHh9oZrYnZAbqgP0B1/NWT8zakhI1UAz1KZpQYEJy4gDtp1bxqZDOw/1dZJBFaXDWVHg yfEYs5CTQU7O5n3EAwoo2EfxFOVvfePZjFuRud8ev4hsaeonuhcMDjQwslE4+LvscHQ1a/ovk d77QGnwAYRYeUnivpl1GNlxIzkQZ2T5Cwcb2cylQXoA0jkZQiLq2X5tnoyA4mgFqi5pZfqnXj /o2Gf2cfViZDjcUu6U1Tebbo9PSlIe4blYat/GOIa4gzmKbc5iI/4n7x5EZeE+Hn1iwOSVbDG xMb6NWS6mVT/T9w94ptVfsV17vWxsWte3msJp3f/5kJMHXWz+7GfC4f/KRnaM6OPNV3pbQRNA 5MQdqowpXpuGifv0Vl7pF73q2BzOFpzeLW3N3kMlDC/hyQ95pS8tdtj8mhBMAFlNwT1xDlPZL 3+2YhpC5t6bkLuE8JhKgi6V6nDbQzfIk9xAjU9UErYx10HLAMs6RxJ2xPf+8Dyat0dNNxSs+f zd60oAQDMIZFV6JL5XCgedgImQY8BroXmDBcMHh8LAJzxHNV1ZnN+3Kzyb X-Patchwork-Delegate: kuba@kernel.org Use defines for the various dec/hex number parsing digits lengths (hex32_arg/num_arg calls). Signed-off-by: Peter Seiderer --- Changes v3 -> v4 - new patch (suggested by Simon Horman) --- net/core/pktgen.c | 80 ++++++++++++++++++++++++++--------------------- 1 file changed, 44 insertions(+), 36 deletions(-) diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 55064713223e..4f201a2db2dc 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -179,6 +179,15 @@ #define MAX_IMIX_ENTRIES 20 #define IMIX_PRECISION 100 /* Precision of IMIX distribution */ +#define DEC_1_DIGITS 1 +#define DEC_4_DIGITS 4 +#define DEC_5_DIGITS 5 +#define DEC_9_DIGITS 9 +#define DEC_10_DIGITS 10 + +#define HEX_2_DIGITS 2 +#define HEX_8_DIGITS 8 + #define func_enter() pr_debug("entering %s\n", __func__); #define PKT_FLAGS \ @@ -844,7 +853,6 @@ static int strn_len(const char __user * user_buffer, unsigned int maxlen) static ssize_t get_imix_entries(const char __user *buffer, struct pktgen_dev *pkt_dev) { - const int max_digits = 10; int i = 0; long len; char c; @@ -858,7 +866,7 @@ static ssize_t get_imix_entries(const char __user *buffer, if (pkt_dev->n_imix_entries >= MAX_IMIX_ENTRIES) return -E2BIG; - len = num_arg(&buffer[i], max_digits, &size); + len = num_arg(&buffer[i], DEC_10_DIGITS, &size); if (len < 0) return len; i += len; @@ -872,7 +880,7 @@ static ssize_t get_imix_entries(const char __user *buffer, if (size < 14 + 20 + 8) size = 14 + 20 + 8; - len = num_arg(&buffer[i], max_digits, &weight); + len = num_arg(&buffer[i], DEC_10_DIGITS, &weight); if (len < 0) return len; if (weight <= 0) @@ -902,7 +910,7 @@ static ssize_t get_labels(const char __user *buffer, struct pktgen_dev *pkt_dev) pkt_dev->nr_labels = 0; do { __u32 tmp; - len = hex32_arg(&buffer[i], 8, &tmp); + len = hex32_arg(&buffer[i], HEX_8_DIGITS, &tmp); if (len <= 0) return len; pkt_dev->labels[n] = htonl(tmp); @@ -1008,7 +1016,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "min_pkt_size")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1025,7 +1033,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "max_pkt_size")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1044,7 +1052,7 @@ static ssize_t pktgen_if_write(struct file *file, /* Shortcut for min = max */ if (!strcmp(name, "pkt_size")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1075,7 +1083,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "debug")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1086,7 +1094,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "frags")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1096,7 +1104,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "delay")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1111,7 +1119,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "rate")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1126,7 +1134,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "ratep")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1141,7 +1149,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "udp_src_min")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1154,7 +1162,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "udp_dst_min")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1167,7 +1175,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "udp_src_max")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1180,7 +1188,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "udp_dst_max")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1193,7 +1201,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "clone_skb")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; /* clone_skb is not supported for netif_receive xmit_mode and @@ -1214,7 +1222,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "count")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1225,7 +1233,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "src_mac_count")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1239,7 +1247,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "dst_mac_count")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1253,7 +1261,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "burst")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1272,7 +1280,7 @@ static ssize_t pktgen_if_write(struct file *file, return count; } if (!strcmp(name, "node")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1592,7 +1600,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "flows")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1606,7 +1614,7 @@ static ssize_t pktgen_if_write(struct file *file, } #ifdef CONFIG_XFRM if (!strcmp(name, "spi")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1617,7 +1625,7 @@ static ssize_t pktgen_if_write(struct file *file, } #endif if (!strcmp(name, "flowlen")) { - len = num_arg(&user_buffer[i], 10, &value); + len = num_arg(&user_buffer[i], DEC_10_DIGITS, &value); if (len < 0) return len; @@ -1628,7 +1636,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "queue_map_min")) { - len = num_arg(&user_buffer[i], 5, &value); + len = num_arg(&user_buffer[i], DEC_5_DIGITS, &value); if (len < 0) return len; @@ -1639,7 +1647,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "queue_map_max")) { - len = num_arg(&user_buffer[i], 5, &value); + len = num_arg(&user_buffer[i], DEC_5_DIGITS, &value); if (len < 0) return len; @@ -1673,7 +1681,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "vlan_id")) { - len = num_arg(&user_buffer[i], 4, &value); + len = num_arg(&user_buffer[i], DEC_4_DIGITS, &value); if (len < 0) return len; @@ -1700,7 +1708,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "vlan_p")) { - len = num_arg(&user_buffer[i], 1, &value); + len = num_arg(&user_buffer[i], DEC_1_DIGITS, &value); if (len < 0) return len; @@ -1715,7 +1723,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "vlan_cfi")) { - len = num_arg(&user_buffer[i], 1, &value); + len = num_arg(&user_buffer[i], DEC_1_DIGITS, &value); if (len < 0) return len; @@ -1730,7 +1738,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "svlan_id")) { - len = num_arg(&user_buffer[i], 4, &value); + len = num_arg(&user_buffer[i], DEC_4_DIGITS, &value); if (len < 0) return len; @@ -1757,7 +1765,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "svlan_p")) { - len = num_arg(&user_buffer[i], 1, &value); + len = num_arg(&user_buffer[i], DEC_1_DIGITS, &value); if (len < 0) return len; @@ -1772,7 +1780,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "svlan_cfi")) { - len = num_arg(&user_buffer[i], 1, &value); + len = num_arg(&user_buffer[i], DEC_1_DIGITS, &value); if (len < 0) return len; @@ -1788,7 +1796,7 @@ static ssize_t pktgen_if_write(struct file *file, if (!strcmp(name, "tos")) { __u32 tmp_value = 0; - len = hex32_arg(&user_buffer[i], 2, &tmp_value); + len = hex32_arg(&user_buffer[i], HEX_2_DIGITS, &tmp_value); if (len < 0) return len; @@ -1804,7 +1812,7 @@ static ssize_t pktgen_if_write(struct file *file, if (!strcmp(name, "traffic_class")) { __u32 tmp_value = 0; - len = hex32_arg(&user_buffer[i], 2, &tmp_value); + len = hex32_arg(&user_buffer[i], HEX_2_DIGITS, &tmp_value); if (len < 0) return len; @@ -1819,7 +1827,7 @@ static ssize_t pktgen_if_write(struct file *file, } if (!strcmp(name, "skb_priority")) { - len = num_arg(&user_buffer[i], 9, &value); + len = num_arg(&user_buffer[i], DEC_9_DIGITS, &value); if (len < 0) return len;