lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 16 May 2014 14:43:10 -0700 From: Andi Kleen <andi@...stfloor.org> To: linux-kernel@...r.kernel.org Cc: akpm@...ux-foundation.org, Andi Kleen <ak@...ux.intel.com> Subject: [PATCH 3/8] list: Out of line INIT_LIST_HEAD and list_del From: Andi Kleen <ak@...ux.intel.com> Out of lining these two inlines saves ~21k on my vmlinux 14152713 2003976 1507328 17664017 10d8811 vmlinux-before-list 14131431 2008136 1507328 17646895 10d452f vmlinux-list Signed-off-by: Andi Kleen <ak@...ux.intel.com> --- include/linux/list.h | 15 ++++----------- lib/Makefile | 2 +- lib/list.c | 22 ++++++++++++++++++++++ 3 files changed, 27 insertions(+), 12 deletions(-) create mode 100644 lib/list.c diff --git a/include/linux/list.h b/include/linux/list.h index ef95941..8297885 100644 --- a/include/linux/list.h +++ b/include/linux/list.h @@ -21,11 +21,8 @@ #define LIST_HEAD(name) \ struct list_head name = LIST_HEAD_INIT(name) -static inline void INIT_LIST_HEAD(struct list_head *list) -{ - list->next = list; - list->prev = list; -} +/* Out of line to save space */ +void INIT_LIST_HEAD(struct list_head *list); /* * Insert a new entry between two known consecutive entries. @@ -101,12 +98,8 @@ static inline void __list_del_entry(struct list_head *entry) __list_del(entry->prev, entry->next); } -static inline void list_del(struct list_head *entry) -{ - __list_del(entry->prev, entry->next); - entry->next = LIST_POISON1; - entry->prev = LIST_POISON2; -} +/* Out of line to save space */ +void list_del(struct list_head *entry); #else extern void __list_del_entry(struct list_head *entry); extern void list_del(struct list_head *entry); diff --git a/lib/Makefile b/lib/Makefile index 0cd7b68..8b744f7 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -13,7 +13,7 @@ lib-y := ctype.o string.o vsprintf.o cmdline.o \ sha1.o md5.o irq_regs.o reciprocal_div.o argv_split.o \ proportions.o flex_proportions.o prio_heap.o ratelimit.o show_mem.o \ is_single_threaded.o plist.o decompress.o kobject_uevent.o \ - earlycpio.o + earlycpio.o list.o obj-$(CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS) += usercopy.o lib-$(CONFIG_MMU) += ioremap.o diff --git a/lib/list.c b/lib/list.c new file mode 100644 index 0000000..298768f --- /dev/null +++ b/lib/list.c @@ -0,0 +1,22 @@ +#include <linux/list.h> +#include <linux/module.h> + +/* + * Out of line versions of common list.h functions that bloat the + * kernel too much. + */ + +void INIT_LIST_HEAD(struct list_head *list) +{ + list->next = list; + list->prev = list; +} +EXPORT_SYMBOL(INIT_LIST_HEAD); + +void list_del(struct list_head *entry) +{ + __list_del(entry->prev, entry->next); + entry->next = LIST_POISON1; + entry->prev = LIST_POISON2; +} +EXPORT_SYMBOL(list_del); -- 1.9.0 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists