On 5/25/26 03:16, Dan Carpenter wrote:
If the *ppos is non-zero then simple_write_to_buffer() will not
initialize the start of the buf[] buffer.  It doesn't really make sense
to allow non-zero values for *ppos, so check for that at the start and
return -EINVAL.

non-zero ppos seems to be handled properly by simple_write_to_buffer.

--Sean

Fixes: 28edaacb821c ("drm: zynqmp_dp: Add debugfs interface for compliance 
testing")
Signed-off-by: Dan Carpenter <[email protected]>
---
  drivers/gpu/drm/xlnx/zynqmp_dp.c | 6 ++++++
  1 file changed, 6 insertions(+)

diff --git a/drivers/gpu/drm/xlnx/zynqmp_dp.c b/drivers/gpu/drm/xlnx/zynqmp_dp.c
index 7fb11b0a44f0..847179476041 100644
--- a/drivers/gpu/drm/xlnx/zynqmp_dp.c
+++ b/drivers/gpu/drm/xlnx/zynqmp_dp.c
@@ -1888,6 +1888,9 @@ static ssize_t zynqmp_dp_pattern_write(struct file *file,
        ssize_t ret;
        int pattern;
+ if (*ppos != 0)
+               return -EINVAL;
+
        ret = simple_write_to_buffer(buf, sizeof(buf) - 1, ppos, user_buf,
                                     count);
        if (ret < 0)
@@ -2028,6 +2031,9 @@ static ssize_t zynqmp_dp_custom_write(struct file *file,
        ssize_t ret;
        char buf[sizeof(dp->test.custom)];
+ if (*ppos != 0)
+               return -EINVAL;
+
        ret = simple_write_to_buffer(buf, sizeof(buf), ppos, user_buf, count);
        if (ret < 0)
                return ret;

Reply via email to