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

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

On 03/07/2014 23:07, Gregory CLEMENT wrote:
> 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.

So it also boot well in 3.15 and then failed in 3.16-rc3. I hope it will
help the developers of the OMAP IOMMU driver to fix it.

Gregory

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