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 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C35A2C433F5 for ; Sun, 15 May 2022 13:00:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235606AbiEOM7m (ORCPT ); Sun, 15 May 2022 08:59:42 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39160 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231362AbiEOM7i (ORCPT ); Sun, 15 May 2022 08:59:38 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3F6B93A739; Sun, 15 May 2022 05:59:37 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id B8CE260ED7; Sun, 15 May 2022 12:59:36 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id ACF53C385B8; Sun, 15 May 2022 12:59:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1652619576; bh=Er1icabn7IATRCtWvAKCaZjREXU9z20DohHXO16mmQM=; h=From:To:Cc:Subject:Date:From; b=uTpCEPIgJCY5lRX9hVZ3eN/1yRQ0ujHoW9UKB2JHx4Y5QTrglRVb9vQUZH+sV6kZA uf7IuLb+tmtLNPBFUT1kxSdRLAnTZAsq+tljBXQNIPao1/Wb50p3lhH3yI6EhTL3Lk udzvKpY4fyPvegyofNS13yU1XWHpvAdnjo3ax45AxXJyOZL+f0m++PXAmMMSE8d5ar EMRyUBNVEvAVoktqeymHBO0kXYNWreSgWqD4tGLwrl57p0q6Gw0U8dviFAt92AHdzm QQ5QehFLLfevgJSHg0XBT9JrKA7HgOjF7/r/dqinZCHgGkid3GXp4jN4TaFpC6z9Yv aZYF0EVkNIw+w== Received: by pali.im (Postfix) id 503B77B8; Sun, 15 May 2022 14:59:32 +0200 (CEST) From: =?UTF-8?q?Pali=20Roh=C3=A1r?= To: Bjorn Helgaas , Lorenzo Pieralisi Cc: Rob Herring , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Thomas Petazzoni , linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH] Revert "PCI: aardvark: Rewrite IRQ code to chained IRQ handler" Date: Sun, 15 May 2022 14:58:15 +0200 Message-Id: <20220515125815.30157-1-pali@kernel.org> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This reverts commit 1571d67dc190e50c6c56e8f88cdc39f7cc53166e. This commit broke support for setting interrupt affinity. It looks like that it is related to the chained IRQ handler. Revert this commit until issue with setting interrupt affinity is fixed. Fixes: 1571d67dc190 ("PCI: aardvark: Rewrite IRQ code to chained IRQ handler") Signed-off-by: Pali Rohár --- This commit was introduced in v5.18-rc1 and hence it is regression for 5.18 release. After reverting this commit, it is possible to move aardvark interrupt from CPU0 to CPU1 by "echo 2 > /proc/irq/XX/smp_affinity" where XX is the interrupt number which can be find in /proc/interrupts on line with advk-pcie. --- drivers/pci/controller/pci-aardvark.c | 48 ++++++++++++--------------- 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c index 54651a1808cc..22ac607343bd 100644 --- a/drivers/pci/controller/pci-aardvark.c +++ b/drivers/pci/controller/pci-aardvark.c @@ -274,7 +274,6 @@ struct advk_pcie { u32 actions; } wins[OB_WIN_COUNT]; u8 wins_count; - int irq; struct irq_domain *rp_irq_domain; struct irq_domain *irq_domain; struct irq_chip irq_chip; @@ -1664,26 +1663,21 @@ static void advk_pcie_handle_int(struct advk_pcie *pcie) } } -static void advk_pcie_irq_handler(struct irq_desc *desc) +static irqreturn_t advk_pcie_irq_handler(int irq, void *arg) { - struct advk_pcie *pcie = irq_desc_get_handler_data(desc); - struct irq_chip *chip = irq_desc_get_chip(desc); - u32 val, mask, status; + struct advk_pcie *pcie = arg; + u32 status; - chained_irq_enter(chip, desc); + status = advk_readl(pcie, HOST_CTRL_INT_STATUS_REG); + if (!(status & PCIE_IRQ_CORE_INT)) + return IRQ_NONE; - val = advk_readl(pcie, HOST_CTRL_INT_STATUS_REG); - mask = advk_readl(pcie, HOST_CTRL_INT_MASK_REG); - status = val & ((~mask) & PCIE_IRQ_ALL_MASK); + advk_pcie_handle_int(pcie); - if (status & PCIE_IRQ_CORE_INT) { - advk_pcie_handle_int(pcie); + /* Clear interrupt */ + advk_writel(pcie, PCIE_IRQ_CORE_INT, HOST_CTRL_INT_STATUS_REG); - /* Clear interrupt */ - advk_writel(pcie, PCIE_IRQ_CORE_INT, HOST_CTRL_INT_STATUS_REG); - } - - chained_irq_exit(chip, desc); + return IRQ_HANDLED; } static int advk_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin) @@ -1763,7 +1757,7 @@ static int advk_pcie_probe(struct platform_device *pdev) struct advk_pcie *pcie; struct pci_host_bridge *bridge; struct resource_entry *entry; - int ret; + int ret, irq; bridge = devm_pci_alloc_host_bridge(dev, sizeof(struct advk_pcie)); if (!bridge) @@ -1849,9 +1843,17 @@ static int advk_pcie_probe(struct platform_device *pdev) if (IS_ERR(pcie->base)) return PTR_ERR(pcie->base); - pcie->irq = platform_get_irq(pdev, 0); - if (pcie->irq < 0) - return pcie->irq; + irq = platform_get_irq(pdev, 0); + if (irq < 0) + return irq; + + ret = devm_request_irq(dev, irq, advk_pcie_irq_handler, + IRQF_SHARED | IRQF_NO_THREAD, "advk-pcie", + pcie); + if (ret) { + dev_err(dev, "Failed to register interrupt\n"); + return ret; + } pcie->reset_gpio = devm_gpiod_get_from_of_node(dev, dev->of_node, "reset-gpios", 0, @@ -1916,15 +1918,12 @@ static int advk_pcie_probe(struct platform_device *pdev) return ret; } - irq_set_chained_handler_and_data(pcie->irq, advk_pcie_irq_handler, pcie); - bridge->sysdata = pcie; bridge->ops = &advk_pcie_ops; bridge->map_irq = advk_pcie_map_irq; ret = pci_host_probe(bridge); if (ret < 0) { - irq_set_chained_handler_and_data(pcie->irq, NULL, NULL); advk_pcie_remove_rp_irq_domain(pcie); advk_pcie_remove_msi_irq_domain(pcie); advk_pcie_remove_irq_domain(pcie); @@ -1973,9 +1972,6 @@ static int advk_pcie_remove(struct platform_device *pdev) advk_writel(pcie, PCIE_ISR1_ALL_MASK, PCIE_ISR1_REG); advk_writel(pcie, PCIE_IRQ_ALL_MASK, HOST_CTRL_INT_STATUS_REG); - /* Remove IRQ handler */ - irq_set_chained_handler_and_data(pcie->irq, NULL, NULL); - /* Remove IRQ domains */ advk_pcie_remove_rp_irq_domain(pcie); advk_pcie_remove_msi_irq_domain(pcie); -- 2.20.1 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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C4C28C433EF for ; Sun, 15 May 2022 13:01:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=NZPONWX8H9uyx2pl8fvfBy6052CqNrdnW3GZyQpekVc=; b=UvLX/pxlrcXiSo 5SYI+qE2DZXaI+7lDKCK4stG9GbketknDRpLG+pUuCvwoGjJLheIEsMXspvjpbFPdn1VCPZvTN0fp urgzHu24h772/lPaXMMVm1JSMkY7TEf0NBgWYSumj8v6ZGrChGKR23KICa+KZfnik7IioMTo3+I9W p3TLgILkKpseBq50Ga/OHvjqlFyh5aE+OwpUguhDL4NEovfK/oRP0Ly1UU1Y4RxULY6AZC0ItLkQK B+nr1AJDyUruxve4UqAiPxupUd2Dc5WpWJuay3wleaBg3xbA81ldYT6X5YspZNmMIx/nhxNaYrwZ3 bxhjzV/+CZuy60wKh1ng==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqDqY-0042S3-O8; Sun, 15 May 2022 12:59:42 +0000 Received: from ams.source.kernel.org ([2604:1380:4601:e00::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nqDqV-0042RZ-OO for linux-arm-kernel@lists.infradead.org; Sun, 15 May 2022 12:59:41 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 6483DB80CCD; Sun, 15 May 2022 12:59:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id ACF53C385B8; Sun, 15 May 2022 12:59:35 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1652619576; bh=Er1icabn7IATRCtWvAKCaZjREXU9z20DohHXO16mmQM=; h=From:To:Cc:Subject:Date:From; b=uTpCEPIgJCY5lRX9hVZ3eN/1yRQ0ujHoW9UKB2JHx4Y5QTrglRVb9vQUZH+sV6kZA uf7IuLb+tmtLNPBFUT1kxSdRLAnTZAsq+tljBXQNIPao1/Wb50p3lhH3yI6EhTL3Lk udzvKpY4fyPvegyofNS13yU1XWHpvAdnjo3ax45AxXJyOZL+f0m++PXAmMMSE8d5ar EMRyUBNVEvAVoktqeymHBO0kXYNWreSgWqD4tGLwrl57p0q6Gw0U8dviFAt92AHdzm QQ5QehFLLfevgJSHg0XBT9JrKA7HgOjF7/r/dqinZCHgGkid3GXp4jN4TaFpC6z9Yv aZYF0EVkNIw+w== Received: by pali.im (Postfix) id 503B77B8; Sun, 15 May 2022 14:59:32 +0200 (CEST) From: =?UTF-8?q?Pali=20Roh=C3=A1r?= To: Bjorn Helgaas , Lorenzo Pieralisi Cc: Rob Herring , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Thomas Petazzoni , linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH] Revert "PCI: aardvark: Rewrite IRQ code to chained IRQ handler" Date: Sun, 15 May 2022 14:58:15 +0200 Message-Id: <20220515125815.30157-1-pali@kernel.org> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220515_055940_106771_D06BA785 X-CRM114-Status: GOOD ( 18.99 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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 VGhpcyByZXZlcnRzIGNvbW1pdCAxNTcxZDY3ZGMxOTBlNTBjNmM1NmU4Zjg4Y2RjMzlmN2NjNTMx NjZlLgoKVGhpcyBjb21taXQgYnJva2Ugc3VwcG9ydCBmb3Igc2V0dGluZyBpbnRlcnJ1cHQgYWZm aW5pdHkuIEl0IGxvb2tzIGxpa2UKdGhhdCBpdCBpcyByZWxhdGVkIHRvIHRoZSBjaGFpbmVkIElS USBoYW5kbGVyLiBSZXZlcnQgdGhpcyBjb21taXQgdW50aWwKaXNzdWUgd2l0aCBzZXR0aW5nIGlu dGVycnVwdCBhZmZpbml0eSBpcyBmaXhlZC4KCkZpeGVzOiAxNTcxZDY3ZGMxOTAgKCJQQ0k6IGFh cmR2YXJrOiBSZXdyaXRlIElSUSBjb2RlIHRvIGNoYWluZWQgSVJRIGhhbmRsZXIiKQpTaWduZWQt b2ZmLWJ5OiBQYWxpIFJvaMOhciA8cGFsaUBrZXJuZWwub3JnPgoKLS0tClRoaXMgY29tbWl0IHdh cyBpbnRyb2R1Y2VkIGluIHY1LjE4LXJjMSBhbmQgaGVuY2UgaXQgaXMgcmVncmVzc2lvbiBmb3Ig NS4xOApyZWxlYXNlLiBBZnRlciByZXZlcnRpbmcgdGhpcyBjb21taXQsIGl0IGlzIHBvc3NpYmxl IHRvIG1vdmUgYWFyZHZhcmsKaW50ZXJydXB0IGZyb20gQ1BVMCB0byBDUFUxIGJ5ICJlY2hvIDIg PiAvcHJvYy9pcnEvWFgvc21wX2FmZmluaXR5IiB3aGVyZQpYWCBpcyB0aGUgaW50ZXJydXB0IG51 bWJlciB3aGljaCBjYW4gYmUgZmluZCBpbiAvcHJvYy9pbnRlcnJ1cHRzIG9uIGxpbmUKd2l0aCBh ZHZrLXBjaWUuCi0tLQogZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktYWFyZHZhcmsuYyB8IDQ4 ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIyIGluc2VydGlv bnMoKyksIDI2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xs ZXIvcGNpLWFhcmR2YXJrLmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1hYXJkdmFyay5j CmluZGV4IDU0NjUxYTE4MDhjYy4uMjJhYzYwNzM0M2JkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Bj aS9jb250cm9sbGVyL3BjaS1hYXJkdmFyay5jCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIv cGNpLWFhcmR2YXJrLmMKQEAgLTI3NCw3ICsyNzQsNiBAQCBzdHJ1Y3QgYWR2a19wY2llIHsKIAkJ dTMyIGFjdGlvbnM7CiAJfSB3aW5zW09CX1dJTl9DT1VOVF07CiAJdTggd2luc19jb3VudDsKLQlp bnQgaXJxOwogCXN0cnVjdCBpcnFfZG9tYWluICpycF9pcnFfZG9tYWluOwogCXN0cnVjdCBpcnFf ZG9tYWluICppcnFfZG9tYWluOwogCXN0cnVjdCBpcnFfY2hpcCBpcnFfY2hpcDsKQEAgLTE2NjQs MjYgKzE2NjMsMjEgQEAgc3RhdGljIHZvaWQgYWR2a19wY2llX2hhbmRsZV9pbnQoc3RydWN0IGFk dmtfcGNpZSAqcGNpZSkKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIGFkdmtfcGNpZV9pcnFfaGFuZGxl cihzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MpCitzdGF0aWMgaXJxcmV0dXJuX3QgYWR2a19wY2llX2ly cV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIHsKLQlzdHJ1Y3QgYWR2a19wY2llICpwY2ll ID0gaXJxX2Rlc2NfZ2V0X2hhbmRsZXJfZGF0YShkZXNjKTsKLQlzdHJ1Y3QgaXJxX2NoaXAgKmNo aXAgPSBpcnFfZGVzY19nZXRfY2hpcChkZXNjKTsKLQl1MzIgdmFsLCBtYXNrLCBzdGF0dXM7CisJ c3RydWN0IGFkdmtfcGNpZSAqcGNpZSA9IGFyZzsKKwl1MzIgc3RhdHVzOwogCi0JY2hhaW5lZF9p cnFfZW50ZXIoY2hpcCwgZGVzYyk7CisJc3RhdHVzID0gYWR2a19yZWFkbChwY2llLCBIT1NUX0NU UkxfSU5UX1NUQVRVU19SRUcpOworCWlmICghKHN0YXR1cyAmIFBDSUVfSVJRX0NPUkVfSU5UKSkK KwkJcmV0dXJuIElSUV9OT05FOwogCi0JdmFsID0gYWR2a19yZWFkbChwY2llLCBIT1NUX0NUUkxf SU5UX1NUQVRVU19SRUcpOwotCW1hc2sgPSBhZHZrX3JlYWRsKHBjaWUsIEhPU1RfQ1RSTF9JTlRf TUFTS19SRUcpOwotCXN0YXR1cyA9IHZhbCAmICgofm1hc2spICYgUENJRV9JUlFfQUxMX01BU0sp OworCWFkdmtfcGNpZV9oYW5kbGVfaW50KHBjaWUpOwogCi0JaWYgKHN0YXR1cyAmIFBDSUVfSVJR X0NPUkVfSU5UKSB7Ci0JCWFkdmtfcGNpZV9oYW5kbGVfaW50KHBjaWUpOworCS8qIENsZWFyIGlu dGVycnVwdCAqLworCWFkdmtfd3JpdGVsKHBjaWUsIFBDSUVfSVJRX0NPUkVfSU5ULCBIT1NUX0NU UkxfSU5UX1NUQVRVU19SRUcpOwogCi0JCS8qIENsZWFyIGludGVycnVwdCAqLwotCQlhZHZrX3dy aXRlbChwY2llLCBQQ0lFX0lSUV9DT1JFX0lOVCwgSE9TVF9DVFJMX0lOVF9TVEFUVVNfUkVHKTsK LQl9Ci0KLQljaGFpbmVkX2lycV9leGl0KGNoaXAsIGRlc2MpOworCXJldHVybiBJUlFfSEFORExF RDsKIH0KIAogc3RhdGljIGludCBhZHZrX3BjaWVfbWFwX2lycShjb25zdCBzdHJ1Y3QgcGNpX2Rl diAqZGV2LCB1OCBzbG90LCB1OCBwaW4pCkBAIC0xNzYzLDcgKzE3NTcsNyBAQCBzdGF0aWMgaW50 IGFkdmtfcGNpZV9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCXN0cnVjdCBh ZHZrX3BjaWUgKnBjaWU7CiAJc3RydWN0IHBjaV9ob3N0X2JyaWRnZSAqYnJpZGdlOwogCXN0cnVj dCByZXNvdXJjZV9lbnRyeSAqZW50cnk7Ci0JaW50IHJldDsKKwlpbnQgcmV0LCBpcnE7CiAKIAli cmlkZ2UgPSBkZXZtX3BjaV9hbGxvY19ob3N0X2JyaWRnZShkZXYsIHNpemVvZihzdHJ1Y3QgYWR2 a19wY2llKSk7CiAJaWYgKCFicmlkZ2UpCkBAIC0xODQ5LDkgKzE4NDMsMTcgQEAgc3RhdGljIGlu dCBhZHZrX3BjaWVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAlpZiAoSVNf RVJSKHBjaWUtPmJhc2UpKQogCQlyZXR1cm4gUFRSX0VSUihwY2llLT5iYXNlKTsKIAotCXBjaWUt PmlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7Ci0JaWYgKHBjaWUtPmlycSA8IDApCi0J CXJldHVybiBwY2llLT5pcnE7CisJaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKKwlp ZiAoaXJxIDwgMCkKKwkJcmV0dXJuIGlycTsKKworCXJldCA9IGRldm1fcmVxdWVzdF9pcnEoZGV2 LCBpcnEsIGFkdmtfcGNpZV9pcnFfaGFuZGxlciwKKwkJCSAgICAgICBJUlFGX1NIQVJFRCB8IElS UUZfTk9fVEhSRUFELCAiYWR2ay1wY2llIiwKKwkJCSAgICAgICBwY2llKTsKKwlpZiAocmV0KSB7 CisJCWRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIHJlZ2lzdGVyIGludGVycnVwdFxuIik7CisJCXJl dHVybiByZXQ7CisJfQogCiAJcGNpZS0+cmVzZXRfZ3BpbyA9IGRldm1fZ3Bpb2RfZ2V0X2Zyb21f b2Zfbm9kZShkZXYsIGRldi0+b2Zfbm9kZSwKIAkJCQkJCSAgICAgICAicmVzZXQtZ3Bpb3MiLCAw LApAQCAtMTkxNiwxNSArMTkxOCwxMiBAQCBzdGF0aWMgaW50IGFkdmtfcGNpZV9wcm9iZShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQlyZXR1cm4gcmV0OwogCX0KIAotCWlycV9zZXRf Y2hhaW5lZF9oYW5kbGVyX2FuZF9kYXRhKHBjaWUtPmlycSwgYWR2a19wY2llX2lycV9oYW5kbGVy LCBwY2llKTsKLQogCWJyaWRnZS0+c3lzZGF0YSA9IHBjaWU7CiAJYnJpZGdlLT5vcHMgPSAmYWR2 a19wY2llX29wczsKIAlicmlkZ2UtPm1hcF9pcnEgPSBhZHZrX3BjaWVfbWFwX2lycTsKIAogCXJl dCA9IHBjaV9ob3N0X3Byb2JlKGJyaWRnZSk7CiAJaWYgKHJldCA8IDApIHsKLQkJaXJxX3NldF9j aGFpbmVkX2hhbmRsZXJfYW5kX2RhdGEocGNpZS0+aXJxLCBOVUxMLCBOVUxMKTsKIAkJYWR2a19w Y2llX3JlbW92ZV9ycF9pcnFfZG9tYWluKHBjaWUpOwogCQlhZHZrX3BjaWVfcmVtb3ZlX21zaV9p cnFfZG9tYWluKHBjaWUpOwogCQlhZHZrX3BjaWVfcmVtb3ZlX2lycV9kb21haW4ocGNpZSk7CkBA IC0xOTczLDkgKzE5NzIsNiBAQCBzdGF0aWMgaW50IGFkdmtfcGNpZV9yZW1vdmUoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldikKIAlhZHZrX3dyaXRlbChwY2llLCBQQ0lFX0lTUjFfQUxMX01B U0ssIFBDSUVfSVNSMV9SRUcpOwogCWFkdmtfd3JpdGVsKHBjaWUsIFBDSUVfSVJRX0FMTF9NQVNL LCBIT1NUX0NUUkxfSU5UX1NUQVRVU19SRUcpOwogCi0JLyogUmVtb3ZlIElSUSBoYW5kbGVyICov Ci0JaXJxX3NldF9jaGFpbmVkX2hhbmRsZXJfYW5kX2RhdGEocGNpZS0+aXJxLCBOVUxMLCBOVUxM KTsKLQogCS8qIFJlbW92ZSBJUlEgZG9tYWlucyAqLwogCWFkdmtfcGNpZV9yZW1vdmVfcnBfaXJx X2RvbWFpbihwY2llKTsKIAlhZHZrX3BjaWVfcmVtb3ZlX21zaV9pcnFfZG9tYWluKHBjaWUpOwot LSAKMi4yMC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5p bmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtYXJtLWtlcm5lbAo=