Date: Wed, 10 Feb 2016 08:39:51 +0000 From: "Sgalabov_gmail.com (Stanislav Galabov)" <phabric-noreply@FreeBSD.org> To: freebsd-mips@freebsd.org Subject: [Differential] [Updated, 685 lines] D5182: Introduce INTRNG support for MIPS Message-ID: <b89342436fcdc4d2366a5dc663b79c96@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_b89342436fcdc4d2366a5dc663b79c96 Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: 8bit Sgalabov_gmail.com updated this revision to Diff 13172. Sgalabov_gmail.com added a comment. Patch updated to use sys/sys/intr.h for the common parts between ARM and MIPS. Also, FDT-related headers are now conditionally included in order to allow MIPS systems that do not support FDT to move to INTRNG should they wish to. REPOSITORY rS FreeBSD src repository CHANGES SINCE LAST UPDATE https://reviews.freebsd.org/D5182?vs=13018&id=13172 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, kan, adrian Cc: skra, imp, freebsd-mips-list --b1_b89342436fcdc4d2366a5dc663b79c96 Content-Type: text/x-patch; charset=utf-8; name="D5182.13172.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D5182.13172.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 KysrIGIvc3lzL21pcHMvbWlwcy9taXBzX3BpYy5jCkBAIC0wLDAgKzEsNTEyIEBACisvKi0KKyAq 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 aW5lL3NtcC5oPgorCisjaWZkZWYgRkRUCisjaW5jbHVkZSA8ZGV2L2ZkdC9mZHRfY29tbW9uLmg+ CisjaW5jbHVkZSA8ZGV2L29mdy9vcGVuZmlybS5oPgorI2luY2x1ZGUgPGRldi9vZncvb2Z3X2J1 cy5oPgorI2luY2x1ZGUgPGRldi9vZncvb2Z3X2J1c19zdWJyLmg+CisjZW5kaWYKKworI2luY2x1 ZGUgInBpY19pZi5oIgorCisjZGVmaW5lIE5IQVJEX0lSUVMJNgorI2RlZmluZSBOU09GVF9JUlFT CTIKKyNkZWZpbmUgTlJFQUxfSVJRUwkoTkhBUkRfSVJRUyArIE5TT0ZUX0lSUVMpCisKK3N0YXRp YyBpbnQgbWlwc19waWNfaW50cih2b2lkICopOworCitzdHJ1Y3QgbWlwc19waWNfc29mdGMgewor CWRldmljZV90CQlwaWNfZGV2OworCXN0cnVjdCBpbnRyX2lycXNyYyAqCXBpY19pcnFzW05SRUFM X0lSUVNdOworCXN0cnVjdCBtdHgJCW11dGV4OworCXVpbnQzMl90CQluaXJxczsKK307CisKK3N0 YXRpYyBzdHJ1Y3QgbWlwc19waWNfc29mdGMgKnBpY19zYzsKKworI2lmZGVmIEZEVAorc3RhdGlj IHN0cnVjdCBvZndfY29tcGF0X2RhdGEgY29tcGF0X2RhdGFbXSA9IHsKKwl7Im10aSxjcHUtaW50 ZXJydXB0LWNvbnRyb2xsZXIiLAl0cnVlfSwKKwl7TlVMTCwJCQkJCWZhbHNlfQorfTsKKyNlbmRp ZgorCisjaWZuZGVmIEZEVAorc3RhdGljIHZvaWQKK21pcHNfcGljX2lkZW50aWZ5KGRyaXZlcl90 ICpkcnYsIGRldmljZV90IHBhcmVudCkKK3sKKworCUJVU19BRERfQ0hJTEQocGFyZW50LCAwLCAi Y3B1cGljIiwgMCk7Cit9CisjZW5kaWYKKworc3RhdGljIGludAorbWlwc19waWNfcHJvYmUoZGV2 aWNlX3QgZGV2KQoreworCisjaWZkZWYgRkRUCisJaWYgKCFvZndfYnVzX3N0YXR1c19va2F5KGRl dikpCisJCXJldHVybiAoRU5YSU8pOworCisJaWYgKCFvZndfYnVzX3NlYXJjaF9jb21wYXRpYmxl KGRldiwgY29tcGF0X2RhdGEpLT5vY2RfZGF0YSkKKwkJcmV0dXJuIChFTlhJTyk7CisjZW5kaWYK KwlkZXZpY2Vfc2V0X2Rlc2MoZGV2LCAiTUlQUzMyIEludGVycnVwdCBDb250cm9sbGVyIik7CisJ cmV0dXJuIChCVVNfUFJPQkVfREVGQVVMVCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorcGlj X2lycV91bm1hc2soc3RydWN0IG1pcHNfcGljX3NvZnRjICpzYywgdV9pbnQgaXJxKQoreworCisJ bWlwc193cl9zdGF0dXMobWlwc19yZF9zdGF0dXMoKSB8ICgoMSA8PCBpcnEpIDw8IDgpKTsKK30K Kworc3RhdGljIGlubGluZSB2b2lkCitwaWNfaXJxX21hc2soc3RydWN0IG1pcHNfcGljX3NvZnRj ICpzYywgdV9pbnQgaXJxKQoreworCisJbWlwc193cl9zdGF0dXMobWlwc19yZF9zdGF0dXMoKSAm IH4oKDEgPDwgaXJxKSA8PCA4KSk7Cit9CisKKyNpZmRlZiBTTVAKK3N0YXRpYyB2b2lkCittaXBz X3BpY19pbml0X3NlY29uZGFyeShkZXZpY2VfdCBkZXYpCit7Cit9CisjZW5kaWYgLyogU01QICov CisKK3N0YXRpYyBpbmxpbmUgaW50cHRyX3QKK3BpY194cmVmKGRldmljZV90IGRldikKK3sKKyNp ZmRlZiBGRFQKKwlyZXR1cm4gKE9GX3hyZWZfZnJvbV9ub2RlKG9md19idXNfZ2V0X25vZGUoZGV2 KSkpOworI2Vsc2UKKwlyZXR1cm4gKDApOworI2VuZGlmCit9CisKK3N0YXRpYyBpbnQKK21pcHNf cGljX2F0dGFjaChkZXZpY2VfdCBkZXYpCit7CisJc3RydWN0CQltaXBzX3BpY19zb2Z0YyAqc2M7 CisJaW50cHRyX3QJeHJlZiA9IHBpY194cmVmKGRldik7CisKKwlpZiAocGljX3NjKQorCQlyZXR1 cm4gKEVOWElPKTsKKworCXNjID0gZGV2aWNlX2dldF9zb2Z0YyhkZXYpOworCisJc2MtPnBpY19k ZXYgPSBkZXY7CisJcGljX3NjID0gc2M7CisKKwkvKiBJbml0aWFsaXplIG11dGV4ICovCisJbXR4 X2luaXQoJnNjLT5tdXRleCwgIlBJQyBsb2NrIiwgIiIsIE1UWF9TUElOKTsKKworCS8qIFNldCB0 aGUgbnVtYmVyIG9mIGludGVycnVwdHMgKi8KKwlzYy0+bmlycXMgPSBuaXRlbXMoc2MtPnBpY19p cnFzKTsKKworCS8qCisJICogTm93LCB3aGVuIGV2ZXJ5dGhpbmcgaXMgaW5pdGlhbGl6ZWQsIGl0 J3MgcmlnaHQgdGltZSB0bworCSAqIHJlZ2lzdGVyIGludGVycnVwdCBjb250cm9sbGVyIHRvIGlu dGVycnVwdCBmcmFtZWZvcmsuCisJICovCisJaWYgKGludHJfcGljX3JlZ2lzdGVyKGRldiwgeHJl ZikgIT0gMCkgeworCQlkZXZpY2VfcHJpbnRmKGRldiwgImNvdWxkIG5vdCByZWdpc3RlciBQSUNc biIpOworCQlnb3RvIGNsZWFudXA7CisJfQorCisJLyogQ2xhaW0gb3VyIHJvb3QgY29udHJvbGxl ciByb2xlICovCisJaWYgKGludHJfcGljX2NsYWltX3Jvb3QoZGV2LCB4cmVmLCBtaXBzX3BpY19p bnRyLCBzYywgMCkgIT0gMCkgeworCQlkZXZpY2VfcHJpbnRmKGRldiwgImNvdWxkIG5vdCBzZXQg UElDIGFzIGEgcm9vdFxuIik7CisJCWludHJfcGljX3VucmVnaXN0ZXIoZGV2LCB4cmVmKTsKKwkJ Z290byBjbGVhbnVwOworCX0KKworCXJldHVybiAoMCk7CisKK2NsZWFudXA6CisJcmV0dXJuKEVO WElPKTsKK30KKworaW50CittaXBzX3BpY19pbnRyKHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3QgbWlw c19waWNfc29mdGMgKnNjID0gYXJnOworCXJlZ2lzdGVyX3QgY2F1c2UsIHN0YXR1czsKKwlzdHJ1 Y3QgaW50cl9pcnFzcmMgKmlzcmM7CisJaW50IGksIGludHI7CisKKwljYXVzZSA9IG1pcHNfcmRf Y2F1c2UoKTsKKwlzdGF0dXMgPSBtaXBzX3JkX3N0YXR1cygpOworCWludHIgPSAoY2F1c2UgJiBN SVBTX0lOVF9NQVNLKSA+PiA4OworCS8qCisJICogRG8gbm90IGhhbmRsZSBtYXNrZWQgaW50ZXJy dXB0cy4gVGhleSB3ZXJlIG1hc2tlZCBieQorCSAqIHByZV9pdGhyZWFkIGZ1bmN0aW9uIChtaXBz X21hc2tfWFhYX2ludHIpIGFuZCB3aWxsIGJlCisJICogdW5tYXNrZWQgb25jZSBpdGhyZWFkIGlz IHRocm91Z2ggd2l0aCBoYW5kbGVyCisJICovCisJaW50ciAmPSAoc3RhdHVzICYgTUlQU19JTlRf TUFTSykgPj4gODsKKwl3aGlsZSAoKGkgPSBmbHMoaW50cikpICE9IDApIHsKKwkJaS0tOyAvKiBH ZXQgYSAwLW9mZnNldCBpbnRlcnJ1cHQuICovCisJCWludHIgJj0gfigxIDw8IGkpOworCisJCWlz cmMgPSBzYy0+cGljX2lycXNbaV07CisJCWlmIChpc3JjID09IE5VTEwpIHsKKwkJCWRldmljZV9w cmludGYoc2MtPnBpY19kZXYsCisJCQkgICAgIlN0cmF5IGludGVycnVwdCAldSBkZXRlY3RlZFxu IiwgaSk7CisJCQlwaWNfaXJxX21hc2soc2MsIGkpOworCQkJY29udGludWU7CisJCX0KKworCQlp bnRyX2lycV9kaXNwYXRjaChpc3JjLCBjdXJ0aHJlYWQtPnRkX2ludHJfZnJhbWUpOworCX0KKwor CUtBU1NFUlQoaSA9PSAwLCAoImFsbCBpbnRlcnJ1cHRzIGhhbmRsZWQiKSk7CisKKyNpZmRlZiBI V1BNQ19IT09LUworCWlmIChwbWNfaG9vayAmJiAoUENQVV9HRVQoY3VydGhyZWFkKS0+dGRfcGZs YWdzICYgVERQX0NBTExDSEFJTikpCisJCXBtY19ob29rKFBDUFVfR0VUKGN1cnRocmVhZCksIFBN Q19GTl9VU0VSX0NBTExDSEFJTiwgdGYpOworI2VuZGlmCisJcmV0dXJuIChGSUxURVJfSEFORExF RCk7Cit9CisKK3N0YXRpYyBpbnQKK3BpY19hdHRhY2hfaXNyYyhzdHJ1Y3QgbWlwc19waWNfc29m dGMgKnNjLCBzdHJ1Y3QgaW50cl9pcnFzcmMgKmlzcmMsIHVfaW50IGlycSkKK3sKKworCS8qCisJ ICogMS4gVGhlIGxpbmsgYmV0d2VlbiBJU1JDIGFuZCBjb250cm9sbGVyIG11c3QgYmUgc2V0IGF0 b21pY2FsbHkuCisJICogMi4gSnVzdCBkbyB0aGluZ3Mgb25seSBvbmNlIGluIHJhcmUgY2FzZSB3 aGVuIGNvbnN1bWVycworCSAqICAgIG9mIHNoYXJlZCBpbnRlcnJ1cHQgY2FtZSBoZXJlIGF0IHRo ZSBzYW1lIG1vbWVudC4KKwkgKi8KKwltdHhfbG9ja19zcGluKCZzYy0+bXV0ZXgpOworCWlmIChz Yy0+cGljX2lycXNbaXJxXSAhPSBOVUxMKSB7CisJCW10eF91bmxvY2tfc3Bpbigmc2MtPm11dGV4 KTsKKwkJcmV0dXJuIChzYy0+cGljX2lycXNbaXJxXSA9PSBpc3JjID8gMCA6IEVFWElTVCk7CisJ fQorCXNjLT5waWNfaXJxc1tpcnFdID0gaXNyYzsKKwlpc3JjLT5pc3JjX2RhdGEgPSBpcnE7CisJ bXR4X3VubG9ja19zcGluKCZzYy0+bXV0ZXgpOworCisJaWYgKGlycSA8IE5TT0ZUX0lSUVMpCisJ CWludHJfaXJxX3NldF9uYW1lKGlzcmMsICJzaW50JXUiLCBpcnEpOworCWVsc2UgaWYgKGlycSA8 IE5SRUFMX0lSUVMpCisJCWludHJfaXJxX3NldF9uYW1lKGlzcmMsICJpbnQldSIsIGlycSAtIE5T T0ZUX0lSUVMpOworCWVsc2UKKwkJcGFuaWMoIkludmFsaWQgaXJxICV1IiwgaXJxKTsKKwlyZXR1 cm4gKDApOworfQorCitzdGF0aWMgaW50CitwaWNfZGV0YWNoX2lzcmMoc3RydWN0IG1pcHNfcGlj X3NvZnRjICpzYywgc3RydWN0IGludHJfaXJxc3JjICppc3JjLCB1X2ludCBpcnEpCit7CisKKwlt dHhfbG9ja19zcGluKCZzYy0+bXV0ZXgpOworCWlmIChzYy0+cGljX2lycXNbaXJxXSAhPSBpc3Jj KSB7CisJCW10eF91bmxvY2tfc3Bpbigmc2MtPm11dGV4KTsKKwkJcmV0dXJuIChzYy0+cGljX2ly cXNbaXJxXSA9PSBOVUxMID8gMCA6IEVJTlZBTCk7CisJfQorCXNjLT5waWNfaXJxc1tpcnFdID0g TlVMTDsKKwlpc3JjLT5pc3JjX2RhdGEgPSAwOworCW10eF91bmxvY2tfc3Bpbigmc2MtPm11dGV4 KTsKKworCWludHJfaXJxX3NldF9uYW1lKGlzcmMsICIlcyIsICIiKTsKKwlyZXR1cm4gKDApOwor fQorCitzdGF0aWMgaW50CitwaWNfaXJxX2Zyb21fbnNwYyhzdHJ1Y3QgbWlwc19waWNfc29mdGMg KnNjLCB1X2ludCB0eXBlLCB1X2ludCBudW0sIHVfaW50ICppcnFwKQoreworCisJc3dpdGNoICh0 eXBlKSB7CisJY2FzZSBJTlRSX0lSUV9OU1BDX1BMQUlOOgorCQkqaXJxcCA9IG51bTsKKwkJcmV0 dXJuICgqaXJxcCA8IHNjLT5uaXJxcyA/IDAgOiBFSU5WQUwpOworCisJY2FzZSBJTlRSX0lSUV9O U1BDX1NXSToKKwkJKmlycXAgPSBudW07CisJCXJldHVybiAobnVtIDwgTlNPRlRfSVJRUyA/IDAg OiBFSU5WQUwpOworCisJY2FzZSBJTlRSX0lSUV9OU1BDX0lSUToKKwkJKmlycXAgPSBudW0gKyBO U09GVF9JUlFTOworCQlyZXR1cm4gKG51bSA8IE5IQVJEX0lSUVMgPyAwIDogRUlOVkFMKTsKKwor CWRlZmF1bHQ6CisJCXJldHVybiAoRUlOVkFMKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQKK3BpY19t YXBfbnNwYyhzdHJ1Y3QgbWlwc19waWNfc29mdGMgKnNjLCBzdHJ1Y3QgaW50cl9pcnFzcmMgKmlz cmMsIHVfaW50ICppcnFwKQoreworCWludCBlcnJvcjsKKworCWVycm9yID0gcGljX2lycV9mcm9t X25zcGMoc2MsIGlzcmMtPmlzcmNfbnNwY190eXBlLCBpc3JjLT5pc3JjX25zcGNfbnVtLAorCSAg ICBpcnFwKTsKKwlpZiAoZXJyb3IgIT0gMCkKKwkJcmV0dXJuIChlcnJvcik7CisJcmV0dXJuIChw aWNfYXR0YWNoX2lzcmMoc2MsIGlzcmMsICppcnFwKSk7Cit9CisKKyNpZmRlZiBGRFQKK3N0YXRp YyBpbnQKK3BpY19tYXBfZmR0KHN0cnVjdCBtaXBzX3BpY19zb2Z0YyAqc2MsIHN0cnVjdCBpbnRy X2lycXNyYyAqaXNyYywgdV9pbnQgKmlycXApCit7CisJdV9pbnQgaXJxOworCWludCBlcnJvcjsK KworCWlycSA9IGlzcmMtPmlzcmNfY2VsbHNbMF07CisKKwlpZiAoaXJxID49IHNjLT5uaXJxcykK KwkJcmV0dXJuIChFSU5WQUwpOworCisJZXJyb3IgPSBwaWNfYXR0YWNoX2lzcmMoc2MsIGlzcmMs IGlycSk7CisJaWYgKGVycm9yICE9IDApCisJCXJldHVybiAoZXJyb3IpOworCisJaXNyYy0+aXNy Y19uc3BjX3R5cGUgPSBJTlRSX0lSUV9OU1BDX1BMQUlOOworCWlzcmMtPmlzcmNfbnNwY19udW0g PSBpcnE7CisJaXNyYy0+aXNyY190cmlnID0gSU5UUl9UUklHR0VSX0NPTkZPUk07CisJaXNyYy0+ aXNyY19wb2wgPSBJTlRSX1BPTEFSSVRZX0NPTkZPUk07CisKKwkqaXJxcCA9IGlycTsKKwlyZXR1 cm4gKDApOworfQorI2VuZGlmCisKK3N0YXRpYyBpbnQKK21pcHNfcGljX3JlZ2lzdGVyKGRldmlj ZV90IGRldiwgc3RydWN0IGludHJfaXJxc3JjICppc3JjLCBib29sZWFuX3QgKmlzX3BlcmNwdSkK K3sKKwlzdHJ1Y3QgbWlwc19waWNfc29mdGMgKnNjID0gZGV2aWNlX2dldF9zb2Z0YyhkZXYpOwor CXVfaW50IGlycTsKKwlpbnQgZXJyb3I7CisKKwlpZiAoaXNyYy0+aXNyY190eXBlID09IElOVFJf SVNSQ1RfTkFNRVNQQUNFKQorCQllcnJvciA9IHBpY19tYXBfbnNwYyhzYywgaXNyYywgJmlycSk7 CisjaWZkZWYgRkRUCisJZWxzZSBpZiAoaXNyYy0+aXNyY190eXBlID09IElOVFJfSVNSQ1RfRkRU KQorCQllcnJvciA9IHBpY19tYXBfZmR0KHNjLCBpc3JjLCAmaXJxKTsKKyNlbmRpZgorCWVsc2UK KwkJcmV0dXJuIChFSU5WQUwpOworCisJaWYgKGVycm9yID09IDApCisJCSppc19wZXJjcHUgPSBU UlVFOworCXJldHVybiAoZXJyb3IpOworfQorCitzdGF0aWMgdm9pZAorbWlwc19waWNfZW5hYmxl X2ludHIoZGV2aWNlX3QgZGV2LCBzdHJ1Y3QgaW50cl9pcnFzcmMgKmlzcmMpCit7CisKKwlpZiAo aXNyYy0+aXNyY190cmlnID09IElOVFJfVFJJR0dFUl9DT05GT1JNKQorCQlpc3JjLT5pc3JjX3Ry aWcgPSBJTlRSX1RSSUdHRVJfTEVWRUw7Cit9CisKK3N0YXRpYyB2b2lkCittaXBzX3BpY19lbmFi bGVfc291cmNlKGRldmljZV90IGRldiwgc3RydWN0IGludHJfaXJxc3JjICppc3JjKQoreworCXN0 cnVjdCBtaXBzX3BpY19zb2Z0YyAqc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7CisJdV9pbnQg aXJxID0gaXNyYy0+aXNyY19kYXRhOworCisJcGljX2lycV91bm1hc2soc2MsIGlycSk7Cit9CisK K3N0YXRpYyB2b2lkCittaXBzX3BpY19kaXNhYmxlX3NvdXJjZShkZXZpY2VfdCBkZXYsIHN0cnVj dCBpbnRyX2lycXNyYyAqaXNyYykKK3sKKwlzdHJ1Y3QgbWlwc19waWNfc29mdGMgKnNjID0gZGV2 aWNlX2dldF9zb2Z0YyhkZXYpOworCXVfaW50IGlycSA9IGlzcmMtPmlzcmNfZGF0YTsKKworCXBp Y19pcnFfbWFzayhzYywgaXJxKTsKK30KKworc3RhdGljIGludAorbWlwc19waWNfdW5yZWdpc3Rl cihkZXZpY2VfdCBkZXYsIHN0cnVjdCBpbnRyX2lycXNyYyAqaXNyYykKK3sKKwlzdHJ1Y3QgbWlw c19waWNfc29mdGMgKnNjID0gZGV2aWNlX2dldF9zb2Z0YyhkZXYpOworCXVfaW50IGlycSA9IGlz cmMtPmlzcmNfZGF0YTsKKworCXJldHVybiAocGljX2RldGFjaF9pc3JjKHNjLCBpc3JjLCBpcnEp KTsKK30KKworc3RhdGljIHZvaWQKK21pcHNfcGljX3ByZV9pdGhyZWFkKGRldmljZV90IGRldiwg c3RydWN0IGludHJfaXJxc3JjICppc3JjKQoreworCisJbWlwc19waWNfZGlzYWJsZV9zb3VyY2Uo ZGV2LCBpc3JjKTsKK30KKworc3RhdGljIHZvaWQKK21pcHNfcGljX3Bvc3RfaXRocmVhZChkZXZp Y2VfdCBkZXYsIHN0cnVjdCBpbnRyX2lycXNyYyAqaXNyYykKK3sKKworCW1pcHNfcGljX2VuYWJs ZV9zb3VyY2UoZGV2LCBpc3JjKTsKK30KKworc3RhdGljIHZvaWQKK21pcHNfcGljX3Bvc3RfZmls dGVyKGRldmljZV90IGRldiwgc3RydWN0IGludHJfaXJxc3JjICppc3JjKQoreworfQorCisjaWZk ZWYgU01QCitzdGF0aWMgaW50CittaXBzX3BpY19iaW5kKGRldmljZV90IGRldiwgc3RydWN0IGlu dHJfaXJxc3JjICppc3JjKQoreworCXJldHVybiAoRU9QTk9UU1VQUCk7Cit9CisKK3N0YXRpYyB2 b2lkCittaXBzX3BpY19pcGlfc2VuZChkZXZpY2VfdCBkZXYsIHN0cnVjdCBpbnRyX2lycXNyYyAq aXNyYywgY3B1c2V0X3QgY3B1cykKK3sKK30KKyNlbmRpZgorCitzdGF0aWMgZGV2aWNlX21ldGhv ZF90IG1pcHNfcGljX21ldGhvZHNbXSA9IHsKKwkvKiBEZXZpY2UgaW50ZXJmYWNlICovCisjaWZu ZGVmIEZEVAorCURFVk1FVEhPRChkZXZpY2VfaWRlbnRpZnksCW1pcHNfcGljX2lkZW50aWZ5KSwK KyNlbmRpZgorCURFVk1FVEhPRChkZXZpY2VfcHJvYmUsCQltaXBzX3BpY19wcm9iZSksCisJREVW TUVUSE9EKGRldmljZV9hdHRhY2gsCW1pcHNfcGljX2F0dGFjaCksCisJLyogSW50ZXJydXB0IGNv bnRyb2xsZXIgaW50ZXJmYWNlICovCisJREVWTUVUSE9EKHBpY19kaXNhYmxlX3NvdXJjZSwJbWlw c19waWNfZGlzYWJsZV9zb3VyY2UpLAorCURFVk1FVEhPRChwaWNfZW5hYmxlX2ludHIsCW1pcHNf cGljX2VuYWJsZV9pbnRyKSwKKwlERVZNRVRIT0QocGljX2VuYWJsZV9zb3VyY2UsCW1pcHNfcGlj X2VuYWJsZV9zb3VyY2UpLAorCURFVk1FVEhPRChwaWNfcG9zdF9maWx0ZXIsCW1pcHNfcGljX3Bv c3RfZmlsdGVyKSwKKwlERVZNRVRIT0QocGljX3Bvc3RfaXRocmVhZCwJbWlwc19waWNfcG9zdF9p dGhyZWFkKSwKKwlERVZNRVRIT0QocGljX3ByZV9pdGhyZWFkLAltaXBzX3BpY19wcmVfaXRocmVh ZCksCisJREVWTUVUSE9EKHBpY19yZWdpc3RlciwJCW1pcHNfcGljX3JlZ2lzdGVyKSwKKwlERVZN RVRIT0QocGljX3VucmVnaXN0ZXIsCW1pcHNfcGljX3VucmVnaXN0ZXIpLAorI2lmZGVmIFNNUAor CURFVk1FVEhPRChwaWNfYmluZCwJCW1pcHNfcGljX2JpbmQpLAorCURFVk1FVEhPRChwaWNfaW5p dF9zZWNvbmRhcnksCW1pcHNfcGljX2luaXRfc2Vjb25kYXJ5KSwKKwlERVZNRVRIT0QocGljX2lw aV9zZW5kLAkJbWlwc19waWNfaXBpX3NlbmQpLAorI2VuZGlmCisJeyAwLCAwIH0KK307CisKK3N0 YXRpYyBkcml2ZXJfdCBtaXBzX3BpY19kcml2ZXIgPSB7CisJImNwdXBpYyIsCisJbWlwc19waWNf bWV0aG9kcywKKwlzaXplb2Yoc3RydWN0IG1pcHNfcGljX3NvZnRjKSwKK307CisKK3N0YXRpYyBk ZXZjbGFzc190IG1pcHNfcGljX2RldmNsYXNzOworCisjaWZkZWYgRkRUCitEUklWRVJfTU9EVUxF KGNwdXBpYywgb2Z3YnVzLCBtaXBzX3BpY19kcml2ZXIsIG1pcHNfcGljX2RldmNsYXNzLCAwLCAw KTsKKyNlbHNlCitEUklWRVJfTU9EVUxFKGNwdXBpYywgbmV4dXMsIG1pcHNfcGljX2RyaXZlciwg bWlwc19waWNfZGV2Y2xhc3MsIDAsIDApOworI2VuZGlmCisKK3ZvaWQKK2NwdV9pbml0X2ludGVy cnVwdHModm9pZCkKK3sKK30KKwordm9pZAorY3B1X2VzdGFibGlzaF9oYXJkaW50cihjb25zdCBj aGFyICpuYW1lLCBkcml2ZXJfZmlsdGVyX3QgKmZpbHQsCisgICAgdm9pZCAoKmhhbmRsZXIpKHZv aWQqKSwgdm9pZCAqYXJnLCBpbnQgaXJxLCBpbnQgZmxhZ3MsIHZvaWQgKipjb29raWVwKQorewor CXVfaW50IHZlYzsKKwlpbnQgcmVzOworCisJLyoKKwkgKiBXZSBoYXZlIDYgbGV2ZWxzLCBidXQg dGhhdHMgMCAtIDUgKG5vdCBpbmNsdWRpbmcgNikKKwkgKi8KKwlpZiAoaXJxIDwgMCB8fCBpcnEg Pj0gTkhBUkRfSVJRUykKKwkJcGFuaWMoIiVzIGNhbGxlZCBmb3IgdW5rbm93biBoYXJkIGludHIg JWQiLCBfX2Z1bmNfXywgaXJxKTsKKworCUtBU1NFUlQocGljX3NjICE9IE5VTEwsICgiJXM6IG5v IHBpYyIsIF9fZnVuY19fKSk7CisJdmVjID0gaW50cl9uYW1lc3BhY2VfbWFwX2lycShwaWNfc2Mt PnBpY19kZXYsIElOVFJfSVJRX05TUENfSVJRLCBpcnEpOworCUtBU1NFUlQodmVjICE9IE5JUlEs ICgiVW5hYmxlIHRvIG1hcCBoYXJkIElSUSAlZFxuIiwgaXJxKSk7CisKKwlyZXMgPSBpbnRyX2ly cV9hZGRfaGFuZGxlcihwaWNfc2MtPnBpY19kZXYsIGZpbHQsIGhhbmRsZXIsIGFyZywgdmVjLAor CSAgICBmbGFncywgY29va2llcCk7CisJaWYgKHJlcyAhPSAwKSBwYW5pYygiVW5hYmxlIHRvIGFk ZCBoYXJkIElSUSAlZCBoYW5kbGVyIiwgaXJxKTsKKworCSh2b2lkKXBpY19pcnFfZnJvbV9uc3Bj KHBpY19zYywgSU5UUl9JUlFfTlNQQ19JUlEsIGlycSwgJnZlYyk7CisJS0FTU0VSVChwaWNfc2Mt PnBpY19pcnFzW3ZlY10gIT0gTlVMTCwKKwkgICAgKCJIYXJkIElSUSAlZCBub3QgcmVnaXN0ZXJl ZFxuIiwgaXJxKSk7CisJaW50cl9pcnFfc2V0X25hbWUocGljX3NjLT5waWNfaXJxc1t2ZWNdLCAi JXMiLCBuYW1lKTsKK30KKwordm9pZAorY3B1X2VzdGFibGlzaF9zb2Z0aW50cihjb25zdCBjaGFy ICpuYW1lLCBkcml2ZXJfZmlsdGVyX3QgKmZpbHQsCisgICAgdm9pZCAoKmhhbmRsZXIpKHZvaWQq KSwgdm9pZCAqYXJnLCBpbnQgaXJxLCBpbnQgZmxhZ3MsCisgICAgdm9pZCAqKmNvb2tpZXApCit7 CisJdV9pbnQgdmVjOworCWludCByZXM7CisKKwlpZiAoaXJxIDwgMCB8fCBpcnEgPiBOU09GVF9J UlFTKQorCQlwYW5pYygiJXMgY2FsbGVkIGZvciB1bmtub3duIHNvZnQgaW50ciAlZCIsIF9fZnVu Y19fLCBpcnEpOworCisJS0FTU0VSVChwaWNfc2MgIT0gTlVMTCwgKCIlczogbm8gcGljIiwgX19m dW5jX18pKTsKKwl2ZWMgPSBpbnRyX25hbWVzcGFjZV9tYXBfaXJxKHBpY19zYy0+cGljX2Rldiwg SU5UUl9JUlFfTlNQQ19TV0ksIGlycSk7CisJS0FTU0VSVCh2ZWMgPD0gTklSUSwgKCJVbmFibGUg dG8gbWFwIHNvZnQgSVJRICVkXG4iLCBpcnEpKTsKKworCWludHJfaXJxX2FkZF9oYW5kbGVyKHBp Y19zYy0+cGljX2RldiwgZmlsdCwgaGFuZGxlciwgYXJnLCB2ZWMsCisJICAgIGZsYWdzLCBjb29r aWVwKTsKKwlpZiAocmVzICE9IDApIHBhbmljKCJVbmFibGUgdG8gYWRkIHNvZnQgSVJRICVkIGhh bmRsZXIiLCBpcnEpOworCisJKHZvaWQpcGljX2lycV9mcm9tX25zcGMocGljX3NjLCBJTlRSX0lS UV9OU1BDX1NXSSwgaXJxLCAmdmVjKTsKKwlLQVNTRVJUKHBpY19zYy0+cGljX2lycXNbdmVjXSAh PSBOVUxMLAorCSAgICAoIlNvZnQgSVJRICVkIG5vdCByZWdpc3RlcmVkXG4iLCBpcnEpKTsKKwlp bnRyX2lycV9zZXRfbmFtZShwaWNfc2MtPnBpY19pcnFzW3ZlY10sICIlcyIsIG5hbWUpOworfQor CmRpZmYgLS1naXQgYS9zeXMvbWlwcy9taXBzL2V4Y2VwdGlvbi5TIGIvc3lzL21pcHMvbWlwcy9l eGNlcHRpb24uUwotLS0gYS9zeXMvbWlwcy9taXBzL2V4Y2VwdGlvbi5TCisrKyBiL3N5cy9taXBz L21pcHMvZXhjZXB0aW9uLlMKQEAgLTY0Niw3ICs2NDYsMTEgQEAKICAqICBDYWxsIHRoZSBpbnRl cnJ1cHQgaGFuZGxlci4gYTAgcG9pbnRzIGF0IHRoZSBzYXZlZCBmcmFtZS4KICAqLwogCVBUUl9M QQlncCwgX0NfTEFCRUwoX2dwKQorI2lmZGVmIE1JUFNfSU5UUk5HCisJUFRSX0xBCWswLCBfQ19M QUJFTChpbnRyX2lycV9oYW5kbGVyKQorI2Vsc2UKIAlQVFJfTEEJazAsIF9DX0xBQkVMKGNwdV9p bnRyKQorI2VuZGlmCiAJamFscglrMAogCVJFR19TCWEzLCBDQUxMRlJBTUVfUkEgKyBLRVJOX1JF R19TSVpFKHNwKQkJIyBmb3IgZGVidWdnaW5nCiAKQEAgLTc1OCw3ICs3NjIsMTEgQEAKIC8qCiAg KiBDYWxsIHRoZSBpbnRlcnJ1cHQgaGFuZGxlci4KICAqLworI2lmZGVmIE1JUFNfSU5UUk5HCisJ UFRSX0xBCWswLCBfQ19MQUJFTChpbnRyX2lycV9oYW5kbGVyKQorI2Vsc2UKIAlQVFJfTEEJazAs IF9DX0xBQkVMKGNwdV9pbnRyKQorI2VuZGlmCiAJamFscglrMAogCVJFR19TCWEzLCBDQUxMRlJB TUVfUkEoc3ApCSMgZm9yIGRlYnVnZ2luZwogCkBAIC0xMTkwLDYgKzExOTgsNyBAQAogCVBUUl9B RERVIHNwLCBzcCwgQ0FMTEZSQU1FX1NJWgogRU5EKE1pcHNGUFRyYXApCiAKKyNpZm5kZWYgTUlQ U19JTlRSTkcKIC8qCiAgKiBJbnRlcnJ1cHQgY291bnRlcnMgZm9yIHZtc3RhdC4KICAqLwpAQCAt MTIxNiw2ICsxMjI1LDcgQEAKICNlbHNlCiAJLmludCAgSU5UUkNOVF9DT1VOVCAqIChfTUlQU19T WkxPTkcgLyA4KSAqIDIKICNlbmRpZgorI2VuZGlmIC8qIE1JUFNfSU5UUk5HICovCiAKIAogLyoK ZGlmZiAtLWdpdCBhL3N5cy9taXBzL2luY2x1ZGUvc21wLmggYi9zeXMvbWlwcy9pbmNsdWRlL3Nt cC5oCi0tLSBhL3N5cy9taXBzL2luY2x1ZGUvc21wLmgKKysrIGIvc3lzL21pcHMvaW5jbHVkZS9z bXAuaApAQCAtMjEsNiArMjEsMTEgQEAKIAogI2luY2x1ZGUgPG1hY2hpbmUvcGNiLmg+CiAKKyNp ZmRlZiBNSVBTX0lOVFJORworIyBkZWZpbmUgTUlQU19JUElfQ09VTlQgCTEKKyMgZGVmaW5lIElO VFJfSVBJX0NPVU5UIAlNSVBTX0lQSV9DT1VOVAorI2VuZGlmCisKIC8qCiAgKiBJbnRlcnByb2Nl c3NvciBpbnRlcnJ1cHRzIGZvciBTTVAuCiAgKi8KZGlmZiAtLWdpdCBhL3N5cy9taXBzL2luY2x1 ZGUvaW50ci5oIGIvc3lzL21pcHMvaW5jbHVkZS9pbnRyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK LS0tIC9kZXYvbnVsbAorKysgYi9zeXMvbWlwcy9pbmNsdWRlL2ludHIuaApAQCAtMCwwICsxLDY3 IEBACisvKiAJJE5ldEJTRDogaW50ci5oLHYgMS43IDIwMDMvMDYvMTYgMjA6MDE6MDAgdGhvcnBl aiBFeHAgJAkqLworCisvKi0KKyAqIENvcHlyaWdodCAoYykgMTk5NyBNYXJrIEJyaW5pY29tYmUu CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0 aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0 aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gQWxsIGFkdmVydGlzaW5n IG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9yIHVzZSBvZiB0aGlzIHNvZnR3YXJlCisg KiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBhY2tub3dsZWRnZW1lbnQ6CisgKglUaGlz IHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxvcGVkIGJ5IE1hcmsgQnJpbmljb21iZQor ICoJZm9yIHRoZSBOZXRCU0QgUHJvamVjdC4KKyAqIDQuIFRoZSBuYW1lIG9mIHRoZSBjb21wYW55 IG5vciB0aGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBiZSB1c2VkIHRvCisgKiAgICBlbmRvcnNl IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz cGVjaWZpYworICogICAgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNT IE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELgorICogSU4gTk8gRVZF TlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS RUNULAorICogSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVT RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZF UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS QUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRI SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNV Q0ggREFNQUdFLgorICoKKyAqICRGcmVlQlNEJAorICoKKyAqLworCisjaWZuZGVmIF9NQUNISU5F X0lOVFJfSF8KKyNkZWZpbmUgX01BQ0hJTkVfSU5UUl9IXworCisjaWZkZWYgTUlQU19JTlRSTkcK KworI2lmZGVmIEZEVAorI2luY2x1ZGUgPGRldi9vZncvb3BlbmZpcm0uaD4KKyNlbmRpZgorCisj aW5jbHVkZSA8c3lzL2ludHIuaD4KKworI2lmbmRlZiBOSVJRCisjZGVmaW5lCU5JUlEJCTEyOAor I2VuZGlmCisKKyNkZWZpbmUgSU5UUl9JUlFfTlNQQ19TV0kJNAorCisvKiBNSVBTIGNvbXBhdGli aWxpdHkgZm9yIGxlZ2FjeSBtaXBzIGNvZGUgKi8KK3ZvaWQgY3B1X2luaXRfaW50ZXJydXB0cyh2 b2lkKTsKK3ZvaWQgY3B1X2VzdGFibGlzaF9oYXJkaW50cihjb25zdCBjaGFyICosIGRyaXZlcl9m aWx0ZXJfdCAqLCBkcml2ZXJfaW50cl90ICosCisgICAgdm9pZCAqLCBpbnQsIGludCwgdm9pZCAq Kik7Cit2b2lkIGNwdV9lc3RhYmxpc2hfc29mdGludHIoY29uc3QgY2hhciAqLCBkcml2ZXJfZmls dGVyX3QgKiwgdm9pZCAoKikodm9pZCopLAorICAgIHZvaWQgKiwgaW50LCBpbnQsIHZvaWQgKiop OworLyogTUlQUyBpbnRlcnJ1cHQgQyBlbnRyeSBwb2ludCAqLwordm9pZCBjcHVfaW50cihzdHJ1 Y3QgdHJhcGZyYW1lICopOworCisjZW5kaWYgLyogTUlQU19JTlRSTkcgKi8KKworI2VuZGlmCS8q IF9NQUNISU5FX0lOVFJfSCAqLwpkaWZmIC0tZ2l0IGEvc3lzL2NvbmYvb3B0aW9ucy5taXBzIGIv c3lzL2NvbmYvb3B0aW9ucy5taXBzCi0tLSBhL3N5cy9jb25mL29wdGlvbnMubWlwcworKysgYi9z eXMvY29uZi9vcHRpb25zLm1pcHMKQEAgLTE0MCwzICsxNDAsNyBAQAogIyBPcHRpb25zIHRoYXQg YWZmZWN0IHRoZSBwbWFwLgogIwogUFZfU1RBVFMJCW9wdF9wbWFwLmgKKyMKKyMgT3B0aW9ucyB0 byB1c2UgSU5UUk5HIGNvZGUKKyMKK01JUFNfSU5UUk5HCQlvcHRfZ2xvYmFsLmgKCg== --b1_b89342436fcdc4d2366a5dc663b79c96--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b89342436fcdc4d2366a5dc663b79c96>