Commit 0e68ba84 authored by Randy Dunlap's avatar Randy Dunlap Committed by Tirui Yin
Browse files

virtio_console: eliminate anonymous module_init & module_exit

stable inclusion
from stable-v4.19.238
commit 0f3d824bd70a1303464d5e93ee3e7afe7832fe89
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IBP714
CVE: CVE-2022-49100

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=0f3d824bd70a1303464d5e93ee3e7afe7832fe89



--------------------------------

[ Upstream commit fefb8a2a ]

Eliminate anonymous module_init() and module_exit(), which can lead to
confusion or ambiguity when reading System.map, crashes/oops/bugs,
or an initcall_debug log.

Give each of these init and exit functions unique driver-specific
names to eliminate the anonymous names.

Example 1: (System.map)
 ffffffff832fc78c t init
 ffffffff832fc79e t init
 ffffffff832fc8f8 t init

Example 2: (initcall_debug log)
 calling  init+0x0/0x12 @ 1
 initcall init+0x0/0x12 returned 0 after 15 usecs
 calling  init+0x0/0x60 @ 1
 initcall init+0x0/0x60 returned 0 after 2 usecs
 calling  init+0x0/0x9a @ 1
 initcall init+0x0/0x9a returned 0 after 74 usecs

Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
Reviewed-by: default avatarAmit Shah <amit@kernel.org>
Cc: virtualization@lists.linux-foundation.org
Cc: Arnd Bergmann <arnd@arndb.de>
Link: https://lore.kernel.org/r/20220316192010.19001-3-rdunlap@infradead.org


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarTirui Yin <yintirui@huawei.com>
Reviewed-by: default avataryongqiang Liu <liuyongqiang13@huawei.com>
parent e3574c5c
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -2256,7 +2256,7 @@ static struct virtio_driver virtio_rproc_serial = {
	.remove =	virtcons_remove,
};

static int __init init(void)
static int __init virtio_console_init(void)
{
	int err;

@@ -2293,7 +2293,7 @@ static int __init init(void)
	return err;
}

static void __exit fini(void)
static void __exit virtio_console_fini(void)
{
	reclaim_dma_bufs();

@@ -2303,8 +2303,8 @@ static void __exit fini(void)
	class_destroy(pdrvdata.class);
	debugfs_remove_recursive(pdrvdata.debugfs_dir);
}
module_init(init);
module_exit(fini);
module_init(virtio_console_init);
module_exit(virtio_console_fini);

MODULE_DEVICE_TABLE(virtio, id_table);
MODULE_DESCRIPTION("Virtio console driver");