[parisc-linux] rp2470 hang...getting closer

Matthew Wilcox willy@debian.org
Mon, 21 Oct 2002 15:59:32 +0100


On Sat, Oct 12, 2002 at 10:40:33PM -0600, Grant Grundler wrote:
> The problem is we shouldn't see *any* interrupts, not even timers.
> scsi_register_host() used spin_lock_irqsave() to acquire io_request_lock.
> Either someone is clobbering the irqsave or it's being ignored.
> That's the part the still needs to be worked out.

I wonder if this is interesting:

void handle_interruption(int code, struct pt_regs *regs)
{
        unsigned long fault_address = 0;
        unsigned long fault_space = 0;
        struct siginfo si;

        if (code == 1)
            pdc_console_restart();  /* switch back to pdc if HPMC */
        else
            sti();

so if we take, say, a page fault, we reenable interrupts on all CPUs.
Who the hell put this code in there?!

Thanks to Thibaut for finding this particular excrescence during
CONFIG_SMP frobbing on 2.5.  I'm not sure what this should be changed to.
local_irq_enable?  Do we want interrupts enabled at this point?

-- 
Revolutions do not require corporate support.