diff for duplicates of <20180807182013.GC4960@ziepe.ca> diff --git a/a/1.txt b/N1/1.txt index 7aa4c1d..491ddcb 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -2,28 +2,28 @@ On Mon, Aug 06, 2018 at 04:05:48PM -0700, James Bottomley wrote: > > @@ -118,25 +155,48 @@ ssize_t tpm_common_write(struct file *file, > > const char __user *buf, -> > * the char dev is held open. -> > */ -> > if (tpm_try_get_ops(priv->chip)) { +> > ? ?* the char dev is held open. +> > ? ?*/ +> > ? if (tpm_try_get_ops(priv->chip)) { > > - mutex_unlock(&priv->buffer_mutex); > > - return -EPIPE; > > + ret = -EPIPE; > > + goto out; -> > } +> > ? } > > - out_size = tpm_transmit(priv->chip, priv->space, priv- > > >data_buffer, > > - sizeof(priv->data_buffer), 0); -> > +> > ? > > - tpm_put_ops(priv->chip); > > - if (out_size < 0) { > > - mutex_unlock(&priv->buffer_mutex); > > - return out_size; > > + /* -> > + * If in nonblocking mode schedule an async job to send -> > + * the command return the size. -> > + * In case of error the err code will be returned in -> > + * the subsequent read call. -> > + */ +> > + ?* If in nonblocking mode schedule an async job to send +> > + ?* the command return the size. +> > + ?* In case of error the err code will be returned in +> > + ?* the subsequent read call. +> > + ?*/ > > + if (file->f_flags & O_NONBLOCK) { > > + queue_work(tpm_dev_wq, &priv->async_work); > > + return size; @@ -35,3 +35,7 @@ Doesn't lockdep complain when locks are left held after returning to user space? Even if it doesn't, that is a pretty ugly thing to do. Jason +-- +To unsubscribe from this list: send the line "unsubscribe linux-security-module" in +the body of a message to majordomo at vger.kernel.org +More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/a/content_digest b/N1/content_digest index 4a362f2..89eb86b 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,44 +1,38 @@ "ref\0153358975874.26901.16081444242758666628.stgit@tstruk-mobl1.jf.intel.com\0" "ref\0153359005823.27531.1050952672299708433.stgit@tstruk-mobl1.jf.intel.com\0" "ref\01533596748.3159.19.camel@HansenPartnership.com\0" - "From\0Jason Gunthorpe <jgg@ziepe.ca>\0" - "Subject\0Re: [PATCH v3 RESEND 2/2] tpm: add support for nonblocking operation\0" + "From\0jgg@ziepe.ca (Jason Gunthorpe)\0" + "Subject\0[PATCH v3 RESEND 2/2] tpm: add support for nonblocking operation\0" "Date\0Tue, 7 Aug 2018 12:20:13 -0600\0" - "To\0James Bottomley <James.Bottomley@hansenpartnership.com>\0" - "Cc\0Tadeusz Struk <tadeusz.struk@intel.com>" - jarkko.sakkinen@linux.intel.com - flihp@twobit.us - linux-integrity@vger.kernel.org - linux-security-module@vger.kernel.org - " linux-kernel@vger.kernel.org\0" + "To\0linux-security-module@vger.kernel.org\0" "\00:1\0" "b\0" "On Mon, Aug 06, 2018 at 04:05:48PM -0700, James Bottomley wrote:\n" "\n" "> > @@ -118,25 +155,48 @@ ssize_t tpm_common_write(struct file *file,\n" "> > const char __user *buf,\n" - "> > \t * the char dev is held open.\n" - "> > \t */\n" - "> > \tif (tpm_try_get_ops(priv->chip)) {\n" + "> > ?\t?* the char dev is held open.\n" + "> > ?\t?*/\n" + "> > ?\tif (tpm_try_get_ops(priv->chip)) {\n" "> > -\t\tmutex_unlock(&priv->buffer_mutex);\n" "> > -\t\treturn -EPIPE;\n" "> > +\t\tret = -EPIPE;\n" "> > +\t\tgoto out;\n" - "> > \t}\n" + "> > ?\t}\n" "> > -\tout_size = tpm_transmit(priv->chip, priv->space, priv-\n" "> > >data_buffer,\n" "> > -\t\t\t\tsizeof(priv->data_buffer), 0);\n" - "> > \n" + "> > ?\n" "> > -\ttpm_put_ops(priv->chip);\n" "> > -\tif (out_size < 0) {\n" "> > -\t\tmutex_unlock(&priv->buffer_mutex);\n" "> > -\t\treturn out_size;\n" "> > +\t/*\n" - "> > +\t * If in nonblocking mode schedule an async job to send\n" - "> > +\t * the command return the size.\n" - "> > +\t * In case of error the err code will be returned in\n" - "> > +\t * the subsequent read call.\n" - "> > +\t */\n" + "> > +\t?* If in nonblocking mode schedule an async job to send\n" + "> > +\t?* the command return the size.\n" + "> > +\t?* In case of error the err code will be returned in\n" + "> > +\t?* the subsequent read call.\n" + "> > +\t?*/\n" "> > +\tif (file->f_flags & O_NONBLOCK) {\n" "> > +\t\tqueue_work(tpm_dev_wq, &priv->async_work);\n" "> > +\t\treturn size;\n" @@ -49,6 +43,10 @@ "Doesn't lockdep complain when locks are left held after returning to\n" "user space? Even if it doesn't, that is a pretty ugly thing to do.\n" "\n" - Jason + "Jason\n" + "--\n" + "To unsubscribe from this list: send the line \"unsubscribe linux-security-module\" in\n" + "the body of a message to majordomo at vger.kernel.org\n" + More majordomo info at http://vger.kernel.org/majordomo-info.html -e5acf541b8519ec91fc66eeb4dd83c7fb7020a3c7f4405c549c0238259c1d8ee +1adc365d43fba6e07a3737c23858ee49640aa5b1ca3cef765ed062e09ddc1305
diff --git a/a/1.txt b/N2/1.txt index 7aa4c1d..42e0900 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -2,28 +2,28 @@ On Mon, Aug 06, 2018 at 04:05:48PM -0700, James Bottomley wrote: > > @@ -118,25 +155,48 @@ ssize_t tpm_common_write(struct file *file, > > const char __user *buf, -> > * the char dev is held open. -> > */ -> > if (tpm_try_get_ops(priv->chip)) { +> > * the char dev is held open. +> > */ +> > if (tpm_try_get_ops(priv->chip)) { > > - mutex_unlock(&priv->buffer_mutex); > > - return -EPIPE; > > + ret = -EPIPE; > > + goto out; -> > } +> > } > > - out_size = tpm_transmit(priv->chip, priv->space, priv- > > >data_buffer, > > - sizeof(priv->data_buffer), 0); -> > +> > > > - tpm_put_ops(priv->chip); > > - if (out_size < 0) { > > - mutex_unlock(&priv->buffer_mutex); > > - return out_size; > > + /* -> > + * If in nonblocking mode schedule an async job to send -> > + * the command return the size. -> > + * In case of error the err code will be returned in -> > + * the subsequent read call. -> > + */ +> > + * If in nonblocking mode schedule an async job to send +> > + * the command return the size. +> > + * In case of error the err code will be returned in +> > + * the subsequent read call. +> > + */ > > + if (file->f_flags & O_NONBLOCK) { > > + queue_work(tpm_dev_wq, &priv->async_work); > > + return size; diff --git a/a/content_digest b/N2/content_digest index 4a362f2..edfcb42 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -17,28 +17,28 @@ "\n" "> > @@ -118,25 +155,48 @@ ssize_t tpm_common_write(struct file *file,\n" "> > const char __user *buf,\n" - "> > \t * the char dev is held open.\n" - "> > \t */\n" - "> > \tif (tpm_try_get_ops(priv->chip)) {\n" + "> > \302\240\t\302\240* the char dev is held open.\n" + "> > \302\240\t\302\240*/\n" + "> > \302\240\tif (tpm_try_get_ops(priv->chip)) {\n" "> > -\t\tmutex_unlock(&priv->buffer_mutex);\n" "> > -\t\treturn -EPIPE;\n" "> > +\t\tret = -EPIPE;\n" "> > +\t\tgoto out;\n" - "> > \t}\n" + "> > \302\240\t}\n" "> > -\tout_size = tpm_transmit(priv->chip, priv->space, priv-\n" "> > >data_buffer,\n" "> > -\t\t\t\tsizeof(priv->data_buffer), 0);\n" - "> > \n" + "> > \302\240\n" "> > -\ttpm_put_ops(priv->chip);\n" "> > -\tif (out_size < 0) {\n" "> > -\t\tmutex_unlock(&priv->buffer_mutex);\n" "> > -\t\treturn out_size;\n" "> > +\t/*\n" - "> > +\t * If in nonblocking mode schedule an async job to send\n" - "> > +\t * the command return the size.\n" - "> > +\t * In case of error the err code will be returned in\n" - "> > +\t * the subsequent read call.\n" - "> > +\t */\n" + "> > +\t\302\240* If in nonblocking mode schedule an async job to send\n" + "> > +\t\302\240* the command return the size.\n" + "> > +\t\302\240* In case of error the err code will be returned in\n" + "> > +\t\302\240* the subsequent read call.\n" + "> > +\t\302\240*/\n" "> > +\tif (file->f_flags & O_NONBLOCK) {\n" "> > +\t\tqueue_work(tpm_dev_wq, &priv->async_work);\n" "> > +\t\treturn size;\n" @@ -51,4 +51,4 @@ "\n" Jason -e5acf541b8519ec91fc66eeb4dd83c7fb7020a3c7f4405c549c0238259c1d8ee +0d44ef95ef66307f560aecaca88f6ee780775c9865bfb2494c687cf2add83d6c
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.