Hi

Although xhci_reinit_cached_ring() is not getting called for usual cases.
Only when xhci_ring_alloc() fails. But i see one problem with this
function.
This functions zeros out the all the segments of the ring and later calls
xhci_link_segments() to fill segment ptr and TRB type. I think zeroing out
LINK TRB would overwrite the original Toggle cycle bit value and make it
to 0 for all the segments. For example if you just consider 2-seg ring as
per spec
xhci_ring_alloc() is setting toggle cycle bit for last seg of the ring and
with memset to 0 will overwrite that. This will cause issue when xHC deq
ptr traverse through the link TRB it wont change its CCS flag and will
continue fetching TRB which was already retired.

Please let me know if i am missing something.

Thanks,
Hemant

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to