[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <m1ps9pgq9e.fsf@ebiederm.dsl.xmission.com>
Date: Mon, 08 Jan 2007 14:30:53 -0700
From: ebiederm@...ssion.com (Eric W. Biederman)
To: "Lu, Yinghai" <yinghai.lu@....com>
Cc: "Linus Torvalds" <torvalds@...l.org>,
"Tobias Diedrich" <ranma+kernel@...edrich.de>,
"Andrew Morton" <akpm@...l.org>, "Adrian Bunk" <bunk@...sta.de>,
"Andi Kleen" <ak@...e.de>,
"Linux Kernel Mailing List" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 1/4] x86_64 io_apic: Implement remove_pin_to_irq
"Lu, Yinghai" <yinghai.lu@....com> writes:
> -----Original Message-----
> From: ebiederm@...ssion.com [mailto:ebiederm@...ssion.com]
> Sent: Monday, January 08, 2007 7:50 AM
> To: Linus Torvalds
> Cc: Tobias Diedrich; Lu, Yinghai; Andrew Morton; Adrian Bunk; Andi
> Kleen; Linux Kernel Mailing List
> Subject: [PATCH 1/4] x86_64 io_apic: Implement remove_pin_to_irq
>
> +static void remove_pin_to_irq(unsigned int irq, int apic, int pin)
> +{
> + struct irq_pin_list *entry = irq_2_pin + irq;
>
> You may need to update add_pin_to_irq to avoid multi entries for irq 0.
Any updates to add_pin_to_irq are wrong. It works fine. If there
is something wrong we need to fix remove_pin_to_irq.
What is the problem you see? Sorry I'm dense at the moment.
I preserve the invariant that irq_2_pin + irq is always the first
entry in the chain. I do this when I delete a multi chain entry
by copying the next entry over the current entry, and then freeing
(and leaking) the second entry in the chain.
Is there something wrong with that? I came within an inch of deleting
this multiple apic, pin to irq mapping code but the comments said it
is needed for some ioapic case. So in resurrecting this variant I may
have goofed somewhere.
Eric
-
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