WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH] xen: don't leak IRQs over suspend/resume.

To: "Ian Campbell" <ian.campbell@xxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] xen: don't leak IRQs over suspend/resume.
From: "Jan Beulich" <JBeulich@xxxxxxxxxx>
Date: Wed, 02 Dec 2009 08:47:54 +0000
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Wed, 02 Dec 2009 00:48:19 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <1259684130-20855-1-git-send-email-ian.campbell@xxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <1259684130-20855-1-git-send-email-ian.campbell@xxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
>>> Ian Campbell <ian.campbell@xxxxxxxxxx> 01.12.09 17:15 >>>
>On resume irq_info[*].evtchn is reset to 0 since event channel mappings are not
>preserved over suspend/resume. The other contents of irq_info is preserved to
>allow rebind_evtchn_irq() to function.
>
>However when a device resumes it will try to unbind from the previous IRQ (e.g.
>blkfront goes blkfront_resume() -> blkif_free() -> unbind_from_irqhandler() ->
>unbind_from_irq()). This will fail due to the check for VALID_EVTCHN in
>unbind_from_irq() and the IRQ is leaked. The device will then continue to
>resume and allocate a new IRQ, eventually leading to find_unbound_irq()
>panic()ing.
>
>Fix this by changing unbind_from_irq() to handle teardown of interrupts which
>have type!=IRQT_UNBOUND but are not currently bound to a specific event
>channel.

This seems applicable to the 2.6.18/.27 trees too, doesn't it?

Jan 


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel