From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH for-4.5 7/8] xen/irq: Handle multiple action per IRQ Date: Tue, 01 Apr 2014 14:52:06 +0100 Message-ID: <533AC486.8010401@linaro.org> References: <1390581822-32624-1-git-send-email-julien.grall@linaro.org> <1390581822-32624-8-git-send-email-julien.grall@linaro.org> <1392810905.29739.19.camel@kazak.uk.xensource.com> <53398D84.3020901@linaro.org> <1396281181.8667.29.camel@kazak.uk.xensource.com> <5339919D.7090801@linaro.org> <1396355354.8667.147.camel@kazak.uk.xensource.com> <533ABB8E.4070004@linaro.org> <1396358630.8667.174.camel@kazak.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta4.messagelabs.com ([85.158.143.247]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WUz6m-0000tq-OE for xen-devel@lists.xenproject.org; Tue, 01 Apr 2014 13:52:08 +0000 Received: by mail-wi0-f174.google.com with SMTP id d1so5207845wiv.7 for ; Tue, 01 Apr 2014 06:52:07 -0700 (PDT) In-Reply-To: <1396358630.8667.174.camel@kazak.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Ian Campbell Cc: xen-devel@lists.xenproject.org, tim@xen.org, Keir Fraser , stefano.stabellini@citrix.com, patches@linaro.org List-Id: xen-devel@lists.xenproject.org On 04/01/2014 02:23 PM, Ian Campbell wrote: > On Tue, 2014-04-01 at 14:13 +0100, Julien Grall wrote: >>>> - I need to use 2 variables to search for an element in a list as there is >>>> no way to know after the end of the loop if we found or not an element. >>> >>> You've written that a bit weirdly IMHO. >>> >>> list_for_each(...) >>> if (not the one we want) >>> continue >>> free the one we wanted >>> break; >>> >>> don't worry about warning on a non-existent IRQ, or set a simple >>> boolean. >> >> We have to worry about non-existent action otherwise Xen may segfault... > > Why? If it doesn't exist we don't do anything. > > We can't free in the loop because the action may be used on another CPU at the same it. (see "active" loop at the end). So I still need two variables (one for the loop and one for the real action). -- Julien Grall