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