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

From: [email-masked] (Thomas Petazzoni)
Date: Thu, 3 Jul 2014 23:01:47 +0200

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.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com