ishtp bus driver exposed helper functions for client buffer accessing,
so change to use these functions in ishtp-hid-client driver to avoid
access client buffer directly.

Signed-off-by: Even Xu <even...@intel.com>
Reviewed-by: Andriy Shevchenko <andriy.shevche...@intel.com>
Acked-by: Srinivas Pandruvada <srinivas.pandruv...@linux.intel.com>
---
 drivers/hid/intel-ish-hid/ishtp-hid-client.c | 13 +------------
 1 file changed, 1 insertion(+), 12 deletions(-)

diff --git a/drivers/hid/intel-ish-hid/ishtp-hid-client.c 
b/drivers/hid/intel-ish-hid/ishtp-hid-client.c
index 3a3203d..0a7270c 100644
--- a/drivers/hid/intel-ish-hid/ishtp-hid-client.c
+++ b/drivers/hid/intel-ish-hid/ishtp-hid-client.c
@@ -324,20 +324,11 @@ static void ish_cl_event_cb(struct ishtp_cl_device 
*device)
        struct ishtp_cl *hid_ishtp_cl = ishtp_get_drvdata(device);
        struct ishtp_cl_rb *rb_in_proc;
        size_t r_length;
-       unsigned long flags;
 
        if (!hid_ishtp_cl)
                return;
 
-       spin_lock_irqsave(&hid_ishtp_cl->in_process_spinlock, flags);
-       while (!list_empty(&hid_ishtp_cl->in_process_list.list)) {
-               rb_in_proc = list_entry(
-                       hid_ishtp_cl->in_process_list.list.next,
-                       struct ishtp_cl_rb, list);
-               list_del_init(&rb_in_proc->list);
-               spin_unlock_irqrestore(&hid_ishtp_cl->in_process_spinlock,
-                       flags);
-
+       while ((rb_in_proc = ishtp_cl_rx_get_rb(hid_ishtp_cl)) != NULL) {
                if (!rb_in_proc->buffer.data)
                        return;
 
@@ -347,9 +338,7 @@ static void ish_cl_event_cb(struct ishtp_cl_device *device)
                process_recv(hid_ishtp_cl, rb_in_proc->buffer.data, r_length);
 
                ishtp_cl_io_rb_recycle(rb_in_proc);
-               spin_lock_irqsave(&hid_ishtp_cl->in_process_spinlock, flags);
        }
-       spin_unlock_irqrestore(&hid_ishtp_cl->in_process_spinlock, flags);
 }
 
 /**
-- 
2.7.4

Reply via email to