On Mon, Jul 21, 2014 at 02:47:45PM -0400, Erik Arfvidson wrote:
> This patch adds enable_ints entry to virthba directory
> 
> Signed-off-by: Erik Arfvidson <erik.arfvid...@unisys.com>
> Signed-off-by: Benjamin Romer <benjamin.ro...@unisys.com>
> ---
>  drivers/staging/unisys/virthba/virthba.c | 63 
> ++++++++++++++++++++++++++++++++
>  1 file changed, 63 insertions(+)
> 
> diff --git a/drivers/staging/unisys/virthba/virthba.c 
> b/drivers/staging/unisys/virthba/virthba.c
> index 857de11..65a75c8 100644
> --- a/drivers/staging/unisys/virthba/virthba.c
> +++ b/drivers/staging/unisys/virthba/virthba.c
> @@ -112,6 +112,8 @@ static void doDiskAddRemove(struct work_struct *work);
>  static void virthba_serverdown_complete(struct work_struct *work);
>  static ssize_t info_debugfs_read(struct file *file, char __user *buf,
>                       size_t len, loff_t *offset);
> +static ssize_t enable_ints_write(struct file *file,
> +                     const char __user *buffer, size_t count, loff_t *ppos);
>  
>  /*****************************************************/
>  /* Globals                                           */
> @@ -233,6 +235,10 @@ static const struct file_operations debugfs_info_fops = {
>       .read = info_debugfs_read,
>  };
>  
> +static const struct file_operations debugfs_enable_ints_fops = {
> +     .write = enable_ints_write,
> +};
> +
>  /*****************************************************/
>  /* Structs                                           */
>  /*****************************************************/
> @@ -1415,6 +1421,60 @@ static ssize_t info_debugfs_read(struct file *file,
>       return bytes_read;
>  }
>  
> +static ssize_t enable_ints_write(struct file *file,
> +                     const char __user *buffer, size_t count, loff_t *ppos)
> +{
> +     char buf[4];
> +     int i, new_value;
> +     struct virthba_info *virthbainfo;
> +
> +     U64 __iomem *Features_addr;
> +     U64 mask;
> +
> +     if (count >= ARRAY_SIZE(buf))
> +             return -EINVAL;
> +
> +     buf[count] = '\0';
> +     if (copy_from_user(buf, buffer, count)) {
> +             LOGERR("copy_from_user failed. buf<<%.*s>> count<<%lu>>\n",
> +                    (int) count, buf, count);
> +             return -EFAULT;
> +     }
> +
> +     i = kstrtoint(buf, 10 , &new_value);
> +
> +     if (i != 0) {
> +             LOGERR("Failed to scan value for enable_ints, buf<<%.*s>>",
> +                    (int) count, buf);
> +             return -EFAULT;

Careful with allowing userspace to flood the log :(

> +     }
> +
> +     /*set all counts to new_value usually 0*/

We don't have a lack of ' ' characters available to us, please use
them...


thanks,

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

Reply via email to