Re: [drivers/usb/usbip] BUG: corrupted list in vep_queue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/11/24 11:05, Shuah Khan wrote:
On 10/11/24 10:21, Chenyuan Yang wrote:
Hi Greg,

I'm curious about the best approach to fix this issue. I'm unsure if
adding a spinlock or mutex around the code would be good to ensure
that only one thread can modify the list at a time (then fix this
issue).

Alternatively, we could check if the entry is already in the list
within the vep_queue function:
```
if (!list_empty(&new_entry->list)) {
     // Entry is already in the list, handle it (e.g., log an error or ignore)
     return -EEXIST; // Or another appropriate error code
}


vep_queue() function is holding udc lock when it updates
the status and calls list_add_tail(). vep_dequeue() does
the same.

vep_free_request() doesn't see to hold the udc lock. I will
tale a look at this a bit more and get back to you on the
best approach. My guess is that the fix will be in another
function such as vep_free_request() - at the moment - that
routine is the one I suspect.



Can you try adding udc lock hold in vep_free_request() and see
if the problem persists?

thanks,
-- Shuah





[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux