Blob Blame History Raw
From: Petr Tesarik <ptesarik@suse.com>
Subject: net/smc: kABI workarounds for struct smc_sock
Patch-mainline: Never, kABI workaround
References: git-fixes

Commit 341adeec9adad0874f29a0a1af35638207352a39 adds new fields to
struct smc_sock. Since the size of this structure is only needed
to allocate the socket, kABI can be preserved by adding the new
fields to the end.

Signed-off-by: Petr Tesarik <ptesarik@suse.com>
---
 net/smc/smc.h |   14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

--- a/net/smc/smc.h
+++ b/net/smc/smc.h
@@ -233,14 +233,8 @@ struct smc_connection {
 struct smc_sock {				/* smc sock container */
 	struct sock		sk;
 	struct socket		*clcsock;	/* internal tcp socket */
-	void			(*clcsk_state_change)(struct sock *sk);
-						/* original stat_change fct. */
 	void			(*clcsk_data_ready)(struct sock *sk);
 						/* original data_ready fct. */
-	void			(*clcsk_write_space)(struct sock *sk);
-						/* original write_space fct. */
-	void			(*clcsk_error_report)(struct sock *sk);
-						/* original error_report fct. */
 	struct smc_connection	conn;		/* smc connection */
 	struct smc_sock		*listen_smc;	/* listen parent */
 	struct work_struct	connect_work;	/* handle non-blocking connect*/
@@ -268,6 +262,14 @@ struct smc_sock {				/* smc sock contain
 						/* protects clcsock of a listen
 						 * socket
 						 * */
+#ifndef __GENKSYMS__
+	void			(*clcsk_state_change)(struct sock *sk);
+						/* original stat_change fct. */
+	void			(*clcsk_write_space)(struct sock *sk);
+						/* original write_space fct. */
+	void			(*clcsk_error_report)(struct sock *sk);
+						/* original error_report fct. */
+#endif
 };
 
 static inline struct smc_sock *smc_sk(const struct sock *sk)