[media] cec: CEC_RECEIVE overwrote the timeout field
[deliverable/linux.git] / drivers / staging / media / cec / cec-api.c
index 9151b1fa18dc78e23a977c0c67a21f30fdcac506..879f7d96e1a7c58225f3901713679878df645824 100644 (file)
@@ -209,6 +209,7 @@ static long cec_transmit(struct cec_adapter *adap, struct cec_fh *fh,
 /* Called by CEC_RECEIVE: wait for a message to arrive */
 static int cec_receive_msg(struct cec_fh *fh, struct cec_msg *msg, bool block)
 {
+       u32 timeout = msg->timeout;
        int res;
 
        do {
@@ -225,6 +226,8 @@ static int cec_receive_msg(struct cec_fh *fh, struct cec_msg *msg, bool block)
                        kfree(entry);
                        fh->queued_msgs--;
                        mutex_unlock(&fh->lock);
+                       /* restore original timeout value */
+                       msg->timeout = timeout;
                        return 0;
                }
 
This page took 0.045427 seconds and 5 git commands to generate.