xhci: convert TRB_CYCLE to le32 before using it to set Link TRB's cycle bit
This patch converts TRB_CYCLE to le32 to update correctly the Cycle Bit in 'control' field of the link TRB. This bug was found using sparse. Signed-off-by: Xenia Ragiadakou <burzalodowa@gmail.com> Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
This commit is contained in:
parent
6ce4eac1f6
commit
5871948738
1 changed files with 3 additions and 2 deletions
|
@ -57,7 +57,7 @@ static struct xhci_segment *xhci_segment_alloc(struct xhci_hcd *xhci,
|
|||
/* If the cycle state is 0, set the cycle bit to 1 for all the TRBs */
|
||||
if (cycle_state == 0) {
|
||||
for (i = 0; i < TRBS_PER_SEGMENT; i++)
|
||||
seg->trbs[i].link.control |= TRB_CYCLE;
|
||||
seg->trbs[i].link.control |= cpu_to_le32(TRB_CYCLE);
|
||||
}
|
||||
seg->dma = dma;
|
||||
seg->next = NULL;
|
||||
|
@ -308,7 +308,8 @@ static void xhci_reinit_cached_ring(struct xhci_hcd *xhci,
|
|||
sizeof(union xhci_trb)*TRBS_PER_SEGMENT);
|
||||
if (cycle_state == 0) {
|
||||
for (i = 0; i < TRBS_PER_SEGMENT; i++)
|
||||
seg->trbs[i].link.control |= TRB_CYCLE;
|
||||
seg->trbs[i].link.control |=
|
||||
cpu_to_le32(TRB_CYCLE);
|
||||
}
|
||||
/* All endpoint rings have link TRBs */
|
||||
xhci_link_segments(xhci, seg, seg->next, type);
|
||||
|
|
Loading…
Reference in a new issue