Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp1850222pxu; Tue, 24 Nov 2020 10:18:47 -0800 (PST) X-Google-Smtp-Source: ABdhPJxPYq/rctEr3RRIjg3tfNbl4jQx3x+Jb4lflu1HLAtwiuqw9mFybOTXiMQ0W5elz5a32tlj X-Received: by 2002:a50:f115:: with SMTP id w21mr5114846edl.91.1606241927160; Tue, 24 Nov 2020 10:18:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1606241927; cv=none; d=google.com; s=arc-20160816; b=CenMJ+AadAePa2CV2Bg6w94ucs78oyJzZhR7+kJ8XH3MoUDeQ/8lOMbmArUKS2S/mo o3D/5HFJI2kVSAtqaaal6TJS34fR7XQe+ijV/FmEwa++OZv/4KjXskbzx5p+Sv3xn9Tn ijioI/zdbGmg9A2v3DX6qmbzyckALEe984fcb6RAyMTCEOkJz7F59ZFXutwnuW0zfxKS 2TyB1EducMo9G5+wn8YnUPHnWpRbVOXC+Q5NOC3HpmDY+1ojFH05qbYora0jfxKal2VS AP68J+uK5453ZB2+u/9z8LDDz+LF+pvLUlU0Ti3yVF+ChnWQEjoycIrZCqUsJtW4XipF 6lFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject; bh=0+wSpi3MJm80LlJfopFtLXFqfpz70zGWxJoihRTQGgA=; b=HzCgSi/+kjoY80H/thLbo9OdeHAajHh/wz1Ot5FEd3nbUW3NYGc8VHuRdxq7mxriW+ qkNPd8EOF3f3tlr3JKL7+4SErUf2D/b30KsmpHYb4ItRPZuq+XW/jEpqj73wBb1GT5Ii E0gX0c3I3OAfUgQ4LPZHLZUaytNWkux8l9aceUyUJBmEOvWY/LNd9j4Do0cP3SqR1MfF mxwWXXb9z24moqD7wzQgZe/s8H/i/F1hHr+bpAWzVHUV8m+tuvyqBqTtn2sh9UreWDOw nCXy06UdRZ88G2SUP7BKYPue9VOeizzBzZStOKBcnNN5WqUFODjf2YJDIIPwanTs60b8 157Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g24si9134731edj.168.2020.11.24.10.18.22; Tue, 24 Nov 2020 10:18:47 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2404367AbgKXSLw (ORCPT + 99 others); Tue, 24 Nov 2020 13:11:52 -0500 Received: from 4.mo51.mail-out.ovh.net ([188.165.42.229]:60114 "EHLO 4.mo51.mail-out.ovh.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2404225AbgKXSLw (ORCPT ); Tue, 24 Nov 2020 13:11:52 -0500 X-Greylist: delayed 4199 seconds by postgrey-1.27 at vger.kernel.org; Tue, 24 Nov 2020 13:11:51 EST Received: from mxplan5.mail.ovh.net (unknown [10.108.16.148]) by mo51.mail-out.ovh.net (Postfix) with ESMTPS id 45AE023CE84; Tue, 24 Nov 2020 17:54:18 +0100 (CET) Received: from kaod.org (37.59.142.105) by DAG4EX1.mxp5.local (172.16.2.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2044.4; Tue, 24 Nov 2020 17:54:16 +0100 Authentication-Results: garm.ovh; auth=pass (GARM-105G006f441115f-3859-42e7-9d6d-ccd259b89853, 970ACD818314199E15927CBC8014A4D4C9EA8B7B) smtp.auth=clg@kaod.org Subject: Re: [PATCH kernel v4 1/8] genirq/ipi: Simplify irq_reserve_ipi To: Alexey Kardashevskiy , CC: Marc Zyngier , , , Oliver O'Halloran , Frederic Barrat , Thomas Gleixner , =?UTF-8?Q?Michal_Such=c3=a1nek?= , , , Matt Redfearn , Qais Yousef , References: <20201124061720.86766-1-aik@ozlabs.ru> <20201124061720.86766-2-aik@ozlabs.ru> From: =?UTF-8?Q?C=c3=a9dric_Le_Goater?= Message-ID: Date: Tue, 24 Nov 2020 17:54:16 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <20201124061720.86766-2-aik@ozlabs.ru> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 8bit X-Originating-IP: [37.59.142.105] X-ClientProxiedBy: DAG6EX2.mxp5.local (172.16.2.52) To DAG4EX1.mxp5.local (172.16.2.31) X-Ovh-Tracer-GUID: abd77706-b6fe-4c7a-b8f7-b22673109b15 X-Ovh-Tracer-Id: 4231413326248905534 X-VR-SPAMSTATE: OK X-VR-SPAMSCORE: -100 X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrgedujedrudegkedgleehucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuqfggjfdpvefjgfevmfevgfenuceurghilhhouhhtmecuhedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhepuffvfhfhkffffgggjggtgfhisehtkeertddtfeejnecuhfhrohhmpeevrogurhhitggpnfgvpgfiohgrthgvrhcuoegtlhhgsehkrghougdrohhrgheqnecuggftrfgrthhtvghrnhepjeekudeuudevleegudeugeekleffveeludejteffiedvledvgfekueefudehheefnecukfhppedtrddtrddtrddtpdefjedrheelrddugedvrddutdehnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmohguvgepshhmthhpqdhouhhtpdhhvghlohepmhigphhlrghnhedrmhgrihhlrdhovhhhrdhnvghtpdhinhgvtheptddrtddrtddrtddpmhgrihhlfhhrohhmpegtlhhgsehkrghougdrohhrghdprhgtphhtthhopegrihhksehoiihlrggsshdrrhhu Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/24/20 7:17 AM, Alexey Kardashevskiy wrote: > __irq_domain_alloc_irqs() can already handle virq==-1 and free > descriptors if it failed allocating hardware interrupts so let's skip > this extra step. > > Signed-off-by: Alexey Kardashevskiy LGTM, Reviewed-by: Cédric Le Goater Copying the MIPS folks since the IPI interface is only used under arch/mips. C. > --- > kernel/irq/ipi.c | 16 +++------------- > 1 file changed, 3 insertions(+), 13 deletions(-) > > diff --git a/kernel/irq/ipi.c b/kernel/irq/ipi.c > index 43e3d1be622c..1b2807318ea9 100644 > --- a/kernel/irq/ipi.c > +++ b/kernel/irq/ipi.c > @@ -75,18 +75,12 @@ int irq_reserve_ipi(struct irq_domain *domain, > } > } > > - virq = irq_domain_alloc_descs(-1, nr_irqs, 0, NUMA_NO_NODE, NULL); > - if (virq <= 0) { > - pr_warn("Can't reserve IPI, failed to alloc descs\n"); > - return -ENOMEM; > - } > - > - virq = __irq_domain_alloc_irqs(domain, virq, nr_irqs, NUMA_NO_NODE, > - (void *) dest, true, NULL); > + virq = __irq_domain_alloc_irqs(domain, -1, nr_irqs, NUMA_NO_NODE, > + (void *) dest, false, NULL); > > if (virq <= 0) { > pr_warn("Can't reserve IPI, failed to alloc hw irqs\n"); > - goto free_descs; > + return -EBUSY; > } > > for (i = 0; i < nr_irqs; i++) { > @@ -96,10 +90,6 @@ int irq_reserve_ipi(struct irq_domain *domain, > irq_set_status_flags(virq + i, IRQ_NO_BALANCING); > } > return virq; > - > -free_descs: > - irq_free_descs(virq, nr_irqs); > - return -EBUSY; > } > > /** >