On Thu, Nov 19, 2020 at 11:42 AM Thierry Reding <thierry.reding@xxxxxxxxx> wrote: > > From: Thierry Reding <treding@xxxxxxxxxx> > > Commit d0511b5496c0 ("firmware: QCOM_SCM: Allow qcom_scm driver to be > loadable as a permenent module") causes the ARM SMMU driver to be built > as a loadable module when using the Aarch64 default configuration. This > in turn causes problems because if the loadable module is not shipped > in an initial ramdisk, then the deferred probe timeout mechanism will > cause all SMMU masters to probe without SMMU support and fall back to > just plain DMA ops (not IOMMU-backed). > > Once the system has mounted the rootfs, the ARM SMMU driver will then > be loaded, but since the ARM SMMU driver faults by default, this causes > a slew of SMMU faults for the SMMU masters that have already been set > up with plain DMA ops and cause these devices to malfunction. > FWIW I had the same issues on the Qualcomm platform and merged a patch that turns QCOM_SCM=y in arm64 defconfig earlier today. So this should hide the problem in next linux-next. (And it really should be =y in defconfig regardless of this revert or not). > Revert that commit to unbreak things while we look for an alternative > solution. > I don't fancy the fact that we have a situation where if you're unlucky to have probe deferrals lingering past late initcall things will start to just break and this from a growing number of resource types. But I also don't see any alternatives to fixing the kernel to handle this gracefully. Regards, Bjorn