summaryrefslogtreecommitdiff
path: root/drivers/usb/storage/jumpshot.c
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2013-11-05 18:50:03 +0400
committerSarah Sharp <sarah.a.sharp@linux.intel.com>2014-03-05 03:38:14 +0400
commit84c1e40fd794a883431fc7688f653d3faa0265f0 (patch)
tree20a93c606bf709a6a364ff3b25945c63ecbac8af /drivers/usb/storage/jumpshot.c
parent127329d76b8534fb58c207db1f172d8468b828ff (diff)
downloadlinux-84c1e40fd794a883431fc7688f653d3faa0265f0.tar.xz
xhci: The trb_address_map radix tree expects 1KB segment memory aligment
If we align segment dma pool memory to 64 bytes, then a segment can be located at 0x10000040 - 0x1000043f, and a segment from another ring at 0x10000440 - 0x1000083f. The last trb in the first segment at 0x10000430 will then translate to the same radix tree key as the first trb of the second segment, while they are in different rings! This patches fixes this by changing the alignment of the dma pool to be 1KB rather then 64 bytes. An alternative fix would be to reduce the shift used to calculate the radix tree keys, but that would (slighlty) grow the radix trees so I believe this is the better fix. Note this patch is mostly theoretical since in practice I've not seen the dma_pool actually return not 1KB aligned memory. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Diffstat (limited to 'drivers/usb/storage/jumpshot.c')
0 files changed, 0 insertions, 0 deletions