From patchwork Wed Jan 24 17:46:59 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wood X-Patchwork-Id: 191698 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:2553:b0:103:945f:af90 with SMTP id p19csp1180380dyi; Wed, 24 Jan 2024 10:35:06 -0800 (PST) X-Google-Smtp-Source: AGHT+IFs1x3OOsgXw8srnX+EDldfN9Hr+wXZDX1lh5sn/Qg3dkWEEBUn/4eQJPBGvnr77qEakbWI X-Received: by 2002:a17:902:eb4b:b0:1d7:271c:2052 with SMTP id i11-20020a170902eb4b00b001d7271c2052mr1063143pli.138.1706121306630; Wed, 24 Jan 2024 10:35:06 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706121306; cv=pass; d=google.com; s=arc-20160816; b=Z8c6+eKEmNSbgK/jQzmHgNXz305+t2im0MwXI517DI1hXl3/n4w6fEVwQwTKKFOmLl L7AodYMvIAh0pJyYV1ww30+Zh8LSfMzHSGACXuEMZKyhqfrdJTDKwccswjnvkfgAyHZf y3QvjuaS3L+eRLxnq7MfmXoapVrQWFgtty+Ozq21WAHAGjBISlLpjc2RQTcF2YLcNW9U /VfBLTbl7qW9EkKFVhmBaKP2faHkiD9UpMgGXmPPjDXlZXAlQhDEnbaaeAAlIS4LTODc k3jynbff/v+Qfc46o9kTqoXq1FmzblM1hkELmRDr40fhJxMzoIVzA/WekGqDqvd0q7kw VKZg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=5a7ZVpYjt4glIMRdLh4WlPExoPNat5beHZOUQY5BsC8=; fh=+EB6oBnXtBrxaPMIm1rb1kOyvjkddCLSgL4/UeSWQvM=; b=DUgzwuiaR2dKEK/Lsz5pfWwvkCKaJYPOZNGudLldwxP7jXnD8HVkPZ8eW1HFEvlF// 1WqTG3Z7LO1kXIaOkrPsXHYogkloIHDx09eZWdjCz2AveoGtB7a2rgNZ2bhwRwNKWAHf i+1sM0YdC7VlhQDMraBYnWdBeV04ugb3peL843D3a95lfjSRvRitbJpAmLgamUR265Xv w/wJjiUGrTrYhDAiN270ar5qP8efpu5mhj+3xiMDu1suayJTNnJknUAitPx8uVE4YOdM knVcsKrKtX+hHxKgy4PdEGoUhGkAvW0JE6y6K/fhcWBpjLxT9Ff/XuL/V962b6WaNZj+ jp/Q== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=gGVqIQur; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-37456-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-37456-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [147.75.48.161]) by mx.google.com with ESMTPS id x14-20020a170902820e00b001d7852b99adsi1365161pln.168.2024.01.24.10.35.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 10:35:06 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-37456-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) client-ip=147.75.48.161; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=gGVqIQur; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-37456-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-37456-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id 4DEE5B304FF for ; Wed, 24 Jan 2024 17:48:09 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id F40DB129A8E; Wed, 24 Jan 2024 17:47:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="gGVqIQur" Received: from mail-pf1-f175.google.com (mail-pf1-f175.google.com [209.85.210.175]) (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 CC8D68615D; Wed, 24 Jan 2024 17:47:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706118437; cv=none; b=HP5k+GwkqWqV3C8yYTzIqe4cXcECY1AUoL3Ce45IwjvlJeGQcRL9NChxF2buMYRfdFfaNznSr801RvqayDXivv+Y06WZWriN2iQzfJ3CWheiCHhfn4Dx+0SZ3tNLuFAnSUTy9Tc+MGdL7lRPW8YJkZlXxKicb8HJGwSavkps/8c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706118437; c=relaxed/simple; bh=s3tKx9YDYT51+QXp1CdeWhCE59bgmZCtnv1eFlCrWyA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UqcKer7nXnKJ2SQlY9uZHOj+4RRgganNot1FvqJZ5xTognlQ4XWOW7cidroklDEA3wqTnTWhdgIIIXTMsSlqWiCvbbexwqU2URTai68RqCc+2sd80v3lhkwkX36AeH/Y6Hj8a0fUBISXTzMsXDpPGJ5hKn03l7XXURr5jJwSYTs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=gGVqIQur; arc=none smtp.client-ip=209.85.210.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pf1-f175.google.com with SMTP id d2e1a72fcca58-6dd7b525cd6so1636913b3a.2; Wed, 24 Jan 2024 09:47:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706118435; x=1706723235; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5a7ZVpYjt4glIMRdLh4WlPExoPNat5beHZOUQY5BsC8=; b=gGVqIQurEaMo3tLoJeZrqMMO0q7AatnxmBmqh+1djVTSm2bm60kLE/LMm5eDbb6ngw dPZ3ddh95LSC9YPDGZ+xFWDQb/7r5bTXtQRF+K+BpTivCl16EsBGyoGJvPHC69Dp/UJ+ HoSb+7uwc8bI6ZBcdN/gf8aykBG/FK0WZXrRhqhhUdpPZXUtSjflU4S+7cZWtGcwB13n NM3Hi9ykeQoDAeE1DYKiDuQtwZaxyIBNb464xAkCqEUwHOQRlHUTPyNd7Vxh+0B46zzc 7l0jHrNKncPfmIOpdt6AlpakRbwHp9LwUnTYPaOaZOPVUowgUXNHzMWYWOWAXb/2nDPD +Kqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706118435; x=1706723235; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5a7ZVpYjt4glIMRdLh4WlPExoPNat5beHZOUQY5BsC8=; b=DLSJLD3n3ePYiKa8lrTDqgX9JJepVUvIDaXPwFT9d0xe7p8w5jdGUyuPLkV2mWXmXb ui9rECgyH2+2I7ojaon1+eY6IlndjlwI0Sge7huCguUjH7uJ/V6PUkNGzEuHnVKekmy4 3SmjjXAHf+b9fPUt9iKXqMXM5dEs9KDOq46pkCO5Q8rBzdFqSgsDd56mErAUVfM2iczu CEXJrMjvpcVwMw6P/530XFhxaXKRTM+2XRLSR4P5ND4FaTExv4L6MBOuaBNkkf3vfF9e xyatO5XwrNyiMnda3aoD3lu/nEY0qG9sXGfgEFXlR2I8q1J56mHLz5sRwE/bZduowze4 XlWg== X-Gm-Message-State: AOJu0YzzBDE53WdJ7vl11GLskOUwYMmivrikYno7n3O33rYBgvsJC0Dw ojGxbS4Quck+49AXn7Oa8okm9HXVzyBxpimuIaUdwfNCaoZxhPo2xuucJF4x X-Received: by 2002:a05:6a00:1d24:b0:6dd:c48c:4d8d with SMTP id a36-20020a056a001d2400b006ddc48c4d8dmr102079pfx.46.1706118435122; Wed, 24 Jan 2024 09:47:15 -0800 (PST) Received: from localhost ([2601:644:9380:8cd0::7fb4]) by smtp.gmail.com with ESMTPSA id y22-20020a62b516000000b006dbd2405882sm8401518pfe.148.2024.01.24.09.47.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 09:47:14 -0800 (PST) From: Matthew Wood To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: leitao@debian.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next v1 1/8] net: netconsole: cleanup formatting lints Date: Wed, 24 Jan 2024 09:46:59 -0800 Message-ID: <20240124174711.1906102-2-thepacketgeek@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240124174711.1906102-1-thepacketgeek@gmail.com> References: <20240124174711.1906102-1-thepacketgeek@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1788997855070275644 X-GMAIL-MSGID: 1788997855070275644 Address checkpatch lint suggestions in preparation for later changes Signed-off-by: Matthew Wood --- drivers/net/netconsole.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 6e14ba5e06c8..93fc3b509706 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -49,7 +49,7 @@ static char config[MAX_PARAM_LENGTH]; module_param_string(netconsole, config, MAX_PARAM_LENGTH, 0); MODULE_PARM_DESC(netconsole, " netconsole=[src-port]@[src-ip]/[dev],[tgt-port]@/[tgt-macaddr]"); -static bool oops_only = false; +static bool oops_only; module_param(oops_only, bool, 0600); MODULE_PARM_DESC(oops_only, "Only log oops messages"); @@ -501,6 +501,7 @@ static ssize_t local_ip_store(struct config_item *item, const char *buf, if (strnchr(buf, count, ':')) { const char *end; + if (in6_pton(buf, count, nt->np.local_ip.in6.s6_addr, -1, &end) > 0) { if (*end && *end != '\n') { pr_err("invalid IPv6 address at: <%c>\n", *end); @@ -510,9 +511,9 @@ static ssize_t local_ip_store(struct config_item *item, const char *buf, } else goto out_unlock; } else { - if (!nt->np.ipv6) { + if (!nt->np.ipv6) nt->np.local_ip.ip = in_aton(buf); - } else + else goto out_unlock; } @@ -537,6 +538,7 @@ static ssize_t remote_ip_store(struct config_item *item, const char *buf, if (strnchr(buf, count, ':')) { const char *end; + if (in6_pton(buf, count, nt->np.remote_ip.in6.s6_addr, -1, &end) > 0) { if (*end && *end != '\n') { pr_err("invalid IPv6 address at: <%c>\n", *end); @@ -546,9 +548,9 @@ static ssize_t remote_ip_store(struct config_item *item, const char *buf, } else goto out_unlock; } else { - if (!nt->np.ipv6) { + if (!nt->np.ipv6) nt->np.remote_ip.ip = in_aton(buf); - } else + else goto out_unlock; } @@ -781,6 +783,7 @@ static int netconsole_netdev_event(struct notifier_block *this, spin_unlock_irqrestore(&target_list_lock, flags); if (stopped) { const char *msg = "had an event"; + switch (event) { case NETDEV_UNREGISTER: msg = "unregistered"; From patchwork Wed Jan 24 17:47:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wood X-Patchwork-Id: 191685 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:2553:b0:103:945f:af90 with SMTP id p19csp1152098dyi; Wed, 24 Jan 2024 09:50:30 -0800 (PST) X-Google-Smtp-Source: AGHT+IF+l1sQzvIKBApLcs9kqoGK9xNWRNc9+DQ/s1E3jW3btl93LxpV0HSE9QVJoBEjHsac3IQO X-Received: by 2002:a17:902:b492:b0:1d5:472:7f35 with SMTP id y18-20020a170902b49200b001d504727f35mr1023732plr.99.1706118629890; Wed, 24 Jan 2024 09:50:29 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706118629; cv=pass; d=google.com; s=arc-20160816; b=kpNHFWPYIzRedVjQYy6oQbkGR4DJeR1oCxq/mwdz7eyuG/NaUNQXOr+UqSdZ8eLGgY py1eR+2Ae3avvWt9TqYhfrI8hcWA2GpMVda2md7pGUcbP5LASq0pBH6iP+8PZpMjr19y U4JuauAjfaWqtzg/CxGFbsNkazUwIxo2QN8PvXcOKZ0HTUz9sQ3MyJ3AmesQU7FslzwT bgd3z/9RiXD7EGCyd/PWX3gFTOAH61mT6fAp0UDTHuQcfieqKq33o9pQ8SbvU5YyQ5yZ i3VD5zMhkzyrJY1zKbSie82x9Te58wxj951JkrN8s89wswnUwK4PsMqhmM/fmBU1Kzl+ cw6g== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=g2riTuEepe/mUCMr3Pq4qIV5z/xG84DnFng4TZ3aCOM=; fh=+EB6oBnXtBrxaPMIm1rb1kOyvjkddCLSgL4/UeSWQvM=; b=XCUpM0zMdbHy/uAVsNDEAQ2zL78o+/dFDj4ESe1CdNOhqIOAOJOE6u7CfWM+PBmjwT qMhNVYx/Yi9NInan0/nbQyV19Eh9WtMufKPIIb287VtGsfSfo3EYPkX6uw44ZWr3L+qQ wu4P6CA5eN/eOKLKwrPCltwqLbd7mldSmQU6v85IyTj3pAGqhLCdgoAKtAhVYfSZeRZM yevYIjR+2dddY0Y5XLpsjLhHAdDHM1yFMTZ4nY8uC46wW7ihd05EZFCHG6p/1Pe6mKdl V66aqpBTHi+BNcBEUu5HXoGCTbEBzof4Rcv7Ymy/2SlgHr9omXZEnlUuqI4icCYWWjft Hn3w== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b="Ov/jQv3V"; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-37457-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-37457-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id c5-20020a170902d48500b001d76a52b550si3774789plg.311.2024.01.24.09.50.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 09:50:29 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-37457-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b="Ov/jQv3V"; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-37457-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-37457-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 347BD28BB1F for ; Wed, 24 Jan 2024 17:48:57 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D4E6912AAC6; Wed, 24 Jan 2024 17:47:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Ov/jQv3V" Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (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 85DCB129A75; Wed, 24 Jan 2024 17:47:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706118440; cv=none; b=DIVmdhqBjw3gMYb9bg/4NsaMblum2qhHcpMczN2ZKqNi2npBY6N9G1236184nt/0wGW1IvE3fTU91qE9NnwmnGJkgd+VyY6TjKrCvAJUF9AUswTUgkYzDHixSheiDUlT9URrewqaLsi0MvXRsqcllVdcP/hZLW2pSSHOHGzEWbc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706118440; c=relaxed/simple; bh=TkD/7afEOAUYVVvFi9uEo60vgXmIeQpiZhHvrjTnZfU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dfsBoKMCeaVmNZ8zjem07qk4yba2XNBpwkmo19CrpIEVgv6R6tyywYTbzLjt1hC9qQaoborA+1vJlZg+D4COk/zMjSKFEUAicM3NEp7VyOGkeviG+bSmpIzxfNrwzYhWkCrD1ze8roXyV7RBwK26ep5GoXomxhGAYXA8lpXZdgg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Ov/jQv3V; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-1d731314e67so20452715ad.1; Wed, 24 Jan 2024 09:47:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706118438; x=1706723238; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=g2riTuEepe/mUCMr3Pq4qIV5z/xG84DnFng4TZ3aCOM=; b=Ov/jQv3VpXNL41tRtMMKv8I2hDUNg7UMPVVFYF7wyFqOAYMfoaNQZG0L0hATqta9S9 k9wYPYr0q5yoUkruVXZ7FXcCQKGP6EEtCfdgB5NBq45WTTJ8dZOEHXbWDDqwVC/tlD1/ dwgCxGv0VQSdifBa3126hEsytCYCUROknGCgc/zsdWOWzyu6N7g7+CJzecxTPVM1Luzq 3auv1sgiCenVorlVX8doPkB9wqN/6yYimptmpmUIEuGQoM/yKV2povBpQrgtuh+7m0Vo f/ZmLTCAwxIpyYt+jZIJZsylhi0AXd6XnWgov8ZasQscEgFtA0+FFJ4NkqbCbVkbudpZ D3xQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706118438; x=1706723238; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=g2riTuEepe/mUCMr3Pq4qIV5z/xG84DnFng4TZ3aCOM=; b=YAYCE1Bh0IVTWYxaRAgsG3HxydYCrRUc1Z7InjjJwNcrgfBZeI5cKZIgXIMcfm70t2 8nAaxmQBIN2fiNV5EK1E5dEBrRN5jSYho9+h8FqmVB3lqCH2n1ICm8Ka1DRnv4D/HzE2 lwAZNVhnJnn6FhQ58OdE6NutMXzXms4fzOdQnfh3rZ8dgeCArq8QLJHuxo6NIgOeS54c nC6cHO6vi/QG0kyedoHaHYkKxz/3kgGL0Lsi9i7Q7BOp8OSNQGdoUPVRuSxUOC9NxFN0 FCcPQhIRVx/WY4jKLHpmPKxFhZierv2Lq2LE90DMIHiefaCSUwffSyZoCEiTkTQhXRS1 TzWg== X-Gm-Message-State: AOJu0YzKkXjoDw3DHpe4KVHSy2hyqZFNv7Hf0BvZC/vb457zg7Fd2mTQ aXnsVgYcjw7+Sjg9jcuqLl83m2iEI1H0mqIOc4TdFcKrrJho0op5 X-Received: by 2002:a17:902:d48e:b0:1d4:b37a:e0a8 with SMTP id c14-20020a170902d48e00b001d4b37ae0a8mr993977plg.118.1706118437795; Wed, 24 Jan 2024 09:47:17 -0800 (PST) Received: from localhost ([2601:644:9380:8cd0::7fb4]) by smtp.gmail.com with ESMTPSA id p7-20020a170902b08700b001d733c88646sm6965518plr.216.2024.01.24.09.47.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 09:47:17 -0800 (PST) From: Matthew Wood To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: leitao@debian.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next v1 2/8] net: netconsole: move netconsole_target config_item to config_group Date: Wed, 24 Jan 2024 09:47:00 -0800 Message-ID: <20240124174711.1906102-3-thepacketgeek@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240124174711.1906102-1-thepacketgeek@gmail.com> References: <20240124174711.1906102-1-thepacketgeek@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1788995048329474459 X-GMAIL-MSGID: 1788995048329474459 In order to support a nested userdata config_group in later patches, use a config_group for netconsole_target instead of a config_item. It's a no-op functionality-wise, since config_group maintains all features of a config_item via the cg_item member. Signed-off-by: Matthew Wood --- drivers/net/netconsole.c | 59 ++++++++++++++++++++++------------------ 1 file changed, 32 insertions(+), 27 deletions(-) diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 93fc3b509706..5e720bcf7102 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -102,7 +102,7 @@ static struct console netconsole_ext; struct netconsole_target { struct list_head list; #ifdef CONFIG_NETCONSOLE_DYNAMIC - struct config_item item; + struct config_group group; #endif bool enabled; bool extended; @@ -134,14 +134,14 @@ static void __exit dynamic_netconsole_exit(void) */ static void netconsole_target_get(struct netconsole_target *nt) { - if (config_item_name(&nt->item)) - config_item_get(&nt->item); + if (config_item_name(&nt->group.cg_item)) + config_group_get(&nt->group); } static void netconsole_target_put(struct netconsole_target *nt) { - if (config_item_name(&nt->item)) - config_item_put(&nt->item); + if (config_item_name(&nt->group.cg_item)) + config_group_put(&nt->group); } #else /* !CONFIG_NETCONSOLE_DYNAMIC */ @@ -221,9 +221,13 @@ static struct netconsole_target *alloc_and_init(void) static struct netconsole_target *to_target(struct config_item *item) { - return item ? - container_of(item, struct netconsole_target, item) : - NULL; + struct config_group *cfg_group; + + cfg_group = to_config_group(item); + if (!cfg_group) + return NULL; + return container_of(to_config_group(item), + struct netconsole_target, group); } /* @@ -370,7 +374,7 @@ static ssize_t release_store(struct config_item *item, const char *buf, mutex_lock(&dynamic_netconsole_mutex); if (nt->enabled) { pr_err("target (%s) is enabled, disable to update parameters\n", - config_item_name(&nt->item)); + config_item_name(&nt->group.cg_item)); err = -EINVAL; goto out_unlock; } @@ -398,7 +402,7 @@ static ssize_t extended_store(struct config_item *item, const char *buf, mutex_lock(&dynamic_netconsole_mutex); if (nt->enabled) { pr_err("target (%s) is enabled, disable to update parameters\n", - config_item_name(&nt->item)); + config_item_name(&nt->group.cg_item)); err = -EINVAL; goto out_unlock; } @@ -425,7 +429,7 @@ static ssize_t dev_name_store(struct config_item *item, const char *buf, mutex_lock(&dynamic_netconsole_mutex); if (nt->enabled) { pr_err("target (%s) is enabled, disable to update parameters\n", - config_item_name(&nt->item)); + config_item_name(&nt->group.cg_item)); mutex_unlock(&dynamic_netconsole_mutex); return -EINVAL; } @@ -450,7 +454,7 @@ static ssize_t local_port_store(struct config_item *item, const char *buf, mutex_lock(&dynamic_netconsole_mutex); if (nt->enabled) { pr_err("target (%s) is enabled, disable to update parameters\n", - config_item_name(&nt->item)); + config_item_name(&nt->group.cg_item)); goto out_unlock; } @@ -473,7 +477,7 @@ static ssize_t remote_port_store(struct config_item *item, mutex_lock(&dynamic_netconsole_mutex); if (nt->enabled) { pr_err("target (%s) is enabled, disable to update parameters\n", - config_item_name(&nt->item)); + config_item_name(&nt->group.cg_item)); goto out_unlock; } @@ -495,7 +499,7 @@ static ssize_t local_ip_store(struct config_item *item, const char *buf, mutex_lock(&dynamic_netconsole_mutex); if (nt->enabled) { pr_err("target (%s) is enabled, disable to update parameters\n", - config_item_name(&nt->item)); + config_item_name(&nt->group.cg_item)); goto out_unlock; } @@ -532,7 +536,7 @@ static ssize_t remote_ip_store(struct config_item *item, const char *buf, mutex_lock(&dynamic_netconsole_mutex); if (nt->enabled) { pr_err("target (%s) is enabled, disable to update parameters\n", - config_item_name(&nt->item)); + config_item_name(&nt->group.cg_item)); goto out_unlock; } @@ -570,7 +574,7 @@ static ssize_t remote_mac_store(struct config_item *item, const char *buf, mutex_lock(&dynamic_netconsole_mutex); if (nt->enabled) { pr_err("target (%s) is enabled, disable to update parameters\n", - config_item_name(&nt->item)); + config_item_name(&nt->group.cg_item)); goto out_unlock; } @@ -638,7 +642,7 @@ static struct netconsole_target *find_cmdline_target(const char *name) spin_lock_irqsave(&target_list_lock, flags); list_for_each_entry(nt, &target_list, list) { - if (!strcmp(nt->item.ci_name, name)) { + if (!strcmp(nt->group.cg_item.ci_name, name)) { ret = nt; break; } @@ -652,8 +656,8 @@ static struct netconsole_target *find_cmdline_target(const char *name) * Group operations and type for netconsole_subsys. */ -static struct config_item *make_netconsole_target(struct config_group *group, - const char *name) +static struct config_group *make_netconsole_target(struct config_group *group, + const char *name) { struct netconsole_target *nt; unsigned long flags; @@ -665,8 +669,9 @@ static struct config_item *make_netconsole_target(struct config_group *group, if (!strncmp(name, NETCONSOLE_PARAM_TARGET_PREFIX, strlen(NETCONSOLE_PARAM_TARGET_PREFIX))) { nt = find_cmdline_target(name); - if (nt) - return &nt->item; + if (nt) { + return &nt->group; + } } nt = alloc_and_init(); @@ -674,14 +679,14 @@ static struct config_item *make_netconsole_target(struct config_group *group, return ERR_PTR(-ENOMEM); /* Initialize the config_item member */ - config_item_init_type_name(&nt->item, name, &netconsole_target_type); + config_group_init_type_name(&nt->group, name, &netconsole_target_type); /* Adding, but it is disabled */ spin_lock_irqsave(&target_list_lock, flags); list_add(&nt->list, &target_list); spin_unlock_irqrestore(&target_list_lock, flags); - return &nt->item; + return &nt->group; } static void drop_netconsole_target(struct config_group *group, @@ -701,11 +706,11 @@ static void drop_netconsole_target(struct config_group *group, if (nt->enabled) netpoll_cleanup(&nt->np); - config_item_put(&nt->item); + config_item_put(&nt->group.cg_item); } static struct configfs_group_operations netconsole_subsys_group_ops = { - .make_item = make_netconsole_target, + .make_group = make_netconsole_target, .drop_item = drop_netconsole_target, }; @@ -731,8 +736,8 @@ static void populate_configfs_item(struct netconsole_target *nt, snprintf(target_name, sizeof(target_name), "%s%d", NETCONSOLE_PARAM_TARGET_PREFIX, cmdline_count); - config_item_init_type_name(&nt->item, target_name, - &netconsole_target_type); + config_group_init_type_name(&nt->group, target_name, + &netconsole_target_type); } #endif /* CONFIG_NETCONSOLE_DYNAMIC */ From patchwork Wed Jan 24 17:47:01 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wood X-Patchwork-Id: 191686 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:2553:b0:103:945f:af90 with SMTP id p19csp1152126dyi; Wed, 24 Jan 2024 09:50:33 -0800 (PST) X-Google-Smtp-Source: AGHT+IHT7FmiTO3Md0MfOrMFRxrU9iLtsuRRrHQGYfF4qh4RlW4NVKYfzGvPt2zx+T79fV9y7uJ6 X-Received: by 2002:a17:902:b08d:b0:1d4:e6d0:34db with SMTP id p13-20020a170902b08d00b001d4e6d034dbmr10482plr.19.1706118632988; Wed, 24 Jan 2024 09:50:32 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706118632; cv=pass; d=google.com; s=arc-20160816; b=oCwxjDdaDQT29YxA/BCVpqePLO1zE552vKmzOZfVFDPemfWna4UQfYUVpeFaufDBLv TfvVVFDh27ARyMJX74ZdqrzL5PJ/rVLCoIaT1vLheiW2s4Hyv8C5UUgjAhbTZKqaXZzN 6uvyjlJETlSdcszwwh76PCtBZdkv/qhMJxtyrLdhcOu24NgeSYvyKVY0jQrgLUfB2X3u KM0d+CLq6lFcPW2+I77XPdMtakFA/jgtzMZ9YB3BvazApdJCFhwbd7r7SWV7XkdMJCsG /DS0elHarNOzLDHA+RuV1Rui4IqxUJqIcN8xCKw1om6Q95dWmmb9wPkRSB1vzunBOUoL 8FWQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=v77jF51yTqnOl3/nOY82fJC7PIH7X2Y2RU7dU3D2hPY=; fh=hqHu0NgCdv//DzQxyVtNZHxZaYencauOntHWP9zRS5U=; b=SmNxXriY2c0nCqcd8vMEcsnXc1YIJA0yrMsZTmkYMi6R/frzMKIRcTrKM5W2g4fAY2 aySYQgjd5zO36XKtDc0uIJtodtLMeNXiD70QrnyBuBxefYHyxRKONTLlEmMtSRo/DWMS hkOlFw7p5TB/i4/C4BzmDNBzMpXvLhOtDLgBMgXc/ptUddxBRQN+eFFCXcN2Og4KBeRe Aew/fZhbPxo282nNLremMV/x7jP1P75kLAHSmIqD1qf631m2GEuTmdknp/lujdzZg26S JTcufJJ3r5rNs9VNh6S47zigCOKZBBTp+NGPMVl9vJvuZL+z10y8VMBHRLHKis57jSIq lRgw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=fMbozi4L; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-37458-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-37458-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id c1-20020a63d501000000b005cde42fcb11si12135227pgg.707.2024.01.24.09.50.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 09:50:32 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-37458-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=fMbozi4L; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-37458-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-37458-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id D7B4B28BE39 for ; Wed, 24 Jan 2024 17:49:03 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 8670412AAD3; Wed, 24 Jan 2024 17:47:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="fMbozi4L" Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (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 7AE6312A143; Wed, 24 Jan 2024 17:47:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706118441; cv=none; b=Eafep/BjPLLrno/4r96roFaKUTikmN49bGeXAJfSzIS+LxN0tq6/dXmgmUcg9NKLS1zDmQmpe2Dwy655Bx9thaOn2pamF+cwtj8bHF1tWJghb7E/eG5mIw/3ZgHFNQaC1yPrlMUrkrPpxnbQ/LUknsgjrNkIq3vWIOyHYcXYhoA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706118441; c=relaxed/simple; bh=/YjWyaqPnZDamee11YunAkZPyfaZp6y28fWxTHZ2aeY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QFlonY8OSZJV7yMCNrEhgClVknfhV4FQbU5pgdJjQu/TMlKuTBHzUeDE21dhBGxNtwDTo9ijyeHlEp0wygsOZNfgDAsH4rQRp/I81etgQwttrTSKLMBfQrd6SkmdN+PGK9F3P4zXyFkQ6iDhhfezRUOhQUZGUt1UDvL+01K5R9c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=fMbozi4L; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-1d75c97ea6aso23789975ad.1; Wed, 24 Jan 2024 09:47:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706118440; x=1706723240; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=v77jF51yTqnOl3/nOY82fJC7PIH7X2Y2RU7dU3D2hPY=; b=fMbozi4LrRQ6tGLocq9T/NXkTCc5QXqmI8C8PHgG0d9Qb9jls+tiFh88jXxepwNE90 83bb0Z6JjiB8x5TrfmKrB+YAYvXlHU8LNFECKZWd5AZ3B+Ipr+I8juKWy6W01t9TPLZK jyETS7AJhoenN+FpcKNy5N1iZnIosqu/uSO1b72PzwAwSJHXTaWD7qIzpmFZ7UdVWG+W KC+o2mtEFM4aM6//UUYjculak0m4sZZOS3gvE5qZAGV8WWcCWVv4gUFZ6a+6d6tVNA2G d78P7ZhH8giQNkQnKtFLaH6rNJgYGdi1JPAmuqmf+uklShc4UwgdUw92gx/og7dOJUOY 7bGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706118440; x=1706723240; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=v77jF51yTqnOl3/nOY82fJC7PIH7X2Y2RU7dU3D2hPY=; b=uhc9ldi7F5BPMYseWvHBurfKwQd/udmCZ9sI23MDbAYc8wsslk73rHl39hr8Fa7L/D j6jOu29cUOe7JZSmvF3g5CHBYP6nPoRllwlJnWxuwBpEo8Jhfj97qi565VAmhja1DPhy KcahE2p9eq0eL0/XfZX7czr8qH/AIzufKu60wdom9BpGIKtASQ4JVJcjVUwNW2zon8mi HWtuLsIA0aJMO3W7YoElwjIdc1xjuwQmDrK2KLNiXTZL8kflf0VbfjCf42mEBdM60/BD woefvJPIhZ5n+cLDrj7XQU5vZf/HuQbrt5CIbEs+jfNlSsnaxjdeh+9YfLsMAgYA2buO 0maA== X-Gm-Message-State: AOJu0Yz8T6Q61VE+XBc3fotVElZB/8Hfyq6i8ZpHzw6rU8AaSDJJ/ybR w8N3MJVAWNTFQV5SGyV+kBGpdG6E4Rf/QxMlnUahkgMQ2AGoq+hz X-Received: by 2002:a17:903:2452:b0:1d7:8570:e53 with SMTP id l18-20020a170903245200b001d785700e53mr8332pls.38.1706118439847; Wed, 24 Jan 2024 09:47:19 -0800 (PST) Received: from localhost ([2601:644:9380:8cd0::7fb4]) by smtp.gmail.com with ESMTPSA id d4-20020a170902c18400b001d71649bf9asm9415460pld.252.2024.01.24.09.47.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 09:47:19 -0800 (PST) From: Matthew Wood To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Christian Brauner Cc: leitao@debian.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next v1 3/8] net: netconsole: move newline trimming to function Date: Wed, 24 Jan 2024 09:47:01 -0800 Message-ID: <20240124174711.1906102-4-thepacketgeek@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240124174711.1906102-1-thepacketgeek@gmail.com> References: <20240124174711.1906102-1-thepacketgeek@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1788995052165080741 X-GMAIL-MSGID: 1788995052165080741 Move newline trimming logic from `dev_name_store()` to a new function (trim_newline()) for shared use in netconsole.c I was unable to find another useable version of this functionality that wasn't private to another driver (E.g. tools/testing/selftests/pidfd/pidfd_fdinfo_test.c) Signed-off-by: Matthew Wood --- drivers/net/netconsole.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 5e720bcf7102..586945e62210 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -230,6 +230,16 @@ static struct netconsole_target *to_target(struct config_item *item) struct netconsole_target, group); } +/* Get rid of possible trailing newline, returning the new length */ +static void trim_newline(char *s, size_t maxlen) +{ + size_t len; + + len = strnlen(s, maxlen); + if (s[len - 1] == '\n') + s[len - 1] = '\0'; +} + /* * Attribute operations for netconsole_target. */ @@ -424,7 +434,6 @@ static ssize_t dev_name_store(struct config_item *item, const char *buf, size_t count) { struct netconsole_target *nt = to_target(item); - size_t len; mutex_lock(&dynamic_netconsole_mutex); if (nt->enabled) { @@ -435,11 +444,7 @@ static ssize_t dev_name_store(struct config_item *item, const char *buf, } strscpy(nt->np.dev_name, buf, IFNAMSIZ); - - /* Get rid of possible trailing newline from echo(1) */ - len = strnlen(nt->np.dev_name, IFNAMSIZ); - if (nt->np.dev_name[len - 1] == '\n') - nt->np.dev_name[len - 1] = '\0'; + trim_newline(nt->np.dev_name, IFNAMSIZ); mutex_unlock(&dynamic_netconsole_mutex); return strnlen(buf, count); From patchwork Wed Jan 24 17:47:02 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wood X-Patchwork-Id: 191684 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:2553:b0:103:945f:af90 with SMTP id p19csp1151986dyi; Wed, 24 Jan 2024 09:50:13 -0800 (PST) X-Google-Smtp-Source: AGHT+IEZxS7C67uBV9WoNqDCbvMWmcl4w6THEHfnm0+GTZSERYVNphXYgh76Z6Sq3u1KgnnTbZCf X-Received: by 2002:ac2:4830:0:b0:510:b5d:ebfe with SMTP id 16-20020ac24830000000b005100b5debfemr1210235lft.124.1706118613573; Wed, 24 Jan 2024 09:50:13 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706118613; cv=pass; d=google.com; s=arc-20160816; b=d9bBzjkI9HMrRLWuMe7n2FdDKdfxkw5BdPpXKsdNwWXOaJo1mzedEnMC/mVcRy5dgX FY802z+527OIPo2MNeH33TVryce53LpohlNvkbXd0lXnJuY4lxu2cbDTuSDidJqxuN1o QX+y15yNtXQEZJO4kjGmmgcRaxnNdJY3Ov217XyjJfCaFGCjRtthBOAD7/zACEsLFE68 HTj5xUq2YkyrsK9TcaXP0EcXMQ7tlnSe6bscUjoDI2gO0hXhg/LjjGcdFMGzM4zdELvk l3du557vorbOeYlgTeQ9OT+dGMIvnPI1JabYm+/FSh1u397b3bA+P4v/cEHaBUkSPAa7 pBaA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=gneFCt4ceG2iUK09c51bLYD/2KQfSVJ2BvbrNzbdXrk=; fh=3uQAHc0NqngPtrB5YLPjrfJArntTgtKXo4NRJp5QtWs=; b=LTdbwlEqNuD30B3mmdkYgNw300+JOP6o68TfndADwZo7Sv2tMZ0Qxd6E+3AEZ2jtRb hpPU0pZzL0kmsiSnGgiOZsoLqOEAsyvFBN05qXc3iG7h+Ltj/Hrz7HLwJh6jkZzoLTv7 c7xWEEJV9SSFgBtoA48A8GJQzPBzl9SYkyqMFXGdWy5V762xJcxOyFU1Vk15TwTV5kBU T5HwNFF86nmaGpOWT4dR9wnh3B/AnZSvdOQlI9tPEEBP8XjRxt89XOJrDmkFtcqzI43o +yjCv70hn0MIGzvlnm2FLcP8EWv3RTA2g2szzh1mpcTrUoxk7Y35kbH1uvXIzlavngrg D16w== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=ABzXQkTJ; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-37459-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-37459-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id b11-20020a170906038b00b00a2361a30b82si94490eja.875.2024.01.24.09.50.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 09:50:13 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-37459-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=ABzXQkTJ; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-37459-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-37459-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 0B5081F22561 for ; Wed, 24 Jan 2024 17:50:13 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EB35A12BF05; Wed, 24 Jan 2024 17:47:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ABzXQkTJ" Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (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 8EE2812A16B; Wed, 24 Jan 2024 17:47:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706118445; cv=none; b=uEKe7QJl4Z/wjlkaQljKWMxZZtlP94KqKOsB8yzej9OB/ZR5f3TeKR6fq60WIKinp3LX7TkpkgF8TeNZOjkKqdY+G+6QzQ3/y/tJ+mIgbg26E9m8CG5/HmY13Fqi/a5RxlBzSQXYiqd7vziKvjY5qZGgvZcpwyUaLTRRB9n1wik= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706118445; c=relaxed/simple; bh=JUBz4HV56EeU4/nPAgND0SO1KSnQD6Dq6LeiFiNVnDw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Ia1PWMrhwcs8Lv8mDrX3j2PTLqQPPpw2ypuZsBa5tuMjIyi1r9xvjFt7vf2YGb1njdtdAJjJGCYUDKJ7G41Ya78dqH0VWpOq/+kyz0NHeGamTnFNltm4NGfWx17ytacLdgQAVqmbv5rVbJn/B4AVIeyNkELtWw/7SM4XpCqC5H0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ABzXQkTJ; arc=none smtp.client-ip=209.85.214.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-1d720c7fc04so33999175ad.2; Wed, 24 Jan 2024 09:47:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706118442; x=1706723242; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=gneFCt4ceG2iUK09c51bLYD/2KQfSVJ2BvbrNzbdXrk=; b=ABzXQkTJh2DWgIeRs7Kca4RYpIiAmZOkEgIfajPbQk3opGCN0tmWIludURmhuiWcgp eQDY8ptddLqmC/Ba2PQ5x4zcavAop6EgGBPdvYHKFD0bUCCfY/FQ78Kumwpj+Le1v2Ms VKpAbJfUt52Febv+GgzgPonuZitNpaiP/tmi2vIfJSamEoD7CZDa/Jk7o/VdlZq5BRqS 2lwUV2j4RSNU1y4enZuRwLVsppWjwfS993o+7emd7AZ3r+YfZqO452hY4ut5W9kjNLWq jkvHbIZ/he9Lgy6BMgav3QIkAG6M/g7W+sRDdAN9DOCTkMlLgjlSaoEntuqXr6j0u6jP KjWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706118442; x=1706723242; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gneFCt4ceG2iUK09c51bLYD/2KQfSVJ2BvbrNzbdXrk=; b=m1pQvVXuUBJTQA7LZM8Fp1vXF5AKfl4/XdBTXVzebanezxdBPPe9W6NDfZ+6/Xqief e46xU5cWWtgWuVFiNs9oO1pCaG88UZmarza/I5QLq+M9Qnk5vMk6tGHjvrxqSjoi2p0q iS0DQ3tyIo0WoL8+VeVFPwTqEyWmkx8eOoPVXbtK9qP9klMpw5OwVyPrVUrOA+kK+uxB px4ChpxrsvPHHu+3WTmBdaJ1hXQ+qtfVk8HRGyCrnKdGPu4Xd5HuQ7cv1HY59zvRIRY9 btRtndLfkzcbIuGfyO0HYy8ERbf1MjbWUttcgRjjFg8ZQJWJrB4jyqf0vnfvxOfJLBtf K9uw== X-Gm-Message-State: AOJu0YwIdDHk+fVeASmB3ZpAEKrqsJ1Q8TprH0DGmt7ZRyCSyGcdq7aw /n0KRTYbOqawRfwhabVXiv0Ff0GyZRugZq07cZmNrWxGUoaSMeab2mtn2W6C X-Received: by 2002:a17:903:41c2:b0:1d7:6c80:644f with SMTP id u2-20020a17090341c200b001d76c80644fmr1210450ple.9.1706118441767; Wed, 24 Jan 2024 09:47:21 -0800 (PST) Received: from localhost ([2601:644:9380:8cd0::7fb4]) by smtp.gmail.com with ESMTPSA id z22-20020a1709028f9600b001d6fbbdcb82sm10665544plo.134.2024.01.24.09.47.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 09:47:21 -0800 (PST) From: Matthew Wood To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Jonathan Corbet Cc: leitao@debian.org, netdev@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next v1 4/8] net: netconsole: add docs for appending netconsole user data Date: Wed, 24 Jan 2024 09:47:02 -0800 Message-ID: <20240124174711.1906102-5-thepacketgeek@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240124174711.1906102-1-thepacketgeek@gmail.com> References: <20240124174711.1906102-1-thepacketgeek@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1788995031403923800 X-GMAIL-MSGID: 1788995031403923800 Add a new User Data section to the netconsole docs to describe the appending of user data capability (for netconsole dynamic configuration) with usage and netconsole output examples. Co-developed-by: Breno Leitao Signed-off-by: Breno Leitao Signed-off-by: Matthew Wood --- Documentation/networking/netconsole.rst | 68 +++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/Documentation/networking/netconsole.rst b/Documentation/networking/netconsole.rst index 390730a74332..54f072f47921 100644 --- a/Documentation/networking/netconsole.rst +++ b/Documentation/networking/netconsole.rst @@ -15,6 +15,8 @@ Extended console support by Tejun Heo , May 1 2015 Release prepend support by Breno Leitao , Jul 7 2023 +Userdata append support by Matthew Wood , Jan 22 2024 + Please send bug reports to Matt Mackall Satyam Sharma , and Cong Wang @@ -171,6 +173,72 @@ You can modify these targets in runtime by creating the following targets:: cat cmdline1/remote_ip 10.0.0.3 +Append User Data +================ + +Custom user data can be appended to the end of messages with netconsole +dynamic configuration enabled. User data entries can be modified without +changing the "enabled" attribute of a target. + +Directories (keys) under `userdata` are limited to 54 character length, and +data in `userdata//value` are limited to 200 bytes:: + + cd /sys/kernel/config/netconsole && mkdir cmdline0 + cd cmdline0 + mkdir userdata/foo + echo bar > userdata/foo/value + mkdir userdata/qux + echo baz > userdata/qux/value + +Messages will now include this additional user data:: + + echo "This is a message" > /dev/kmsg + +Sends:: + + 12,607,22085407756,-;This is a message + foo=bar + qux=baz + +Preview the userdata that will be appended with:: + + cd /sys/kernel/config/netconsole/cmdline0/userdata + for f in `ls userdata`; do echo $f=$(cat userdata/$f/value); done + +If a `userdata` entry is created but no data is written to the `value` file, +the entry will be omitted from netconsole messages:: + + cd /sys/kernel/config/netconsole && mkdir cmdline0 + cd cmdline0 + mkdir userdata/foo + echo bar > userdata/foo/value + mkdir userdata/qux + +The `qux` key is omitted since it has no value:: + + echo "This is a message" > /dev/kmsg + 12,607,22085407756,-;This is a message + foo=bar + +Delete `userdata` entries with `rmdir`:: + + rmdir /sys/kernel/config/netconsole/cmdline0/userdata/qux + +Beware of `userdata` entries with newlines since values are printed with +newlines preserved. A userdatum value with a newline could cause the +netconsole message receiver to interpret a value as a new userdata key:: + + cat userdata/foo/value + bar + bar2 + +The `qux` key is omitted since it has no value:: + + echo "This is a message" > /dev/kmsg + 12,607,22085407756,-;This is a message + foo=bar + bar2 + Extended console: ================= From patchwork Wed Jan 24 17:47:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wood X-Patchwork-Id: 191687 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:2553:b0:103:945f:af90 with SMTP id p19csp1152151dyi; Wed, 24 Jan 2024 09:50:36 -0800 (PST) X-Google-Smtp-Source: AGHT+IEZwUGaWW8UNoIL7Ui2mi9b+v08RC9HST+rcCH04+7RFlO1gwpek/FgJ4vDgmtZq4nUk5sh X-Received: by 2002:aa7:da95:0:b0:55c:f5:a873 with SMTP id q21-20020aa7da95000000b0055c00f5a873mr1285083eds.90.1706118636366; Wed, 24 Jan 2024 09:50:36 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706118636; cv=pass; d=google.com; s=arc-20160816; b=vzDn8tSihw/C1+16rwSshD9TKngeACReKuTL4bDgA5ydDWg1LXc4s6zDTjBPfBb4B1 KYQcTie+dC8YeXpSWKgThkh8/NeVsBxgjZ2aF5KtbvjLLTNWH1s0Z006FsWv/yHdC+z6 AO1y2czOvb8HatIp2c9mp9ezCblKz25EVks5/ehUgCBnI0NpUqUgyNlWjphdl7UnHzYz psFjvILHTAbimQcXpcN1K+IIOk9XGomXjLVlTbiH+yvquR4Rq8+zzWLQXgACuB7Vekq/ DMJmULBl4iG7DZt0/VLUVi9n3kG+LE4Ba8iJ2HDVPTdI/iRy6ofjbe7DyPnJeLGRSzaE SXOw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=02lzNgrCZ4Zdl0iLJ+8uXtX3qU8dkCCyd8xmzVFkf/8=; fh=+EB6oBnXtBrxaPMIm1rb1kOyvjkddCLSgL4/UeSWQvM=; b=qIIbURzJAxVoqm3SGOAPpOAF2T7PEiGMLZvxUc7rDG+fNcY+EwWClwvmtcHsLQgX2P jnW4ktyV0oJf7yoc1477BSpoXBXXEXlD6FUZfOkqEMiz21fXg9xA7VkEnPx1YCFCKKpC 4zWmjp1tXiOAcwIGF57LeTOYWhuRJ7xX1vVZ75JC9gvlOFXo79/7IJ48/KEv42C61iCy JaFCxg2xqzttaIw8cs9on44pcLKJG6VYwXgf+c4V8dVKEs0WajAyaGiY56gyVtJGFZa3 eklih6zG0dMU6cvOls+ZE3gpMSJlY5+bN5VHrJuA6xWyvrmG4TtdLJN3xBhIOVs7s4MD mWYQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=RTuPydUP; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-37460-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-37460-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id di3-20020a056402318300b0055c84010509si2011883edb.57.2024.01.24.09.50.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 09:50:36 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-37460-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=RTuPydUP; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-37460-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-37460-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id CBF041F22B7E for ; Wed, 24 Jan 2024 17:50:35 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 1415912BF29; Wed, 24 Jan 2024 17:47:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="RTuPydUP" Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (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 71F9C12AAD1; Wed, 24 Jan 2024 17:47:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706118446; cv=none; b=GwTRPNZzsVKzsUNgoPuu5XqQ6DTWiJfd4en4WALjWxdQoF/q0yPmocuCGh0J/0iAB8UVOJ8sE1vad8TELh1/GemSr7GBOOyMi+4GQOeIRxC/JwJA1XeRorJYYWRPHfNMgmsbOShLzANoHY3XZTcAWxge9iBeiiw1BBk5KCuaqUo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706118446; c=relaxed/simple; bh=2I9FInpu6eGl5WtGuSDGdlpAR1jOX87kmU3mmBWwMLE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UhGVuV9+WDNKf3tX4U6ErvuHbJyvSE3gOBpsxuYm4S5x83phqwQxjKMn6i4Ijrf2ioimBOfdg8waEaxqy3wMYIIccKfhvBUwFzTbY6sdAUuP0zuvPqdPhjQwD6ZzdMkJz+imqJDRA5HRvxim8geNVU8QjW54MeQKMkiTKy4Qzeg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=RTuPydUP; arc=none smtp.client-ip=209.85.214.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-1d50d0c98c3so54440265ad.1; Wed, 24 Jan 2024 09:47:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706118444; x=1706723244; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=02lzNgrCZ4Zdl0iLJ+8uXtX3qU8dkCCyd8xmzVFkf/8=; b=RTuPydUPx1b0DZhWnK+YSszw1oEPzH+UaFz5L07uvtoePGXqfY/xB4J5E1F9Pp6dfq LGvVir682EILyiHQ+dNrByMtS2ooKlD+Zvhi/rPdj1Cae6JDsM9LaXDSJBnmyryhfPMc qDDUgVgYw+d5OUS+8HS9h17TwPJGojia2rbAsOD3ZmjAm9GD9n7YED6dgm84ZZydzJnZ ITd3Pu5LizRPnj+aTWb/btle5kNhb1IJa9yS1GG8aE6xeqJiW2FalSICv8BCp5unLoz2 Utel3EUi3vjkp03VaxvuzbQAsJTb3qCY1+ueZwdlpoyPRyJ8NGkDrdFXOBSHv22z19WL vZGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706118444; x=1706723244; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=02lzNgrCZ4Zdl0iLJ+8uXtX3qU8dkCCyd8xmzVFkf/8=; b=O/jMB/HxD5bdRWAXEodHoT7lStIiou5qmiA7dhCgPyTFFr3ufusHeVUinfck2/Qp4U RRRh22Tj6lxLEGNUPup2G6nzZCOQDsNj53C/gIHY/zMq+TtFRwiFttB9oapOPy8wnTX6 iYf8o1wjvKtNMiJEIX1cIN76mOztSaAs3D+l1tvzrJXnv7QbekyFWTvULTPHnZUy7fMC VF2A9yfrbI2DIZ+9OnrAAuaIi5QTedLHUcusyCqslYH55h/GZs4TkdpTtFq+O9LNdOVs avQGdWtPSev5EZqI4UhwH8rJpG8lR0IesLf/wTRyGL7f0B/uwo3Mrb2prVa85RxN3UJp k2tQ== X-Gm-Message-State: AOJu0YxxeXcQWM77vwm+YYKloKKX7NRX8evn4ZBifbA5QD1zkc3uBQlz tHobug7ZrgutcIfM9OAhGw5xUaGF6Mu9EttqqJWJqpXazW9ngLBI X-Received: by 2002:a17:90a:e544:b0:28e:8c05:979 with SMTP id ei4-20020a17090ae54400b0028e8c050979mr2079001pjb.45.1706118443758; Wed, 24 Jan 2024 09:47:23 -0800 (PST) Received: from localhost ([2601:644:9380:8cd0::7fb4]) by smtp.gmail.com with ESMTPSA id eu7-20020a17090af94700b002902076c395sm13730177pjb.34.2024.01.24.09.47.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 09:47:23 -0800 (PST) From: Matthew Wood To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: leitao@debian.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next v1 5/8] net: netconsole: add a userdata config_group member to netconsole_target Date: Wed, 24 Jan 2024 09:47:03 -0800 Message-ID: <20240124174711.1906102-6-thepacketgeek@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240124174711.1906102-1-thepacketgeek@gmail.com> References: <20240124174711.1906102-1-thepacketgeek@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1788995055378943836 X-GMAIL-MSGID: 1788995055378943836 Create configfs machinery for netconsole userdata appending, which depends on CONFIG_NETCONSOLE_DYNAMIC (for configfs interface). Add a userdata config_group to netconsole_target for managing userdata entries as a tree under the netconsole configfs subsystem. Directory names created under the userdata directory become userdatum keys; the userdatum value is the content of the value file. Include the minimum-viable-changes for userdata configfs config_group. init_target_config_group() ties in the complete configfs machinery to avoid unused func/variable errors during build. Initializing the netconsole_target->group is moved to init_target_config_group, which will also init and add the userdata config_group. Each userdatum entry has a limit of 256 bytes (54 for the key/directory, 200 for the value, and 2 for '=' and '\n' characters), which is enforced by the configfs functions for updating the userdata config_group. When a new netconsole_target is created, initialize the userdata config_group and add it as a default group for netconsole_target config_group, allowing the userdata configfs sub-tree to be presented in the netconsole configfs tree under the userdata directory. Co-developed-by: Breno Leitao Signed-off-by: Breno Leitao Signed-off-by: Matthew Wood --- drivers/net/netconsole.c | 142 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 138 insertions(+), 4 deletions(-) diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 586945e62210..26a3bb070ad0 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -43,6 +43,10 @@ MODULE_DESCRIPTION("Console driver for network interfaces"); MODULE_LICENSE("GPL"); #define MAX_PARAM_LENGTH 256 +#define MAX_USERDATA_NAME_LENGTH 54 +#define MAX_USERDATA_VALUE_LENGTH 200 +#define MAX_USERDATA_ENTRY_LENGTH 256 +#define MAX_USERDATA_ITEMS 16 #define MAX_PRINT_CHUNK 1000 static char config[MAX_PARAM_LENGTH]; @@ -103,6 +107,7 @@ struct netconsole_target { struct list_head list; #ifdef CONFIG_NETCONSOLE_DYNAMIC struct config_group group; + struct config_group userdata_group; #endif bool enabled; bool extended; @@ -215,6 +220,10 @@ static struct netconsole_target *alloc_and_init(void) * | remote_ip * | local_mac * | remote_mac + * | userdata/ + * | / + * | value + * | ... * | * /... */ @@ -596,6 +605,123 @@ static ssize_t remote_mac_store(struct config_item *item, const char *buf, return -EINVAL; } +struct userdatum { + struct config_item item; + char value[MAX_USERDATA_VALUE_LENGTH]; +}; + +static inline struct userdatum *to_userdatum(struct config_item *item) +{ + return container_of(item, struct userdatum, item); +} + +struct userdata { + struct config_group group; +}; + +static inline struct userdata *to_userdata(struct config_item *item) +{ + return container_of(to_config_group(item), struct userdata, group); +} + +static struct netconsole_target *userdata_to_target(struct userdata *ud) +{ + struct config_group *netconsole_group; + + netconsole_group = to_config_group(ud->group.cg_item.ci_parent); + return to_target(&netconsole_group->cg_item); +} + +static ssize_t userdatum_value_show(struct config_item *item, char *buf) +{ + return sysfs_emit(buf, "%s\n", &(to_userdatum(item)->value[0])); +} + +static ssize_t userdatum_value_store(struct config_item *item, const char *buf, + size_t count) +{ + struct userdatum *udm = to_userdatum(item); + int ret; + + if (count > MAX_USERDATA_VALUE_LENGTH) + return -EMSGSIZE; + + mutex_lock(&dynamic_netconsole_mutex); + + ret = strscpy(udm->value, buf, sizeof(udm->value)); + if (ret < 0) + goto out_unlock; + trim_newline(udm->value, sizeof(udm->value)); + + mutex_unlock(&dynamic_netconsole_mutex); + return count; +out_unlock: + mutex_unlock(&dynamic_netconsole_mutex); + return ret; +} + +CONFIGFS_ATTR(userdatum_, value); + +static struct configfs_attribute *userdatum_attrs[] = { + &userdatum_attr_value, + NULL, +}; + +static void userdatum_release(struct config_item *item) +{ + kfree(to_userdatum(item)); +} + +static struct configfs_item_operations userdatum_ops = { + .release = userdatum_release, +}; + +static const struct config_item_type userdatum_type = { + .ct_item_ops = &userdatum_ops, + .ct_attrs = userdatum_attrs, + .ct_owner = THIS_MODULE, +}; + +static struct config_item *userdatum_make_item(struct config_group *group, + const char *name) +{ + struct netconsole_target *nt; + struct userdatum *udm; + struct userdata *ud; + size_t child_count; + + if (strlen(name) > MAX_USERDATA_NAME_LENGTH) + return ERR_PTR(-ENAMETOOLONG); + + ud = to_userdata(&group->cg_item); + nt = userdata_to_target(ud); + child_count = list_count_nodes(&nt->userdata_group.cg_children); + if (child_count >= MAX_USERDATA_ITEMS) + return ERR_PTR(-ENOSPC); + + udm = kzalloc(sizeof(*udm), GFP_KERNEL); + if (!udm) + return ERR_PTR(-ENOMEM); + + config_item_init_type_name(&udm->item, name, &userdatum_type); + return &udm->item; +} + +static struct configfs_attribute *userdata_attrs[] = { + NULL, +}; + +static struct configfs_group_operations userdata_ops = { + .make_item = userdatum_make_item, +}; + +static struct config_item_type userdata_type = { + .ct_item_ops = &userdatum_ops, + .ct_group_ops = &userdata_ops, + .ct_attrs = userdata_attrs, + .ct_owner = THIS_MODULE, +}; + CONFIGFS_ATTR(, enabled); CONFIGFS_ATTR(, extended); CONFIGFS_ATTR(, dev_name); @@ -640,6 +766,14 @@ static const struct config_item_type netconsole_target_type = { .ct_owner = THIS_MODULE, }; +static void init_target_config_group(struct netconsole_target *nt, const char *name) +{ + config_group_init_type_name(&nt->group, name, &netconsole_target_type); + config_group_init_type_name(&nt->userdata_group, "userdata", + &userdata_type); + configfs_add_default_group(&nt->userdata_group, &nt->group); +} + static struct netconsole_target *find_cmdline_target(const char *name) { struct netconsole_target *nt, *ret = NULL; @@ -675,6 +809,7 @@ static struct config_group *make_netconsole_target(struct config_group *group, strlen(NETCONSOLE_PARAM_TARGET_PREFIX))) { nt = find_cmdline_target(name); if (nt) { + init_target_config_group(nt, name); return &nt->group; } } @@ -683,8 +818,8 @@ static struct config_group *make_netconsole_target(struct config_group *group, if (!nt) return ERR_PTR(-ENOMEM); - /* Initialize the config_item member */ - config_group_init_type_name(&nt->group, name, &netconsole_target_type); + /* Initialize the config_group member */ + init_target_config_group(nt, name); /* Adding, but it is disabled */ spin_lock_irqsave(&target_list_lock, flags); @@ -741,8 +876,7 @@ static void populate_configfs_item(struct netconsole_target *nt, snprintf(target_name, sizeof(target_name), "%s%d", NETCONSOLE_PARAM_TARGET_PREFIX, cmdline_count); - config_group_init_type_name(&nt->group, target_name, - &netconsole_target_type); + init_target_config_group(nt, target_name); } #endif /* CONFIG_NETCONSOLE_DYNAMIC */ From patchwork Wed Jan 24 17:47:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wood X-Patchwork-Id: 191688 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:2553:b0:103:945f:af90 with SMTP id p19csp1152329dyi; Wed, 24 Jan 2024 09:51:00 -0800 (PST) X-Google-Smtp-Source: AGHT+IGpkEACKZUmy9ehD+9UP/5cDfm5va4CPc/R+Tg3GwB1NUqs5QD6EWTZn9ohzWU4Lu5jlffe X-Received: by 2002:a17:907:874b:b0:a31:f7e:8a53 with SMTP id qo11-20020a170907874b00b00a310f7e8a53mr962817ejc.26.1706118660123; Wed, 24 Jan 2024 09:51:00 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706118660; cv=pass; d=google.com; s=arc-20160816; b=EkXbh+fVcVYE+6hDqSxkXv8TRV8e9qRemdoVnsP2LhwIkp1dnlroebDYAk9UkUqxwS tab+ybsZ8WMak+vGS7d+EP3uKvAxlziqubGcmN6/U+GNyGXAaQDJf52n8Zy5fln+Z5b4 qlBkZMcshSPK9y+YQVqSmASeQV95Dte2ZKM1s/C6ilg5M7SfCH6fMwsaanEtYthipBDc bz4L5QkvxloRnEQYIU1+gVJNvDIo6Y69V7ZKZvoLTo5Dz78dbP0MVrVxt4JWMEhCDC9g 9aWrpiZr7NNGs1aEbfcvRAxk79kgKJ9CGV8Rhq9pNbPej7BYAcqvJeUiJiwxMxv7jM/t uNeA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=6yr4N28qTdreJQILPMIL8Vba8ZMs6hXrf/fYG9mRvfk=; fh=+EB6oBnXtBrxaPMIm1rb1kOyvjkddCLSgL4/UeSWQvM=; b=RGufMm2qRvKMXMQa6LutizLd4PGdjPv6jYwpzUTVrnFKMf35WJXUh1OZKIcI1yxIpz Qf4gvQgyUA8cCGb/WpVn70+VK4ah18fjisGbFUTGAGTR569cJQKWCqxGLzjIhfIDcQBN KT9Wqx5YA8iYede43skQcLl73BO+ZfYaebk7L6+5ztgODPCgrVWinXwT0qXVwA3jdkbD xU4k+LZ02MlXldZcnpYuH0kZBxiE5hcMpViJaLLW7p1zjMjF4hUpS4XIYlCI/R6UV+tz v2c9C/Pq+6CuhfIlL7NNrWUTQQhbn0JqrjN4fhSD6ArdcrCYaBWlsLLBSi6lP8KZLdF7 2ZAw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=Gh+1Hasm; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-37461-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-37461-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id a3-20020a1709065f8300b00a28a9e27f6asi100670eju.536.2024.01.24.09.50.59 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 09:51:00 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-37461-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=Gh+1Hasm; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-37461-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-37461-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 8FE2C1F22BCC for ; Wed, 24 Jan 2024 17:50:59 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 93FBC12C52E; Wed, 24 Jan 2024 17:47:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Gh+1Hasm" Received: from mail-pg1-f179.google.com (mail-pg1-f179.google.com [209.85.215.179]) (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 7F48E12BE82; Wed, 24 Jan 2024 17:47:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706118448; cv=none; b=VB/Rm0scIPpH/xV1vFVUUYyfiGUHcbzR5R0mv7e+sY7lYHgwXxBkTuIUO3AiqV0T0AWVBWJFT6riLB+xwvStfyX3UfCk8XovKkaD9KZvz1b/zEFgwQch5RnKYRBXOJPz2MziQ4ASAvnjmhwV8quKxZvCAzGzFYl3VZQwljfqwoM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706118448; c=relaxed/simple; bh=Jjv/TuEFrl542Uz2oPY2+FJwkmzA1uzPImxNDC4FnrI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Gz9DcnNP9cuXwMqSVvqqPzaoLaV6BvUxiSL5YTRurTuv8FFUVCmHdD8o57jIyWe/snMelhq8jBg8Hu9LFQc7VbP0SsYwYFdVz7KYC8BrTp1lLSbACJrpNBXPF2iw8YsixVDxIW/vMyEiA+MKasS3kwyN/g2lM0sXpiyh534tWuU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Gh+1Hasm; arc=none smtp.client-ip=209.85.215.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pg1-f179.google.com with SMTP id 41be03b00d2f7-53fbf2c42bfso4095691a12.3; Wed, 24 Jan 2024 09:47:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706118446; x=1706723246; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6yr4N28qTdreJQILPMIL8Vba8ZMs6hXrf/fYG9mRvfk=; b=Gh+1HasmqJacU8EJ00LtEwisiIY1EPc/ZxwqM8qR0eGv2aA3q/ku9pcJst0AZzD4vE IuPXK0+3jGTqx3WIiKW4kCT3gkOdAQxloCJmu9wUwnZrWLeok9h4L+FdNAH65j84G65n csHe/5O7K+/95RtY07Phff24ChEkqjT5OYLLArnY2nf+JKPpv4uvE/n7q3ZVx6LzLgm3 S/Sfy2zNhMKu+7FQF2531l2LopBtHXvTfgrHIiMGSqfEdG7idNfbLsCku2+RwuasmBFl WG1VOMg56YoWJZ/CqPAYnQDu9m4S7CfO2ZpxDShS8PJsj5UJjbP8xis+/zg3eJA95QUB Ysqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706118446; x=1706723246; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6yr4N28qTdreJQILPMIL8Vba8ZMs6hXrf/fYG9mRvfk=; b=nfBXPCLaqmneyC2b3+VgapczHM46rM6fLsB2bzaFWMy51nGnpngGPNo94GK96EHYhK kZJFQM/u/KT2F6V/WWKefNhi+CBaZcjqD5g0w8iTiXYBHvoNiNUDEew49fBtL4+V4Oc2 KRe2jjHT55pVXQmfcLCtjT9eZywPGlDn/SfyOMn/k7GdxpqGsFlJB70zdfXLGcV6Fb61 FXeRoBJoStrn/om6ShT0+2VA1P359vs8/gYGW+1g9AFWYDZa29RS20BQy5sWgc9PXGqo krxMWfqNA2ptGVAM0OIYY9JvonLx2ae0la6YEYlNus4rhiQ2BoORULcsmGfge+XWNVNi lggA== X-Gm-Message-State: AOJu0Ywe5m/wYoIfjB0TsZkqwSSFbN7iTRtGeVPGjX/6n63cMEcTxsND rU5HNsEaUcAm+q0GCMPzejFzL4Lz4wtKbZv+7bNzLFmhw6C0qlbU X-Received: by 2002:a05:6a20:671c:b0:199:a725:9b59 with SMTP id q28-20020a056a20671c00b00199a7259b59mr1075725pzh.114.1706118445804; Wed, 24 Jan 2024 09:47:25 -0800 (PST) Received: from localhost ([2601:644:9380:8cd0::7fb4]) by smtp.gmail.com with ESMTPSA id ey15-20020a056a0038cf00b006db05eb1301sm14174896pfb.21.2024.01.24.09.47.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 09:47:25 -0800 (PST) From: Matthew Wood To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: leitao@debian.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next v1 6/8] net: netconsole: cache userdata formatted string in netconsole_target Date: Wed, 24 Jan 2024 09:47:04 -0800 Message-ID: <20240124174711.1906102-7-thepacketgeek@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240124174711.1906102-1-thepacketgeek@gmail.com> References: <20240124174711.1906102-1-thepacketgeek@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1788995080340910939 X-GMAIL-MSGID: 1788995080340910939 Store a formatted string for userdata that will be appended to netconsole messages. The string has a capacity of 4KB, as calculated by the userdatum entry length of 256 bytes and a max of 16 userdata entries. Update the stored netconsole_target->userdata_complete string with the new formatted userdata values when a userdatum is created, edited, or removed. Each userdata entry contains a trailing newline, which will be formatted as such in netconsole messages:: 6.7.0-rc8-virtme,12,500,1646292204,-;test release=foo something=bar 6.7.0-rc8-virtme,12,500,1646292204,-;another test release=foo something=bar Enforcement of MAX_USERDATA_ITEMS is done in userdatum_make_item; update_userdata will not check for this case but will skip any userdata children over the limit of MAX_USERDATA_ITEMs. If a userdata entry/dir is created but no value is provided, that entry will be skipped. This is in part because update_userdata() can't be called in userdatum_make_item() since the item will not have been added to the userdata config_group children yet. To preserve the experience of adding an empty userdata that doesn't show up in the netconsole messages, purposefully skip emtpy userdata items even when update_userdata() can be called. Co-developed-by: Breno Leitao Signed-off-by: Breno Leitao Signed-off-by: Matthew Wood --- drivers/net/netconsole.c | 61 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 26a3bb070ad0..7de693d0773f 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -108,6 +108,8 @@ struct netconsole_target { #ifdef CONFIG_NETCONSOLE_DYNAMIC struct config_group group; struct config_group userdata_group; + char userdata_complete[MAX_USERDATA_ENTRY_LENGTH * MAX_USERDATA_ITEMS]; + size_t userdata_length; #endif bool enabled; bool extended; @@ -637,10 +639,50 @@ static ssize_t userdatum_value_show(struct config_item *item, char *buf) return sysfs_emit(buf, "%s\n", &(to_userdatum(item)->value[0])); } +static void update_userdata(struct netconsole_target *nt) +{ + int complete_idx = 0, child_count = 0; + struct list_head *entry; + struct userdata *ud; + + /* Clear the current string in case the last userdatum was deleted */ + nt->userdata_length = 0; + nt->userdata_complete[0] = 0; + + ud = to_userdata(&nt->userdata_group.cg_item); + list_for_each(entry, &nt->userdata_group.cg_children) { + struct userdatum *udm_item; + struct config_item *item; + + if (child_count >= MAX_USERDATA_ITEMS) + break; + child_count++; + + item = container_of(entry, struct config_item, ci_entry); + udm_item = to_userdatum(item); + + /* Skip userdata with no value set */ + if (strnlen(udm_item->value, MAX_USERDATA_VALUE_LENGTH) == 0) + continue; + + /* This doesn't overflow userdata_complete since it will write + * one entry length (1/MAX_USERDATA_ITEMS long), entry count is + * checked to not exceed MAX items with child_count above + */ + complete_idx += scnprintf(&nt->userdata_complete[complete_idx], + MAX_USERDATA_ENTRY_LENGTH, "%s=%s\n", + item->ci_name, udm_item->value); + } + nt->userdata_length = strnlen(nt->userdata_complete, + sizeof(nt->userdata_complete)); +} + static ssize_t userdatum_value_store(struct config_item *item, const char *buf, size_t count) { struct userdatum *udm = to_userdatum(item); + struct netconsole_target *nt; + struct userdata *ud; int ret; if (count > MAX_USERDATA_VALUE_LENGTH) @@ -653,6 +695,10 @@ static ssize_t userdatum_value_store(struct config_item *item, const char *buf, goto out_unlock; trim_newline(udm->value, sizeof(udm->value)); + ud = to_userdata(item->ci_parent); + nt = userdata_to_target(ud); + update_userdata(nt); + mutex_unlock(&dynamic_netconsole_mutex); return count; out_unlock: @@ -707,12 +753,27 @@ static struct config_item *userdatum_make_item(struct config_group *group, return &udm->item; } +static void userdatum_drop(struct config_group *group, struct config_item *item) +{ + struct netconsole_target *nt; + struct userdata *ud; + + ud = to_userdata(&group->cg_item); + nt = userdata_to_target(ud); + + mutex_lock(&dynamic_netconsole_mutex); + update_userdata(nt); + config_item_put(item); + mutex_unlock(&dynamic_netconsole_mutex); +} + static struct configfs_attribute *userdata_attrs[] = { NULL, }; static struct configfs_group_operations userdata_ops = { .make_item = userdatum_make_item, + .drop_item = userdatum_drop, }; static struct config_item_type userdata_type = { From patchwork Wed Jan 24 17:47:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wood X-Patchwork-Id: 191689 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:2553:b0:103:945f:af90 with SMTP id p19csp1152608dyi; Wed, 24 Jan 2024 09:51:42 -0800 (PST) X-Google-Smtp-Source: AGHT+IHv10OTe3CRNfxYJWk5u4eKLmCtHA1OZfsTxUuSQxjYRsy0mbv8vc1fLJdPYnnfb7jdWYUs X-Received: by 2002:a05:6a21:78a6:b0:19c:6e7a:498 with SMTP id bf38-20020a056a2178a600b0019c6e7a0498mr813588pzc.77.1706118701920; Wed, 24 Jan 2024 09:51:41 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706118701; cv=pass; d=google.com; s=arc-20160816; b=O6DsIMLAKEJ75Nm70Z/rpmkECRe/Gh/LoCAc+XZkr5EpYzIsHXBej+iHDsxtU9ayry 6wfs9habzUJOFxedQPHZpCrlN1UWzlwTdRXFaUqA+Il3PpwRSbjmAGzHDlJTnDTKtkT4 S2pP4i81YpupTKRKMQlH8CvhJVHKBKHcSUk1O1pCQqHf/NXYTQL5j/HAOdT0dgagfWD0 SI1rRpDCo88Xdg67BYq00AFd2BKQBVMYmuLtqLblCA5XA1wBS4hirvX+/Yk2/6O6bYAn ier8NVxPOtRmdymfjNg8Z6mppxVjJt2YonoZwG/Pn68JHyH+bhtWznGLbeEOzE7OfKAU psEg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=DjKj9EzdAuWyK4cN+spXyTYM3d7/eJ9KCYgY9YiMv00=; fh=+EB6oBnXtBrxaPMIm1rb1kOyvjkddCLSgL4/UeSWQvM=; b=jPSWdVC/ELoX+AY9g1NhMsSgSJcuDQaKOqA0BN5n+BrWl3ghke3oRJZlXMsaIQITV+ UjKx5uLMufodYSlnhX5V9a99deGfSqD9ChBDNcyK0+SV7SeiblU5cbAqTJ8C3bp+zekN AYFypfEeG+2RDBfSSe1kMXvoDPcuLlpHGWAXQpas9XcRNdZdHzwWpK2xQR5BJh6y8U+V 3pVw89mt34OrFDtyf7qd4QQQ2vhuR29+E1A5ipOKPOWuTvkX/4WJZ2PwH/vHfPeU+Bw1 2tmSFSSInVyEqpqGnLr+oiuty2QtP6zKNGu9giqm5MjJq+6fymguQbLgYj7bD5gCsP1F WQ4A== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=HFLgSbjF; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-37463-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-37463-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id 191-20020a6302c8000000b005ce030a6460si2907723pgc.71.2024.01.24.09.51.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 09:51:41 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-37463-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=HFLgSbjF; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-37463-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-37463-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id AB366281F42 for ; Wed, 24 Jan 2024 17:51:41 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id CFC0912CD92; Wed, 24 Jan 2024 17:47:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HFLgSbjF" Received: from mail-oo1-f45.google.com (mail-oo1-f45.google.com [209.85.161.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 861DC12BF1C; Wed, 24 Jan 2024 17:47:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706118451; cv=none; b=eTWWb/w1oD8WTxZPvt0L14wgMVGjvPcll3zaNugRzHWmW8ZOd3Nc0+IArcJHCp/Mk69aeEnq/5qWTO7985oT00mW/itIlPLrAvDpvm61Nb/V1iEf2NEw05o0YHIfUuXyfECE0m3/ivveRGg+YM+Ffw1O8byOC/1VdpfL/jATZyw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706118451; c=relaxed/simple; bh=lbjcvJlqREfcesgrRYGDA24BL5PppwaqOFgHWCceX3A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=r6nee3ySPvwEu4+JdqdyqpE10vqbGsemuoWeoTTm1dTJ429DocqsBdepyG623hSgXGVR3/yk9PVqWy2vW1EYqCLXzDScFrzFUX4w13VUCG6xwBMSeOoGhEVizHNwuIFtGpAckLk+PGSg0KnHPngDcUVWBErajGm8jISpbZhTM6k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=HFLgSbjF; arc=none smtp.client-ip=209.85.161.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-oo1-f45.google.com with SMTP id 006d021491bc7-59612e4a21eso2317880eaf.3; Wed, 24 Jan 2024 09:47:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706118448; x=1706723248; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DjKj9EzdAuWyK4cN+spXyTYM3d7/eJ9KCYgY9YiMv00=; b=HFLgSbjFUqCtWfBfxpQzrrPVNmc6+r3ZgTrqiPk3+dHQkdx23Y6HL8COkFD8o5aL+0 iUwkU35UjiWCkRn+vHwgFBy6SVyhwmgQsxAziHNSyqrVSREoiutdzlBjkE+fod87woNM 7d2XxwOLuuNzgjZHy1045m2gDsTn50jTa+Yhz/cWNt3c1rrqS/yv5AQkV6acqVyMXMXZ FN9tqY+RWs7fHuutgbNgpIOKXjb2zQjGGup9fUyEJbWg7hFSgUaDYIoUUIhVobukabze yO8gJ9O5xerPPzkXRCN+FKt5m34vdosCkXbDcS+cbTI39UCbZM30/Tz860n2R/kraPQj aSKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706118448; x=1706723248; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DjKj9EzdAuWyK4cN+spXyTYM3d7/eJ9KCYgY9YiMv00=; b=Km+3oBXCDF8+H5qTUvFOE+3BffV/hZUoo6oLXUegdU18x8YT7QjkH2GLAdwEJcrLbU ybHNdqPmgyfXCq4qEiMgzzJoVi1FsocW8rjZ8N8lvwWDM6NUQ2OH8PRuZ/MQAz9yMcfD ne+ESvZbJg27ofVdOC9fYqFvab4OlHajmt3n+P1MNqzgM5BZGkPLRT2z2ffkfirgM3ZJ PS2c2hMZsBk374NXFOE0PI1NnYqqq6Egu+u6JZD6uIPw0zAUkDW3QkaeI5a9GDVxde7A mmSh/MC+yWEkWOcTWzM+i1kLBmvA80rhLBsqFiHjmbOqYJxqOjtgaPJPU76OgFEK3Caf ynuA== X-Gm-Message-State: AOJu0YzDSpgKXGu5tOfm5QKEirc2qOFvWAl3BsNzvkI3B03uP19L12y0 5FOlDGc3KwPQxMeZOSk2EpA5jcX1zLKG7ieLycjnym75QR4vWeVa X-Received: by 2002:a05:6358:ee46:b0:176:277d:3487 with SMTP id ik6-20020a056358ee4600b00176277d3487mr3703332rwb.24.1706118448348; Wed, 24 Jan 2024 09:47:28 -0800 (PST) Received: from localhost ([2601:644:9380:8cd0::7fb4]) by smtp.gmail.com with ESMTPSA id z17-20020a63c051000000b005cfbe445a85sm8446564pgi.70.2024.01.24.09.47.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 09:47:28 -0800 (PST) From: Matthew Wood To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: leitao@debian.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next v1 7/8] net: netconsole: append userdata to netconsole messages Date: Wed, 24 Jan 2024 09:47:05 -0800 Message-ID: <20240124174711.1906102-8-thepacketgeek@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240124174711.1906102-1-thepacketgeek@gmail.com> References: <20240124174711.1906102-1-thepacketgeek@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1788995123932550711 X-GMAIL-MSGID: 1788995123932550711 Append userdata to outgoing unfragmented (<1000 bytes) netconsole messages. When sending messages the userdata string is already formatted and stored in netconsole_target->userdata_complete. Always write the outgoing message to buf, so userdata can be appended in a standard fashion. This is a change from only using buf when the release needs to be prepended to the message. Co-developed-by: Breno Leitao Signed-off-by: Breno Leitao Signed-off-by: Matthew Wood --- drivers/net/netconsole.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 7de693d0773f..8df3932ef4fc 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -1032,19 +1032,34 @@ static void send_ext_msg_udp(struct netconsole_target *nt, const char *msg, const char *msg_ready = msg; const char *release; int release_len = 0; + int userdata_len = 0; + char *userdata = NULL; + +#ifdef CONFIG_NETCONSOLE_DYNAMIC + userdata = nt->userdata_complete; + userdata_len = nt->userdata_length; +#endif if (nt->release) { release = init_utsname()->release; release_len = strlen(release) + 1; } - if (msg_len + release_len <= MAX_PRINT_CHUNK) { + if (msg_len + release_len + userdata_len <= MAX_PRINT_CHUNK) { /* No fragmentation needed */ if (nt->release) { scnprintf(buf, MAX_PRINT_CHUNK, "%s,%s", release, msg); msg_len += release_len; - msg_ready = buf; + } else { + memcpy(buf, msg, msg_len); } + + if (userdata) + msg_len += scnprintf(&buf[msg_len], + MAX_PRINT_CHUNK - msg_len, + "%s", userdata); + + msg_ready = buf; netpoll_send_udp(&nt->np, msg_ready, msg_len); return; } From patchwork Wed Jan 24 17:47:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wood X-Patchwork-Id: 191690 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:2553:b0:103:945f:af90 with SMTP id p19csp1152715dyi; Wed, 24 Jan 2024 09:51:54 -0800 (PST) X-Google-Smtp-Source: AGHT+IHnsZgnlo0xftBlUQgQOMaFtnqNQjOuSrJIV1J3Fsbj2CWlMkSzE9vwVS8SmwppBk4i5dOF X-Received: by 2002:a17:903:324d:b0:1d7:3223:e9dd with SMTP id ji13-20020a170903324d00b001d73223e9ddmr809654plb.102.1706118714238; Wed, 24 Jan 2024 09:51:54 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706118714; cv=pass; d=google.com; s=arc-20160816; b=Lpnt6Hk8RSIznMbIt3TbdV0LJ+WfUQYmn4Dij6m/WMT4PhOQn1NKy07KVBHbIb4S99 e/taXYPWGci8yx+O6rOQAu7+9t+2/iFWy/2YpeqCG4AT8qqFuv3jejt7zxANzEt8B5zP VAIGIFErcQC1zN1zfpkMcynDXa0fEoiiXwxI8OAUvSTPzu/D1FAhXo+kUatRgVHqjah2 Rm5y/dQtGm4eOsuZKCSy2D1/E/k2L9WV5p4wABcjV6te4CB31qVA3FHFsqrXTU9EHDzg 4rwZfWdc4AewIGm23VadbAVHEABVI+35eSMhDCWeedxM5VltrbGU0HQNIdfojh3Fr6CZ f7pg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=Vzf+RsvLyT/r4LQQ0hA+PIZWqxzvX6yBhcSuFj8O/bI=; fh=+EB6oBnXtBrxaPMIm1rb1kOyvjkddCLSgL4/UeSWQvM=; b=WBJmSKOr0r+C/XKDzYyKSGCdr9MskNCDm2o/GVhPvwVLJyDjCkMTMwhWJELd4iD62w mgnBRAnj5L3kbTEBq0BoeOjIXc/SWrfLHxzh0Iv86OK0Y97m2MmbFmVMIS8UxYAsWwhr LL39VzuC//ZSPJmwYT86goPsSMLlY9nnGAIOaaBtKDFCwiRr9DHpKk1vh+09vNnN4dlL Jx5WUyCXRNY6BAro5w5+EdRUyj3avAy+R0VXpfAzbS6CAXF3hN9/fxV2U3OzJq3+uZCu r8Rj+GQWz8rXienUpzsXkJCIhcplRsrWB5yzmmt2KQrV69i/L9DwDzubfXZaaWWUrw9W 4crg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=PhiUpWfX; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-37464-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-37464-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id k15-20020a170902c40f00b001d71a91909asi10534524plk.506.2024.01.24.09.51.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 09:51:54 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-37464-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=PhiUpWfX; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-37464-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-37464-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 05CE5282254 for ; Wed, 24 Jan 2024 17:51:54 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 744D512CDA4; Wed, 24 Jan 2024 17:47:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PhiUpWfX" Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) (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 380C412C523; Wed, 24 Jan 2024 17:47:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706118452; cv=none; b=JuSQwneRS3h0H3IwhMHSL7LdFARrraz3JvqrWpE8OIvtADXHc+m4IMABMptFLjS4ETvTSlC+p9Isra66YQ2LbrgHqR8C3cS6ZSefJaktCJ88vW84e5x2YFny6tiyei2YCiSVLTpwrwM2Owj4+w0fkzdHCsBXMopEBHVu69thWbM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706118452; c=relaxed/simple; bh=1guLW5LaVQcL2JOWOYaToB2yKWIxIxlvgTjPbw8dAoQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=l/5QJEnW3RcWOcX/9ssbgUTarolyKCz9jr3tTm5tQVe5n7wwakvPCaPsLwe/d8g4M2ZtB0BCbP6LK9eKI5AB3Z6lYQ7LVOgY8caaylT1WLLcrCHCYxgd7zeMGkabAVK20Ikw0X8UjI/+j3EW/o2diz6oAhtRZuJYP2TVd0+a6Vw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=PhiUpWfX; arc=none smtp.client-ip=209.85.214.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-1d7431e702dso27044695ad.1; Wed, 24 Jan 2024 09:47:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706118450; x=1706723250; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Vzf+RsvLyT/r4LQQ0hA+PIZWqxzvX6yBhcSuFj8O/bI=; b=PhiUpWfXkft2sJMCaID8IER2iup0P4tfa1wGwH9G/gB5NSI//l2HavJjHduKx4qKb2 ARVAlIJnEswJ64KszivPJfIrE8N/hl6ZPGeCpZbDbqHP0LZ2KhwlbfAG07vxYxq35j+k GaJh0f5J6JE1oL7wcyFeWo12FuvGR5yV5avKVlhnh1nuE7OI5cVMhZ6AnQa3NXtajL6k XfS/iiPQUNTRhbgbMUEYpW7Cz3EcXjmHXUjL0NySijSasr61Px6mAuo0+V/Fcq3C6r1j ysM4MqxXiLTS2buKiZcEGqhSwH4tMdGhWeyevn6lgfa08VkrXwXhEwTkilBkRROCiUJO e5ow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706118450; x=1706723250; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Vzf+RsvLyT/r4LQQ0hA+PIZWqxzvX6yBhcSuFj8O/bI=; b=k+LZb48NmmkyDNFuH05qGLfINODw8VyysAVvJ454d2siK/zftA8oVcgUHA8rwLo5P0 s1+41CIr/ctl8EYrryJdLhC/xBgBzZdnirnLVnr3yG+HfSvE5t/5ZkP9dhRDMOXREB7p 4Zm93ZkPDSfygES01aOSwI3AbrXoHPqsyY1KXAkME/7niS7jujqP6aCgkvzrX3uA9cjc /aPAzCtJZl3ZRZTMCDcHzGw/ZIufL0ZqG24EARC8esaaAL4C4SEpZ6IMLCeYZ9LXEG+w FqmUF8w6eaNBs1/9UqzmV2cVgZSR9YADShzVvuOSYAo/VbAKN00FR2PoQ6hNn8n3BkPp UREg== X-Gm-Message-State: AOJu0YzJ87Zlr8pvpwgevNr0DpBhwNr88/zqbShGfEZAaOvPsI2xXZam gq8W/ajVGNB7tgWZ4MEfKf9JRvTpVoolmtAi0ccl84uOCpghHXKM X-Received: by 2002:a17:902:cec2:b0:1d7:72b9:b114 with SMTP id d2-20020a170902cec200b001d772b9b114mr1268561plg.60.1706118450630; Wed, 24 Jan 2024 09:47:30 -0800 (PST) Received: from localhost ([2601:644:9380:8cd0::7fb4]) by smtp.gmail.com with ESMTPSA id d5-20020a170902b70500b001d74c285b55sm5565938pls.67.2024.01.24.09.47.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Jan 2024 09:47:30 -0800 (PST) From: Matthew Wood To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: leitao@debian.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next v1 8/8] net: netconsole: append userdata to fragmented netconsole messages Date: Wed, 24 Jan 2024 09:47:06 -0800 Message-ID: <20240124174711.1906102-9-thepacketgeek@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240124174711.1906102-1-thepacketgeek@gmail.com> References: <20240124174711.1906102-1-thepacketgeek@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1788995136660165947 X-GMAIL-MSGID: 1788995136660165947 Regardless of whether the original message body or formatted userdata exceeds the MAX_PRINT_CHUNK, append userdata to the netconsole message starting with the first chunk that has available space after writing the body. Co-developed-by: Breno Leitao Signed-off-by: Breno Leitao Signed-off-by: Matthew Wood --- drivers/net/netconsole.c | 50 +++++++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 8df3932ef4fc..95e563e474af 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -1083,24 +1083,48 @@ static void send_ext_msg_udp(struct netconsole_target *nt, const char *msg, memcpy(buf + release_len, header, header_len); header_len += release_len; - while (offset < body_len) { + while (offset < body_len + userdata_len) { int this_header = header_len; - int this_chunk; + int this_offset = 0; + int this_chunk = 0; this_header += scnprintf(buf + this_header, sizeof(buf) - this_header, - ",ncfrag=%d/%d;", offset, body_len); - - this_chunk = min(body_len - offset, - MAX_PRINT_CHUNK - this_header); - if (WARN_ON_ONCE(this_chunk <= 0)) - return; - - memcpy(buf + this_header, body + offset, this_chunk); - - netpoll_send_udp(&nt->np, buf, this_header + this_chunk); + ",ncfrag=%d/%d;", offset, + body_len + userdata_len); + + /* Not all body data has been written yet */ + if (offset < body_len) { + this_chunk = min(body_len - offset, + MAX_PRINT_CHUNK - this_header); + if (WARN_ON_ONCE(this_chunk <= 0)) + return; + memcpy(buf + this_header, body + offset, this_chunk); + this_offset += this_chunk; + } + /* Body is fully written and there is pending userdata to write, + * append userdata in this chunk + */ + if (offset + this_offset >= body_len && + offset + this_offset < userdata_len + body_len) { + int sent_userdata = (offset + this_offset) - body_len; + int preceding_bytes = this_chunk + this_header; + + if (WARN_ON_ONCE(sent_userdata < 0)) + return; + + this_chunk = min(userdata_len - sent_userdata, + MAX_PRINT_CHUNK - preceding_bytes); + if (WARN_ON_ONCE(this_chunk <= 0)) + return; + memcpy(buf + this_header + this_offset, + userdata + sent_userdata, + this_chunk); + this_offset += this_chunk; + } - offset += this_chunk; + netpoll_send_udp(&nt->np, buf, this_header + this_offset); + offset += this_offset; } }