wil6210: allow empty WMI commands in debugfs wmi_send
authorLior David <qca_liord@qca.qualcomm.com>
Mon, 21 Mar 2016 20:01:11 +0000 (22:01 +0200)
committerKalle Valo <kvalo@qca.qualcomm.com>
Mon, 4 Apr 2016 14:07:28 +0000 (17:07 +0300)
There are many valid WMI commands with only header without any
additional payload. Such WMI commands could not be sent using
the debugfs wmi_send facility. Fix the code to allow sending
of such commands.

Signed-off-by: Lior David <qca_liord@qca.qualcomm.com>
Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/wil6210/debugfs.c

index a4d3f70..b338a09 100644 (file)
@@ -832,7 +832,7 @@ static ssize_t wil_write_file_wmi(struct file *file, const char __user *buf,
        u16 cmdid;
        int rc, rc1;
 
-       if (cmdlen <= 0)
+       if (cmdlen < 0)
                return -EINVAL;
 
        wmi = kmalloc(len, GFP_KERNEL);
@@ -845,7 +845,7 @@ static ssize_t wil_write_file_wmi(struct file *file, const char __user *buf,
                return rc;
        }
 
-       cmd = &wmi[1];
+       cmd = (cmdlen > 0) ? &wmi[1] : NULL;
        cmdid = le16_to_cpu(wmi->command_id);
 
        rc1 = wmi_send(wil, cmdid, cmd, cmdlen);