ppc_rtas_progress_write() shows the first 255 bytes of a write and
returns that many, so a writer that loops until everything is written
shows the rest as a second message. Return the whole count, the rest is
ignored.

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Christian Brauner (Amutable) <[email protected]>
---
 arch/powerpc/kernel/rtas-proc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/kernel/rtas-proc.c b/arch/powerpc/kernel/rtas-proc.c
index f38df72e64b8..89b165986851 100644
--- a/arch/powerpc/kernel/rtas-proc.c
+++ b/arch/powerpc/kernel/rtas-proc.c
@@ -311,6 +311,7 @@ static int ppc_rtas_poweron_show(struct seq_file *m, void 
*v)
 static ssize_t ppc_rtas_progress_write(struct file *file,
                const char __user *buf, size_t count, loff_t *ppos)
 {
+       size_t len = count;
        unsigned long hex;
 
        if (count >= MAX_LINELENGTH)
@@ -324,7 +325,7 @@ static ssize_t ppc_rtas_progress_write(struct file *file,
        hex = simple_strtoul(progress_led, NULL, 10);
 
        rtas_progress ((char *)progress_led, hex);
-       return count;
+       return len;
 
        /* clear the line */
        /* rtas_progress("                   ", 0xffff);*/

-- 
2.53.0

Reply via email to