The Issue, as stated by LSI is
Initially set the consistent DMA mask to 32 bit and then change
to 64 bit mask after allocating RDPQ pools by calling the
_base_change_consistent_dma_mask. This is to ensure that all the
upper 32 bits of RDPQ entries's base address to be same.
If you set a 64 bit coherent mask before this point, you're benefiting
from being lucky that all the upper 32 bits of the allocations are the
same ... we can't code a driver to rely on luck. Particularly not when
the failure mode looks like it would be silent and deadly.
>Another comment here from you.What do you mean "fix the code"? The code isn't broken, it's
>"Well, it was originally a hack for altix, because they had no regions
>below 4GB and had to specifically manufacture them. As you know, in
>Linux, if Intel doesn't need it, no-one cares and the implementation
>Maybe, it is time to fix the code for more recent (even decent) hardware?
parametrising issues with particular hardware. There's no software work
around (except allocating memory with the correct characteristics).