megaraid_sas "Failed from megasas_init_fw 6539" under Xen

From: James Dingwall
Date: Wed Jul 31 2024 - 05:28:58 EST


Hi,

I've been having a problem booting a Dell system with an H355 controller
(megaraid_sas) under Xen, bare metal is fine. The reported messages on
modprobe are:

FW now in Ready state
Failed to set DMA mask
Failed from megasas_init_fw 6539

I have narrowed the cause down to the conditional behaviour introduced
in ad96ce3252dbab773cb343220662df3d84dd8e80 for default_swiotlb_limit()
to support the CONFIG_SWIOTLB_DYNAMIC option and the change in
05ee774122bd4a2f298668d6d5fc9e7b685a5e31 to use that function for
xen_swiotlb_dma_supported(). It looks like both of these changes were
introduced for v6.6.

If I rebuild the kernel with CONFIG_SWIOTLB_DYNAMIC=n the system will boot
as expected. (I'm rebuilding an Ubuntu kernel where the default is
CONFIG_SWIOTLB_DYNAMIC=y)

It looks like megaraid_sas does something slightly unusual by using
DMA_BIT_MASK(63) since 894169db12463cea08d0e2a9e35f42b291340e5a but
I don't know if that is related.

Should I expect the system to behave with CONFIG_SWIOTLB_DYNAMIC=y
under Xen?

Thanks,
James