[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20140708120106.GS23978@titan.lakedaemon.net>
Date: Tue, 8 Jul 2014 08:01:06 -0400
From: Jason Cooper <jason@...edaemon.net>
To: Ezequiel Garcia <ezequiel.garcia@...e-electrons.com>
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Paolo Pisati <p.pisati@...il.com>,
Thomas Petazzoni <thomas.petazzoni@...e-electrons.com>,
Andrew Lunn <andrew@...n.ch>, Joerg Roedel <joro@...tes.org>,
Hiroshi.DOYU@...ia.com, linux-kernel@...r.kernel.org,
iommu@...ts.linux-foundation.org,
Laurent Pinchart <laurent.pinchart@...asonboard.com>,
Gregory CLEMENT <gregory.clement@...e-electrons.com>,
Sebastian Hesselbarth <sebastian.hesselbarth@...il.com>,
Florian Vaussard <florian.vaussard@...l.ch>,
linux-arm-kernel@...ts.infradead.org
Subject: Re: 3.16rc3 multiplatform, Armada 370 and IOMMU: unbootable kernel
Ezequiel,
On Mon, Jul 07, 2014 at 08:37:58PM -0300, Ezequiel Garcia wrote:
> On 07 Jul 11:30 AM, Greg Kroah-Hartman wrote:
> > On Mon, Jul 07, 2014 at 07:58:18AM -0300, Ezequiel Garcia wrote:
> [..]
> > >
> > > I guess I snipped the thread and lost most of the information about the panic.
> > > Here's the original bug report:
> > >
> > > http://www.spinics.net/lists/arm-kernel/msg344059.html
> > >
> > > The problem reported involves enabling OMAP IOMMU driver and not any other IOMMU
> > > driver. Doing some tracing and adding a few prints, we found that
> > > omap_iommu_init() sets a bus notifier for the platform bus type:
> > >
> > > omap_iommu_init -> bus_set_iommu -> iommu_bus_init:
> > >
> > > static void iommu_bus_init(struct bus_type *bus, struct iommu_ops *ops)
> > > {
> > > bus_register_notifier(bus, &iommu_bus_nb);
> > > bus_for_each_dev(bus, NULL, ops, add_iommu_group);
> > > }
> > >
> > > But the iommu bus notifier gets called for the 'pci' bus type, which
> > > has the iommu_ops field NULL (since it hasn't been set for iommu).
> >
> > So this is what needs to be figured out, how is the notifier being
> > called with a PCI device? Who else called iommu_bus_init() for the PCI
> > bus?
> >
>
> Nobody. The only caller of iommu_bus_init() the above OMAP IOMMU.
>
> However, I found something interesting. Tried to bisect this without much
> luck; I did two bisects and ended up in the same merge commit:
>
> # good: [0f16aa3c24a216d14d7f0587e1cbd2c1b51a38f3] Merge tag 'samsung-dt-3' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/dt
> # first bad commit: [755a9ba7bf24a45b6dbf8bb15a5a56c8ed12461a] Merge tag 'dt-for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc into next
>
> So, after doing a few diff's between that good and bad and searching for
> "bus_notifier" changes, saw something strange in arch/arm/mach-mvebu/coherency.c.
>
> It seems bus_register_notifier() is been called for platform and pci devices
> with the *same* notifier block. Haven't looked close enough, but you mentioned
> that could cause trouble?
>
> This patch fixes the issue here:
Thanks for digging in to this! Please submit this as patch on it's own
and I'll merge it in.
thx,
Jason.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists