On Tue, Jul 22, 2014 at 09:56:29AM -0400, Benjamin Romer wrote:
> Move the /proc/visorchipset/parahotplug interface to sysfs under
> /sys/devices/platform/visorchipset/guest/parahotplug.
> 
> The parahotplug interface is used to deal with recovery situations on s-Par
> guest partitions. The command service partition will send a message to a guest
> when a device that guest is using needs to be temporarily removed. The message
> triggers a udev event that will cause a recovery script to run. When that
> script has completed its work, it will write to the parahotplug interface to
> send a message back to Command indicating that it is safe to remove the 
> device.
> 
> Moving this interface to sysfs orphans the visorchipset_proc_read_writeonly()
> function, so it is also removed.
> 
> Signed-off-by: Benjamin Romer <benjamin.ro...@unisys.com>
> ---
> v2: attribute creation was fixed and checks for controlvm_channel pointer were
> removed.
> 
>  .../unisys/visorchipset/visorchipset_main.c        | 59 
> ++++------------------
>  1 file changed, 11 insertions(+), 48 deletions(-)
> 
> diff --git a/drivers/staging/unisys/visorchipset/visorchipset_main.c 
> b/drivers/staging/unisys/visorchipset/visorchipset_main.c
> index 74ab15b..c88f95f 100644
> --- a/drivers/staging/unisys/visorchipset/visorchipset_main.c
> +++ b/drivers/staging/unisys/visorchipset/visorchipset_main.c
> @@ -129,19 +129,12 @@ static MYPROCTYPE *PartitionType;
>  #define VISORCHIPSET_DIAG_PROC_ENTRY_FN "diagdump"
>  static struct proc_dir_entry *diag_proc_dir;
>  
> -#define VISORCHIPSET_PARAHOTPLUG_PROC_ENTRY_FN "parahotplug"
> -static struct proc_dir_entry *parahotplug_proc_dir;
> -
>  static LIST_HEAD(BusInfoList);
>  static LIST_HEAD(DevInfoList);
>  
>  static struct proc_dir_entry *ProcDir;
>  static VISORCHANNEL *ControlVm_channel;
>  
> -static ssize_t visorchipset_proc_read_writeonly(struct file *file,
> -                                             char __user *buf,
> -                                             size_t len, loff_t *offset);
> -
>  typedef struct {
>       U8 __iomem *ptr;        /* pointer to base address of payload pool */
>       U64 offset;             /* offset from beginning of controlvm
> @@ -324,6 +317,10 @@ static ssize_t chipsetready_store(struct device *dev,
>               struct device_attribute *attr, const char *buf, size_t count);
>  static DEVICE_ATTR_WO(chipsetready);
>  
> +static ssize_t parahotplug_store(struct device *dev,
> +             struct device_attribute *attr, const char *buf, size_t count);
> +static DEVICE_ATTR_WO(parahotplug);
> +
>  static struct attribute *visorchipset_install_attrs[] = {
>       &dev_attr_toolaction.attr,
>       &dev_attr_boottotool.attr,
> @@ -340,6 +337,7 @@ static struct attribute_group visorchipset_install_group 
> = {
>  
>  static struct attribute *visorchipset_guest_attrs[] = {
>       &dev_attr_chipsetready.attr,
> +     &dev_attr_parahotplug.attr,
>       NULL
>  };
>  
> @@ -1812,30 +1810,17 @@ parahotplug_process_message(CONTROLVM_MESSAGE *inmsg)
>  
>  /*
>   * Gets called when the udev script writes to
> - * /proc/visorchipset/parahotplug.  Expects input in the form of "<id>
> - * <active>" where <id> is the identifier passed to the script that
> - * matches a request on the request list, and <active> is 0 or 1
> - * indicating whether the device is now enabled or not.
> + * /sys/devices/platform/visorchipset/guest/parahotplug.
> + * Expects input in the form of "<id> <active>" where <id> is the identifier
> + * passed to the script that matches a request on the request list, and 
> <active>
> + * is 0 or 1 indicating whether the device is now enabled or not.

Why isn't this information in the ABI file?

Also, 2 values for one sysfs file?  Not acceptable, sorry.

greg k-h
_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to