On 7/28/2023 9:05 PM, Manivannan Sadhasivam wrote:
On Fri, Jul 28, 2023 at 08:50:55AM +0300, Dan Carpenter wrote:
On Fri, Jul 28, 2023 at 10:04:52AM +0530, Manivannan Sadhasivam wrote:
@@ -464,6 +484,13 @@ int mhi_ep_queue_skb(struct mhi_ep_device *mhi_dev, struct sk_buff *skb)
buf_left = skb->len;
ring = &mhi_cntrl->mhi_chan[mhi_chan->chan].ring;
+ if (mhi_cntrl->mhi_state == MHI_STATE_M3) {
+ if (mhi_ep_wake_host(mhi_cntrl)) {
Don't you need lock here in the case of multiple queue requests?
- Mani
+ dev_err(dev, "Failed to wakeup host\n");
+ return -ENODEV;
+ }
+ }
+
mutex_lock(&mhi_chan->lock);
^^^^^^^^^^^^^^^^^^^^^^^^^^
This lock isn't enough?
The position of this lock won't prevent cocurrent access to mhi_ep_wake_host().
- Mani
I will add the lock in the next series.
regards,
dan carpenter