The position pointer is only advanced if the return value of the write
operation is positive at ksys_write(). Therefore no need to manually
reset it when doing error handling.

Assisted-by: coccinelle  # to find it
Signed-off-by: Fernando Fernandez Mancera <[email protected]>
---
Note: i found this while fixing the same pattern in ipv6/ipv4 sysctl
proc handlers. This is not my area of expertise but I thought it was
worth contributing it :-)
---
 drivers/char/powernv-op-panel.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/char/powernv-op-panel.c b/drivers/char/powernv-op-panel.c
index 63175b765c90..a98acb199805 100644
--- a/drivers/char/powernv-op-panel.c
+++ b/drivers/char/powernv-op-panel.c
@@ -89,7 +89,6 @@ static int __op_panel_update_display(void)
 static ssize_t oppanel_write(struct file *filp, const char __user *userbuf,
                             size_t len, loff_t *f_pos)
 {
-       loff_t f_pos_prev = *f_pos;
        ssize_t ret;
        int rc;
 
@@ -105,7 +104,6 @@ static ssize_t oppanel_write(struct file *filp, const char 
__user *userbuf,
                if (rc != OPAL_SUCCESS) {
                        pr_err_ratelimited("OPAL call failed to write to op 
panel display [rc=%d]\n",
                                rc);
-                       *f_pos = f_pos_prev;
                        return -EIO;
                }
        }
-- 
2.55.0


Reply via email to