From 3bcb1fb34fc8904413476afd87afbdeab3806e56 Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Thu, 2 Jul 2020 12:06:42 -0400 Subject: [PATCH] Use exported symbol bdevname() instead of disk_name() bdevname() is a simple wrapper over disk_name() but has the honor to be exported. Using it removes the need for a kallsym wrapper. Signed-off-by: Michael Jeanson Signed-off-by: Mathieu Desnoyers Change-Id: Ic2b2233c4db7826175c68edea69751ddcb17a5e6 --- lttng-statedump-impl.c | 13 +++++++++++-- wrapper/genhd.h | 28 +--------------------------- 2 files changed, 12 insertions(+), 29 deletions(-) diff --git a/lttng-statedump-impl.c b/lttng-statedump-impl.c index b60531d5..a6fa71a5 100644 --- a/lttng-statedump-impl.c +++ b/lttng-statedump-impl.c @@ -151,10 +151,19 @@ int lttng_enumerate_block_devices(struct lttng_session *session) disk_part_iter_init(&piter, disk, DISK_PITER_INCL_PART0); while ((part = disk_part_iter_next(&piter))) { + struct block_device bdev; char name_buf[BDEVNAME_SIZE]; - char *p; + const char *p; - p = wrapper_disk_name(disk, part->partno, name_buf); + /* + * Create a partial 'struct blockdevice' to use + * 'bdevname()' which is a simple wrapper over + * 'disk_name()' but has the honor to be EXPORT_SYMBOL. + */ + bdev.bd_disk = disk; + bdev.bd_part = part; + + p = bdevname(&bdev, name_buf); if (!p) { disk_part_iter_exit(&piter); class_dev_iter_exit(&iter); diff --git a/wrapper/genhd.h b/wrapper/genhd.h index a44198a7..4eac2c1a 100644 --- a/wrapper/genhd.h +++ b/wrapper/genhd.h @@ -14,37 +14,11 @@ #include -#ifdef CONFIG_KALLSYMS +#ifdef CONFIG_KALLSYMS_ALL #include #include -static inline -char *wrapper_disk_name(struct gendisk *hd, int partno, char *buf) -{ - char *(*disk_name_sym)(struct gendisk *hd, int partno, char *buf); - - disk_name_sym = (void *) kallsyms_lookup_funcptr("disk_name"); - if (disk_name_sym) { - return disk_name_sym(hd, partno, buf); - } else { - printk_once(KERN_WARNING "LTTng: disk_name symbol lookup failed.\n"); - return NULL; - } -} - -#else - -static inline -char *wrapper_disk_name(struct gendisk *hd, int partno, char *buf) -{ - return disk_name(hd, partno, buf); -} - -#endif - -#ifdef CONFIG_KALLSYMS_ALL - static inline struct class *wrapper_get_block_class(void) { -- 2.34.1