lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 16 Jun 2017 12:51:44 +0300
From:   Yury Norov <ynorov@...iumnetworks.com>
To:     linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Cc:     Thomas Gleixner <tglx@...utronix.de>,
        Jason Cooper <jason@...edaemon.net>,
        Marc Zyngier <marc.zyngier@....com>
Subject: Re: arm64: next-20170614 panics on boot

(CC irqchip maintainers)

On Thu, Jun 15, 2017 at 03:33:37PM +0300, Yury Norov wrote:
> On Thu, Jun 15, 2017 at 03:08:40PM +0300, Yury Norov wrote:
> > Hi all,
> > 
> > Today's linux next falls into panic in init_IRQ():
> > arch/arm64/kernel/irq.c:
> >  53 void __init init_IRQ(void)
> >  54 {
> >  55         irqchip_init();
> >  56         if (!handle_arch_irq)
> >  57                 panic("No interrupt controller found.");
> >  58 }
> > 
> > 
> > Bisecting points to the patch 6fedb069def034 ("of: Provide dummy
> > of_device_compatible_match() for compile-testing"), but reverting it
> > doesn't help. It seems like yesterday's linux-next also hangs.  Right
> > now I cannot continue with debugging, but if nothing will get clear,
> > I'll back to it at this evening.
> 
> Sorry, forgot to attach the config. This is it. Also, I run arm64 on
> qemu.

The next-20170616 boots well for me. I didn't manage to bisect the
source of problem - it points to different commmits, and reverting
them doesn't help. The source of the problem is that irqchip_init()
doesn't set the handle_arch_irq. It should be done in 
of_irq_init() at the line

drivers/of/irq.c:
542         while (!list_empty(&intc_desc_list)) {
        ...
561                         ret = desc->irq_init_cb(desc->dev,
562                                                 desc->interrupt_parent);
        ...
586         }

On next-20170614 and 15 intc_desc_list is empty at the point. It
should be populated earlier in the loop
510         for_each_matching_node_and_match(np, matches, &match)

But np becomes 0 at the 1st iteration, and so the program doesn't enter the
loop. At the first glance there's no recent changes in related code. Maybe it's dts
issue?..

Yury

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ