From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Shevchenko Subject: [PATCH v7 2/6] PCI: Introduce pci_dev_for_each_resource() Date: Thu, 23 Mar 2023 19:36:06 +0200 Message-ID: <20230323173610.60442-3-andriy.shevchenko@linux.intel.com> References: <20230323173610.60442-1-andriy.shevchenko@linux.intel.com> Mime-Version: 1.0 Content-Transfer-Encoding: base64 Return-path: List-Id: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1679592945; x=1711128945; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=WpHE2fMg8kec8Dg0J6kxCepndOofEkKDEHEEamRzDGU=; b=RkYLwLGBwFZtXTiMRHy+PiwAUyne0KGuoYsmwlOAzlYQRN4nJ2B9KCuz G2rt+CF7HyPFcOYdJmdUSTWm0QkBv96+KfEbeuLKakJzR5sGq9Iabq2JH acrcne1Yfqq1XK1me+hdCc3sgsgliRuASmG1qjvUyZ8xbwcMUldu1GwnX 5harcbuKMnk4InN3hMAsNsp9ZCBM3FeJMjaRHwU0mKMqRWJ84P1c1FX+M A8I4o+x163ho7Y1I4kGsMItTJhFUHQzt/F1OtbzSdBiPDUb3/FWVIlMg8 SASA/H96SdCExkcvJZcZgj8ypWkYd83bbfk4/Cr6FyDZteRHfF/zvr0Wm w==; In-Reply-To: <20230323173610.60442-1-andriy.shevchenko@linux.intel.com> Content-Type: text/plain; charset="macroman" 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 , Niklas Schnelle , Bjorn Helgaas , "Rafael J. Wysocki" , =?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@li 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 RnJvbTogTWlrYSBXZXN0ZXJiZXJnIDxtaWthLndlc3RlcmJlcmdAbGludXguaW50ZWwuY29tPgoK SW5zdGVhZCBvZiBvcGVuLWNvZGluZyBpdCBldmVyeXdoZXJlIGludHJvZHVjZSBhIHRpbnkgaGVs cGVyIHRoYXQgY2FuIGJlCnVzZWQgdG8gaXRlcmF0ZSBvdmVyIGVhY2ggcmVzb3VyY2Ugb2YgYSBQ Q0kgZGV2aWNlLCBhbmQgY29udmVydCB0aGUgbW9zdApvYnZpb3VzIHVzZXJzIGludG8gaXQuCgpX aGlsZSBhdCBpdCBkcm9wIGRvdWJsZWQgZW1wdHkgbGluZSBiZWZvcmUgcGRldl9zb3J0X3Jlc291 cmNlcygpLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2VzIGludGVuZGVkLgoKU3VnZ2VzdGVkLWJ5OiBB bmR5IFNoZXZjaGVua28gPGFuZHJpeS5zaGV2Y2hlbmtvQGxpbnV4LmludGVsLmNvbT4KU2lnbmVk LW9mZi1ieTogTWlrYSBXZXN0ZXJiZXJnIDxtaWthLndlc3RlcmJlcmdAbGludXguaW50ZWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBBbmR5IFNoZXZjaGVua28gPGFuZHJpeS5zaGV2Y2hlbmtvQGxpbnV4 LmludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IEtyenlzenRvZiBXaWxjennFhHNraSA8a3dAbGludXgu Y29tPgotLS0KIC5jbGFuZy1mb3JtYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEg KwogYXJjaC9hbHBoYS9rZXJuZWwvcGNpLmMgICAgICAgICAgICAgICAgICAgfCAgNSArKy0tCiBh cmNoL2FybS9rZXJuZWwvYmlvczMyLmMgICAgICAgICAgICAgICAgICB8IDE2ICsrKysrKy0tLS0t LS0KIGFyY2gvYXJtL21hY2gtZG92ZS9wY2llLmMgICAgICAgICAgICAgICAgIHwgMTAgKysrKy0t LS0KIGFyY2gvYXJtL21hY2gtbXY3OHh4MC9wY2llLmMgICAgICAgICAgICAgIHwgMTAgKysrKy0t LS0KIGFyY2gvYXJtL21hY2gtb3Jpb241eC9wY2kuYyAgICAgICAgICAgICAgIHwgMTAgKysrKy0t LS0KIGFyY2gvbWlwcy9wY2kvb3BzLWJjbTYzeHguYyAgICAgICAgICAgICAgIHwgIDggKysrLS0t LQogYXJjaC9taXBzL3BjaS9wY2ktbGVnYWN5LmMgICAgICAgICAgICAgICAgfCAgMyArLS0KIGFy Y2gvcG93ZXJwYy9rZXJuZWwvcGNpLWNvbW1vbi5jICAgICAgICAgIHwgMjEgKysrKysrKystLS0t LS0tLQogYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy80eHgvcGNpLmMgICAgICAgICAgfCAgOCArKyst LS0tCiBhcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzUyeHgvbXBjNTJ4eF9wY2kuYyB8ICA1ICsrLS0K IGFyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcHNlcmllcy9wY2kuYyAgICAgIHwgMTYgKysrKysrLS0t LS0tLQogYXJjaC9zaC9kcml2ZXJzL3BjaS9wY2llLXNoNzc4Ni5jICAgICAgICAgfCAxMCArKysr LS0tLQogYXJjaC9zcGFyYy9rZXJuZWwvbGVvbl9wY2kuYyAgICAgICAgICAgICAgfCAgNSArKy0t CiBhcmNoL3NwYXJjL2tlcm5lbC9wY2kuYyAgICAgICAgICAgICAgICAgICB8IDEwICsrKystLS0t CiBhcmNoL3NwYXJjL2tlcm5lbC9wY2ljLmMgICAgICAgICAgICAgICAgICB8ICA1ICsrLS0KIGRy aXZlcnMvcGNpL3JlbW92ZS5jICAgICAgICAgICAgICAgICAgICAgIHwgIDUgKystLQogZHJpdmVy cy9wY2kvc2V0dXAtYnVzLmMgICAgICAgICAgICAgICAgICAgfCAyNyArKysrKysrKy0tLS0tLS0t LS0tLS0KIGRyaXZlcnMvcGNpL3NldHVwLXJlcy5jICAgICAgICAgICAgICAgICAgIHwgIDQgKy0t LQogZHJpdmVycy9wY2kvdmdhYXJiLmMgICAgICAgICAgICAgICAgICAgICAgfCAxNyArKysrLS0t LS0tLS0tCiBkcml2ZXJzL3BjaS94ZW4tcGNpZnJvbnQuYyAgICAgICAgICAgICAgICB8ICA0ICst LS0KIGRyaXZlcnMvcG5wL3F1aXJrcy5jICAgICAgICAgICAgICAgICAgICAgIHwgMjkgKysrKysr KystLS0tLS0tLS0tLS0tLS0KIGluY2x1ZGUvbGludXgvcGNpLmggICAgICAgICAgICAgICAgICAg ICAgIHwgMTYgKysrKysrKysrKysrKwogMjMgZmlsZXMgY2hhbmdlZCwgMTEzIGluc2VydGlvbnMo KyksIDEzMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS8uY2xhbmctZm9ybWF0IGIvLmNsYW5n LWZvcm1hdAppbmRleCBkOTg4ZTlmYTliMjYuLjIwNDhiMDI5NmQ3NiAxMDA2NDQKLS0tIGEvLmNs YW5nLWZvcm1hdAorKysgYi8uY2xhbmctZm9ybWF0CkBAIC01MjAsNiArNTIwLDcgQEAgRm9yRWFj aE1hY3JvczoKICAgLSAnb2ZfcHJvcGVydHlfZm9yX2VhY2hfc3RyaW5nJwogICAtICdvZl9wcm9w ZXJ0eV9mb3JfZWFjaF91MzInCiAgIC0gJ3BjaV9idXNfZm9yX2VhY2hfcmVzb3VyY2UnCisgIC0g J3BjaV9kZXZfZm9yX2VhY2hfcmVzb3VyY2UnCiAgIC0gJ3BjaV9kb2VfZm9yX2VhY2hfb2ZmJwog ICAtICdwY2xfZm9yX2VhY2hfY2h1bmsnCiAgIC0gJ3BjbF9mb3JfZWFjaF9zZWdtZW50JwpkaWZm IC0tZ2l0IGEvYXJjaC9hbHBoYS9rZXJuZWwvcGNpLmMgYi9hcmNoL2FscGhhL2tlcm5lbC9wY2ku YwppbmRleCA2NGZiZmIwNzYzYjIuLjQ0NThlYjdmNDRmMCAxMDA2NDQKLS0tIGEvYXJjaC9hbHBo YS9rZXJuZWwvcGNpLmMKKysrIGIvYXJjaC9hbHBoYS9rZXJuZWwvcGNpLmMKQEAgLTI4OCwxMSAr Mjg4LDEwIEBAIHBjaWJpb3NfY2xhaW1fb25lX2J1cyhzdHJ1Y3QgcGNpX2J1cyAqYikKIAlzdHJ1 Y3QgcGNpX2J1cyAqY2hpbGRfYnVzOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShkZXYsICZiLT5k ZXZpY2VzLCBidXNfbGlzdCkgeworCQlzdHJ1Y3QgcmVzb3VyY2UgKnI7CiAJCWludCBpOwogCi0J CWZvciAoaSA9IDA7IGkgPCBQQ0lfTlVNX1JFU09VUkNFUzsgaSsrKSB7Ci0JCQlzdHJ1Y3QgcmVz b3VyY2UgKnIgPSAmZGV2LT5yZXNvdXJjZVtpXTsKLQorCQlwY2lfZGV2X2Zvcl9lYWNoX3Jlc291 cmNlKGRldiwgciwgaSkgewogCQkJaWYgKHItPnBhcmVudCB8fCAhci0+c3RhcnQgfHwgIXItPmZs YWdzKQogCQkJCWNvbnRpbnVlOwogCQkJaWYgKHBjaV9oYXNfZmxhZyhQQ0lfUFJPQkVfT05MWSkg fHwKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2tlcm5lbC9iaW9zMzIuYyBiL2FyY2gvYXJtL2tlcm5l bC9iaW9zMzIuYwppbmRleCBlN2VmMmI1YmVhOWMuLmQzMzRjN2ZiNjcyYiAxMDA2NDQKLS0tIGEv YXJjaC9hcm0va2VybmVsL2Jpb3MzMi5jCisrKyBiL2FyY2gvYXJtL2tlcm5lbC9iaW9zMzIuYwpA QCAtMTQyLDE1ICsxNDIsMTUgQEAgREVDTEFSRV9QQ0lfRklYVVBfSEVBREVSKFBDSV9WRU5ET1Jf SURfV0lOQk9ORDIsIFBDSV9ERVZJQ0VfSURfV0lOQk9ORDJfODlDOTQwRiwKICAqLwogc3RhdGlj IHZvaWQgcGNpX2ZpeHVwX2RlYzIxMjg1KHN0cnVjdCBwY2lfZGV2ICpkZXYpCiB7Ci0JaW50IGk7 Ci0KIAlpZiAoZGV2LT5kZXZmbiA9PSAwKSB7CisJCXN0cnVjdCByZXNvdXJjZSAqcjsKKwogCQlk ZXYtPmNsYXNzICY9IDB4ZmY7CiAJCWRldi0+Y2xhc3MgfD0gUENJX0NMQVNTX0JSSURHRV9IT1NU IDw8IDg7Ci0JCWZvciAoaSA9IDA7IGkgPCBQQ0lfTlVNX1JFU09VUkNFUzsgaSsrKSB7Ci0JCQlk ZXYtPnJlc291cmNlW2ldLnN0YXJ0ID0gMDsKLQkJCWRldi0+cmVzb3VyY2VbaV0uZW5kICAgPSAw OwotCQkJZGV2LT5yZXNvdXJjZVtpXS5mbGFncyA9IDA7CisJCXBjaV9kZXZfZm9yX2VhY2hfcmVz b3VyY2UoZGV2LCByKSB7CisJCQlyLT5zdGFydCA9IDA7CisJCQlyLT5lbmQgPSAwOworCQkJci0+ ZmxhZ3MgPSAwOwogCQl9CiAJfQogfQpAQCAtMTYyLDEzICsxNjIsMTEgQEAgREVDTEFSRV9QQ0lf RklYVVBfSEVBREVSKFBDSV9WRU5ET1JfSURfREVDLCBQQ0lfREVWSUNFX0lEX0RFQ18yMTI4NSwg cGNpX2ZpeHVwX2QKIHN0YXRpYyB2b2lkIHBjaV9maXh1cF9pZGVfYmFzZXMoc3RydWN0IHBjaV9k ZXYgKmRldikKIHsKIAlzdHJ1Y3QgcmVzb3VyY2UgKnI7Ci0JaW50IGk7CiAKIAlpZiAoKGRldi0+ Y2xhc3MgPj4gOCkgIT0gUENJX0NMQVNTX1NUT1JBR0VfSURFKQogCQlyZXR1cm47CiAKLQlmb3Ig KGkgPSAwOyBpIDwgUENJX05VTV9SRVNPVVJDRVM7IGkrKykgewotCQlyID0gZGV2LT5yZXNvdXJj ZSArIGk7CisJcGNpX2Rldl9mb3JfZWFjaF9yZXNvdXJjZShkZXYsIHIpIHsKIAkJaWYgKChyLT5z dGFydCAmIH4weDgwKSA9PSAweDM3NCkgewogCQkJci0+c3RhcnQgfD0gMjsKIAkJCXItPmVuZCA9 IHItPnN0YXJ0OwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1kb3ZlL3BjaWUuYyBiL2FyY2gv YXJtL21hY2gtZG92ZS9wY2llLmMKaW5kZXggNzU0Y2EzODFmNjAwLi4zMDQ0YjdlMDM4OTAgMTAw NjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtZG92ZS9wY2llLmMKKysrIGIvYXJjaC9hcm0vbWFjaC1k b3ZlL3BjaWUuYwpAQCAtMTQyLDE0ICsxNDIsMTQgQEAgc3RhdGljIHN0cnVjdCBwY2lfb3BzIHBj aWVfb3BzID0gewogc3RhdGljIHZvaWQgcmNfcGNpX2ZpeHVwKHN0cnVjdCBwY2lfZGV2ICpkZXYp CiB7CiAJaWYgKGRldi0+YnVzLT5wYXJlbnQgPT0gTlVMTCAmJiBkZXYtPmRldmZuID09IDApIHsK LQkJaW50IGk7CisJCXN0cnVjdCByZXNvdXJjZSAqcjsKIAogCQlkZXYtPmNsYXNzICY9IDB4ZmY7 CiAJCWRldi0+Y2xhc3MgfD0gUENJX0NMQVNTX0JSSURHRV9IT1NUIDw8IDg7Ci0JCWZvciAoaSA9 IDA7IGkgPCBERVZJQ0VfQ09VTlRfUkVTT1VSQ0U7IGkrKykgewotCQkJZGV2LT5yZXNvdXJjZVtp XS5zdGFydCA9IDA7Ci0JCQlkZXYtPnJlc291cmNlW2ldLmVuZCAgID0gMDsKLQkJCWRldi0+cmVz b3VyY2VbaV0uZmxhZ3MgPSAwOworCQlwY2lfZGV2X2Zvcl9lYWNoX3Jlc291cmNlKGRldiwgcikg eworCQkJci0+c3RhcnQgPSAwOworCQkJci0+ZW5kICAgPSAwOworCQkJci0+ZmxhZ3MgPSAwOwog CQl9CiAJfQogfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1tdjc4eHgwL3BjaWUuYyBiL2Fy Y2gvYXJtL21hY2gtbXY3OHh4MC9wY2llLmMKaW5kZXggNjE5MGY1MzhhMTI0Li4wZWJjOTA5ZWEy NzMgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL21hY2gtbXY3OHh4MC9wY2llLmMKKysrIGIvYXJjaC9h cm0vbWFjaC1tdjc4eHgwL3BjaWUuYwpAQCAtMTg2LDE0ICsxODYsMTQgQEAgc3RhdGljIHN0cnVj dCBwY2lfb3BzIHBjaWVfb3BzID0gewogc3RhdGljIHZvaWQgcmNfcGNpX2ZpeHVwKHN0cnVjdCBw Y2lfZGV2ICpkZXYpCiB7CiAJaWYgKGRldi0+YnVzLT5wYXJlbnQgPT0gTlVMTCAmJiBkZXYtPmRl dmZuID09IDApIHsKLQkJaW50IGk7CisJCXN0cnVjdCByZXNvdXJjZSAqcjsKIAogCQlkZXYtPmNs YXNzICY9IDB4ZmY7CiAJCWRldi0+Y2xhc3MgfD0gUENJX0NMQVNTX0JSSURHRV9IT1NUIDw8IDg7 Ci0JCWZvciAoaSA9IDA7IGkgPCBERVZJQ0VfQ09VTlRfUkVTT1VSQ0U7IGkrKykgewotCQkJZGV2 LT5yZXNvdXJjZVtpXS5zdGFydCA9IDA7Ci0JCQlkZXYtPnJlc291cmNlW2ldLmVuZCAgID0gMDsK LQkJCWRldi0+cmVzb3VyY2VbaV0uZmxhZ3MgPSAwOworCQlwY2lfZGV2X2Zvcl9lYWNoX3Jlc291 cmNlKGRldiwgcikgeworCQkJci0+c3RhcnQgPSAwOworCQkJci0+ZW5kICAgPSAwOworCQkJci0+ ZmxhZ3MgPSAwOwogCQl9CiAJfQogfQpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vcmlvbjV4 L3BjaS5jIGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3BjaS5jCmluZGV4IDg4OGZkYzkwOTljNS4u MzMxM2JjNWE2M2VhIDEwMDY0NAotLS0gYS9hcmNoL2FybS9tYWNoLW9yaW9uNXgvcGNpLmMKKysr IGIvYXJjaC9hcm0vbWFjaC1vcmlvbjV4L3BjaS5jCkBAIC01MjIsMTQgKzUyMiwxNCBAQCBzdGF0 aWMgaW50IF9faW5pdCBwY2lfc2V0dXAoc3RydWN0IHBjaV9zeXNfZGF0YSAqc3lzKQogc3RhdGlj IHZvaWQgcmNfcGNpX2ZpeHVwKHN0cnVjdCBwY2lfZGV2ICpkZXYpCiB7CiAJaWYgKGRldi0+YnVz LT5wYXJlbnQgPT0gTlVMTCAmJiBkZXYtPmRldmZuID09IDApIHsKLQkJaW50IGk7CisJCXN0cnVj dCByZXNvdXJjZSAqcjsKIAogCQlkZXYtPmNsYXNzICY9IDB4ZmY7CiAJCWRldi0+Y2xhc3MgfD0g UENJX0NMQVNTX0JSSURHRV9IT1NUIDw8IDg7Ci0JCWZvciAoaSA9IDA7IGkgPCBERVZJQ0VfQ09V TlRfUkVTT1VSQ0U7IGkrKykgewotCQkJZGV2LT5yZXNvdXJjZVtpXS5zdGFydCA9IDA7Ci0JCQlk ZXYtPnJlc291cmNlW2ldLmVuZCAgID0gMDsKLQkJCWRldi0+cmVzb3VyY2VbaV0uZmxhZ3MgPSAw OworCQlwY2lfZGV2X2Zvcl9lYWNoX3Jlc291cmNlKGRldiwgcikgeworCQkJci0+c3RhcnQJPSAw OworCQkJci0+ZW5kCQk9IDA7CisJCQlyLT5mbGFncwk9IDA7CiAJCX0KIAl9CiB9CmRpZmYgLS1n aXQgYS9hcmNoL21pcHMvcGNpL29wcy1iY202M3h4LmMgYi9hcmNoL21pcHMvcGNpL29wcy1iY202 M3h4LmMKaW5kZXggZGM2ZGMyNzQxMjcyLi5iMGVhMDIzYzQ3YzAgMTAwNjQ0Ci0tLSBhL2FyY2gv bWlwcy9wY2kvb3BzLWJjbTYzeHguYworKysgYi9hcmNoL21pcHMvcGNpL29wcy1iY202M3h4LmMK QEAgLTQxMywxOCArNDEzLDE4IEBAIHN0cnVjdCBwY2lfb3BzIGJjbTYzeHhfY2Jfb3BzID0gewog c3RhdGljIHZvaWQgYmNtNjN4eF9maXh1cChzdHJ1Y3QgcGNpX2RldiAqZGV2KQogewogCXN0YXRp YyBpbnQgaW9fd2luZG93ID0gLTE7Ci0JaW50IGksIGZvdW5kLCBuZXdfaW9fd2luZG93OworCWlu dCBmb3VuZCwgbmV3X2lvX3dpbmRvdzsKKwlzdHJ1Y3QgcmVzb3VyY2UgKnI7CiAJdTMyIHZhbDsK IAogCS8qIGxvb2sgZm9yIGFueSBpbyByZXNvdXJjZSAqLwogCWZvdW5kID0gMDsKLQlmb3IgKGkg PSAwOyBpIDwgREVWSUNFX0NPVU5UX1JFU09VUkNFOyBpKyspIHsKLQkJaWYgKHBjaV9yZXNvdXJj ZV9mbGFncyhkZXYsIGkpICYgSU9SRVNPVVJDRV9JTykgeworCXBjaV9kZXZfZm9yX2VhY2hfcmVz b3VyY2UoZGV2LCByKSB7CisJCWlmIChyZXNvdXJjZV90eXBlKHIpID09IElPUkVTT1VSQ0VfSU8p IHsKIAkJCWZvdW5kID0gMTsKIAkJCWJyZWFrOwogCQl9CiAJfQotCiAJaWYgKCFmb3VuZCkKIAkJ cmV0dXJuOwogCmRpZmYgLS1naXQgYS9hcmNoL21pcHMvcGNpL3BjaS1sZWdhY3kuYyBiL2FyY2gv bWlwcy9wY2kvcGNpLWxlZ2FjeS5jCmluZGV4IDQ2ODcyMmM4YTVjNi4uZWMyNTY3ZjhlZmQ4IDEw MDY0NAotLS0gYS9hcmNoL21pcHMvcGNpL3BjaS1sZWdhY3kuYworKysgYi9hcmNoL21pcHMvcGNp L3BjaS1sZWdhY3kuYwpAQCAtMjQ5LDEyICsyNDksMTEgQEAgc3RhdGljIGludCBwY2liaW9zX2Vu YWJsZV9yZXNvdXJjZXMoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IG1hc2spCiAKIAlwY2lfcmVh ZF9jb25maWdfd29yZChkZXYsIFBDSV9DT01NQU5ELCAmY21kKTsKIAlvbGRfY21kID0gY21kOwot CWZvciAoaWR4ID0gMDsgaWR4IDwgUENJX05VTV9SRVNPVVJDRVM7IGlkeCsrKSB7CisJcGNpX2Rl dl9mb3JfZWFjaF9yZXNvdXJjZShkZXYsIHIsIGlkeCkgewogCQkvKiBPbmx5IHNldCB1cCB0aGUg cmVxdWVzdGVkIHN0dWZmICovCiAJCWlmICghKG1hc2sgJiAoMTw8aWR4KSkpCiAJCQljb250aW51 ZTsKIAotCQlyID0gJmRldi0+cmVzb3VyY2VbaWR4XTsKIAkJaWYgKCEoci0+ZmxhZ3MgJiAoSU9S RVNPVVJDRV9JTyB8IElPUkVTT1VSQ0VfTUVNKSkpCiAJCQljb250aW51ZTsKIAkJaWYgKChpZHgg PT0gUENJX1JPTV9SRVNPVVJDRSkgJiYKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwv cGNpLWNvbW1vbi5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9wY2ktY29tbW9uLmMKaW5kZXggZDY3 Y2Y3OWJmNWQwLi5lODhkN2M5ZmVlZWMgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwv cGNpLWNvbW1vbi5jCisrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpLWNvbW1vbi5jCkBAIC04 ODAsNiArODgwLDcgQEAgaW50IHBjaWJpb3Nfcm9vdF9icmlkZ2VfcHJlcGFyZShzdHJ1Y3QgcGNp X2hvc3RfYnJpZGdlICpicmlkZ2UpCiBzdGF0aWMgdm9pZCBwY2liaW9zX2ZpeHVwX3Jlc291cmNl cyhzdHJ1Y3QgcGNpX2RldiAqZGV2KQogewogCXN0cnVjdCBwY2lfY29udHJvbGxlciAqaG9zZSA9 IHBjaV9idXNfdG9faG9zdChkZXYtPmJ1cyk7CisJc3RydWN0IHJlc291cmNlICpyZXM7CiAJaW50 IGk7CiAKIAlpZiAoIWhvc2UpIHsKQEAgLTg5MSw5ICs4OTIsOSBAQCBzdGF0aWMgdm9pZCBwY2li aW9zX2ZpeHVwX3Jlc291cmNlcyhzdHJ1Y3QgcGNpX2RldiAqZGV2KQogCWlmIChkZXYtPmlzX3Zp cnRmbikKIAkJcmV0dXJuOwogCi0JZm9yIChpID0gMDsgaSA8IERFVklDRV9DT1VOVF9SRVNPVVJD RTsgaSsrKSB7Ci0JCXN0cnVjdCByZXNvdXJjZSAqcmVzID0gZGV2LT5yZXNvdXJjZSArIGk7CisJ cGNpX2Rldl9mb3JfZWFjaF9yZXNvdXJjZShkZXYsIHJlcywgaSkgewogCQlzdHJ1Y3QgcGNpX2J1 c19yZWdpb24gcmVnOworCiAJCWlmICghcmVzLT5mbGFncykKIAkJCWNvbnRpbnVlOwogCkBAIC0x NDUyLDExICsxNDUzLDEwIEBAIHZvaWQgcGNpYmlvc19jbGFpbV9vbmVfYnVzKHN0cnVjdCBwY2lf YnVzICpidXMpCiAJc3RydWN0IHBjaV9idXMgKmNoaWxkX2J1czsKIAogCWxpc3RfZm9yX2VhY2hf ZW50cnkoZGV2LCAmYnVzLT5kZXZpY2VzLCBidXNfbGlzdCkgeworCQlzdHJ1Y3QgcmVzb3VyY2Ug KnI7CiAJCWludCBpOwogCi0JCWZvciAoaSA9IDA7IGkgPCBQQ0lfTlVNX1JFU09VUkNFUzsgaSsr KSB7Ci0JCQlzdHJ1Y3QgcmVzb3VyY2UgKnIgPSAmZGV2LT5yZXNvdXJjZVtpXTsKLQorCQlwY2lf ZGV2X2Zvcl9lYWNoX3Jlc291cmNlKGRldiwgciwgaSkgewogCQkJaWYgKHItPnBhcmVudCB8fCAh ci0+c3RhcnQgfHwgIXItPmZsYWdzKQogCQkJCWNvbnRpbnVlOwogCkBAIC0xNzA1LDE5ICsxNzA1 LDIwIEBAIEVYUE9SVF9TWU1CT0xfR1BMKHBjaWJpb3Nfc2Nhbl9waGIpOwogCiBzdGF0aWMgdm9p ZCBmaXh1cF9oaWRlX2hvc3RfcmVzb3VyY2VfZnNsKHN0cnVjdCBwY2lfZGV2ICpkZXYpCiB7Ci0J aW50IGksIGNsYXNzID0gZGV2LT5jbGFzcyA+PiA4OworCWludCBjbGFzcyA9IGRldi0+Y2xhc3Mg Pj4gODsKIAkvKiBXaGVuIGNvbmZpZ3VyZWQgYXMgYWdlbnQsIHByb2dyYW1taW5nIGludGVyZmFj ZSA9IDEgKi8KIAlpbnQgcHJvZ19pZiA9IGRldi0+Y2xhc3MgJiAweGY7CisJc3RydWN0IHJlc291 cmNlICpyOwogCiAJaWYgKChjbGFzcyA9PSBQQ0lfQ0xBU1NfUFJPQ0VTU09SX1BPV0VSUEMgfHwK IAkgICAgIGNsYXNzID09IFBDSV9DTEFTU19CUklER0VfT1RIRVIpICYmCiAJCShkZXYtPmhkcl90 eXBlID09IFBDSV9IRUFERVJfVFlQRV9OT1JNQUwpICYmCiAJCShwcm9nX2lmID09IDApICYmCiAJ CShkZXYtPmJ1cy0+cGFyZW50ID09IE5VTEwpKSB7Ci0JCWZvciAoaSA9IDA7IGkgPCBERVZJQ0Vf Q09VTlRfUkVTT1VSQ0U7IGkrKykgewotCQkJZGV2LT5yZXNvdXJjZVtpXS5zdGFydCA9IDA7Ci0J CQlkZXYtPnJlc291cmNlW2ldLmVuZCA9IDA7Ci0JCQlkZXYtPnJlc291cmNlW2ldLmZsYWdzID0g MDsKKwkJcGNpX2Rldl9mb3JfZWFjaF9yZXNvdXJjZShkZXYsIHIpIHsKKwkJCXItPnN0YXJ0ID0g MDsKKwkJCXItPmVuZCA9IDA7CisJCQlyLT5mbGFncyA9IDA7CiAJCX0KIAl9CiB9CmRpZmYgLS1n aXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzR4eC9wY2kuYyBiL2FyY2gvcG93ZXJwYy9wbGF0 Zm9ybXMvNHh4L3BjaS5jCmluZGV4IGNhNWRkN2E1ODQyYS4uMDdkY2MyYjgwMDdmIDEwMDY0NAot LS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zLzR4eC9wY2kuYworKysgYi9hcmNoL3Bvd2VycGMv cGxhdGZvcm1zLzR4eC9wY2kuYwpAQCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgaW5saW5lIGludCBw cGM0NDBzcGVfcmV2QSh2b2lkKQogc3RhdGljIHZvaWQgZml4dXBfcHBjNHh4X3BjaV9icmlkZ2Uo c3RydWN0IHBjaV9kZXYgKmRldikKIHsKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2U7Ci0J aW50IGk7CisJc3RydWN0IHJlc291cmNlICpyOwogCiAJaWYgKGRldi0+ZGV2Zm4gIT0gMCB8fCBk ZXYtPmJ1cy0+c2VsZiAhPSBOVUxMKQogCQlyZXR1cm47CkBAIC03OSw5ICs3OSw5IEBAIHN0YXRp YyB2b2lkIGZpeHVwX3BwYzR4eF9wY2lfYnJpZGdlKHN0cnVjdCBwY2lfZGV2ICpkZXYpCiAJLyog SGlkZSB0aGUgUENJIGhvc3QgQkFScyBmcm9tIHRoZSBrZXJuZWwgYXMgdGhlaXIgY29udGVudCBk b2Vzbid0CiAJICogZml0IHdlbGwgaW4gdGhlIHJlc291cmNlIG1hbmFnZW1lbnQKIAkgKi8KLQlm b3IgKGkgPSAwOyBpIDwgREVWSUNFX0NPVU5UX1JFU09VUkNFOyBpKyspIHsKLQkJZGV2LT5yZXNv dXJjZVtpXS5zdGFydCA9IGRldi0+cmVzb3VyY2VbaV0uZW5kID0gMDsKLQkJZGV2LT5yZXNvdXJj ZVtpXS5mbGFncyA9IDA7CisJcGNpX2Rldl9mb3JfZWFjaF9yZXNvdXJjZShkZXYsIHIpIHsKKwkJ ci0+c3RhcnQgPSByLT5lbmQgPSAwOworCQlyLT5mbGFncyA9IDA7CiAJfQogCiAJcHJpbnRrKEtF Uk5fSU5GTyAiUENJOiBIaWRpbmcgNHh4IGhvc3QgYnJpZGdlIHJlc291cmNlcyAlc1xuIiwKZGlm ZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvNTJ4eC9tcGM1Mnh4X3BjaS5jIGIvYXJj aC9wb3dlcnBjL3BsYXRmb3Jtcy81Mnh4L21wYzUyeHhfcGNpLmMKaW5kZXggODU5ZTI4MThjNDNk Li4wY2E0NDAxYmE3ODEgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvNTJ4eC9t cGM1Mnh4X3BjaS5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvNTJ4eC9tcGM1Mnh4X3Bj aS5jCkBAIC0zMjcsMTQgKzMyNywxMyBAQCBtcGM1Mnh4X3BjaV9zZXR1cChzdHJ1Y3QgcGNpX2Nv bnRyb2xsZXIgKmhvc2UsCiBzdGF0aWMgdm9pZAogbXBjNTJ4eF9wY2lfZml4dXBfcmVzb3VyY2Vz KHN0cnVjdCBwY2lfZGV2ICpkZXYpCiB7Ci0JaW50IGk7CisJc3RydWN0IHJlc291cmNlICpyZXM7 CiAKIAlwcl9kZWJ1ZygiJXMoKSAlLjR4OiUuNHhcbiIsIF9fZnVuY19fLCBkZXYtPnZlbmRvciwg ZGV2LT5kZXZpY2UpOwogCiAJLyogV2UgZG9uJ3QgcmVseSBvbiBib290IGxvYWRlciBmb3IgUENJ IGFuZCByZXNldHMgYWxsCiAJICAgZGV2aWNlcyAqLwotCWZvciAoaSA9IDA7IGkgPCBERVZJQ0Vf Q09VTlRfUkVTT1VSQ0U7IGkrKykgewotCQlzdHJ1Y3QgcmVzb3VyY2UgKnJlcyA9ICZkZXYtPnJl c291cmNlW2ldOworCXBjaV9kZXZfZm9yX2VhY2hfcmVzb3VyY2UoZGV2LCByZXMpIHsKIAkJaWYg KHJlcy0+ZW5kID4gcmVzLT5zdGFydCkgewkvKiBPbmx5IHZhbGlkIHJlc291cmNlcyAqLwogCQkJ cmVzLT5lbmQgLT0gcmVzLT5zdGFydDsKIAkJCXJlcy0+c3RhcnQgPSAwOwpkaWZmIC0tZ2l0IGEv YXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3BjaS5jIGIvYXJjaC9wb3dlcnBjL3BsYXRm b3Jtcy9wc2VyaWVzL3BjaS5jCmluZGV4IDYwZTBhNTg5MjhlZi4uMTc3MmFlM2QxOTNkIDEwMDY0 NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzZXJpZXMvcGNpLmMKKysrIGIvYXJjaC9w b3dlcnBjL3BsYXRmb3Jtcy9wc2VyaWVzL3BjaS5jCkBAIC0yNDAsNyArMjQwLDcgQEAgdm9pZCBf X2luaXQgcFNlcmllc19maW5hbF9maXh1cCh2b2lkKQogICovCiBzdGF0aWMgdm9pZCBmaXh1cF93 aW5ib25kXzgyYzEwNShzdHJ1Y3QgcGNpX2RldiogZGV2KQogewotCWludCBpOworCXN0cnVjdCBy ZXNvdXJjZSAqcjsKIAl1bnNpZ25lZCBpbnQgcmVnOwogCiAJaWYgKCFtYWNoaW5lX2lzKHBzZXJp ZXMpKQpAQCAtMjUxLDE0ICsyNTEsMTQgQEAgc3RhdGljIHZvaWQgZml4dXBfd2luYm9uZF84MmMx MDUoc3RydWN0IHBjaV9kZXYqIGRldikKIAkvKiBFbmFibGUgTEVHSVJRIHRvIHVzZSBJTlRDIGlu c3RlYWQgb2YgSVNBIGludGVycnVwdHMgKi8KIAlwY2lfd3JpdGVfY29uZmlnX2R3b3JkKGRldiwg MHg0MCwgcmVnIHwgKDE8PDExKSk7CiAKLQlmb3IgKGkgPSAwOyBpIDwgREVWSUNFX0NPVU5UX1JF U09VUkNFOyArK2kpIHsKKwlwY2lfZGV2X2Zvcl9lYWNoX3Jlc291cmNlKGRldiwgcikgewogCQkv KiB6YXAgdGhlIDJuZCBmdW5jdGlvbiBvZiB0aGUgd2luYm9uZCBjaGlwICovCi0JCWlmIChkZXYt PnJlc291cmNlW2ldLmZsYWdzICYgSU9SRVNPVVJDRV9JTwotCQkgICAgJiYgZGV2LT5idXMtPm51 bWJlciA9PSAwICYmIGRldi0+ZGV2Zm4gPT0gMHg4MSkKLQkJCWRldi0+cmVzb3VyY2VbaV0uZmxh Z3MgJj0gfklPUkVTT1VSQ0VfSU87Ci0JCWlmIChkZXYtPnJlc291cmNlW2ldLnN0YXJ0ID09IDAg JiYgZGV2LT5yZXNvdXJjZVtpXS5lbmQpIHsKLQkJCWRldi0+cmVzb3VyY2VbaV0uZmxhZ3MgPSAw OwotCQkJZGV2LT5yZXNvdXJjZVtpXS5lbmQgPSAwOworCQlpZiAoZGV2LT5idXMtPm51bWJlciA9 PSAwICYmIGRldi0+ZGV2Zm4gPT0gMHg4MSAmJgorCQkgICAgci0+ZmxhZ3MgJiBJT1JFU09VUkNF X0lPKQorCQkJci0+ZmxhZ3MgJj0gfklPUkVTT1VSQ0VfSU87CisJCWlmIChyLT5zdGFydCA9PSAw ICYmIHItPmVuZCkgeworCQkJci0+ZmxhZ3MgPSAwOworCQkJci0+ZW5kID0gMDsKIAkJfQogCX0K IH0KZGlmZiAtLWdpdCBhL2FyY2gvc2gvZHJpdmVycy9wY2kvcGNpZS1zaDc3ODYuYyBiL2FyY2gv c2gvZHJpdmVycy9wY2kvcGNpZS1zaDc3ODYuYwppbmRleCBiMGMyYTUyMzhkMDQuLjRmNWU0OWYx MDgwNSAxMDA2NDQKLS0tIGEvYXJjaC9zaC9kcml2ZXJzL3BjaS9wY2llLXNoNzc4Ni5jCisrKyBi L2FyY2gvc2gvZHJpdmVycy9wY2kvcGNpZS1zaDc3ODYuYwpAQCAtMTQwLDEyICsxNDAsMTIgQEAg c3RhdGljIHZvaWQgc2g3Nzg2X3BjaV9maXh1cChzdHJ1Y3QgcGNpX2RldiAqZGV2KQogCSAqIFBy ZXZlbnQgZW51bWVyYXRpb24gb2Ygcm9vdCBjb21wbGV4IHJlc291cmNlcy4KIAkgKi8KIAlpZiAo cGNpX2lzX3Jvb3RfYnVzKGRldi0+YnVzKSAmJiBkZXYtPmRldmZuID09IDApIHsKLQkJaW50IGk7 CisJCXN0cnVjdCByZXNvdXJjZSAqcjsKIAotCQlmb3IgKGkgPSAwOyBpIDwgREVWSUNFX0NPVU5U X1JFU09VUkNFOyBpKyspIHsKLQkJCWRldi0+cmVzb3VyY2VbaV0uc3RhcnQJPSAwOwotCQkJZGV2 LT5yZXNvdXJjZVtpXS5lbmQJPSAwOwotCQkJZGV2LT5yZXNvdXJjZVtpXS5mbGFncwk9IDA7CisJ CXBjaV9kZXZfZm9yX2VhY2hfcmVzb3VyY2UoZGV2LCByKSB7CisJCQlyLT5zdGFydAk9IDA7CisJ CQlyLT5lbmQJCT0gMDsKKwkJCXItPmZsYWdzCT0gMDsKIAkJfQogCX0KIH0KZGlmZiAtLWdpdCBh L2FyY2gvc3BhcmMva2VybmVsL2xlb25fcGNpLmMgYi9hcmNoL3NwYXJjL2tlcm5lbC9sZW9uX3Bj aS5jCmluZGV4IGU1ZTVmZjZiOWE1Yy4uYjY2NjNhM2ZiYWU5IDEwMDY0NAotLS0gYS9hcmNoL3Nw YXJjL2tlcm5lbC9sZW9uX3BjaS5jCisrKyBiL2FyY2gvc3BhcmMva2VybmVsL2xlb25fcGNpLmMK QEAgLTYyLDE1ICs2MiwxNCBAQCB2b2lkIGxlb25fcGNpX2luaXQoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqb2ZkZXYsIHN0cnVjdCBsZW9uX3BjaV9pbmZvICppbmZvKQogCiBpbnQgcGNpYmlvc19l bmFibGVfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBtYXNrKQogeworCXN0cnVjdCBy ZXNvdXJjZSAqcmVzOwogCXUxNiBjbWQsIG9sZGNtZDsKIAlpbnQgaTsKIAogCXBjaV9yZWFkX2Nv bmZpZ193b3JkKGRldiwgUENJX0NPTU1BTkQsICZjbWQpOwogCW9sZGNtZCA9IGNtZDsKIAotCWZv ciAoaSA9IDA7IGkgPCBQQ0lfTlVNX1JFU09VUkNFUzsgaSsrKSB7Ci0JCXN0cnVjdCByZXNvdXJj ZSAqcmVzID0gJmRldi0+cmVzb3VyY2VbaV07Ci0KKwlwY2lfZGV2X2Zvcl9lYWNoX3Jlc291cmNl KGRldiwgcmVzLCBpKSB7CiAJCS8qIE9ubHkgc2V0IHVwIHRoZSByZXF1ZXN0ZWQgc3R1ZmYgKi8K IAkJaWYgKCEobWFzayAmICgxPDxpKSkpCiAJCQljb250aW51ZTsKZGlmZiAtLWdpdCBhL2FyY2gv c3BhcmMva2VybmVsL3BjaS5jIGIvYXJjaC9zcGFyYy9rZXJuZWwvcGNpLmMKaW5kZXggY2IxZWYy NTExNmU5Li5hOTQ4YTQ5ODE3YzcgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmMva2VybmVsL3BjaS5j CisrKyBiL2FyY2gvc3BhcmMva2VybmVsL3BjaS5jCkBAIC02NjMsMTEgKzY2MywxMCBAQCBzdGF0 aWMgdm9pZCBwY2lfY2xhaW1fYnVzX3Jlc291cmNlcyhzdHJ1Y3QgcGNpX2J1cyAqYnVzKQogCXN0 cnVjdCBwY2lfZGV2ICpkZXY7CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRldiwgJmJ1cy0+ZGV2 aWNlcywgYnVzX2xpc3QpIHsKKwkJc3RydWN0IHJlc291cmNlICpyOwogCQlpbnQgaTsKIAotCQlm b3IgKGkgPSAwOyBpIDwgUENJX05VTV9SRVNPVVJDRVM7IGkrKykgewotCQkJc3RydWN0IHJlc291 cmNlICpyID0gJmRldi0+cmVzb3VyY2VbaV07Ci0KKwkJcGNpX2Rldl9mb3JfZWFjaF9yZXNvdXJj ZShkZXYsIHIsIGkpIHsKIAkJCWlmIChyLT5wYXJlbnQgfHwgIXItPnN0YXJ0IHx8ICFyLT5mbGFn cykKIAkJCQljb250aW51ZTsKIApAQCAtNzI0LDE1ICs3MjMsMTQgQEAgc3RydWN0IHBjaV9idXMg KnBjaV9zY2FuX29uZV9wYm0oc3RydWN0IHBjaV9wYm1faW5mbyAqcGJtLAogCiBpbnQgcGNpYmlv c19lbmFibGVfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBtYXNrKQogeworCXN0cnVj dCByZXNvdXJjZSAqcmVzOwogCXUxNiBjbWQsIG9sZGNtZDsKIAlpbnQgaTsKIAogCXBjaV9yZWFk X2NvbmZpZ193b3JkKGRldiwgUENJX0NPTU1BTkQsICZjbWQpOwogCW9sZGNtZCA9IGNtZDsKIAot CWZvciAoaSA9IDA7IGkgPCBQQ0lfTlVNX1JFU09VUkNFUzsgaSsrKSB7Ci0JCXN0cnVjdCByZXNv dXJjZSAqcmVzID0gJmRldi0+cmVzb3VyY2VbaV07Ci0KKwlwY2lfZGV2X2Zvcl9lYWNoX3Jlc291 cmNlKGRldiwgcmVzLCBpKSB7CiAJCS8qIE9ubHkgc2V0IHVwIHRoZSByZXF1ZXN0ZWQgc3R1ZmYg Ki8KIAkJaWYgKCEobWFzayAmICgxPDxpKSkpCiAJCQljb250aW51ZTsKZGlmZiAtLWdpdCBhL2Fy Y2gvc3BhcmMva2VybmVsL3BjaWMuYyBiL2FyY2gvc3BhcmMva2VybmVsL3BjaWMuYwppbmRleCBl ZTRjOWE5YTE3MWMuLjI1ZmUwYTA2MTczMiAxMDA2NDQKLS0tIGEvYXJjaC9zcGFyYy9rZXJuZWwv cGNpYy5jCisrKyBiL2FyY2gvc3BhcmMva2VybmVsL3BjaWMuYwpAQCAtNjQzLDE1ICs2NDMsMTQg QEAgdm9pZCBwY2liaW9zX2ZpeHVwX2J1cyhzdHJ1Y3QgcGNpX2J1cyAqYnVzKQogCiBpbnQgcGNp Ymlvc19lbmFibGVfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBtYXNrKQogeworCXN0 cnVjdCByZXNvdXJjZSAqcmVzOwogCXUxNiBjbWQsIG9sZGNtZDsKIAlpbnQgaTsKIAogCXBjaV9y ZWFkX2NvbmZpZ193b3JkKGRldiwgUENJX0NPTU1BTkQsICZjbWQpOwogCW9sZGNtZCA9IGNtZDsK IAotCWZvciAoaSA9IDA7IGkgPCBQQ0lfTlVNX1JFU09VUkNFUzsgaSsrKSB7Ci0JCXN0cnVjdCBy ZXNvdXJjZSAqcmVzID0gJmRldi0+cmVzb3VyY2VbaV07Ci0KKwlwY2lfZGV2X2Zvcl9lYWNoX3Jl c291cmNlKGRldiwgcmVzLCBpKSB7CiAJCS8qIE9ubHkgc2V0IHVwIHRoZSByZXF1ZXN0ZWQgc3R1 ZmYgKi8KIAkJaWYgKCEobWFzayAmICgxPDxpKSkpCiAJCQljb250aW51ZTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvcGNpL3JlbW92ZS5jIGIvZHJpdmVycy9wY2kvcmVtb3ZlLmMKaW5kZXggMDE0NWFl ZjFiOTMwLi5jMDQ5ZWRkYzFlMmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3JlbW92ZS5jCisr KyBiL2RyaXZlcnMvcGNpL3JlbW92ZS5jCkBAIC01LDEwICs1LDkgQEAKIAogc3RhdGljIHZvaWQg cGNpX2ZyZWVfcmVzb3VyY2VzKHN0cnVjdCBwY2lfZGV2ICpkZXYpCiB7Ci0JaW50IGk7CisJc3Ry dWN0IHJlc291cmNlICpyZXM7CiAKLQlmb3IgKGkgPSAwOyBpIDwgUENJX05VTV9SRVNPVVJDRVM7 IGkrKykgewotCQlzdHJ1Y3QgcmVzb3VyY2UgKnJlcyA9IGRldi0+cmVzb3VyY2UgKyBpOworCXBj aV9kZXZfZm9yX2VhY2hfcmVzb3VyY2UoZGV2LCByZXMpIHsKIAkJaWYgKHJlcy0+cGFyZW50KQog CQkJcmVsZWFzZV9yZXNvdXJjZShyZXMpOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3Nl dHVwLWJ1cy5jIGIvZHJpdmVycy9wY2kvc2V0dXAtYnVzLmMKaW5kZXggYzY5MDU3MmIxMGNlLi4w MjdiOTg1ZGQxZWUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGNpL3NldHVwLWJ1cy5jCisrKyBiL2Ry aXZlcnMvcGNpL3NldHVwLWJ1cy5jCkBAIC0xMjQsMjAgKzEyNCwxNyBAQCBzdGF0aWMgcmVzb3Vy Y2Vfc2l6ZV90IGdldF9yZXNfYWRkX2FsaWduKHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQsCiAJcmV0 dXJuIGRldl9yZXMgPyBkZXZfcmVzLT5taW5fYWxpZ24gOiAwOwogfQogCi0KIC8qIFNvcnQgcmVz b3VyY2VzIGJ5IGFsaWdubWVudCAqLwogc3RhdGljIHZvaWQgcGRldl9zb3J0X3Jlc291cmNlcyhz dHJ1Y3QgcGNpX2RldiAqZGV2LCBzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQogeworCXN0cnVjdCBy ZXNvdXJjZSAqcjsKIAlpbnQgaTsKIAotCWZvciAoaSA9IDA7IGkgPCBQQ0lfTlVNX1JFU09VUkNF UzsgaSsrKSB7Ci0JCXN0cnVjdCByZXNvdXJjZSAqcjsKKwlwY2lfZGV2X2Zvcl9lYWNoX3Jlc291 cmNlKGRldiwgciwgaSkgewogCQlzdHJ1Y3QgcGNpX2Rldl9yZXNvdXJjZSAqZGV2X3JlcywgKnRt cDsKIAkJcmVzb3VyY2Vfc2l6ZV90IHJfYWxpZ247CiAJCXN0cnVjdCBsaXN0X2hlYWQgKm47CiAK LQkJciA9ICZkZXYtPnJlc291cmNlW2ldOwotCiAJCWlmIChyLT5mbGFncyAmIElPUkVTT1VSQ0Vf UENJX0ZJWEVEKQogCQkJY29udGludWU7CiAKQEAgLTg5NSwxMCArODkyLDkgQEAgc3RhdGljIHZv aWQgcGJ1c19zaXplX2lvKHN0cnVjdCBwY2lfYnVzICpidXMsIHJlc291cmNlX3NpemVfdCBtaW5f c2l6ZSwKIAogCW1pbl9hbGlnbiA9IHdpbmRvd19hbGlnbm1lbnQoYnVzLCBJT1JFU09VUkNFX0lP KTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRldiwgJmJ1cy0+ZGV2aWNlcywgYnVzX2xpc3QpIHsK LQkJaW50IGk7CisJCXN0cnVjdCByZXNvdXJjZSAqcjsKIAotCQlmb3IgKGkgPSAwOyBpIDwgUENJ X05VTV9SRVNPVVJDRVM7IGkrKykgewotCQkJc3RydWN0IHJlc291cmNlICpyID0gJmRldi0+cmVz b3VyY2VbaV07CisJCXBjaV9kZXZfZm9yX2VhY2hfcmVzb3VyY2UoZGV2LCByKSB7CiAJCQl1bnNp Z25lZCBsb25nIHJfc2l6ZTsKIAogCQkJaWYgKHItPnBhcmVudCB8fCAhKHItPmZsYWdzICYgSU9S RVNPVVJDRV9JTykpCkBAIC0xMDE0LDEwICsxMDEwLDEwIEBAIHN0YXRpYyBpbnQgcGJ1c19zaXpl X21lbShzdHJ1Y3QgcGNpX2J1cyAqYnVzLCB1bnNpZ25lZCBsb25nIG1hc2ssCiAJc2l6ZSA9IDA7 CiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRldiwgJmJ1cy0+ZGV2aWNlcywgYnVzX2xpc3QpIHsK KwkJc3RydWN0IHJlc291cmNlICpyOwogCQlpbnQgaTsKIAotCQlmb3IgKGkgPSAwOyBpIDwgUENJ X05VTV9SRVNPVVJDRVM7IGkrKykgewotCQkJc3RydWN0IHJlc291cmNlICpyID0gJmRldi0+cmVz b3VyY2VbaV07CisJCXBjaV9kZXZfZm9yX2VhY2hfcmVzb3VyY2UoZGV2LCByLCBpKSB7CiAJCQly ZXNvdXJjZV9zaXplX3Qgcl9zaXplOwogCiAJCQlpZiAoci0+cGFyZW50IHx8IChyLT5mbGFncyAm IElPUkVTT1VSQ0VfUENJX0ZJWEVEKSB8fApAQCAtMTM1OCwxMSArMTM1NCwxMCBAQCBzdGF0aWMg dm9pZCBhc3NpZ25fZml4ZWRfcmVzb3VyY2Vfb25fYnVzKHN0cnVjdCBwY2lfYnVzICpiLCBzdHJ1 Y3QgcmVzb3VyY2UgKnIpCiAgKi8KIHN0YXRpYyB2b2lkIHBkZXZfYXNzaWduX2ZpeGVkX3Jlc291 cmNlcyhzdHJ1Y3QgcGNpX2RldiAqZGV2KQogewotCWludCBpOworCXN0cnVjdCByZXNvdXJjZSAq cjsKIAotCWZvciAoaSA9IDA7IGkgPCAgUENJX05VTV9SRVNPVVJDRVM7IGkrKykgeworCXBjaV9k ZXZfZm9yX2VhY2hfcmVzb3VyY2UoZGV2LCByKSB7CiAJCXN0cnVjdCBwY2lfYnVzICpiOwotCQlz dHJ1Y3QgcmVzb3VyY2UgKnIgPSAmZGV2LT5yZXNvdXJjZVtpXTsKIAogCQlpZiAoci0+cGFyZW50 IHx8ICEoci0+ZmxhZ3MgJiBJT1JFU09VUkNFX1BDSV9GSVhFRCkgfHwKIAkJICAgICEoci0+Zmxh Z3MgJiAoSU9SRVNPVVJDRV9JTyB8IElPUkVTT1VSQ0VfTUVNKSkpCkBAIC0xNzk1LDExICsxNzkw LDkgQEAgc3RhdGljIHZvaWQgcmVtb3ZlX2Rldl9yZXNvdXJjZXMoc3RydWN0IHBjaV9kZXYgKmRl diwgc3RydWN0IHJlc291cmNlICppbywKIAkJCQkgc3RydWN0IHJlc291cmNlICptbWlvLAogCQkJ CSBzdHJ1Y3QgcmVzb3VyY2UgKm1taW9fcHJlZikKIHsKLQlpbnQgaTsKLQotCWZvciAoaSA9IDA7 IGkgPCBQQ0lfTlVNX1JFU09VUkNFUzsgaSsrKSB7Ci0JCXN0cnVjdCByZXNvdXJjZSAqcmVzID0g JmRldi0+cmVzb3VyY2VbaV07CisJc3RydWN0IHJlc291cmNlICpyZXM7CiAKKwlwY2lfZGV2X2Zv cl9lYWNoX3Jlc291cmNlKGRldiwgcmVzKSB7CiAJCWlmIChyZXNvdXJjZV90eXBlKHJlcykgPT0g SU9SRVNPVVJDRV9JTykgewogCQkJcmVtb3ZlX2Rldl9yZXNvdXJjZShpbywgZGV2LCByZXMpOwog CQl9IGVsc2UgaWYgKHJlc291cmNlX3R5cGUocmVzKSA9PSBJT1JFU09VUkNFX01FTSkgewpkaWZm IC0tZ2l0IGEvZHJpdmVycy9wY2kvc2V0dXAtcmVzLmMgYi9kcml2ZXJzL3BjaS9zZXR1cC1yZXMu YwppbmRleCBiNDkyZTY3YzNkODcuLjk2N2Y5YTc1ODkyMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9w Y2kvc2V0dXAtcmVzLmMKKysrIGIvZHJpdmVycy9wY2kvc2V0dXAtcmVzLmMKQEAgLTQ4NCwxMiAr NDg0LDEwIEBAIGludCBwY2lfZW5hYmxlX3Jlc291cmNlcyhzdHJ1Y3QgcGNpX2RldiAqZGV2LCBp bnQgbWFzaykKIAlwY2lfcmVhZF9jb25maWdfd29yZChkZXYsIFBDSV9DT01NQU5ELCAmY21kKTsK IAlvbGRfY21kID0gY21kOwogCi0JZm9yIChpID0gMDsgaSA8IFBDSV9OVU1fUkVTT1VSQ0VTOyBp KyspIHsKKwlwY2lfZGV2X2Zvcl9lYWNoX3Jlc291cmNlKGRldiwgciwgaSkgewogCQlpZiAoISht YXNrICYgKDEgPDwgaSkpKQogCQkJY29udGludWU7CiAKLQkJciA9ICZkZXYtPnJlc291cmNlW2ld OwotCiAJCWlmICghKHItPmZsYWdzICYgKElPUkVTT1VSQ0VfSU8gfCBJT1JFU09VUkNFX01FTSkp KQogCQkJY29udGludWU7CiAJCWlmICgoaSA9PSBQQ0lfUk9NX1JFU09VUkNFKSAmJgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9wY2kvdmdhYXJiLmMgYi9kcml2ZXJzL3BjaS92Z2FhcmIuYwppbmRleCBm ODBiNmVjODhkYzMuLjVhNjk2MDc4YjM4MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9wY2kvdmdhYXJi LmMKKysrIGIvZHJpdmVycy9wY2kvdmdhYXJiLmMKQEAgLTU0OCwxMCArNTQ4LDggQEAgc3RhdGlj IGJvb2wgdmdhX2lzX2Zpcm13YXJlX2RlZmF1bHQoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAjaWYg ZGVmaW5lZChDT05GSUdfWDg2KSB8fCBkZWZpbmVkKENPTkZJR19JQTY0KQogCXU2NCBiYXNlID0g c2NyZWVuX2luZm8ubGZiX2Jhc2U7CiAJdTY0IHNpemUgPSBzY3JlZW5faW5mby5sZmJfc2l6ZTsK KwlzdHJ1Y3QgcmVzb3VyY2UgKnI7CiAJdTY0IGxpbWl0OwotCXJlc291cmNlX3NpemVfdCBzdGFy dCwgZW5kOwotCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Ci0JaW50IGk7CiAKIAkvKiBTZWxlY3QgdGhl IGRldmljZSBvd25pbmcgdGhlIGJvb3QgZnJhbWVidWZmZXIgaWYgdGhlcmUgaXMgb25lICovCiAK QEAgLTU2MSwxOSArNTU5LDE0IEBAIHN0YXRpYyBib29sIHZnYV9pc19maXJtd2FyZV9kZWZhdWx0 KHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCWxpbWl0ID0gYmFzZSArIHNpemU7CiAKIAkvKiBEb2Vz IGZpcm13YXJlIGZyYW1lYnVmZmVyIGJlbG9uZyB0byB1cz8gKi8KLQlmb3IgKGkgPSAwOyBpIDwg REVWSUNFX0NPVU5UX1JFU09VUkNFOyBpKyspIHsKLQkJZmxhZ3MgPSBwY2lfcmVzb3VyY2VfZmxh Z3MocGRldiwgaSk7Ci0KLQkJaWYgKChmbGFncyAmIElPUkVTT1VSQ0VfTUVNKSA9PSAwKQorCXBj aV9kZXZfZm9yX2VhY2hfcmVzb3VyY2UocGRldiwgcikgeworCQlpZiAocmVzb3VyY2VfdHlwZShy KSAhPSBJT1JFU09VUkNFX01FTSkKIAkJCWNvbnRpbnVlOwogCi0JCXN0YXJ0ID0gcGNpX3Jlc291 cmNlX3N0YXJ0KHBkZXYsIGkpOwotCQllbmQgID0gcGNpX3Jlc291cmNlX2VuZChwZGV2LCBpKTsK LQotCQlpZiAoIXN0YXJ0IHx8ICFlbmQpCisJCWlmICghci0+c3RhcnQgfHwgIXItPmVuZCkKIAkJ CWNvbnRpbnVlOwogCi0JCWlmIChiYXNlIDwgc3RhcnQgfHwgbGltaXQgPj0gZW5kKQorCQlpZiAo YmFzZSA8IHItPnN0YXJ0IHx8IGxpbWl0ID49IHItPmVuZCkKIAkJCWNvbnRpbnVlOwogCiAJCXJl dHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9wY2kveGVuLXBjaWZyb250LmMgYi9kcml2 ZXJzL3BjaS94ZW4tcGNpZnJvbnQuYwppbmRleCBmY2QwMjljYTJlYjEuLjgzYzBhYjUwNjc2ZCAx MDA2NDQKLS0tIGEvZHJpdmVycy9wY2kveGVuLXBjaWZyb250LmMKKysrIGIvZHJpdmVycy9wY2kv eGVuLXBjaWZyb250LmMKQEAgLTM5MCw5ICszOTAsNyBAQCBzdGF0aWMgaW50IHBjaWZyb250X2Ns YWltX3Jlc291cmNlKHN0cnVjdCBwY2lfZGV2ICpkZXYsIHZvaWQgKmRhdGEpCiAJaW50IGk7CiAJ c3RydWN0IHJlc291cmNlICpyOwogCi0JZm9yIChpID0gMDsgaSA8IFBDSV9OVU1fUkVTT1VSQ0VT OyBpKyspIHsKLQkJciA9ICZkZXYtPnJlc291cmNlW2ldOwotCisJcGNpX2Rldl9mb3JfZWFjaF9y ZXNvdXJjZShkZXYsIHIsIGkpIHsKIAkJaWYgKCFyLT5wYXJlbnQgJiYgci0+c3RhcnQgJiYgci0+ ZmxhZ3MpIHsKIAkJCWRldl9pbmZvKCZwZGV2LT54ZGV2LT5kZXYsICJjbGFpbWluZyByZXNvdXJj ZSAlcy8lZFxuIiwKIAkJCQlwY2lfbmFtZShkZXYpLCBpKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv cG5wL3F1aXJrcy5jIGIvZHJpdmVycy9wbnAvcXVpcmtzLmMKaW5kZXggYWM5OGI5OTE5MDI5Li42 MDg1YTE0NzFkZTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcG5wL3F1aXJrcy5jCisrKyBiL2RyaXZl cnMvcG5wL3F1aXJrcy5jCkBAIC0yMjksOCArMjI5LDcgQEAgc3RhdGljIHZvaWQgcXVpcmtfYWQx ODE1X21wdV9yZXNvdXJjZXMoc3RydWN0IHBucF9kZXYgKmRldikKIHN0YXRpYyB2b2lkIHF1aXJr X3N5c3RlbV9wY2lfcmVzb3VyY2VzKHN0cnVjdCBwbnBfZGV2ICpkZXYpCiB7CiAJc3RydWN0IHBj aV9kZXYgKnBkZXYgPSBOVUxMOwotCXN0cnVjdCByZXNvdXJjZSAqcmVzOwotCXJlc291cmNlX3Np emVfdCBwbnBfc3RhcnQsIHBucF9lbmQsIHBjaV9zdGFydCwgcGNpX2VuZDsKKwlzdHJ1Y3QgcmVz b3VyY2UgKnJlcywgKnI7CiAJaW50IGksIGo7CiAKIAkvKgpAQCAtMjQzLDMyICsyNDIsMjYgQEAg c3RhdGljIHZvaWQgcXVpcmtfc3lzdGVtX3BjaV9yZXNvdXJjZXMoc3RydWN0IHBucF9kZXYgKmRl dikKIAkgKiBzbyB0aGV5IHdvbid0IGJlIGNsYWltZWQgYnkgdGhlIFBOUCBzeXN0ZW0gZHJpdmVy LgogCSAqLwogCWZvcl9lYWNoX3BjaV9kZXYocGRldikgewotCQlmb3IgKGkgPSAwOyBpIDwgREVW SUNFX0NPVU5UX1JFU09VUkNFOyBpKyspIHsKLQkJCXVuc2lnbmVkIGxvbmcgZmxhZ3MsIHR5cGU7 CisJCXBjaV9kZXZfZm9yX2VhY2hfcmVzb3VyY2UocGRldiwgciwgaSkgeworCQkJdW5zaWduZWQg bG9uZyB0eXBlID0gcmVzb3VyY2VfdHlwZShyKTsKIAotCQkJZmxhZ3MgPSBwY2lfcmVzb3VyY2Vf ZmxhZ3MocGRldiwgaSk7Ci0JCQl0eXBlID0gZmxhZ3MgJiAoSU9SRVNPVVJDRV9JTyB8IElPUkVT T1VSQ0VfTUVNKTsKLQkJCWlmICghdHlwZSB8fCBwY2lfcmVzb3VyY2VfbGVuKHBkZXYsIGkpID09 IDApCisJCQlpZiAoISh0eXBlID09IElPUkVTT1VSQ0VfSU8gfHwgdHlwZSA9PSBJT1JFU09VUkNF X01FTSkgfHwKKwkJCSAgICByZXNvdXJjZV9zaXplKHIpID09IDApCiAJCQkJY29udGludWU7CiAK LQkJCWlmIChmbGFncyAmIElPUkVTT1VSQ0VfVU5TRVQpCisJCQlpZiAoci0+ZmxhZ3MgJiBJT1JF U09VUkNFX1VOU0VUKQogCQkJCWNvbnRpbnVlOwogCi0JCQlwY2lfc3RhcnQgPSBwY2lfcmVzb3Vy Y2Vfc3RhcnQocGRldiwgaSk7Ci0JCQlwY2lfZW5kID0gcGNpX3Jlc291cmNlX2VuZChwZGV2LCBp KTsKIAkJCWZvciAoaiA9IDA7CiAJCQkgICAgIChyZXMgPSBwbnBfZ2V0X3Jlc291cmNlKGRldiwg dHlwZSwgaikpOyBqKyspIHsKIAkJCQlpZiAocmVzLT5zdGFydCA9PSAwICYmIHJlcy0+ZW5kID09 IDApCiAJCQkJCWNvbnRpbnVlOwogCi0JCQkJcG5wX3N0YXJ0ID0gcmVzLT5zdGFydDsKLQkJCQlw bnBfZW5kID0gcmVzLT5lbmQ7Ci0KIAkJCQkvKgogCQkJCSAqIElmIHRoZSBQTlAgcmVnaW9uIGRv ZXNuJ3Qgb3ZlcmxhcCB0aGUgUENJCiAJCQkJICogcmVnaW9uIGF0IGFsbCwgdGhlcmUncyBubyBw cm9ibGVtLgogCQkJCSAqLwotCQkJCWlmIChwbnBfZW5kIDwgcGNpX3N0YXJ0IHx8IHBucF9zdGFy dCA+IHBjaV9lbmQpCisJCQkJaWYgKCFyZXNvdXJjZV9vdmVybGFwcyhyZXMsIHIpKQogCQkJCQlj b250aW51ZTsKIAogCQkJCS8qCkBAIC0yNzgsOCArMjcxLDcgQEAgc3RhdGljIHZvaWQgcXVpcmtf c3lzdGVtX3BjaV9yZXNvdXJjZXMoc3RydWN0IHBucF9kZXYgKmRldikKIAkJCQkgKiBQTlAgZGV2 aWNlIGRlc2NyaWJlcyBhIGJyaWRnZSB3aXRoIFBDSQogCQkJCSAqIGJlaGluZCBpdC4KIAkJCQkg Ki8KLQkJCQlpZiAocG5wX3N0YXJ0IDw9IHBjaV9zdGFydCAmJgotCQkJCSAgICBwbnBfZW5kID49 IHBjaV9lbmQpCisJCQkJaWYgKHJlcy0+c3RhcnQgPD0gci0+c3RhcnQgJiYgcmVzLT5lbmQgPj0g ci0+ZW5kKQogCQkJCQljb250aW51ZTsKIAogCQkJCS8qCkBAIC0yODgsOSArMjgwLDggQEAgc3Rh dGljIHZvaWQgcXVpcmtfc3lzdGVtX3BjaV9yZXNvdXJjZXMoc3RydWN0IHBucF9kZXYgKmRldikK IAkJCQkgKiBkcml2ZXIgZnJvbSByZXF1ZXN0aW5nIGl0cyByZXNvdXJjZXMuCiAJCQkJICovCiAJ CQkJZGV2X3dhcm4oJmRldi0+ZGV2LAotCQkJCQkgImRpc2FibGluZyAlcFIgYmVjYXVzZSBpdCBv dmVybGFwcyAiCi0JCQkJCSAiJXMgQkFSICVkICVwUlxuIiwgcmVzLAotCQkJCQkgcGNpX25hbWUo cGRldiksIGksICZwZGV2LT5yZXNvdXJjZVtpXSk7CisJCQkJCSAiZGlzYWJsaW5nICVwUiBiZWNh dXNlIGl0IG92ZXJsYXBzICVzIEJBUiAlZCAlcFJcbiIsCisJCQkJCSByZXMsIHBjaV9uYW1lKHBk ZXYpLCBpLCByKTsKIAkJCQlyZXMtPmZsYWdzIHw9IElPUkVTT1VSQ0VfRElTQUJMRUQ7CiAJCQl9 CiAJCX0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcGNpLmggYi9pbmNsdWRlL2xpbnV4L3Bj aS5oCmluZGV4IGI1MGU1Yzc5ZjdlMy4uZTEyNzdhMmJiNjQ1IDEwMDY0NAotLS0gYS9pbmNsdWRl L2xpbnV4L3BjaS5oCisrKyBiL2luY2x1ZGUvbGludXgvcGNpLmgKQEAgLTI2LDYgKzI2LDcgQEAK IAogI2luY2x1ZGUgPGxpbnV4L21vZF9kZXZpY2V0YWJsZS5oPgogCisjaW5jbHVkZSA8bGludXgv YXJncy5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CiAjaW5jbHVkZSA8bGludXgvaW5pdC5o PgogI2luY2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgpAQCAtMTk5NSw2ICsxOTk2LDcgQEAgaW50IHBj aV9pb2Jhcl9wZm4oc3RydWN0IHBjaV9kZXYgKnBkZXYsIGludCBiYXIsIHN0cnVjdCB2bV9hcmVh X3N0cnVjdCAqdm1hKTsKICAqIFRoZXNlIGhlbHBlcnMgcHJvdmlkZSBmdXR1cmUgYW5kIGJhY2t3 YXJkcyBjb21wYXRpYmlsaXR5CiAgKiBmb3IgYWNjZXNzaW5nIHBvcHVsYXIgUENJIEJBUiBpbmZv CiAgKi8KKyNkZWZpbmUgcGNpX3Jlc291cmNlX24oZGV2LCBiYXIpCSgmKGRldiktPnJlc291cmNl WyhiYXIpXSkKICNkZWZpbmUgcGNpX3Jlc291cmNlX3N0YXJ0KGRldiwgYmFyKQkoKGRldiktPnJl c291cmNlWyhiYXIpXS5zdGFydCkKICNkZWZpbmUgcGNpX3Jlc291cmNlX2VuZChkZXYsIGJhcikJ KChkZXYpLT5yZXNvdXJjZVsoYmFyKV0uZW5kKQogI2RlZmluZSBwY2lfcmVzb3VyY2VfZmxhZ3Mo ZGV2LCBiYXIpCSgoZGV2KS0+cmVzb3VyY2VbKGJhcildLmZsYWdzKQpAQCAtMjAwNCw2ICsyMDA2 LDIwIEBAIGludCBwY2lfaW9iYXJfcGZuKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBpbnQgYmFyLCBz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7CiAJIChwY2lfcmVzb3VyY2VfZW5kKChkZXYpLCAo YmFyKSkgLQkJXAogCSAgcGNpX3Jlc291cmNlX3N0YXJ0KChkZXYpLCAoYmFyKSkgKyAxKSkKIAor I2RlZmluZSBfX3BjaV9kZXZfZm9yX2VhY2hfcmVzb3VyY2VfMChkZXYsIHJlcywgLi4uKQkJCVwK Kwlmb3IgKHVuc2lnbmVkIGludCBfX2IgPSAwOwkJCQkJXAorCSAgICAgcmVzID0gcGNpX3Jlc291 cmNlX24oZGV2LCBfX2IpLCBfX2IgPCBQQ0lfTlVNX1JFU09VUkNFUzsJXAorCSAgICAgX19iKysp CisKKyNkZWZpbmUgX19wY2lfZGV2X2Zvcl9lYWNoX3Jlc291cmNlXzEoZGV2LCByZXMsIF9fYikJ CQlcCisJZm9yIChfX2IgPSAwOwkJCQkJCQlcCisJICAgICByZXMgPSBwY2lfcmVzb3VyY2Vfbihk ZXYsIF9fYiksIF9fYiA8IFBDSV9OVU1fUkVTT1VSQ0VTOwlcCisJICAgICBfX2IrKykKKworI2Rl ZmluZSBwY2lfZGV2X2Zvcl9lYWNoX3Jlc291cmNlKGRldiwgcmVzLCAuLi4pCQkJICAgXAorCUNP TkNBVEVOQVRFKF9fcGNpX2Rldl9mb3JfZWFjaF9yZXNvdXJjZV8sIENPVU5UX0FSR1MoX19WQV9B UkdTX18pKSBcCisJCSAgICAoZGV2LCByZXMsIF9fVkFfQVJHU19fKQorCiAvKgogICogU2ltaWxh ciB0byB0aGUgaGVscGVycyBhYm92ZSwgdGhlc2UgbWFuaXB1bGF0ZSBwZXItcGNpX2RldgogICog ZHJpdmVyLXNwZWNpZmljIGRhdGEuICBUaGV5IGFyZSByZWFsbHkganVzdCBhIHdyYXBwZXIgYXJv dW5kCi0tIAoyLjQwLjAuMS5nYWE4OTQ2MjE3YTBiCgoK