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 26917ECAAD3 for ; Mon, 5 Sep 2022 19:26:15 +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=EIaFM8K1WTjxyIfKkLyQuVyuXjntuuIKJspxWHw7r0c=; b=AEyOAJ3H98lbwX X87krMr1CkzH/RMrQVLL6RuTGvRhpky1/NJkNvpCHXzOS+UDFRYyksyyzVoQBjtnO8KAI8xv0cRD4 CGIjax2PuLEHNFRzyrc1M5vDZemUg4fqMakGP/S+Q85zNi728II8xX6CkVp3hckQ5ye46zgaIPr+W oq1GBywARagFpEnQioIr3J5UDd9BMBR3jQ3lvS7CTNSvvEuYwxVj23gBR5qdou96giFWRhy7atoI5 Xy3/z9Spslw5pmh0Hf6ddHRDj5Ar3SfOU424DveYFkyE2YesIcLxwZrtUy7rGuJ6/k3goc1CeHDVN XqpoV+sfoVuvOVzWPi2w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oVHiI-009F7O-FX; Mon, 05 Sep 2022 19:24:55 +0000 Received: from dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oVH8g-008gdJ-69 for linux-arm-kernel@lists.infradead.org; Mon, 05 Sep 2022 18:48:08 +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 dfw.source.kernel.org (Postfix) with ESMTPS id 7315661470; Mon, 5 Sep 2022 18:48:05 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 85EA5C433D6; Mon, 5 Sep 2022 18:48:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1662403683; bh=4PVibW+wXcSk+50zIr0648e8ZrfjORF0KfZ6HM81FWk=; h=From:To:Cc:Subject:Date:From; b=f3beyaSEclba5Ky/QFrArFDy0hI2Rt0QSH57yenEzRCxYd+qdGFcUuGnltYZJx1ms 8AXCNjn+Vsc3Tcjzk+FeoaJEfmIL03nMG44VX+pJmqyeHN3zlthWpVLMK49rujSoKc 8UzNkmkPOQd6A1/KcASVvbHs6cnOP/80FpBPaeGQeKbT0VYh4etIqfspI0q3CnYhB3 Q7WUXQ9CdlZcEFAvMHkXdhdXIp25g8xmLaWr6eX0qY0wuZhe/++9GBMpnXq4eJEnfJ 79bl6oG70DW2hD4jMihQo5b+IzAkpVGEznoE4cUCdnlGDXgWuM6puE8Y8cz1yl8eVb BZNwy9yVJVRww== Received: by pali.im (Postfix) id DEE207D7; Mon, 5 Sep 2022 20:48:00 +0200 (CEST) From: =?UTF-8?q?Pali=20Roh=C3=A1r?= To: Lorenzo Pieralisi , Rob Herring , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Bjorn Helgaas , Thomas Petazzoni Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH] PCI: mvebu: Add support for PCI_EXP_SLTSTA_DLLSC via hot plug interrupt Date: Mon, 5 Sep 2022 20:47:37 +0200 Message-Id: <20220905184737.22080-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-20220905_114806_345122_2172AB87 X-CRM114-Status: GOOD ( 30.49 ) 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 SWYgbGluayB1cC9kb3duIHN0YXRlIGlzIGNoYW5nZWQgaW4gbXZlYnVfcGNpZV9saW5rX3VwKCkg dGhlbiB0cmlnZ2VyCmhvdCBwbHVnIGludGVycnVwdCB3aXRoIERMTFNDIHN0YXRlIGNoYW5nZSBv biB0aGUgZW11bGF0ZWQgUENJZSBSb290IFBvcnQuCgpBbHNvIHRyaWdnZXJzIGhvdCBwbHVnIGlu dGVycnVwdCBvbiBlbXVsYXRlZCBQQ0llIFJvb3QgUG9ydCB3aGVuIG12ZWJ1CnJlcG9ydHMgdmlh IG12ZWJ1IGVycm9yIGludGVycnVwdCBMaW5rIEZhaWx1cmUgZXZlbnQgKGluZGljYXRlcyB0aGF0 IGxpbmsKd2FzIGNoYW5nZWQgZnJvbSBhY3RpdmUgc3RhdGU7IHdpdGggZXhjZXB0aW9uIG9mIEhv dCBSZXNldCBhbmQgTGluayBEaXNhYmxlCnN0YXRlcykgb3IgVHhSZXEgTm8gTGluayBldmVudCAo aW5kaWNhdGVzIHRoYXQgbGluayBpcyBkb3duIHdoaWxlIHRyeWluZyB0bwp0cmFuc21pdCBQQ0ll IHRyYW5zYWN0aW9uKS4KCkFuZCB0cmlnZ2VycyB0aGlzIGhvdCBwbHVnIGludGVycnVwdCBhbHNv IHdoZW4gZXhwbGljaXQgTGluayBEaXNhYmxlIG9yClBDSWUgSG9zdCBSZXNldCBvbiBlbXVsYXRl ZCBQQ0llIFJvb3QgUG9ydCBpcyBpc3N1ZWQgdmlhIGNvbmZpZyBzcGFjZQphY2Nlc3MgYXMgbXZl YnUgSFcgZG9lcyBub3Qgc2lnbmFsIExpbmsgRmFpbHVyZSB3aGVuIGRyb3BwaW5nIHRvIERldGVj dCB2aWEKSG90IFJlc2V0IG9yIExpbmsgRGlzYWJsZS4gVGhpcyBpcyBiZWNhdXNlIGNvbXBsaWFu dCBob3RwbHVnLWNhcGFibGUgUENJZQpSb290IFBvcnQgc2hvdWxkIHJlcG9ydCBETExTQyBldmVu dCB2aWEgaG90IHBsdWcgaW50ZXJydXB0IGV2ZXJ5IHRpbWUKd2hlbiBsaW5rIGlzIGNoYW5nZWQg aW5kZXBlbmRlbnRseSBvZiB0aGUgc291cmNlIG9mIGV2ZW50IGNoYW5nZS4KClRoaXMgbmV3IGNv ZGUgaGVhdmlseSBkZXBlbmRzIG9uIGtlcm5lbCBQQ0kgaG90cGx1ZyBkcml2ZXIsIHNvIGVuYWJs ZSBpdAp3aGVuIGNvbXBpbGluZyBwY2ktbXZlYnUuYyBkcml2ZXIuCgpTaWduZWQtb2ZmLWJ5OiBQ YWxpIFJvaMOhciA8cGFsaUBrZXJuZWwub3JnPgotLS0KVGhpcyBwYXRjaCBkZXBlbmRzIG9uIHBh dGNoOgoiUENJOiBtdmVidTogSW1wbGVtZW50IHN1cHBvcnQgZm9yIGludGVycnVwdHMgb24gZW11 bGF0ZWQgYnJpZGdlIgpodHRwczovL2xvcmUua2VybmVsLm9yZy9saW51eC1wY2kvMjAyMjA4MTcy MzAwMzYuODE3LTMtcGFsaUBrZXJuZWwub3JnLwotLS0KIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIv S2NvbmZpZyAgICAgfCAgIDMgKwogZHJpdmVycy9wY2kvY29udHJvbGxlci9wY2ktbXZlYnUuYyB8 IDE0NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxNDkg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2Nv bnRyb2xsZXIvS2NvbmZpZyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvS2NvbmZpZwppbmRleCBk MWM1ZmNmMDBhOGEuLjhkYTJlZmRjNTE3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvY29udHJv bGxlci9LY29uZmlnCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvS2NvbmZpZwpAQCAtMTAs NiArMTAsOSBAQCBjb25maWcgUENJX01WRUJVCiAJZGVwZW5kcyBvbiBBUk0KIAlkZXBlbmRzIG9u IE9GCiAJc2VsZWN0IFBDSV9CUklER0VfRU1VTAorCXNlbGVjdCBQQ0lFUE9SVEJVUworCXNlbGVj dCBIT1RQTFVHX1BDSQorCXNlbGVjdCBIT1RQTFVHX1BDSV9QQ0lFCiAJaGVscAogCSBBZGQgc3Vw cG9ydCBmb3IgTWFydmVsbCBFQlUgUENJZSBjb250cm9sbGVyLiBUaGlzIFBDSWUgY29udHJvbGxl cgogCSBpcyB1c2VkIG9uIDMyLWJpdCBNYXJ2ZWxsIEFSTSBTb0NzOiBEb3ZlLCBLaXJrd29vZCwg QXJtYWRhIDM3MCwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLW12ZWJ1 LmMgYi9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1tdmVidS5jCmluZGV4IGRkZDViYThiMjY1 ZS4uOGJkZTQ3MjdhY2E0IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL3BjaS1t dmVidS5jCisrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvcGNpLW12ZWJ1LmMKQEAgLTU2LDEy ICs1NiwxNCBAQAogI2RlZmluZSBQQ0lFX0NPTkZfREFUQV9PRkYJMHgxOGZjCiAjZGVmaW5lIFBD SUVfSU5UX0NBVVNFX09GRgkweDE5MDAKICNkZWZpbmUgUENJRV9JTlRfVU5NQVNLX09GRgkweDE5 MTAKKyNkZWZpbmUgIFBDSUVfSU5UX1RYUkVRX05PTElOSwkJQklUKDApCiAjZGVmaW5lICBQQ0lF X0lOVF9ERVRfQ09SCQlCSVQoOCkKICNkZWZpbmUgIFBDSUVfSU5UX0RFVF9OT05GQVRBTAkJQklU KDkpCiAjZGVmaW5lICBQQ0lFX0lOVF9ERVRfRkFUQUwJCUJJVCgxMCkKICNkZWZpbmUgIFBDSUVf SU5UX0VSUl9GQVRBTAkJQklUKDE2KQogI2RlZmluZSAgUENJRV9JTlRfRVJSX05PTkZBVEFMCQlC SVQoMTcpCiAjZGVmaW5lICBQQ0lFX0lOVF9FUlJfQ09SCQlCSVQoMTgpCisjZGVmaW5lICBQQ0lF X0lOVF9MSU5LX0ZBSUwJCUJJVCgyMykKICNkZWZpbmUgIFBDSUVfSU5UX0lOVFgoaSkJCUJJVCgy NCtpKQogI2RlZmluZSAgUENJRV9JTlRfUE1fUE1FCQlCSVQoMjgpCiAjZGVmaW5lICBQQ0lFX0lO VF9ERVRfTUFTSwkJKFBDSUVfSU5UX0RFVF9DT1IgfCBQQ0lFX0lOVF9ERVRfTk9ORkFUQUwgfCBQ Q0lFX0lOVF9ERVRfRkFUQUwpCkBAIC0xMzQsNiArMTM2LDggQEAgc3RydWN0IG12ZWJ1X3BjaWVf cG9ydCB7CiAJaW50IGVycm9yX2lycTsKIAlpbnQgaW50eF9pcnE7CiAJYm9vbCBwbWVfcGVuZGlu ZzsKKwlzdHJ1Y3QgdGltZXJfbGlzdCBsaW5rX2lycV90aW1lcjsKKwlib29sIGxpbmtfd2FzX3Vw OwogfTsKIAogc3RhdGljIGlubGluZSB2b2lkIG12ZWJ1X3dyaXRlbChzdHJ1Y3QgbXZlYnVfcGNp ZV9wb3J0ICpwb3J0LCB1MzIgdmFsLCB1MzIgcmVnKQpAQCAtMTUzLDcgKzE1NywyNiBAQCBzdGF0 aWMgaW5saW5lIGJvb2wgbXZlYnVfaGFzX2lvcG9ydChzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpw b3J0KQogCiBzdGF0aWMgYm9vbCBtdmVidV9wY2llX2xpbmtfdXAoc3RydWN0IG12ZWJ1X3BjaWVf cG9ydCAqcG9ydCkKIHsKLQlyZXR1cm4gIShtdmVidV9yZWFkbChwb3J0LCBQQ0lFX1NUQVRfT0ZG KSAmIFBDSUVfU1RBVF9MSU5LX0RPV04pOworCWJvb2wgbGlua19pc191cDsKKwl1MTYgc2xvdHN0 YTsKKworCWxpbmtfaXNfdXAgPSAhKG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVfU1RBVF9PRkYpICYg UENJRV9TVEFUX0xJTktfRE9XTik7CisKKwlpZiAobGlua19pc191cCAhPSBwb3J0LT5saW5rX3dh c191cCkgeworCQlwb3J0LT5saW5rX3dhc191cCA9IGxpbmtfaXNfdXA7CisJCS8qCisJCSAqIExp bmsgSVJRIHRpbWVyL2hhbmRsZXIgaXMgYXZhaWxhYmxlIG9ubHkgd2hlbiAiZXJyb3IiCisJCSAq IGludGVycnVwdCB3YXMgc3BlY2lmaWVkIGluIERULgorCQkgKi8KKwkJaWYgKHBvcnQtPmVycm9y X2lycSA+IDApIHsKKwkJCXNsb3RzdGEgPSBsZTE2X3RvX2NwdShwb3J0LT5icmlkZ2UucGNpZV9j b25mLnNsb3RzdGEpOworCQkJcG9ydC0+YnJpZGdlLnBjaWVfY29uZi5zbG90c3RhID0KKwkJCQlj cHVfdG9fbGUxNihzbG90c3RhIHwgUENJX0VYUF9TTFRTVEFfRExMU0MpOworCQkJbW9kX3RpbWVy KCZwb3J0LT5saW5rX2lycV90aW1lciwgamlmZmllcyArIDEpOworCQl9CisJfQorCisJcmV0dXJu IGxpbmtfaXNfdXA7CiB9CiAKIHN0YXRpYyB1OCBtdmVidV9wY2llX2dldF9sb2NhbF9idXNfbnIo c3RydWN0IG12ZWJ1X3BjaWVfcG9ydCAqcG9ydCkKQEAgLTM0Niw2ICszNjksMTkgQEAgc3RhdGlj IHZvaWQgbXZlYnVfcGNpZV9zZXR1cF9odyhzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpwb3J0KQog CQltdmVidV93cml0ZWwocG9ydCwgdW5tYXNrLCBQQ0lFX0lOVF9VTk1BU0tfT0ZGKTsKIAl9CiAK KwkvKgorCSAqIFVubWFzayBObyBMaW5rIGFuZCBMaW5rIEZhaWx1cmUgaW50ZXJydXB0cyB0byBw cm9jZXNzIExpbmsgRG93bgorCSAqIGV2ZW50cy4gVGhlc2UgZXZlbnRzIGFyZSByZXBvcnRlZCBh cyBEYXRhIExpbmsgTGF5ZXIgU3RhdGUgQ2hhbmdlZAorCSAqIG5vdGlmaWNhdGlvbiB2aWEgSG90 IFBsdWcgSW50ZXJydXB0LiBPdGhlciBwYXJ0cyBvZiBMaW5rIGNoYW5nZQorCSAqIGV2ZW50cyBh cmUgYXZhaWxhYmxlIG9ubHkgd2hlbiAiZXJyb3IiIGludGVycnVwdCB3YXMgc3BlY2lmaWVkIGlu IERULgorCSAqIFNvIGVuYWJsZSB0aGVzZSBpbnRlcnJ1cHRzIHVuZGVyIHNhbWUgY29uZGl0aW9u cy4KKwkgKi8KKwlpZiAocG9ydC0+ZXJyb3JfaXJxID4gMCkgeworCQl1bm1hc2sgPSBtdmVidV9y ZWFkbChwb3J0LCBQQ0lFX0lOVF9VTk1BU0tfT0ZGKTsKKwkJdW5tYXNrIHw9IFBDSUVfSU5UX1RY UkVRX05PTElOSyB8IFBDSUVfSU5UX0xJTktfRkFJTDsKKwkJbXZlYnVfd3JpdGVsKHBvcnQsIHVu bWFzaywgUENJRV9JTlRfVU5NQVNLX09GRik7CisJfQorCiAJLyoKIAkgKiBGYWxsYmFjayBjb2Rl IHdoZW4gImludHgiIGludGVycnVwdCB3YXMgbm90IHNwZWNpZmllZCBpbiBEVDoKIAkgKiBVbm1h c2sgYWxsIGxlZ2FjeSBJTlR4IGludGVycnVwdHMgYXMgZHJpdmVyIGRvZXMgbm90IHByb3ZpZGUg YSB3YXkKQEAgLTY5Miw2ICs3MjgsMTQgQEAgbXZlYnVfcGNpX2JyaWRnZV9lbXVsX3BjaWVfY29u Zl9yZWFkKHN0cnVjdCBwY2lfYnJpZGdlX2VtdWwgKmJyaWRnZSwKIAkJCXZhbCB8PSBzbG90Y3Rs ICYgUENJX0VYUF9TTFRDVExfQVNQTF9ESVNBQkxFOwogCQllbHNlIGlmICghKG12ZWJ1X3JlYWRs KHBvcnQsIFBDSUVfU1NQTF9PRkYpICYgUENJRV9TU1BMX0VOQUJMRSkpCiAJCQl2YWwgfD0gUENJ X0VYUF9TTFRDVExfQVNQTF9ESVNBQkxFOworCQkvKgorCQkgKiBIUElFIGFuZCBETExTQ0UgYml0 cyBhcmUgc3RvcmVkIG9ubHkgaW4gZW11bGF0ZWQgY29uZmlnCisJCSAqIHNwYWNlIGJ1ZmZlciBh bmQgYXJlIHN1cHBvcnRlZCBvbmx5IHdoZW4gImVycm9yIiBpbnRlcnJ1cHQKKwkJICogd2FzIHNw ZWNpZmllZCBpbiBEVC4KKwkJICovCisJCWlmIChwb3J0LT5lcnJvcl9pcnEgPiAwKQorCQkJdmFs IHw9IHNsb3RjdGwgJiAoUENJX0VYUF9TTFRDVExfSFBJRSB8CisJCQkJCSAgUENJX0VYUF9TTFRD VExfRExMU0NFKTsKIAkJLyogVGhpcyBjYWxsYmFjayBpcyAzMi1iaXQgYW5kIGluIGhpZ2ggYml0 cyBpcyBzbG90IHN0YXR1cy4gKi8KIAkJdmFsIHw9IHNsb3RzdGEgPDwgMTY7CiAJCSp2YWx1ZSA9 IHZhbDsKQEAgLTgyMyw2ICs4NjcsMjUgQEAgbXZlYnVfcGNpX2JyaWRnZV9lbXVsX2Jhc2VfY29u Zl93cml0ZShzdHJ1Y3QgcGNpX2JyaWRnZV9lbXVsICpicmlkZ2UsCiAJCQllbHNlCiAJCQkJY3Ry bCAmPSB+UENJRV9DVFJMX01BU1RFUl9IT1RfUkVTRVQ7CiAJCQltdmVidV93cml0ZWwocG9ydCwg Y3RybCwgUENJRV9DVFJMX09GRik7CisJCQkvKgorCQkJICogV2hlbiBkcm9wcGluZyB0byBEZXRl Y3QgdmlhIEhvdCBSZXNldCwgRGlzYWJsZSBMaW5rCisJCQkgKiBvciBMb29wYmFjayBzdGF0ZXMs IHRoZSBMaW5rIEZhaWx1cmUgaW50ZXJydXB0IGlzIG5vdAorCQkJICogYXNzZXJ0ZWQuIFNvIHdo ZW4gc2V0dGluZyBTZWNvbmRhcnkgQnVzIFJlc2V0IC8gSG90CisJCQkgKiBSZXNldCBiaXQsIGNh bGwgbGluayBJUlEgdGltZXIvaGFuZGxlciBtYW51YWxseS4KKwkJCSAqLworCQkJaWYgKChjdHJs ICYgUENJRV9DVFJMX01BU1RFUl9IT1RfUkVTRVQpICYmIHBvcnQtPmxpbmtfd2FzX3VwKSB7CisJ CQkJcG9ydC0+bGlua193YXNfdXAgPSBmYWxzZTsKKwkJCQkvKgorCQkJCSAqIExpbmsgSVJRIHRp bWVyL2hhbmRsZXIgaXMgYXZhaWxhYmxlIG9ubHkgd2hlbgorCQkJCSAqICJlcnJvciIgaW50ZXJy dXB0IHdhcyBzcGVjaWZpZWQgaW4gRFQuCisJCQkJICovCisJCQkJaWYgKHBvcnQtPmVycm9yX2ly cSA+IDApIHsKKwkJCQkJdTE2IHNsb3RzdGEgPSBsZTE2X3RvX2NwdShwb3J0LT5icmlkZ2UucGNp ZV9jb25mLnNsb3RzdGEpOworCQkJCQlwb3J0LT5icmlkZ2UucGNpZV9jb25mLnNsb3RzdGEgPQor CQkJCQkJY3B1X3RvX2xlMTYoc2xvdHN0YSB8IFBDSV9FWFBfU0xUU1RBX0RMTFNDKTsKKwkJCQkJ bW9kX3RpbWVyKCZwb3J0LT5saW5rX2lycV90aW1lciwgamlmZmllcyArIDEpOworCQkJCX0KKwkJ CX0KIAkJfQogCQlicmVhazsKIApAQCAtODUxLDYgKzkxNCwyNSBAQCBtdmVidV9wY2lfYnJpZGdl X2VtdWxfcGNpZV9jb25mX3dyaXRlKHN0cnVjdCBwY2lfYnJpZGdlX2VtdWwgKmJyaWRnZSwKIAkJ bmV3ICY9IH5QQ0lfRVhQX0xOS0NUTF9DTEtSRVFfRU47CiAKIAkJbXZlYnVfd3JpdGVsKHBvcnQs IG5ldywgUENJRV9DQVBfUENJRVhQICsgUENJX0VYUF9MTktDVEwpOworCQkvKgorCQkgKiBXaGVu IGRyb3BwaW5nIHRvIERldGVjdCB2aWEgSG90IFJlc2V0LCBEaXNhYmxlIExpbmsKKwkJICogb3Ig TG9vcGJhY2sgc3RhdGVzLCB0aGUgTGluayBGYWlsdXJlIGludGVycnVwdCBpcyBub3QKKwkJICog YXNzZXJ0ZWQuIFNvIHdoZW4gc2V0dGluZyBMaW5rIERpc2FibGUgYml0LCBjYWxsIGxpbmsKKwkJ ICogSVJRIHRpbWVyL2hhbmRsZXIgbWFudWFsbHkuCisJCSAqLworCQlpZiAoKG5ldyAmIFBDSV9F WFBfTE5LQ1RMX0xEKSAmJiBwb3J0LT5saW5rX3dhc191cCkgeworCQkJcG9ydC0+bGlua193YXNf dXAgPSBmYWxzZTsKKwkJCS8qCisJCQkgKiBMaW5rIElSUSB0aW1lci9oYW5kbGVyIGlzIGF2YWls YWJsZSBvbmx5IHdoZW4KKwkJCSAqICJlcnJvciIgaW50ZXJydXB0IHdhcyBzcGVjaWZpZWQgaW4g RFQuCisJCQkgKi8KKwkJCWlmIChwb3J0LT5lcnJvcl9pcnEgPiAwKSB7CisJCQkJdTE2IHNsb3Rz dGEgPSBsZTE2X3RvX2NwdShwb3J0LT5icmlkZ2UucGNpZV9jb25mLnNsb3RzdGEpOworCQkJCXBv cnQtPmJyaWRnZS5wY2llX2NvbmYuc2xvdHN0YSA9CisJCQkJCWNwdV90b19sZTE2KHNsb3RzdGEg fCBQQ0lfRVhQX1NMVFNUQV9ETExTQyk7CisJCQkJbW9kX3RpbWVyKCZwb3J0LT5saW5rX2lycV90 aW1lciwgamlmZmllcyArIDEpOworCQkJfQorCQl9CiAJCWJyZWFrOwogCiAJY2FzZSBQQ0lfRVhQ X1NMVENUTDoKQEAgLTk5MSw2ICsxMDczLDE1IEBAIHN0YXRpYyBpbnQgbXZlYnVfcGNpX2JyaWRn ZV9lbXVsX2luaXQoc3RydWN0IG12ZWJ1X3BjaWVfcG9ydCAqcG9ydCkKIAlicmlkZ2UtPnBjaWVf Y29uZi5jYXAgPSBjcHVfdG9fbGUxNihwY2llX2NhcF92ZXIgfCBQQ0lfRVhQX0ZMQUdTX1NMT1Qp OwogCiAJLyoKKwkgKiBXaGVuICJlcnJvciIgaW50ZXJydXB0IHdhcyBzcGVjaWZpZWQgaW4gRFQg dGhlbiBkcml2ZXIgaXMgYWJsZSB0bworCSAqIGRlbGl2ZXIgRGF0YSBMaW5rIExheWVyIFN0YXRl IENoYW5nZSBpbnRlcnJ1cHQuIFNvIGluIHRoaXMgY2FzZSBtYXJrCisJICogYnJpZGdlIGFzIEhv dCBQbHVnIENhcGFibGUgYXMgdGhpcyBpcyB0aGUgd2F5IGhvdyB0byBlbmFibGUKKwkgKiBkZWxp dmVyaW5nIG9mIERhdGEgTGluayBMYXllciBTdGF0ZSBDaGFuZ2UgaW50ZXJydXB0cy4KKwkgKgor CSAqIE5vIENvbW1hbmQgQ29tcGxldGVkIFN1cHBvcnQgaXMgc2V0IGJlY2F1c2UgYnJpZGdlIGRv ZXMgbm90IHN1cHBvcnQKKwkgKiBDb21tYW5kIENvbXBsZXRlZCBJbnRlcnJ1cHQuIEV2ZXJ5IGNv bW1hbmQgaXMgZXhlY3V0ZWQgaW1tZWRpYXRlbHkKKwkgKiB3aXRob3V0IGFueSBkZWxheS4KKwkg KgogCSAqIFNldCBQcmVzZW5jZSBEZXRlY3QgU3RhdGUgYml0IHBlcm1hbmVudGx5IGFzIHRoZXJl IGlzIG5vIHN1cHBvcnQgZm9yCiAJICogdW5wbHVnZ2luZyBQQ0llIGNhcmQgZnJvbSB0aGUgc2xv dC4gQXNzdW1lIHRoYXQgUENJZSBjYXJkIGlzIGFsd2F5cwogCSAqIGNvbm5lY3RlZCBpbiBzbG90 LgpAQCAtMTAwMiw2ICsxMDkzLDggQEAgc3RhdGljIGludCBtdmVidV9wY2lfYnJpZGdlX2VtdWxf aW5pdChzdHJ1Y3QgbXZlYnVfcGNpZV9wb3J0ICpwb3J0KQogCSAqIEFsc28gc2V0IGNvcnJlY3Qg c2xvdCBwb3dlciBsaW1pdC4KIAkgKi8KIAlicmlkZ2UtPnBjaWVfY29uZi5zbG90Y2FwID0gY3B1 X3RvX2xlMzIoCisJCVBDSV9FWFBfU0xUQ0FQX05DQ1MgfAorCQkocG9ydC0+ZXJyb3JfaXJxID4g MCA/IFBDSV9FWFBfU0xUQ0FQX0hQQyA6IDApIHwKIAkJRklFTERfUFJFUChQQ0lfRVhQX1NMVENB UF9TUExWLCBwb3J0LT5zbG90X3Bvd2VyX2xpbWl0X3ZhbHVlKSB8CiAJCUZJRUxEX1BSRVAoUENJ X0VYUF9TTFRDQVBfU1BMUywgcG9ydC0+c2xvdF9wb3dlcl9saW1pdF9zY2FsZSkgfAogCQlGSUVM RF9QUkVQKFBDSV9FWFBfU0xUQ0FQX1BTTiwgcG9ydC0+cG9ydCsxKSk7CkBAIC0xMTkxLDExICsx Mjg0LDI5IEBAIHN0YXRpYyBpbnQgbXZlYnVfcGNpZV9pbml0X2lycV9kb21haW4oc3RydWN0IG12 ZWJ1X3BjaWVfcG9ydCAqcG9ydCkKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIHZvaWQgbXZlYnVf cGNpZV9saW5rX2lycV9oYW5kbGVyKHN0cnVjdCB0aW1lcl9saXN0ICp0aW1lcikKK3sKKwlzdHJ1 Y3QgbXZlYnVfcGNpZV9wb3J0ICpwb3J0ID0gZnJvbV90aW1lcihwb3J0LCB0aW1lciwgbGlua19p cnFfdGltZXIpOworCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwb3J0LT5wY2llLT5wZGV2LT5kZXY7 CisJdTE2IHNsb3RjdGw7CisKKwlkZXZfaW5mbyhkZXYsICIlczogbGluayAlc1xuIiwgcG9ydC0+ bmFtZSwgcG9ydC0+bGlua193YXNfdXAgPyAidXAiIDogImRvd24iKTsKKworCXNsb3RjdGwgPSBs ZTE2X3RvX2NwdShwb3J0LT5icmlkZ2UucGNpZV9jb25mLnNsb3RjdGwpOworCWlmICghKHNsb3Rj dGwgJiBQQ0lfRVhQX1NMVENUTF9ETExTQ0UpIHx8CisJICAgICEoc2xvdGN0bCAmIFBDSV9FWFBf U0xUQ1RMX0hQSUUpKQorCQlyZXR1cm47CisKKwlpZiAoZ2VuZXJpY19oYW5kbGVfZG9tYWluX2ly cShwb3J0LT5ycF9pcnFfZG9tYWluLCAwKSA9PSAtRUlOVkFMKQorCQlkZXZfZXJyX3JhdGVsaW1p dGVkKGRldiwgInVuaGFuZGxlZCBIUCBJUlFcbiIpOworfQorCiBzdGF0aWMgaXJxcmV0dXJuX3Qg bXZlYnVfcGNpZV9lcnJvcl9pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiB7CiAJc3Ry dWN0IG12ZWJ1X3BjaWVfcG9ydCAqcG9ydCA9IGFyZzsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAm cG9ydC0+cGNpZS0+cGRldi0+ZGV2OwogCXUzMiBjYXVzZSwgdW5tYXNrLCBzdGF0dXM7CisJdTE2 IHNsb3RzdGE7CiAKIAljYXVzZSA9IG12ZWJ1X3JlYWRsKHBvcnQsIFBDSUVfSU5UX0NBVVNFX09G Rik7CiAJdW5tYXNrID0gbXZlYnVfcmVhZGwocG9ydCwgUENJRV9JTlRfVU5NQVNLX09GRik7CkBA IC0xMjMzLDYgKzEzNDQsMjUgQEAgc3RhdGljIGlycXJldHVybl90IG12ZWJ1X3BjaWVfZXJyb3Jf aXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKQogCQkJZGV2X2Vycl9yYXRlbGltaXRlZChk ZXYsICJ1bmhhbmRsZWQgRVJSIElSUVxuIik7CiAJfQogCisJLyogUHJvY2VzcyBObyBMaW5rIGFu ZCBMaW5rIEZhaWx1cmUgaW50ZXJydXB0cyBhcyBIUCBJUlEgKi8KKwlpZiAoc3RhdHVzICYgKFBD SUVfSU5UX1RYUkVRX05PTElOSyB8IFBDSUVfSU5UX0xJTktfRkFJTCkpIHsKKwkJbXZlYnVfd3Jp dGVsKHBvcnQsCisJCQkgICAgIH4oUENJRV9JTlRfVFhSRVFfTk9MSU5LIHwgUENJRV9JTlRfTElO S19GQUlMKSwKKwkJCSAgICAgUENJRV9JTlRfQ0FVU0VfT0ZGKTsKKwkJaWYgKHBvcnQtPmxpbmtf d2FzX3VwKSB7CisJCQlwb3J0LT5saW5rX3dhc191cCA9IGZhbHNlOworCQkJc2xvdHN0YSA9IGxl MTZfdG9fY3B1KHBvcnQtPmJyaWRnZS5wY2llX2NvbmYuc2xvdHN0YSk7CisJCQlwb3J0LT5icmlk Z2UucGNpZV9jb25mLnNsb3RzdGEgPQorCQkJCWNwdV90b19sZTE2KHNsb3RzdGEgfCBQQ0lfRVhQ X1NMVFNUQV9ETExTQyk7CisJCQkvKgorCQkJICogRGVhY3RpdmF0ZSB0aW1lciBhbmQgY2FsbCBt dmVidV9wY2llX2xpbmtfaXJxX2hhbmRsZXIoKQorCQkJICogZnVuY3Rpb24gZGlyZWN0bHkgYXMg d2UgYXJlIGluIHRoZSBpbnRlcnJ1cHQgY29udGV4dC4KKwkJCSAqLworCQkJZGVsX3RpbWVyX3N5 bmMoJnBvcnQtPmxpbmtfaXJxX3RpbWVyKTsKKwkJCW12ZWJ1X3BjaWVfbGlua19pcnFfaGFuZGxl cigmcG9ydC0+bGlua19pcnFfdGltZXIpOworCQl9CisJfQorCiAJcmV0dXJuIHN0YXR1cyA/IElS UV9IQU5ETEVEIDogSVJRX05PTkU7CiB9CiAKQEAgLTE3OTYsNiArMTkyNiwxOCBAQCBzdGF0aWMg aW50IG12ZWJ1X3BjaWVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAkJCX0K IAkJfQogCisJCS8qCisJCSAqIEZ1bmN0aW9uIG12ZWJ1X3BjaWVfbGlua19pcnFfaGFuZGxlcigp IGNhbGxzIGZ1bmN0aW9uCisJCSAqIGdlbmVyaWNfaGFuZGxlX2lycSgpIGFuZCBpdCBleHBlY3Rz IGxvY2FsIElSUXMgdG8gYmUgZGlzYWJsZWQKKwkJICogYXMgbm9ybWFsbHkgZ2VuZXJpY19oYW5k bGVfaXJxKCkgaXMgY2FsbGVkIGZyb20gdGhlIGludGVycnVwdAorCQkgKiBjb250ZXh0LiBTbyB1 c2UgVElNRVJfSVJRU0FGRSBmbGFnIGZvciB0aGlzIGxpbmtfaXJxX3RpbWVyLgorCQkgKiBBdmFp bGFibGUgb25seSBpZiAiZXJyb3IiIGludGVycnVwdCB3YXMgc3BlY2lmaWVkIGluIERULgorCQkg Ki8KKwkJaWYgKHBvcnQtPmVycm9yX2lycSA+IDApCisJCQl0aW1lcl9zZXR1cCgmcG9ydC0+bGlu a19pcnFfdGltZXIsCisJCQkJICAgIG12ZWJ1X3BjaWVfbGlua19pcnFfaGFuZGxlciwKKwkJCQkg ICAgVElNRVJfSVJRU0FGRSk7CisKIAkJLyoKIAkJICogUENJZSB0b3BvbG9neSBleHBvcnRlZCBi eSBtdmVidSBodyBpcyBxdWl0ZSBjb21wbGljYXRlZC4gSW4KIAkJICogcmVhbGl0eSBoYXMgc29t ZXRoaW5nIGxpa2UgTiBmdWxseSBpbmRlcGVuZGVudCBob3N0IGJyaWRnZXMKQEAgLTE5MzIsNiAr MjA3NCw5IEBAIHN0YXRpYyBpbnQgbXZlYnVfcGNpZV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKIAkJCWlycV9kb21haW5fcmVtb3ZlKHBvcnQtPnJwX2lycV9kb21haW4pOwog CQl9CiAKKwkJaWYgKHBvcnQtPmVycm9yX2lycSA+IDApCisJCQlkZWxfdGltZXJfc3luYygmcG9y dC0+bGlua19pcnFfdGltZXIpOworCiAJCS8qIEZyZWUgY29uZmlnIHNwYWNlIGZvciBlbXVsYXRl ZCByb290IGJyaWRnZS4gKi8KIAkJcGNpX2JyaWRnZV9lbXVsX2NsZWFudXAoJnBvcnQtPmJyaWRn ZSk7CiAKLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxA bGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK