From patchwork Thu Feb 13 11:00:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Seiderer X-Patchwork-Id: 864979 Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) (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 47B80213E92; Thu, 13 Feb 2025 11:00:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.17.22 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739444434; cv=none; b=W1uR4kqD8Xeda2JwpjBt79jLh/k9+ERBAAlOSJpGPILBtvwauz9PM2wl7pmbisluGtWvbK2d/F1VaCc7ZkDwGjEMxYhEHrDDk66wv7DMpP1P4wtXmgdNGMQGY5diSyqBJnSVmtEPXqXNby+cIJfUdUa1MnVhtVQDLPV8oHSg3cw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739444434; c=relaxed/simple; bh=fFpk4exI2Hl0XAPMFw8kqpnzwTJGv5t2BLFzWsp5Rqw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nbluehTSkToOLFG4v6IweQStKQm5f1Cs31/TfiNoKzKbgIF6vRux0VhdHZbm5/MLTKcI1D3g7FZ4rzbFNQALmSu3Kvl8zdK6An6wOTpr2PT5RinG8FWUSSniLwniSFkcEKw2EJVlYkSMX6QKoRaMgXCmdSYHYATdjXm7Dh+GB88= 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=UkHjtum1; arc=none smtp.client-ip=212.227.17.22 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="UkHjtum1" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1739444430; x=1740049230; i=ps.report@gmx.net; bh=fFpk4exI2Hl0XAPMFw8kqpnzwTJGv5t2BLFzWsp5Rqw=; 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=UkHjtum1doN3MYOU05o8LyobFv7vPqRIdNCDha6UbSfH1PssZ5MCZ6j741geJGK0 0jGckgIClnShqG2y/9fifvnhe0notklX/vPIek3UkMPEdFpqzT6oTmp4R7z1unatg +edaRZjeUBjMiH8gWyNYoH9yGr+PVL1PYn+n3cJSsesx/V48a5Law2zZWM6TGi7cH xq+mR7g++C4yUswpeCeh7kR767iY7DY8gQk3x31NQkv3NYMvvzN2q6nvD0fpCWgMD bNyoJDNj6hkdW9XZ+82JXb4cGCo/S5k21hGpq1ELChC0E6FErpwoHIHIoPynuutGk lxpvs7lu5foVlpaj2w== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.197]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1Mn2WF-1szc1x04db-00fYCz; Thu, 13 Feb 2025 12:00:30 +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 , Artem Chernyshev , Nam Cao , Frederic Weisbecker Subject: [PATCH net-next v5 1/8] net: pktgen: replace ENOTSUPP with EOPNOTSUPP Date: Thu, 13 Feb 2025 12:00:18 +0100 Message-ID: <20250213110025.1436160-2-ps.report@gmx.net> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250213110025.1436160-1-ps.report@gmx.net> References: <20250213110025.1436160-1-ps.report@gmx.net> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Provags-ID: V03:K1:+rmbIOsuy+5FgYyLnPLZ6t2Dm/fmGbyhEYagHOsO6N3KVR77WYR wQ/e7oFMkPjlqTl1uVmaGhmZsfiaxQXllfghUy9oS5+eJIiK2oT4zMd7ndF2oWA4GOEGRW3 SdWuFc1nmOgnZtTHnhMWlhWnS8flhoqfCjqR5v1XzgPmg25Mmx+/ix3tzHBJd9cXdFwrpKF mh6Ns4eT50dgjZRCOyFRQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:/yw+3XkZ0Qc=;9YsAN1UpY0vYzNvu71twadr0zI+ MN88dRPS48rceV00ON9Gzug++rJbmUNi6uHruX8RqmQSUyQsIOHaez11UrBGplNXjRjtdqsgx ekpkiKQvXBtDmmNR/tER6nQzmdRpvuN9aKgovMT2N+BIQa9Hzkp45v/65gNtfMyNJ4DN0+FnT JSPYFc3C6cN9NjSpaoYt2rOH4G03UVk1hTMWbdrmt2NM5itQ+Y9eKN0w0mp3eqw+D+Kd2j2id Lo8FN5gWOT0AJnYk+6JpHSgWinh0zIU0paWUi05+7lJ3WR7nvwOZWrpK560HzeVPgWO6Nb3Zj 8MymWM8fr6oxo4L+nDCM/EDq9vTwN+Y8j+q8fK7ep69rLSBjxHhLoXmNqXUCvRfLQvUmep9pM HDYtiVTyQQzKIt6wlWotlymSCRFRJmzxX/HOtqaTiA6NbMXDQ/ftQsGxW/hy7gWBvAjxGVt2G Ftpf6eZScqkkqVIWKL64uWVZng33Z8GD6uUvETrlXK+GgTsbqwtP4hV0zC2Y8VZPLHpJCDzF3 If41xyQE6eSjohV0Tx2MO2ZHwNQ8wecpc9zgmMGyqBlBaEQ9zPjec57e79roGF7WMDteksv+r WVVh9M4QRgzYEZ9pU4jLkgASGGaY80rUwYdaGiMD2vZwQDYoU+YemKH/ZPR+ZeCLSZ6Yw4Z4I e13TN9ivUyCyRJG+HfqH9P+beLcJ2E1zfdy2OD7VHHUc7nGmspK+mKy/QZ0W0g8QaBfLVugEx 9dR4dNtx6W+pHcFQ9sz01yi6i1PvzZm1XweRZ+IF0zbSioihtWIdbqQCFtzXy/s+Y3Wsxt3Yz 38bDkf2QSAY19RIyUymwocRJNyUJl3r1O6ytBwN9YPw28WtodEWaUTJEkiOFX2ny+V0MaN7HD XNvXqpd49wWmpw45tPtBBlwLQccNSTH3v20Gx3V/XUTcG0c9g7hGWxuf7UAlpfOHnUBHWCZeF Vw37G4BadXBijLMYMHhWW0DmKPdnRzflsX2nXbOy74cduSVHmuv/cpArqWudSCPPI0I0s/nPv hFdBGKu8mEcDHamicbCCJMpyclnviLFoeqoO1TRD1x/x1LqmqkUTUa0muL6MmsPecI8QCty0a XqWo2UJceoXIxPdRvTufAW+DMZkffc7bRafci/bMI2Dqk1q7EUQ8Bz91VSv5RSPOxqf0RsvoD jxRoXooHpx6Ul+KPEbg+OqkDoGeJ7P+ahH+VQifp8fLpv+MgKF7QlwcFLR8X/n9RoHlp9jXsK /bVIkIKefFiLLWazusuRlfiCr1y7Q/6cdQzNQUsbLpyk47NptooxIEtQ9z5B2zeq8VwUzQKC/ vCsfweb2Vav3PkJBxFc9AVJSTlktEfSl70XxHheN+9gMEmDMylQ0DEMfi7yO6qL4O2K90yOng fWYjIeu8HFEeLVv980a8gcSVtoC+O0pbsj8P0SFdxpEhOy7rbEtJsozNcK Replace ENOTSUPP with EOPNOTSUPP, fixes checkpatch hint WARNING: ENOTSUPP is not a SUSV4 error code, prefer EOPNOTSUPP and e.g. $ echo "clone_skb 1" > /proc/net/pktgen/lo\@0 -bash: echo: write error: Unknown error 524 Signed-off-by: Peter Seiderer Reviewed-by: Simon Horman --- Changes v4 -> v5 - split up patchset into part i/ii (suggested by Simon Horman) Changes v3 -> v4 - add rev-by Simon Horman Changes v2 -> v3 - no changes Changes v1 -> v2 - no changes --- net/core/pktgen.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 82b6a2c3c141..496aa16773e7 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -1198,7 +1198,7 @@ static ssize_t pktgen_if_write(struct file *file, if ((value > 0) && ((pkt_dev->xmit_mode == M_NETIF_RECEIVE) || !(pkt_dev->odev->priv_flags & IFF_TX_SKB_SHARING))) - return -ENOTSUPP; + return -EOPNOTSUPP; if (value > 0 && (pkt_dev->n_imix_entries > 0 || !(pkt_dev->flags & F_SHARED))) return -EINVAL; @@ -1258,7 +1258,7 @@ static ssize_t pktgen_if_write(struct file *file, ((pkt_dev->xmit_mode == M_QUEUE_XMIT) || ((pkt_dev->xmit_mode == M_START_XMIT) && (!(pkt_dev->odev->priv_flags & IFF_TX_SKB_SHARING))))) - return -ENOTSUPP; + return -EOPNOTSUPP; if (value > 1 && !(pkt_dev->flags & F_SHARED)) return -EINVAL; @@ -1303,7 +1303,7 @@ static ssize_t pktgen_if_write(struct file *file, } else if (strcmp(f, "netif_receive") == 0) { /* clone_skb set earlier, not supported in this mode */ if (pkt_dev->clone_skb > 0) - return -ENOTSUPP; + return -EOPNOTSUPP; pkt_dev->xmit_mode = M_NETIF_RECEIVE; From patchwork Thu Feb 13 11:00:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Seiderer X-Patchwork-Id: 864977 Received: from mout.gmx.net (mout.gmx.net [212.227.17.20]) (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 CD7CB215060; Thu, 13 Feb 2025 11:00:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.17.20 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739444449; cv=none; b=WeoFaSddniOTO06yqVkJxwKGBs4G8ObSuc1xfENk8WdNDjYm6jY9bkG3Qljh4Pr7ixc2RocX0/c1+mznRE5HzdczTmraU6STZUL7Z1d1DZWblANpJtviYqf+iXmf+II3yGILqvBPW6e/9JR7GeZbsFpVm/ZhtHN5acPfoHTvQhQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739444449; c=relaxed/simple; bh=lFJTNeYYEBTkaC/3wh2Lv43QxbvTD6janjNU/XCDQVs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jhffwF5v3of/lVMOKh7TFN2z83pFLmJCZyFbS5cban93dJwRXfow2mmWtOQPlQEG0QLtqcW0th9qLCenuhZlbuF90Wl22M6cWpNScbYrUuk0eCu5imHAtbnyh5XObbEk1lpFwBYy8SgDi3X+Xu8EEK0sB8L+l8pjs3wQtq+a40Q= 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=o+45TAaZ; arc=none smtp.client-ip=212.227.17.20 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="o+45TAaZ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1739444432; x=1740049232; i=ps.report@gmx.net; bh=lFJTNeYYEBTkaC/3wh2Lv43QxbvTD6janjNU/XCDQVs=; 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=o+45TAaZfs7E507/6DlmcD1bzYRYDjd7zxd6954SrV+WHxkwrZW17UJJhAvCPJlw caF+5U6+/rOIUCFLpaGSxs4hGaPrx3ZUHGuuf911g2V4SruBUfa7bc5S10lQG4KE7 v6XzZawM6JfqQRlcodXpMPfkOcmKv5G8LRAcD3GPj4GEDuMfGpI16Ud2dM3ChNvqp uMWlrBEiGbQAACoVAlw96fda7dLtGJIva7x/g0hif3sOAG7xHLohSAOtsbghJAVko vVdAOx91ThrashZOTrIZf1818Lowwh5dKSJkkqxqTUVgsSmecQA6NriRWSfz0xMki ZYmHquVupHMQsbCflA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.197]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MRmjq-1tpel02Nfm-00OyhE; Thu, 13 Feb 2025 12:00:32 +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 , Artem Chernyshev , Nam Cao , Frederic Weisbecker Subject: [PATCH net-next v5 7/8] net: pktgen: fix access outside of user given buffer in pktgen_thread_write() Date: Thu, 13 Feb 2025 12:00:24 +0100 Message-ID: <20250213110025.1436160-8-ps.report@gmx.net> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250213110025.1436160-1-ps.report@gmx.net> References: <20250213110025.1436160-1-ps.report@gmx.net> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Provags-ID: V03:K1:xwBeQ76e5NWdP6OGK1SQo1exT1I0ZuxTszWvW+QPJKFufEhp9n4 Qq4U2fTYTJAoqUlDmqXmGmM6ynqU0JVW6J0QNeYsxXfXcP3Z7e/avKKJkmVl/TDllhbAlIG 5LlZzkq8miwcf+60tKZWZVR2tTZ0E3elQlbavhpvsNRmOAqIgWc5VnXHTpetkNJZgbdgNdR 7ZWP2BCr2fgmsNUUBRyhQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:vCIvKXRtjmk=;Quf+BsN0TXFXZWhk/LMpum2tphc +2XaUXH9FBN+e9P0fdauvt8nOmzxu+exPdmXUNYmDniyxoKiBz+BDHP48LP5aizR/B+Sm2VtU pgHCG9u8QaFR8tHfamsLACaaguxamO+53xJQPJwG8NCCum+loifILxDZ/HtPVVTMHb5NWQ0o1 ylOX4/YEIOMJKY6Nq0avo3XT6bKnvyaiIZzdAyiVUlvlm5hPzibsW8rbVKe0VnggSML2vqwdj NxTMCiK6K/RX1G7FbNOQewAgdgHndr+9qrSUN+l8skxCtTznsyFDanHrreGzOo1zbPqw4tWek vjt/c2A57OLWJ40tmTuSZ0F+sYn82DHx5Wwbs/bIThsnCaBChODvktue2G/BbTPaRjy66TkUS HicRcCxpJOOb48uNmuFR9H1fkaCKbYqbU937CHI98Hk9lVx300C5UzxKfAKo224hzCGbOWZCH dy59wUa5kDMOFekv6gZ6fxThrCsERVr9PlvxuHHBI1tpOkAYEB1kDBDDZPN+vIBJbsEugGpfI NXs59VGjIBiB4W5Jmy3r/qcc0es57+Qw26OHUfaMMstFvbZIdH+3uqIHA7KRJkQ0VYu8pw8mB P8/Q8wyUGT8srbE1u5nYoGlcLWsmC41zcXH6QjEGI/SY31my+esxaV7dUl1cNprU60pAb4fji ZDG86f5SvecY6UqaSJ8a4Qv49tJmA/R98mT3xz2wfO7ELM37gyyAXiYpbx/1GzUW3AOzSyPqv WquBXIN+wXRfZn/coJy6QpisZx0/ykoSbFsiXU4IYcO1uZUxKwIekKE2jYbcey+qv6pwHI9q6 m4XM5zpsto1ccgcXyoa+2N+fxo6fQb0Y/636UYJqKxM5Is/Fn1pVFI2uf/xskd+O/d8pIHpEm cf6iE05+Go8SeMicXBw5MBNsZQnP63cVot2mIkuEI+ixDsuEp4IMSb+L5cRLpBx8zoloBx1p5 JEdgG1qULCVd8YMIv1tviuvyM3T5d9/wOTZot8lpc/z0egiNDjBCNW53wJbe6dVQrqgSJ0f3J z1vzHUeij/NtnvDDHTrJg3JIHIaq0UQ8IHJryGkNPTUcyUAQlBlw9xtEmfJebpf4qB9xExs93 Kd0vjbiiDL4zBBTw4Oo7aZR4eWtFzNHaNz9ILnxBk2YarnMZzzlWxUcJaAvhRehpi9pdrt3LZ N3KHe0OaNgM1yT5u9hO2BBy+fpRqYYEoSc5ERCl5Iksbwdn7qNKA7fpjTj+CECVRLw+j7dUPh HLG++JvBxfYcv6/+iSebKkLpHyiwIviPC5dyt20SHWz4N6FJhL3T8tELdleU1xSFn2jixtHe7 +rd5LVwnmV3j2d8Eu2NbeVg5mkfnRsAX1PYkLNpP3AY0DGCZc1KFs7O6ptU4onaoM3pbeBbz6 BPGspW1yhPDo8QDu6x7WpjvqvOjzvASSCM+kV51hMUx1AU/bKBqwgjOm4h Honour the user given buffer size for the strn_len() calls (otherwise strn_len() will access memory outside of the user given buffer). Signed-off-by: Peter Seiderer Reviewed-by: Simon Horman --- Changes v4 -> v5 - split up patchset into part i/ii (suggested by Simon Horman) Changes v3 -> v4 - add rev-by Simon Horman Changes v2 -> v3: - no changes Changes v1 -> v2: - no changes --- net/core/pktgen.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/net/core/pktgen.c b/net/core/pktgen.c index f6e35ba035c7..55064713223e 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c @@ -1900,8 +1900,8 @@ static ssize_t pktgen_thread_write(struct file *file, i = len; /* Read variable name */ - - len = strn_len(&user_buffer[i], sizeof(name) - 1); + max = min(sizeof(name) - 1, count - i); + len = strn_len(&user_buffer[i], max); if (len < 0) return len; @@ -1931,7 +1931,8 @@ static ssize_t pktgen_thread_write(struct file *file, if (!strcmp(name, "add_device")) { char f[32]; memset(f, 0, 32); - len = strn_len(&user_buffer[i], sizeof(f) - 1); + max = min(sizeof(f) - 1, count - i); + len = strn_len(&user_buffer[i], max); if (len < 0) { ret = len; goto out; From patchwork Thu Feb 13 11:00:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Seiderer X-Patchwork-Id: 864978 Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) (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 8484A214238; Thu, 13 Feb 2025 11:00:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.17.22 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739444440; cv=none; b=ehvYxtoZvoTrJIfx4dORUdrEwH9lfZN0kOPU7bx0KNUQBwqUqcDX1MHo+c01eLiP/AYLwBGNX5e6gyU3ho36fIeMcq4Nx+j06IqJsw+yM5XY0v6Wn60LuBba00IuYqfbc6oKNe5MTU0udmzYbzq2bX2GpWYAONDLPzwAbOU8M6E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739444440; c=relaxed/simple; bh=NFumM+nkeTzxl6RxAwljlRDkX4GxZMjLy9i+2b9B9Sk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=l12Q72sW/SXwf/R+uEOPiO0cT34U4Lstjy9XHpeZZ4aFOnEPczi6zC+sdkqT2UkVD+fSdnJiuVLfWzSnTIUa+TbYx8etZS/Bi62OlIyHqXloJn707DXuyd8sD4dbTP6feUUc9p57Aq0NoNOqpgDXFMB3NnUQ9HjH9LYs4d3rcyY= 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=hlq93+a9; arc=none smtp.client-ip=212.227.17.22 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="hlq93+a9" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1739444433; x=1740049233; i=ps.report@gmx.net; bh=NFumM+nkeTzxl6RxAwljlRDkX4GxZMjLy9i+2b9B9Sk=; 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=hlq93+a9n6fJmDplz9E5dVtuQvaYBPWKBAwJeMxV1ExrNY7h4VGQHbW4nbfWoSCK fnT52i6Pa06M9DkceFdn4YXZl6t1YREAIqOsEkfehGG/5rK6RUpMVfXwIldgjpbXZ fSIcmKLsWB4vIlVnP5IjheZqP71MB4YHTdiTjk0GgKUiLSAJsOutbmPDy5/9Kkzor EGsXf7dhVmPotxvHzDKRenGkV2LUfaQbFi6LVBpQmYecHAM8H0gweGVimrptiLN6O Yt0PDcWwC5Q/DJA4F5XmKevwZsc/eNr4OpSBrd12Lxt5w7kMY2/zms6cegMwvxnzm 3K8Z9a/J5pVhWWFC2Q== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.197]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MPGRp-1u0skn45Ub-00UDM7; Thu, 13 Feb 2025 12:00:33 +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 , Artem Chernyshev , Nam Cao , Frederic Weisbecker Subject: [PATCH net-next v5 8/8] net: pktgen: use defines for the various dec/hex number parsing digits lengths Date: Thu, 13 Feb 2025 12:00:25 +0100 Message-ID: <20250213110025.1436160-9-ps.report@gmx.net> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250213110025.1436160-1-ps.report@gmx.net> References: <20250213110025.1436160-1-ps.report@gmx.net> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Provags-ID: V03:K1:MLSCPxcGlxDC8r66ZPsUvMBGVJaGVcaRifQf7cmWQo0kmBLjHd0 hzMfwyUefiyTrwELha4GZvjtTaomuANdU9SjRS/jQfLbFfVOYFS8CLdlI0qeGzYlbFPn+Sn qf0vOJ2NLWPyan6C1XAkpQQSUD9jtuJEcejjxODjz7hOUWR8TEaDG0tskXuoYCnLlJEuRkd 0Lmw4u8xQf45xesu0EsaQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:hmKdCqa57Sw=;vrQrjbOCdXg5JESNjGiQgEgLqyW 8ctcbjydkb89BTbS05H/OdhngHg7CHXZ6x1PLRyxVsLQxkFTcSuf3/23aLSq6cdTetZYmdbBg DS7S0ALZwjGQ5f95h9f7SoG0xGVmXQpTkMQAgneSSLCA0/E8XfzGtb4jWp9gZstpw6tP7HIOo RYDPVNDal8YBH/kApyfRX/YaoJ8u5mQya7eShWO45ymC0FLm4Qu2m5sUf2qQZoQLLHTCKr5h/ 6gWXSdWSl7yKxlgqrcIoXeP7wln6c/bIThoZgreZChoX254ahcnQVJ4d58kfTE9lOpJ+YauCc smZ1L9xA6BTeoE1dqsCuSU7wEJUHxTSDivA8Z/IQWmdTukLahOnoQTkUdR7sGNmKpkKAAeNQK 0AGZqaWH23JNCHHgs50vi7wnSid9zB+A/hHDPp2CCn+RS8j4/uZyb3lMjXel0E5PzMuGkNxSI HbUa4Dl4j/A09fSbQSmf3/x3BP5FIfuswCB43CMbngGe73pa3YHBXg3jdHonKMEqtopKYPPQB u6/7mLBaaWscwew/nHc/UjdLARFV51jEekXD+tvRFxc/SdGLcZa6pEHtl/CWbk1Towxpcs2vs NQ2jXWDbVdObOu0vf/HRmipV9ZDk5GMoKqm5xZ/nKVzWb41ZaultS4fNCEWKwlvF67yaqh/Kw LX8YHDIYowPzK3SJmYwsZaE03DIvxhFWVBPqjPAz7GLrCvRR/CAfC4GJnbIRNcLBbW4XnuIig utr7DOhggCYJFKZL1FH6Tu44qv2rSHcLJk8e+jAa0VagNK1Sfo9RpIxxliH/N26/MM0fopDTx JpoO0ihI5amSJGYneCYi7mVvP7FWvYQsS5TY/IvIvQ5iS3NUg+2YFgYqR9G0ooyfLxNyRkU/M dwkrh1Qp++flMxNVEaVpJLAeCl4Vt8GFQ37itqiY6z3WIvBq931MH987wT5lgAGB8oJ2HnxFJ oID/sbFMN8AFjpboBgarpzTnuW5DHV/7jItjjLZn0IcKbSjFayg0ZSo2r3eWly+Rrn7WHkBoL OecfK2T3ruroHzRzCRgpIdbjALgwbglk+vexbiqgJBY69DClJ+R2nu1GmMcvhw2O0w5uJHY0u 59VXYQ9NF6lzIhh2u2p73zA1rut85DpfmAIldbDAzWKAW7xxhfIBqRm2Bc7QjD+/OSn7j3wfr J/6EP765xBPzpKvEwuBA8kHSCASiosJwQ4pqV2oj4QS59MlKFJrW7uTWJcbAqE9xnIzgJMq5Q E2RyHSKCvhzDvU6y1a9yTL75n7btArVnMsO2AX0O/d0NvOgYCIiTOYZr245ZLJ00nDlEkUli4 zhFLJeCD9lDK0Jn0LEhNKyuQ5qt9bvjIHSX+1u6Hqw7jx07+8DFhQP68AR8la+F6C/LSh9O/O WkCqhXgjBG4ETCFVM/Jlphqzkjk63YV8CZXo3bkQmEGhtnzF0PrnKZTe38 Use defines for the various dec/hex number parsing digits lengths (hex32_arg/num_arg calls). Signed-off-by: Peter Seiderer Reviewed-by: Simon Horman --- Changes v4 -> v5 - split up patchset into part i/ii (suggested by Simon Horman) - add rev-by Simon Horman 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;