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>] [day] [month] [year] [list]
Message-ID: <7109.1156475797@kao2.melbourne.sgi.com>
Date:	Fri, 25 Aug 2006 13:16:37 +1000
From:	Keith Owens <kaos@....com.au>
To:	linux-kernel@...r.kernel.org
Cc:	"Ingo Molnar" <mingo@...e.hu>,
	"Thomas Gleixner" <tglx@...utronix.de>
Subject: 2.6.18-rc4 i386 CONFIG_4KSTACKS does not use the hardirq stack

2.6.18-rc4 arch/i386/kernel/irq.c::do_IRQ has this code:


	if (!irq_desc[irq].handle_irq) {
		__do_IRQ(irq, regs);
		goto out_exit;
	}
#ifdef CONFIG_4KSTACKS

	curctx = (union irq_ctx *) current_thread_info();
	irqctx = hardirq_ctx[smp_processor_id()];
	...

All registered irqs on my system have a NULL handle_irq so do_IRQ
always calls __do_IRQ on the current stack, it never switches to the
hardirq_ctx stack.  Removing the test is trivial and it boots and runs
without the test for !irq_desc[irq].handle_irq, but why was the test
put there in the first place?

Note: with that test removed, do_IRQ runs on the hardirq stack, but
struct thread_info is not updated accordingly so backtrace is wrong.  I
can fix that as well, but I need to understand the test for handle_irq
first.

-
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