scsi: qedf: Do not touch __user pointer in qedf_dbg_debug_cmd_read() directly
[linux-2.6-microblaze.git] / drivers / scsi / qedf / qedf_debugfs.c
index 3eb4334..1c57165 100644 (file)
@@ -138,15 +138,14 @@ qedf_dbg_debug_cmd_read(struct file *filp, char __user *buffer, size_t count,
                        loff_t *ppos)
 {
        int cnt;
+       char cbuf[32];
        struct qedf_dbg_ctx *qedf_dbg =
                                (struct qedf_dbg_ctx *)filp->private_data;
 
        QEDF_INFO(qedf_dbg, QEDF_LOG_DEBUGFS, "debug mask=0x%x\n", qedf_debug);
-       cnt = sprintf(buffer, "debug mask = 0x%x\n", qedf_debug);
+       cnt = scnprintf(cbuf, sizeof(cbuf), "debug mask = 0x%x\n", qedf_debug);
 
-       cnt = min_t(int, count, cnt - *ppos);
-       *ppos += cnt;
-       return cnt;
+       return simple_read_from_buffer(buffer, count, ppos, cbuf, cnt);
 }
 
 static ssize_t