The alignment mask in swiotlb_do_find_slots() masks off the high
bits which are not relevant for the alignment, so multiple
requirements are combined with a bitwise OR rather than AND.
In plain English, the stricter the alignment, the more bits must
be set in iotlb_align_mask.
Confusion may arise from the fact that the same variable is also
used to mask off the offset within a swiotlb slot, which is
achieved with a bitwise AND.
Fixes:
|
||
|---|---|---|
| .. | ||
| Kconfig | ||
| Makefile | ||
| coherent.c | ||
| contiguous.c | ||
| debug.c | ||
| debug.h | ||
| direct.c | ||
| direct.h | ||
| dummy.c | ||
| map_benchmark.c | ||
| mapping.c | ||
| ops_helpers.c | ||
| pool.c | ||
| remap.c | ||
| swiotlb.c | ||