Subject: 3.16rc3 multiplatform, Armada 370 and IOMMU: unbootable kernel

From: [email-masked] (Gregory CLEMENT)
Date: Thu, 03 Jul 2014 23:07:41 +0200

On 03/07/2014 23:01, Thomas Petazzoni wrote:
> Hello,
> 
> 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
>>> anymore.
>>
>> 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.

> Thanks!
> Thomas

-- 
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com