From nobody Tue Dec 2 02:41:10 2025 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B82E23254A1 for ; Wed, 19 Nov 2025 07:49:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763538576; cv=none; b=LJ3NLPB3VkpTocmuiP/SN6he7aUNLIUJMZQbnJsg5eZW5a2TzhsBB2htN5OzblQBJVkeLOu8x0yGQM/WlB3hR+0c5oWusEDCs+zh4Lrz4D2Zfp1iATR9xFDBn7BC00JgqKdZyQokirN12uDvszpKI/+/BvOZLGijKR1UOYgq1D8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763538576; c=relaxed/simple; bh=b8FscmmisLfC2hrZ743eM0Q8mvR5xh9F7WYVK3EV1tc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IDAoCdSGU7G9YNhSsegFjEn/kQUG6kc1TtjQLdTmiorMl0kBbf4uZ8m76Pv07bRUfx5SzP9da97QI3ufOL9VlGtJC7PUb8HmYLTHmtAwp/isqYlH4HW+8gH9lOzmCihv2kvKe3iaD/RSLFGZpYHJmUqPPyazxN83dKFq+LiR7S0= 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=GVT9wFUK; arc=none smtp.client-ip=209.85.221.44 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 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GVT9wFUK" Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-429c8632fcbso4465012f8f.1 for ; Tue, 18 Nov 2025 23:49:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1763538572; x=1764143372; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=6TImvYlNnQRMa8IRvJ9GWsrXwTK0Q8nmLpVv9SLrtH8=; b=GVT9wFUKcZnxOaXMo+JgG5fXyDxf5v0pPsOoc8E5WRFhLkKzjJmLZoRIou+Hc2eGUW Xs8EXfgW1oPqw7Q6NUhMjWidfRFQcMvbFcz46aK64zyUDzBiCtLU8IBqPs25owz34cJN gE0ORa2jzr1MU+J1pZRORitYG+vHzS3NT3vZID0EhVrb+QL4/Jlu+wsfsJkXmA3r4Rla 16Mzlqczbf0qjdVOLeV9p0HXHd3Fdthp9PcBrIpRLclrxLOwgBt31bgohxf414oGx6VS lgJwtjgB9PKp3KKO4hgPfRuyiTRpkGdsyB5XLS+6cZYj9eG8hvo7TSWb82IX+IoD5VFi XV0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763538572; x=1764143372; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=6TImvYlNnQRMa8IRvJ9GWsrXwTK0Q8nmLpVv9SLrtH8=; b=HsjdQqtKvgDfEhGviQL8JsxGC4YaMzqrM7ryn4CmbSxw9FxrbYAvV+KlIMwV1z/44o lrBof+1982m7Uu0O7Tcs4SXJbnRzsQOFn5vCnMowECe/V3sZtGQE95K8qeEFcTkqbfAm BGYHHX4cRQXwLgL8mUFuA7b45CPkm+RlGVTcAuI7pVPpcvYBOHO/04TEq68xEwnmZBdY IoILlld7JkbTsDbfz0dLk+ZS5N5UPcvgxPwq+NgRq3yFeO6E+kGqN7bdUVNhIF49IG2V deH6UD+VER3XjHQjZ5vOrpVNsRQdEv0oHU5IW3iauCbMw3fQ3tNjp96p6/jpUZZlf5nV HYBA== X-Forwarded-Encrypted: i=1; AJvYcCXF4WhMH8dNqs+PJ4VOmvLDiktvnzlC834z2QEOFoSWhHs2vBZ+UXkP1qKemJ9VqSQewGsgQ5W55CslTAo=@vger.kernel.org X-Gm-Message-State: AOJu0YwrIcYmlViZQ7PExKVn6H6LfqMQ7EP+lMk2+0TcX6fW4HbVLdE1 KB7aTozhM0tc9JUYYybjn6XFJ+IKH/l7G1bIeUJ55E23NADeYGP2ptyk X-Gm-Gg: ASbGncuBU35PyC+ySbCuSpjJsh1l3gRIW+wWHUE8tni2KKfj3hsTCDMi8VJFoHwgvZQ wA1BqwjD/Yy8o9omynYPPkEbNBe7lWiY4MWjzxO0uqtd8FfDTbtEqHEzEPgmRlYa4v229VxgCVt p91yasUboyc8z51XyWNuK1Z/YXJM0QJ2qd+bXUtAwNJNun2opBv9HuTQ5oBEXn3TompNwpP5nUr DROhoVSTVuwWp2RPmUQcZzHVQENFPuLoZ5yjEmk4/ZgebNLlhglEbjFIfPv0Tyxnw9RrOq+Sn5z 7YzFKsUXulvBEGG6zlxrHKoICbKpIPYESHJnJDCIdfUTfX7aIfa3+/iECny9lz7b/M1lSdrhrRE xvC6ymevdUbhCs2YKChnqnJZJA/bDyEpsjmv/5yaw8XRvv3zg75oPrsk7SBbfobf1uaS/0yydSh oVXWzLC3DEJj5fQu0= X-Google-Smtp-Source: AGHT+IExKSEYuSjTPblU2hxyhKKajyovUPxWOzaGhBnrkrN3rrrRZSJw3ztuShNlULzBNBuZEh/Fkg== X-Received: by 2002:a05:6000:2913:b0:42b:3806:2ba0 with SMTP id ffacd0b85a97d-42b593234camr20195873f8f.2.1763538571920; Tue, 18 Nov 2025 23:49:31 -0800 (PST) Received: from [192.168.1.243] ([143.58.192.81]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-42b53e91f2dsm37461146f8f.19.2025.11.18.23.49.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Nov 2025 23:49:31 -0800 (PST) From: Andre Carvalho Date: Wed, 19 Nov 2025 07:49:21 +0000 Subject: [PATCH net-next v5 3/5] netconsole: add STATE_DEACTIVATED to track targets disabled by low level Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251119-netcons-retrigger-v5-3-2c7dda6055d6@gmail.com> References: <20251119-netcons-retrigger-v5-0-2c7dda6055d6@gmail.com> In-Reply-To: <20251119-netcons-retrigger-v5-0-2c7dda6055d6@gmail.com> To: Breno Leitao , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Shuah Khan , Simon Horman Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, Andre Carvalho X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763538567; l=2409; i=asantostc@gmail.com; s=20250807; h=from:subject:message-id; bh=NaSr0aRo/KeIcHaXa24IkgHFUS2s0iyQ6sB/nOVkiyQ=; b=AfPaO140aeo7SeI9ECUWkGDzjLBwWiPAMfF6RVgFJC1p1ZvjcQ19wWNMVrRxj6cSX6acWoOQv t3krehSGJUFBLOPFXulnjSaBrIAZxriN8GXhpXcygPCr3NFSN1vyOH4 X-Developer-Key: i=asantostc@gmail.com; a=ed25519; pk=eWre+RwFHCxkiaQrZLsjC67mZ/pZnzSM/f7/+yFXY4Q= From: Breno Leitao When the low level interface brings a netconsole target down, record this using a new STATE_DEACTIVATED state. This allows netconsole to distinguish between targets explicitly disabled by users and those deactivated due to interface state changes. It also enables automatic recovery and re-enabling of targets if the underlying low-level interfaces come back online. From a code perspective, anything that is not STATE_ENABLED is disabled. Devices (de)enslaving are marked STATE_DISABLED to prevent automatically resuming as enslaved interfaces cannot have netconsole enabled. Signed-off-by: Breno Leitao Signed-off-by: Andre Carvalho --- drivers/net/netconsole.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 2d15f7ab7235..81641070e8e2 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -120,6 +120,7 @@ enum sysdata_feature { enum target_state { STATE_DISABLED, STATE_ENABLED, + STATE_DEACTIVATED, }; =20 /** @@ -575,6 +576,14 @@ static ssize_t enabled_store(struct config_item *item, if (ret) goto out_unlock; =20 + /* When the user explicitly enables or disables a target that is + * currently deactivated, reset its state to disabled. The DEACTIVATED + * state only tracks interface-driven deactivation and should _not_ + * persist when the user manually changes the target's enabled state. + */ + if (nt->state =3D=3D STATE_DEACTIVATED) + nt->state =3D STATE_DISABLED; + ret =3D -EINVAL; current_enabled =3D nt->state =3D=3D STATE_ENABLED; if (enabled =3D=3D current_enabled) { @@ -1460,10 +1469,19 @@ static int netconsole_netdev_event(struct notifier_= block *this, break; case NETDEV_RELEASE: case NETDEV_JOIN: - case NETDEV_UNREGISTER: + /* transition target to DISABLED instead of + * DEACTIVATED when (de)enslaving devices as + * their targets should not be automatically + * resumed when the interface is brought up. + */ nt->state =3D STATE_DISABLED; list_move(&nt->list, &target_cleanup_list); stopped =3D true; + break; + case NETDEV_UNREGISTER: + nt->state =3D STATE_DEACTIVATED; + list_move(&nt->list, &target_cleanup_list); + stopped =3D true; } } netconsole_target_put(nt); --=20 2.52.0