Date: Thu, 4 Feb 2016 18:48:49 +0000 From: "Sgalabov_gmail.com (Stanislav Galabov)" <phabric-noreply@FreeBSD.org> To: freebsd-mips@freebsd.org Subject: [Differential] [Updated, 745 lines] D5182: Introduce INTRNG support for MIPS Message-ID: <6cb69bbcde4ce7b2c3fdeebfb81f9de8@localhost.localdomain> In-Reply-To: <differential-rev-PHID-DREV-muscnzpiloxhx7x5i5tj-req@FreeBSD.org> References: <differential-rev-PHID-DREV-muscnzpiloxhx7x5i5tj-req@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--b1_6cb69bbcde4ce7b2c3fdeebfb81f9de8 Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: 8bit Sgalabov_gmail.com updated this revision to Diff 13018. Sgalabov_gmail.com added a comment. Renamed sys/mips/mips/intr.c to sys/mips/mips/mips_pic.c per Alexander Kabaev's request (sorry, I must have misunderstood what you meant originally). REPOSITORY rS FreeBSD src repository CHANGES SINCE LAST UPDATE https://reviews.freebsd.org/D5182?vs=13009&id=13018 REVISION DETAIL https://reviews.freebsd.org/D5182 AFFECTED FILES sys/conf/options.mips sys/mips/include/intr.h sys/mips/include/smp.h sys/mips/mips/exception.S sys/mips/mips/mips_pic.c sys/mips/mips/nexus.c EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: Sgalabov_gmail.com, MIPS, adrian, kan Cc: skra, imp, freebsd-mips-list --b1_6cb69bbcde4ce7b2c3fdeebfb81f9de8 Content-Type: text/x-patch; charset=utf-8; name="D5182.13018.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D5182.13018.patch" ZGlmZiAtLWdpdCBhL3N5cy9taXBzL21pcHMvbmV4dXMuYyBiL3N5cy9taXBzL21pcHMvbmV4dXMu YwotLS0gYS9zeXMvbWlwcy9taXBzL25leHVzLmMKKysrIGIvc3lzL21pcHMvbWlwcy9uZXh1cy5j CkBAIC0zNiw2ICszNiw3IEBACiAgKiB0aGlzIGNvZGUgaW1wbGVtZW50cyB0aGUgY29yZSByZXNv dXJjZSBtYW5hZ2VycyBmb3IgaW50ZXJydXB0CiAgKiByZXF1ZXN0cyBhbmQgbWVtb3J5IGFkZHJl c3Mgc3BhY2UuCiAgKi8KKyNpbmNsdWRlICJvcHRfcGxhdGZvcm0uaCIKIAogI2luY2x1ZGUgPHN5 cy9jZGVmcy5oPgogX19GQlNESUQoIiRGcmVlQlNEJCIpOwpAQCAtNTMsMTMgKzU0LDIzIEBACiAj aW5jbHVkZSA8dm0vcG1hcC5oPgogCiAjaW5jbHVkZSA8bWFjaGluZS9idXMuaD4KLSNpbmNsdWRl IDxtYWNoaW5lL2ludHJfbWFjaGRlcC5oPgogI2luY2x1ZGUgPG1hY2hpbmUvcG1hcC5oPgogI2lu Y2x1ZGUgPG1hY2hpbmUvcmVzb3VyY2UuaD4KICNpbmNsdWRlIDxtYWNoaW5lL3ZtcGFyYW0uaD4K IAorI2lmZGVmIE1JUFNfSU5UUk5HCisjaW5jbHVkZSA8bWFjaGluZS9pbnRyLmg+CisjZWxzZQor I2luY2x1ZGUgPG1hY2hpbmUvaW50cl9tYWNoZGVwLmg+CisjZW5kaWYKKwogI2luY2x1ZGUgIm9w dF9wbGF0Zm9ybS5oIgogCisjaWZkZWYgRkRUCisjaW5jbHVkZSA8bWFjaGluZS9mZHQuaD4KKyNp bmNsdWRlICJvZndfYnVzX2lmLmgiCisjZW5kaWYKKwogI3VuZGVmIE5FWFVTX0RFQlVHCiAjaWZk ZWYgTkVYVVNfREVCVUcKICNkZWZpbmUgZHByaW50ZiBwcmludGYKQEAgLTEwNyw2ICsxMTgsMTkg QEAKIAkJICAgIGRyaXZlcl9pbnRyX3QgKmludHIsIHZvaWQgKmFyZywgdm9pZCAqKmNvb2tpZXAp Owogc3RhdGljIGludAluZXh1c190ZWFyZG93bl9pbnRyKGRldmljZV90LCBkZXZpY2VfdCwgc3Ry dWN0IHJlc291cmNlICosCiAJCSAgICB2b2lkICopOworI2lmZGVmIE1JUFNfSU5UUk5HCisjaWZk ZWYgU01QCitzdGF0aWMgaW50CW5leHVzX2JpbmRfaW50cihkZXZpY2VfdCwgZGV2aWNlX3QsIHN0 cnVjdCByZXNvdXJjZSAqLCBpbnQpOworI2VuZGlmCisjaWZkZWYgRkRUCitzdGF0aWMgaW50CW5l eHVzX29md19tYXBfaW50cihkZXZpY2VfdCBkZXYsIGRldmljZV90IGNoaWxkLAorCQkgICAgcGhh bmRsZV90IGlwYXJlbnQsIGludCBpY2VsbHMsIHBjZWxsX3QgKmludHIpOworI2VuZGlmCitzdGF0 aWMgaW50CW5leHVzX2Rlc2NyaWJlX2ludHIoZGV2aWNlX3QgZGV2LCBkZXZpY2VfdCBjaGlsZCwK KwkJICAgIHN0cnVjdCByZXNvdXJjZSAqaXJxLCB2b2lkICpjb29raWUsIGNvbnN0IGNoYXIgKmRl c2NyKTsKK3N0YXRpYyBpbnQJbmV4dXNfY29uZmlnX2ludHIoZGV2aWNlX3QgZGV2LCBpbnQgaXJx LCBlbnVtIGludHJfdHJpZ2dlciB0cmlnLAorCQkgICAgZW51bSBpbnRyX3BvbGFyaXR5IHBvbCk7 CisjZW5kaWYKIAogc3RhdGljIGRldmljZV9tZXRob2RfdCBuZXh1c19tZXRob2RzW10gPSB7CiAJ LyogRGV2aWNlIGludGVyZmFjZSAqLwpAQCAtMTI3LDYgKzE1MSwxNiBAQAogCURFVk1FVEhPRChi dXNfYWN0aXZhdGVfcmVzb3VyY2UsbmV4dXNfYWN0aXZhdGVfcmVzb3VyY2UpLAogCURFVk1FVEhP RChidXNfZGVhY3RpdmF0ZV9yZXNvdXJjZSwJbmV4dXNfZGVhY3RpdmF0ZV9yZXNvdXJjZSksCiAJ REVWTUVUSE9EKGJ1c19oaW50ZWRfY2hpbGQsCW5leHVzX2hpbnRlZF9jaGlsZCksCisjaWZkZWYg TUlQU19JTlRSTkcKKwlERVZNRVRIT0QoYnVzX2NvbmZpZ19pbnRyLAluZXh1c19jb25maWdfaW50 ciksCisJREVWTUVUSE9EKGJ1c19kZXNjcmliZV9pbnRyLAluZXh1c19kZXNjcmliZV9pbnRyKSwK KyNpZmRlZiBTTVAKKwlERVZNRVRIT0QoYnVzX2JpbmRfaW50ciwJbmV4dXNfYmluZF9pbnRyKSwK KyNlbmRpZgorI2lmZGVmIEZEVAorCURFVk1FVEhPRChvZndfYnVzX21hcF9pbnRyLAluZXh1c19v ZndfbWFwX2ludHIpLAorI2VuZGlmCisjZW5kaWYKIAogCXsgMCwgMCB9CiB9OwpAQCAtNDE2LDkg KzQ1MCwxNiBAQAogbmV4dXNfc2V0dXBfaW50cihkZXZpY2VfdCBkZXYsIGRldmljZV90IGNoaWxk LCBzdHJ1Y3QgcmVzb3VyY2UgKnJlcywgaW50IGZsYWdzLAogICAgIGRyaXZlcl9maWx0ZXJfdCAq ZmlsdCwgZHJpdmVyX2ludHJfdCAqaW50ciwgdm9pZCAqYXJnLCB2b2lkICoqY29va2llcCkKIHsK LQlyZWdpc3Rlcl90IHM7CiAJaW50IGlycTsKIAorI2lmZGVmIE1JUFNfSU5UUk5HCisJZm9yIChp cnEgPSBybWFuX2dldF9zdGFydChyZXMpOyBpcnEgPD0gcm1hbl9nZXRfZW5kKHJlcyk7IGlycSsr KSB7CisJCWludHJfaXJxX2FkZF9oYW5kbGVyKGNoaWxkLCBmaWx0LCBpbnRyLCBhcmcsIGlycSwg ZmxhZ3MsCisJCSAgICBjb29raWVwKTsKKwl9CisjZWxzZQorCXJlZ2lzdGVyX3QgczsKKwogCXMg PSBpbnRyX2Rpc2FibGUoKTsKIAlpcnEgPSBybWFuX2dldF9zdGFydChyZXMpOwogCWlmIChpcnEg Pj0gTlVNX01JUFNfSVJRUykgewpAQCAtNDI5LDE2ICs0NzAsNTggQEAKIAljcHVfZXN0YWJsaXNo X2hhcmRpbnRyKGRldmljZV9nZXRfbmFtZXVuaXQoY2hpbGQpLCBmaWx0LCBpbnRyLCBhcmcsCiAJ ICAgIGlycSwgZmxhZ3MsIGNvb2tpZXApOwogCWludHJfcmVzdG9yZShzKTsKKyNlbmRpZgogCXJl dHVybiAoMCk7CiB9CiAKIHN0YXRpYyBpbnQKIG5leHVzX3RlYXJkb3duX2ludHIoZGV2aWNlX3Qg ZGV2LCBkZXZpY2VfdCBjaGlsZCwgc3RydWN0IHJlc291cmNlICpyLCB2b2lkICppaCkKIHsKIAor I2lmZGVmIE1JUFNfSU5UUk5HCisJcmV0dXJuIChpbnRyX2lycV9yZW1vdmVfaGFuZGxlcihjaGls ZCwgcm1hbl9nZXRfc3RhcnQociksIGloKSk7CisjZWxzZQogCXByaW50ZigiVW5pbXBsZW1lbnRl ZCAlcyBhdCAlczolZFxuIiwgX19mdW5jX18sIF9fRklMRV9fLCBfX0xJTkVfXyk7CiAJcmV0dXJu ICgwKTsKKyNlbmRpZgorfQorCisjaWZkZWYgTUlQU19JTlRSTkcKK3N0YXRpYyBpbnQKK25leHVz X2NvbmZpZ19pbnRyKGRldmljZV90IGRldiwgaW50IGlycSwgZW51bSBpbnRyX3RyaWdnZXIgdHJp ZywKKyAgICBlbnVtIGludHJfcG9sYXJpdHkgcG9sKQoreworCisJcmV0dXJuIChpbnRyX2lycV9j b25maWcoaXJxLCB0cmlnLCBwb2wpKTsKK30KKworc3RhdGljIGludAorbmV4dXNfZGVzY3JpYmVf aW50cihkZXZpY2VfdCBkZXYsIGRldmljZV90IGNoaWxkLCBzdHJ1Y3QgcmVzb3VyY2UgKmlycSwK KyAgICB2b2lkICpjb29raWUsIGNvbnN0IGNoYXIgKmRlc2NyKQoreworCisJcmV0dXJuIChpbnRy X2lycV9kZXNjcmliZShybWFuX2dldF9zdGFydChpcnEpLCBjb29raWUsIGRlc2NyKSk7Cit9CisK KyNpZmRlZiBTTVAKK3N0YXRpYyBpbnQKK25leHVzX2JpbmRfaW50cihkZXZpY2VfdCBkZXYsIGRl dmljZV90IGNoaWxkLCBzdHJ1Y3QgcmVzb3VyY2UgKmlycSwgaW50IGNwdSkKK3sKKworCXJldHVy biAoaW50cl9pcnFfYmluZChybWFuX2dldF9zdGFydChpcnEpLCBjcHUpKTsKK30KKyNlbmRpZgor CisjaWZkZWYgRkRUCitzdGF0aWMgaW50CituZXh1c19vZndfbWFwX2ludHIoZGV2aWNlX3QgZGV2 LCBkZXZpY2VfdCBjaGlsZCwgcGhhbmRsZV90IGlwYXJlbnQsIGludCBpY2VsbHMsCisgICAgcGNl bGxfdCAqaW50cikKK3sKKworCXJldHVybiAoaW50cl9mZHRfbWFwX2lycShpcGFyZW50LCBpbnRy LCBpY2VsbHMpKTsKIH0KKyNlbmRpZgorI2VuZGlmIC8qIE1JUFNfSU5UUk5HICovCiAKIHN0YXRp YyB2b2lkCiBuZXh1c19oaW50ZWRfY2hpbGQoZGV2aWNlX3QgYnVzLCBjb25zdCBjaGFyICpkbmFt ZSwgaW50IGR1bml0KQpkaWZmIC0tZ2l0IGEvc3lzL21pcHMvbWlwcy9taXBzX3BpYy5jIGIvc3lz L21pcHMvbWlwcy9taXBzX3BpYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci0tLSAvZGV2L251bGwK KysrIGIvc3lzL21pcHMvbWlwcy9taXBzX3BpYy5jCkBAIC0wLDAgKzEsNDkwIEBACisvKi0KKyAq IENvcHlyaWdodCAoYykgMjAxNSBBbGV4YW5kZXIgS2FiYWV2CisgKiBDb3B5cmlnaHQgKGMpIDIw MDYgT2xla3NhbmRyIFR5bW9zaGVua28KKyAqIENvcHlyaWdodCAoYykgMjAwMi0yMDA0IEp1bGkg TWFsbGV0dCA8am1hbGxldHRARnJlZUJTRC5vcmc+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgor ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0 cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMsIGFuZCB0aGUgZm9sbG93aW5n IGRpc2NsYWltZXIsCisgKiAgICB3aXRob3V0IG1vZGlmaWNhdGlvbiwgaW1tZWRpYXRlbHkgYXQg dGhlIGJlZ2lubmluZyBvZiB0aGUgZmlsZS4KKyAqIDIuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3Ig bWF5IG5vdCBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVy aXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9S IEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElF RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBB VVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElS RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAq IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT VUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBP TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisg KiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg QVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAq CisgKi8KKworI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgorX19GQlNESUQoIiRGcmVlQlNEJCIpOwor CisjaW5jbHVkZSAib3B0X3BsYXRmb3JtLmgiCisjaW5jbHVkZSAib3B0X2h3cG1jX2hvb2tzLmgi CisKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxzeXMvc3lzdG0uaD4KKyNpbmNs dWRlIDxzeXMvYnVzLmg+CisjaW5jbHVkZSA8c3lzL2tlcm5lbC5oPgorI2luY2x1ZGUgPHN5cy9r dHIuaD4KKyNpbmNsdWRlIDxzeXMvbW9kdWxlLmg+CisjaW5jbHVkZSA8c3lzL21hbGxvYy5oPgor I2luY2x1ZGUgPHN5cy9ybWFuLmg+CisjaW5jbHVkZSA8c3lzL3BjcHUuaD4KKyNpbmNsdWRlIDxz eXMvcHJvYy5oPgorI2luY2x1ZGUgPHN5cy9jcHVzZXQuaD4KKyNpbmNsdWRlIDxzeXMvbG9jay5o PgorI2luY2x1ZGUgPHN5cy9tdXRleC5oPgorI2luY2x1ZGUgPHN5cy9zbXAuaD4KKyNpbmNsdWRl IDxzeXMvc2NoZWQuaD4KKworI2luY2x1ZGUgPG1hY2hpbmUvYnVzLmg+CisjaW5jbHVkZSA8bWFj aGluZS9od2Z1bmMuaD4KKyNpbmNsdWRlIDxtYWNoaW5lL2ludHIuaD4KKyNpbmNsdWRlIDxtYWNo aW5lL3NtcC5oPgorCisjaW5jbHVkZSA8ZGV2L2ZkdC9mZHRfY29tbW9uLmg+CisjaW5jbHVkZSA8 ZGV2L29mdy9vcGVuZmlybS5oPgorI2luY2x1ZGUgPGRldi9vZncvb2Z3X2J1cy5oPgorI2luY2x1 ZGUgPGRldi9vZncvb2Z3X2J1c19zdWJyLmg+CisKKyNpbmNsdWRlICJwaWNfaWYuaCIKKworI2Rl ZmluZSBOSEFSRF9JUlFTCTYKKyNkZWZpbmUgTlNPRlRfSVJRUwkyCisjZGVmaW5lIE5SRUFMX0lS UVMJKE5IQVJEX0lSUVMgKyBOU09GVF9JUlFTKQorCitzdGF0aWMgaW50IG1pcHNfcGljX2ludHIo dm9pZCAqKTsKKworc3RydWN0IG1pcHNfcGljX3NvZnRjIHsKKwlkZXZpY2VfdAkJcGljX2RldjsK KwlzdHJ1Y3QgaW50cl9pcnFzcmMgKglwaWNfaXJxc1tOUkVBTF9JUlFTXTsKKwlzdHJ1Y3QgbXR4 CQltdXRleDsKKwl1aW50MzJfdAkJbmlycXM7Cit9OworCitzdGF0aWMgc3RydWN0IG1pcHNfcGlj X3NvZnRjICpwaWNfc2M7CisKK3N0YXRpYyBzdHJ1Y3Qgb2Z3X2NvbXBhdF9kYXRhIGNvbXBhdF9k YXRhW10gPSB7CisJeyJtdGksY3B1LWludGVycnVwdC1jb250cm9sbGVyIiwJdHJ1ZX0sCisJe05V TEwsCQkJCQlmYWxzZX0KK307CisKK3N0YXRpYyBpbnQKK21pcHNfcGljX3Byb2JlKGRldmljZV90 IGRldikKK3sKKworCWlmICghb2Z3X2J1c19zdGF0dXNfb2theShkZXYpKQorCQlyZXR1cm4gKEVO WElPKTsKKworCWlmICghb2Z3X2J1c19zZWFyY2hfY29tcGF0aWJsZShkZXYsIGNvbXBhdF9kYXRh KS0+b2NkX2RhdGEpCisJCXJldHVybiAoRU5YSU8pOworCWRldmljZV9zZXRfZGVzYyhkZXYsICJN SVBTMzIgSW50ZXJydXB0IENvbnRyb2xsZXIiKTsKKwlyZXR1cm4gKEJVU19QUk9CRV9ERUZBVUxU KTsKK30KKworc3RhdGljIGlubGluZSB2b2lkCitwaWNfaXJxX3VubWFzayhzdHJ1Y3QgbWlwc19w aWNfc29mdGMgKnNjLCB1X2ludCBpcnEpCit7CisKKwltaXBzX3dyX3N0YXR1cyhtaXBzX3JkX3N0 YXR1cygpIHwgKCgxIDw8IGlycSkgPDwgOCkpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK3Bp Y19pcnFfbWFzayhzdHJ1Y3QgbWlwc19waWNfc29mdGMgKnNjLCB1X2ludCBpcnEpCit7CisKKwlt aXBzX3dyX3N0YXR1cyhtaXBzX3JkX3N0YXR1cygpICYgfigoMSA8PCBpcnEpIDw8IDgpKTsKK30K KworI2lmZGVmIFNNUAorc3RhdGljIHZvaWQKK21pcHNfcGljX2luaXRfc2Vjb25kYXJ5KGRldmlj ZV90IGRldikKK3sKK30KKyNlbmRpZiAvKiBTTVAgKi8KKworc3RhdGljIGlubGluZSBpbnRwdHJf dAorcGljX3hyZWYoZGV2aWNlX3QgZGV2KQoreworI2lmZGVmIEZEVAorCXJldHVybiAoT0ZfeHJl Zl9mcm9tX25vZGUob2Z3X2J1c19nZXRfbm9kZShkZXYpKSk7CisjZWxzZQorCXJldHVybiAoMCk7 CisjZW5kaWYKK30KKworc3RhdGljIGludAorbWlwc19waWNfYXR0YWNoKGRldmljZV90IGRldikK K3sKKwlzdHJ1Y3QJCW1pcHNfcGljX3NvZnRjICpzYzsKKwlpbnRwdHJfdAl4cmVmID0gcGljX3hy ZWYoZGV2KTsKKworCWlmIChwaWNfc2MpCisJCXJldHVybiAoRU5YSU8pOworCisJc2MgPSBkZXZp Y2VfZ2V0X3NvZnRjKGRldik7CisKKwlzYy0+cGljX2RldiA9IGRldjsKKwlwaWNfc2MgPSBzYzsK KworCS8qIEluaXRpYWxpemUgbXV0ZXggKi8KKwltdHhfaW5pdCgmc2MtPm11dGV4LCAiUElDIGxv Y2siLCAiIiwgTVRYX1NQSU4pOworCisJLyogU2V0IHRoZSBudW1iZXIgb2YgaW50ZXJydXB0cyAq LworCXNjLT5uaXJxcyA9IG5pdGVtcyhzYy0+cGljX2lycXMpOworCisJLyoKKwkgKiBOb3csIHdo ZW4gZXZlcnl0aGluZyBpcyBpbml0aWFsaXplZCwgaXQncyByaWdodCB0aW1lIHRvCisJICogcmVn aXN0ZXIgaW50ZXJydXB0IGNvbnRyb2xsZXIgdG8gaW50ZXJydXB0IGZyYW1lZm9yay4KKwkgKi8K KwlpZiAoaW50cl9waWNfcmVnaXN0ZXIoZGV2LCB4cmVmKSAhPSAwKSB7CisJCWRldmljZV9wcmlu dGYoZGV2LCAiY291bGQgbm90IHJlZ2lzdGVyIFBJQ1xuIik7CisJCWdvdG8gY2xlYW51cDsKKwl9 CisKKwkvKiBDbGFpbSBvdXIgcm9vdCBjb250cm9sbGVyIHJvbGUgKi8KKwlpZiAoaW50cl9waWNf Y2xhaW1fcm9vdChkZXYsIHhyZWYsIG1pcHNfcGljX2ludHIsIHNjLCAwKSAhPSAwKSB7CisJCWRl dmljZV9wcmludGYoZGV2LCAiY291bGQgbm90IHNldCBQSUMgYXMgYSByb290XG4iKTsKKwkJaW50 cl9waWNfdW5yZWdpc3RlcihkZXYsIHhyZWYpOworCQlnb3RvIGNsZWFudXA7CisJfQorCisJcmV0 dXJuICgwKTsKKworY2xlYW51cDoKKwlyZXR1cm4oRU5YSU8pOworfQorCitpbnQKK21pcHNfcGlj X2ludHIodm9pZCAqYXJnKQoreworCXN0cnVjdCBtaXBzX3BpY19zb2Z0YyAqc2MgPSBhcmc7CisJ cmVnaXN0ZXJfdCBjYXVzZSwgc3RhdHVzOworCXN0cnVjdCBpbnRyX2lycXNyYyAqaXNyYzsKKwlp bnQgaSwgaW50cjsKKworCWNhdXNlID0gbWlwc19yZF9jYXVzZSgpOworCXN0YXR1cyA9IG1pcHNf cmRfc3RhdHVzKCk7CisJaW50ciA9IChjYXVzZSAmIE1JUFNfSU5UX01BU0spID4+IDg7CisJLyoK KwkgKiBEbyBub3QgaGFuZGxlIG1hc2tlZCBpbnRlcnJ1cHRzLiBUaGV5IHdlcmUgbWFza2VkIGJ5 CisJICogcHJlX2l0aHJlYWQgZnVuY3Rpb24gKG1pcHNfbWFza19YWFhfaW50cikgYW5kIHdpbGwg YmUKKwkgKiB1bm1hc2tlZCBvbmNlIGl0aHJlYWQgaXMgdGhyb3VnaCB3aXRoIGhhbmRsZXIKKwkg Ki8KKwlpbnRyICY9IChzdGF0dXMgJiBNSVBTX0lOVF9NQVNLKSA+PiA4OworCXdoaWxlICgoaSA9 IGZscyhpbnRyKSkgIT0gMCkgeworCQlpLS07IC8qIEdldCBhIDAtb2Zmc2V0IGludGVycnVwdC4g Ki8KKwkJaW50ciAmPSB+KDEgPDwgaSk7CisKKwkJaXNyYyA9IHNjLT5waWNfaXJxc1tpXTsKKwkJ aWYgKGlzcmMgPT0gTlVMTCkgeworCQkJZGV2aWNlX3ByaW50ZihzYy0+cGljX2RldiwKKwkJCSAg ICAiU3RyYXkgaW50ZXJydXB0ICV1IGRldGVjdGVkXG4iLCBpKTsKKwkJCXBpY19pcnFfbWFzayhz YywgaSk7CisJCQljb250aW51ZTsKKwkJfQorCisJCWludHJfaXJxX2Rpc3BhdGNoKGlzcmMsIGN1 cnRocmVhZC0+dGRfaW50cl9mcmFtZSk7CisJfQorCisJS0FTU0VSVChpID09IDAsICgiYWxsIGlu dGVycnVwdHMgaGFuZGxlZCIpKTsKKworI2lmZGVmIEhXUE1DX0hPT0tTCisJaWYgKHBtY19ob29r ICYmIChQQ1BVX0dFVChjdXJ0aHJlYWQpLT50ZF9wZmxhZ3MgJiBURFBfQ0FMTENIQUlOKSkKKwkJ cG1jX2hvb2soUENQVV9HRVQoY3VydGhyZWFkKSwgUE1DX0ZOX1VTRVJfQ0FMTENIQUlOLCB0Zik7 CisjZW5kaWYKKwlyZXR1cm4gKEZJTFRFUl9IQU5ETEVEKTsKK30KKworc3RhdGljIGludAorcGlj X2F0dGFjaF9pc3JjKHN0cnVjdCBtaXBzX3BpY19zb2Z0YyAqc2MsIHN0cnVjdCBpbnRyX2lycXNy YyAqaXNyYywgdV9pbnQgaXJxKQoreworCisJLyoKKwkgKiAxLiBUaGUgbGluayBiZXR3ZWVuIElT UkMgYW5kIGNvbnRyb2xsZXIgbXVzdCBiZSBzZXQgYXRvbWljYWxseS4KKwkgKiAyLiBKdXN0IGRv IHRoaW5ncyBvbmx5IG9uY2UgaW4gcmFyZSBjYXNlIHdoZW4gY29uc3VtZXJzCisJICogICAgb2Yg c2hhcmVkIGludGVycnVwdCBjYW1lIGhlcmUgYXQgdGhlIHNhbWUgbW9tZW50LgorCSAqLworCW10 eF9sb2NrX3NwaW4oJnNjLT5tdXRleCk7CisJaWYgKHNjLT5waWNfaXJxc1tpcnFdICE9IE5VTEwp IHsKKwkJbXR4X3VubG9ja19zcGluKCZzYy0+bXV0ZXgpOworCQlyZXR1cm4gKHNjLT5waWNfaXJx c1tpcnFdID09IGlzcmMgPyAwIDogRUVYSVNUKTsKKwl9CisJc2MtPnBpY19pcnFzW2lycV0gPSBp c3JjOworCWlzcmMtPmlzcmNfZGF0YSA9IGlycTsKKwltdHhfdW5sb2NrX3NwaW4oJnNjLT5tdXRl eCk7CisKKwlpZiAoaXJxIDwgTlNPRlRfSVJRUykKKwkJaW50cl9pcnFfc2V0X25hbWUoaXNyYywg InNpbnQldSIsIGlycSk7CisJZWxzZSBpZiAoaXJxIDwgTlJFQUxfSVJRUykKKwkJaW50cl9pcnFf c2V0X25hbWUoaXNyYywgImludCV1IiwgaXJxIC0gTlNPRlRfSVJRUyk7CisJZWxzZQorCQlwYW5p YygiSW52YWxpZCBpcnEgJXUiLCBpcnEpOworCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBpbnQK K3BpY19kZXRhY2hfaXNyYyhzdHJ1Y3QgbWlwc19waWNfc29mdGMgKnNjLCBzdHJ1Y3QgaW50cl9p cnFzcmMgKmlzcmMsIHVfaW50IGlycSkKK3sKKworCW10eF9sb2NrX3NwaW4oJnNjLT5tdXRleCk7 CisJaWYgKHNjLT5waWNfaXJxc1tpcnFdICE9IGlzcmMpIHsKKwkJbXR4X3VubG9ja19zcGluKCZz Yy0+bXV0ZXgpOworCQlyZXR1cm4gKHNjLT5waWNfaXJxc1tpcnFdID09IE5VTEwgPyAwIDogRUlO VkFMKTsKKwl9CisJc2MtPnBpY19pcnFzW2lycV0gPSBOVUxMOworCWlzcmMtPmlzcmNfZGF0YSA9 IDA7CisJbXR4X3VubG9ja19zcGluKCZzYy0+bXV0ZXgpOworCisJaW50cl9pcnFfc2V0X25hbWUo aXNyYywgIiVzIiwgIiIpOworCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBpbnQKK3BpY19pcnFf ZnJvbV9uc3BjKHN0cnVjdCBtaXBzX3BpY19zb2Z0YyAqc2MsIHVfaW50IHR5cGUsIHVfaW50IG51 bSwgdV9pbnQgKmlycXApCit7CisKKwlzd2l0Y2ggKHR5cGUpIHsKKwljYXNlIElOVFJfSVJRX05T UENfUExBSU46CisJCSppcnFwID0gbnVtOworCQlyZXR1cm4gKCppcnFwIDwgc2MtPm5pcnFzID8g MCA6IEVJTlZBTCk7CisKKwljYXNlIElOVFJfSVJRX05TUENfU1dJOgorCQkqaXJxcCA9IG51bTsK KwkJcmV0dXJuIChudW0gPCBOU09GVF9JUlFTID8gMCA6IEVJTlZBTCk7CisKKwljYXNlIElOVFJf SVJRX05TUENfSVJROgorCQkqaXJxcCA9IG51bSArIE5TT0ZUX0lSUVM7CisJCXJldHVybiAobnVt IDwgTkhBUkRfSVJRUyA/IDAgOiBFSU5WQUwpOworCisJZGVmYXVsdDoKKwkJcmV0dXJuIChFSU5W QUwpOworCX0KK30KKworc3RhdGljIGludAorcGljX21hcF9uc3BjKHN0cnVjdCBtaXBzX3BpY19z b2Z0YyAqc2MsIHN0cnVjdCBpbnRyX2lycXNyYyAqaXNyYywgdV9pbnQgKmlycXApCit7CisJaW50 IGVycm9yOworCisJZXJyb3IgPSBwaWNfaXJxX2Zyb21fbnNwYyhzYywgaXNyYy0+aXNyY19uc3Bj X3R5cGUsIGlzcmMtPmlzcmNfbnNwY19udW0sCisJICAgIGlycXApOworCWlmIChlcnJvciAhPSAw KQorCQlyZXR1cm4gKGVycm9yKTsKKwlyZXR1cm4gKHBpY19hdHRhY2hfaXNyYyhzYywgaXNyYywg KmlycXApKTsKK30KKworI2lmZGVmIEZEVAorc3RhdGljIGludAorcGljX21hcF9mZHQoc3RydWN0 IG1pcHNfcGljX3NvZnRjICpzYywgc3RydWN0IGludHJfaXJxc3JjICppc3JjLCB1X2ludCAqaXJx cCkKK3sKKwl1X2ludCBpcnE7CisJaW50IGVycm9yOworCisJaXJxID0gaXNyYy0+aXNyY19jZWxs c1swXTsKKworCWlmIChpcnEgPj0gc2MtPm5pcnFzKQorCQlyZXR1cm4gKEVJTlZBTCk7CisKKwll cnJvciA9IHBpY19hdHRhY2hfaXNyYyhzYywgaXNyYywgaXJxKTsKKwlpZiAoZXJyb3IgIT0gMCkK KwkJcmV0dXJuIChlcnJvcik7CisKKwlpc3JjLT5pc3JjX25zcGNfdHlwZSA9IElOVFJfSVJRX05T UENfUExBSU47CisJaXNyYy0+aXNyY19uc3BjX251bSA9IGlycTsKKwlpc3JjLT5pc3JjX3RyaWcg PSBJTlRSX1RSSUdHRVJfQ09ORk9STTsKKwlpc3JjLT5pc3JjX3BvbCA9IElOVFJfUE9MQVJJVFlf Q09ORk9STTsKKworCSppcnFwID0gaXJxOworCXJldHVybiAoMCk7Cit9CisjZW5kaWYKKworc3Rh dGljIGludAorbWlwc19waWNfcmVnaXN0ZXIoZGV2aWNlX3QgZGV2LCBzdHJ1Y3QgaW50cl9pcnFz cmMgKmlzcmMsIGJvb2xlYW5fdCAqaXNfcGVyY3B1KQoreworCXN0cnVjdCBtaXBzX3BpY19zb2Z0 YyAqc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7CisJdV9pbnQgaXJxOworCWludCBlcnJvcjsK KworCWlmIChpc3JjLT5pc3JjX3R5cGUgPT0gSU5UUl9JU1JDVF9OQU1FU1BBQ0UpCisJCWVycm9y ID0gcGljX21hcF9uc3BjKHNjLCBpc3JjLCAmaXJxKTsKKyNpZmRlZiBGRFQKKwllbHNlIGlmIChp c3JjLT5pc3JjX3R5cGUgPT0gSU5UUl9JU1JDVF9GRFQpCisJCWVycm9yID0gcGljX21hcF9mZHQo c2MsIGlzcmMsICZpcnEpOworI2VuZGlmCisJZWxzZQorCQlyZXR1cm4gKEVJTlZBTCk7CisKKwlp ZiAoZXJyb3IgPT0gMCkKKwkJKmlzX3BlcmNwdSA9IFRSVUU7CisJcmV0dXJuIChlcnJvcik7Cit9 CisKK3N0YXRpYyB2b2lkCittaXBzX3BpY19lbmFibGVfaW50cihkZXZpY2VfdCBkZXYsIHN0cnVj dCBpbnRyX2lycXNyYyAqaXNyYykKK3sKKworCWlmIChpc3JjLT5pc3JjX3RyaWcgPT0gSU5UUl9U UklHR0VSX0NPTkZPUk0pCisJCWlzcmMtPmlzcmNfdHJpZyA9IElOVFJfVFJJR0dFUl9MRVZFTDsK K30KKworc3RhdGljIHZvaWQKK21pcHNfcGljX2VuYWJsZV9zb3VyY2UoZGV2aWNlX3QgZGV2LCBz dHJ1Y3QgaW50cl9pcnFzcmMgKmlzcmMpCit7CisJc3RydWN0IG1pcHNfcGljX3NvZnRjICpzYyA9 IGRldmljZV9nZXRfc29mdGMoZGV2KTsKKwl1X2ludCBpcnEgPSBpc3JjLT5pc3JjX2RhdGE7CisK KwlwaWNfaXJxX3VubWFzayhzYywgaXJxKTsKK30KKworc3RhdGljIHZvaWQKK21pcHNfcGljX2Rp c2FibGVfc291cmNlKGRldmljZV90IGRldiwgc3RydWN0IGludHJfaXJxc3JjICppc3JjKQorewor CXN0cnVjdCBtaXBzX3BpY19zb2Z0YyAqc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7CisJdV9p bnQgaXJxID0gaXNyYy0+aXNyY19kYXRhOworCisJcGljX2lycV9tYXNrKHNjLCBpcnEpOworfQor CitzdGF0aWMgaW50CittaXBzX3BpY191bnJlZ2lzdGVyKGRldmljZV90IGRldiwgc3RydWN0IGlu dHJfaXJxc3JjICppc3JjKQoreworCXN0cnVjdCBtaXBzX3BpY19zb2Z0YyAqc2MgPSBkZXZpY2Vf Z2V0X3NvZnRjKGRldik7CisJdV9pbnQgaXJxID0gaXNyYy0+aXNyY19kYXRhOworCisJcmV0dXJu IChwaWNfZGV0YWNoX2lzcmMoc2MsIGlzcmMsIGlycSkpOworfQorCitzdGF0aWMgdm9pZAorbWlw c19waWNfcHJlX2l0aHJlYWQoZGV2aWNlX3QgZGV2LCBzdHJ1Y3QgaW50cl9pcnFzcmMgKmlzcmMp Cit7CisKKwltaXBzX3BpY19kaXNhYmxlX3NvdXJjZShkZXYsIGlzcmMpOworfQorCitzdGF0aWMg dm9pZAorbWlwc19waWNfcG9zdF9pdGhyZWFkKGRldmljZV90IGRldiwgc3RydWN0IGludHJfaXJx c3JjICppc3JjKQoreworCisJbWlwc19waWNfZW5hYmxlX3NvdXJjZShkZXYsIGlzcmMpOworfQor CitzdGF0aWMgdm9pZAorbWlwc19waWNfcG9zdF9maWx0ZXIoZGV2aWNlX3QgZGV2LCBzdHJ1Y3Qg aW50cl9pcnFzcmMgKmlzcmMpCit7Cit9CisKKyNpZmRlZiBTTVAKK3N0YXRpYyBpbnQKK21pcHNf cGljX2JpbmQoZGV2aWNlX3QgZGV2LCBzdHJ1Y3QgaW50cl9pcnFzcmMgKmlzcmMpCit7CisJcmV0 dXJuIChFT1BOT1RTVVBQKTsKK30KKworc3RhdGljIHZvaWQKK21pcHNfcGljX2lwaV9zZW5kKGRl dmljZV90IGRldiwgc3RydWN0IGludHJfaXJxc3JjICppc3JjLCBjcHVzZXRfdCBjcHVzKQorewor fQorI2VuZGlmCisKK3N0YXRpYyBkZXZpY2VfbWV0aG9kX3QgbWlwc19waWNfbWV0aG9kc1tdID0g eworCS8qIERldmljZSBpbnRlcmZhY2UgKi8KKwlERVZNRVRIT0QoZGV2aWNlX3Byb2JlLAkJbWlw c19waWNfcHJvYmUpLAorCURFVk1FVEhPRChkZXZpY2VfYXR0YWNoLAltaXBzX3BpY19hdHRhY2gp LAorCS8qIEludGVycnVwdCBjb250cm9sbGVyIGludGVyZmFjZSAqLworCURFVk1FVEhPRChwaWNf ZGlzYWJsZV9zb3VyY2UsCW1pcHNfcGljX2Rpc2FibGVfc291cmNlKSwKKwlERVZNRVRIT0QocGlj X2VuYWJsZV9pbnRyLAltaXBzX3BpY19lbmFibGVfaW50ciksCisJREVWTUVUSE9EKHBpY19lbmFi bGVfc291cmNlLAltaXBzX3BpY19lbmFibGVfc291cmNlKSwKKwlERVZNRVRIT0QocGljX3Bvc3Rf ZmlsdGVyLAltaXBzX3BpY19wb3N0X2ZpbHRlciksCisJREVWTUVUSE9EKHBpY19wb3N0X2l0aHJl YWQsCW1pcHNfcGljX3Bvc3RfaXRocmVhZCksCisJREVWTUVUSE9EKHBpY19wcmVfaXRocmVhZCwJ bWlwc19waWNfcHJlX2l0aHJlYWQpLAorCURFVk1FVEhPRChwaWNfcmVnaXN0ZXIsCQltaXBzX3Bp Y19yZWdpc3RlciksCisJREVWTUVUSE9EKHBpY191bnJlZ2lzdGVyLAltaXBzX3BpY191bnJlZ2lz dGVyKSwKKyNpZmRlZiBTTVAKKwlERVZNRVRIT0QocGljX2JpbmQsCQltaXBzX3BpY19iaW5kKSwK KwlERVZNRVRIT0QocGljX2luaXRfc2Vjb25kYXJ5LAltaXBzX3BpY19pbml0X3NlY29uZGFyeSks CisJREVWTUVUSE9EKHBpY19pcGlfc2VuZCwJCW1pcHNfcGljX2lwaV9zZW5kKSwKKyNlbmRpZgor CXsgMCwgMCB9Cit9OworCitzdGF0aWMgZHJpdmVyX3QgbWlwc19waWNfZHJpdmVyID0geworCSJt aXBzX3BpYyIsCisJbWlwc19waWNfbWV0aG9kcywKKwlzaXplb2Yoc3RydWN0IG1pcHNfcGljX3Nv ZnRjKSwKK307CisKK3N0YXRpYyBkZXZjbGFzc190IG1pcHNfcGljX2RldmNsYXNzOworCitEUklW RVJfTU9EVUxFKGNwdXBpYywgb2Z3YnVzLCBtaXBzX3BpY19kcml2ZXIsIG1pcHNfcGljX2RldmNs YXNzLCAwLCAwKTsKKwordm9pZAorY3B1X2luaXRfaW50ZXJydXB0cyh2b2lkKQoreworfQorCit2 b2lkCitjcHVfZXN0YWJsaXNoX2hhcmRpbnRyKGNvbnN0IGNoYXIgKm5hbWUsIGRyaXZlcl9maWx0 ZXJfdCAqZmlsdCwKKyAgICB2b2lkICgqaGFuZGxlcikodm9pZCopLCB2b2lkICphcmcsIGludCBp cnEsIGludCBmbGFncywgdm9pZCAqKmNvb2tpZXApCit7CisJdV9pbnQgdmVjOworCWludCByZXM7 CisKKwkvKgorCSAqIFdlIGhhdmUgNiBsZXZlbHMsIGJ1dCB0aGF0cyAwIC0gNSAobm90IGluY2x1 ZGluZyA2KQorCSAqLworCWlmIChpcnEgPCAwIHx8IGlycSA+PSBOSEFSRF9JUlFTKQorCQlwYW5p YygiJXMgY2FsbGVkIGZvciB1bmtub3duIGhhcmQgaW50ciAlZCIsIF9fZnVuY19fLCBpcnEpOwor CisJS0FTU0VSVChwaWNfc2MgIT0gTlVMTCwgKCIlczogbm8gcGljIiwgX19mdW5jX18pKTsKKwl2 ZWMgPSBpbnRyX25hbWVzcGFjZV9tYXBfaXJxKHBpY19zYy0+cGljX2RldiwgSU5UUl9JUlFfTlNQ Q19JUlEsIGlycSk7CisJS0FTU0VSVCh2ZWMgIT0gTklSUSwgKCJVbmFibGUgdG8gbWFwIGhhcmQg SVJRICVkXG4iLCBpcnEpKTsKKworCXJlcyA9IGludHJfaXJxX2FkZF9oYW5kbGVyKHBpY19zYy0+ cGljX2RldiwgZmlsdCwgaGFuZGxlciwgYXJnLCB2ZWMsCisJICAgIGZsYWdzLCBjb29raWVwKTsK KwlpZiAocmVzICE9IDApIHBhbmljKCJVbmFibGUgdG8gYWRkIGhhcmQgSVJRICVkIGhhbmRsZXIi LCBpcnEpOworCisJKHZvaWQpcGljX2lycV9mcm9tX25zcGMocGljX3NjLCBJTlRSX0lSUV9OU1BD X0lSUSwgaXJxLCAmdmVjKTsKKwlLQVNTRVJUKHBpY19zYy0+cGljX2lycXNbdmVjXSAhPSBOVUxM LAorCSAgICAoIkhhcmQgSVJRICVkIG5vdCByZWdpc3RlcmVkXG4iLCBpcnEpKTsKKwlpbnRyX2ly cV9zZXRfbmFtZShwaWNfc2MtPnBpY19pcnFzW3ZlY10sICIlcyIsIG5hbWUpOworfQorCit2b2lk CitjcHVfZXN0YWJsaXNoX3NvZnRpbnRyKGNvbnN0IGNoYXIgKm5hbWUsIGRyaXZlcl9maWx0ZXJf dCAqZmlsdCwKKyAgICB2b2lkICgqaGFuZGxlcikodm9pZCopLCB2b2lkICphcmcsIGludCBpcnEs IGludCBmbGFncywKKyAgICB2b2lkICoqY29va2llcCkKK3sKKwl1X2ludCB2ZWM7CisJaW50IHJl czsKKworCWlmIChpcnEgPCAwIHx8IGlycSA+IE5TT0ZUX0lSUVMpCisJCXBhbmljKCIlcyBjYWxs ZWQgZm9yIHVua25vd24gc29mdCBpbnRyICVkIiwgX19mdW5jX18sIGlycSk7CisKKwlLQVNTRVJU KHBpY19zYyAhPSBOVUxMLCAoIiVzOiBubyBwaWMiLCBfX2Z1bmNfXykpOworCXZlYyA9IGludHJf bmFtZXNwYWNlX21hcF9pcnEocGljX3NjLT5waWNfZGV2LCBJTlRSX0lSUV9OU1BDX1NXSSwgaXJx KTsKKwlLQVNTRVJUKHZlYyA8PSBOSVJRLCAoIlVuYWJsZSB0byBtYXAgc29mdCBJUlEgJWRcbiIs IGlycSkpOworCisJaW50cl9pcnFfYWRkX2hhbmRsZXIocGljX3NjLT5waWNfZGV2LCBmaWx0LCBo YW5kbGVyLCBhcmcsIHZlYywKKwkgICAgZmxhZ3MsIGNvb2tpZXApOworCWlmIChyZXMgIT0gMCkg cGFuaWMoIlVuYWJsZSB0byBhZGQgc29mdCBJUlEgJWQgaGFuZGxlciIsIGlycSk7CisKKwkodm9p ZClwaWNfaXJxX2Zyb21fbnNwYyhwaWNfc2MsIElOVFJfSVJRX05TUENfU1dJLCBpcnEsICZ2ZWMp OworCUtBU1NFUlQocGljX3NjLT5waWNfaXJxc1t2ZWNdICE9IE5VTEwsCisJICAgICgiU29mdCBJ UlEgJWQgbm90IHJlZ2lzdGVyZWRcbiIsIGlycSkpOworCWludHJfaXJxX3NldF9uYW1lKHBpY19z Yy0+cGljX2lycXNbdmVjXSwgIiVzIiwgbmFtZSk7Cit9CisKZGlmZiAtLWdpdCBhL3N5cy9taXBz L21pcHMvZXhjZXB0aW9uLlMgYi9zeXMvbWlwcy9taXBzL2V4Y2VwdGlvbi5TCi0tLSBhL3N5cy9t aXBzL21pcHMvZXhjZXB0aW9uLlMKKysrIGIvc3lzL21pcHMvbWlwcy9leGNlcHRpb24uUwpAQCAt NjQ2LDcgKzY0NiwxMSBAQAogICogIENhbGwgdGhlIGludGVycnVwdCBoYW5kbGVyLiBhMCBwb2lu dHMgYXQgdGhlIHNhdmVkIGZyYW1lLgogICovCiAJUFRSX0xBCWdwLCBfQ19MQUJFTChfZ3ApCisj aWZkZWYgTUlQU19JTlRSTkcKKwlQVFJfTEEJazAsIF9DX0xBQkVMKGludHJfaXJxX2hhbmRsZXIp CisjZWxzZQogCVBUUl9MQQlrMCwgX0NfTEFCRUwoY3B1X2ludHIpCisjZW5kaWYKIAlqYWxyCWsw CiAJUkVHX1MJYTMsIENBTExGUkFNRV9SQSArIEtFUk5fUkVHX1NJWkUoc3ApCQkjIGZvciBkZWJ1 Z2dpbmcKIApAQCAtNzU4LDcgKzc2MiwxMSBAQAogLyoKICAqIENhbGwgdGhlIGludGVycnVwdCBo YW5kbGVyLgogICovCisjaWZkZWYgTUlQU19JTlRSTkcKKwlQVFJfTEEJazAsIF9DX0xBQkVMKGlu dHJfaXJxX2hhbmRsZXIpCisjZWxzZQogCVBUUl9MQQlrMCwgX0NfTEFCRUwoY3B1X2ludHIpCisj ZW5kaWYKIAlqYWxyCWswCiAJUkVHX1MJYTMsIENBTExGUkFNRV9SQShzcCkJIyBmb3IgZGVidWdn aW5nCiAKQEAgLTExOTAsNiArMTE5OCw3IEBACiAJUFRSX0FERFUgc3AsIHNwLCBDQUxMRlJBTUVf U0laCiBFTkQoTWlwc0ZQVHJhcCkKIAorI2lmbmRlZiBNSVBTX0lOVFJORwogLyoKICAqIEludGVy cnVwdCBjb3VudGVycyBmb3Igdm1zdGF0LgogICovCkBAIC0xMjE2LDYgKzEyMjUsNyBAQAogI2Vs c2UKIAkuaW50ICBJTlRSQ05UX0NPVU5UICogKF9NSVBTX1NaTE9ORyAvIDgpICogMgogI2VuZGlm CisjZW5kaWYgLyogTUlQU19JTlRSTkcgKi8KIAogCiAvKgpkaWZmIC0tZ2l0IGEvc3lzL21pcHMv aW5jbHVkZS9zbXAuaCBiL3N5cy9taXBzL2luY2x1ZGUvc21wLmgKLS0tIGEvc3lzL21pcHMvaW5j bHVkZS9zbXAuaAorKysgYi9zeXMvbWlwcy9pbmNsdWRlL3NtcC5oCkBAIC0yMSw2ICsyMSwxMSBA QAogCiAjaW5jbHVkZSA8bWFjaGluZS9wY2IuaD4KIAorI2lmZGVmIE1JUFNfSU5UUk5HCisjIGRl ZmluZSBNSVBTX0lQSV9DT1VOVCAJMQorIyBkZWZpbmUgSU5UUl9JUElfQ09VTlQgCU1JUFNfSVBJ X0NPVU5UCisjZW5kaWYKKwogLyoKICAqIEludGVycHJvY2Vzc29yIGludGVycnVwdHMgZm9yIFNN UC4KICAqLwpkaWZmIC0tZ2l0IGEvc3lzL21pcHMvaW5jbHVkZS9pbnRyLmggYi9zeXMvbWlwcy9p bmNsdWRlL2ludHIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAotLS0gL2Rldi9udWxsCisrKyBiL3N5 cy9taXBzL2luY2x1ZGUvaW50ci5oCkBAIC0wLDAgKzEsMTQ5IEBACisvKiAJJE5ldEJTRDogaW50 ci5oLHYgMS43IDIwMDMvMDYvMTYgMjA6MDE6MDAgdGhvcnBlaiBFeHAgJAkqLworCisvKi0KKyAq IENvcHlyaWdodCAoYykgMTk5NyBNYXJrIEJyaW5pY29tYmUuCisgKiBBbGwgcmlnaHRzIHJlc2Vy dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5 cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg ZGlzdHJpYnV0aW9uLgorICogMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5n IGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCisgKiAgICBtdXN0IGRpc3BsYXkgdGhl IGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6CisgKglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29m dHdhcmUgZGV2ZWxvcGVkIGJ5IE1hcmsgQnJpbmljb21iZQorICoJZm9yIHRoZSBOZXRCU0QgUHJv amVjdC4KKyAqIDQuIFRoZSBuYW1lIG9mIHRoZSBjb21wYW55IG5vciB0aGUgbmFtZSBvZiB0aGUg YXV0aG9yIG1heSBiZSB1c2VkIHRvCisgKiAgICBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg ZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYworICogICAgcHJpb3Ig d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg VEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJB TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U SUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFIEFSRSBESVNDTEFJTUVELgorICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBP UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULAorICogSU5ESVJFQ1QsIElO Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV VEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJ TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H IElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICoKKyAqICRG cmVlQlNEJAorICoKKyAqLworCisjaWZuZGVmIF9NQUNISU5FX0lOVFJfSF8KKyNkZWZpbmUgX01B Q0hJTkVfSU5UUl9IXworCisjaWZkZWYgRkRUCisjaW5jbHVkZSA8ZGV2L29mdy9vcGVuZmlybS5o PgorI2VuZGlmCisKKyNpZm5kZWYgTklSUQorI2RlZmluZQlOSVJRCQkxMjgKKyNlbmRpZgorCisj aWZkZWYgbm90eWV0CisjZGVmaW5lCUlOVFJfU09MTwlJTlRSX01EMQordHlwZWRlZiBpbnQgaW50 cl9pcnFfZmlsdGVyX3Qodm9pZCAqYXJnLCBzdHJ1Y3QgdHJhcGZyYW1lICp0Zik7CisjZWxzZQor dHlwZWRlZiBpbnQgaW50cl9pcnFfZmlsdGVyX3Qodm9pZCAqYXJnKTsKKyNlbmRpZgorCisjZGVm aW5lIElOVFJfSVNSQ19OQU1FTEVOCShNQVhDT01MRU4gKyAxKQorCit0eXBlZGVmIHZvaWQgaW50 cl9pcGlfZmlsdGVyX3Qodm9pZCAqYXJnKTsKKworZW51bSBpbnRyX2lzcmNfdHlwZSB7CisJSU5U Ul9JU1JDVF9OQU1FU1BBQ0UsCisJSU5UUl9JU1JDVF9GRFQKK307CisKKyNkZWZpbmUgSU5UUl9J U1JDRl9SRUdJU1RFUkVECTB4MDEJLyogcmVnaXN0ZXJlZCBpbiBhIGNvbnRyb2xsZXIgKi8KKyNk ZWZpbmUgSU5UUl9JU1JDRl9QRVJDUFUJMHgwMgkvKiBwZXIgQ1BVIGludGVycnVwdCAqLworI2Rl ZmluZSBJTlRSX0lTUkNGX0JPVU5ECQkweDA0CS8qIGJvdW5kIHRvIGEgQ1BVICovCisKKy8qIElu dGVycnVwdCBzb3VyY2UgZGVmaW5pdGlvbi4gKi8KK3N0cnVjdCBpbnRyX2lycXNyYyB7CisJZGV2 aWNlX3QJCWlzcmNfZGV2OwkvKiB3aGVyZSBpc3JjIGlzIG1hcHBlZCAqLworCWludHB0cl90CQlp c3JjX3hyZWY7CS8qIGRldmljZSByZWZlcmVuY2Uga2V5ICovCisJdWludHB0cl90CQlpc3JjX2Rh dGE7CS8qIGRldmljZSBkYXRhIGZvciBpc3JjICovCisJdV9pbnQJCQlpc3JjX2lycTsJLyogdW5p cXVlIGlkZW50aWZpY2F0b3IgKi8KKwllbnVtIGludHJfaXNyY190eXBlCWlzcmNfdHlwZTsJLyog aG93IGlzIGlzcmMgZGVjcmliZWQgKi8KKwl1X2ludAkJCWlzcmNfZmxhZ3M7CisJY2hhcgkJCWlz cmNfbmFtZVtJTlRSX0lTUkNfTkFNRUxFTl07CisJdWludDE2X3QJCWlzcmNfbnNwY190eXBlOwor CXVpbnQxNl90CQlpc3JjX25zcGNfbnVtOworCWVudW0gaW50cl90cmlnZ2VyCWlzcmNfdHJpZzsK KwllbnVtIGludHJfcG9sYXJpdHkJaXNyY19wb2w7CisJY3B1c2V0X3QJCWlzcmNfY3B1OwkvKiBv biB3aGljaCBDUFVzIGlzIGVuYWJsZWQgKi8KKwl1X2ludAkJCWlzcmNfaW5kZXg7CisJdV9sb25n ICoJCWlzcmNfY291bnQ7CisJdV9pbnQJCQlpc3JjX2hhbmRsZXJzOworCXN0cnVjdCBpbnRyX2V2 ZW50ICoJaXNyY19ldmVudDsKKwlpbnRyX2lycV9maWx0ZXJfdCAqCWlzcmNfZmlsdGVyOworCWlu dHJfaXBpX2ZpbHRlcl90ICoJaXNyY19pcGlmaWx0ZXI7CisJdm9pZCAqCQkJaXNyY19hcmc7Cisj aWZkZWYgRkRUCisJdV9pbnQJCQlpc3JjX25jZWxsczsKKwlwY2VsbF90CQkJaXNyY19jZWxsc1td OwkvKiBsZWF2ZSBpdCBsYXN0ICovCisjZW5kaWYKK307CisKK3ZvaWQgaW50cl9pcnFfc2V0X25h bWUoc3RydWN0IGludHJfaXJxc3JjICppc3JjLCBjb25zdCBjaGFyICpmbXQsIC4uLikKKyAgICBf X3ByaW50Zmxpa2UoMiwgMyk7CisKK3ZvaWQgaW50cl9pcnFfZGlzcGF0Y2goc3RydWN0IGludHJf aXJxc3JjICppc3JjLCBzdHJ1Y3QgdHJhcGZyYW1lICp0Zik7CisKKyNkZWZpbmUgSU5UUl9JUlFf TlNQQ19OT05FCTAKKyNkZWZpbmUgSU5UUl9JUlFfTlNQQ19QTEFJTgkxCisjZGVmaW5lIElOVFJf SVJRX05TUENfSVJRCTIKKyNkZWZpbmUgSU5UUl9JUlFfTlNQQ19JUEkJMworI2RlZmluZSBJTlRS X0lSUV9OU1BDX1NXSQk0CisKK3VfaW50IGludHJfbmFtZXNwYWNlX21hcF9pcnEoZGV2aWNlX3Qg ZGV2LCB1aW50MTZfdCB0eXBlLCB1aW50MTZfdCBudW0pOworI2lmZGVmIEZEVAordV9pbnQgaW50 cl9mZHRfbWFwX2lycShwaGFuZGxlX3QsIHBjZWxsX3QgKiwgdV9pbnQpOworI2VuZGlmCisKK2lu dCBpbnRyX3BpY19yZWdpc3RlcihkZXZpY2VfdCBkZXYsIGludHB0cl90IHhyZWYpOworaW50IGlu dHJfcGljX3VucmVnaXN0ZXIoZGV2aWNlX3QgZGV2LCBpbnRwdHJfdCB4cmVmKTsKK2ludCBpbnRy X3BpY19jbGFpbV9yb290KGRldmljZV90IGRldiwgaW50cHRyX3QgeHJlZiwgaW50cl9pcnFfZmls dGVyX3QgKmZpbHRlciwKKyAgICB2b2lkICphcmcsIHVfaW50IGlwaWNvdW50KTsKKworaW50IGlu dHJfaXJxX2FkZF9oYW5kbGVyKGRldmljZV90IGRldiwgZHJpdmVyX2ZpbHRlcl90LCBkcml2ZXJf aW50cl90LCB2b2lkICosCisgICAgdV9pbnQsIGludCwgdm9pZCAqKik7CitpbnQgaW50cl9pcnFf cmVtb3ZlX2hhbmRsZXIoZGV2aWNlX3QgZGV2LCB1X2ludCwgdm9pZCAqKTsKK2ludCBpbnRyX2ly cV9jb25maWcodV9pbnQsIGVudW0gaW50cl90cmlnZ2VyLCBlbnVtIGludHJfcG9sYXJpdHkpOwor aW50IGludHJfaXJxX2Rlc2NyaWJlKHVfaW50LCB2b2lkICosIGNvbnN0IGNoYXIgKik7CisKK3Vf aW50IGludHJfaXJxX25leHRfY3B1KHVfaW50IGN1cnJlbnRfY3B1LCBjcHVzZXRfdCAqY3B1bWFz ayk7CisKKyNpZmRlZiBTTVAKK2ludCBpbnRyX2lycV9iaW5kKHVfaW50LCBpbnQpOworCit2b2lk IGludHJfaXBpX2Rpc3BhdGNoKHN0cnVjdCBpbnRyX2lycXNyYyAqaXNyYywgc3RydWN0IHRyYXBm cmFtZSAqdGYpOworCisjZGVmaW5lIEFJU0hGX05PQUxMT0MJMHgwMDAxCisKK2ludCBpbnRyX2lw aV9zZXRfaGFuZGxlcih1X2ludCBpcGksIGNvbnN0IGNoYXIgKm5hbWUsIGludHJfaXBpX2ZpbHRl cl90ICpmaWx0ZXIsCisgICAgdm9pZCAqYXJnLCB1X2ludCBmbGFncyk7CisKK3ZvaWQgaW50cl9w aWNfaW5pdF9zZWNvbmRhcnkodm9pZCk7CisjZW5kaWYKKworLyogTUlQUyBjb21wYXRpYmlsaXR5 IGZvciBsZWdhY3kgbWlwcyBjb2RlICovCit2b2lkIGNwdV9pbml0X2ludGVycnVwdHModm9pZCk7 Cit2b2lkIGNwdV9lc3RhYmxpc2hfaGFyZGludHIoY29uc3QgY2hhciAqLCBkcml2ZXJfZmlsdGVy X3QgKiwgZHJpdmVyX2ludHJfdCAqLAorICAgIHZvaWQgKiwgaW50LCBpbnQsIHZvaWQgKiopOwor dm9pZCBjcHVfZXN0YWJsaXNoX3NvZnRpbnRyKGNvbnN0IGNoYXIgKiwgZHJpdmVyX2ZpbHRlcl90 ICosIHZvaWQgKCopKHZvaWQqKSwKKyAgICB2b2lkICosIGludCwgaW50LCB2b2lkICoqKTsKKy8q IE1JUFMgaW50ZXJydXB0IEMgZW50cnkgcG9pbnQgKi8KK3ZvaWQgY3B1X2ludHIoc3RydWN0IHRy YXBmcmFtZSAqKTsKKworCisjZW5kaWYJLyogX01BQ0hJTkVfSU5UUl9IICovCmRpZmYgLS1naXQg YS9zeXMvY29uZi9vcHRpb25zLm1pcHMgYi9zeXMvY29uZi9vcHRpb25zLm1pcHMKLS0tIGEvc3lz L2NvbmYvb3B0aW9ucy5taXBzCisrKyBiL3N5cy9jb25mL29wdGlvbnMubWlwcwpAQCAtMTQwLDMg KzE0MCw3IEBACiAjIE9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlIHBtYXAuCiAjCiBQVl9TVEFUUwkJ b3B0X3BtYXAuaAorIworIyBPcHRpb25zIHRvIHVzZSBBUk1fSU5UUk5HIGNvZGUKKyMKK01JUFNf SU5UUk5HCQlvcHRfZ2xvYmFsLmgKCg== --b1_6cb69bbcde4ce7b2c3fdeebfb81f9de8--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6cb69bbcde4ce7b2c3fdeebfb81f9de8>