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-next>] [day] [month] [year] [list]
Message-ID: <74CDBE0F657A3D45AFBB94109FB122FF03112A5C22@HQMAIL01.nvidia.com>
Date:	Tue, 22 Feb 2011 19:12:07 -0800
From:	Stephen Warren <swarren@...dia.com>
To:	"Colin Cross (ccross@...roid.com)" <ccross@...roid.com>
CC:	"linux-tegra@...r.kernel.org" <linux-tegra@...r.kernel.org>,
	"linux-arm-kernel@...ts.infradead.org" 
	<linux-arm-kernel@...ts.infradead.org>,
	"Russell King - ARM Linux (linux@....linux.org.uk)" 
	<linux@....linux.org.uk>,
	"konkers@...roid.com" <konkers@...roid.com>,
	"Olof Johansson (olof@...om.net)" <olof@...om.net>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Problem with "ARM: tegra: Move tegra_common_init to
 tegra_init_early"

The following commit makes the Tegra APB DMA engine fail to initialize correctly:

commit 0cf6230af909a86f81907455eca2a5c9b8f68fe6

    ARM: tegra: Move tegra_common_init to tegra_init_early
    
    Move tegra_common_init to tegra_init_early, and set it
    as the init_early entry in the machine struct.
    Initializes the clocks earlier so that timers can enable
    their clocks.
    
    Also reorders the members in the Harmony and Trimslice
    boards' machine structs to match the order they are
    called in.

The reason is that tegra_init_early_ calls tegra_dma_init which calls
request_threaded_irq, which fails since the IRQ hasn't yet been marked valid;
that only happens in tegra_init_irq, which gets called after tegra_init_early.

This used to work OK, since tegra_init_early was tegra_common_init, which got
called after tegra_init_irq, basically from the beginning of tegra_harmony_init.

I tried moving the call to tegra_dma_init back to each of the very end of
tegra_init_irq and the very beginning of tegra_harmony_init. Both of these
resulted in a kernel that wouldn't boot.

Simply removing the call to tegra_dma_init completely does allow the kernel
to boot, but obviously, DMA isn't available.

I'm a little stumped why moving tegra_dma_init causes a boot failure. Does
anyone have any helpful ideas, or any alternative ways to fix the underlying
problem?

Thanks.

-- 
nvpublic

--
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ