Regarding xhci_reinit_cached_ring() implementation

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

 



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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




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

  Powered by Linux