3.16rc3 multiplatform, Armada 370 and IOMMU: unbootable kernel
gregory.clement at free-electrons.com
Thu Jul 3 14:07:41 PDT 2014
On 03/07/2014 23:01, Thomas Petazzoni wrote:
> If you have touched the OMAP IOMMU driver recently, please read on.
> On Thu, 03 Jul 2014 22:57:38 +0200, Gregory CLEMENT wrote:
>>> So it calls bus_set_iommu() unconditionally, without caring at all
>>> whether it is running on a platform that actually cares about OMAP
>>> IOMMU. And then later on, a bus notifier of the IOMMU subsystem gets
>>> called, and some NULL pointer gets dereferenced. I'm pretty sure that
>>> if you comment out this subsys_initcall(), you won't see the problem
>> Indeed I comment it, and I didn't see the problem anymore.
>>> However, this code has been around since a while, so I don't know if
>>> it's actually the change that makes it visible. Maybe some other IOMMU
>>> core internal change makes it actually visible. But this
>>> subsys_initcall() that does random stuff without caring about the
>>> platform it runs on anyway looks incorrect.
>> I think that nobody until now have run this configuration.
> Hum, indeed, I was assuming multi_v7_defconfig would have that enabled,
> but it only has the Tegra IOMMU enabled, and not the OMAP IOMMU one.
> So, the bug clearly belongs to the developers of the OMAP IOMMU driver,
> so I've added a bunch of people who touched this driver recently in Cc.
To add more information: I thought the problem was here from a long time
so I tested a 3.14 kernel, and in this case the kernel booted without any
problem. So the bug is pretty recent. I will do a last test with 3.15 and
I will keep you inform.
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
More information about the linux-arm-kernel