From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D9650C63777 for ; Tue, 24 Nov 2020 17:32:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8430B206F7 for ; Tue, 24 Nov 2020 17:32:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390637AbgKXRcB (ORCPT ); Tue, 24 Nov 2020 12:32:01 -0500 Received: from 9.mo51.mail-out.ovh.net ([46.105.48.137]:43264 "EHLO 9.mo51.mail-out.ovh.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728749AbgKXRcA (ORCPT ); Tue, 24 Nov 2020 12:32:00 -0500 X-Greylist: delayed 1808 seconds by postgrey-1.27 at vger.kernel.org; Tue, 24 Nov 2020 12:32:00 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-gpio@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; > } > > /** > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 95B19C2D0E4 for ; Tue, 24 Nov 2020 17:34:04 +0000 (UTC) Received: from lists.ozlabs.org (lists.ozlabs.org [203.11.71.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id B4A72206C0 for ; Tue, 24 Nov 2020 17:34:03 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B4A72206C0 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kaod.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Received: from bilbo.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 4CgWN85Y0czDqgw for ; Wed, 25 Nov 2020 04:34:00 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=kaod.org (client-ip=188.165.42.229; helo=4.mo51.mail-out.ovh.net; envelope-from=clg@kaod.org; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=kaod.org X-Greylist: delayed 1206 seconds by postgrey-1.36 at bilbo; Wed, 25 Nov 2020 04:32:04 AEDT Received: from 4.mo51.mail-out.ovh.net (4.mo51.mail-out.ovh.net [188.165.42.229]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4CgWKw72grzDqgq for ; Wed, 25 Nov 2020 04:32:02 +1100 (AEDT) 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 , 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 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-mips@linux-mips.org, Matt Redfearn , Qais Yousef , Marc Zyngier , x86@kernel.org, linux-gpio@vger.kernel.org, Oliver O'Halloran , Frederic Barrat , Thomas Gleixner , =?UTF-8?Q?Michal_Such=c3=a1nek?= , linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" 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; > } > > /** > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 981E6C2D0E4 for ; Tue, 24 Nov 2020 16:55:07 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id F1495206D8 for ; Tue, 24 Nov 2020 16:55:06 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="za4xHi+Q" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F1495206D8 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kaod.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=U49zpSLC2dVfvLp6Y01/HKy1VmO9oQCQk8IF8ShwyFc=; b=za4xHi+QHLR97rztxtMNpQDrZ zis3N1y5uk8ceDuHHo5g7h+MK7+Xt02a20deNJKObWapyqrEb7RbXARIvjAYL8DD6XzpnL8Qh6Fms hulJcoRjX54l5lxT1KzE7l5Z6Rrm9gfDtRQ7IdrmbwiErzuMvS92u3tPTBFtPTqj2R7Y6Gmt+hOQB gYuFaSuTZvJd0xjsetGGBUzBAjfO/bq/0NmjIEYuRKtf5CMd0Vqw1oH/RUNm9aTv7CWL8yX4jot/d 6Li8HUgOUMO6oXYykeHYjknGTv5sKaXjCr5+bVzCK5CPRJPDZJg17+eKGRCNvJmX55IGioU01dA1U wLWQn5GxQ==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1khbaK-0005Au-CX; Tue, 24 Nov 2020 16:54:32 +0000 Received: from 7.mo51.mail-out.ovh.net ([46.105.33.25]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1khbaH-0005A9-0B for linux-arm-kernel@lists.infradead.org; Tue, 24 Nov 2020 16:54:30 +0000 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 , 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-Language: en-US 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 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201124_115429_188489_44EF3BDC X-CRM114-Status: GOOD ( 17.65 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-mips@linux-mips.org, Matt Redfearn , Qais Yousef , Marc Zyngier , x86@kernel.org, linux-gpio@vger.kernel.org, Oliver O'Halloran , Frederic Barrat , Thomas Gleixner , =?UTF-8?Q?Michal_Such=c3=a1nek?= , linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMTEvMjQvMjAgNzoxNyBBTSwgQWxleGV5IEthcmRhc2hldnNraXkgd3JvdGU6Cj4gX19pcnFf ZG9tYWluX2FsbG9jX2lycXMoKSBjYW4gYWxyZWFkeSBoYW5kbGUgdmlycT09LTEgYW5kIGZyZWUK PiBkZXNjcmlwdG9ycyBpZiBpdCBmYWlsZWQgYWxsb2NhdGluZyBoYXJkd2FyZSBpbnRlcnJ1cHRz IHNvIGxldCdzIHNraXAKPiB0aGlzIGV4dHJhIHN0ZXAuCj4gCj4gU2lnbmVkLW9mZi1ieTogQWxl eGV5IEthcmRhc2hldnNraXkgPGFpa0BvemxhYnMucnU+CgpMR1RNLAoKUmV2aWV3ZWQtYnk6IEPD qWRyaWMgTGUgR29hdGVyIDxjbGdAa2FvZC5vcmc+CgpDb3B5aW5nIHRoZSBNSVBTIGZvbGtzIHNp bmNlIHRoZSBJUEkgaW50ZXJmYWNlIGlzIG9ubHkgdXNlZCB1bmRlciBhcmNoL21pcHMuCgpDLgog Cj4gLS0tCj4gIGtlcm5lbC9pcnEvaXBpLmMgfCAxNiArKystLS0tLS0tLS0tLS0tCj4gIDEgZmls ZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1n aXQgYS9rZXJuZWwvaXJxL2lwaS5jIGIva2VybmVsL2lycS9pcGkuYwo+IGluZGV4IDQzZTNkMWJl NjIyYy4uMWIyODA3MzE4ZWE5IDEwMDY0NAo+IC0tLSBhL2tlcm5lbC9pcnEvaXBpLmMKPiArKysg Yi9rZXJuZWwvaXJxL2lwaS5jCj4gQEAgLTc1LDE4ICs3NSwxMiBAQCBpbnQgaXJxX3Jlc2VydmVf aXBpKHN0cnVjdCBpcnFfZG9tYWluICpkb21haW4sCj4gIAkJfQo+ICAJfQo+ICAKPiAtCXZpcnEg PSBpcnFfZG9tYWluX2FsbG9jX2Rlc2NzKC0xLCBucl9pcnFzLCAwLCBOVU1BX05PX05PREUsIE5V TEwpOwo+IC0JaWYgKHZpcnEgPD0gMCkgewo+IC0JCXByX3dhcm4oIkNhbid0IHJlc2VydmUgSVBJ LCBmYWlsZWQgdG8gYWxsb2MgZGVzY3NcbiIpOwo+IC0JCXJldHVybiAtRU5PTUVNOwo+IC0JfQo+ IC0KPiAtCXZpcnEgPSBfX2lycV9kb21haW5fYWxsb2NfaXJxcyhkb21haW4sIHZpcnEsIG5yX2ly cXMsIE5VTUFfTk9fTk9ERSwKPiAtCQkJCSAgICAgICAodm9pZCAqKSBkZXN0LCB0cnVlLCBOVUxM KTsKPiArCXZpcnEgPSBfX2lycV9kb21haW5fYWxsb2NfaXJxcyhkb21haW4sIC0xLCBucl9pcnFz LCBOVU1BX05PX05PREUsCj4gKwkJCQkgICAgICAgKHZvaWQgKikgZGVzdCwgZmFsc2UsIE5VTEwp Owo+ICAKPiAgCWlmICh2aXJxIDw9IDApIHsKPiAgCQlwcl93YXJuKCJDYW4ndCByZXNlcnZlIElQ SSwgZmFpbGVkIHRvIGFsbG9jIGh3IGlycXNcbiIpOwo+IC0JCWdvdG8gZnJlZV9kZXNjczsKPiAr CQlyZXR1cm4gLUVCVVNZOwo+ICAJfQo+ICAKPiAgCWZvciAoaSA9IDA7IGkgPCBucl9pcnFzOyBp KyspIHsKPiBAQCAtOTYsMTAgKzkwLDYgQEAgaW50IGlycV9yZXNlcnZlX2lwaShzdHJ1Y3QgaXJx X2RvbWFpbiAqZG9tYWluLAo+ICAJCWlycV9zZXRfc3RhdHVzX2ZsYWdzKHZpcnEgKyBpLCBJUlFf Tk9fQkFMQU5DSU5HKTsKPiAgCX0KPiAgCXJldHVybiB2aXJxOwo+IC0KPiAtZnJlZV9kZXNjczoK PiAtCWlycV9mcmVlX2Rlc2NzKHZpcnEsIG5yX2lycXMpOwo+IC0JcmV0dXJuIC1FQlVTWTsKPiAg fQo+ICAKPiAgLyoqCj4gCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtYXJtLWtlcm5lbAo=