On Mon, Jan 23, 2017 at 05:06:08PM -0700, Jason Gunthorpe wrote:
> For a long time the cdev read/write interface had this strange
> idea that userspace had to read the result within 60 seconds otherwise
> it is discarded. Perhaps this made sense under some older locking regime,
> but in the modern kernel it is not required and is just dangerous.
> 
> Since something may be relying on this, double the timeout and print a
> warning. We can remove the code in a few years, but this should be
> enough to prevent new users.
> 
> Suggested-by: James Bottomley <james.bottom...@hansenpartnership.com>
> Signed-off-by: Jason Gunthorpe <jguntho...@obsidianresearch.com>

Reviewed-by: Jarkko Sakkinen <jarkko.sakki...@linux.intel.com>

Thanks. I'll include this to my next PR for 4.11 as it does not add
any new features.

/Jarkko

> ---
>  drivers/char/tpm/tpm-dev.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/char/tpm/tpm-dev.c b/drivers/char/tpm/tpm-dev.c
> index 826d4eaf84fcd6..06d7c8a6e7063c 100644
> --- a/drivers/char/tpm/tpm-dev.c
> +++ b/drivers/char/tpm/tpm-dev.c
> @@ -38,6 +38,9 @@ static void user_reader_timeout(unsigned long ptr)
>  {
>       struct file_priv *priv = (struct file_priv *)ptr;
>  
> +     pr_warn("TPM user space timeout is deprecated (pid=%d)\n",
> +             task_tgid_nr(current));
> +
>       schedule_work(&priv->work);
>  }
>  
> @@ -159,7 +162,7 @@ static ssize_t tpm_write(struct file *file, const char 
> __user *buf,
>       mutex_unlock(&priv->buffer_mutex);
>  
>       /* Set a timeout by which the reader must come claim the result */
> -     mod_timer(&priv->user_read_timer, jiffies + (60 * HZ));
> +     mod_timer(&priv->user_read_timer, jiffies + (120 * HZ));
>  
>       return in_size;
>  }
> -- 
> 2.7.4

Reply via email to