Blob Blame History Raw
From: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Subject: kabi: team: Hide new member header_ops
Patch-mainline: Never, kabi workaround
References: bsc#1220870 CVE-2023-52574

Commit 492032760127 ("team: fix null-ptr-deref when team device type
is changed") adds a new member to struct team, which kABI relevant.
Move the new member at the end of the struct and kABI protect it.

Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
---
 drivers/net/team/team.c |    3 +--
 include/linux/if_team.h |    5 +++--
 2 files changed, 4 insertions(+), 4 deletions(-)

--- a/drivers/net/team/team.c
+++ b/drivers/net/team/team.c
@@ -572,8 +572,7 @@ static int __team_change_mode(struct tea
 		team_mode_put(team->mode);
 		team_set_no_mode(team);
 		/* zero private data area */
-		memset(&team->mode_priv, 0,
-		       sizeof(struct team) - offsetof(struct team, mode_priv));
+		memset(&team->mode_priv, 0, sizeof(team->mode_priv));
 	}
 
 	if (!new_mode)
--- a/include/linux/if_team.h
+++ b/include/linux/if_team.h
@@ -178,8 +178,6 @@ struct team {
 	struct net_device *dev; /* associated netdevice */
 	struct team_pcpu_stats __percpu *pcpu_stats;
 
-	const struct header_ops *header_ops_cache;
-
 	struct mutex lock; /* used for overall locking, e.g. port lists write */
 
 	/*
@@ -212,6 +210,9 @@ struct team {
 		struct delayed_work dw;
 	} mcast_rejoin;
 	long mode_priv[TEAM_MODE_PRIV_LONGS];
+#ifndef __GENKSYMS__
+	const struct header_ops *header_ops_cache;
+#endif
 };
 
 static inline int team_dev_queue_xmit(struct team *team, struct team_port *port,