This patch export offsets of fields via /sys/devices/cpu/vmcs/. Individual offsets are contained in subfiles named by the filed's encoding, e.g.: /sys/devices/cpu/vmcs/0800 Signed-off-by: zhangyanfei <zhangyanfei at cn.fujitsu.com> --- drivers/base/core.c | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-) diff --git a/drivers/base/core.c b/drivers/base/core.c index 346be8b..dd05ee7 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -26,6 +26,7 @@ #include <linux/async.h> #include <linux/pm_runtime.h> #include <linux/netdevice.h> +#include <asm/vmcsinfo.h> #include "base.h" #include "power/power.h" @@ -1038,6 +1039,11 @@ int device_add(struct device *dev) error = dpm_sysfs_add(dev); if (error) goto DPMError; +#if defined(CONFIG_KVM_INTEL) || defined(CONFIG_KVM_INTEL_MODULE) + error = vmcs_sysfs_add(dev); + if (error) + goto VMCSError; +#endif device_pm_add(dev); /* Notify clients of device addition. This call must come @@ -1069,6 +1075,10 @@ int device_add(struct device *dev) done: put_device(dev); return error; +#if defined(CONFIG_KVM_INTEL) || defined(CONFIG_KVM_INTEL_MODULE) + VMCSError: + dpm_sysfs_remove(dev); +#endif DPMError: bus_remove_device(dev); BusError: @@ -1171,6 +1181,9 @@ void device_del(struct device *dev) blocking_notifier_call_chain(&dev->bus->p->bus_notifier, BUS_NOTIFY_DEL_DEVICE, dev); device_pm_remove(dev); +#if defined(CONFIG_KVM_INTEL) || defined(CONFIG_KVM_INTEL_MODULE) + vmcs_sysfs_remove(dev); +#endif dpm_sysfs_remove(dev); if (parent) klist_del(&dev->p->knode_parent); -- 1.7.1