• Paul Zimmerman's avatar
    xhci: Fix an error in count_sg_trbs_needed() · bcd2fde0
    Paul Zimmerman authored
    The expression
    
    	while (running_total < sg_dma_len(sg))
    
    does not take into account that the remaining data length can be less
    than sg_dma_len(sg). In that case, running_total can end up being
    greater than the total data length, so an extra TRB is counted.
    Changing the expression to
    
    	while (running_total < sg_dma_len(sg) && running_total < temp)
    
    fixes that.
    
    This patch should be queued for stable kernels back to 2.6.31.
    Signed-off-by: default avatarPaul Zimmerman <paulz@synopsys.com>
    Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
    Cc: stable@kernel.org
    bcd2fde0
xhci-ring.c 99.3 KB