forked from rpms/kernel
		
	* Wed Sep 09 2020 Fedora Kernel Team <kernel-team@fedoraproject.org> [5.9.0-0.rc4.20200909git34d4ddd359db.5] - Merge ark-patches Resolves: rhbz# Signed-off-by: Justin M. Forbes <jforbes@fedoraproject.org>
		
			
				
	
	
		
			66 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 | 
						|
From: Jiri Benc <jbenc@redhat.com>
 | 
						|
Date: Wed, 19 Feb 2020 11:52:21 +0100
 | 
						|
Subject: [PATCH] redhat: rh_kabi: deduplication friendly structs
 | 
						|
MIME-Version: 1.0
 | 
						|
Content-Type: text/plain; charset=UTF-8
 | 
						|
Content-Transfer-Encoding: 8bit
 | 
						|
 | 
						|
RH-Acked-by: Bruno Meneguele <bmeneg@redhat.com>
 | 
						|
RH-Acked-by: Jesper Brouer <brouer@redhat.com>
 | 
						|
RH-Acked-by: Prarit Bhargava <prarit@redhat.com>
 | 
						|
RH-Acked-by: Jiri Olsa <jolsa@redhat.com>
 | 
						|
RH-Acked-by: Toke Høiland-Jørgensen <toke@redhat.com>
 | 
						|
 | 
						|
Upstream status: RHEL only
 | 
						|
 | 
						|
We don't really need the field names to be globally unique, it is enough
 | 
						|
when they are unique in the given struct. Since structs do not generally
 | 
						|
span mutliple files, using the line number is enough to ensure an unique
 | 
						|
identifier. It means that we can't use two RH_KABI_RENAME macros on the same
 | 
						|
line but that's not happening anyway.
 | 
						|
 | 
						|
This allows pahole to deduplicate the type info of structs using kABI
 | 
						|
macros, lowering the size of vmlinuz from 26M to 8.5M.
 | 
						|
 | 
						|
Upstream Status: RHEL only
 | 
						|
Signed-off-by: Jiri Benc <jbenc@redhat.com>
 | 
						|
---
 | 
						|
 include/linux/rh_kabi.h | 6 ++++--
 | 
						|
 1 file changed, 4 insertions(+), 2 deletions(-)
 | 
						|
 | 
						|
diff --git a/include/linux/rh_kabi.h b/include/linux/rh_kabi.h
 | 
						|
index b90601e8a657..ea9c136bf884 100644
 | 
						|
--- a/include/linux/rh_kabi.h
 | 
						|
+++ b/include/linux/rh_kabi.h
 | 
						|
@@ -163,6 +163,8 @@
 | 
						|
 # define __RH_KABI_CHECK_SIZE(_item, _size)
 | 
						|
 #endif
 | 
						|
 | 
						|
+#define RH_KABI_UNIQUE_ID	__PASTE(rh_kabi_hidden_, __LINE__)
 | 
						|
+
 | 
						|
 # define _RH_KABI_DEPRECATE(_type, _orig)	_type rh_reserved_##_orig
 | 
						|
 # define _RH_KABI_DEPRECATE_FN(_type, _orig, _args...)  \
 | 
						|
 	_type (* rh_reserved_##_orig)(_args)
 | 
						|
@@ -171,7 +173,7 @@
 | 
						|
 		_new;					  \
 | 
						|
 		struct {				  \
 | 
						|
 			_orig;				  \
 | 
						|
-		} __UNIQUE_ID(rh_kabi_hide);		  \
 | 
						|
+		} RH_KABI_UNIQUE_ID;			  \
 | 
						|
 		__RH_KABI_CHECK_SIZE_ALIGN(_orig, _new);  \
 | 
						|
 	}
 | 
						|
 # define _RH_KABI_REPLACE_UNSAFE(_orig, _new)	_new
 | 
						|
@@ -218,7 +220,7 @@
 | 
						|
 #define RH_KABI_EXTEND_WITH_SIZE(_new, _size)				\
 | 
						|
 	RH_KABI_EXTEND(union {						\
 | 
						|
 		_new;							\
 | 
						|
-		unsigned long __UNIQUE_ID(rh_kabi_reserved)[_size];	\
 | 
						|
+		unsigned long RH_KABI_UNIQUE_ID[_size];			\
 | 
						|
 		__RH_KABI_CHECK_SIZE(_new, 8 * (_size));		\
 | 
						|
 	})
 | 
						|
 | 
						|
-- 
 | 
						|
2.28.0
 | 
						|
 |