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 10131C64EC4 for ; Fri, 10 Mar 2023 17:15:50 +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:References:In-Reply-To: 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: List-Owner; bh=tV4cChjCCKY1a8TEOamJpumLvS5+8GbBYzYcdX+T1JI=; b=0pXI1Z+ptsNSPQ wx5VMG1ETE4TJu30QFWTMlUfdE2aFKgCzd/0lWLaNNJ5PS1VmV9ygurnZQEo1l6POeFe/57/yTM72 5rv86IzozGnP4fWVXfIMbdhrYqjTOg7rVPYSTFZ2Varn0pOWk3/eLC5xc4DFzk7NBsGNsYzfSoEiy ZDjJSd4HnfF0+YdRlWWiWb2hhMWsYZ9zfRkVLqCxQ3YGA0XIredvm87GsWtqddZWa3ZCvXAbAijMV OU5XUBrMakb6jOwz3F/8FasNi2h4Ejf27cXhkqh8vdIvdG6HhshuCdH2rkVf893LELU6f6+rlDt0/ aTcTeNTqHIcRLq2Yzpxg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pagKL-00FUNY-W8; Fri, 10 Mar 2023 17:14:46 +0000 Received: from mga02.intel.com ([134.134.136.20]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pagJm-00FU7U-LQ for linux-arm-kernel@lists.infradead.org; Fri, 10 Mar 2023 17:14:15 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678468450; x=1710004450; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=eHidnQb8OVGw2m65PUEJlimfsZ9DgoEAjYSy55tHAGc=; b=Vkl5bprkamoua8OA1oYc73t2MmFb7NfCnlwy0ALanCyI4zjXFpgCKwDk FW6mS5Grj/DYkW3CaCfjuPvTZDFCJzPQJuPg7H3NbPBPyzdoC9KqvbsfT YBOWWeLgftJrLQqDBaToHOSM9GqP7fSKBZhRTV24903PIyRHKsBFPLXY1 1rvPNhYzp3WlL6OLr72zocD9H4iu1F5VxoQPdav0CL0RvM+0ZO0uZuY4K OBucHUHrnYtt0ddTCRicq5ZYZt04P3vW3n10lhxpPWtG5wSDX621U4s8m 4vGqhBYqmHK26iqjnwakkKKDm1oi5QQhF7g82Tm1bziVxrTAKhV5YVJEc g==; X-IronPort-AV: E=McAfee;i="6500,9779,10645"; a="325132335" X-IronPort-AV: E=Sophos;i="5.98,250,1673942400"; d="scan'208";a="325132335" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Mar 2023 09:13:48 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10645"; a="655250078" X-IronPort-AV: E=Sophos;i="5.98,250,1673942400"; d="scan'208";a="655250078" Received: from black.fi.intel.com ([10.237.72.28]) by orsmga006.jf.intel.com with ESMTP; 10 Mar 2023 09:13:37 -0800 Received: by black.fi.intel.com (Postfix, from userid 1003) id 5964C94; Fri, 10 Mar 2023 19:14:21 +0200 (EET) From: Andy Shevchenko To: =?UTF-8?q?Micka=C3=ABl=20Sala=C3=BCn?= , Andy Shevchenko , Mika Westerberg , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Michael Ellerman , Randy Dunlap , Arnd Bergmann , Bjorn Helgaas , "Rafael J. Wysocki" , Niklas Schnelle , =?UTF-8?q?Pali=20Roh=C3=A1r?= , "Maciej W. Rozycki" , Juergen Gross , Dominik Brodowski , linux-kernel@vger.kernel.org, linux-alpha@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-pci@vger.kernel.org, xen-devel@lists.xenproject.org, linux-acpi@vger.kernel.org Cc: Miguel Ojeda , Richard Henderson , Ivan Kokshaysky , Matt Turner , Russell King , Andrew Lunn , Sebastian Hesselbarth , Gregory Clement , Thomas Bogendoerfer , Nicholas Piggin , Christophe Leroy , Anatolij Gustschin , Yoshinori Sato , Rich Felker , John Paul Adrian Glaubitz , "David S. Miller" , Bjorn Helgaas , Stefano Stabellini , Oleksandr Tyshchenko Subject: [PATCH v4 1/4] PCI: Introduce pci_dev_for_each_resource() Date: Fri, 10 Mar 2023 19:14:13 +0200 Message-Id: <20230310171416.23356-2-andriy.shevchenko@linux.intel.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20230310171416.23356-1-andriy.shevchenko@linux.intel.com> References: <20230310171416.23356-1-andriy.shevchenko@linux.intel.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230310_091410_947407_C5A7AD99 X-CRM114-Status: GOOD ( 26.74 ) 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 RnJvbTogTWlrYSBXZXN0ZXJiZXJnIDxtaWthLndlc3RlcmJlcmdAbGludXguaW50ZWwuY29tPgoK SW5zdGVhZCBvZiBvcGVuLWNvZGluZyBpdCBldmVyeXdoZXJlIGludHJvZHVjZSBhIHRpbnkgaGVs cGVyIHRoYXQgY2FuIGJlCnVzZWQgdG8gaXRlcmF0ZSBvdmVyIGVhY2ggcmVzb3VyY2Ugb2YgYSBQ Q0kgZGV2aWNlLCBhbmQgY29udmVydCB0aGUgbW9zdApvYnZpb3VzIHVzZXJzIGludG8gaXQuCgpX aGlsZSBhdCBpdCBkcm9wIGRvdWJsZWQgZW1wdHkgbGluZSBiZWZvcmUgcGRldl9zb3J0X3Jlc291 cmNlcygpLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2VzIGludGVuZGVkLgoKU3VnZ2VzdGVkLWJ5OiBB bmR5IFNoZXZjaGVua28gPGFuZHJpeS5zaGV2Y2hlbmtvQGxpbnV4LmludGVsLmNvbT4KU2lnbmVk LW9mZi1ieTogTWlrYSBXZXN0ZXJiZXJnIDxtaWthLndlc3RlcmJlcmdAbGludXguaW50ZWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBBbmR5IFNoZXZjaGVua28gPGFuZHJpeS5zaGV2Y2hlbmtvQGxpbnV4 LmludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IEtyenlzenRvZiBXaWxjennFhHNraSA8a3dAbGludXgu Y29tPgotLS0KIC5jbGFuZy1mb3JtYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIg KysKIGFyY2gvYWxwaGEva2VybmVsL3BjaS5jICAgICAgICAgICAgICAgICAgIHwgIDUgKystLQog YXJjaC9hcm0va2VybmVsL2Jpb3MzMi5jICAgICAgICAgICAgICAgICAgfCAxNiArKysrKystLS0t LS0tCiBhcmNoL2FybS9tYWNoLWRvdmUvcGNpZS5jICAgICAgICAgICAgICAgICB8IDEwICsrKyst LS0tCiBhcmNoL2FybS9tYWNoLW12Nzh4eDAvcGNpZS5jICAgICAgICAgICAgICB8IDEwICsrKyst LS0tCiBhcmNoL2FybS9tYWNoLW9yaW9uNXgvcGNpLmMgICAgICAgICAgICAgICB8IDEwICsrKyst LS0tCiBhcmNoL21pcHMvcGNpL29wcy1iY202M3h4LmMgICAgICAgICAgICAgICB8ICA4ICsrKy0t LS0KIGFyY2gvbWlwcy9wY2kvcGNpLWxlZ2FjeS5jICAgICAgICAgICAgICAgIHwgIDMgKy0tCiBh cmNoL3Bvd2VycGMva2VybmVsL3BjaS1jb21tb24uYyAgICAgICAgICB8IDIxICsrKysrKysrLS0t LS0tLS0KIGFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvNHh4L3BjaS5jICAgICAgICAgIHwgIDggKysr LS0tLQogYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy81Mnh4L21wYzUyeHhfcGNpLmMgfCAgNCArKy0t CiBhcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvcGNpLmMgICAgICB8IDE2ICsrKysrKy0t LS0tLS0KIGFyY2gvc2gvZHJpdmVycy9wY2kvcGNpZS1zaDc3ODYuYyAgICAgICAgIHwgMTAgKysr Ky0tLS0KIGFyY2gvc3BhcmMva2VybmVsL2xlb25fcGNpLmMgICAgICAgICAgICAgIHwgIDUgKyst LQogYXJjaC9zcGFyYy9rZXJuZWwvcGNpLmMgICAgICAgICAgICAgICAgICAgfCAxMCArKysrLS0t LQogYXJjaC9zcGFyYy9rZXJuZWwvcGNpYy5jICAgICAgICAgICAgICAgICAgfCAgNSArKy0tCiBk cml2ZXJzL3BjaS9yZW1vdmUuYyAgICAgICAgICAgICAgICAgICAgICB8ICA1ICsrLS0KIGRyaXZl cnMvcGNpL3NldHVwLWJ1cy5jICAgICAgICAgICAgICAgICAgIHwgMjcgKysrKysrKystLS0tLS0t LS0tLS0tCiBkcml2ZXJzL3BjaS9zZXR1cC1yZXMuYyAgICAgICAgICAgICAgICAgICB8ICA0ICst LS0KIGRyaXZlcnMvcGNpL3ZnYWFyYi5jICAgICAgICAgICAgICAgICAgICAgIHwgMTcgKysrKy0t LS0tLS0tLQogZHJpdmVycy9wY2kveGVuLXBjaWZyb250LmMgICAgICAgICAgICAgICAgfCAgNCAr LS0tCiBkcml2ZXJzL3BucC9xdWlya3MuYyAgICAgICAgICAgICAgICAgICAgICB8IDI5ICsrKysr KysrLS0tLS0tLS0tLS0tLS0tCiBpbmNsdWRlL2xpbnV4L3BjaS5oICAgICAgICAgICAgICAgICAg ICAgICB8IDEyICsrKysrKysrKysKIDIzIGZpbGVzIGNoYW5nZWQsIDExMCBpbnNlcnRpb25zKCsp LCAxMzEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvLmNsYW5nLWZvcm1hdCBiLy5jbGFuZy1m b3JtYXQKaW5kZXggZDk4OGU5ZmE5YjI2Li4yNjZhYmI4NDM2NTQgMTAwNjQ0Ci0tLSBhLy5jbGFu Zy1mb3JtYXQKKysrIGIvLmNsYW5nLWZvcm1hdApAQCAtNTIwLDYgKzUyMCw4IEBAIEZvckVhY2hN YWNyb3M6CiAgIC0gJ29mX3Byb3BlcnR5X2Zvcl9lYWNoX3N0cmluZycKICAgLSAnb2ZfcHJvcGVy dHlfZm9yX2VhY2hfdTMyJwogICAtICdwY2lfYnVzX2Zvcl9lYWNoX3Jlc291cmNlJworICAtICdw Y2lfZGV2X2Zvcl9lYWNoX3Jlc291cmNlJworICAtICdwY2lfZGV2X2Zvcl9lYWNoX3Jlc291cmNl X3AnCiAgIC0gJ3BjaV9kb2VfZm9yX2VhY2hfb2ZmJwogICAtICdwY2xfZm9yX2VhY2hfY2h1bmsn CiAgIC0gJ3BjbF9mb3JfZWFjaF9zZWdtZW50JwpkaWZmIC0tZ2l0IGEvYXJjaC9hbHBoYS9rZXJu ZWwvcGNpLmMgYi9hcmNoL2FscGhhL2tlcm5lbC9wY2kuYwppbmRleCA2NGZiZmIwNzYzYjIuLjQ0 NThlYjdmNDRmMCAxMDA2NDQKLS0tIGEvYXJjaC9hbHBoYS9rZXJuZWwvcGNpLmMKKysrIGIvYXJj aC9hbHBoYS9rZXJuZWwvcGNpLmMKQEAgLTI4OCwxMSArMjg4LDEwIEBAIHBjaWJpb3NfY2xhaW1f b25lX2J1cyhzdHJ1Y3QgcGNpX2J1cyAqYikKIAlzdHJ1Y3QgcGNpX2J1cyAqY2hpbGRfYnVzOwog CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShkZXYsICZiLT5kZXZpY2VzLCBidXNfbGlzdCkgeworCQlz dHJ1Y3QgcmVzb3VyY2UgKnI7CiAJCWludCBpOwogCi0JCWZvciAoaSA9IDA7IGkgPCBQQ0lfTlVN X1JFU09VUkNFUzsgaSsrKSB7Ci0JCQlzdHJ1Y3QgcmVzb3VyY2UgKnIgPSAmZGV2LT5yZXNvdXJj ZVtpXTsKLQorCQlwY2lfZGV2X2Zvcl9lYWNoX3Jlc291cmNlKGRldiwgciwgaSkgewogCQkJaWYg KHItPnBhcmVudCB8fCAhci0+c3RhcnQgfHwgIXItPmZsYWdzKQogCQkJCWNvbnRpbnVlOwogCQkJ aWYgKHBjaV9oYXNfZmxhZyhQQ0lfUFJPQkVfT05MWSkgfHwKZGlmZiAtLWdpdCBhL2FyY2gvYXJt L2tlcm5lbC9iaW9zMzIuYyBiL2FyY2gvYXJtL2tlcm5lbC9iaW9zMzIuYwppbmRleCBlN2VmMmI1 YmVhOWMuLjUyNTQ3MzRiMjNlNiAxMDA2NDQKLS0tIGEvYXJjaC9hcm0va2VybmVsL2Jpb3MzMi5j CisrKyBiL2FyY2gvYXJtL2tlcm5lbC9iaW9zMzIuYwpAQCAtMTQyLDE1ICsxNDIsMTUgQEAgREVD TEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfV0lOQk9ORDIsIFBDSV9ERVZJQ0Vf SURfV0lOQk9ORDJfODlDOTQwRiwKICAqLwogc3RhdGljIHZvaWQgcGNpX2ZpeHVwX2RlYzIxMjg1 KHN0cnVjdCBwY2lfZGV2ICpkZXYpCiB7Ci0JaW50IGk7Ci0KIAlpZiAoZGV2LT5kZXZmbiA9PSAw KSB7CisJCXN0cnVjdCByZXNvdXJjZSAqcjsKKwogCQlkZXYtPmNsYXNzICY9IDB4ZmY7CiAJCWRl di0+Y2xhc3MgfD0gUENJX0NMQVNTX0JSSURHRV9IT1NUIDw8IDg7Ci0JCWZvciAoaSA9IDA7IGkg PCBQQ0lfTlVNX1JFU09VUkNFUzsgaSsrKSB7Ci0JCQlkZXYtPnJlc291cmNlW2ldLnN0YXJ0ID0g MDsKLQkJCWRldi0+cmVzb3VyY2VbaV0uZW5kICAgPSAwOwotCQkJZGV2LT5yZXNvdXJjZVtpXS5m bGFncyA9IDA7CisJCXBjaV9kZXZfZm9yX2VhY2hfcmVzb3VyY2VfcChkZXYsIHIpIHsKKwkJCXIt PnN0YXJ0ID0gMDsKKwkJCXItPmVuZCA9IDA7CisJCQlyLT5mbGFncyA9IDA7CiAJCX0KIAl9CiB9 CkBAIC0xNjIsMTMgKzE2MiwxMSBAQCBERUNMQVJFX1BDSV9GSVhVUF9IRUFERVIoUENJX1ZFTkRP Ul9JRF9ERUMsIFBDSV9ERVZJQ0VfSURfREVDXzIxMjg1LCBwY2lfZml4dXBfZAogc3RhdGljIHZv aWQgcGNpX2ZpeHVwX2lkZV9iYXNlcyhzdHJ1Y3QgcGNpX2RldiAqZGV2KQogewogCXN0cnVjdCBy ZXNvdXJjZSAqcjsKLQlpbnQgaTsKIAogCWlmICgoZGV2LT5jbGFzcyA+PiA4KSAhPSBQQ0lfQ0xB U1NfU1RPUkFHRV9JREUpCiAJCXJldHVybjsKIAotCWZvciAoaSA9IDA7IGkgPCBQQ0lfTlVNX1JF U09VUkNFUzsgaSsrKSB7Ci0JCXIgPSBkZXYtPnJlc291cmNlICsgaTsKKwlwY2lfZGV2X2Zvcl9l YWNoX3Jlc291cmNlX3AoZGV2LCByKSB7CiAJCWlmICgoci0+c3RhcnQgJiB+MHg4MCkgPT0gMHgz NzQpIHsKIAkJCXItPnN0YXJ0IHw9IDI7CiAJCQlyLT5lbmQgPSByLT5zdGFydDsKZGlmZiAtLWdp dCBhL2FyY2gvYXJtL21hY2gtZG92ZS9wY2llLmMgYi9hcmNoL2FybS9tYWNoLWRvdmUvcGNpZS5j CmluZGV4IDc1NGNhMzgxZjYwMC4uNThjZWNkNzlhMjA0IDEwMDY0NAotLS0gYS9hcmNoL2FybS9t YWNoLWRvdmUvcGNpZS5jCisrKyBiL2FyY2gvYXJtL21hY2gtZG92ZS9wY2llLmMKQEAgLTE0Miwx NCArMTQyLDE0IEBAIHN0YXRpYyBzdHJ1Y3QgcGNpX29wcyBwY2llX29wcyA9IHsKIHN0YXRpYyB2 b2lkIHJjX3BjaV9maXh1cChzdHJ1Y3QgcGNpX2RldiAqZGV2KQogewogCWlmIChkZXYtPmJ1cy0+ cGFyZW50ID09IE5VTEwgJiYgZGV2LT5kZXZmbiA9PSAwKSB7Ci0JCWludCBpOworCQlzdHJ1Y3Qg cmVzb3VyY2UgKnI7CiAKIAkJZGV2LT5jbGFzcyAmPSAweGZmOwogCQlkZXYtPmNsYXNzIHw9IFBD SV9DTEFTU19CUklER0VfSE9TVCA8PCA4OwotCQlmb3IgKGkgPSAwOyBpIDwgREVWSUNFX0NPVU5U X1JFU09VUkNFOyBpKyspIHsKLQkJCWRldi0+cmVzb3VyY2VbaV0uc3RhcnQgPSAwOwotCQkJZGV2 LT5yZXNvdXJjZVtpXS5lbmQgICA9IDA7Ci0JCQlkZXYtPnJlc291cmNlW2ldLmZsYWdzID0gMDsK KwkJcGNpX2Rldl9mb3JfZWFjaF9yZXNvdXJjZV9wKGRldiwgcikgeworCQkJci0+c3RhcnQgPSAw OworCQkJci0+ZW5kICAgPSAwOworCQkJci0+ZmxhZ3MgPSAwOwogCQl9CiAJfQogfQpkaWZmIC0t Z2l0IGEvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL3BjaWUuYyBiL2FyY2gvYXJtL21hY2gtbXY3OHh4 MC9wY2llLmMKaW5kZXggNjE5MGY1MzhhMTI0Li5mNTlmMDIxNTBhMzYgMTAwNjQ0Ci0tLSBhL2Fy Y2gvYXJtL21hY2gtbXY3OHh4MC9wY2llLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL3Bj aWUuYwpAQCAtMTg2LDE0ICsxODYsMTQgQEAgc3RhdGljIHN0cnVjdCBwY2lfb3BzIHBjaWVfb3Bz ID0gewogc3RhdGljIHZvaWQgcmNfcGNpX2ZpeHVwKHN0cnVjdCBwY2lfZGV2ICpkZXYpCiB7CiAJ aWYgKGRldi0+YnVzLT5wYXJlbnQgPT0gTlVMTCAmJiBkZXYtPmRldmZuID09IDApIHsKLQkJaW50 IGk7CisJCXN0cnVjdCByZXNvdXJjZSAqcjsKIAogCQlkZXYtPmNsYXNzICY9IDB4ZmY7CiAJCWRl di0+Y2xhc3MgfD0gUENJX0NMQVNTX0JSSURHRV9IT1NUIDw8IDg7Ci0JCWZvciAoaSA9IDA7IGkg PCBERVZJQ0VfQ09VTlRfUkVTT1VSQ0U7IGkrKykgewotCQkJZGV2LT5yZXNvdXJjZVtpXS5zdGFy dCA9IDA7Ci0JCQlkZXYtPnJlc291cmNlW2ldLmVuZCAgID0gMDsKLQkJCWRldi0+cmVzb3VyY2Vb aV0uZmxhZ3MgPSAwOworCQlwY2lfZGV2X2Zvcl9lYWNoX3Jlc291cmNlX3AoZGV2LCByKSB7CisJ CQlyLT5zdGFydCA9IDA7CisJCQlyLT5lbmQgICA9IDA7CisJCQlyLT5mbGFncyA9IDA7CiAJCX0K IAl9CiB9CmRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvcGNpLmMgYi9hcmNoL2Fy bS9tYWNoLW9yaW9uNXgvcGNpLmMKaW5kZXggODg4ZmRjOTA5OWM1Li4wOTMzYjQ3YjYwMWEgMTAw NjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtb3Jpb241eC9wY2kuYworKysgYi9hcmNoL2FybS9tYWNo LW9yaW9uNXgvcGNpLmMKQEAgLTUyMiwxNCArNTIyLDE0IEBAIHN0YXRpYyBpbnQgX19pbml0IHBj aV9zZXR1cChzdHJ1Y3QgcGNpX3N5c19kYXRhICpzeXMpCiBzdGF0aWMgdm9pZCByY19wY2lfZml4 dXAoc3RydWN0IHBjaV9kZXYgKmRldikKIHsKIAlpZiAoZGV2LT5idXMtPnBhcmVudCA9PSBOVUxM ICYmIGRldi0+ZGV2Zm4gPT0gMCkgewotCQlpbnQgaTsKKwkJc3RydWN0IHJlc291cmNlICpyOwog CiAJCWRldi0+Y2xhc3MgJj0gMHhmZjsKIAkJZGV2LT5jbGFzcyB8PSBQQ0lfQ0xBU1NfQlJJREdF X0hPU1QgPDwgODsKLQkJZm9yIChpID0gMDsgaSA8IERFVklDRV9DT1VOVF9SRVNPVVJDRTsgaSsr KSB7Ci0JCQlkZXYtPnJlc291cmNlW2ldLnN0YXJ0ID0gMDsKLQkJCWRldi0+cmVzb3VyY2VbaV0u ZW5kICAgPSAwOwotCQkJZGV2LT5yZXNvdXJjZVtpXS5mbGFncyA9IDA7CisJCXBjaV9kZXZfZm9y X2VhY2hfcmVzb3VyY2VfcChkZXYsIHIpIHsKKwkJCXItPnN0YXJ0CT0gMDsKKwkJCXItPmVuZAkJ PSAwOworCQkJci0+ZmxhZ3MJPSAwOwogCQl9CiAJfQogfQpkaWZmIC0tZ2l0IGEvYXJjaC9taXBz L3BjaS9vcHMtYmNtNjN4eC5jIGIvYXJjaC9taXBzL3BjaS9vcHMtYmNtNjN4eC5jCmluZGV4IGRj NmRjMjc0MTI3Mi4uYzBlZmNiZjNjNjNmIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvcGNpL29wcy1i Y202M3h4LmMKKysrIGIvYXJjaC9taXBzL3BjaS9vcHMtYmNtNjN4eC5jCkBAIC00MTMsMTggKzQx MywxOCBAQCBzdHJ1Y3QgcGNpX29wcyBiY202M3h4X2NiX29wcyA9IHsKIHN0YXRpYyB2b2lkIGJj bTYzeHhfZml4dXAoc3RydWN0IHBjaV9kZXYgKmRldikKIHsKIAlzdGF0aWMgaW50IGlvX3dpbmRv dyA9IC0xOwotCWludCBpLCBmb3VuZCwgbmV3X2lvX3dpbmRvdzsKKwlpbnQgZm91bmQsIG5ld19p b193aW5kb3c7CisJc3RydWN0IHJlc291cmNlICpyOwogCXUzMiB2YWw7CiAKIAkvKiBsb29rIGZv ciBhbnkgaW8gcmVzb3VyY2UgKi8KIAlmb3VuZCA9IDA7Ci0JZm9yIChpID0gMDsgaSA8IERFVklD RV9DT1VOVF9SRVNPVVJDRTsgaSsrKSB7Ci0JCWlmIChwY2lfcmVzb3VyY2VfZmxhZ3MoZGV2LCBp KSAmIElPUkVTT1VSQ0VfSU8pIHsKKwlwY2lfZGV2X2Zvcl9lYWNoX3Jlc291cmNlX3AoZGV2LCBy KSB7CisJCWlmIChyZXNvdXJjZV90eXBlKHIpID09IElPUkVTT1VSQ0VfSU8pIHsKIAkJCWZvdW5k ID0gMTsKIAkJCWJyZWFrOwogCQl9CiAJfQotCiAJaWYgKCFmb3VuZCkKIAkJcmV0dXJuOwogCmRp ZmYgLS1naXQgYS9hcmNoL21pcHMvcGNpL3BjaS1sZWdhY3kuYyBiL2FyY2gvbWlwcy9wY2kvcGNp LWxlZ2FjeS5jCmluZGV4IDQ2ODcyMmM4YTVjNi4uZWMyNTY3ZjhlZmQ4IDEwMDY0NAotLS0gYS9h cmNoL21pcHMvcGNpL3BjaS1sZWdhY3kuYworKysgYi9hcmNoL21pcHMvcGNpL3BjaS1sZWdhY3ku YwpAQCAtMjQ5LDEyICsyNDksMTEgQEAgc3RhdGljIGludCBwY2liaW9zX2VuYWJsZV9yZXNvdXJj ZXMoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IG1hc2spCiAKIAlwY2lfcmVhZF9jb25maWdfd29y ZChkZXYsIFBDSV9DT01NQU5ELCAmY21kKTsKIAlvbGRfY21kID0gY21kOwotCWZvciAoaWR4ID0g MDsgaWR4IDwgUENJX05VTV9SRVNPVVJDRVM7IGlkeCsrKSB7CisJcGNpX2Rldl9mb3JfZWFjaF9y ZXNvdXJjZShkZXYsIHIsIGlkeCkgewogCQkvKiBPbmx5IHNldCB1cCB0aGUgcmVxdWVzdGVkIHN0 dWZmICovCiAJCWlmICghKG1hc2sgJiAoMTw8aWR4KSkpCiAJCQljb250aW51ZTsKIAotCQlyID0g JmRldi0+cmVzb3VyY2VbaWR4XTsKIAkJaWYgKCEoci0+ZmxhZ3MgJiAoSU9SRVNPVVJDRV9JTyB8 IElPUkVTT1VSQ0VfTUVNKSkpCiAJCQljb250aW51ZTsKIAkJaWYgKChpZHggPT0gUENJX1JPTV9S RVNPVVJDRSkgJiYKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpLWNvbW1vbi5j IGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9wY2ktY29tbW9uLmMKaW5kZXggZDY3Y2Y3OWJmNWQwLi4x OTA4YTQ2Y2FkNTQgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpLWNvbW1vbi5j CisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpLWNvbW1vbi5jCkBAIC04ODAsNiArODgwLDcg QEAgaW50IHBjaWJpb3Nfcm9vdF9icmlkZ2VfcHJlcGFyZShzdHJ1Y3QgcGNpX2hvc3RfYnJpZGdl ICpicmlkZ2UpCiBzdGF0aWMgdm9pZCBwY2liaW9zX2ZpeHVwX3Jlc291cmNlcyhzdHJ1Y3QgcGNp X2RldiAqZGV2KQogewogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9IHBjaV9idXNfdG9f aG9zdChkZXYtPmJ1cyk7CisJc3RydWN0IHJlc291cmNlICpyZXM7CiAJaW50IGk7CiAKIAlpZiAo IWhvc2UpIHsKQEAgLTg5MSw5ICs4OTIsOSBAQCBzdGF0aWMgdm9pZCBwY2liaW9zX2ZpeHVwX3Jl c291cmNlcyhzdHJ1Y3QgcGNpX2RldiAqZGV2KQogCWlmIChkZXYtPmlzX3ZpcnRmbikKIAkJcmV0 dXJuOwogCi0JZm9yIChpID0gMDsgaSA8IERFVklDRV9DT1VOVF9SRVNPVVJDRTsgaSsrKSB7Ci0J CXN0cnVjdCByZXNvdXJjZSAqcmVzID0gZGV2LT5yZXNvdXJjZSArIGk7CisJcGNpX2Rldl9mb3Jf ZWFjaF9yZXNvdXJjZShkZXYsIHJlcywgaSkgewogCQlzdHJ1Y3QgcGNpX2J1c19yZWdpb24gcmVn OworCiAJCWlmICghcmVzLT5mbGFncykKIAkJCWNvbnRpbnVlOwogCkBAIC0xNDUyLDExICsxNDUz LDEwIEBAIHZvaWQgcGNpYmlvc19jbGFpbV9vbmVfYnVzKHN0cnVjdCBwY2lfYnVzICpidXMpCiAJ c3RydWN0IHBjaV9idXMgKmNoaWxkX2J1czsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkoZGV2LCAm YnVzLT5kZXZpY2VzLCBidXNfbGlzdCkgeworCQlzdHJ1Y3QgcmVzb3VyY2UgKnI7CiAJCWludCBp OwogCi0JCWZvciAoaSA9IDA7IGkgPCBQQ0lfTlVNX1JFU09VUkNFUzsgaSsrKSB7Ci0JCQlzdHJ1 Y3QgcmVzb3VyY2UgKnIgPSAmZGV2LT5yZXNvdXJjZVtpXTsKLQorCQlwY2lfZGV2X2Zvcl9lYWNo X3Jlc291cmNlKGRldiwgciwgaSkgewogCQkJaWYgKHItPnBhcmVudCB8fCAhci0+c3RhcnQgfHwg IXItPmZsYWdzKQogCQkJCWNvbnRpbnVlOwogCkBAIC0xNzA1LDE5ICsxNzA1LDIwIEBAIEVYUE9S VF9TWU1CT0xfR1BMKHBjaWJpb3Nfc2Nhbl9waGIpOwogCiBzdGF0aWMgdm9pZCBmaXh1cF9oaWRl X2hvc3RfcmVzb3VyY2VfZnNsKHN0cnVjdCBwY2lfZGV2ICpkZXYpCiB7Ci0JaW50IGksIGNsYXNz ID0gZGV2LT5jbGFzcyA+PiA4OworCWludCBjbGFzcyA9IGRldi0+Y2xhc3MgPj4gODsKIAkvKiBX aGVuIGNvbmZpZ3VyZWQgYXMgYWdlbnQsIHByb2dyYW1taW5nIGludGVyZmFjZSA9IDEgKi8KIAlp bnQgcHJvZ19pZiA9IGRldi0+Y2xhc3MgJiAweGY7CisJc3RydWN0IHJlc291cmNlICpyOwogCiAJ aWYgKChjbGFzcyA9PSBQQ0lfQ0xBU1NfUFJPQ0VTU09SX1BPV0VSUEMgfHwKIAkgICAgIGNsYXNz ID09IFBDSV9DTEFTU19CUklER0VfT1RIRVIpICYmCiAJCShkZXYtPmhkcl90eXBlID09IFBDSV9I RUFERVJfVFlQRV9OT1JNQUwpICYmCiAJCShwcm9nX2lmID09IDApICYmCiAJCShkZXYtPmJ1cy0+ cGFyZW50ID09IE5VTEwpKSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBERVZJQ0VfQ09VTlRfUkVTT1VS Q0U7IGkrKykgewotCQkJZGV2LT5yZXNvdXJjZVtpXS5zdGFydCA9IDA7Ci0JCQlkZXYtPnJlc291 cmNlW2ldLmVuZCA9IDA7Ci0JCQlkZXYtPnJlc291cmNlW2ldLmZsYWdzID0gMDsKKwkJcGNpX2Rl dl9mb3JfZWFjaF9yZXNvdXJjZV9wKGRldiwgcikgeworCQkJci0+c3RhcnQgPSAwOworCQkJci0+ ZW5kID0gMDsKKwkJCXItPmZsYWdzID0gMDsKIAkJfQogCX0KIH0KZGlmZiAtLWdpdCBhL2FyY2gv cG93ZXJwYy9wbGF0Zm9ybXMvNHh4L3BjaS5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy80eHgv cGNpLmMKaW5kZXggY2E1ZGQ3YTU4NDJhLi45ZDE5MTIzYzBkYTggMTAwNjQ0Ci0tLSBhL2FyY2gv cG93ZXJwYy9wbGF0Zm9ybXMvNHh4L3BjaS5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMv NHh4L3BjaS5jCkBAIC01Nyw3ICs1Nyw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IHBwYzQ0MHNwZV9y ZXZBKHZvaWQpCiBzdGF0aWMgdm9pZCBmaXh1cF9wcGM0eHhfcGNpX2JyaWRnZShzdHJ1Y3QgcGNp X2RldiAqZGV2KQogewogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZTsKLQlpbnQgaTsKKwlz dHJ1Y3QgcmVzb3VyY2UgKnI7CiAKIAlpZiAoZGV2LT5kZXZmbiAhPSAwIHx8IGRldi0+YnVzLT5z ZWxmICE9IE5VTEwpCiAJCXJldHVybjsKQEAgLTc5LDkgKzc5LDkgQEAgc3RhdGljIHZvaWQgZml4 dXBfcHBjNHh4X3BjaV9icmlkZ2Uoc3RydWN0IHBjaV9kZXYgKmRldikKIAkvKiBIaWRlIHRoZSBQ Q0kgaG9zdCBCQVJzIGZyb20gdGhlIGtlcm5lbCBhcyB0aGVpciBjb250ZW50IGRvZXNuJ3QKIAkg KiBmaXQgd2VsbCBpbiB0aGUgcmVzb3VyY2UgbWFuYWdlbWVudAogCSAqLwotCWZvciAoaSA9IDA7 IGkgPCBERVZJQ0VfQ09VTlRfUkVTT1VSQ0U7IGkrKykgewotCQlkZXYtPnJlc291cmNlW2ldLnN0 YXJ0ID0gZGV2LT5yZXNvdXJjZVtpXS5lbmQgPSAwOwotCQlkZXYtPnJlc291cmNlW2ldLmZsYWdz ID0gMDsKKwlwY2lfZGV2X2Zvcl9lYWNoX3Jlc291cmNlX3AoZGV2LCByKSB7CisJCXItPnN0YXJ0 ID0gci0+ZW5kID0gMDsKKwkJci0+ZmxhZ3MgPSAwOwogCX0KIAogCXByaW50ayhLRVJOX0lORk8g IlBDSTogSGlkaW5nIDR4eCBob3N0IGJyaWRnZSByZXNvdXJjZXMgJXNcbiIsCmRpZmYgLS1naXQg YS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzUyeHgvbXBjNTJ4eF9wY2kuYyBiL2FyY2gvcG93ZXJw Yy9wbGF0Zm9ybXMvNTJ4eC9tcGM1Mnh4X3BjaS5jCmluZGV4IDg1OWUyODE4YzQzZC4uZjBiMGFj Mjk4NDg0IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzUyeHgvbXBjNTJ4eF9w Y2kuYworKysgYi9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzUyeHgvbXBjNTJ4eF9wY2kuYwpAQCAt MzI3LDE0ICszMjcsMTQgQEAgbXBjNTJ4eF9wY2lfc2V0dXAoc3RydWN0IHBjaV9jb250cm9sbGVy ICpob3NlLAogc3RhdGljIHZvaWQKIG1wYzUyeHhfcGNpX2ZpeHVwX3Jlc291cmNlcyhzdHJ1Y3Qg cGNpX2RldiAqZGV2KQogeworCXN0cnVjdCByZXNvdXJjZSAqcmVzOwogCWludCBpOwogCiAJcHJf ZGVidWcoIiVzKCkgJS40eDolLjR4XG4iLCBfX2Z1bmNfXywgZGV2LT52ZW5kb3IsIGRldi0+ZGV2 aWNlKTsKIAogCS8qIFdlIGRvbid0IHJlbHkgb24gYm9vdCBsb2FkZXIgZm9yIFBDSSBhbmQgcmVz ZXRzIGFsbAogCSAgIGRldmljZXMgKi8KLQlmb3IgKGkgPSAwOyBpIDwgREVWSUNFX0NPVU5UX1JF U09VUkNFOyBpKyspIHsKLQkJc3RydWN0IHJlc291cmNlICpyZXMgPSAmZGV2LT5yZXNvdXJjZVtp XTsKKwlwY2lfZGV2X2Zvcl9lYWNoX3Jlc291cmNlX3AoZGV2LCByZXMpIHsKIAkJaWYgKHJlcy0+ ZW5kID4gcmVzLT5zdGFydCkgewkvKiBPbmx5IHZhbGlkIHJlc291cmNlcyAqLwogCQkJcmVzLT5l bmQgLT0gcmVzLT5zdGFydDsKIAkJCXJlcy0+c3RhcnQgPSAwOwpkaWZmIC0tZ2l0IGEvYXJjaC9w b3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3BjaS5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9w c2VyaWVzL3BjaS5jCmluZGV4IDYwZTBhNTg5MjhlZi4uZWU3YjJjNzM3YzkyIDEwMDY0NAotLS0g YS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvcGNpLmMKKysrIGIvYXJjaC9wb3dlcnBj L3BsYXRmb3Jtcy9wc2VyaWVzL3BjaS5jCkBAIC0yNDAsNyArMjQwLDcgQEAgdm9pZCBfX2luaXQg cFNlcmllc19maW5hbF9maXh1cCh2b2lkKQogICovCiBzdGF0aWMgdm9pZCBmaXh1cF93aW5ib25k XzgyYzEwNShzdHJ1Y3QgcGNpX2RldiogZGV2KQogewotCWludCBpOworCXN0cnVjdCByZXNvdXJj ZSAqcjsKIAl1bnNpZ25lZCBpbnQgcmVnOwogCiAJaWYgKCFtYWNoaW5lX2lzKHBzZXJpZXMpKQpA QCAtMjUxLDE0ICsyNTEsMTQgQEAgc3RhdGljIHZvaWQgZml4dXBfd2luYm9uZF84MmMxMDUoc3Ry dWN0IHBjaV9kZXYqIGRldikKIAkvKiBFbmFibGUgTEVHSVJRIHRvIHVzZSBJTlRDIGluc3RlYWQg b2YgSVNBIGludGVycnVwdHMgKi8KIAlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRldiwgMHg0MCwg cmVnIHwgKDE8PDExKSk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgREVWSUNFX0NPVU5UX1JFU09VUkNF OyArK2kpIHsKKwlwY2lfZGV2X2Zvcl9lYWNoX3Jlc291cmNlX3AoZGV2LCByKSB7CiAJCS8qIHph cCB0aGUgMm5kIGZ1bmN0aW9uIG9mIHRoZSB3aW5ib25kIGNoaXAgKi8KLQkJaWYgKGRldi0+cmVz b3VyY2VbaV0uZmxhZ3MgJiBJT1JFU09VUkNFX0lPCi0JCSAgICAmJiBkZXYtPmJ1cy0+bnVtYmVy ID09IDAgJiYgZGV2LT5kZXZmbiA9PSAweDgxKQotCQkJZGV2LT5yZXNvdXJjZVtpXS5mbGFncyAm PSB+SU9SRVNPVVJDRV9JTzsKLQkJaWYgKGRldi0+cmVzb3VyY2VbaV0uc3RhcnQgPT0gMCAmJiBk ZXYtPnJlc291cmNlW2ldLmVuZCkgewotCQkJZGV2LT5yZXNvdXJjZVtpXS5mbGFncyA9IDA7Ci0J CQlkZXYtPnJlc291cmNlW2ldLmVuZCA9IDA7CisJCWlmIChkZXYtPmJ1cy0+bnVtYmVyID09IDAg JiYgZGV2LT5kZXZmbiA9PSAweDgxICYmCisJCSAgICByLT5mbGFncyAmIElPUkVTT1VSQ0VfSU8p CisJCQlyLT5mbGFncyAmPSB+SU9SRVNPVVJDRV9JTzsKKwkJaWYgKHItPnN0YXJ0ID09IDAgJiYg ci0+ZW5kKSB7CisJCQlyLT5mbGFncyA9IDA7CisJCQlyLT5lbmQgPSAwOwogCQl9CiAJfQogfQpk aWZmIC0tZ2l0IGEvYXJjaC9zaC9kcml2ZXJzL3BjaS9wY2llLXNoNzc4Ni5jIGIvYXJjaC9zaC9k cml2ZXJzL3BjaS9wY2llLXNoNzc4Ni5jCmluZGV4IGIwYzJhNTIzOGQwNC4uOTgyZjlhZWMyZjJm IDEwMDY0NAotLS0gYS9hcmNoL3NoL2RyaXZlcnMvcGNpL3BjaWUtc2g3Nzg2LmMKKysrIGIvYXJj aC9zaC9kcml2ZXJzL3BjaS9wY2llLXNoNzc4Ni5jCkBAIC0xNDAsMTIgKzE0MCwxMiBAQCBzdGF0 aWMgdm9pZCBzaDc3ODZfcGNpX2ZpeHVwKHN0cnVjdCBwY2lfZGV2ICpkZXYpCiAJICogUHJldmVu dCBlbnVtZXJhdGlvbiBvZiByb290IGNvbXBsZXggcmVzb3VyY2VzLgogCSAqLwogCWlmIChwY2lf aXNfcm9vdF9idXMoZGV2LT5idXMpICYmIGRldi0+ZGV2Zm4gPT0gMCkgewotCQlpbnQgaTsKKwkJ c3RydWN0IHJlc291cmNlICpyOwogCi0JCWZvciAoaSA9IDA7IGkgPCBERVZJQ0VfQ09VTlRfUkVT T1VSQ0U7IGkrKykgewotCQkJZGV2LT5yZXNvdXJjZVtpXS5zdGFydAk9IDA7Ci0JCQlkZXYtPnJl c291cmNlW2ldLmVuZAk9IDA7Ci0JCQlkZXYtPnJlc291cmNlW2ldLmZsYWdzCT0gMDsKKwkJcGNp X2Rldl9mb3JfZWFjaF9yZXNvdXJjZV9wKGRldiwgcikgeworCQkJci0+c3RhcnQJPSAwOworCQkJ ci0+ZW5kCQk9IDA7CisJCQlyLT5mbGFncwk9IDA7CiAJCX0KIAl9CiB9CmRpZmYgLS1naXQgYS9h cmNoL3NwYXJjL2tlcm5lbC9sZW9uX3BjaS5jIGIvYXJjaC9zcGFyYy9rZXJuZWwvbGVvbl9wY2ku YwppbmRleCBlNWU1ZmY2YjlhNWMuLmI2NjYzYTNmYmFlOSAxMDA2NDQKLS0tIGEvYXJjaC9zcGFy Yy9rZXJuZWwvbGVvbl9wY2kuYworKysgYi9hcmNoL3NwYXJjL2tlcm5lbC9sZW9uX3BjaS5jCkBA IC02MiwxNSArNjIsMTQgQEAgdm9pZCBsZW9uX3BjaV9pbml0KHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKm9mZGV2LCBzdHJ1Y3QgbGVvbl9wY2lfaW5mbyAqaW5mbykKIAogaW50IHBjaWJpb3NfZW5h YmxlX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgbWFzaykKIHsKKwlzdHJ1Y3QgcmVz b3VyY2UgKnJlczsKIAl1MTYgY21kLCBvbGRjbWQ7CiAJaW50IGk7CiAKIAlwY2lfcmVhZF9jb25m aWdfd29yZChkZXYsIFBDSV9DT01NQU5ELCAmY21kKTsKIAlvbGRjbWQgPSBjbWQ7CiAKLQlmb3Ig KGkgPSAwOyBpIDwgUENJX05VTV9SRVNPVVJDRVM7IGkrKykgewotCQlzdHJ1Y3QgcmVzb3VyY2Ug KnJlcyA9ICZkZXYtPnJlc291cmNlW2ldOwotCisJcGNpX2Rldl9mb3JfZWFjaF9yZXNvdXJjZShk ZXYsIHJlcywgaSkgewogCQkvKiBPbmx5IHNldCB1cCB0aGUgcmVxdWVzdGVkIHN0dWZmICovCiAJ CWlmICghKG1hc2sgJiAoMTw8aSkpKQogCQkJY29udGludWU7CmRpZmYgLS1naXQgYS9hcmNoL3Nw YXJjL2tlcm5lbC9wY2kuYyBiL2FyY2gvc3BhcmMva2VybmVsL3BjaS5jCmluZGV4IGNiMWVmMjUx MTZlOS4uYTk0OGE0OTgxN2M3IDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjL2tlcm5lbC9wY2kuYwor KysgYi9hcmNoL3NwYXJjL2tlcm5lbC9wY2kuYwpAQCAtNjYzLDExICs2NjMsMTAgQEAgc3RhdGlj IHZvaWQgcGNpX2NsYWltX2J1c19yZXNvdXJjZXMoc3RydWN0IHBjaV9idXMgKmJ1cykKIAlzdHJ1 Y3QgcGNpX2RldiAqZGV2OwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShkZXYsICZidXMtPmRldmlj ZXMsIGJ1c19saXN0KSB7CisJCXN0cnVjdCByZXNvdXJjZSAqcjsKIAkJaW50IGk7CiAKLQkJZm9y IChpID0gMDsgaSA8IFBDSV9OVU1fUkVTT1VSQ0VTOyBpKyspIHsKLQkJCXN0cnVjdCByZXNvdXJj ZSAqciA9ICZkZXYtPnJlc291cmNlW2ldOwotCisJCXBjaV9kZXZfZm9yX2VhY2hfcmVzb3VyY2Uo ZGV2LCByLCBpKSB7CiAJCQlpZiAoci0+cGFyZW50IHx8ICFyLT5zdGFydCB8fCAhci0+ZmxhZ3Mp CiAJCQkJY29udGludWU7CiAKQEAgLTcyNCwxNSArNzIzLDE0IEBAIHN0cnVjdCBwY2lfYnVzICpw Y2lfc2Nhbl9vbmVfcGJtKHN0cnVjdCBwY2lfcGJtX2luZm8gKnBibSwKIAogaW50IHBjaWJpb3Nf ZW5hYmxlX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgbWFzaykKIHsKKwlzdHJ1Y3Qg cmVzb3VyY2UgKnJlczsKIAl1MTYgY21kLCBvbGRjbWQ7CiAJaW50IGk7CiAKIAlwY2lfcmVhZF9j b25maWdfd29yZChkZXYsIFBDSV9DT01NQU5ELCAmY21kKTsKIAlvbGRjbWQgPSBjbWQ7CiAKLQlm b3IgKGkgPSAwOyBpIDwgUENJX05VTV9SRVNPVVJDRVM7IGkrKykgewotCQlzdHJ1Y3QgcmVzb3Vy Y2UgKnJlcyA9ICZkZXYtPnJlc291cmNlW2ldOwotCisJcGNpX2Rldl9mb3JfZWFjaF9yZXNvdXJj ZShkZXYsIHJlcywgaSkgewogCQkvKiBPbmx5IHNldCB1cCB0aGUgcmVxdWVzdGVkIHN0dWZmICov CiAJCWlmICghKG1hc2sgJiAoMTw8aSkpKQogCQkJY29udGludWU7CmRpZmYgLS1naXQgYS9hcmNo L3NwYXJjL2tlcm5lbC9wY2ljLmMgYi9hcmNoL3NwYXJjL2tlcm5lbC9wY2ljLmMKaW5kZXggZWU0 YzlhOWExNzFjLi4yNWZlMGEwNjE3MzIgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmMva2VybmVsL3Bj aWMuYworKysgYi9hcmNoL3NwYXJjL2tlcm5lbC9wY2ljLmMKQEAgLTY0MywxNSArNjQzLDE0IEBA IHZvaWQgcGNpYmlvc19maXh1cF9idXMoc3RydWN0IHBjaV9idXMgKmJ1cykKIAogaW50IHBjaWJp b3NfZW5hYmxlX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqZGV2LCBpbnQgbWFzaykKIHsKKwlzdHJ1 Y3QgcmVzb3VyY2UgKnJlczsKIAl1MTYgY21kLCBvbGRjbWQ7CiAJaW50IGk7CiAKIAlwY2lfcmVh ZF9jb25maWdfd29yZChkZXYsIFBDSV9DT01NQU5ELCAmY21kKTsKIAlvbGRjbWQgPSBjbWQ7CiAK LQlmb3IgKGkgPSAwOyBpIDwgUENJX05VTV9SRVNPVVJDRVM7IGkrKykgewotCQlzdHJ1Y3QgcmVz b3VyY2UgKnJlcyA9ICZkZXYtPnJlc291cmNlW2ldOwotCisJcGNpX2Rldl9mb3JfZWFjaF9yZXNv dXJjZShkZXYsIHJlcywgaSkgewogCQkvKiBPbmx5IHNldCB1cCB0aGUgcmVxdWVzdGVkIHN0dWZm ICovCiAJCWlmICghKG1hc2sgJiAoMTw8aSkpKQogCQkJY29udGludWU7CmRpZmYgLS1naXQgYS9k cml2ZXJzL3BjaS9yZW1vdmUuYyBiL2RyaXZlcnMvcGNpL3JlbW92ZS5jCmluZGV4IDAxNDVhZWYx YjkzMC4uMTMxMGUwMWZiNTQwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS9yZW1vdmUuYworKysg Yi9kcml2ZXJzL3BjaS9yZW1vdmUuYwpAQCAtNSwxMCArNSw5IEBACiAKIHN0YXRpYyB2b2lkIHBj aV9mcmVlX3Jlc291cmNlcyhzdHJ1Y3QgcGNpX2RldiAqZGV2KQogewotCWludCBpOworCXN0cnVj dCByZXNvdXJjZSAqcmVzOwogCi0JZm9yIChpID0gMDsgaSA8IFBDSV9OVU1fUkVTT1VSQ0VTOyBp KyspIHsKLQkJc3RydWN0IHJlc291cmNlICpyZXMgPSBkZXYtPnJlc291cmNlICsgaTsKKwlwY2lf ZGV2X2Zvcl9lYWNoX3Jlc291cmNlX3AoZGV2LCByZXMpIHsKIAkJaWYgKHJlcy0+cGFyZW50KQog CQkJcmVsZWFzZV9yZXNvdXJjZShyZXMpOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3Nl dHVwLWJ1cy5jIGIvZHJpdmVycy9wY2kvc2V0dXAtYnVzLmMKaW5kZXggYzY5MDU3MmIxMGNlLi5k NGZjNzY2NWY3MGEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3NldHVwLWJ1cy5jCisrKyBiL2Ry aXZlcnMvcGNpL3NldHVwLWJ1cy5jCkBAIC0xMjQsMjAgKzEyNCwxNyBAQCBzdGF0aWMgcmVzb3Vy Y2Vfc2l6ZV90IGdldF9yZXNfYWRkX2FsaWduKHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsCiAJcmV0 dXJuIGRldl9yZXMgPyBkZXZfcmVzLT5taW5fYWxpZ24gOiAwOwogfQogCi0KIC8qIFNvcnQgcmVz b3VyY2VzIGJ5IGFsaWdubWVudCAqLwogc3RhdGljIHZvaWQgcGRldl9zb3J0X3Jlc291cmNlcyhz dHJ1Y3QgcGNpX2RldiAqZGV2LCBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQogeworCXN0cnVjdCBy ZXNvdXJjZSAqcjsKIAlpbnQgaTsKIAotCWZvciAoaSA9IDA7IGkgPCBQQ0lfTlVNX1JFU09VUkNF UzsgaSsrKSB7Ci0JCXN0cnVjdCByZXNvdXJjZSAqcjsKKwlwY2lfZGV2X2Zvcl9lYWNoX3Jlc291 cmNlKGRldiwgciwgaSkgewogCQlzdHJ1Y3QgcGNpX2Rldl9yZXNvdXJjZSAqZGV2X3JlcywgKnRt cDsKIAkJcmVzb3VyY2Vfc2l6ZV90IHJfYWxpZ247CiAJCXN0cnVjdCBsaXN0X2hlYWQgKm47CiAK LQkJciA9ICZkZXYtPnJlc291cmNlW2ldOwotCiAJCWlmIChyLT5mbGFncyAmIElPUkVTT1VSQ0Vf UENJX0ZJWEVEKQogCQkJY29udGludWU7CiAKQEAgLTg5NSwxMCArODkyLDkgQEAgc3RhdGljIHZv aWQgcGJ1c19zaXplX2lvKHN0cnVjdCBwY2lfYnVzICpidXMsIHJlc291cmNlX3NpemVfdCBtaW5f c2l6ZSwKIAogCW1pbl9hbGlnbiA9IHdpbmRvd19hbGlnbm1lbnQoYnVzLCBJT1JFU09VUkNFX0lP KTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRldiwgJmJ1cy0+ZGV2aWNlcywgYnVzX2xpc3QpIHsK LQkJaW50IGk7CisJCXN0cnVjdCByZXNvdXJjZSAqcjsKIAotCQlmb3IgKGkgPSAwOyBpIDwgUENJ X05VTV9SRVNPVVJDRVM7IGkrKykgewotCQkJc3RydWN0IHJlc291cmNlICpyID0gJmRldi0+cmVz b3VyY2VbaV07CisJCXBjaV9kZXZfZm9yX2VhY2hfcmVzb3VyY2VfcChkZXYsIHIpIHsKIAkJCXVu c2lnbmVkIGxvbmcgcl9zaXplOwogCiAJCQlpZiAoci0+cGFyZW50IHx8ICEoci0+ZmxhZ3MgJiBJ T1JFU09VUkNFX0lPKSkKQEAgLTEwMTQsMTAgKzEwMTAsMTAgQEAgc3RhdGljIGludCBwYnVzX3Np emVfbWVtKHN0cnVjdCBwY2lfYnVzICpidXMsIHVuc2lnbmVkIGxvbmcgbWFzaywKIAlzaXplID0g MDsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkoZGV2LCAmYnVzLT5kZXZpY2VzLCBidXNfbGlzdCkg eworCQlzdHJ1Y3QgcmVzb3VyY2UgKnI7CiAJCWludCBpOwogCi0JCWZvciAoaSA9IDA7IGkgPCBQ Q0lfTlVNX1JFU09VUkNFUzsgaSsrKSB7Ci0JCQlzdHJ1Y3QgcmVzb3VyY2UgKnIgPSAmZGV2LT5y ZXNvdXJjZVtpXTsKKwkJcGNpX2Rldl9mb3JfZWFjaF9yZXNvdXJjZShkZXYsIHIsIGkpIHsKIAkJ CXJlc291cmNlX3NpemVfdCByX3NpemU7CiAKIAkJCWlmIChyLT5wYXJlbnQgfHwgKHItPmZsYWdz ICYgSU9SRVNPVVJDRV9QQ0lfRklYRUQpIHx8CkBAIC0xMzU4LDExICsxMzU0LDEwIEBAIHN0YXRp YyB2b2lkIGFzc2lnbl9maXhlZF9yZXNvdXJjZV9vbl9idXMoc3RydWN0IHBjaV9idXMgKmIsIHN0 cnVjdCByZXNvdXJjZSAqcikKICAqLwogc3RhdGljIHZvaWQgcGRldl9hc3NpZ25fZml4ZWRfcmVz b3VyY2VzKHN0cnVjdCBwY2lfZGV2ICpkZXYpCiB7Ci0JaW50IGk7CisJc3RydWN0IHJlc291cmNl ICpyOwogCi0JZm9yIChpID0gMDsgaSA8ICBQQ0lfTlVNX1JFU09VUkNFUzsgaSsrKSB7CisJcGNp X2Rldl9mb3JfZWFjaF9yZXNvdXJjZV9wKGRldiwgcikgewogCQlzdHJ1Y3QgcGNpX2J1cyAqYjsK LQkJc3RydWN0IHJlc291cmNlICpyID0gJmRldi0+cmVzb3VyY2VbaV07CiAKIAkJaWYgKHItPnBh cmVudCB8fCAhKHItPmZsYWdzICYgSU9SRVNPVVJDRV9QQ0lfRklYRUQpIHx8CiAJCSAgICAhKHIt PmZsYWdzICYgKElPUkVTT1VSQ0VfSU8gfCBJT1JFU09VUkNFX01FTSkpKQpAQCAtMTc5NSwxMSAr MTc5MCw5IEBAIHN0YXRpYyB2b2lkIHJlbW92ZV9kZXZfcmVzb3VyY2VzKHN0cnVjdCBwY2lfZGV2 ICpkZXYsIHN0cnVjdCByZXNvdXJjZSAqaW8sCiAJCQkJIHN0cnVjdCByZXNvdXJjZSAqbW1pbywK IAkJCQkgc3RydWN0IHJlc291cmNlICptbWlvX3ByZWYpCiB7Ci0JaW50IGk7Ci0KLQlmb3IgKGkg PSAwOyBpIDwgUENJX05VTV9SRVNPVVJDRVM7IGkrKykgewotCQlzdHJ1Y3QgcmVzb3VyY2UgKnJl cyA9ICZkZXYtPnJlc291cmNlW2ldOworCXN0cnVjdCByZXNvdXJjZSAqcmVzOwogCisJcGNpX2Rl dl9mb3JfZWFjaF9yZXNvdXJjZV9wKGRldiwgcmVzKSB7CiAJCWlmIChyZXNvdXJjZV90eXBlKHJl cykgPT0gSU9SRVNPVVJDRV9JTykgewogCQkJcmVtb3ZlX2Rldl9yZXNvdXJjZShpbywgZGV2LCBy ZXMpOwogCQl9IGVsc2UgaWYgKHJlc291cmNlX3R5cGUocmVzKSA9PSBJT1JFU09VUkNFX01FTSkg ewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvc2V0dXAtcmVzLmMgYi9kcml2ZXJzL3BjaS9zZXR1 cC1yZXMuYwppbmRleCBiNDkyZTY3YzNkODcuLjk2N2Y5YTc1ODkyMyAxMDA2NDQKLS0tIGEvZHJp dmVycy9wY2kvc2V0dXAtcmVzLmMKKysrIGIvZHJpdmVycy9wY2kvc2V0dXAtcmVzLmMKQEAgLTQ4 NCwxMiArNDg0LDEwIEBAIGludCBwY2lfZW5hYmxlX3Jlc291cmNlcyhzdHJ1Y3QgcGNpX2RldiAq ZGV2LCBpbnQgbWFzaykKIAlwY2lfcmVhZF9jb25maWdfd29yZChkZXYsIFBDSV9DT01NQU5ELCAm Y21kKTsKIAlvbGRfY21kID0gY21kOwogCi0JZm9yIChpID0gMDsgaSA8IFBDSV9OVU1fUkVTT1VS Q0VTOyBpKyspIHsKKwlwY2lfZGV2X2Zvcl9lYWNoX3Jlc291cmNlKGRldiwgciwgaSkgewogCQlp ZiAoIShtYXNrICYgKDEgPDwgaSkpKQogCQkJY29udGludWU7CiAKLQkJciA9ICZkZXYtPnJlc291 cmNlW2ldOwotCiAJCWlmICghKHItPmZsYWdzICYgKElPUkVTT1VSQ0VfSU8gfCBJT1JFU09VUkNF X01FTSkpKQogCQkJY29udGludWU7CiAJCWlmICgoaSA9PSBQQ0lfUk9NX1JFU09VUkNFKSAmJgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kvdmdhYXJiLmMgYi9kcml2ZXJzL3BjaS92Z2FhcmIuYwpp bmRleCBmODBiNmVjODhkYzMuLjNlYzZhMGI3ZGJmMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kv dmdhYXJiLmMKKysrIGIvZHJpdmVycy9wY2kvdmdhYXJiLmMKQEAgLTU0OCwxMCArNTQ4LDggQEAg c3RhdGljIGJvb2wgdmdhX2lzX2Zpcm13YXJlX2RlZmF1bHQoc3RydWN0IHBjaV9kZXYgKnBkZXYp CiAjaWYgZGVmaW5lZChDT05GSUdfWDg2KSB8fCBkZWZpbmVkKENPTkZJR19JQTY0KQogCXU2NCBi YXNlID0gc2NyZWVuX2luZm8ubGZiX2Jhc2U7CiAJdTY0IHNpemUgPSBzY3JlZW5faW5mby5sZmJf c2l6ZTsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnI7CiAJdTY0IGxpbWl0OwotCXJlc291cmNlX3NpemVf dCBzdGFydCwgZW5kOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JaW50IGk7CiAKIAkvKiBTZWxl Y3QgdGhlIGRldmljZSBvd25pbmcgdGhlIGJvb3QgZnJhbWVidWZmZXIgaWYgdGhlcmUgaXMgb25l ICovCiAKQEAgLTU2MSwxOSArNTU5LDE0IEBAIHN0YXRpYyBib29sIHZnYV9pc19maXJtd2FyZV9k ZWZhdWx0KHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCWxpbWl0ID0gYmFzZSArIHNpemU7CiAKIAkv KiBEb2VzIGZpcm13YXJlIGZyYW1lYnVmZmVyIGJlbG9uZyB0byB1cz8gKi8KLQlmb3IgKGkgPSAw OyBpIDwgREVWSUNFX0NPVU5UX1JFU09VUkNFOyBpKyspIHsKLQkJZmxhZ3MgPSBwY2lfcmVzb3Vy Y2VfZmxhZ3MocGRldiwgaSk7Ci0KLQkJaWYgKChmbGFncyAmIElPUkVTT1VSQ0VfTUVNKSA9PSAw KQorCXBjaV9kZXZfZm9yX2VhY2hfcmVzb3VyY2VfcChwZGV2LCByKSB7CisJCWlmIChyZXNvdXJj ZV90eXBlKHIpICE9IElPUkVTT1VSQ0VfTUVNKQogCQkJY29udGludWU7CiAKLQkJc3RhcnQgPSBw Y2lfcmVzb3VyY2Vfc3RhcnQocGRldiwgaSk7Ci0JCWVuZCAgPSBwY2lfcmVzb3VyY2VfZW5kKHBk ZXYsIGkpOwotCi0JCWlmICghc3RhcnQgfHwgIWVuZCkKKwkJaWYgKCFyLT5zdGFydCB8fCAhci0+ ZW5kKQogCQkJY29udGludWU7CiAKLQkJaWYgKGJhc2UgPCBzdGFydCB8fCBsaW1pdCA+PSBlbmQp CisJCWlmIChiYXNlIDwgci0+c3RhcnQgfHwgbGltaXQgPj0gci0+ZW5kKQogCQkJY29udGludWU7 CiAKIAkJcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS94ZW4tcGNpZnJvbnQu YyBiL2RyaXZlcnMvcGNpL3hlbi1wY2lmcm9udC5jCmluZGV4IGZjZDAyOWNhMmViMS4uODNjMGFi NTA2NzZkIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BjaS94ZW4tcGNpZnJvbnQuYworKysgYi9kcml2 ZXJzL3BjaS94ZW4tcGNpZnJvbnQuYwpAQCAtMzkwLDkgKzM5MCw3IEBAIHN0YXRpYyBpbnQgcGNp ZnJvbnRfY2xhaW1fcmVzb3VyY2Uoc3RydWN0IHBjaV9kZXYgKmRldiwgdm9pZCAqZGF0YSkKIAlp bnQgaTsKIAlzdHJ1Y3QgcmVzb3VyY2UgKnI7CiAKLQlmb3IgKGkgPSAwOyBpIDwgUENJX05VTV9S RVNPVVJDRVM7IGkrKykgewotCQlyID0gJmRldi0+cmVzb3VyY2VbaV07Ci0KKwlwY2lfZGV2X2Zv cl9lYWNoX3Jlc291cmNlKGRldiwgciwgaSkgewogCQlpZiAoIXItPnBhcmVudCAmJiByLT5zdGFy dCAmJiByLT5mbGFncykgewogCQkJZGV2X2luZm8oJnBkZXYtPnhkZXYtPmRldiwgImNsYWltaW5n IHJlc291cmNlICVzLyVkXG4iLAogCQkJCXBjaV9uYW1lKGRldiksIGkpOwpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9wbnAvcXVpcmtzLmMgYi9kcml2ZXJzL3BucC9xdWlya3MuYwppbmRleCBhYzk4Yjk5 MTkwMjkuLjQyMDEyMTk1NGZmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wbnAvcXVpcmtzLmMKKysr IGIvZHJpdmVycy9wbnAvcXVpcmtzLmMKQEAgLTIyOSw4ICsyMjksNyBAQCBzdGF0aWMgdm9pZCBx dWlya19hZDE4MTVfbXB1X3Jlc291cmNlcyhzdHJ1Y3QgcG5wX2RldiAqZGV2KQogc3RhdGljIHZv aWQgcXVpcmtfc3lzdGVtX3BjaV9yZXNvdXJjZXMoc3RydWN0IHBucF9kZXYgKmRldikKIHsKIAlz dHJ1Y3QgcGNpX2RldiAqcGRldiA9IE5VTEw7Ci0Jc3RydWN0IHJlc291cmNlICpyZXM7Ci0JcmVz b3VyY2Vfc2l6ZV90IHBucF9zdGFydCwgcG5wX2VuZCwgcGNpX3N0YXJ0LCBwY2lfZW5kOworCXN0 cnVjdCByZXNvdXJjZSAqcmVzLCAqcjsKIAlpbnQgaSwgajsKIAogCS8qCkBAIC0yNDMsMzIgKzI0 MiwyNiBAQCBzdGF0aWMgdm9pZCBxdWlya19zeXN0ZW1fcGNpX3Jlc291cmNlcyhzdHJ1Y3QgcG5w X2RldiAqZGV2KQogCSAqIHNvIHRoZXkgd29uJ3QgYmUgY2xhaW1lZCBieSB0aGUgUE5QIHN5c3Rl bSBkcml2ZXIuCiAJICovCiAJZm9yX2VhY2hfcGNpX2RldihwZGV2KSB7Ci0JCWZvciAoaSA9IDA7 IGkgPCBERVZJQ0VfQ09VTlRfUkVTT1VSQ0U7IGkrKykgewotCQkJdW5zaWduZWQgbG9uZyBmbGFn cywgdHlwZTsKKwkJcGNpX2Rldl9mb3JfZWFjaF9yZXNvdXJjZShwZGV2LCByLCBpKSB7CisJCQl1 bnNpZ25lZCBsb25nIHR5cGUgPSByZXNvdXJjZV90eXBlKHIpOwogCi0JCQlmbGFncyA9IHBjaV9y ZXNvdXJjZV9mbGFncyhwZGV2LCBpKTsKLQkJCXR5cGUgPSBmbGFncyAmIChJT1JFU09VUkNFX0lP IHwgSU9SRVNPVVJDRV9NRU0pOwotCQkJaWYgKCF0eXBlIHx8IHBjaV9yZXNvdXJjZV9sZW4ocGRl diwgaSkgPT0gMCkKKwkJCWlmICh0eXBlICE9IElPUkVTT1VSQ0VfSU8gfHwgdHlwZSAhPSBJT1JF U09VUkNFX01FTSB8fAorCQkJICAgIHJlc291cmNlX3NpemUocikgPT0gMCkKIAkJCQljb250aW51 ZTsKIAotCQkJaWYgKGZsYWdzICYgSU9SRVNPVVJDRV9VTlNFVCkKKwkJCWlmIChyLT5mbGFncyAm IElPUkVTT1VSQ0VfVU5TRVQpCiAJCQkJY29udGludWU7CiAKLQkJCXBjaV9zdGFydCA9IHBjaV9y ZXNvdXJjZV9zdGFydChwZGV2LCBpKTsKLQkJCXBjaV9lbmQgPSBwY2lfcmVzb3VyY2VfZW5kKHBk ZXYsIGkpOwogCQkJZm9yIChqID0gMDsKIAkJCSAgICAgKHJlcyA9IHBucF9nZXRfcmVzb3VyY2Uo ZGV2LCB0eXBlLCBqKSk7IGorKykgewogCQkJCWlmIChyZXMtPnN0YXJ0ID09IDAgJiYgcmVzLT5l bmQgPT0gMCkKIAkJCQkJY29udGludWU7CiAKLQkJCQlwbnBfc3RhcnQgPSByZXMtPnN0YXJ0Owot CQkJCXBucF9lbmQgPSByZXMtPmVuZDsKLQogCQkJCS8qCiAJCQkJICogSWYgdGhlIFBOUCByZWdp b24gZG9lc24ndCBvdmVybGFwIHRoZSBQQ0kKIAkJCQkgKiByZWdpb24gYXQgYWxsLCB0aGVyZSdz IG5vIHByb2JsZW0uCiAJCQkJICovCi0JCQkJaWYgKHBucF9lbmQgPCBwY2lfc3RhcnQgfHwgcG5w X3N0YXJ0ID4gcGNpX2VuZCkKKwkJCQlpZiAoIXJlc291cmNlX292ZXJsYXBzKHJlcywgcikpCiAJ CQkJCWNvbnRpbnVlOwogCiAJCQkJLyoKQEAgLTI3OCw4ICsyNzEsNyBAQCBzdGF0aWMgdm9pZCBx dWlya19zeXN0ZW1fcGNpX3Jlc291cmNlcyhzdHJ1Y3QgcG5wX2RldiAqZGV2KQogCQkJCSAqIFBO UCBkZXZpY2UgZGVzY3JpYmVzIGEgYnJpZGdlIHdpdGggUENJCiAJCQkJICogYmVoaW5kIGl0Lgog CQkJCSAqLwotCQkJCWlmIChwbnBfc3RhcnQgPD0gcGNpX3N0YXJ0ICYmCi0JCQkJICAgIHBucF9l bmQgPj0gcGNpX2VuZCkKKwkJCQlpZiAocmVzLT5zdGFydCA8PSByLT5zdGFydCAmJiByZXMtPmVu ZCA+PSByLT5lbmQpCiAJCQkJCWNvbnRpbnVlOwogCiAJCQkJLyoKQEAgLTI4OCw5ICsyODAsOCBA QCBzdGF0aWMgdm9pZCBxdWlya19zeXN0ZW1fcGNpX3Jlc291cmNlcyhzdHJ1Y3QgcG5wX2RldiAq ZGV2KQogCQkJCSAqIGRyaXZlciBmcm9tIHJlcXVlc3RpbmcgaXRzIHJlc291cmNlcy4KIAkJCQkg Ki8KIAkJCQlkZXZfd2FybigmZGV2LT5kZXYsCi0JCQkJCSAiZGlzYWJsaW5nICVwUiBiZWNhdXNl IGl0IG92ZXJsYXBzICIKLQkJCQkJICIlcyBCQVIgJWQgJXBSXG4iLCByZXMsCi0JCQkJCSBwY2lf bmFtZShwZGV2KSwgaSwgJnBkZXYtPnJlc291cmNlW2ldKTsKKwkJCQkJICJkaXNhYmxpbmcgJXBS IGJlY2F1c2UgaXQgb3ZlcmxhcHMgJXMgQkFSICVkICVwUlxuIiwKKwkJCQkJIHJlcywgcGNpX25h bWUocGRldiksIGksIHIpOwogCQkJCXJlcy0+ZmxhZ3MgfD0gSU9SRVNPVVJDRV9ESVNBQkxFRDsK IAkJCX0KIAkJfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9wY2kuaCBiL2luY2x1ZGUvbGlu dXgvcGNpLmgKaW5kZXggZmFmZDgwMjBjNmQ3Li42NzBmMDFjNTUzOGMgMTAwNjQ0Ci0tLSBhL2lu Y2x1ZGUvbGludXgvcGNpLmgKKysrIGIvaW5jbHVkZS9saW51eC9wY2kuaApAQCAtMTQwNCw2ICsx NDA0LDE4IEBAIHZvaWQgcGRldl9lbmFibGVfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICopOwogaW50 IHBjaV9lbmFibGVfcmVzb3VyY2VzKHN0cnVjdCBwY2lfZGV2ICosIGludCBtYXNrKTsKIHZvaWQg cGNpX2Fzc2lnbl9pcnEoc3RydWN0IHBjaV9kZXYgKmRldik7CiBzdHJ1Y3QgcmVzb3VyY2UgKnBj aV9maW5kX3Jlc291cmNlKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHN0cnVjdCByZXNvdXJjZSAqcmVz KTsKKworI2RlZmluZSBfX3BjaV9kZXZfZm9yX2VhY2hfcmVzb3VyY2UoZGV2LCByZXMsIF9faSwg dmFydHlwZSkJCVwKKwlmb3IgKHZhcnR5cGUgX19pID0gMDsJCQkJCQlcCisJCXJlcyA9ICYoZGV2 KS0+cmVzb3VyY2VbX19pXSwgX19pIDwgUENJX05VTV9SRVNPVVJDRVM7CVwKKwkJX19pKyspCisK KyNkZWZpbmUgcGNpX2Rldl9mb3JfZWFjaF9yZXNvdXJjZShkZXYsIHJlcywgaSkJCQkJXAorICAg ICAgIF9fcGNpX2Rldl9mb3JfZWFjaF9yZXNvdXJjZShkZXYsIHJlcywgaSwgKQorCisjZGVmaW5l IHBjaV9kZXZfZm9yX2VhY2hfcmVzb3VyY2VfcChkZXYsIHJlcykJCQkJXAorCV9fcGNpX2Rldl9m b3JfZWFjaF9yZXNvdXJjZShkZXYsIHJlcywgaSwgdW5zaWduZWQgaW50KQorCiAjZGVmaW5lIEhB VkVfUENJX1JFUV9SRUdJT05TCTIKIGludCBfX211c3RfY2hlY2sgcGNpX3JlcXVlc3RfcmVnaW9u cyhzdHJ1Y3QgcGNpX2RldiAqLCBjb25zdCBjaGFyICopOwogaW50IF9fbXVzdF9jaGVjayBwY2lf cmVxdWVzdF9yZWdpb25zX2V4Y2x1c2l2ZShzdHJ1Y3QgcGNpX2RldiAqLCBjb25zdCBjaGFyICop OwotLSAKMi4zOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0 cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtYXJtLWtlcm5lbAo=