platform: goldfish: pipe: don't log when dropping PIPE_ERROR_AGAIN
authorGreg Hackmann <ghackmann@google.com>
Wed, 6 Jan 2016 14:05:55 +0000 (14:05 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 29 Jan 2016 07:34:36 +0000 (23:34 -0800)
On PIPE_ERROR_AGAIN, just stopping in the middle of a transfer and
returning the number of bytes actually handled is the right behavior.

Other errors should be returned on the next read() or write() call.
Continue logging those until we confirm nothing actually relies on the
existing (wrong) behavior of dropping errors on the floor.

Signed-off-by: Greg Hackmann <ghackmann@google.com>
Signed-off-by: Jin Qian <jinqian@android.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/platform/goldfish/goldfish_pipe.c

index 0b187ff7a35bc4e58508ebceccdc27fa733c48dc..7a56be9c9432f27985012bc7591fd766ded29ae6 100644 (file)
@@ -346,7 +346,8 @@ static ssize_t goldfish_pipe_read_write(struct file *filp, char __user *buffer,
                         * cannot change it until we check if any user space
                         * ABI relies on this behavior.
                         */
-                       pr_info_ratelimited("android_pipe: backend returned error %d on %s\n",
+                       if (status != PIPE_ERROR_AGAIN)
+                               pr_info_ratelimited("goldfish_pipe: backend returned error %d on %s\n",
                                        status, is_write ? "write" : "read");
                        ret = 0;
                        break;