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=-8.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS 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 057C1C5519F for ; Wed, 18 Nov 2020 13:36:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9A71D2083E for ; Wed, 18 Nov 2020 13:36:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726209AbgKRNgg convert rfc822-to-8bit (ORCPT ); Wed, 18 Nov 2020 08:36:36 -0500 Received: from lonlinode-sdnproxy-1.icoremail.net ([139.162.193.133]:17212 "HELO lonlinode-sdnproxy-1.icoremail.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1725834AbgKRNgg (ORCPT ); Wed, 18 Nov 2020 08:36:36 -0500 Received: from [192.168.0.104] (unknown [113.247.217.134]) by c1app4 (Coremail) with SMTP id BAINCgC3F1FLI7VfoMOJAA--.58493S2; Wed, 18 Nov 2020 21:36:12 +0800 (CST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.4\)) Subject: Re: [RFC PATCH V2] acpi/irq: Add stacked IRQ domain support to PCI interrupt link From: Chen Baozi In-Reply-To: Date: Wed, 18 Nov 2020 21:36:11 +0800 Cc: Lorenzo Pieralisi , linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, Guohanjun , Bjorn Helgaas , Ard Biesheuvel , linux-arm-kernel@lists.infradead.org Content-Transfer-Encoding: 8BIT Message-Id: <9FC46D81-B76F-46EC-B022-396F59806803@phytium.com.cn> References: <20201117134214.970-1-chenbaozi@phytium.com.cn> To: Marc Zyngier X-Mailer: Apple Mail (2.3608.120.23.2.4) X-CM-TRANSID: BAINCgC3F1FLI7VfoMOJAA--.58493S2 X-Coremail-Antispam: 1UD129KBjvJXoWxGF13ZrWUKr4DXryrWr43Awb_yoW5Kw18pa yxt3yjyr18JFW7uFsxA3W8XFy3Xw40kry2krW3AasIqa90gF93KF1xCFyUWr48Cw1DGF4j yF1UZF15WF9xZFJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUk2b7Iv0xC_Zr1lb4IE77IF4wAFF20E14v26r4j6ryUM7CY07I2 0VC2zVCF04k26cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rw A2F7IY1VAKz4vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_JFI_Gr1l84ACjcxK6xII jxv20xvEc7CjxVAFwI0_Gr0_Cr1l84ACjcxK6I8E87Iv67AKxVWxJr0_GcWl84ACjcxK6I 8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI 64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8Jw Am72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41lc2xSY4AK67AK6ry8MxAIw28I cxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2 IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUtVW8ZwCIc40Y0x0EwIxGrwCI 42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWUJVW8JwCI42 IY6xAIw20EY4v20xvaj40_WFyUJVCq3wCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E 87Iv6xkF7I0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjxU4iL0UUUUU X-Originating-IP: [113.247.217.134] X-CM-SenderInfo: hfkh0updr2xqxsk13x1xpou0fpof0/1tbiDAPgP17uHwDMBQABs3 Precedence: bulk List-ID: X-Mailing-List: linux-acpi@vger.kernel.org Hi Marc, > On Nov 18, 2020, at 5:27 PM, Marc Zyngier wrote: > > Hi Chen, > > On top of Bjorn's comments: > > On 2020-11-17 13:42, Chen Baozi wrote: >> >> --- >> drivers/acpi/irq.c | 22 +++++++++++++++++++++- >> drivers/acpi/pci_irq.c | 6 ++++-- >> drivers/acpi/pci_link.c | 17 +++++++++++++++-- >> include/acpi/acpi_drivers.h | 2 +- >> include/linux/acpi.h | 4 ++++ >> 5 files changed, 45 insertions(+), 6 deletions(-) >> diff --git a/drivers/acpi/irq.c b/drivers/acpi/irq.c >> index e209081d644b..e78a44815c44 100644 >> --- a/drivers/acpi/irq.c >> +++ b/drivers/acpi/irq.c >> @@ -81,6 +81,25 @@ void acpi_unregister_gsi(u32 gsi) >> } >> EXPORT_SYMBOL_GPL(acpi_unregister_gsi); >> +int acpi_register_irq(struct device *dev, u32 irq, int trigger, >> + int polarity, struct fwnode_handle *domain_id) >> +{ >> + struct irq_fwspec fwspec; >> + >> + if (WARN_ON(!domain_id)) { >> + pr_warn("GSI: No registered irqchip, giving up\n"); > > A fwnode_handle is not an irqchip. It's just an opaque identifier > for a HW block. Furthermore, there is no need to have both a WARN_ON() > and a pr_warn(). Please pick one. > > I'd also suggest you rename domain_id to fwnode, which is the commonly > used idiom (yes, I know about the unfortunate precedent in acpi_register_gsi()). > >> + return -EINVAL; >> + } >> + >> + fwspec.fwnode = domain_id; >> + fwspec.param[0] = irq; >> + fwspec.param[1] = acpi_dev_get_irq_type(trigger, polarity); >> + fwspec.param_count = 2; >> + >> + return irq_create_fwspec_mapping(&fwspec); >> +} >> +EXPORT_SYMBOL_GPL(acpi_register_irq); > > By the way, this is almost an exact duplicate of acpi_register_gsi(). > You definitely want to make this code common. > >> @@ -115,6 +134,7 @@ acpi_get_irq_source_fwhandle(const struct >> acpi_resource_source *source) >> acpi_bus_put_acpi_device(device); >> return result; >> } >> +EXPORT_SYMBOL_GPL(acpi_get_irq_source_fwhandle); >> /* >> * Context for the resource walk used to lookup IRQ resources. >> diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c >> index 14ee631cb7cf..19296d70c95c 100644 >> --- a/drivers/acpi/pci_irq.c >> +++ b/drivers/acpi/pci_irq.c >> @@ -410,6 +410,7 @@ int acpi_pci_irq_enable(struct pci_dev *dev) >> char *link = NULL; >> char link_desc[16]; >> int rc; >> + struct fwnode_handle *irq_domain; > > fwnode_handle is most definitely not an IRQ domain. > >> @@ -140,6 +143,12 @@ static acpi_status >> acpi_pci_link_check_possible(struct acpi_resource *resource, >> link->irq.triggering = p->triggering; >> link->irq.polarity = p->polarity; >> link->irq.resource_type = ACPI_RESOURCE_TYPE_EXTENDED_IRQ; >> + if (p->resource_source.string_length) { >> + rs->index = p->resource_source.index; >> + rs->string_length = p->resource_source.string_length; >> + rs->string_ptr = kmalloc(rs->string_length, GFP_KERNEL); >> + strcpy(rs->string_ptr, p->resource_source.string_ptr); > > We have kstrdup() for this kind of things, as using rs->string_length to allocate > the buffer and strcpy() to copy it feels... dangerous. > >> + } >> break; >> } >> default: >> @@ -612,7 +622,7 @@ static int acpi_pci_link_allocate(struct >> acpi_pci_link *link) >> * failure: return -1 >> */ >> int acpi_pci_link_allocate_irq(acpi_handle handle, int index, int *triggering, >> - int *polarity, char **name) >> + int *polarity, char **name, struct fwnode_handle **irq_domain) > > Same remark about the naming. Thanks. It is very helpful. I’ll fix it in next version. Baozi. 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=-8.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 7F8E7C5519F for ; Wed, 18 Nov 2020 13:38:08 +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 AE169221FC for ; Wed, 18 Nov 2020 13:38: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="vxAms9s3" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AE169221FC Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=phytium.com.cn 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=FN0OjjpBcLyKiZWbm1xRQs2j1gyQ/70D1rFee7mSKPc=; b=vxAms9s3WHou8is7OASY0Rib7 FiDzSb609ETJYPhdnosLHO9gbEfvRjY/ixeuv69MN4g3cVYhZZFjFrEwRlu0XN+Biyvy/Mki+QqYx yLEQhY2/+mPbIFFsDPy7HmdDtUVgDRzGWl3PS3LPTw+EdsYSjNkJS6waglcMDJkm6V5qrPV1uYQht Qy85Z0+VxCHiQ7fu3Fo7SC0zS/slG3QsP8VuQa7eG25wHKR0qLwdFJiiOX9zyRdLuN+1Ft4X8rPVp TR17fTCJgqv6ZyUmE+42x3EVgzVubX/eoNWLsuK+MJmlrsKvqcP72/KfaCOfMckppwi9UteGPY5LI cwk+PoqcA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kfNdc-00078Y-Im; Wed, 18 Nov 2020 13:36:44 +0000 Received: from fralinode-sdnproxy-1.icoremail.net ([172.104.134.221]) by merlin.infradead.org with smtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kfNdX-00076v-Dt for linux-arm-kernel@lists.infradead.org; Wed, 18 Nov 2020 13:36:42 +0000 Received: from [192.168.0.104] (unknown [113.247.217.134]) by c1app4 (Coremail) with SMTP id BAINCgC3F1FLI7VfoMOJAA--.58493S2; Wed, 18 Nov 2020 21:36:12 +0800 (CST) Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.4\)) Subject: Re: [RFC PATCH V2] acpi/irq: Add stacked IRQ domain support to PCI interrupt link From: Chen Baozi In-Reply-To: Date: Wed, 18 Nov 2020 21:36:11 +0800 Message-Id: <9FC46D81-B76F-46EC-B022-396F59806803@phytium.com.cn> References: <20201117134214.970-1-chenbaozi@phytium.com.cn> To: Marc Zyngier X-Mailer: Apple Mail (2.3608.120.23.2.4) X-CM-TRANSID: BAINCgC3F1FLI7VfoMOJAA--.58493S2 X-Coremail-Antispam: 1UD129KBjvJXoWxGF13ZrWUKr4DXryrWr43Awb_yoW5Kw18pa yxt3yjyr18JFW7uFsxA3W8XFy3Xw40kry2krW3AasIqa90gF93KF1xCFyUWr48Cw1DGF4j yF1UZF15WF9xZFJanT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUk2b7Iv0xC_Zr1lb4IE77IF4wAFF20E14v26r4j6ryUM7CY07I2 0VC2zVCF04k26cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rw A2F7IY1VAKz4vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_JFI_Gr1l84ACjcxK6xII jxv20xvEc7CjxVAFwI0_Gr0_Cr1l84ACjcxK6I8E87Iv67AKxVWxJr0_GcWl84ACjcxK6I 8E87Iv6xkF7I0E14v26rxl6s0DM2AIxVAIcxkEcVAq07x20xvEncxIr21l5I8CrVACY4xI 64kE6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1j6r18McIj6I8E87Iv67AKxVWUJVW8Jw Am72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vIr41lc2xSY4AK67AK6ry8MxAIw28I cxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2 IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUtVW8ZwCIc40Y0x0EwIxGrwCI 42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWUJVW8JwCI42 IY6xAIw20EY4v20xvaj40_WFyUJVCq3wCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E 87Iv6xkF7I0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuYvjxU4iL0UUUUU X-Originating-IP: [113.247.217.134] X-CM-SenderInfo: hfkh0updr2xqxsk13x1xpou0fpof0/1tbiDAPgP17uHwDMBQABs3 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201118_083639_681901_4BC51397 X-CRM114-Status: GOOD ( 19.47 ) 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: Lorenzo Pieralisi , linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org, Guohanjun , Bjorn Helgaas , Ard Biesheuvel , 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 SGkgTWFyYywKCj4gT24gTm92IDE4LCAyMDIwLCBhdCA1OjI3IFBNLCBNYXJjIFp5bmdpZXIgPG1h ekBrZXJuZWwub3JnPiB3cm90ZToKPiAKPiBIaSBDaGVuLAo+IAo+IE9uIHRvcCBvZiBCam9ybidz IGNvbW1lbnRzOgo+IAo+IE9uIDIwMjAtMTEtMTcgMTM6NDIsIENoZW4gQmFvemkgd3JvdGU6Cj4+ IAo+PiAtLS0KPj4gZHJpdmVycy9hY3BpL2lycS5jICAgICAgICAgIHwgMjIgKysrKysrKysrKysr KysrKysrKysrLQo+PiBkcml2ZXJzL2FjcGkvcGNpX2lycS5jICAgICAgfCAgNiArKysrLS0KPj4g ZHJpdmVycy9hY3BpL3BjaV9saW5rLmMgICAgIHwgMTcgKysrKysrKysrKysrKysrLS0KPj4gaW5j bHVkZS9hY3BpL2FjcGlfZHJpdmVycy5oIHwgIDIgKy0KPj4gaW5jbHVkZS9saW51eC9hY3BpLmgg ICAgICAgIHwgIDQgKysrKwo+PiA1IGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDYg ZGVsZXRpb25zKC0pCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2FjcGkvaXJxLmMgYi9kcml2ZXJz L2FjcGkvaXJxLmMKPj4gaW5kZXggZTIwOTA4MWQ2NDRiLi5lNzhhNDQ4MTVjNDQgMTAwNjQ0Cj4+ IC0tLSBhL2RyaXZlcnMvYWNwaS9pcnEuYwo+PiArKysgYi9kcml2ZXJzL2FjcGkvaXJxLmMKPj4g QEAgLTgxLDYgKzgxLDI1IEBAIHZvaWQgYWNwaV91bnJlZ2lzdGVyX2dzaSh1MzIgZ3NpKQo+PiB9 Cj4+IEVYUE9SVF9TWU1CT0xfR1BMKGFjcGlfdW5yZWdpc3Rlcl9nc2kpOwo+PiAraW50IGFjcGlf cmVnaXN0ZXJfaXJxKHN0cnVjdCBkZXZpY2UgKmRldiwgdTMyIGlycSwgaW50IHRyaWdnZXIsCj4+ ICsJCSAgICAgIGludCBwb2xhcml0eSwgc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmRvbWFpbl9pZCkK Pj4gK3sKPj4gKwlzdHJ1Y3QgaXJxX2Z3c3BlYyBmd3NwZWM7Cj4+ICsKPj4gKwlpZiAoV0FSTl9P TighZG9tYWluX2lkKSkgewo+PiArCQlwcl93YXJuKCJHU0k6IE5vIHJlZ2lzdGVyZWQgaXJxY2hp cCwgZ2l2aW5nIHVwXG4iKTsKPiAKPiBBIGZ3bm9kZV9oYW5kbGUgaXMgbm90IGFuIGlycWNoaXAu IEl0J3MganVzdCBhbiBvcGFxdWUgaWRlbnRpZmllcgo+IGZvciBhIEhXIGJsb2NrLiBGdXJ0aGVy bW9yZSwgdGhlcmUgaXMgbm8gbmVlZCB0byBoYXZlIGJvdGggYSBXQVJOX09OKCkKPiBhbmQgYSBw cl93YXJuKCkuIFBsZWFzZSBwaWNrIG9uZS4KPiAKPiBJJ2QgYWxzbyBzdWdnZXN0IHlvdSByZW5h bWUgZG9tYWluX2lkIHRvIGZ3bm9kZSwgd2hpY2ggaXMgdGhlIGNvbW1vbmx5Cj4gdXNlZCBpZGlv bSAoeWVzLCBJIGtub3cgYWJvdXQgdGhlIHVuZm9ydHVuYXRlIHByZWNlZGVudCBpbiBhY3BpX3Jl Z2lzdGVyX2dzaSgpKS4KPiAKPj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4+ICsJfQo+PiArCj4+ICsJ ZndzcGVjLmZ3bm9kZSA9IGRvbWFpbl9pZDsKPj4gKwlmd3NwZWMucGFyYW1bMF0gPSBpcnE7Cj4+ ICsJZndzcGVjLnBhcmFtWzFdID0gYWNwaV9kZXZfZ2V0X2lycV90eXBlKHRyaWdnZXIsIHBvbGFy aXR5KTsKPj4gKwlmd3NwZWMucGFyYW1fY291bnQgPSAyOwo+PiArCj4+ICsJcmV0dXJuIGlycV9j cmVhdGVfZndzcGVjX21hcHBpbmcoJmZ3c3BlYyk7Cj4+ICt9Cj4+ICtFWFBPUlRfU1lNQk9MX0dQ TChhY3BpX3JlZ2lzdGVyX2lycSk7Cj4gCj4gQnkgdGhlIHdheSwgdGhpcyBpcyBhbG1vc3QgYW4g ZXhhY3QgZHVwbGljYXRlIG9mIGFjcGlfcmVnaXN0ZXJfZ3NpKCkuCj4gWW91IGRlZmluaXRlbHkg d2FudCB0byBtYWtlIHRoaXMgY29kZSBjb21tb24uCj4gCj4+IEBAIC0xMTUsNiArMTM0LDcgQEAg YWNwaV9nZXRfaXJxX3NvdXJjZV9md2hhbmRsZShjb25zdCBzdHJ1Y3QKPj4gYWNwaV9yZXNvdXJj ZV9zb3VyY2UgKnNvdXJjZSkKPj4gCWFjcGlfYnVzX3B1dF9hY3BpX2RldmljZShkZXZpY2UpOwo+ PiAJcmV0dXJuIHJlc3VsdDsKPj4gfQo+PiArRVhQT1JUX1NZTUJPTF9HUEwoYWNwaV9nZXRfaXJx X3NvdXJjZV9md2hhbmRsZSk7Cj4+IC8qCj4+ICAqIENvbnRleHQgZm9yIHRoZSByZXNvdXJjZSB3 YWxrIHVzZWQgdG8gbG9va3VwIElSUSByZXNvdXJjZXMuCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2FjcGkvcGNpX2lycS5jIGIvZHJpdmVycy9hY3BpL3BjaV9pcnEuYwo+PiBpbmRleCAxNGVlNjMx Y2I3Y2YuLjE5Mjk2ZDcwYzk1YyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9hY3BpL3BjaV9pcnEu Ywo+PiArKysgYi9kcml2ZXJzL2FjcGkvcGNpX2lycS5jCj4+IEBAIC00MTAsNiArNDEwLDcgQEAg aW50IGFjcGlfcGNpX2lycV9lbmFibGUoc3RydWN0IHBjaV9kZXYgKmRldikKPj4gCWNoYXIgKmxp bmsgPSBOVUxMOwo+PiAJY2hhciBsaW5rX2Rlc2NbMTZdOwo+PiAJaW50IHJjOwo+PiArCXN0cnVj dCBmd25vZGVfaGFuZGxlICppcnFfZG9tYWluOwo+IAo+IGZ3bm9kZV9oYW5kbGUgaXMgbW9zdCBk ZWZpbml0ZWx5IG5vdCBhbiBJUlEgZG9tYWluLgo+IAo+PiBAQCAtMTQwLDYgKzE0MywxMiBAQCBz dGF0aWMgYWNwaV9zdGF0dXMKPj4gYWNwaV9wY2lfbGlua19jaGVja19wb3NzaWJsZShzdHJ1Y3Qg YWNwaV9yZXNvdXJjZSAqcmVzb3VyY2UsCj4+IAkJCWxpbmstPmlycS50cmlnZ2VyaW5nID0gcC0+ dHJpZ2dlcmluZzsKPj4gCQkJbGluay0+aXJxLnBvbGFyaXR5ID0gcC0+cG9sYXJpdHk7Cj4+IAkJ CWxpbmstPmlycS5yZXNvdXJjZV90eXBlID0gQUNQSV9SRVNPVVJDRV9UWVBFX0VYVEVOREVEX0lS UTsKPj4gKwkJCWlmIChwLT5yZXNvdXJjZV9zb3VyY2Uuc3RyaW5nX2xlbmd0aCkgewo+PiArCQkJ CXJzLT5pbmRleCA9IHAtPnJlc291cmNlX3NvdXJjZS5pbmRleDsKPj4gKwkJCQlycy0+c3RyaW5n X2xlbmd0aCA9IHAtPnJlc291cmNlX3NvdXJjZS5zdHJpbmdfbGVuZ3RoOwo+PiArCQkJCXJzLT5z dHJpbmdfcHRyID0ga21hbGxvYyhycy0+c3RyaW5nX2xlbmd0aCwgR0ZQX0tFUk5FTCk7Cj4+ICsJ CQkJc3RyY3B5KHJzLT5zdHJpbmdfcHRyLCBwLT5yZXNvdXJjZV9zb3VyY2Uuc3RyaW5nX3B0cik7 Cj4gCj4gV2UgaGF2ZSBrc3RyZHVwKCkgZm9yIHRoaXMga2luZCBvZiB0aGluZ3MsIGFzIHVzaW5n IHJzLT5zdHJpbmdfbGVuZ3RoIHRvIGFsbG9jYXRlCj4gdGhlIGJ1ZmZlciBhbmQgc3RyY3B5KCkg dG8gY29weSBpdCBmZWVscy4uLiBkYW5nZXJvdXMuCj4gCj4+ICsJCQl9Cj4+IAkJCWJyZWFrOwo+ PiAJCX0KPj4gCWRlZmF1bHQ6Cj4+IEBAIC02MTIsNyArNjIyLDcgQEAgc3RhdGljIGludCBhY3Bp X3BjaV9saW5rX2FsbG9jYXRlKHN0cnVjdAo+PiBhY3BpX3BjaV9saW5rICpsaW5rKQo+PiAgKiBm YWlsdXJlOiByZXR1cm4gLTEKPj4gICovCj4+IGludCBhY3BpX3BjaV9saW5rX2FsbG9jYXRlX2ly cShhY3BpX2hhbmRsZSBoYW5kbGUsIGludCBpbmRleCwgaW50ICp0cmlnZ2VyaW5nLAo+PiAtCQkJ ICAgICAgIGludCAqcG9sYXJpdHksIGNoYXIgKipuYW1lKQo+PiArCQkJICAgICAgIGludCAqcG9s YXJpdHksIGNoYXIgKipuYW1lLCBzdHJ1Y3QgZndub2RlX2hhbmRsZSAqKmlycV9kb21haW4pCj4g Cj4gU2FtZSByZW1hcmsgYWJvdXQgdGhlIG5hbWluZy4KClRoYW5rcy4gSXQgaXMgdmVyeSBoZWxw ZnVsLiBJ4oCZbGwgZml4IGl0IGluIG5leHQgdmVyc2lvbi4KCkJhb3ppLgoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFp bGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK