[PATCH net] netconsole: fix appending sysdata when sysdata_fields == SYSDATA_RELEASE

Gustavo Luiz Duarte posted 1 patch 4 months ago
drivers/net/netconsole.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
[PATCH net] netconsole: fix appending sysdata when sysdata_fields == SYSDATA_RELEASE
Posted by Gustavo Luiz Duarte 4 months ago
Before appending sysdata, prepare_extradata() checks if any feature is
enabled in sysdata_fields (and exits early if none is enabled).

When SYSDATA_RELEASE was introduced, we missed adding it to the list of
features being checked against sysdata_fields in prepare_extradata().
The result was that, if only SYSDATA_RELEASE is enabled in
sysdata_fields, we incorreclty exit early and fail to append the
release.

Instead of checking specific bits in sysdata_fields, check if
sysdata_fields has ALL bit zeroed and exit early if true. This fixes
case when only SYSDATA_RELEASE enabled and makes the code more general /
less error prone in future feature implementation.

Signed-off-by: Gustavo Luiz Duarte <gustavold@gmail.com>
---
 drivers/net/netconsole.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
index 4289ccd3e41b..176935a8645f 100644
--- a/drivers/net/netconsole.c
+++ b/drivers/net/netconsole.c
@@ -1252,7 +1252,6 @@ static int sysdata_append_release(struct netconsole_target *nt, int offset)
  */
 static int prepare_extradata(struct netconsole_target *nt)
 {
-	u32 fields = SYSDATA_CPU_NR | SYSDATA_TASKNAME;
 	int extradata_len;
 
 	/* userdata was appended when configfs write helper was called
@@ -1260,7 +1259,7 @@ static int prepare_extradata(struct netconsole_target *nt)
 	 */
 	extradata_len = nt->userdata_length;
 
-	if (!(nt->sysdata_fields & fields))
+	if (!nt->sysdata_fields)
 		goto out;
 
 	if (nt->sysdata_fields & SYSDATA_CPU_NR)

---
base-commit: 19272b37aa4f83ca52bdf9c16d5d81bdd1354494
change-id: 20250609-netconsole-fix-5465e2fd8f83

Best regards,
-- 
Gustavo Luiz Duarte <gustavold@gmail.com>
Re: [PATCH net] netconsole: fix appending sysdata when sysdata_fields == SYSDATA_RELEASE
Posted by Breno Leitao 4 months ago
On Mon, Jun 09, 2025 at 11:24:20AM -0700, Gustavo Luiz Duarte wrote:
> Before appending sysdata, prepare_extradata() checks if any feature is
> enabled in sysdata_fields (and exits early if none is enabled).
> 
> When SYSDATA_RELEASE was introduced, we missed adding it to the list of
> features being checked against sysdata_fields in prepare_extradata().
> The result was that, if only SYSDATA_RELEASE is enabled in
> sysdata_fields, we incorreclty exit early and fail to append the
> release.
> 
> Instead of checking specific bits in sysdata_fields, check if
> sysdata_fields has ALL bit zeroed and exit early if true. This fixes
> case when only SYSDATA_RELEASE enabled and makes the code more general /
> less error prone in future feature implementation.
> 
> Signed-off-by: Gustavo Luiz Duarte <gustavold@gmail.com>

Fixes: dd30ae533242 ("netconsole: append release to sysdata")

Reviewed-by: Breno Leitao <leitao@debian.org>

Thanks for the fix,
--breno