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=-5.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=no 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 5D254C433E6 for ; Thu, 21 Jan 2021 12:54:08 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 174B1239FD for ; Thu, 21 Jan 2021 12:54:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730076AbhAUMx7 (ORCPT ); Thu, 21 Jan 2021 07:53:59 -0500 Received: from mout.gmx.net ([212.227.15.19]:33185 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730017AbhAUMxB (ORCPT ); Thu, 21 Jan 2021 07:53:01 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1611233448; bh=wxmgfpmBhrsdPK93rM0xenUVwYAc2Qsuo4Jdk1DH/TU=; h=X-UI-Sender-Class:Subject:From:In-Reply-To:Date:Cc:References:To; b=bw1sSKonISN7cfR6Z+TEqNH9nFwgRxacHSMQFZbFAOcPNxSIJ1xIyHsDDfqZ0o5uj U4oEcZWMAzkPODGtakLkgiUivhvRBYquNchZ3Q0Y1igFfIHMeTOhbvloJbB0UpJ6JB CRIq3HF+QFbA8a0sifNDdxL6wKr+myc4C2ZCN2xY= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [10.42.0.78] ([83.204.192.78]) by mail.gmx.net (mrgmx005 [212.227.17.184]) with ESMTPSA (Nemesis) id 1MBDnI-1lAmcI1v5S-00Cm34; Thu, 21 Jan 2021 13:50:48 +0100 Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.5\)) Subject: Re: [RFC PATCH 7/7] irqchip/apple-aic: add SMP support to the Apple AIC driver. From: Mohamed Mediouni In-Reply-To: Date: Thu, 21 Jan 2021 13:50:47 +0100 Cc: Linux ARM , Mark Rutland , Catalin Marinas , Hector Martin , "linux-kernel@vger.kernel.org" , Marc Zyngier , Will Deacon , Stan Skowronek Content-Transfer-Encoding: quoted-printable Message-Id: References: <20210120132717.395873-1-mohamed.mediouni@caramail.com> <20210120132717.395873-8-mohamed.mediouni@caramail.com> To: Arnd Bergmann X-Mailer: Apple Mail (2.3654.60.0.2.5) X-Provags-ID: V03:K1:oZzUZUD1iqzn6wnOqTNUiSAJB4BtZLaIkOKa0UB4zSYBgDFKcm0 SusL/+ROWQfkMv60Nj8L0mP1V/jJToGuqaD+haRAkfbwRto1UsD60moR7+2L/sjcLGMb7HM O0KqAGDg+jhzu0NHalzHPC3lwMPp1kCf7V+dWtQCAAPcHvxo9cZRmyXs22XECgJhTQFFVgP v/Jyj+XadF1Lijdq6fjZA== X-UI-Out-Filterresults: notjunk:1;V03:K0:zdrNY4ysWEA=:CQ1F9tuXRmDE6hoCLvA/Uy SYw+rVAXXqDHCLpl2wQg4tiEv1TKZ1h/E8n/ceX/3wZhwQZVM00t/PsuqYzJ4LbeRWGCNsmG/ BegIwDeWuQezUZzoWkrk0e5LnnY21f1eZbNHVjjVTq+1SWd5/5gKrinIDFUDq2zNLDRYIor56 5v11P98lxqbSJBzLH5qeAhlN5jpsqft0+xI29cMQRcjAAydnqB8ZrP0Te0JWr+KGhAp1ZqyaZ 1D8sxz8Lw1Sc66po7GyLMGS+ddVT41JYOf35hjmVerDhmuMkFKnXh3cStpFNF9hhpAsxMR3bN fWXN7VdAsT/4+YVTWStZmKAXq//3FQzp8OW+cf20OMCzduu2hPfQ2ydCBp9A50FXQQQS+QtNt aiFj15cgx2qH2mpymiVIyV4n0rCYPrYBi+/J8sYD0cnQnYuhjL4jrobAWZh8CQoAZldxRdPm5 XwRaQSfwosmg+TIxMwkwk9lJD/U+NmUKqYc99QGvdb3b45krLBpOjGTTsCG3sR79Mtga1Z1XG 8GT7aJm3G6sNxX301U5xPqfhy+LN8Y8WIOsuRO1Ics3hdGw4OUPSUtx198qG6anrm08r18vRa MAetMNhQFdLZ5HZV0a012gBV9w8XnpKbUS0WiJO2JKBYCco1qUR1dQdIQydfRG+SF/LdBNref x5iz9IfkLAn/k7PVsAaTo831vTe+cqi2GtLQNcr7acde+RH4BiEKgrEEEkjEIAGwLwTKZAB7x UwWLzf5+DKbWnQebdlhk6Nq82m0qhqMrdXGMotG5zVQ+tYf9keLiDDtkSaMGCQNIP1bNUUeb7 tUXGkjKcIjXOP7nPU+RLr/BrxRgH0vE2YEXbA6ITSb2jhBSD59kWh1rBUnOSuPXqDtRE6IkTL qghbXsoO7BpT//wbiwA6PV/ggO1HVOxAGRzRlR5No= Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > On 21 Jan 2021, at 13:44, Arnd Bergmann wrote: >=20 > On Wed, Jan 20, 2021 at 2:27 PM Mohamed Mediouni > wrote: >=20 >> +#ifdef CONFIG_SMP >> +static void apple_aic_ipi_send_mask(struct irq_data *d, >> + const struct cpumask *mask) >=20 > Not sure we care about the #ifdef here, given that arch/arm64 does not > allow building a kernel without CONFIG_SMP. >=20 >> + /* >> + * Ensure that stores to Normal memory are visible to the >> + * other CPUs before issuing the IPI. >> + */ >> + wmb(); >> + >> + for_each_cpu (cpu, mask) { >> + smp_mb__before_atomic(); >> + atomic_or(1u << irqnr, per_cpu_ptr(&aic_ipi_mask, = cpu)); >> + smp_mb__after_atomic(); >> + lcpu =3D get_cpu(); >> + if (aic.fast_ipi) { >> + if ((lcpu >> 2) =3D=3D (cpu >> 2)) >> + write_sysreg(cpu & 3, = SR_APPLE_IPI_LOCAL); >> + else >> + write_sysreg((cpu & 3) | ((cpu >> 2) = << 16), >> + SR_APPLE_IPI_REMOTE); >> + } else >> + writel(lcpu =3D=3D cpu ? REG_IPI_FLAG_SELF : >> + = (REG_IPI_FLAG_OTHER << cpu), >> + aic.base + REG_IPI_SET); >> + put_cpu(); >> + } >> + >> + /* Force the above writes to be executed */ >> + if (aic.fast_ipi) >> + isb(); >> +} >=20 > Since this just loops over all CPUs, I'd probably just turn it into > an ipi_send_single() callback and have the caller do the > loop for simplicity. >=20 > I also have the feeling that splitting one hardware IPI into multiple > logical interrupts, which are then all registered by the same irq > handler adds a little more complexity than necessary. >=20 > Changing this would of course require modifications to > arch/arm64/kernel/smp.c, which is hardwired to use > CONFIG_GENERIC_IRQ_IPI in smp_cross_call(), and allowing > a different code path there may be worse than emulating an > irqchip. >=20 >> @@ -186,8 +325,11 @@ static int __init apple_aic_init(struct = device_node *node, >> if (WARN(!aic.base, "unable to map aic registers\n")) >> return -EINVAL; >>=20 >> + aic.fast_ipi =3D of_property_read_bool(node, "fast-ipi"); >=20 > Where is this property documented, and what decides which one to use? It=E2=80=99s getting documented in the next patch set. This property is there to enable support for older iPhone processors later on, some of which do not have fast IPI support. On Apple M1, fast-ipi is always on. Thank you, > Arnd 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=-5.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=no 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 C7A40C433DB for ; Thu, 21 Jan 2021 12:53:16 +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 6721D239FD for ; Thu, 21 Jan 2021 12:53:16 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6721D239FD Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=caramail.com 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:To:References:Message-Id:Date:In-Reply-To:From: Subject:Mime-Version:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=1C4HPxRG+yrQ4RyAf/RCh/zzXPkbT7TGlrGHHQoJ9do=; b=wbIkejYw62hWuKWPh5nQJMrZh TkhFQ13i8/HVl8axKex9p7Fegv9Pi3oWzbgwzmr/vSlXU4AMrgxrS6dd89cQLG5Xers+J2khrL1Qw vFXgkVmhm6P9tUyNKeHsY/HYV+9SkB0TVZOqTo8J6AWnCyjraS8ASL7l9gSYTwBg0lAIw/QQins7O /Jdw3q4FJlgVrjqRYc3LK4KdQR5UvnH/CJGdPFhM6zqeVChXZBA5Qdvtn46XgZon7kIMcPH/SUqIb pp58FJ0KKEouEL+ilEW+5OKnIF92VlMWtRO9rD0jOcQFWdNynjVu0sUek/BjG+x6rfeRfMLHQeA6t BE4U1CKMw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1l2ZQp-0002mG-BB; Thu, 21 Jan 2021 12:51:23 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1l2ZQo-0002lr-5N for linux-arm-kernel@merlin.infradead.org; Thu, 21 Jan 2021 12:51:22 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=To:References:Message-Id: Content-Transfer-Encoding:Cc:Date:In-Reply-To:From:Subject:Mime-Version: Content-Type:Sender:Reply-To:Content-ID:Content-Description; bh=HtxJ0y0HpBVuiE8m7viDtvgLeW569hMGl7R0mR7dNMQ=; b=BZFbiSavjARLKOft5ZgNIleXBD crXx6YgtrjonJRuNLio3IpYf/Ok8UOCL2QzyE33WFf60SGAFpyUG5uEaxjoIzonYC79wBZpTVxLvK 3uDznxDRmflff4kdeKNQSni17qfar92AGjY+e7qeadmI7ISKszm3y4Lc25dHX10GBHTcGqo8LZ3ox h30ekXvxBDwpu8uyJ0ow6UTcnJEBSGPbDMelclSpiWLx6Fy6BzFmBLZWw4Er/nnSbHOmezj/6FUoB zNsnXoTpBbLNcPKT4WvOXAQqV10GDtfmf15aDFaEIKtMG3n2FwbglGJZvWW2LPLtjANT8lVSEvxxY yDfOJopw==; Received: from mout.gmx.net ([212.227.15.19]) by casper.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1l2ZQY-00H3VC-0f for linux-arm-kernel@lists.infradead.org; Thu, 21 Jan 2021 12:51:07 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1611233448; bh=wxmgfpmBhrsdPK93rM0xenUVwYAc2Qsuo4Jdk1DH/TU=; h=X-UI-Sender-Class:Subject:From:In-Reply-To:Date:Cc:References:To; b=bw1sSKonISN7cfR6Z+TEqNH9nFwgRxacHSMQFZbFAOcPNxSIJ1xIyHsDDfqZ0o5uj U4oEcZWMAzkPODGtakLkgiUivhvRBYquNchZ3Q0Y1igFfIHMeTOhbvloJbB0UpJ6JB CRIq3HF+QFbA8a0sifNDdxL6wKr+myc4C2ZCN2xY= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [10.42.0.78] ([83.204.192.78]) by mail.gmx.net (mrgmx005 [212.227.17.184]) with ESMTPSA (Nemesis) id 1MBDnI-1lAmcI1v5S-00Cm34; Thu, 21 Jan 2021 13:50:48 +0100 Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.60.0.2.5\)) Subject: Re: [RFC PATCH 7/7] irqchip/apple-aic: add SMP support to the Apple AIC driver. From: Mohamed Mediouni In-Reply-To: Date: Thu, 21 Jan 2021 13:50:47 +0100 Message-Id: References: <20210120132717.395873-1-mohamed.mediouni@caramail.com> <20210120132717.395873-8-mohamed.mediouni@caramail.com> To: Arnd Bergmann X-Mailer: Apple Mail (2.3654.60.0.2.5) X-Provags-ID: V03:K1:oZzUZUD1iqzn6wnOqTNUiSAJB4BtZLaIkOKa0UB4zSYBgDFKcm0 SusL/+ROWQfkMv60Nj8L0mP1V/jJToGuqaD+haRAkfbwRto1UsD60moR7+2L/sjcLGMb7HM O0KqAGDg+jhzu0NHalzHPC3lwMPp1kCf7V+dWtQCAAPcHvxo9cZRmyXs22XECgJhTQFFVgP v/Jyj+XadF1Lijdq6fjZA== X-UI-Out-Filterresults: notjunk:1;V03:K0:zdrNY4ysWEA=:CQ1F9tuXRmDE6hoCLvA/Uy SYw+rVAXXqDHCLpl2wQg4tiEv1TKZ1h/E8n/ceX/3wZhwQZVM00t/PsuqYzJ4LbeRWGCNsmG/ BegIwDeWuQezUZzoWkrk0e5LnnY21f1eZbNHVjjVTq+1SWd5/5gKrinIDFUDq2zNLDRYIor56 5v11P98lxqbSJBzLH5qeAhlN5jpsqft0+xI29cMQRcjAAydnqB8ZrP0Te0JWr+KGhAp1ZqyaZ 1D8sxz8Lw1Sc66po7GyLMGS+ddVT41JYOf35hjmVerDhmuMkFKnXh3cStpFNF9hhpAsxMR3bN fWXN7VdAsT/4+YVTWStZmKAXq//3FQzp8OW+cf20OMCzduu2hPfQ2ydCBp9A50FXQQQS+QtNt aiFj15cgx2qH2mpymiVIyV4n0rCYPrYBi+/J8sYD0cnQnYuhjL4jrobAWZh8CQoAZldxRdPm5 XwRaQSfwosmg+TIxMwkwk9lJD/U+NmUKqYc99QGvdb3b45krLBpOjGTTsCG3sR79Mtga1Z1XG 8GT7aJm3G6sNxX301U5xPqfhy+LN8Y8WIOsuRO1Ics3hdGw4OUPSUtx198qG6anrm08r18vRa MAetMNhQFdLZ5HZV0a012gBV9w8XnpKbUS0WiJO2JKBYCco1qUR1dQdIQydfRG+SF/LdBNref x5iz9IfkLAn/k7PVsAaTo831vTe+cqi2GtLQNcr7acde+RH4BiEKgrEEEkjEIAGwLwTKZAB7x UwWLzf5+DKbWnQebdlhk6Nq82m0qhqMrdXGMotG5zVQ+tYf9keLiDDtkSaMGCQNIP1bNUUeb7 tUXGkjKcIjXOP7nPU+RLr/BrxRgH0vE2YEXbA6ITSb2jhBSD59kWh1rBUnOSuPXqDtRE6IkTL qghbXsoO7BpT//wbiwA6PV/ggO1HVOxAGRzRlR5No= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210121_125107_106841_58335AD6 X-CRM114-Status: GOOD ( 20.13 ) 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: Mark Rutland , Catalin Marinas , Hector Martin , "linux-kernel@vger.kernel.org" , Marc Zyngier , Will Deacon , Linux ARM , Stan Skowronek 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 Cgo+IE9uIDIxIEphbiAyMDIxLCBhdCAxMzo0NCwgQXJuZCBCZXJnbWFubiA8YXJuZEBrZXJuZWwu b3JnPiB3cm90ZToKPiAKPiBPbiBXZWQsIEphbiAyMCwgMjAyMSBhdCAyOjI3IFBNIE1vaGFtZWQg TWVkaW91bmkKPiA8bW9oYW1lZC5tZWRpb3VuaUBjYXJhbWFpbC5jb20+IHdyb3RlOgo+IAo+PiAr I2lmZGVmIENPTkZJR19TTVAKPj4gK3N0YXRpYyB2b2lkIGFwcGxlX2FpY19pcGlfc2VuZF9tYXNr KHN0cnVjdCBpcnFfZGF0YSAqZCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3Qgc3RydWN0IGNwdW1hc2sgKm1hc2spCj4gCj4gTm90IHN1cmUgd2UgY2FyZSBhYm91 dCB0aGUgI2lmZGVmIGhlcmUsIGdpdmVuIHRoYXQgYXJjaC9hcm02NCBkb2VzIG5vdAo+IGFsbG93 IGJ1aWxkaW5nIGEga2VybmVsIHdpdGhvdXQgQ09ORklHX1NNUC4KPiAKPj4gKyAgICAgICAvKgo+ PiArICAgICAqIEVuc3VyZSB0aGF0IHN0b3JlcyB0byBOb3JtYWwgbWVtb3J5IGFyZSB2aXNpYmxl IHRvIHRoZQo+PiArICAgICAqIG90aGVyIENQVXMgYmVmb3JlIGlzc3VpbmcgdGhlIElQSS4KPj4g KyAgICAgKi8KPj4gKyAgICAgICB3bWIoKTsKPj4gKwo+PiArICAgICAgIGZvcl9lYWNoX2NwdSAo Y3B1LCBtYXNrKSB7Cj4+ICsgICAgICAgICAgICAgICBzbXBfbWJfX2JlZm9yZV9hdG9taWMoKTsK Pj4gKyAgICAgICAgICAgICAgIGF0b21pY19vcigxdSA8PCBpcnFuciwgcGVyX2NwdV9wdHIoJmFp Y19pcGlfbWFzaywgY3B1KSk7Cj4+ICsgICAgICAgICAgICAgICBzbXBfbWJfX2FmdGVyX2F0b21p YygpOwo+PiArICAgICAgICAgICAgICAgbGNwdSA9IGdldF9jcHUoKTsKPj4gKyAgICAgICAgICAg ICAgIGlmIChhaWMuZmFzdF9pcGkpIHsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKChs Y3B1ID4+IDIpID09IChjcHUgPj4gMikpCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgd3JpdGVfc3lzcmVnKGNwdSAmIDMsIFNSX0FQUExFX0lQSV9MT0NBTCk7Cj4+ICsgICAgICAg ICAgICAgICAgICAgICAgIGVsc2UKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3 cml0ZV9zeXNyZWcoKGNwdSAmIDMpIHwgKChjcHUgPj4gMikgPDwgMTYpLAo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUl9BUFBMRV9JUElfUkVNT1RFKTsK Pj4gKyAgICAgICAgICAgICAgIH0gZWxzZQo+PiArICAgICAgICAgICAgICAgICAgICAgICB3cml0 ZWwobGNwdSA9PSBjcHUgPyBSRUdfSVBJX0ZMQUdfU0VMRiA6Cj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChSRUdfSVBJX0ZMQUdfT1RIRVIgPDwg Y3B1KSwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFpYy5iYXNlICsgUkVHX0lQ SV9TRVQpOwo+PiArICAgICAgICAgICAgICAgcHV0X2NwdSgpOwo+PiArICAgICAgIH0KPj4gKwo+ PiArICAgICAgIC8qIEZvcmNlIHRoZSBhYm92ZSB3cml0ZXMgdG8gYmUgZXhlY3V0ZWQgKi8KPj4g KyAgICAgICBpZiAoYWljLmZhc3RfaXBpKQo+PiArICAgICAgICAgICAgICAgaXNiKCk7Cj4+ICt9 Cj4gCj4gU2luY2UgdGhpcyBqdXN0IGxvb3BzIG92ZXIgYWxsIENQVXMsIEknZCBwcm9iYWJseSBq dXN0IHR1cm4gaXQgaW50bwo+IGFuIGlwaV9zZW5kX3NpbmdsZSgpIGNhbGxiYWNrIGFuZCBoYXZl IHRoZSBjYWxsZXIgZG8gdGhlCj4gbG9vcCBmb3Igc2ltcGxpY2l0eS4KPiAKPiBJIGFsc28gaGF2 ZSB0aGUgZmVlbGluZyB0aGF0IHNwbGl0dGluZyBvbmUgaGFyZHdhcmUgSVBJIGludG8gbXVsdGlw bGUKPiBsb2dpY2FsIGludGVycnVwdHMsIHdoaWNoIGFyZSB0aGVuIGFsbCByZWdpc3RlcmVkIGJ5 IHRoZSBzYW1lIGlycQo+IGhhbmRsZXIgYWRkcyBhIGxpdHRsZSBtb3JlIGNvbXBsZXhpdHkgdGhh biBuZWNlc3NhcnkuCj4gCj4gQ2hhbmdpbmcgdGhpcyB3b3VsZCBvZiBjb3Vyc2UgcmVxdWlyZSBt b2RpZmljYXRpb25zIHRvCj4gYXJjaC9hcm02NC9rZXJuZWwvc21wLmMsIHdoaWNoIGlzIGhhcmR3 aXJlZCB0byB1c2UKPiBDT05GSUdfR0VORVJJQ19JUlFfSVBJIGluIHNtcF9jcm9zc19jYWxsKCks IGFuZCBhbGxvd2luZwo+IGEgZGlmZmVyZW50IGNvZGUgcGF0aCB0aGVyZSBtYXkgYmUgd29yc2Ug dGhhbiBlbXVsYXRpbmcgYW4KPiBpcnFjaGlwLgo+IAo+PiBAQCAtMTg2LDggKzMyNSwxMSBAQCBz dGF0aWMgaW50IF9faW5pdCBhcHBsZV9haWNfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5vZGUs Cj4+ICAgICAgIGlmIChXQVJOKCFhaWMuYmFzZSwgInVuYWJsZSB0byBtYXAgYWljIHJlZ2lzdGVy c1xuIikpCj4+ICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+IAo+PiArICAgICAgIGFp Yy5mYXN0X2lwaSA9IG9mX3Byb3BlcnR5X3JlYWRfYm9vbChub2RlLCAiZmFzdC1pcGkiKTsKPiAK PiBXaGVyZSBpcyB0aGlzIHByb3BlcnR5IGRvY3VtZW50ZWQsIGFuZCB3aGF0IGRlY2lkZXMgd2hp Y2ggb25lIHRvIHVzZT8KSXTigJlzIGdldHRpbmcgZG9jdW1lbnRlZCBpbiB0aGUgbmV4dCBwYXRj aCBzZXQuCgpUaGlzIHByb3BlcnR5IGlzIHRoZXJlIHRvIGVuYWJsZSBzdXBwb3J0IGZvciBvbGRl ciBpUGhvbmUgcHJvY2Vzc29ycwpsYXRlciBvbiwgc29tZSBvZiB3aGljaCBkbyBub3QgaGF2ZSBm YXN0IElQSSBzdXBwb3J0LgoKT24gQXBwbGUgTTEsIGZhc3QtaXBpIGlzIGFsd2F5cyBvbi4KClRo YW5rIHlvdSwKPiAgICAgICBBcm5kCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtl cm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxt YW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=