diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-03-22 19:55:17 (GMT) |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-03-22 19:55:17 (GMT) |
commit | 55fc733c7e1de05a03237d857f4fe6dcec52d8d9 (patch) | |
tree | a3f5d48c02fc9d0cf569519e645709cac9bf8d1c /drivers/xen/sys-hypervisor.c | |
parent | b852495908cd1b02ad47672a83f622ad4264801b (diff) | |
parent | e01dc539df3ada9061a1097224513236b5381349 (diff) | |
download | linux-55fc733c7e1de05a03237d857f4fe6dcec52d8d9.tar.xz |
Merge tag 'for-linus-4.6-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip
Pull xen updates from David Vrabel:
"Features and fixes for 4.6:
- Make earlyprintk=xen work for HVM guests
- Remove module support for things never built as modules"
* tag 'for-linus-4.6-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
drivers/xen: make platform-pci.c explicitly non-modular
drivers/xen: make sys-hypervisor.c explicitly non-modular
drivers/xen: make xenbus_dev_[front/back]end explicitly non-modular
drivers/xen: make [xen-]ballon explicitly non-modular
xen: audit usages of module.h ; remove unnecessary instances
xen/x86: Drop mode-selecting ifdefs in startup_xen()
xen/x86: Zero out .bss for PV guests
hvc_xen: make early_printk work with HVM guests
hvc_xen: fix xenboot for DomUs
hvc_xen: add earlycon support
Diffstat (limited to 'drivers/xen/sys-hypervisor.c')
-rw-r--r-- | drivers/xen/sys-hypervisor.c | 59 |
1 files changed, 8 insertions, 51 deletions
diff --git a/drivers/xen/sys-hypervisor.c b/drivers/xen/sys-hypervisor.c index b5a7342..6881b3c 100644 --- a/drivers/xen/sys-hypervisor.c +++ b/drivers/xen/sys-hypervisor.c @@ -9,7 +9,7 @@ #include <linux/slab.h> #include <linux/kernel.h> -#include <linux/module.h> +#include <linux/init.h> #include <linux/kobject.h> #include <linux/err.h> @@ -50,11 +50,6 @@ static int __init xen_sysfs_type_init(void) return sysfs_create_file(hypervisor_kobj, &type_attr.attr); } -static void xen_sysfs_type_destroy(void) -{ - sysfs_remove_file(hypervisor_kobj, &type_attr.attr); -} - /* xen version attributes */ static ssize_t major_show(struct hyp_sysfs_attr *attr, char *buffer) { @@ -111,11 +106,6 @@ static int __init xen_sysfs_version_init(void) return sysfs_create_group(hypervisor_kobj, &version_group); } -static void xen_sysfs_version_destroy(void) -{ - sysfs_remove_group(hypervisor_kobj, &version_group); -} - /* UUID */ static ssize_t uuid_show_fallback(struct hyp_sysfs_attr *attr, char *buffer) @@ -157,11 +147,6 @@ static int __init xen_sysfs_uuid_init(void) return sysfs_create_file(hypervisor_kobj, &uuid_attr.attr); } -static void xen_sysfs_uuid_destroy(void) -{ - sysfs_remove_file(hypervisor_kobj, &uuid_attr.attr); -} - /* xen compilation attributes */ static ssize_t compiler_show(struct hyp_sysfs_attr *attr, char *buffer) @@ -235,11 +220,6 @@ static int __init xen_compilation_init(void) return sysfs_create_group(hypervisor_kobj, &xen_compilation_group); } -static void xen_compilation_destroy(void) -{ - sysfs_remove_group(hypervisor_kobj, &xen_compilation_group); -} - /* xen properties info */ static ssize_t capabilities_show(struct hyp_sysfs_attr *attr, char *buffer) @@ -366,11 +346,6 @@ static int __init xen_properties_init(void) return sysfs_create_group(hypervisor_kobj, &xen_properties_group); } -static void xen_properties_destroy(void) -{ - sysfs_remove_group(hypervisor_kobj, &xen_properties_group); -} - #ifdef CONFIG_XEN_HAVE_VPMU struct pmu_mode { const char *name; @@ -484,11 +459,6 @@ static int __init xen_pmu_init(void) { return sysfs_create_group(hypervisor_kobj, &xen_pmu_group); } - -static void xen_pmu_destroy(void) -{ - sysfs_remove_group(hypervisor_kobj, &xen_pmu_group); -} #endif static int __init hyper_sysfs_init(void) @@ -517,7 +487,8 @@ static int __init hyper_sysfs_init(void) if (xen_initial_domain()) { ret = xen_pmu_init(); if (ret) { - xen_properties_destroy(); + sysfs_remove_group(hypervisor_kobj, + &xen_properties_group); goto prop_out; } } @@ -525,31 +496,17 @@ static int __init hyper_sysfs_init(void) goto out; prop_out: - xen_sysfs_uuid_destroy(); + sysfs_remove_file(hypervisor_kobj, &uuid_attr.attr); uuid_out: - xen_compilation_destroy(); + sysfs_remove_group(hypervisor_kobj, &xen_compilation_group); comp_out: - xen_sysfs_version_destroy(); + sysfs_remove_group(hypervisor_kobj, &version_group); version_out: - xen_sysfs_type_destroy(); + sysfs_remove_file(hypervisor_kobj, &type_attr.attr); out: return ret; } - -static void __exit hyper_sysfs_exit(void) -{ -#ifdef CONFIG_XEN_HAVE_VPMU - xen_pmu_destroy(); -#endif - xen_properties_destroy(); - xen_compilation_destroy(); - xen_sysfs_uuid_destroy(); - xen_sysfs_version_destroy(); - xen_sysfs_type_destroy(); - -} -module_init(hyper_sysfs_init); -module_exit(hyper_sysfs_exit); +device_initcall(hyper_sysfs_init); static ssize_t hyp_sysfs_show(struct kobject *kobj, struct attribute *attr, |