From patchwork Fri Jun 13 11:31:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Breno Leitao X-Patchwork-Id: 896560 Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com [209.85.218.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 868931E7C2E; Fri, 13 Jun 2025 11:31:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749814316; cv=none; b=F7qKx1XjOYED1QPFJM0794of3ViSojoks0dcTsMXcHKZSHFJ1aY7y14IFLTE+bRvXq4Xpl4IJvPQhDIRKB7x2ZxbxYGkSWy1H2Vy804BXwGXmiY1ZgAV+UBaD7OG0yHNm5QvaRhbkFoAI+SIs6+/0LrsLnGgiuTqw8Qu7w2boAw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749814316; c=relaxed/simple; bh=kaPQVqJqh+eg2jcnJq+k42Jh9O4UIBng+B1OeZ2n8IE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ac1WggYUujzhfmi9dpmeNpK1ZUbU+78jsv/DCq9zNjdo17S73/kC6NTFMj3mh3xEh/IfbavxsZFSR0uKjsNFe2/ogczVQTPhe6HM8mUy7/w/xFd6rl7j/DJeZEc3k/mGAi4//ag0MsgJbR1p/JiOZQYKYj/0JAORI58C0jdbRyk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=pass smtp.mailfrom=gmail.com; arc=none smtp.client-ip=209.85.218.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ej1-f45.google.com with SMTP id a640c23a62f3a-ad572ba1347so312625366b.1; Fri, 13 Jun 2025 04:31:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749814312; x=1750419112; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DLOOJJpc60B0rv4JPb2Hwjyu0WdXvR5+iYJdvbJfP3Q=; b=enFDGdefH3goEWHZQiF3mEAdcjDO3K/NRsrdqdaCqa7qEAJvHdKHoANoqEDKXylynd 64VdB+yLLEmhUTjw6C4eiEqKW4czAPBOhWX4eNpja+1xJvOTrKpKFM07hJQGgWFEArzJ VEZ4Ho0IJah6ErCB9hbp0oE4Myi8kmNrADvth1RdRlOUQJAaDCA9Ztn3GYX5ZxupY8vf RyUQsL/z+9m8aq9hYh9yQYy4Np1SrQUULl8e7u+ulGrzwmgFBVF182itCnQkcF05Qotk DrJJnmQA2H8r3drLoDUkkSE4tUGeYCIg3ry7S0pJfDgdRsdomNTuuec2Pd8cH0h1zooA r7mg== X-Forwarded-Encrypted: i=1; AJvYcCVeNHKwJJJeGgDmlYz9xR4gt+vWOXfJ054vrSx9XUBRW0w9YwEhNBEq/L3j+AQCk1jogz9ZniwrSMXKaWg=@vger.kernel.org, AJvYcCXnHC1A0OKvAZot6raoNLB5R5+YJZyic0yrVm9Q4DyF93aO+B9XjMRUHs5IYEcWeqbxIkmCxAA4dSP2VLzi4sLu@vger.kernel.org X-Gm-Message-State: AOJu0YwjB7dd0oaKP5Rii+KxbjUaapgERipiy96pCi9Ig4eXBJVhGI7Q DA4QPrW2OucAoQRyK+MTdKbDk+hUkQI281lrGO80V/Gy7EE78g4aAWv2KR+YHA== X-Gm-Gg: ASbGncsbwGzP86j/pHd6TDVYt8pHbCjbfTiBKU8cXoQTrahTgYN+8ZW0gcYlWC66KZr PH5gG66cu9pPH/RTqrdBL27cD/f/MtFa7GMsjO4JG6cuzLc6b6AI0tHK3evhhUE66GQiuHF2cKp eN8EGf4V2iTRMO6MVHOEtKiEsJFT0p2RFyNpxemEIiUUDfDf6eB9mKc0vi40bblAXLyay+aGHet Qpk+hqp5vYOhqDd+BHnh6LfPiN4L3uW/PuEFICHiwS+rd/W6JE0IRA1jXcEeWkeGaXHvcAB/+/r V/JmmemjKU7KhVXCryq4eTLXDqAi5p6nbpTCt90nNEFZz4sHB3Ea X-Google-Smtp-Source: AGHT+IGekdLCPAKBBRyYeCUtI2lpZBIcn98/RbsMGORvyz4EZDGfKeW1hlHHtngaqoOWWeQnMbFSKw== X-Received: by 2002:a17:907:7fac:b0:ad8:8d89:bbfe with SMTP id a640c23a62f3a-adec5d21774mr215713366b.60.1749814312321; Fri, 13 Jun 2025 04:31:52 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:9::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-adec88fe978sm114496066b.107.2025.06.13.04.31.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Jun 2025 04:31:51 -0700 (PDT) From: Breno Leitao Date: Fri, 13 Jun 2025 04:31:30 -0700 Subject: [PATCH net-next v3 1/8] netpoll: remove __netpoll_cleanup from exported API Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250613-rework-v3-1-0752bf2e6912@debian.org> References: <20250613-rework-v3-0-0752bf2e6912@debian.org> In-Reply-To: <20250613-rework-v3-0-0752bf2e6912@debian.org> To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Andrew Lunn , Shuah Khan Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Breno Leitao , gustavold@gmail.com X-Mailer: b4 0.15-dev-42535 X-Developer-Signature: v=1; a=openpgp-sha256; l=1685; i=leitao@debian.org; h=from:subject:message-id; bh=kaPQVqJqh+eg2jcnJq+k42Jh9O4UIBng+B1OeZ2n8IE=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoTAwl6ipGpZ4sM+Es4k630z79KMxVRKEepP1Sl oQSK3YmBFOJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaEwMJQAKCRA1o5Of/Hh3 bcvBEACH6xSpZMVkAyLouW/pNM3btOEqwZOYTTjW9XowlBKb3+W5BsxYytpPnyHhwgCZAd4kWbm JVZ+4JR8pEJ2iMNRvFma9FGRw2Q98LDtlNFlcVPWZmccy0F7Kz8LMKr49MiYe794ArWFq879sIO R2gRPyacpPy8ee2FWa9de/70+rBUY5eh+XzlwLBcMgQ/IwWd+THr2cPaoLRlRnKw8qAZKvo3vf9 HKV6I9HzyJoev2Rzr5P9PTGRkIAv5FzAZ0BQvx0jZCUabjy1B6D11746MbUQ1O3KIpQz+PoBxuX UlVM4buQ+3nioB9ulqbs3S4Z9L6wAO1rNWbCUJ+3uUADXaFiut0NPcwyVwT5uR+0MqiVS4o2BD9 +aFdTA0s1utbaKKgUu+xfRJ4paKV4YYJNEqsnLnO8U9xBWNpVSNP69uW91LGbd9YaDEiexwxZZp zxTabP4jkcal0TxR6ZK7FxPD45UMVBtNqURpEMZeJinI+2oDabPfs0q0OY5yuxmSOMMcIv07Tg9 GxWskG34zCRd6gdML0hXNQ/bdDehGgo0tiPelJd67iik0RjDHfp6jkpSGCGzbRXV9ml5/UD/SaK CrvezrQz4gFz4x80dvNA9l1RMKV1lNXcXGoYnFq8H4GWm7XCgTzOMfYRx+SsbWqV22o26gZQsb5 OO8hSfTfhVOqqQQ== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Since commit 97714695ef90 ("net: netconsole: Defer netpoll cleanup to avoid lock release during list traversal"), netconsole no longer uses __netpoll_cleanup(). With no remaining users, remove this function from the exported netpoll API. The function remains available internally within netpoll for use by netpoll_cleanup(). Signed-off-by: Breno Leitao --- include/linux/netpoll.h | 1 - net/core/netpoll.c | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/include/linux/netpoll.h b/include/linux/netpoll.h index 0477208ed9ffa..a637e51152544 100644 --- a/include/linux/netpoll.h +++ b/include/linux/netpoll.h @@ -69,7 +69,6 @@ void netpoll_print_options(struct netpoll *np); int netpoll_parse_options(struct netpoll *np, char *opt); int __netpoll_setup(struct netpoll *np, struct net_device *ndev); int netpoll_setup(struct netpoll *np); -void __netpoll_cleanup(struct netpoll *np); void __netpoll_free(struct netpoll *np); void netpoll_cleanup(struct netpoll *np); void do_netpoll_cleanup(struct netpoll *np); diff --git a/net/core/netpoll.c b/net/core/netpoll.c index 4ddb7490df4b8..a69c2773841a5 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c @@ -863,7 +863,7 @@ static void rcu_cleanup_netpoll_info(struct rcu_head *rcu_head) kfree(npinfo); } -void __netpoll_cleanup(struct netpoll *np) +static void __netpoll_cleanup(struct netpoll *np) { struct netpoll_info *npinfo; @@ -885,7 +885,6 @@ void __netpoll_cleanup(struct netpoll *np) skb_pool_flush(np); } -EXPORT_SYMBOL_GPL(__netpoll_cleanup); void __netpoll_free(struct netpoll *np) { From patchwork Fri Jun 13 11:31:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Breno Leitao X-Patchwork-Id: 897209 Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B77762DCBEA; Fri, 13 Jun 2025 11:31:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749814317; cv=none; b=E9TMPEyYUHrG995tr2kG1brSIaYGdXdQEs3016LKlZYgcXvzH9GICjuyTrLWSbv6b6FglsyANC5WqnVDOEU5UaBjaRVzuYWeDwdZ6ghwiUV9PmQS6lz+8WpEih0wELdVBiueGk5XcTx5CZzqbXH4Ux7ykYeByZjxDZptHUR+sUA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749814317; c=relaxed/simple; bh=9MWyVnOGtCTb6f3l99b+ZT3EK3ZbCVffW6Ctmx3iUqo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fVBXClOA4ag2s+4Gf/phS6PA9KbJFNAk80vmxWvuIRCMi5m268VxP3h9c+SDVtrwSgGVoFAf/eOHXH5nJ1rP7FmJggzipi9mZrYhudFX7NdvRIOInRH7FSlLZXbaNHEcdWU5VV9eTS+vC3bUHcsEEF3ZtpcBSysfI1+rlPxakXQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=pass smtp.mailfrom=gmail.com; arc=none smtp.client-ip=209.85.208.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ed1-f54.google.com with SMTP id 4fb4d7f45d1cf-6084dfb4cd5so5529785a12.0; Fri, 13 Jun 2025 04:31:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749814314; x=1750419114; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KBPQhHa8Mre4rsIn6yFSq4q69O1rqX0rwLacF4V2/d0=; b=kIqOFIwgcE70qZEDf7iK/9c3EuADM/ECftmxoqy4JPSwekhVOgZkvtflP5DRvSZB6A WwM6dxM9bCSqg66SFxK4oekOFxegC/0WHunTodSE2ajwnbz4Pz91WQUxc0n7tGbxeLFD cFTibFVkd0tramt3hvpQyleTvMDYdJRqTjOJSxvUjUVgMAR3L6zVg7XPSFqN69xNqIal iJxkTL5CDHqivc7D+bqVj6D3EK9yJjNGoyCqaqc0Nt3xwPq7Ia1gK0X1wEuGs18e8ZjG 6eLhW4sF2ba6faE5pxdGbHuIXUbjswQfgdrqAzzMGCmeSaQLvd1+Po6w/oVm2090x0YQ SUxg== X-Forwarded-Encrypted: i=1; AJvYcCXI+NHdegtroPVCQQSikXuLEdirukYb56ubCqfC/OBQHzkC4zBn6RfPNLRu31d3i1GASJXa7HOdlDhNlg4=@vger.kernel.org, AJvYcCXOz0vdD3A121N4LJALxDI5ytN+1kkFTfUuHnUfvDNXXLIat7QDT67NZI9nlKMdOENRgaXOUkpmvKiGBoCjd4g/@vger.kernel.org X-Gm-Message-State: AOJu0Yy6eN2YuX/WxcOBaDR9JoDb/N2tBCvZyGV7pQTZjCKWdk7s+aga byYcHpTGhz+cjd7HyzZb3dN+RYK5wnxrEggvLkJfCzRAAaQPdEJIyEr9y3x9sQ== X-Gm-Gg: ASbGncvx5N28ILzLAuCogcN165CsY/rPRyYY/w+UT51eSn7ME5eeNC5orE6ob5IxiLN yXuQ8P6UH5rO8UUcCulDYRHqW+qmsrJtodlMEB7yyUTOWhCDgYQVdvp1mByTKDzA7cRcpxn3PuK y1wMRv4XKxhLpDKnKgyr66M5hFj/0HPqiE2hltOag2EApdzKVuZU3znyuuKaWnr3ljR2aChKO5z tEIb7kwtmzp14mnNtZa4ZkC2DIGglyOHxdRx7vSQNJY05U7b/yc/+R0IOrocMiZrp475LFibMR2 8hWzM1jgagPseIXXXy6C++16jSSPXyK8dIlxwLf8h230DVfAcRv84TNaHmr49uc= X-Google-Smtp-Source: AGHT+IFEE/Hrw7FVowC4BHdc/CWs8v6HooTdlZb2smo221CwA5NVT3XEy2NXICMTTimCXWM1BnnnbA== X-Received: by 2002:a17:907:3da5:b0:ade:44da:d2cf with SMTP id a640c23a62f3a-adf553f0e43mr35281766b.18.1749814313651; Fri, 13 Jun 2025 04:31:53 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:9::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-adec88fee81sm114903166b.91.2025.06.13.04.31.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Jun 2025 04:31:53 -0700 (PDT) From: Breno Leitao Date: Fri, 13 Jun 2025 04:31:31 -0700 Subject: [PATCH net-next v3 2/8] netpoll: expose netpoll logging macros in public header Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250613-rework-v3-2-0752bf2e6912@debian.org> References: <20250613-rework-v3-0-0752bf2e6912@debian.org> In-Reply-To: <20250613-rework-v3-0-0752bf2e6912@debian.org> To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Andrew Lunn , Shuah Khan Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Breno Leitao , gustavold@gmail.com X-Mailer: b4 0.15-dev-42535 X-Developer-Signature: v=1; a=openpgp-sha256; l=1901; i=leitao@debian.org; h=from:subject:message-id; bh=9MWyVnOGtCTb6f3l99b+ZT3EK3ZbCVffW6Ctmx3iUqo=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoTAwlGl7TGFljpJzNHQyL6AJPpfVsZSEniRO9r mlwWKIOTnKJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaEwMJQAKCRA1o5Of/Hh3 bUukD/wMyN/xgJ+vB7fKRsceosH+elhVsNcK3lEMpHWcj/vVdoblYXmrkCjN/vRrl6bNbG/ceCI 50W9w4yky14XLtjdZbY+q+V7S0w25AwCw9SXoX3jV5awep//KkLUo5YBuUixD61N913VDbrreQ1 DsMokZdga9G6i27Ok4RwnCGrLYecJghFCQpFM4YLuy8euq5ur0TuQt8xGItlKvbgvsy2N9D8x6Q KJEu7U+nNbQ53+QxQNn15dpjQ0IvuNOvq2xoTEDBgJb/HYO7NTDozchovQ9KErBD21vZtOyEXEn cUDwIDZYLRa7LQB4b2ECPZ4BL23UjjC43EJhmpE9Y70rxUi1NDHesvYQRTE+PptoFzYYfxucR+j KfJX9MQHpUpxE4OPF0SlqSwdtsnOpDyPisDbijMgBE/iCBmlTfgYIY4Kv0xlFq+m2GZO4b4CBNZ Yi5BkpV3wSrhNOJFyPiDIeKC9kyl7HZsCAs1CP2EYEcPN12rY35IVNcQ0yI4d1Z1+sEJDHsTv1p Kfdeu4/aRtO+FuBfgF9I/9O7ko9Udrp++x03c3AO7Iar+TlVkHuE3cjPyN7sXs6RqMVB3DQ/wQB AKnocX/2Lb2v6y7XH4ZyF3Ewnm2cuCqgP2kNWaMYTe9v+JRdLd++wSAuwrRhKB1Xsa2Sq1TVvu3 FAvxrd0G4Elgdmg== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Move np_info(), np_err(), and np_notice() macros from internal implementation to the public netpoll header file to make them available for use by netpoll consumers. These logging macros provide consistent formatting for netpoll-related messages by automatically prefixing log output with the netpoll instance name. The goal is to use the exact same format that is being displayed today, instead of creating something netconsole-specific. Signed-off-by: Breno Leitao --- include/linux/netpoll.h | 7 +++++++ net/core/netpoll.c | 7 ------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/include/linux/netpoll.h b/include/linux/netpoll.h index a637e51152544..72086b8a3decd 100644 --- a/include/linux/netpoll.h +++ b/include/linux/netpoll.h @@ -42,6 +42,13 @@ struct netpoll { struct work_struct refill_wq; }; +#define np_info(np, fmt, ...) \ + pr_info("%s: " fmt, np->name, ##__VA_ARGS__) +#define np_err(np, fmt, ...) \ + pr_err("%s: " fmt, np->name, ##__VA_ARGS__) +#define np_notice(np, fmt, ...) \ + pr_notice("%s: " fmt, np->name, ##__VA_ARGS__) + struct netpoll_info { refcount_t refcnt; diff --git a/net/core/netpoll.c b/net/core/netpoll.c index a69c2773841a5..9e86026225a36 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c @@ -58,13 +58,6 @@ static void zap_completion_queue(void); static unsigned int carrier_timeout = 4; module_param(carrier_timeout, uint, 0644); -#define np_info(np, fmt, ...) \ - pr_info("%s: " fmt, np->name, ##__VA_ARGS__) -#define np_err(np, fmt, ...) \ - pr_err("%s: " fmt, np->name, ##__VA_ARGS__) -#define np_notice(np, fmt, ...) \ - pr_notice("%s: " fmt, np->name, ##__VA_ARGS__) - static netdev_tx_t netpoll_start_xmit(struct sk_buff *skb, struct net_device *dev, struct netdev_queue *txq) From patchwork Fri Jun 13 11:31:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Breno Leitao X-Patchwork-Id: 896559 Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1D5D32E173E; Fri, 13 Jun 2025 11:31:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749814319; cv=none; b=DX74R6Pk44e8pU2u5HauKVUJdo8197Tsrtm6V1AaEWSRTQHCBrYomBmh9+WVykAlY+q/7wYFohONfLNYMA2vFOae3ZfUmsgIabOUrJDE3z1P6OwKgQkHhRuEGROzQUJOSd2Puj5dSZHLD4qiwmx1v+/TVLT3LS3Tj5Jl1yY9wl4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749814319; c=relaxed/simple; bh=HSI3U6c3v3290v4+CeJVcQQmvrYEwOBCcAVwCGIdeRg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mzBX5U7p1bOgV15onzzeyHG8E2aTONmWdxlAwTF7MZxuCv8n8KdxwW0lmMuBlEf8Uy18uCw/8YgttR8lFeL0cH662/1CTPQCgBmgTa64iMOX39tr/05KBabtSpijEA8ZhnO8tOdC9EuvacX1ksqqXf9ckY/OmkeVgqD+a95U5iI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=pass smtp.mailfrom=gmail.com; arc=none smtp.client-ip=209.85.218.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-ade5ca8bc69so291825766b.0; Fri, 13 Jun 2025 04:31:56 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749814315; x=1750419115; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sZs310U/9odfVoiw6DtQCw7ziZnUfE4r+2aQyx8AJpw=; b=RZYbOPfnAmYbUM1AX3g0kNxPbJCIzYd4/tkjDXjjWIGW85nD+dgfkN9nlrZHPoID6s EJApmvec4kKY4xquIWpyhWikzIBgm30sprLWebsEM+MxKVDh5a9ZQ2YcyFovBumicmWB D4rM3AfTMCze9oCWi0t4Bjd8A9kBQ/jBg23hJ+XuKPThOAepY2oV95Okwsra2oxYFapT LzBXTlBd1BGrI40wk7WJ3EWVRFInFL9IUVl/dk9LIvTJCeg6Eh7fssku/xGaggrm1l9a MoLtH5zgrsx6KPwBZgvBqyGHLWZfLorG5Q85LDe6e5osoaWeXBKL4qxg9+h+MJaVu8ny ksMQ== X-Forwarded-Encrypted: i=1; AJvYcCUP5esQ8fWKkBx0UhpMEENLg9bgxh3dzS9CPYZVt0lyN0+IaQKnX7dng0+JNRHgnUxGP/LUNnel8054jmU=@vger.kernel.org, AJvYcCUQHhWEvE3EB8BPa821PdUo5mDYdBAvlk9qF+YDugA5nJffGdubPmmqns6WOIMomrWITaam7thSPL8gcfSBcM4V@vger.kernel.org X-Gm-Message-State: AOJu0Yy4V0WWtNzdDR4reRSyhk4NN5i3zic4pNfSWZ0UqFs0X0D1NvMa MOIuwgx5Q1bNfpl2RMYltStce6BERngAgPsE8XqxzuRvP8DmpFglBiku28WbKQ== X-Gm-Gg: ASbGncvvWN4B4NHdO3xw+lR/mtUceRxh7VvK5pii3De6QPZ7/f12IHGko/GPfZhbiyj bxBtOMVAPSXWgAWW0dEXSmQXLD9UGvhzw/oXKXGIeHBkAQdf50Dwej86R8OONEEnq2y5LFeMUD+ QXg+V+G+/WnSZCyRrajwmN/gkX3Z8XSff6Y3s1B4GE96MBpAILZuSdd1TazwNV0jo1fCQtjvq13 uM8p1unG8b3B61Pdmp06SkRf9pMjsA5DOwP67VpCJf/ZATjJHIeis46tQvDjOfSwGh9aeOJx8PU Cohn6qJB12sU5WzFaGI/uXlBaSgb73TeUWHi1Suplda1Mx48IYs3 X-Google-Smtp-Source: AGHT+IFRA3jjKvcIQJdY86XlF8o6T/hTLmkEvUe4docGrCCXHw+gCg4AvSD7xFelfsYfmnTD0B5I0g== X-Received: by 2002:a17:907:600a:b0:ad8:9b5d:2c1e with SMTP id a640c23a62f3a-adec5d2165amr210074566b.29.1749814315033; Fri, 13 Jun 2025 04:31:55 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:2::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-adec892b216sm112713066b.135.2025.06.13.04.31.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Jun 2025 04:31:54 -0700 (PDT) From: Breno Leitao Date: Fri, 13 Jun 2025 04:31:32 -0700 Subject: [PATCH net-next v3 3/8] netpoll: relocate netconsole-specific functions to netconsole module Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250613-rework-v3-3-0752bf2e6912@debian.org> References: <20250613-rework-v3-0-0752bf2e6912@debian.org> In-Reply-To: <20250613-rework-v3-0-0752bf2e6912@debian.org> To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Andrew Lunn , Shuah Khan Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Breno Leitao , gustavold@gmail.com X-Mailer: b4 0.15-dev-42535 X-Developer-Signature: v=1; a=openpgp-sha256; l=7728; i=leitao@debian.org; h=from:subject:message-id; bh=HSI3U6c3v3290v4+CeJVcQQmvrYEwOBCcAVwCGIdeRg=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoTAwlYmHvgkzRtxluUWB/JZlMgm/SuzReFsbeB UVOikt7MdGJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaEwMJQAKCRA1o5Of/Hh3 bQccD/9Di5b/RUZEbyhtnP1SxhczQ5LCiCmPUMqUQhvM4baNyGF2vzi6/gulSCxZdM/QJZmoXmN eR4jd59OYqEYEFr1oJc5rnpA+9np868BfA29YtfMmaEHYA6Mmge0PVzxh5dMsll7fNGFDQ7cUGy +TG7wIVWcvgqeCyCF1lXPtYrkyzI9TVA5i8qaKK14xczTpaA53AhBsywhsGeLkRkZ2/8UP40894 4TNfc4b6C5WbMCQsp9ZK/cVnor39S31ig/k1XKaxyvz4e63TTgjSyiT01bneGhRQmMjghWUsCrq 77ObAqhLrppXAYCNgDU1HyVc1ljjUHMdxURLsNoyEdO4monQFt2MMUIyhT4muHKBnvH23j4QnQR j5jF8K0iQGS7/d9VaXP7/HNl6SXmZ3k1hZmBoneP8PMzhKMsLAtLX0tzVUwfQWECrDNq5ZWaEV5 GFc1wRCvoFfq2xXfFWF5iVrporpuEhjjzzB8u1iAbvKeDclE5cRzKqrUqxRIhogtHasdmDKsvTL +vl9eoyfTKa1OFxd7qfv91RVARf3aZw/OHmCJUpz7P3h8eDvZKMUBeW95K4IOgT7pfvLBqhIQA6 7MlE7hmctkW3jgsES7gIdNkGKT/R0ZDLvhmJT443es3OB9YpujuwCZx2/dv0pQPnM4YRuSOso2A nU5+noMV1WUiRig== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Move netpoll_parse_ip_addr() and netpoll_parse_options() from the generic netpoll module to the netconsole module where they are actually used. These functions were originally placed in netpoll but are only consumed by netconsole. This refactoring improves code organization by: - Removing unnecessary exported symbols from netpoll - Making netpoll_parse_options() static (no longer needs global visibility) - Reducing coupling between netpoll and netconsole modules The functions remain functionally identical - this is purely a code reorganization to better reflect their actual usage patterns. Here are the changes: 1) Move both functions from netpoll to netconsole 2) Add static to netpoll_parse_options() 3) Removed the EXPORT_SYMBOL() PS: This diff does not change the function format, so, it is easy to review, but, checkpatch will not be happy. A follow-up patch will address the current issues reported by checkpatch. Signed-off-by: Breno Leitao --- drivers/net/netconsole.c | 108 ++++++++++++++++++++++++++++++++++++++++++++++ include/linux/netpoll.h | 1 - net/core/netpoll.c | 109 ----------------------------------------------- 3 files changed, 108 insertions(+), 110 deletions(-) diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 1eb678e07dd05..bc145e4cf6e72 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -1659,6 +1659,114 @@ static void write_msg(struct console *con, const char *msg, unsigned int len) spin_unlock_irqrestore(&target_list_lock, flags); } +static int netpoll_parse_ip_addr(const char *str, union inet_addr *addr) +{ + const char *end; + + if (!strchr(str, ':') && + in4_pton(str, -1, (void *)addr, -1, &end) > 0) { + if (!*end) + return 0; + } + if (in6_pton(str, -1, addr->in6.s6_addr, -1, &end) > 0) { +#if IS_ENABLED(CONFIG_IPV6) + if (!*end) + return 1; +#else + return -1; +#endif + } + return -1; +} + +static int netpoll_parse_options(struct netpoll *np, char *opt) +{ + char *cur=opt, *delim; + int ipv6; + bool ipversion_set = false; + + if (*cur != '@') { + if ((delim = strchr(cur, '@')) == NULL) + goto parse_failed; + *delim = 0; + if (kstrtou16(cur, 10, &np->local_port)) + goto parse_failed; + cur = delim; + } + cur++; + + if (*cur != '/') { + ipversion_set = true; + if ((delim = strchr(cur, '/')) == NULL) + goto parse_failed; + *delim = 0; + ipv6 = netpoll_parse_ip_addr(cur, &np->local_ip); + if (ipv6 < 0) + goto parse_failed; + else + np->ipv6 = (bool)ipv6; + cur = delim; + } + cur++; + + if (*cur != ',') { + /* parse out dev_name or dev_mac */ + if ((delim = strchr(cur, ',')) == NULL) + goto parse_failed; + *delim = 0; + + np->dev_name[0] = '\0'; + eth_broadcast_addr(np->dev_mac); + if (!strchr(cur, ':')) + strscpy(np->dev_name, cur, sizeof(np->dev_name)); + else if (!mac_pton(cur, np->dev_mac)) + goto parse_failed; + + cur = delim; + } + cur++; + + if (*cur != '@') { + /* dst port */ + if ((delim = strchr(cur, '@')) == NULL) + goto parse_failed; + *delim = 0; + if (*cur == ' ' || *cur == '\t') + np_info(np, "warning: whitespace is not allowed\n"); + if (kstrtou16(cur, 10, &np->remote_port)) + goto parse_failed; + cur = delim; + } + cur++; + + /* dst ip */ + if ((delim = strchr(cur, '/')) == NULL) + goto parse_failed; + *delim = 0; + ipv6 = netpoll_parse_ip_addr(cur, &np->remote_ip); + if (ipv6 < 0) + goto parse_failed; + else if (ipversion_set && np->ipv6 != (bool)ipv6) + goto parse_failed; + else + np->ipv6 = (bool)ipv6; + cur = delim + 1; + + if (*cur != 0) { + /* MAC address */ + if (!mac_pton(cur, np->remote_mac)) + goto parse_failed; + } + + netpoll_print_options(np); + + return 0; + + parse_failed: + np_info(np, "couldn't parse config at '%s'!\n", cur); + return -1; +} + /* Allocate new target (from boot/module param) and setup netpoll for it */ static struct netconsole_target *alloc_param_target(char *target_config, int cmdline_count) diff --git a/include/linux/netpoll.h b/include/linux/netpoll.h index 72086b8a3decd..1b8000954e52a 100644 --- a/include/linux/netpoll.h +++ b/include/linux/netpoll.h @@ -73,7 +73,6 @@ static inline void netpoll_poll_enable(struct net_device *dev) { return; } int netpoll_send_udp(struct netpoll *np, const char *msg, int len); void netpoll_print_options(struct netpoll *np); -int netpoll_parse_options(struct netpoll *np, char *opt); int __netpoll_setup(struct netpoll *np, struct net_device *ndev); int netpoll_setup(struct netpoll *np); void __netpoll_free(struct netpoll *np); diff --git a/net/core/netpoll.c b/net/core/netpoll.c index 9e86026225a36..d2965c916130d 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c @@ -510,26 +510,6 @@ void netpoll_print_options(struct netpoll *np) } EXPORT_SYMBOL(netpoll_print_options); -static int netpoll_parse_ip_addr(const char *str, union inet_addr *addr) -{ - const char *end; - - if (!strchr(str, ':') && - in4_pton(str, -1, (void *)addr, -1, &end) > 0) { - if (!*end) - return 0; - } - if (in6_pton(str, -1, addr->in6.s6_addr, -1, &end) > 0) { -#if IS_ENABLED(CONFIG_IPV6) - if (!*end) - return 1; -#else - return -1; -#endif - } - return -1; -} - static void skb_pool_flush(struct netpoll *np) { struct sk_buff_head *skb_pool; @@ -539,95 +519,6 @@ static void skb_pool_flush(struct netpoll *np) skb_queue_purge_reason(skb_pool, SKB_CONSUMED); } -int netpoll_parse_options(struct netpoll *np, char *opt) -{ - char *cur=opt, *delim; - int ipv6; - bool ipversion_set = false; - - if (*cur != '@') { - if ((delim = strchr(cur, '@')) == NULL) - goto parse_failed; - *delim = 0; - if (kstrtou16(cur, 10, &np->local_port)) - goto parse_failed; - cur = delim; - } - cur++; - - if (*cur != '/') { - ipversion_set = true; - if ((delim = strchr(cur, '/')) == NULL) - goto parse_failed; - *delim = 0; - ipv6 = netpoll_parse_ip_addr(cur, &np->local_ip); - if (ipv6 < 0) - goto parse_failed; - else - np->ipv6 = (bool)ipv6; - cur = delim; - } - cur++; - - if (*cur != ',') { - /* parse out dev_name or dev_mac */ - if ((delim = strchr(cur, ',')) == NULL) - goto parse_failed; - *delim = 0; - - np->dev_name[0] = '\0'; - eth_broadcast_addr(np->dev_mac); - if (!strchr(cur, ':')) - strscpy(np->dev_name, cur, sizeof(np->dev_name)); - else if (!mac_pton(cur, np->dev_mac)) - goto parse_failed; - - cur = delim; - } - cur++; - - if (*cur != '@') { - /* dst port */ - if ((delim = strchr(cur, '@')) == NULL) - goto parse_failed; - *delim = 0; - if (*cur == ' ' || *cur == '\t') - np_info(np, "warning: whitespace is not allowed\n"); - if (kstrtou16(cur, 10, &np->remote_port)) - goto parse_failed; - cur = delim; - } - cur++; - - /* dst ip */ - if ((delim = strchr(cur, '/')) == NULL) - goto parse_failed; - *delim = 0; - ipv6 = netpoll_parse_ip_addr(cur, &np->remote_ip); - if (ipv6 < 0) - goto parse_failed; - else if (ipversion_set && np->ipv6 != (bool)ipv6) - goto parse_failed; - else - np->ipv6 = (bool)ipv6; - cur = delim + 1; - - if (*cur != 0) { - /* MAC address */ - if (!mac_pton(cur, np->remote_mac)) - goto parse_failed; - } - - netpoll_print_options(np); - - return 0; - - parse_failed: - np_info(np, "couldn't parse config at '%s'!\n", cur); - return -1; -} -EXPORT_SYMBOL(netpoll_parse_options); - static void refill_skbs_work_handler(struct work_struct *work) { struct netpoll *np = From patchwork Fri Jun 13 11:31:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Breno Leitao X-Patchwork-Id: 897208 Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 47A622E3367; Fri, 13 Jun 2025 11:31:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749814321; cv=none; b=Wo2GD1WeZ4b1TheDKhohGI3ATueyCJ/H6BImrxVjAEDmwtvwsZrNpSKsYo/TqUlX9ynWFGQBxaR/laBUTpkUxlsd2I6OoY0Se4209wjbFiDjwfCtxy7dGJ7t97eSjQNP39jIA9EGrMBeTWs0+/CQG5bfQLyR/gCGOnTKKJ2cx+Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749814321; c=relaxed/simple; bh=nG9lqbera4cWIvLyPAaGuSITzB8a1kH3fjDNlCEQQrM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=En6TiXaespewfKi/DsmtoWsHaNdVzYwprLJSknOBDQJf39kSjARnPG+z54+hitWrHp+HnmY5yBFbNKEzV5chZw6voJDtqYxlt2tOzWeEKtBU/QHUiCj4kVzbf8Z6IN+o2S7Azv1OseJe+Fgo2t9DPK46QuZHmARXHHn7ZIWl7JA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=pass smtp.mailfrom=gmail.com; arc=none smtp.client-ip=209.85.218.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-adf34d5e698so39576566b.1; Fri, 13 Jun 2025 04:31:58 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749814317; x=1750419117; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=KffISuF4N28NQHV5ZELr9ntg0njf9qfPssK6Px9zOCs=; b=a6buflKrqZBEl/iYeYQojAQvPhiOsE+8/6OqpuEuMZGrAaX0Tru7MUUHqg8oTRZlxl DR6F5vX3vNpTNm87rznavbAlqg+IXs0axl+Jbqm6jLsxYtfRE6qXZtjSgEVY8Z5aJhlm 3IWCZxoI/v1u41whHWqjM4a/ZEdfvRBUuDoyPApJL8XVFWOb6MQe8LHozOiHV/2nb3p6 s9JuW9geAJC6xxWFIDuv1bzJkhLRJ5/CFAaaW72DMCVZaByMvSwwjCaIBPWWvCutPiJ8 2Lup4+KR0si/XH++66LbqTeaeUdBIiGaGK2R+BXd9C2jR2cJIvnPyUXNZCGv/cjsNf/o JuvQ== X-Forwarded-Encrypted: i=1; AJvYcCUiCgTNc0xq6BQOmCxQcbpNh11WzSbgq8rp3hb8qwaz6g6tWV3foCBStGhNoHMx14st1ypABicrFmM9wmU=@vger.kernel.org, AJvYcCVespusU7AOrMzDrSMU+DP4Gtwq16pXcCYahS/UYK4qFGmXfOse5+0aUIqlmof4aOHrtJ7Thj3f1uRbfjPP7Mr7@vger.kernel.org X-Gm-Message-State: AOJu0YwqMPYthxiCTnDamjUSdygXdHrhyD961YtKkqfzO7NwSzY8ZdC4 dF0V/sTR8Hwkrn953MmpT/LMYlStijWYwElsm/bEJNkWUyjeYt9YlrDjeYj6rQ== X-Gm-Gg: ASbGncsPdqG1IitgfArwL95Rq/yhqOz4qcSXL3xc2Siz+w80dcmY32hT0hCkk9V/sQl 4+1YmKNRlNh50CVPwHRtzQHZ2yes+j3DY39Oba2Zt3EJspQ9tbXIo3Dv4u7wUszj6DecQzIj5L5 K9YLAtT/KEX86Dezl76cuU1FxGJlVsYjEYSQMdYBbgcSUp2praz/1ZUzSn0fr/Gh2T0JfDTPp/i Ag4YbHXznOVQ17fOLYoNy+VmjDf0JIEy449HigNfqmSL6sKGpZUGDHUo1DF7L9IE2HjNYszqhHs PeJqDM6B0ZDUY+BhL1Qt8hEMuVuxq5E2j8gI98j1/qbGJYOijxNd X-Google-Smtp-Source: AGHT+IH6Wj8krt+LQbLYv75e70wBnZYtFTCh29git6uwmbYYLmNh8Va8CRXWI1zL4lvBQy1E8Xj3bQ== X-Received: by 2002:a17:907:9813:b0:adb:2f9b:e16f with SMTP id a640c23a62f3a-adf54d06fecmr29613066b.16.1749814317077; Fri, 13 Jun 2025 04:31:57 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:2::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-adec897c397sm111501166b.167.2025.06.13.04.31.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Jun 2025 04:31:56 -0700 (PDT) From: Breno Leitao Date: Fri, 13 Jun 2025 04:31:33 -0700 Subject: [PATCH net-next v3 4/8] netpoll: move netpoll_print_options to netconsole Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250613-rework-v3-4-0752bf2e6912@debian.org> References: <20250613-rework-v3-0-0752bf2e6912@debian.org> In-Reply-To: <20250613-rework-v3-0-0752bf2e6912@debian.org> To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Andrew Lunn , Shuah Khan Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Breno Leitao , gustavold@gmail.com X-Mailer: b4 0.15-dev-42535 X-Developer-Signature: v=1; a=openpgp-sha256; l=3210; i=leitao@debian.org; h=from:subject:message-id; bh=nG9lqbera4cWIvLyPAaGuSITzB8a1kH3fjDNlCEQQrM=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoTAwlRIciDLgRf6W+3uDx/fAs4R9xWTs+Ai1MB f1ZCfvpxgSJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaEwMJQAKCRA1o5Of/Hh3 bSfnEACrR3C3JqL4fGxgc2Qo+vu348SJrBUE1kM6l4GHkIsr5LXTwCaYt9JYyHZiRfyqMZELfQS UyMi15ILegvr/+iSAR3PeQJzC9+di/L3OZxGlGpTq1N9iXJeLLaH1gkYpAjnMR7rrkdsTkp+eMv jGkAVbrkO28yI0BnICq5fVo86qeRrewiqNh9/E9lYbrX1qlNkOZxKPppbwhUKpxFchuggl1uESs SSv75bfU8fBudgRv/Pwq++PjEjQT2h38OXOORmAHTJ65+GlrGDEAlKWs1LKbs4o6XHDdkhpg3VG e+ZMC44CjSZ1vY6wt3k/BtHdLNYIu2iZnFDb084oRhvf2TP4HiBb5iTuPsWoluMrjEM8h651QIf 1gsS2TzGnNieJKiSVUAZpKzire1hnrD+vCqhzrutZZBVc0dV3otO1DoBuXyDHgAadhV6FnEFOf8 dzCvu1vO1kNSjyI7jf66zZWO2YA4Nqc3KK/bCF/FKMyGUoA+OMEzAWMy8NpZJos9gFW9hN2IX/k E+cyrMKqm+NbJwKliMRCtdK/opJTrsb4sZle0z3I2KByjVAcSWi0IuBAwXB/An2n+KQ55e1aAvt 6rwt/faXosW/XcdyRzMIQ5dsxOF5T6gvvO5AKFJ8Li+beS6cFfZy4aZXWoM9/GoEHI1ubE6kfl5 xz0m38ypb7xQjcQ== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Move netpoll_print_options() from net/core/netpoll.c to drivers/net/netconsole.c and make it static. This function is only used by netconsole, so there's no need to export it or keep it in the public netpoll API. This reduces the netpoll API surface and improves code locality by keeping netconsole-specific functionality within the netconsole driver. Signed-off-by: Breno Leitao --- drivers/net/netconsole.c | 17 +++++++++++++++++ include/linux/netpoll.h | 1 - net/core/netpoll.c | 17 ----------------- 3 files changed, 17 insertions(+), 18 deletions(-) diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index bc145e4cf6e72..71522fb0eeeef 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -278,6 +278,23 @@ static void netconsole_process_cleanups_core(void) mutex_unlock(&target_cleanup_list_lock); } +static void netpoll_print_options(struct netpoll *np) +{ + np_info(np, "local port %d\n", np->local_port); + if (np->ipv6) + np_info(np, "local IPv6 address %pI6c\n", &np->local_ip.in6); + else + np_info(np, "local IPv4 address %pI4\n", &np->local_ip.ip); + np_info(np, "interface name '%s'\n", np->dev_name); + np_info(np, "local ethernet address '%pM'\n", np->dev_mac); + np_info(np, "remote port %d\n", np->remote_port); + if (np->ipv6) + np_info(np, "remote IPv6 address %pI6c\n", &np->remote_ip.in6); + else + np_info(np, "remote IPv4 address %pI4\n", &np->remote_ip.ip); + np_info(np, "remote ethernet address %pM\n", np->remote_mac); +} + #ifdef CONFIG_NETCONSOLE_DYNAMIC /* diff --git a/include/linux/netpoll.h b/include/linux/netpoll.h index 1b8000954e52a..735e65c3cc114 100644 --- a/include/linux/netpoll.h +++ b/include/linux/netpoll.h @@ -72,7 +72,6 @@ static inline void netpoll_poll_enable(struct net_device *dev) { return; } #endif int netpoll_send_udp(struct netpoll *np, const char *msg, int len); -void netpoll_print_options(struct netpoll *np); int __netpoll_setup(struct netpoll *np, struct net_device *ndev); int netpoll_setup(struct netpoll *np); void __netpoll_free(struct netpoll *np); diff --git a/net/core/netpoll.c b/net/core/netpoll.c index d2965c916130d..07c453864a7df 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c @@ -492,23 +492,6 @@ int netpoll_send_udp(struct netpoll *np, const char *msg, int len) } EXPORT_SYMBOL(netpoll_send_udp); -void netpoll_print_options(struct netpoll *np) -{ - np_info(np, "local port %d\n", np->local_port); - if (np->ipv6) - np_info(np, "local IPv6 address %pI6c\n", &np->local_ip.in6); - else - np_info(np, "local IPv4 address %pI4\n", &np->local_ip.ip); - np_info(np, "interface name '%s'\n", np->dev_name); - np_info(np, "local ethernet address '%pM'\n", np->dev_mac); - np_info(np, "remote port %d\n", np->remote_port); - if (np->ipv6) - np_info(np, "remote IPv6 address %pI6c\n", &np->remote_ip.in6); - else - np_info(np, "remote IPv4 address %pI4\n", &np->remote_ip.ip); - np_info(np, "remote ethernet address %pM\n", np->remote_mac); -} -EXPORT_SYMBOL(netpoll_print_options); static void skb_pool_flush(struct netpoll *np) { From patchwork Fri Jun 13 11:31:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Breno Leitao X-Patchwork-Id: 896558 Received: from mail-ed1-f45.google.com (mail-ed1-f45.google.com [209.85.208.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 715DA2E3389; Fri, 13 Jun 2025 11:32:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749814322; cv=none; b=QZ1RMeP9syoFklDsJ3rgdzk0vBTeyGreiOVdRHvrdX9+cCRWMANvs/PaXg0e5WhHm+6Igm6oRu7kch2QCZxSlEeA3r54+QMnpnUYpjoSTYU41xJ1sVCB+vI/NFWSA/3ceGF7cWwAg5YbKfZQzYvo6A6UtxLyG0I4zfw3gbyXw7k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749814322; c=relaxed/simple; bh=OGy0eKjv/0jfbBP89XbzYtFF77DX+vnD2tIgiOzWN2g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GlX4oGkwpP2uQOv506ansnibQzmobk4otf6DKWyuX5YVrqYjWVBwaVvd0DIZ9olgpUgp9FgzQOlwD8vFNW8Uv82mRPNz5tXdLzaJ2Gec8M0WuNMdo/U35mX9iWNF6xX56Btr099NG1XV2OuaWUnGoBL3j1r7hg9AKipG7aAL/30= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=pass smtp.mailfrom=gmail.com; arc=none smtp.client-ip=209.85.208.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ed1-f45.google.com with SMTP id 4fb4d7f45d1cf-605b9488c28so3826537a12.2; Fri, 13 Jun 2025 04:32:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749814318; x=1750419118; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qXyzK7g13P/cKo/rgUaAA3sU2j1PA2Tn682NBiNYNEQ=; b=ucdxXokImsQ63YFqy4xVYuE+ZlLadj1iU2vXo9MNtB4G+B1nR5FFZXMODf9NfE6Uar oHGFB+7flnVPNbI9BW6fMQWiGUd9YTUPcUfdiuz19bFpGBjqASzmgTWL5CL+0gWVyljY zSduJsqYI8rpBmzzL8/KmTrcJbEy73NpqXG/DXfYyCIXc84OIEB932594erGTFviIAIP 0yv6hFURZGfWSVWDc/qtqvKq8KXmZ5CyfSmIP0tCkNngo38JDucrm/Ih0KfR05J3z8ai dRlOO898rmzOXYCYrkVQTtbUTN+LRE3LgD8DxLGrHIdtQHoMWworLwpTpIwntMjvFOvN MmNw== X-Forwarded-Encrypted: i=1; AJvYcCWVBPZhQNxiSgrG7xncrcCevqKrDxTHk3VnlbFFY5RVTJzENwl6nd6i7/BwACmQwlxjzgUIHpDTKS4v8FM=@vger.kernel.org, AJvYcCWkThYl+dXJPT9WEX1qT0MoZULeX2tkZ9oExr5HgcvMuLZ1HB7MGb46XhFceHaZXv46JbR2o/gbgwiI23OmuFko@vger.kernel.org X-Gm-Message-State: AOJu0YwYoaHBHcqhk2kUpar+j8YqV/S64nr6k1U3oeSWwDysxCdv+vve 4vICg4vIoli6h4ppDeGjlBWtwvyquQZ/838qEyjn7EoQ9Q3j08DHwB2CT0XYJg== X-Gm-Gg: ASbGncuMAfRL7GxGWvHNoCwPaFsEuzXK44JkbJYS1SNozIap8fFiJ8YOjRcIY2VsLv6 /3KBPT36uzr8E0i0iB2plP26VsLxIFXDYdPs2GSQwIEfy47iMRJHbb3ha+VeVZ5MgF4SztD/TPp jmcU1XMy0pzw99l1+vLRrdmjgk83O+IMFLbdAaUFaHsah3uHusRBj4J616tG8QNXw3Qyu8si0qi s1MYIBtHQK93ZRKkdnQ/UKHcIso37hweCqh6tRTQ0coBChBqEshiabtZEYYaz3iA6cUmUp4wzbi Dy/K21qWHBip+yMI6RPP8icSrRWDWbODzQJkuIIcrpMVufOTLlyA X-Google-Smtp-Source: AGHT+IF5yxVg5gHaaRBwQ8VJ0OXE0zQATDdMAhgog4kpdQoGi+Mb3H120K6Q9fT8Ibm8DI8XhHkyGQ== X-Received: by 2002:a05:6402:1d4a:b0:607:690f:b74e with SMTP id 4fb4d7f45d1cf-608b49f87b1mr1842611a12.29.1749814318491; Fri, 13 Jun 2025 04:31:58 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:8::]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-608b4ae216asm1051164a12.75.2025.06.13.04.31.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Jun 2025 04:31:58 -0700 (PDT) From: Breno Leitao Date: Fri, 13 Jun 2025 04:31:34 -0700 Subject: [PATCH net-next v3 5/8] netconsole: rename functions to better reflect their purpose Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250613-rework-v3-5-0752bf2e6912@debian.org> References: <20250613-rework-v3-0-0752bf2e6912@debian.org> In-Reply-To: <20250613-rework-v3-0-0752bf2e6912@debian.org> To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Andrew Lunn , Shuah Khan Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Breno Leitao , gustavold@gmail.com X-Mailer: b4 0.15-dev-42535 X-Developer-Signature: v=1; a=openpgp-sha256; l=2463; i=leitao@debian.org; h=from:subject:message-id; bh=OGy0eKjv/0jfbBP89XbzYtFF77DX+vnD2tIgiOzWN2g=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoTAwlw/MNuO+7Jpz7S/Hw9HKi8JyTzsuj+UN8g Sjc+s0U/ImJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaEwMJQAKCRA1o5Of/Hh3 bXWHD/9yy5NppbQ8E6jwAQYNTdyWRs5QmwRtzgKovvGn4LPLUg95KFdY3sqqA8pECQ9TCkIPFhP mSfTIeoeWFhstgjhVSbq37AJ9Aqvsjy6KQ5QOlxn0gt4bDVE2xx6moaLVwG5cdQsRuE8WtdXptw lGidtNkLNWcB79VhZdEQJmgCaCKzcsJSlJdy+RTskoXs5mljpTevhs4hssCZhglGUQ2/XFUEBJR f0hIQ2KcPRXoCAedhxIwXteAhld1OTbbwy9wkxfkLyA/aDtjTiXo7sQcoZGE30UyFwoJGsI3WFB MfrOGFFw9b4LVNfQFtN+6+tkqvd1Pq2JHVQORjYUNRVFcea9/4Z7s/rIXC0C8spGemMjR5i/O++ MiOPIjPExcuihRFMSWX2DUHh2lS6sJWbLql7eKZZ0Mkd62O0dU6atPPAhV8XJw6nIU1M1M9M7HH d9nx7RZFmVQI6pgLjO+t1YPah/ug0FR5PIcyTgKeexAe/l48kdBq1THMgM30E3o4JJ1F5pGSdRd M7BS03RrksoDMyO8ugVC8zXmut4zkS6ZZq2U/ZVLR/6W8TEp2tFdtQ3wU+/4gIm7I7MP8YOwfrm AxSmT/3kq+4ZH79yWRexP4VQFhFjs0Iom5k/kCip2QQgLJwbHfzS0V1/ixF0ZsRL1J8WrtsmjcB menULEaa0nH6pKw== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Rename netpoll_parse_options() to netconsole_parser_cmdline() and netpoll_print_options() to netconsole_print_banner() to better describe what these functions actually do within the netconsole context. Also fix minor code style issues including variable declaration ordering and spacing. These functions are specific to netconsole functionality rather than general netpoll operations, so the new names better reflect their actual purpose. Signed-off-by: Breno Leitao --- drivers/net/netconsole.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 71522fb0eeeef..cc45ec18848c9 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -278,7 +278,7 @@ static void netconsole_process_cleanups_core(void) mutex_unlock(&target_cleanup_list_lock); } -static void netpoll_print_options(struct netpoll *np) +static void netconsole_print_banner(struct netpoll *np) { np_info(np, "local port %d\n", np->local_port); if (np->ipv6) @@ -551,10 +551,10 @@ static ssize_t enabled_store(struct config_item *item, } /* - * Skip netpoll_parse_options() -- all the attributes are + * Skip netconsole_parser_cmdline() -- all the attributes are * already configured via configfs. Just print them out. */ - netpoll_print_options(&nt->np); + netconsole_print_banner(&nt->np); ret = netpoll_setup(&nt->np); if (ret) @@ -1696,11 +1696,12 @@ static int netpoll_parse_ip_addr(const char *str, union inet_addr *addr) return -1; } -static int netpoll_parse_options(struct netpoll *np, char *opt) +static int netconsole_parser_cmdline(struct netpoll *np, char *opt) { - char *cur=opt, *delim; - int ipv6; bool ipversion_set = false; + char *cur = opt; + char *delim; + int ipv6; if (*cur != '@') { if ((delim = strchr(cur, '@')) == NULL) @@ -1775,7 +1776,7 @@ static int netpoll_parse_options(struct netpoll *np, char *opt) goto parse_failed; } - netpoll_print_options(np); + netconsole_print_banner(np); return 0; @@ -1813,7 +1814,7 @@ static struct netconsole_target *alloc_param_target(char *target_config, } /* Parse parameters and setup netpoll */ - err = netpoll_parse_options(&nt->np, target_config); + err = netconsole_parser_cmdline(&nt->np, target_config); if (err) goto fail; From patchwork Fri Jun 13 11:31:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Breno Leitao X-Patchwork-Id: 897207 Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E56FA2E62B2; Fri, 13 Jun 2025 11:32:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749814323; cv=none; b=rq4YZU2XRSQhzN6U7Hpb0OfWXgE/r0M/xipHxRaOE/wk+CuJteGfAgLTuDxX3v6vnI2s4kxS9X5zCtsIteRSp+sxirHtM/K5kLuPEf4JEpIZSdd9a3gp6T3pWjHvWqnRXPPrM1feCxen/WghTObce0ELBXmwqIHQAz7GCEZFV4Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749814323; c=relaxed/simple; bh=v2AyUbx52O1gs/YWNE9pnzapy576jxcuy3r269njaSs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AGdX+T3GKPjzRvX0oxFIZWlbpdcx2pyCp4fYPBsIH1EiCTS3ICi7ej60caD3WsYQUG3dX1vyegL8VQzI8y+DUEG3bYicffIRyAcFWiVUURa6mumFt4E8j984TxqgbzyBTUUy8PGESHqpsoLp+zXnCkxwyQev/DzLDb3t5/NSMTA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=pass smtp.mailfrom=gmail.com; arc=none smtp.client-ip=209.85.208.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ed1-f43.google.com with SMTP id 4fb4d7f45d1cf-60794c43101so3252999a12.1; Fri, 13 Jun 2025 04:32:01 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749814320; x=1750419120; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=VhEBmrSyNjBmM6vK3z4Rkzv0tIsdnlSn/AelZ3lrD8Y=; b=pPAdZlf7i9hD7bVipdyez+OuTQ711kvHHNFsOj/IIMKjMAoV+0EEL32XiaJTv4P7SG uTMN8sLR8f+hgoPPrMNNol/S8WkPkcZ9NqSj8r/re+DF/fpGAZyTHMGn/nrPhY+0k3zv cQ88iYw2EEsPgUKoaZVMqDOXIG7LY3O9zVsO/r03AaCtrGQbdyZeOO8qulhNKvKMKTiY atH0aC/AZ4ln/D4o5h8uui2q0TqKsIuqF43mWg5sEoP2HNdyDOFKJgz2yfJx+oOJK87a jgx22yZuX7mrKEATGJnmYTcUT0daA/39nqNrv/5/0k7X+tFAvPMDHwmhYCXypi5i1wS3 YBtA== X-Forwarded-Encrypted: i=1; AJvYcCWd8q3x20nWuIEcMvCckleaRqLnTsLtkz14F4Rs7ONLTPnWvVP/lNjTiMW5MTQFu1FqAb7nkzeUbjCKNJw=@vger.kernel.org, AJvYcCXrW/LiwnI4tzKFIp8W/IToNK1CXJ06PbCU6BJVMErhNojEo35apt+ayDQZzEmBOtncPsI4pKq0tXMU27X6uKvQ@vger.kernel.org X-Gm-Message-State: AOJu0Yzz/X2yZu+6ryNEBto5+TiKfFHES8pf34tgLJ9jiLkkPNppz4EH 7BOgWOnZJmuBwIeatA6N62atH6X/CU2rtOARQYjgl4Q6YnE6Ma2GMMv4pEiT6g== X-Gm-Gg: ASbGncsfh3cDriREymGbX/VYnsxxNtS9LorarJosNbgi3wDIUU9+GAp/HvSM68TY5kz LeB/Y+V5liUZcCKVsOUWwAJiTlgedaH2IfQEUBFCdFtomnJHJt2WpkOByKHhyJ5w2Aj3nnKygc7 CHcM/SrKabX/MLCXBFmsRg1K+D2TPP8wQITmSWLy4540JXddi+TvEt7DejY/sSyYppQteClCY5B cGW+yzUXeuodUH3/tZuQL2OoSVDGcijYE3aYTHsFqnjW7NoeoGMOqr9PmhbGzWBk4pQOXeBhKm9 UDVJYXok6zvHQuU+W8U5oX0L/o2irOqocQx05WmaIs2UZkwsGgGp X-Google-Smtp-Source: AGHT+IGH29MsGdsyDdX2Z8TNZrZNaJjZsWSLiareYRl29R+I89Y9mWSZZ5fiCjbE615gBy3lWvD7EQ== X-Received: by 2002:a05:6402:51d3:b0:608:48fc:ff73 with SMTP id 4fb4d7f45d1cf-608b4a15e54mr2305491a12.26.1749814319839; Fri, 13 Jun 2025 04:31:59 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:5::]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-608b4a5ac30sm1094772a12.47.2025.06.13.04.31.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Jun 2025 04:31:59 -0700 (PDT) From: Breno Leitao Date: Fri, 13 Jun 2025 04:31:35 -0700 Subject: [PATCH net-next v3 6/8] netconsole: improve code style in parser function Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250613-rework-v3-6-0752bf2e6912@debian.org> References: <20250613-rework-v3-0-0752bf2e6912@debian.org> In-Reply-To: <20250613-rework-v3-0-0752bf2e6912@debian.org> To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Andrew Lunn , Shuah Khan Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Breno Leitao , gustavold@gmail.com X-Mailer: b4 0.15-dev-42535 X-Developer-Signature: v=1; a=openpgp-sha256; l=2089; i=leitao@debian.org; h=from:subject:message-id; bh=v2AyUbx52O1gs/YWNE9pnzapy576jxcuy3r269njaSs=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoTAwlIooOP45UEY2HVSTsbcD8RnHx7dcZUWtxV gqFjDJ2xWeJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaEwMJQAKCRA1o5Of/Hh3 bbdiEACS/g7tKfAyDBTbIj4y+smtuGhcwZyV0W/+GtbSa4/wWam6hfKrF0cQ4kHv6UH74HLEMJy eAY0RevLzAzHrmoEn27Cn3wBUu7z0fG0L7vNlzjyieukr/zrlNgRNi+pPzJew0let1KfUmWmwI8 fs1URPU1inPRhNrEWfVUGQ1lZ1iCFqSyNKNqecmUooN6qzxODq19vGrzx/SMW4WfJcQH6qQBr9K JHj775AYiDXuA4Y9s1BCJKnDL4FWtvrpw7L58VyfpVShVy8AhtQl4YJ66O5BlsfRvhG9v5n5/eY MmQTJKL+KX2n754YoQG6pBaqKAhXF52hcq+h73nRidSAMfQAsBFoYx9tek58T6zc6k/CsH9IU9K dPDntS9YRs/izbYvYtURfgqAZM81SuG93KgdNC99FOpDeNbv51T2G3GVfYGWyOq9kFL4pbE6JS9 WnUUZQRc2BHnriGHpx2fqkKW5njeltGIcf0whrB1A4WRWbdEIF2xn3XogdZv0jOnsRInaSHdsmW qT1Yh8fVNI7fHmsEQ0dsvo7o2yGGv2drILYL2SWQUCNvQiFsuHl+kAL5KfnC4RjY2cAAM/g77Tc WhuPT425pxp2MIw/nk3JBvJOmwJ7B05gsox5zu5en7mBHOy5HRXgpY+sDz6HnIJhkyvk4r/ult5 p1JUexOnJo8eSrA== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Split assignment from conditional checks and use preferred null pointer check style (!delim instead of == NULL) in netconsole_parser_cmdline(). This improves code readability and follows kernel coding style conventions. Signed-off-by: Breno Leitao --- drivers/net/netconsole.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index cc45ec18848c9..89afe127b46c9 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -1704,7 +1704,8 @@ static int netconsole_parser_cmdline(struct netpoll *np, char *opt) int ipv6; if (*cur != '@') { - if ((delim = strchr(cur, '@')) == NULL) + delim = strchr(cur, '@'); + if (!delim) goto parse_failed; *delim = 0; if (kstrtou16(cur, 10, &np->local_port)) @@ -1715,7 +1716,8 @@ static int netconsole_parser_cmdline(struct netpoll *np, char *opt) if (*cur != '/') { ipversion_set = true; - if ((delim = strchr(cur, '/')) == NULL) + delim = strchr(cur, '/'); + if (!delim) goto parse_failed; *delim = 0; ipv6 = netpoll_parse_ip_addr(cur, &np->local_ip); @@ -1729,7 +1731,8 @@ static int netconsole_parser_cmdline(struct netpoll *np, char *opt) if (*cur != ',') { /* parse out dev_name or dev_mac */ - if ((delim = strchr(cur, ',')) == NULL) + delim = strchr(cur, ','); + if (!delim) goto parse_failed; *delim = 0; @@ -1746,7 +1749,8 @@ static int netconsole_parser_cmdline(struct netpoll *np, char *opt) if (*cur != '@') { /* dst port */ - if ((delim = strchr(cur, '@')) == NULL) + delim = strchr(cur, '@'); + if (!delim) goto parse_failed; *delim = 0; if (*cur == ' ' || *cur == '\t') @@ -1758,7 +1762,8 @@ static int netconsole_parser_cmdline(struct netpoll *np, char *opt) cur++; /* dst ip */ - if ((delim = strchr(cur, '/')) == NULL) + delim = strchr(cur, '/'); + if (!delim) goto parse_failed; *delim = 0; ipv6 = netpoll_parse_ip_addr(cur, &np->remote_ip); From patchwork Fri Jun 13 11:31:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Breno Leitao X-Patchwork-Id: 896557 Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7F7622E6D1A; Fri, 13 Jun 2025 11:32:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749814325; cv=none; b=moUfC6OfCrrbGzSqoeONcrmxbPj5CnBSyVKoAp6dRWXA28Arv+JwiY1IEdvZ6paXErCGoJMCQ28ALE+vzz1+N1HODfs4gEA9sP4eI9XHcpn/JJNEGqgGVje/d71wo7kMcM/NHL2450W4dNRHD4QfG+kLb96nS9gz/MB2iIxClts= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749814325; c=relaxed/simple; bh=8fFTCY2/FkrInRH57zGLYtSnBzyGpWeIyz40n/hRaYA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oYmw/1V8hkDIH9eEyqvzGm2FVLjJ+DjsBXDgAEHE7xeNun+5Y0eZq6kSqBuj28njyGlcQBvDOnoWwieQbU9T6kSAifJXtKFOWWIW13yJQCXnkNaohUU9GeWwSvf/M1iVdTM9XXv76K8pwkLC3B8iOcprLTdzRx1tgfnFjkFWwkA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=pass smtp.mailfrom=gmail.com; arc=none smtp.client-ip=209.85.218.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-ad89c32a7b5so322239666b.2; Fri, 13 Jun 2025 04:32:03 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749814321; x=1750419121; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=P+IbNQVCy4OC057F6g21qa7ouXuJTn2/HEWvlOhb4a8=; b=VYkyMfGIFMdf9TXNYQXXXNqkbEtVDDNR35pH/FLvOY+CRmk18hN47MQBi4iIgTHjV+ FYlma7bvXUTVHfLG+d0aEsqXC8zuP7OG1km3kQexX0tX3/0ClvUuzLnhU44Bt5maCsi5 dYRpdtzhWfz8lXmfT0+e0a3Oc+dtjvPr09jEUrl5r4egYHqG9wnZXic8NDooir6Xlbo4 riQnXbM10pSqP/ZOJqmaXOG6Pkh5Gy6NghiHqen7DNDW41I0+GX01v+ghmxk0r2ytAOE BjXpGeFh7F0LUDnpehWBQ3Rbxw7XeJVaxEv6o0lP/+cGQeg8moG6tmC5oR+peI5Zu9BX ZWiA== X-Forwarded-Encrypted: i=1; AJvYcCV93WZaH6LkqpQ3mW1JQp55bX9O0X3GgcT195QzBW8pTO/VY02VqsEZIb+ZDmapfLKuORoTTmx5/n1F4eg=@vger.kernel.org, AJvYcCWt2TBm3mCRzPKK7lFZO+eHjU0Vky/zv82axKtWmNOXc8rTst+JjSiUN2P5nqq5tQWOEZ0FOZhbGU80XL8YuqPp@vger.kernel.org X-Gm-Message-State: AOJu0YzG4kk1P6bhJV5Q/Wk/a5LHvqUOAT/dOWyPiZSnAUusL1ljG3LL uX0KNXwoXu6wjm2+xVu5e8HZllC0pb8dSkYCYdjUwQPSTArOdfm9uGhdXxnXtA== X-Gm-Gg: ASbGnctBuoIOEiF11yLWBXIAsN3ysEaVkKLKBKOeOwolDCLOXv0ZH9JbWSkUfRSt/qe +DVuaTnunMpIpO3MJ5mL06ubMRrzPvRh5Uh3HFxtAQRl1409wUD/beldQQlS3VPhjHZzYh7AkWR I/a/W/fjZ8L38n2D9eoq03wfoNMcy1rjgD/8hyc0Cmd2eNKHL/I1wKRljCiYxOd+IQEx2v+pSvY IgtEXa1gp+wv+hU+9T0du1WoCqzHK2lEc0oix2VLXzQCxhmLzMiMY78fEC3XxNWXAi6ZezX14yi b1ANgd3Za7C4DJfWFiapebCNd+XjrCFyWTTdOGUuELcOwwSTmwsW X-Google-Smtp-Source: AGHT+IHZxUVFmP4e15j+pA6R0kuoGa5hkFmV3frmO9LeCWjUF36fXXCmwGK7yWRxeqDP5HoAv23V3w== X-Received: by 2002:a17:907:7faa:b0:ad8:85df:865b with SMTP id a640c23a62f3a-adec5b9b856mr243340466b.33.1749814321196; Fri, 13 Jun 2025 04:32:01 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:4::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-adec81c5be2sm115161766b.64.2025.06.13.04.32.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Jun 2025 04:32:00 -0700 (PDT) From: Breno Leitao Date: Fri, 13 Jun 2025 04:31:36 -0700 Subject: [PATCH net-next v3 7/8] selftests: net: Refactor cleanup logic in lib_netcons.sh Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250613-rework-v3-7-0752bf2e6912@debian.org> References: <20250613-rework-v3-0-0752bf2e6912@debian.org> In-Reply-To: <20250613-rework-v3-0-0752bf2e6912@debian.org> To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Andrew Lunn , Shuah Khan Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Breno Leitao , gustavold@gmail.com X-Mailer: b4 0.15-dev-42535 X-Developer-Signature: v=1; a=openpgp-sha256; l=2032; i=leitao@debian.org; h=from:subject:message-id; bh=8fFTCY2/FkrInRH57zGLYtSnBzyGpWeIyz40n/hRaYA=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoTAwl5fiSjY+nxre8eeQLZ58PIHIj//vLU5cLE +V4A7iVKqmJAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaEwMJQAKCRA1o5Of/Hh3 bbFTEACKLB3raaOhaopyolqpWYgr8LaJt8mbiTlmLtiDY9JUsvgO1FNrGj+pJKW8Bbr4SgKE9BM Iv28gSzrX2MFdwSzl0v8Jb2nBVPZ8Qrwalo7Ytd6NjJSb68OPT7Q5XKd96I4+bg49+qSZq7R1o8 hiLaHGcdY+UUt1uJTqk9Jtd8jI50yfS7+l5omic+gGTZWhzEH3cimOLTxAUybPS01hlpRVz+Any PuEf3EzY2UZcjIwSCy6/8GYz46Bk6PXw2Xfj6rVBY83snAahDWewklnkEA9Nu28WCA45Sr1LoDk hqFcpxvC5nuUKo8fbLYP78X6Lsl+p95vyKXRWHX90Vt8ZrzwqT/q0PvL3U89N7d3yjvFmZzgRTa gDd3Q3sf0qZE1zyXvofdh6zEwWEZuOUzsYUjuAYoCHEFaHDPAB9u11nM2CVfDYgXVUR3zkZyhVK S7anzHmIOXZj3KVxcF1Qnb/GXsnwOBqZpB1OyQrH0UpWg3oSucIyhmHzWjkNmqHUWwKtaWkH92m DNn6B0e/y6A9YVwxpn5MyxynWFAsL26YOIJKYic9sGafED3SIeyxX43X6WmT+SPMZlG0HfBIi21 QZUhqsdYzEG9hRPP3GqxdOqbytkncXbqSd+/RuxCv+i4GoBf1pyPzjT4ENx9Rl/Kxx6Q42VNJ8E 0cgqJ05TCMj4B+w== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Extract the network device and namespace cleanup logic from the cleanup() function into a new do_cleanup() helper in lib_netcons.sh. The do_cleanup() function only unconfigure the network and printk, while cleanup() cleans the netconsole targets plus the network and printk. This refactoring let this code to be reused in cases netconsole dynamic is not being used, as in the upcoming patch. Signed-off-by: Breno Leitao --- .../selftests/drivers/net/lib/sh/lib_netcons.sh | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh b/tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh index 71a5a8b1712c0..598279139a6e5 100644 --- a/tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh +++ b/tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh @@ -128,16 +128,9 @@ function disable_release_append() { echo 1 > "${NETCONS_PATH}"/enabled } -function cleanup() { +function do_cleanup() { local NSIM_DEV_SYS_DEL="/sys/bus/netdevsim/del_device" - # delete netconsole dynamic reconfiguration - echo 0 > "${NETCONS_PATH}"/enabled - # Remove all the keys that got created during the selftest - find "${NETCONS_PATH}/userdata/" -mindepth 1 -type d -delete - # Remove the configfs entry - rmdir "${NETCONS_PATH}" - # Delete netdevsim devices echo "$NSIM_DEV_2_ID" > "$NSIM_DEV_SYS_DEL" echo "$NSIM_DEV_1_ID" > "$NSIM_DEV_SYS_DEL" @@ -149,6 +142,17 @@ function cleanup() { echo "${DEFAULT_PRINTK_VALUES}" > /proc/sys/kernel/printk } +function cleanup() { + # delete netconsole dynamic reconfiguration + echo 0 > "${NETCONS_PATH}"/enabled + # Remove all the keys that got created during the selftest + find "${NETCONS_PATH}/userdata/" -mindepth 1 -type d -delete + # Remove the configfs entry + rmdir "${NETCONS_PATH}" + + do_cleanup +} + function set_user_data() { if [[ ! -d "${NETCONS_PATH}""/userdata" ]] then From patchwork Fri Jun 13 11:31:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Breno Leitao X-Patchwork-Id: 897206 Received: from mail-ej1-f48.google.com (mail-ej1-f48.google.com [209.85.218.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B52A62E7625; Fri, 13 Jun 2025 11:32:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749814326; cv=none; b=HlRDCT581ALV5+Bmh5bPKZsEiuc/wmLu4IXlsxAKxgVTECLu0VRpc3r55dmAxelqguTPgIpypyAN9x9XGAicEHk/hHsfClWKrVK1rmSHMwMlwHQPCJ85PkU3jxR/x40F4+2IioUDMS3ThVDOt1jtgR292TY4+e8vBC8rqcGokZY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1749814326; c=relaxed/simple; bh=5v/1hL/ALMXFWvwHghT7FERfuc6HtTVh0PFSKcLiZac=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XmIOJ2lCFgK51olmTdEGv9TFwh+aRt+LCmArx3YGheC0NETQUa8LQ7qDkCNMFQwNNaCG1jGSg2kKg2cIgak29MEI6yWAE594GTncIQyBDqTfMxSGvzH339juDZMwI0MdPzEFLH+X+SL6ZynFSGHmvmQ+0cEjYA8xt86LEPKTU9s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=pass smtp.mailfrom=gmail.com; arc=none smtp.client-ip=209.85.218.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ej1-f48.google.com with SMTP id a640c23a62f3a-acb5ec407b1so328390866b.1; Fri, 13 Jun 2025 04:32:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1749814323; x=1750419123; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AFyrorJHtIadhR2WZLtoMNadK7UpAA+1kioSAElIigY=; b=WRnIjvB3Nv1R7Up6O3NhJxPrZigKvM2BS5L/oY5DH/2p6i4tlOzmTFRy0QkjPFpPzx Jgc5q+sfaBIFX3tgfXUA/xedYFu8nRG/ZncqZLZnGO7J1Khccf34W2m3CrVHEj9ge/gf ViHpMJU8iM6YyLH+G29v/OgROvrNJhij4nJxxtP65m5CDtkZSHTHLOOJzfh6Dr2rGWmf 2MgRczmAJ8T7nbdV2RGaviZgP3M7AT81w50ZME3sIywd7w2tqzvLjLJgG0DKNAcLeGiY lnAZ2jNmXAeTUC5XdeDd8HUMWi4N54j4rpa4eBNh49LkF3dF8x3YZi7k8p5wuSBuJDTb Y/Hw== X-Forwarded-Encrypted: i=1; AJvYcCW5UDWFRmxD/7HlAjwDcB0XuRvlipkDraz0HPdUsLalD98jhzK6iP5YQkM4UukkTCES7RKAUjYZCvCfNhk=@vger.kernel.org, AJvYcCXIifHh4fyNx9FaZRZ5wwwyCcOsfSFRHXQhuVfKaAaJfRhMnOaLMK7KSI+gc4IzEZnXs6+P4i7ibWTXSTU1Fs+Z@vger.kernel.org X-Gm-Message-State: AOJu0YznfkqO8qkNEjSWw8pQ11qcVgEkBYbDQl/916ZryjXXwYDmTmyW 86jrHMJeTThNBwD8n0aKsUXybjl4hkwT+6I4A1rn5Z9cvvtMnre8u8HsInlK5A== X-Gm-Gg: ASbGncvVXq4HB9+4h0Pgqa21mVV4BGE61H3vEU/bfsdQrXO7x5BJ3R5tINJUEXJK9z0 fcLNmhVtUTL/Q6MFcR1Aj6/RU0two6NBYEAC0amwBWw6DxyTEGOPUMFgYcsZGmGKykOI/FXguXc jG2crlKfEW67bIDR9F2+JiUz8b0JQ0OaLhyqqDUtzueGJvIE4ODy93YWKCgxrBMGIS9YKBeU170 P9GN/sxMw+Eu5AjtN8V5DRgR9cYhl+ChIp6yc6zryD3VGn813BiW6VdClh4LaeW9Q1VKw9Hjjw7 +ByiHnptLumWmYqVUAbqfSxKnoxc5L2LZY2VTjVQGxZ2RrXr7EnC4QHreJowuvwq X-Google-Smtp-Source: AGHT+IE86EKMksqdrSTrjdwcwtxQBLt3kKhK3FPtOHFNpO6HlR6OunsYgQr09TKPN0G8jkm2FfYzRQ== X-Received: by 2002:a17:907:60d6:b0:ade:7512:d9ba with SMTP id a640c23a62f3a-adec56499bdmr274510066b.26.1749814322614; Fri, 13 Jun 2025 04:32:02 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:73::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-adec815992bsm116199566b.13.2025.06.13.04.32.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 Jun 2025 04:32:02 -0700 (PDT) From: Breno Leitao Date: Fri, 13 Jun 2025 04:31:37 -0700 Subject: [PATCH net-next v3 8/8] selftests: net: add netconsole test for cmdline configuration Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250613-rework-v3-8-0752bf2e6912@debian.org> References: <20250613-rework-v3-0-0752bf2e6912@debian.org> In-Reply-To: <20250613-rework-v3-0-0752bf2e6912@debian.org> To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Andrew Lunn , Shuah Khan Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Breno Leitao , gustavold@gmail.com X-Mailer: b4 0.15-dev-42535 X-Developer-Signature: v=1; a=openpgp-sha256; l=5920; i=leitao@debian.org; h=from:subject:message-id; bh=5v/1hL/ALMXFWvwHghT7FERfuc6HtTVh0PFSKcLiZac=; b=owEBbQKS/ZANAwAIATWjk5/8eHdtAcsmYgBoTAwl9aFDYw33vVuP4gISRyabn1e94uoNoqrLK mHPhWbPNQ6JAjMEAAEIAB0WIQSshTmm6PRnAspKQ5s1o5Of/Hh3bQUCaEwMJQAKCRA1o5Of/Hh3 bZgAD/9vTsG+hAxU5w8AYPcmQleIqYKpT8hxQWBTTMlYIP5YkqTKI5qF+6wX3a912fK/RG9F4rS nNnVItg8wauR6g1ryk/juX1MaD87Yj7QSTZ5JN34Bep23rR2KCwbRDQUpI1t8cZ98d4TbQnLyRo fIUakeG+tJs8MaDBEQaGEsMIk4B5EHE2CoCtJQbPIfOrf684V9G3uWhHuxnPxGZwFWOt8esC5OF 5GXdXdHS+yn2Wv0pKYHG5MV/9KHWbhuvdJx+RRp6+V0p4JaK3MTHh5A3KyWr/NjFn36h/rpjloc kKw6mWJGoIUtkF8OlO9fGROrMtcWV9gJ7yw4VQu0qR0b4MlYQXecsNmLRtyVpj5tNwzJuurvjeG dwfhTiASM2tlzllOawlCEYMs3modrThP4T3JjDZ/RLqIvt+WWIuevKilIj2RHl5kmCzOYQCioGb haW2PUZXinGnhTHnESt5cDB4fh4Dwnge2mME7xV3peBkRuJxckJkTCAnbeUCtEJEK45VdY3BWJ9 qhbJzel0eOQ5NZ8e6AYXCrbdjGE3CYlDrpbO6khjVLANi459/a/Slt+6tmdg0JYmGcDAmdkRm16 gJVcXFedLBXGcCu9NwtSOSbbDxtHelBnSdhrnUV9A7bweUGqZqBWkjc7FINRS5XWr6DlZPFsFY/ jUry8x3ymSymRhg== X-Developer-Key: i=leitao@debian.org; a=openpgp; fpr=AC8539A6E8F46702CA4A439B35A3939FFC78776D Add a new selftest to verify netconsole module loading with command line arguments. This test exercises the init_netconsole() path and validates proper parsing of the netconsole= parameter format. The test: - Loads netconsole module with cmdline configuration instead of dynamic reconfiguration - Validates message transmission through the configured target - Adds helper functions for cmdline string generation and module validation This complements existing netconsole selftests by covering the module initialization code path that processes boot-time parameters. This test is useful to test issues like the one described in [1]. Link: https://lore.kernel.org/netdev/Z36TlACdNMwFD7wv@dev-ushankar.dev.purestorage.com/ [1] Signed-off-by: Breno Leitao --- tools/testing/selftests/drivers/net/Makefile | 1 + .../selftests/drivers/net/lib/sh/lib_netcons.sh | 39 +++++++++++++--- .../selftests/drivers/net/netcons_cmdline.sh | 52 ++++++++++++++++++++++ 3 files changed, 86 insertions(+), 6 deletions(-) diff --git a/tools/testing/selftests/drivers/net/Makefile b/tools/testing/selftests/drivers/net/Makefile index be780bcb73a3b..bd309b2d39095 100644 --- a/tools/testing/selftests/drivers/net/Makefile +++ b/tools/testing/selftests/drivers/net/Makefile @@ -12,6 +12,7 @@ TEST_GEN_FILES := \ TEST_PROGS := \ napi_id.py \ netcons_basic.sh \ + netcons_cmdline.sh \ netcons_fragmented_msg.sh \ netcons_overflow.sh \ netcons_sysdata.sh \ diff --git a/tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh b/tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh index 598279139a6e5..3fcf85a345969 100644 --- a/tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh +++ b/tools/testing/selftests/drivers/net/lib/sh/lib_netcons.sh @@ -121,6 +121,17 @@ function create_dynamic_target() { echo 1 > "${NETCONS_PATH}"/enabled } +# Generate the command line argument for netconsole following: +# netconsole=[+][src-port]@[src-ip]/[],[tgt-port]@/[tgt-macaddr] +function create_cmdline_str() { + DSTMAC=$(ip netns exec "${NAMESPACE}" \ + ip link show "${DSTIF}" | awk '/ether/ {print $2}') + SRCPORT="1514" + TGTPORT="6666" + + echo "netconsole=\"+${SRCPORT}@${SRCIP}/${SRCIF},${TGTPORT}@${DSTIP}/${DSTMAC}\"" +} + # Do not append the release to the header of the message function disable_release_append() { echo 0 > "${NETCONS_PATH}"/enabled @@ -173,13 +184,9 @@ function listen_port_and_save_to() { socat UDP-LISTEN:"${PORT}",fork "${OUTPUT}" } -function validate_result() { +# Only validate that the message arrived properly +function validate_msg() { local TMPFILENAME="$1" - local FORMAT=${2:-"extended"} - - # TMPFILENAME will contain something like: - # 6.11.1-0_fbk0_rc13_509_g30d75cea12f7,13,1822,115075213798,-;netconsole selftest: netcons_gtJHM - # key=value # Check if the file exists if [ ! -f "$TMPFILENAME" ]; then @@ -192,6 +199,17 @@ function validate_result() { cat "${TMPFILENAME}" >&2 exit "${ksft_fail}" fi +} + +# Validate the message and userdata +function validate_result() { + local TMPFILENAME="$1" + + # TMPFILENAME will contain something like: + # 6.11.1-0_fbk0_rc13_509_g30d75cea12f7,13,1822,115075213798,-;netconsole selftest: netcons_gtJHM + # key=value + + validate_msg "${TMPFILENAME}" # userdata is not supported on basic format target, # thus, do not validate it. @@ -267,3 +285,12 @@ function pkill_socat() { pkill -f "${PROCESS_NAME}" set -e } + +# Check if netconsole was compiled as a module, otherwise exit +function check_netconsole_module() { + if modinfo netconsole | grep filename: | grep -q builtin + then + echo "SKIP: netconsole should be compiled as a module" >&2 + exit "${ksft_skip}" + fi +} diff --git a/tools/testing/selftests/drivers/net/netcons_cmdline.sh b/tools/testing/selftests/drivers/net/netcons_cmdline.sh new file mode 100755 index 0000000000000..ad2fb8b1c4632 --- /dev/null +++ b/tools/testing/selftests/drivers/net/netcons_cmdline.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env bash +# SPDX-License-Identifier: GPL-2.0 + +# This is a selftest to test cmdline arguments on netconsole. +# It exercises loading of netconsole from cmdline instead of the dynamic +# reconfiguration. This includes parsing the long netconsole= line and all the +# flow through init_netconsole(). +# +# Author: Breno Leitao + +set -euo pipefail + +SCRIPTDIR=$(dirname "$(readlink -e "${BASH_SOURCE[0]}")") + +source "${SCRIPTDIR}"/lib/sh/lib_netcons.sh + +check_netconsole_module + +modprobe netdevsim 2> /dev/null || true +rmmod netconsole 2> /dev/null || true + +# The content of kmsg will be save to the following file +OUTPUT_FILE="/tmp/${TARGET}" + +# Check for basic system dependency and exit if not found +# check_for_dependencies +# Set current loglevel to KERN_INFO(6), and default to KERN_NOTICE(5) +echo "6 5" > /proc/sys/kernel/printk +# Remove the namespace and network interfaces +trap do_cleanup EXIT +# Create one namespace and two interfaces +set_network +# Create the command line for netconsole, with the configuration from the +# function above +CMDLINE="$(create_cmdline_str)" + +# Load the module, with the cmdline set +modprobe netconsole "${CMDLINE}" + +# Listed for netconsole port inside the namespace and destination interface +listen_port_and_save_to "${OUTPUT_FILE}" & +# Wait for socat to start and listen to the port. +wait_local_port_listen "${NAMESPACE}" "${PORT}" udp +# Send the message +echo "${MSG}: ${TARGET}" > /dev/kmsg +# Wait until socat saves the file to disk +busywait "${BUSYWAIT_TIMEOUT}" test -s "${OUTPUT_FILE}" +# Make sure the message was received in the dst part +# and exit +validate_msg "${OUTPUT_FILE}" + +exit "${ksft_pass}"