Skip site navigation (1)Skip section navigation (2)
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>