[PATCH] Driver Core: Add /sys/hypervisor when needed
To have a home for all hypervisors, this patch creates /sys/hypervisor. A new config option SYS_HYPERVISOR is introduced, which should to be set by architecture dependent hypervisors (e.g. s390 or Xen). Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Michael Holzheu <holzheu@de.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
e391553222
commit
4039483fd3
6 changed files with 32 additions and 0 deletions
|
@ -38,3 +38,7 @@ config DEBUG_DRIVER
|
|||
If you are unsure about this, say N here.
|
||||
|
||||
endmenu
|
||||
|
||||
config SYS_HYPERVISOR
|
||||
bool
|
||||
default n
|
||||
|
|
|
@ -9,6 +9,7 @@ obj-$(CONFIG_FW_LOADER) += firmware_class.o
|
|||
obj-$(CONFIG_NUMA) += node.o
|
||||
obj-$(CONFIG_MEMORY_HOTPLUG) += memory.o
|
||||
obj-$(CONFIG_SMP) += topology.o
|
||||
obj-$(CONFIG_SYS_HYPERVISOR) += hypervisor.o
|
||||
|
||||
ifeq ($(CONFIG_DEBUG_DRIVER),y)
|
||||
EXTRA_CFLAGS += -DDEBUG
|
||||
|
|
|
@ -5,6 +5,11 @@ extern int devices_init(void);
|
|||
extern int buses_init(void);
|
||||
extern int classes_init(void);
|
||||
extern int firmware_init(void);
|
||||
#ifdef CONFIG_SYS_HYPERVISOR
|
||||
extern int hypervisor_init(void);
|
||||
#else
|
||||
static inline int hypervisor_init(void) { return 0; }
|
||||
#endif
|
||||
extern int platform_bus_init(void);
|
||||
extern int system_bus_init(void);
|
||||
extern int cpu_dev_init(void);
|
||||
|
|
19
drivers/base/hypervisor.c
Normal file
19
drivers/base/hypervisor.c
Normal file
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* hypervisor.c - /sys/hypervisor subsystem.
|
||||
*
|
||||
* This file is released under the GPLv2
|
||||
*
|
||||
*/
|
||||
|
||||
#include <linux/kobject.h>
|
||||
#include <linux/device.h>
|
||||
|
||||
#include "base.h"
|
||||
|
||||
decl_subsys(hypervisor, NULL, NULL);
|
||||
EXPORT_SYMBOL_GPL(hypervisor_subsys);
|
||||
|
||||
int __init hypervisor_init(void)
|
||||
{
|
||||
return subsystem_register(&hypervisor_subsys);
|
||||
}
|
|
@ -27,6 +27,7 @@ void __init driver_init(void)
|
|||
buses_init();
|
||||
classes_init();
|
||||
firmware_init();
|
||||
hypervisor_init();
|
||||
|
||||
/* These are also core pieces, but must come after the
|
||||
* core core pieces.
|
||||
|
|
|
@ -190,6 +190,8 @@ struct subsystem _varname##_subsys = { \
|
|||
|
||||
/* The global /sys/kernel/ subsystem for people to chain off of */
|
||||
extern struct subsystem kernel_subsys;
|
||||
/* The global /sys/hypervisor/ subsystem */
|
||||
extern struct subsystem hypervisor_subsys;
|
||||
|
||||
/**
|
||||
* Helpers for setting the kset of registered objects.
|
||||
|
|
Loading…
Reference in a new issue