Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Feb 2016 16:59: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:  <c4bd241a3ff1f88809a994ccd867c7de@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_c4bd241a3ff1f88809a994ccd867c7de
Content-Type: text/plain; charset = "utf-8"
Content-Transfer-Encoding: 8bit

Sgalabov_gmail.com updated this revision to Diff 13009.
Sgalabov_gmail.com added a comment.


  I've updated the patch, addressing kan's comments. I'll send out a separate review for enabling bus pass on MIPS (together with enabling it for the mips_pic (intr.c) tomorrow. I'll also update the bus_space_fdt removal patch tomorrow.

REPOSITORY
  rS FreeBSD src repository

CHANGES SINCE LAST UPDATE
  https://reviews.freebsd.org/D5182?vs=12991&id=13009

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/intr.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_c4bd241a3ff1f88809a994ccd867c7de
Content-Type: text/x-patch; charset=utf-8; name="D5182.13009.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="D5182.13009.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
ZSwgaW50IGR1bml0KQpkaWZmIC0tZ2l0IGEvc3lzL21pcHMvbWlwcy9pbnRyLmMgYi9zeXMvbWlw
cy9taXBzL2ludHIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAotLS0gL2Rldi9udWxsCisrKyBiL3N5
cy9taXBzL21pcHMvaW50ci5jCkBAIC0wLDAgKzEsNDkwIEBACisvKi0KKyAqIENvcHlyaWdodCAo
YykgMjAxNSBBbGV4YW5kZXIgS2FiYWV2CisgKiBDb3B5cmlnaHQgKGMpIDIwMDYgT2xla3NhbmRy
IFR5bW9zaGVua28KKyAqIENvcHlyaWdodCAoYykgMjAwMi0yMDA0IEp1bGkgTWFsbGV0dCA8am1h
bGxldHRARnJlZUJTRC5vcmc+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMsIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIs
CisgKiAgICB3aXRob3V0IG1vZGlmaWNhdGlvbiwgaW1tZWRpYXRlbHkgYXQgdGhlIGJlZ2lubmlu
ZyBvZiB0aGUgZmlsZS4KKyAqIDIuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworICogICAgZGVyaXZlZCBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2lu
Y2x1ZGUgPHN5cy9jZGVmcy5oPgorX19GQlNESUQoIiRGcmVlQlNEJCIpOworCisjaW5jbHVkZSAi
b3B0X3BsYXRmb3JtLmgiCisjaW5jbHVkZSAib3B0X2h3cG1jX2hvb2tzLmgiCisKKyNpbmNsdWRl
IDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxzeXMvc3lzdG0uaD4KKyNpbmNsdWRlIDxzeXMvYnVz
Lmg+CisjaW5jbHVkZSA8c3lzL2tlcm5lbC5oPgorI2luY2x1ZGUgPHN5cy9rdHIuaD4KKyNpbmNs
dWRlIDxzeXMvbW9kdWxlLmg+CisjaW5jbHVkZSA8c3lzL21hbGxvYy5oPgorI2luY2x1ZGUgPHN5
cy9ybWFuLmg+CisjaW5jbHVkZSA8c3lzL3BjcHUuaD4KKyNpbmNsdWRlIDxzeXMvcHJvYy5oPgor
I2luY2x1ZGUgPHN5cy9jcHVzZXQuaD4KKyNpbmNsdWRlIDxzeXMvbG9jay5oPgorI2luY2x1ZGUg
PHN5cy9tdXRleC5oPgorI2luY2x1ZGUgPHN5cy9zbXAuaD4KKyNpbmNsdWRlIDxzeXMvc2NoZWQu
aD4KKworI2luY2x1ZGUgPG1hY2hpbmUvYnVzLmg+CisjaW5jbHVkZSA8bWFjaGluZS9od2Z1bmMu
aD4KKyNpbmNsdWRlIDxtYWNoaW5lL2ludHIuaD4KKyNpbmNsdWRlIDxtYWNoaW5lL3NtcC5oPgor
CisjaW5jbHVkZSA8ZGV2L2ZkdC9mZHRfY29tbW9uLmg+CisjaW5jbHVkZSA8ZGV2L29mdy9vcGVu
ZmlybS5oPgorI2luY2x1ZGUgPGRldi9vZncvb2Z3X2J1cy5oPgorI2luY2x1ZGUgPGRldi9vZncv
b2Z3X2J1c19zdWJyLmg+CisKKyNpbmNsdWRlICJwaWNfaWYuaCIKKworI2RlZmluZSBOSEFSRF9J
UlFTCTYKKyNkZWZpbmUgTlNPRlRfSVJRUwkyCisjZGVmaW5lIE5SRUFMX0lSUVMJKE5IQVJEX0lS
UVMgKyBOU09GVF9JUlFTKQorCitzdGF0aWMgaW50IG1pcHNfcGljX2ludHIodm9pZCAqKTsKKwor
c3RydWN0IG1pcHNfcGljX3NvZnRjIHsKKwlkZXZpY2VfdAkJcGljX2RldjsKKwlzdHJ1Y3QgaW50
cl9pcnFzcmMgKglwaWNfaXJxc1tOUkVBTF9JUlFTXTsKKwlzdHJ1Y3QgbXR4CQltdXRleDsKKwl1
aW50MzJfdAkJbmlycXM7Cit9OworCitzdGF0aWMgc3RydWN0IG1pcHNfcGljX3NvZnRjICpwaWNf
c2M7CisKK3N0YXRpYyBzdHJ1Y3Qgb2Z3X2NvbXBhdF9kYXRhIGNvbXBhdF9kYXRhW10gPSB7CisJ
eyJtdGksY3B1LWludGVycnVwdC1jb250cm9sbGVyIiwJdHJ1ZX0sCisJe05VTEwsCQkJCQlmYWxz
ZX0KK307CisKK3N0YXRpYyBpbnQKK21pcHNfcGljX3Byb2JlKGRldmljZV90IGRldikKK3sKKwor
CWlmICghb2Z3X2J1c19zdGF0dXNfb2theShkZXYpKQorCQlyZXR1cm4gKEVOWElPKTsKKworCWlm
ICghb2Z3X2J1c19zZWFyY2hfY29tcGF0aWJsZShkZXYsIGNvbXBhdF9kYXRhKS0+b2NkX2RhdGEp
CisJCXJldHVybiAoRU5YSU8pOworCWRldmljZV9zZXRfZGVzYyhkZXYsICJNSVBTMzIgSW50ZXJy
dXB0IENvbnRyb2xsZXIiKTsKKwlyZXR1cm4gKEJVU19QUk9CRV9ERUZBVUxUKTsKK30KKworc3Rh
dGljIGlubGluZSB2b2lkCitwaWNfaXJxX3VubWFzayhzdHJ1Y3QgbWlwc19waWNfc29mdGMgKnNj
LCB1X2ludCBpcnEpCit7CisKKwltaXBzX3dyX3N0YXR1cyhtaXBzX3JkX3N0YXR1cygpIHwgKCgx
IDw8IGlycSkgPDwgOCkpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK3BpY19pcnFfbWFzayhz
dHJ1Y3QgbWlwc19waWNfc29mdGMgKnNjLCB1X2ludCBpcnEpCit7CisKKwltaXBzX3dyX3N0YXR1
cyhtaXBzX3JkX3N0YXR1cygpICYgfigoMSA8PCBpcnEpIDw8IDgpKTsKK30KKworI2lmZGVmIFNN
UAorc3RhdGljIHZvaWQKK21pcHNfcGljX2luaXRfc2Vjb25kYXJ5KGRldmljZV90IGRldikKK3sK
K30KKyNlbmRpZiAvKiBTTVAgKi8KKworc3RhdGljIGlubGluZSBpbnRwdHJfdAorcGljX3hyZWYo
ZGV2aWNlX3QgZGV2KQoreworI2lmZGVmIEZEVAorCXJldHVybiAoT0ZfeHJlZl9mcm9tX25vZGUo
b2Z3X2J1c19nZXRfbm9kZShkZXYpKSk7CisjZWxzZQorCXJldHVybiAoMCk7CisjZW5kaWYKK30K
Kworc3RhdGljIGludAorbWlwc19waWNfYXR0YWNoKGRldmljZV90IGRldikKK3sKKwlzdHJ1Y3QJ
CW1pcHNfcGljX3NvZnRjICpzYzsKKwlpbnRwdHJfdAl4cmVmID0gcGljX3hyZWYoZGV2KTsKKwor
CWlmIChwaWNfc2MpCisJCXJldHVybiAoRU5YSU8pOworCisJc2MgPSBkZXZpY2VfZ2V0X3NvZnRj
KGRldik7CisKKwlzYy0+cGljX2RldiA9IGRldjsKKwlwaWNfc2MgPSBzYzsKKworCS8qIEluaXRp
YWxpemUgbXV0ZXggKi8KKwltdHhfaW5pdCgmc2MtPm11dGV4LCAiUElDIGxvY2siLCAiIiwgTVRY
X1NQSU4pOworCisJLyogU2V0IHRoZSBudW1iZXIgb2YgaW50ZXJydXB0cyAqLworCXNjLT5uaXJx
cyA9IG5pdGVtcyhzYy0+cGljX2lycXMpOworCisJLyoKKwkgKiBOb3csIHdoZW4gZXZlcnl0aGlu
ZyBpcyBpbml0aWFsaXplZCwgaXQncyByaWdodCB0aW1lIHRvCisJICogcmVnaXN0ZXIgaW50ZXJy
dXB0IGNvbnRyb2xsZXIgdG8gaW50ZXJydXB0IGZyYW1lZm9yay4KKwkgKi8KKwlpZiAoaW50cl9w
aWNfcmVnaXN0ZXIoZGV2LCB4cmVmKSAhPSAwKSB7CisJCWRldmljZV9wcmludGYoZGV2LCAiY291
bGQgbm90IHJlZ2lzdGVyIFBJQ1xuIik7CisJCWdvdG8gY2xlYW51cDsKKwl9CisKKwkvKiBDbGFp
bSBvdXIgcm9vdCBjb250cm9sbGVyIHJvbGUgKi8KKwlpZiAoaW50cl9waWNfY2xhaW1fcm9vdChk
ZXYsIHhyZWYsIG1pcHNfcGljX2ludHIsIHNjLCAwKSAhPSAwKSB7CisJCWRldmljZV9wcmludGYo
ZGV2LCAiY291bGQgbm90IHNldCBQSUMgYXMgYSByb290XG4iKTsKKwkJaW50cl9waWNfdW5yZWdp
c3RlcihkZXYsIHhyZWYpOworCQlnb3RvIGNsZWFudXA7CisJfQorCisJcmV0dXJuICgwKTsKKwor
Y2xlYW51cDoKKwlyZXR1cm4oRU5YSU8pOworfQorCitpbnQKK21pcHNfcGljX2ludHIodm9pZCAq
YXJnKQoreworCXN0cnVjdCBtaXBzX3BpY19zb2Z0YyAqc2MgPSBhcmc7CisJcmVnaXN0ZXJfdCBj
YXVzZSwgc3RhdHVzOworCXN0cnVjdCBpbnRyX2lycXNyYyAqaXNyYzsKKwlpbnQgaSwgaW50cjsK
KworCWNhdXNlID0gbWlwc19yZF9jYXVzZSgpOworCXN0YXR1cyA9IG1pcHNfcmRfc3RhdHVzKCk7
CisJaW50ciA9IChjYXVzZSAmIE1JUFNfSU5UX01BU0spID4+IDg7CisJLyoKKwkgKiBEbyBub3Qg
aGFuZGxlIG1hc2tlZCBpbnRlcnJ1cHRzLiBUaGV5IHdlcmUgbWFza2VkIGJ5CisJICogcHJlX2l0
aHJlYWQgZnVuY3Rpb24gKG1pcHNfbWFza19YWFhfaW50cikgYW5kIHdpbGwgYmUKKwkgKiB1bm1h
c2tlZCBvbmNlIGl0aHJlYWQgaXMgdGhyb3VnaCB3aXRoIGhhbmRsZXIKKwkgKi8KKwlpbnRyICY9
IChzdGF0dXMgJiBNSVBTX0lOVF9NQVNLKSA+PiA4OworCXdoaWxlICgoaSA9IGZscyhpbnRyKSkg
IT0gMCkgeworCQlpLS07IC8qIEdldCBhIDAtb2Zmc2V0IGludGVycnVwdC4gKi8KKwkJaW50ciAm
PSB+KDEgPDwgaSk7CisKKwkJaXNyYyA9IHNjLT5waWNfaXJxc1tpXTsKKwkJaWYgKGlzcmMgPT0g
TlVMTCkgeworCQkJZGV2aWNlX3ByaW50ZihzYy0+cGljX2RldiwKKwkJCSAgICAiU3RyYXkgaW50
ZXJydXB0ICV1IGRldGVjdGVkXG4iLCBpKTsKKwkJCXBpY19pcnFfbWFzayhzYywgaSk7CisJCQlj
b250aW51ZTsKKwkJfQorCisJCWludHJfaXJxX2Rpc3BhdGNoKGlzcmMsIGN1cnRocmVhZC0+dGRf
aW50cl9mcmFtZSk7CisJfQorCisJS0FTU0VSVChpID09IDAsICgiYWxsIGludGVycnVwdHMgaGFu
ZGxlZCIpKTsKKworI2lmZGVmIEhXUE1DX0hPT0tTCisJaWYgKHBtY19ob29rICYmIChQQ1BVX0dF
VChjdXJ0aHJlYWQpLT50ZF9wZmxhZ3MgJiBURFBfQ0FMTENIQUlOKSkKKwkJcG1jX2hvb2soUENQ
VV9HRVQoY3VydGhyZWFkKSwgUE1DX0ZOX1VTRVJfQ0FMTENIQUlOLCB0Zik7CisjZW5kaWYKKwly
ZXR1cm4gKEZJTFRFUl9IQU5ETEVEKTsKK30KKworc3RhdGljIGludAorcGljX2F0dGFjaF9pc3Jj
KHN0cnVjdCBtaXBzX3BpY19zb2Z0YyAqc2MsIHN0cnVjdCBpbnRyX2lycXNyYyAqaXNyYywgdV9p
bnQgaXJxKQoreworCisJLyoKKwkgKiAxLiBUaGUgbGluayBiZXR3ZWVuIElTUkMgYW5kIGNvbnRy
b2xsZXIgbXVzdCBiZSBzZXQgYXRvbWljYWxseS4KKwkgKiAyLiBKdXN0IGRvIHRoaW5ncyBvbmx5
IG9uY2UgaW4gcmFyZSBjYXNlIHdoZW4gY29uc3VtZXJzCisJICogICAgb2Ygc2hhcmVkIGludGVy
cnVwdCBjYW1lIGhlcmUgYXQgdGhlIHNhbWUgbW9tZW50LgorCSAqLworCW10eF9sb2NrX3NwaW4o
JnNjLT5tdXRleCk7CisJaWYgKHNjLT5waWNfaXJxc1tpcnFdICE9IE5VTEwpIHsKKwkJbXR4X3Vu
bG9ja19zcGluKCZzYy0+bXV0ZXgpOworCQlyZXR1cm4gKHNjLT5waWNfaXJxc1tpcnFdID09IGlz
cmMgPyAwIDogRUVYSVNUKTsKKwl9CisJc2MtPnBpY19pcnFzW2lycV0gPSBpc3JjOworCWlzcmMt
PmlzcmNfZGF0YSA9IGlycTsKKwltdHhfdW5sb2NrX3NwaW4oJnNjLT5tdXRleCk7CisKKwlpZiAo
aXJxIDwgTlNPRlRfSVJRUykKKwkJaW50cl9pcnFfc2V0X25hbWUoaXNyYywgInNpbnQldSIsIGly
cSk7CisJZWxzZSBpZiAoaXJxIDwgTlJFQUxfSVJRUykKKwkJaW50cl9pcnFfc2V0X25hbWUoaXNy
YywgImludCV1IiwgaXJxIC0gTlNPRlRfSVJRUyk7CisJZWxzZQorCQlwYW5pYygiSW52YWxpZCBp
cnEgJXUiLCBpcnEpOworCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBpbnQKK3BpY19kZXRhY2hf
aXNyYyhzdHJ1Y3QgbWlwc19waWNfc29mdGMgKnNjLCBzdHJ1Y3QgaW50cl9pcnFzcmMgKmlzcmMs
IHVfaW50IGlycSkKK3sKKworCW10eF9sb2NrX3NwaW4oJnNjLT5tdXRleCk7CisJaWYgKHNjLT5w
aWNfaXJxc1tpcnFdICE9IGlzcmMpIHsKKwkJbXR4X3VubG9ja19zcGluKCZzYy0+bXV0ZXgpOwor
CQlyZXR1cm4gKHNjLT5waWNfaXJxc1tpcnFdID09IE5VTEwgPyAwIDogRUlOVkFMKTsKKwl9CisJ
c2MtPnBpY19pcnFzW2lycV0gPSBOVUxMOworCWlzcmMtPmlzcmNfZGF0YSA9IDA7CisJbXR4X3Vu
bG9ja19zcGluKCZzYy0+bXV0ZXgpOworCisJaW50cl9pcnFfc2V0X25hbWUoaXNyYywgIiVzIiwg
IiIpOworCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBpbnQKK3BpY19pcnFfZnJvbV9uc3BjKHN0
cnVjdCBtaXBzX3BpY19zb2Z0YyAqc2MsIHVfaW50IHR5cGUsIHVfaW50IG51bSwgdV9pbnQgKmly
cXApCit7CisKKwlzd2l0Y2ggKHR5cGUpIHsKKwljYXNlIElOVFJfSVJRX05TUENfUExBSU46CisJ
CSppcnFwID0gbnVtOworCQlyZXR1cm4gKCppcnFwIDwgc2MtPm5pcnFzID8gMCA6IEVJTlZBTCk7
CisKKwljYXNlIElOVFJfSVJRX05TUENfU1dJOgorCQkqaXJxcCA9IG51bTsKKwkJcmV0dXJuIChu
dW0gPCBOU09GVF9JUlFTID8gMCA6IEVJTlZBTCk7CisKKwljYXNlIElOVFJfSVJRX05TUENfSVJR
OgorCQkqaXJxcCA9IG51bSArIE5TT0ZUX0lSUVM7CisJCXJldHVybiAobnVtIDwgTkhBUkRfSVJR
UyA/IDAgOiBFSU5WQUwpOworCisJZGVmYXVsdDoKKwkJcmV0dXJuIChFSU5WQUwpOworCX0KK30K
Kworc3RhdGljIGludAorcGljX21hcF9uc3BjKHN0cnVjdCBtaXBzX3BpY19zb2Z0YyAqc2MsIHN0
cnVjdCBpbnRyX2lycXNyYyAqaXNyYywgdV9pbnQgKmlycXApCit7CisJaW50IGVycm9yOworCisJ
ZXJyb3IgPSBwaWNfaXJxX2Zyb21fbnNwYyhzYywgaXNyYy0+aXNyY19uc3BjX3R5cGUsIGlzcmMt
PmlzcmNfbnNwY19udW0sCisJICAgIGlycXApOworCWlmIChlcnJvciAhPSAwKQorCQlyZXR1cm4g
KGVycm9yKTsKKwlyZXR1cm4gKHBpY19hdHRhY2hfaXNyYyhzYywgaXNyYywgKmlycXApKTsKK30K
KworI2lmZGVmIEZEVAorc3RhdGljIGludAorcGljX21hcF9mZHQoc3RydWN0IG1pcHNfcGljX3Nv
ZnRjICpzYywgc3RydWN0IGludHJfaXJxc3JjICppc3JjLCB1X2ludCAqaXJxcCkKK3sKKwl1X2lu
dCBpcnE7CisJaW50IGVycm9yOworCisJaXJxID0gaXNyYy0+aXNyY19jZWxsc1swXTsKKworCWlm
IChpcnEgPj0gc2MtPm5pcnFzKQorCQlyZXR1cm4gKEVJTlZBTCk7CisKKwllcnJvciA9IHBpY19h
dHRhY2hfaXNyYyhzYywgaXNyYywgaXJxKTsKKwlpZiAoZXJyb3IgIT0gMCkKKwkJcmV0dXJuIChl
cnJvcik7CisKKwlpc3JjLT5pc3JjX25zcGNfdHlwZSA9IElOVFJfSVJRX05TUENfUExBSU47CisJ
aXNyYy0+aXNyY19uc3BjX251bSA9IGlycTsKKwlpc3JjLT5pc3JjX3RyaWcgPSBJTlRSX1RSSUdH
RVJfQ09ORk9STTsKKwlpc3JjLT5pc3JjX3BvbCA9IElOVFJfUE9MQVJJVFlfQ09ORk9STTsKKwor
CSppcnFwID0gaXJxOworCXJldHVybiAoMCk7Cit9CisjZW5kaWYKKworc3RhdGljIGludAorbWlw
c19waWNfcmVnaXN0ZXIoZGV2aWNlX3QgZGV2LCBzdHJ1Y3QgaW50cl9pcnFzcmMgKmlzcmMsIGJv
b2xlYW5fdCAqaXNfcGVyY3B1KQoreworCXN0cnVjdCBtaXBzX3BpY19zb2Z0YyAqc2MgPSBkZXZp
Y2VfZ2V0X3NvZnRjKGRldik7CisJdV9pbnQgaXJxOworCWludCBlcnJvcjsKKworCWlmIChpc3Jj
LT5pc3JjX3R5cGUgPT0gSU5UUl9JU1JDVF9OQU1FU1BBQ0UpCisJCWVycm9yID0gcGljX21hcF9u
c3BjKHNjLCBpc3JjLCAmaXJxKTsKKyNpZmRlZiBGRFQKKwllbHNlIGlmIChpc3JjLT5pc3JjX3R5
cGUgPT0gSU5UUl9JU1JDVF9GRFQpCisJCWVycm9yID0gcGljX21hcF9mZHQoc2MsIGlzcmMsICZp
cnEpOworI2VuZGlmCisJZWxzZQorCQlyZXR1cm4gKEVJTlZBTCk7CisKKwlpZiAoZXJyb3IgPT0g
MCkKKwkJKmlzX3BlcmNwdSA9IFRSVUU7CisJcmV0dXJuIChlcnJvcik7Cit9CisKK3N0YXRpYyB2
b2lkCittaXBzX3BpY19lbmFibGVfaW50cihkZXZpY2VfdCBkZXYsIHN0cnVjdCBpbnRyX2lycXNy
YyAqaXNyYykKK3sKKworCWlmIChpc3JjLT5pc3JjX3RyaWcgPT0gSU5UUl9UUklHR0VSX0NPTkZP
Uk0pCisJCWlzcmMtPmlzcmNfdHJpZyA9IElOVFJfVFJJR0dFUl9MRVZFTDsKK30KKworc3RhdGlj
IHZvaWQKK21pcHNfcGljX2VuYWJsZV9zb3VyY2UoZGV2aWNlX3QgZGV2LCBzdHJ1Y3QgaW50cl9p
cnFzcmMgKmlzcmMpCit7CisJc3RydWN0IG1pcHNfcGljX3NvZnRjICpzYyA9IGRldmljZV9nZXRf
c29mdGMoZGV2KTsKKwl1X2ludCBpcnEgPSBpc3JjLT5pc3JjX2RhdGE7CisKKwlwaWNfaXJxX3Vu
bWFzayhzYywgaXJxKTsKK30KKworc3RhdGljIHZvaWQKK21pcHNfcGljX2Rpc2FibGVfc291cmNl
KGRldmljZV90IGRldiwgc3RydWN0IGludHJfaXJxc3JjICppc3JjKQoreworCXN0cnVjdCBtaXBz
X3BpY19zb2Z0YyAqc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRldik7CisJdV9pbnQgaXJxID0gaXNy
Yy0+aXNyY19kYXRhOworCisJcGljX2lycV9tYXNrKHNjLCBpcnEpOworfQorCitzdGF0aWMgaW50
CittaXBzX3BpY191bnJlZ2lzdGVyKGRldmljZV90IGRldiwgc3RydWN0IGludHJfaXJxc3JjICpp
c3JjKQoreworCXN0cnVjdCBtaXBzX3BpY19zb2Z0YyAqc2MgPSBkZXZpY2VfZ2V0X3NvZnRjKGRl
dik7CisJdV9pbnQgaXJxID0gaXNyYy0+aXNyY19kYXRhOworCisJcmV0dXJuIChwaWNfZGV0YWNo
X2lzcmMoc2MsIGlzcmMsIGlycSkpOworfQorCitzdGF0aWMgdm9pZAorbWlwc19waWNfcHJlX2l0
aHJlYWQoZGV2aWNlX3QgZGV2LCBzdHJ1Y3QgaW50cl9pcnFzcmMgKmlzcmMpCit7CisKKwltaXBz
X3BpY19kaXNhYmxlX3NvdXJjZShkZXYsIGlzcmMpOworfQorCitzdGF0aWMgdm9pZAorbWlwc19w
aWNfcG9zdF9pdGhyZWFkKGRldmljZV90IGRldiwgc3RydWN0IGludHJfaXJxc3JjICppc3JjKQor
eworCisJbWlwc19waWNfZW5hYmxlX3NvdXJjZShkZXYsIGlzcmMpOworfQorCitzdGF0aWMgdm9p
ZAorbWlwc19waWNfcG9zdF9maWx0ZXIoZGV2aWNlX3QgZGV2LCBzdHJ1Y3QgaW50cl9pcnFzcmMg
KmlzcmMpCit7Cit9CisKKyNpZmRlZiBTTVAKK3N0YXRpYyBpbnQKK21pcHNfcGljX2JpbmQoZGV2
aWNlX3QgZGV2LCBzdHJ1Y3QgaW50cl9pcnFzcmMgKmlzcmMpCit7CisJcmV0dXJuIChFT1BOT1RT
VVBQKTsKK30KKworc3RhdGljIHZvaWQKK21pcHNfcGljX2lwaV9zZW5kKGRldmljZV90IGRldiwg
c3RydWN0IGludHJfaXJxc3JjICppc3JjLCBjcHVzZXRfdCBjcHVzKQoreworfQorI2VuZGlmCisK
K3N0YXRpYyBkZXZpY2VfbWV0aG9kX3QgbWlwc19waWNfbWV0aG9kc1tdID0geworCS8qIERldmlj
ZSBpbnRlcmZhY2UgKi8KKwlERVZNRVRIT0QoZGV2aWNlX3Byb2JlLAkJbWlwc19waWNfcHJvYmUp
LAorCURFVk1FVEhPRChkZXZpY2VfYXR0YWNoLAltaXBzX3BpY19hdHRhY2gpLAorCS8qIEludGVy
cnVwdCBjb250cm9sbGVyIGludGVyZmFjZSAqLworCURFVk1FVEhPRChwaWNfZGlzYWJsZV9zb3Vy
Y2UsCW1pcHNfcGljX2Rpc2FibGVfc291cmNlKSwKKwlERVZNRVRIT0QocGljX2VuYWJsZV9pbnRy
LAltaXBzX3BpY19lbmFibGVfaW50ciksCisJREVWTUVUSE9EKHBpY19lbmFibGVfc291cmNlLAlt
aXBzX3BpY19lbmFibGVfc291cmNlKSwKKwlERVZNRVRIT0QocGljX3Bvc3RfZmlsdGVyLAltaXBz
X3BpY19wb3N0X2ZpbHRlciksCisJREVWTUVUSE9EKHBpY19wb3N0X2l0aHJlYWQsCW1pcHNfcGlj
X3Bvc3RfaXRocmVhZCksCisJREVWTUVUSE9EKHBpY19wcmVfaXRocmVhZCwJbWlwc19waWNfcHJl
X2l0aHJlYWQpLAorCURFVk1FVEhPRChwaWNfcmVnaXN0ZXIsCQltaXBzX3BpY19yZWdpc3Rlciks
CisJREVWTUVUSE9EKHBpY191bnJlZ2lzdGVyLAltaXBzX3BpY191bnJlZ2lzdGVyKSwKKyNpZmRl
ZiBTTVAKKwlERVZNRVRIT0QocGljX2JpbmQsCQltaXBzX3BpY19iaW5kKSwKKwlERVZNRVRIT0Qo
cGljX2luaXRfc2Vjb25kYXJ5LAltaXBzX3BpY19pbml0X3NlY29uZGFyeSksCisJREVWTUVUSE9E
KHBpY19pcGlfc2VuZCwJCW1pcHNfcGljX2lwaV9zZW5kKSwKKyNlbmRpZgorCXsgMCwgMCB9Cit9
OworCitzdGF0aWMgZHJpdmVyX3QgbWlwc19waWNfZHJpdmVyID0geworCSJtaXBzX3BpYyIsCisJ
bWlwc19waWNfbWV0aG9kcywKKwlzaXplb2Yoc3RydWN0IG1pcHNfcGljX3NvZnRjKSwKK307CisK
K3N0YXRpYyBkZXZjbGFzc190IG1pcHNfcGljX2RldmNsYXNzOworCitEUklWRVJfTU9EVUxFKGNw
dXBpYywgb2Z3YnVzLCBtaXBzX3BpY19kcml2ZXIsIG1pcHNfcGljX2RldmNsYXNzLCAwLCAwKTsK
Kwordm9pZAorY3B1X2luaXRfaW50ZXJydXB0cyh2b2lkKQoreworfQorCit2b2lkCitjcHVfZXN0
YWJsaXNoX2hhcmRpbnRyKGNvbnN0IGNoYXIgKm5hbWUsIGRyaXZlcl9maWx0ZXJfdCAqZmlsdCwK
KyAgICB2b2lkICgqaGFuZGxlcikodm9pZCopLCB2b2lkICphcmcsIGludCBpcnEsIGludCBmbGFn
cywgdm9pZCAqKmNvb2tpZXApCit7CisJdV9pbnQgdmVjOworCWludCByZXM7CisKKwkvKgorCSAq
IFdlIGhhdmUgNiBsZXZlbHMsIGJ1dCB0aGF0cyAwIC0gNSAobm90IGluY2x1ZGluZyA2KQorCSAq
LworCWlmIChpcnEgPCAwIHx8IGlycSA+PSBOSEFSRF9JUlFTKQorCQlwYW5pYygiJXMgY2FsbGVk
IGZvciB1bmtub3duIGhhcmQgaW50ciAlZCIsIF9fZnVuY19fLCBpcnEpOworCisJS0FTU0VSVChw
aWNfc2MgIT0gTlVMTCwgKCIlczogbm8gcGljIiwgX19mdW5jX18pKTsKKwl2ZWMgPSBpbnRyX25h
bWVzcGFjZV9tYXBfaXJxKHBpY19zYy0+cGljX2RldiwgSU5UUl9JUlFfTlNQQ19JUlEsIGlycSk7
CisJS0FTU0VSVCh2ZWMgIT0gTklSUSwgKCJVbmFibGUgdG8gbWFwIGhhcmQgSVJRICVkXG4iLCBp
cnEpKTsKKworCXJlcyA9IGludHJfaXJxX2FkZF9oYW5kbGVyKHBpY19zYy0+cGljX2RldiwgZmls
dCwgaGFuZGxlciwgYXJnLCB2ZWMsCisJICAgIGZsYWdzLCBjb29raWVwKTsKKwlpZiAocmVzICE9
IDApIHBhbmljKCJVbmFibGUgdG8gYWRkIGhhcmQgSVJRICVkIGhhbmRsZXIiLCBpcnEpOworCisJ
KHZvaWQpcGljX2lycV9mcm9tX25zcGMocGljX3NjLCBJTlRSX0lSUV9OU1BDX0lSUSwgaXJxLCAm
dmVjKTsKKwlLQVNTRVJUKHBpY19zYy0+cGljX2lycXNbdmVjXSAhPSBOVUxMLAorCSAgICAoIkhh
cmQgSVJRICVkIG5vdCByZWdpc3RlcmVkXG4iLCBpcnEpKTsKKwlpbnRyX2lycV9zZXRfbmFtZShw
aWNfc2MtPnBpY19pcnFzW3ZlY10sICIlcyIsIG5hbWUpOworfQorCit2b2lkCitjcHVfZXN0YWJs
aXNoX3NvZnRpbnRyKGNvbnN0IGNoYXIgKm5hbWUsIGRyaXZlcl9maWx0ZXJfdCAqZmlsdCwKKyAg
ICB2b2lkICgqaGFuZGxlcikodm9pZCopLCB2b2lkICphcmcsIGludCBpcnEsIGludCBmbGFncywK
KyAgICB2b2lkICoqY29va2llcCkKK3sKKwl1X2ludCB2ZWM7CisJaW50IHJlczsKKworCWlmIChp
cnEgPCAwIHx8IGlycSA+IE5TT0ZUX0lSUVMpCisJCXBhbmljKCIlcyBjYWxsZWQgZm9yIHVua25v
d24gc29mdCBpbnRyICVkIiwgX19mdW5jX18sIGlycSk7CisKKwlLQVNTRVJUKHBpY19zYyAhPSBO
VUxMLCAoIiVzOiBubyBwaWMiLCBfX2Z1bmNfXykpOworCXZlYyA9IGludHJfbmFtZXNwYWNlX21h
cF9pcnEocGljX3NjLT5waWNfZGV2LCBJTlRSX0lSUV9OU1BDX1NXSSwgaXJxKTsKKwlLQVNTRVJU
KHZlYyA8PSBOSVJRLCAoIlVuYWJsZSB0byBtYXAgc29mdCBJUlEgJWRcbiIsIGlycSkpOworCisJ
aW50cl9pcnFfYWRkX2hhbmRsZXIocGljX3NjLT5waWNfZGV2LCBmaWx0LCBoYW5kbGVyLCBhcmcs
IHZlYywKKwkgICAgZmxhZ3MsIGNvb2tpZXApOworCWlmIChyZXMgIT0gMCkgcGFuaWMoIlVuYWJs
ZSB0byBhZGQgc29mdCBJUlEgJWQgaGFuZGxlciIsIGlycSk7CisKKwkodm9pZClwaWNfaXJxX2Zy
b21fbnNwYyhwaWNfc2MsIElOVFJfSVJRX05TUENfU1dJLCBpcnEsICZ2ZWMpOworCUtBU1NFUlQo
cGljX3NjLT5waWNfaXJxc1t2ZWNdICE9IE5VTEwsCisJICAgICgiU29mdCBJUlEgJWQgbm90IHJl
Z2lzdGVyZWRcbiIsIGlycSkpOworCWludHJfaXJxX3NldF9uYW1lKHBpY19zYy0+cGljX2lycXNb
dmVjXSwgIiVzIiwgbmFtZSk7Cit9CisKZGlmZiAtLWdpdCBhL3N5cy9taXBzL21pcHMvZXhjZXB0
aW9uLlMgYi9zeXMvbWlwcy9taXBzL2V4Y2VwdGlvbi5TCi0tLSBhL3N5cy9taXBzL21pcHMvZXhj
ZXB0aW9uLlMKKysrIGIvc3lzL21pcHMvbWlwcy9leGNlcHRpb24uUwpAQCAtNjQ2LDcgKzY0Niwx
MSBAQAogICogIENhbGwgdGhlIGludGVycnVwdCBoYW5kbGVyLiBhMCBwb2ludHMgYXQgdGhlIHNh
dmVkIGZyYW1lLgogICovCiAJUFRSX0xBCWdwLCBfQ19MQUJFTChfZ3ApCisjaWZkZWYgTUlQU19J
TlRSTkcKKwlQVFJfTEEJazAsIF9DX0xBQkVMKGludHJfaXJxX2hhbmRsZXIpCisjZWxzZQogCVBU
Ul9MQQlrMCwgX0NfTEFCRUwoY3B1X2ludHIpCisjZW5kaWYKIAlqYWxyCWswCiAJUkVHX1MJYTMs
IENBTExGUkFNRV9SQSArIEtFUk5fUkVHX1NJWkUoc3ApCQkjIGZvciBkZWJ1Z2dpbmcKIApAQCAt
NzU4LDcgKzc2MiwxMSBAQAogLyoKICAqIENhbGwgdGhlIGludGVycnVwdCBoYW5kbGVyLgogICov
CisjaWZkZWYgTUlQU19JTlRSTkcKKwlQVFJfTEEJazAsIF9DX0xBQkVMKGludHJfaXJxX2hhbmRs
ZXIpCisjZWxzZQogCVBUUl9MQQlrMCwgX0NfTEFCRUwoY3B1X2ludHIpCisjZW5kaWYKIAlqYWxy
CWswCiAJUkVHX1MJYTMsIENBTExGUkFNRV9SQShzcCkJIyBmb3IgZGVidWdnaW5nCiAKQEAgLTEx
OTAsNiArMTE5OCw3IEBACiAJUFRSX0FERFUgc3AsIHNwLCBDQUxMRlJBTUVfU0laCiBFTkQoTWlw
c0ZQVHJhcCkKIAorI2lmbmRlZiBNSVBTX0lOVFJORwogLyoKICAqIEludGVycnVwdCBjb3VudGVy
cyBmb3Igdm1zdGF0LgogICovCkBAIC0xMjE2LDYgKzEyMjUsNyBAQAogI2Vsc2UKIAkuaW50ICBJ
TlRSQ05UX0NPVU5UICogKF9NSVBTX1NaTE9ORyAvIDgpICogMgogI2VuZGlmCisjZW5kaWYgLyog
TUlQU19JTlRSTkcgKi8KIAogCiAvKgpkaWZmIC0tZ2l0IGEvc3lzL21pcHMvaW5jbHVkZS9zbXAu
aCBiL3N5cy9taXBzL2luY2x1ZGUvc21wLmgKLS0tIGEvc3lzL21pcHMvaW5jbHVkZS9zbXAuaAor
KysgYi9zeXMvbWlwcy9pbmNsdWRlL3NtcC5oCkBAIC0yMSw2ICsyMSwxMSBAQAogCiAjaW5jbHVk
ZSA8bWFjaGluZS9wY2IuaD4KIAorI2lmZGVmIE1JUFNfSU5UUk5HCisjIGRlZmluZSBNSVBTX0lQ
SV9DT1VOVCAJMQorIyBkZWZpbmUgSU5UUl9JUElfQ09VTlQgCU1JUFNfSVBJX0NPVU5UCisjZW5k
aWYKKwogLyoKICAqIEludGVycHJvY2Vzc29yIGludGVycnVwdHMgZm9yIFNNUC4KICAqLwpkaWZm
IC0tZ2l0IGEvc3lzL21pcHMvaW5jbHVkZS9pbnRyLmggYi9zeXMvbWlwcy9pbmNsdWRlL2ludHIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAotLS0gL2Rldi9udWxsCisrKyBiL3N5cy9taXBzL2luY2x1
ZGUvaW50ci5oCkBAIC0wLDAgKzEsMTQ5IEBACisvKiAJJE5ldEJTRDogaW50ci5oLHYgMS43IDIw
MDMvMDYvMTYgMjA6MDE6MDAgdGhvcnBlaiBFeHAgJAkqLworCisvKi0KKyAqIENvcHlyaWdodCAo
YykgMTk5NyBNYXJrIEJyaW5pY29tYmUuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICogMy4gQWxsIGFkdmVydGlzaW5nIG1hdGVyaWFscyBtZW50aW9uaW5nIGZlYXR1cmVzIG9y
IHVzZSBvZiB0aGlzIHNvZnR3YXJlCisgKiAgICBtdXN0IGRpc3BsYXkgdGhlIGZvbGxvd2luZyBh
Y2tub3dsZWRnZW1lbnQ6CisgKglUaGlzIHByb2R1Y3QgaW5jbHVkZXMgc29mdHdhcmUgZGV2ZWxv
cGVkIGJ5IE1hcmsgQnJpbmljb21iZQorICoJZm9yIHRoZSBOZXRCU0QgUHJvamVjdC4KKyAqIDQu
IFRoZSBuYW1lIG9mIHRoZSBjb21wYW55IG5vciB0aGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBi
ZSB1c2VkIHRvCisgKiAgICBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYworICogICAgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBg
YEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQKKyAqIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCisgKiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELgorICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULAorICogSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IK
KyAqIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkK
KyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICoKKyAqICRGcmVlQlNEJAorICoK
KyAqLworCisjaWZuZGVmIF9NQUNISU5FX0lOVFJfSF8KKyNkZWZpbmUgX01BQ0hJTkVfSU5UUl9I
XworCisjaWZkZWYgRkRUCisjaW5jbHVkZSA8ZGV2L29mdy9vcGVuZmlybS5oPgorI2VuZGlmCisK
KyNpZm5kZWYgTklSUQorI2RlZmluZQlOSVJRCQkxMjgKKyNlbmRpZgorCisjaWZkZWYgbm90eWV0
CisjZGVmaW5lCUlOVFJfU09MTwlJTlRSX01EMQordHlwZWRlZiBpbnQgaW50cl9pcnFfZmlsdGVy
X3Qodm9pZCAqYXJnLCBzdHJ1Y3QgdHJhcGZyYW1lICp0Zik7CisjZWxzZQordHlwZWRlZiBpbnQg
aW50cl9pcnFfZmlsdGVyX3Qodm9pZCAqYXJnKTsKKyNlbmRpZgorCisjZGVmaW5lIElOVFJfSVNS
Q19OQU1FTEVOCShNQVhDT01MRU4gKyAxKQorCit0eXBlZGVmIHZvaWQgaW50cl9pcGlfZmlsdGVy
X3Qodm9pZCAqYXJnKTsKKworZW51bSBpbnRyX2lzcmNfdHlwZSB7CisJSU5UUl9JU1JDVF9OQU1F
U1BBQ0UsCisJSU5UUl9JU1JDVF9GRFQKK307CisKKyNkZWZpbmUgSU5UUl9JU1JDRl9SRUdJU1RF
UkVECTB4MDEJLyogcmVnaXN0ZXJlZCBpbiBhIGNvbnRyb2xsZXIgKi8KKyNkZWZpbmUgSU5UUl9J
U1JDRl9QRVJDUFUJMHgwMgkvKiBwZXIgQ1BVIGludGVycnVwdCAqLworI2RlZmluZSBJTlRSX0lT
UkNGX0JPVU5ECQkweDA0CS8qIGJvdW5kIHRvIGEgQ1BVICovCisKKy8qIEludGVycnVwdCBzb3Vy
Y2UgZGVmaW5pdGlvbi4gKi8KK3N0cnVjdCBpbnRyX2lycXNyYyB7CisJZGV2aWNlX3QJCWlzcmNf
ZGV2OwkvKiB3aGVyZSBpc3JjIGlzIG1hcHBlZCAqLworCWludHB0cl90CQlpc3JjX3hyZWY7CS8q
IGRldmljZSByZWZlcmVuY2Uga2V5ICovCisJdWludHB0cl90CQlpc3JjX2RhdGE7CS8qIGRldmlj
ZSBkYXRhIGZvciBpc3JjICovCisJdV9pbnQJCQlpc3JjX2lycTsJLyogdW5pcXVlIGlkZW50aWZp
Y2F0b3IgKi8KKwllbnVtIGludHJfaXNyY190eXBlCWlzcmNfdHlwZTsJLyogaG93IGlzIGlzcmMg
ZGVjcmliZWQgKi8KKwl1X2ludAkJCWlzcmNfZmxhZ3M7CisJY2hhcgkJCWlzcmNfbmFtZVtJTlRS
X0lTUkNfTkFNRUxFTl07CisJdWludDE2X3QJCWlzcmNfbnNwY190eXBlOworCXVpbnQxNl90CQlp
c3JjX25zcGNfbnVtOworCWVudW0gaW50cl90cmlnZ2VyCWlzcmNfdHJpZzsKKwllbnVtIGludHJf
cG9sYXJpdHkJaXNyY19wb2w7CisJY3B1c2V0X3QJCWlzcmNfY3B1OwkvKiBvbiB3aGljaCBDUFVz
IGlzIGVuYWJsZWQgKi8KKwl1X2ludAkJCWlzcmNfaW5kZXg7CisJdV9sb25nICoJCWlzcmNfY291
bnQ7CisJdV9pbnQJCQlpc3JjX2hhbmRsZXJzOworCXN0cnVjdCBpbnRyX2V2ZW50ICoJaXNyY19l
dmVudDsKKwlpbnRyX2lycV9maWx0ZXJfdCAqCWlzcmNfZmlsdGVyOworCWludHJfaXBpX2ZpbHRl
cl90ICoJaXNyY19pcGlmaWx0ZXI7CisJdm9pZCAqCQkJaXNyY19hcmc7CisjaWZkZWYgRkRUCisJ
dV9pbnQJCQlpc3JjX25jZWxsczsKKwlwY2VsbF90CQkJaXNyY19jZWxsc1tdOwkvKiBsZWF2ZSBp
dCBsYXN0ICovCisjZW5kaWYKK307CisKK3ZvaWQgaW50cl9pcnFfc2V0X25hbWUoc3RydWN0IGlu
dHJfaXJxc3JjICppc3JjLCBjb25zdCBjaGFyICpmbXQsIC4uLikKKyAgICBfX3ByaW50Zmxpa2Uo
MiwgMyk7CisKK3ZvaWQgaW50cl9pcnFfZGlzcGF0Y2goc3RydWN0IGludHJfaXJxc3JjICppc3Jj
LCBzdHJ1Y3QgdHJhcGZyYW1lICp0Zik7CisKKyNkZWZpbmUgSU5UUl9JUlFfTlNQQ19OT05FCTAK
KyNkZWZpbmUgSU5UUl9JUlFfTlNQQ19QTEFJTgkxCisjZGVmaW5lIElOVFJfSVJRX05TUENfSVJR
CTIKKyNkZWZpbmUgSU5UUl9JUlFfTlNQQ19JUEkJMworI2RlZmluZSBJTlRSX0lSUV9OU1BDX1NX
SQk0CisKK3VfaW50IGludHJfbmFtZXNwYWNlX21hcF9pcnEoZGV2aWNlX3QgZGV2LCB1aW50MTZf
dCB0eXBlLCB1aW50MTZfdCBudW0pOworI2lmZGVmIEZEVAordV9pbnQgaW50cl9mZHRfbWFwX2ly
cShwaGFuZGxlX3QsIHBjZWxsX3QgKiwgdV9pbnQpOworI2VuZGlmCisKK2ludCBpbnRyX3BpY19y
ZWdpc3RlcihkZXZpY2VfdCBkZXYsIGludHB0cl90IHhyZWYpOworaW50IGludHJfcGljX3VucmVn
aXN0ZXIoZGV2aWNlX3QgZGV2LCBpbnRwdHJfdCB4cmVmKTsKK2ludCBpbnRyX3BpY19jbGFpbV9y
b290KGRldmljZV90IGRldiwgaW50cHRyX3QgeHJlZiwgaW50cl9pcnFfZmlsdGVyX3QgKmZpbHRl
ciwKKyAgICB2b2lkICphcmcsIHVfaW50IGlwaWNvdW50KTsKKworaW50IGludHJfaXJxX2FkZF9o
YW5kbGVyKGRldmljZV90IGRldiwgZHJpdmVyX2ZpbHRlcl90LCBkcml2ZXJfaW50cl90LCB2b2lk
ICosCisgICAgdV9pbnQsIGludCwgdm9pZCAqKik7CitpbnQgaW50cl9pcnFfcmVtb3ZlX2hhbmRs
ZXIoZGV2aWNlX3QgZGV2LCB1X2ludCwgdm9pZCAqKTsKK2ludCBpbnRyX2lycV9jb25maWcodV9p
bnQsIGVudW0gaW50cl90cmlnZ2VyLCBlbnVtIGludHJfcG9sYXJpdHkpOworaW50IGludHJfaXJx
X2Rlc2NyaWJlKHVfaW50LCB2b2lkICosIGNvbnN0IGNoYXIgKik7CisKK3VfaW50IGludHJfaXJx
X25leHRfY3B1KHVfaW50IGN1cnJlbnRfY3B1LCBjcHVzZXRfdCAqY3B1bWFzayk7CisKKyNpZmRl
ZiBTTVAKK2ludCBpbnRyX2lycV9iaW5kKHVfaW50LCBpbnQpOworCit2b2lkIGludHJfaXBpX2Rp
c3BhdGNoKHN0cnVjdCBpbnRyX2lycXNyYyAqaXNyYywgc3RydWN0IHRyYXBmcmFtZSAqdGYpOwor
CisjZGVmaW5lIEFJU0hGX05PQUxMT0MJMHgwMDAxCisKK2ludCBpbnRyX2lwaV9zZXRfaGFuZGxl
cih1X2ludCBpcGksIGNvbnN0IGNoYXIgKm5hbWUsIGludHJfaXBpX2ZpbHRlcl90ICpmaWx0ZXIs
CisgICAgdm9pZCAqYXJnLCB1X2ludCBmbGFncyk7CisKK3ZvaWQgaW50cl9waWNfaW5pdF9zZWNv
bmRhcnkodm9pZCk7CisjZW5kaWYKKworLyogTUlQUyBjb21wYXRpYmlsaXR5IGZvciBsZWdhY3kg
bWlwcyBjb2RlICovCit2b2lkIGNwdV9pbml0X2ludGVycnVwdHModm9pZCk7Cit2b2lkIGNwdV9l
c3RhYmxpc2hfaGFyZGludHIoY29uc3QgY2hhciAqLCBkcml2ZXJfZmlsdGVyX3QgKiwgZHJpdmVy
X2ludHJfdCAqLAorICAgIHZvaWQgKiwgaW50LCBpbnQsIHZvaWQgKiopOwordm9pZCBjcHVfZXN0
YWJsaXNoX3NvZnRpbnRyKGNvbnN0IGNoYXIgKiwgZHJpdmVyX2ZpbHRlcl90ICosIHZvaWQgKCop
KHZvaWQqKSwKKyAgICB2b2lkICosIGludCwgaW50LCB2b2lkICoqKTsKKy8qIE1JUFMgaW50ZXJy
dXB0IEMgZW50cnkgcG9pbnQgKi8KK3ZvaWQgY3B1X2ludHIoc3RydWN0IHRyYXBmcmFtZSAqKTsK
KworCisjZW5kaWYJLyogX01BQ0hJTkVfSU5UUl9IICovCmRpZmYgLS1naXQgYS9zeXMvY29uZi9v
cHRpb25zLm1pcHMgYi9zeXMvY29uZi9vcHRpb25zLm1pcHMKLS0tIGEvc3lzL2NvbmYvb3B0aW9u
cy5taXBzCisrKyBiL3N5cy9jb25mL29wdGlvbnMubWlwcwpAQCAtMTQwLDMgKzE0MCw3IEBACiAj
IE9wdGlvbnMgdGhhdCBhZmZlY3QgdGhlIHBtYXAuCiAjCiBQVl9TVEFUUwkJb3B0X3BtYXAuaAor
IworIyBPcHRpb25zIHRvIHVzZSBBUk1fSU5UUk5HIGNvZGUKKyMKK01JUFNfSU5UUk5HCQlvcHRf
Z2xvYmFsLmgKCg==


--b1_c4bd241a3ff1f88809a994ccd867c7de--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c4bd241a3ff1f88809a994ccd867c7de>