From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kaustubh Kabra Subject: Re: Doubt regarding virtual memory mapping from hypervisor to a domain Date: Thu, 10 Feb 2011 18:56:52 +0530 Message-ID: References: <7270db8c-d71a-4ab7-84fb-02ee256b44b7@default> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=0016362836dee40a01049bed88bd Return-path: In-Reply-To: <7270db8c-d71a-4ab7-84fb-02ee256b44b7@default> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Dan Magenheimer Cc: jeremy@goop.org, xen-devel@lists.xensource.com, vasani.ashwin@gmail.com, Tim.Deegan@citrix.com, kabrakaustubh@gmail.com, keir@xen.org List-Id: xen-devel@lists.xenproject.org --0016362836dee40a01049bed88bd Content-Type: multipart/alternative; boundary=0016362836dee409dd049bed88bb --0016362836dee409dd049bed88bb Content-Type: text/plain; charset=ISO-8859-1 On Mon, Jan 31, 2011 at 9:06 PM, Dan Magenheimer wrote: > > From: Kaustubh Kabra [mailto:kaustubhwise@gmail.com] > > I have allocated few order=9 pages in Xen memory space using > > alloc_domheap_pages(NULL,9,0) during boot time just before domain is > > created (dom0 = domain_create(0, DOMCRF_s3_integrity, DOM0_SSIDREF) in > > xen/arch/x86/setup.c). > > > > I got the following virtual addresses in xen log message- > > (XEN) a2k2: Virt_addr:ffff83011cc00000 MFN:11cc00 > > (XEN) a2k2: Virt_addr:ffff83011ca00000 MFN:11ca00 > > (XEN) a2k2: Virt_addr:ffff83011c800000 MFN:11c800 > > (XEN) a2k2: Virt_addr:ffff83011c600000 MFN:11c600 > > (XEN) a2k2: Virt_addr:ffff83011c400000 MFN:11c400 > > (XEN) a2k2: Virt_addr:ffff83011c200000 MFN:11c200 > > (XEN) a2k2: Virt_addr:ffff83011c000000 MFN:11c000 > > (XEN) a2k2: Virt_addr:ffff83011be00000 MFN:11be00 > > > > As per config.h file Xen memory map,the virtual mapping shows that the > > memory is allocated in > > 1:1 direct mapping of all physical memory .Can anyone elaborate > > regarding this mapping ? > > It's not clear what you are asking. Can you be more precise? > > > Now can I allocate this mapped memory reserved by Xen hypervisor to > > any domain through any existing or my new hypercall? > > Precisely, i want to allocate this mfn to a requesting domain by making a PMD entry. I tried using xen_set_pte and other hugetlb functions but it cannot write as it is in read-only area . So, I passed this new formed PTE formed using this mfn to hypervisor and tried setting the required PMD entry to this new PTE, but xen crashes . > Again, it's not clear what you are asking. If you are > asking if the guest can map the order=9 page into its > memory space, I think the answer is no. If you are > asking if Xen can use the memory on behalf of a > domain, for example to copy data from the domain into > Xen (like tmem does), I think the answer is yes. > Also attached are two patches for xen-4.0.1 and jeremy-2.6.32.27 to check the modifications done till now. -- Kaustubh Kabra* * --0016362836dee409dd049bed88bb Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
On Mon, Jan 31, 2011 at 9:06 PM, Dan Magenhe= imer <da= n.magenheimer@oracle.com> wrote:
> From: Kaustubh Kabra [mailto:kaustubhwise@gmail.com]
> I have allocated few order=3D9 pages in Xen memory space using
> alloc_domheap_pages(NULL,9,0) during boot time just before domain is > created (dom0 =3D domain_create(0, DOMCRF_s3_integrity, DOM0_SSIDREF) = in
> xen/arch/x86/setup.c).
>
> I got the following virtual addresses in xen log message-
> (XEN) a2k2: Virt_addr:ffff83011cc00000 =A0 MFN:11cc00
> (XEN) a2k2: Virt_addr:ffff83011ca00000 =A0 MFN:11ca00
> (XEN) a2k2: Virt_addr:ffff83011c800000 =A0 MFN:11c800
> (XEN) a2k2: Virt_addr:ffff83011c600000 =A0 MFN:11c600
> (XEN) a2k2: Virt_addr:ffff83011c400000 =A0 MFN:11c400
> (XEN) a2k2: Virt_addr:ffff83011c200000 =A0 MFN:11c200
> (XEN) a2k2: Virt_addr:ffff83011c000000 =A0 MFN:11c000
> (XEN) a2k2: Virt_addr:ffff83011be00000 =A0 MFN:11be00
>
> As per config.h file Xen memory map,the virtual mapping shows that the=
> memory is =A0allocated in
> 1:1 direct mapping of all physical memory .Can anyone elaborate
> regarding this mapping ?

It's not clear what you are asking. =A0Can you be more precise?

> Now can I allocate this mapped memory reserved by Xen hypervisor to > any domain through any existing or my new hypercall?


Precisely, i want to allocate this mfn to a reque= sting domain by making a PMD entry. I tried using xen_set_pte and other hug= etlb functions but it cannot write as it is in read-only area . So, I passe= d this new formed PTE formed using this mfn to hypervisor and tried setting= the required PMD entry to this new PTE, but xen crashes .=A0
=A0
Again, it's not clear what you are asking. =A0If you are
asking if the guest can map the order=3D9 page into its
memory space, I think the answer is no. =A0If you are
asking if Xen can use the memory on behalf of a
domain, for example to copy data from the domain into
Xen (like tmem does), I think the answer is yes.

Also attached are two patches for xen-4.0.1 and jere= my-2.6.32.27 to check the modifications done till now.
--
Kaustubh Kabra


--0016362836dee409dd049bed88bb-- --0016362836dee40a01049bed88bd Content-Type: text/x-patch; charset=US-ASCII; name="xen-patch.patch" Content-Disposition: attachment; filename="xen-patch.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gjzp3nuo0 ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfMzIvZW50cnkuUyBiL3hlbi9hcmNoL3g4Ni94 ODZfMzIvZW50cnkuUwppbmRleCAxMmU1MWYxLi4yMDY5MjY1IDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYveDg2XzMyL2VudHJ5LlMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl8zMi9lbnRyeS5TCkBA IC03MDYsNyArNzA2LDcgQEAgRU5UUlkoaHlwZXJjYWxsX3RhYmxlKQogICAgICAgICAubG9uZyBk b19kb21jdGwKICAgICAgICAgLmxvbmcgZG9fa2V4ZWNfb3AKICAgICAgICAgLmxvbmcgZG9fdG1l bV9vcAotCS5sb25nIGRvX2FsbG9jX2h1Z2UgIC8qMzkqQTJLMiBIeXBlcmNhbGwqLworCS5sb25n IGRvX2FsbG9jX2h1Z2VwYWdlIC8qMzkqQTJLMiBIeXBlcmNhbGwqLwogICAgICAgICAucmVwdCBf X0hZUEVSVklTT1JfYXJjaF8wLSgoLi1oeXBlcmNhbGxfdGFibGUpLzQpCiAgICAgICAgIC5sb25n IGRvX25pX2h5cGVyY2FsbAogICAgICAgICAuZW5kcgpAQCAtNzU1LDcgKzc1NSw3IEBAIEVOVFJZ KGh5cGVyY2FsbF9hcmdzX3RhYmxlKQogICAgICAgICAuYnl0ZSAxIC8qIGRvX2RvbWN0bCAgICAg ICAgICAgICovCiAgICAgICAgIC5ieXRlIDIgLyogZG9fa2V4ZWNfb3AgICAgICAgICAgKi8KICAg ICAgICAgLmJ5dGUgMSAvKiBkb190bWVtX29wICAgICAgICAgICAqLwotCS5ieXRlIDEgLyogZG9f YWxsb2NfaHVnZQkqLworCS5ieXRlIDMgLyogZG9fYWxsb2NfaHVnZQkqLwogICAgICAgICAucmVw dCBfX0hZUEVSVklTT1JfYXJjaF8wLSguLWh5cGVyY2FsbF9hcmdzX3RhYmxlKQogICAgICAgICAu Ynl0ZSAwIC8qIGRvX25pX2h5cGVyY2FsbCAgICAgICovCiAgICAgICAgIC5lbmRyCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYveDg2XzY0L2VudHJ5LlMgYi94ZW4vYXJjaC94ODYveDg2XzY0L2Vu dHJ5LlMKaW5kZXggMDkyNWZiYy4uMzdkZTJmYyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4 Nl82NC9lbnRyeS5TCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvZW50cnkuUwpAQCAtNjk1LDcg KzY5NSw3IEBAIEVOVFJZKGh5cGVyY2FsbF90YWJsZSkKICAgICAgICAgLnF1YWQgZG9fZG9tY3Rs CiAgICAgICAgIC5xdWFkIGRvX2tleGVjX29wCiAgICAgICAgIC5xdWFkIGRvX3RtZW1fb3AKLQku cXVhZCBkb19hbGxvY19odWdlIC8qYTJrMiBIeXBlcmNhbGwgZm9yIGFsbG9jYXRpbmcgaHVnZXBh Z2UgZnJvbSBodWdlcG9vbCovCisJLnF1YWQgZG9fYWxsb2NfaHVnZXBhZ2UgLyphMmsyIEh5cGVy Y2FsbCBmb3IgYWxsb2NhdGluZyBodWdlcGFnZSBmcm9tIGh1Z2Vwb29sKi8KICAgICAgICAgLnJl cHQgX19IWVBFUlZJU09SX2FyY2hfMC0oKC4taHlwZXJjYWxsX3RhYmxlKS84KQogICAgICAgICAu cXVhZCBkb19uaV9oeXBlcmNhbGwKICAgICAgICAgLmVuZHIKQEAgLTc0NCw3ICs3NDQsNyBAQCBF TlRSWShoeXBlcmNhbGxfYXJnc190YWJsZSkKICAgICAgICAgLmJ5dGUgMSAvKiBkb19kb21jdGwg ICAgICAgICAgICAqLwogICAgICAgICAuYnl0ZSAyIC8qIGRvX2tleGVjICAgICAgICAgICAgICov CiAgICAgICAgIC5ieXRlIDEgLyogZG9fdG1lbV9vcCAgICAgICAgICAgKi8KLSAgICAgICAgLmJ5 dGUgMSAvKiBkb19hbGxvY19odWdlICAgICAgICAqLworICAgICAgICAuYnl0ZSAzIC8qIGRvX2Fs bG9jX2h1Z2UgICAgICAgICovCiAgICAgICAgIC5yZXB0IF9fSFlQRVJWSVNPUl9hcmNoXzAtKC4t aHlwZXJjYWxsX2FyZ3NfdGFibGUpCiAgICAgICAgIC5ieXRlIDAgLyogZG9fbmlfaHlwZXJjYWxs ICAgICAgKi8KICAgICAgICAgLmVuZHIKLS0tIGEveGVuL2NvbW1vbi9odWdldGFibGUuYworKysg Yi94ZW4vY29tbW9uL2h1Z2V0YWJsZS5jCkBAIC0xLDM3ICsxLDE4NCBAQAotI2luY2x1ZGUgPHhl bi9odWdldGFibGUuaD4KKyNpbmNsdWRlPHhlbi9odWdldGFibGUuaD4KIAotaW50IGluaXRfaHVn ZXBhZ2VzX3Bvb2woaW50IG9yZGVyKXsKLSAgLyogIAlpbnQgazsKLQlodWdlcGFnZV9jbnQ9MDsK K3N0YXRpYyBzdHJ1Y3QgaHVnZXNwYWNlIGh1Z2Vwb29sWzIwXTsKK3N0YXRpYyBpbnQgc3RhcnQ7 CisvKgorVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZnJvbSB0aGUgc2V0dXAuYyBmaWxlCitiZWZv cmUgZG9tYWluIGlzIGJvb3RlZAorSXQgd2lsbCBtYXJrIHRoZSBwYWdlcyBhcyBVTk1BUksgd2hp Y2ggbWVhbnMgdGhpcworYXJlIGZyZWVwYWdlcyAmbm90IGFsbG9jYXRlZCB0byBhbnkgZG9tYWlu LgorV2hlbiBwYWdlcyBpcyBhbGxvY2F0ZWQgdG8gYW55IGRvbWFpbiBpZCBpcyBzdG9yZWQgCitp biBodWdlcG9vbCBpbmZvIG9mIHRoYXQgcGFnZS4KK0ltcG9ydGF0OiBNRk4ncyB3ZSBnb3QgYXJl IGZyb20gdGhlIDEtdG8tMQorbWFwcGluZy4gRm9yIG1vcmUgaW5mbyBjaGVjayBjb25maWcuaCBm aWxlLiAKKyAqLworaW50IGluaXRfaHVnZXBhZ2VzX3Bvb2wodm9pZCl7CisgIAorICAgIAlpbnQg azsKKwkJCQogCWZvcihrPTA7azxIVUdFUEFHRV9QT09MX1NJWkU7aysrKQogICAgCXsgCi0gICAg CQlodWdlcG9vbFtrXS5odWdlX3Zpcl9hZGQgPSBhbGxvY194ZW5oZWFwX3BhZ2VzKDksMCk7ICAg Ci0JCS8vaHVnZXBvb2xba10ucGc9IGFsbG9jX2RvbWhlYXBfcGFnZXMoTlVMTCxvcmRlciwwKTsK LQkJaHVnZXBvb2xba10ub3JkZXI9b3JkZXI7Ci0vLwkJcHJpbnRrKCJcbmEyazI6JXBcbiIscGFn ZV90b192aXJ0KGh1Z2Vwb29sW2tdLnBnKSk7Ci0JCWlmKGh1Z2Vwb29sW2tdLmh1Z2VfdmlyX2Fk ZD09TlVMTCl7CisJCWh1Z2Vwb29sW2tdLm1hcms9VU5NQVJLX0hVR0VQQUdFOworCQlodWdlcG9v bFtrXS5vcmRlcj05OworICAgIAkJaHVnZXBvb2xba10ucGcgPSBhbGxvY19kb21oZWFwX3BhZ2Vz KE5VTEwsaHVnZXBvb2xba10ub3JkZXIsMCk7CisJCWh1Z2Vwb29sW2tdLnZpcnQ9cGFnZV90b192 aXJ0KGh1Z2Vwb29sW2tdLnBnKTsKKwkJaHVnZXBvb2xba10ubWZuPSBwYWdlX3RvX21mbihodWdl cG9vbFtrXS5wZyk7CisJCWh1Z2Vwb29sW2tdLnBmbj0gcGZuX3RvX3BhZGRyKGh1Z2Vwb29sW2td Lm1mbik7CisJCXByaW50aygiXG5hMmsyOiBWaXJ0X2FkZHI6JXAgICBNRk46JWx4ICBQRk46JWx4 XG4iLGh1Z2Vwb29sW2tdLnZpcnQsaHVnZXBvb2xba10ubWZuLGh1Z2Vwb29sW2tdLnBmbik7CisJ CQorCQlpZihodWdlcG9vbFtrXS52aXJ0PT1OVUxMKXsKIAkJICBwcmludGsoIlxuYTJrMjo6SHVn ZXBhZ2VzIGNyZWF0aW9uIGZhaWxlZCBhdCAlZFxuIixrKTsKICAgCQkgIHJldHVybiAwOwogCQl9 CiAJfQotCXByaW50aygiXG5hMmsyOjpIdWdlcGFnZXMgcG9vbCBjcmVhdGVkIHN1Y2Nlc3NmdWxs eVxuIik7ICAqLworCXByaW50aygiXG5hMmsyOjpIdWdlcGFnZXMgcG9vbCBjcmVhdGVkIHN1Y2Nl c3NmdWxseVxuIik7ICAKKwlyZXR1cm4gMTsgICAKKwkKK30KKy8qCitpbnQgaW5pdF9odWdlcGFn ZXNfcG9vbF9kb20wKHN0cnVjdCBkb21haW4gKiBkb20wKXsKKyAgICAJaW50IGs7CisJCQkKKwlm b3Ioaz0wO2s8SFVHRVBBR0VfUE9PTF9TSVpFO2srKykKKyAgIAl7IAorICAgIAkJaHVnZXBvb2xb a10ucGcgPSBhbGxvY19kb21oZWFwX3BhZ2VzKGRvbTAsOSwwKTsKKwkJaHVnZXBvb2xba10udmly dD1wYWdlX3RvX3ZpcnQoaHVnZXBvb2xba10ucGcpOworCQlodWdlcG9vbFtrXS5tZm49IHBhZ2Vf dG9fbWZuKGh1Z2Vwb29sW2tdLnBnKTsKKwkJaHVnZXBvb2xba10ucGZuPSBwZm5fdG9fcGFkZHIo aHVnZXBvb2xba10ubWZuKTsKKwkJcHJpbnRrKCJcbmEyazI6IFZpcnRfYWRkcjolcCAgIE1GTjol bHggIFBGTjolbHhcbiIsaHVnZXBvb2xba10udmlydCxodWdlcG9vbFtrXS5tZm4saHVnZXBvb2xb a10ucGZuKTsKKwkJCisJCWlmKGh1Z2Vwb29sW2tdLnZpcnQ9PU5VTEwpeworCQkgIHByaW50aygi XG5hMmsyOjpIdWdlcGFnZXMgY3JlYXRpb24gZmFpbGVkIGF0ICVkXG4iLGspOworICAJCSAgcmV0 dXJuIDA7CisJCX0KKwl9CisJcHJpbnRrKCJcbmEyazI6Okh1Z2VwYWdlcyBwb29sIGNyZWF0ZWQg c3VjY2Vzc2Z1bGx5XG4iKTsgIAogCXJldHVybiAxOyAgIAogfQogCi0vKkVYUE9SVCB1bnNpZ25l ZCBsb25nICBkb19hbGxvY19odWdlKGludCBvcCl7Ci0gICAgCi0gIAotICAgIHJldHVybiAxVUw7 Ci19Ki8KK2ludCByZXNldmVfaHVnZXBhZ2VzX2RvbTAoc3RydWN0IGRvbWFpbiAqZG9tMCl7Cisg ICAgCWludCBrOworCQkJCisJZm9yKGs9MDtrPEhVR0VQQUdFX1BPT0xfU0laRTtrKyspCisgICAJ eyAKKwkgIHNoYXJlX3hlbl9wYWdlX3dpdGhfZ3Vlc3QoaHVnZXBvb2xba10ucGcsZG9tMCxYRU5T SEFSRV93cml0YWJsZSk7CisJICBwcmludGsoIlxuYTJrMjpBbGxvY2F0aW5nIDogJWQiLGspOwor CX0KKwlwcmludGsoIlxuYTJrMjo6SHVnZXBhZ2VzIHBvb2wgYWxsb2NhdGVkIHRvIGRvbSAwIHN1 Y2Nlc3NmdWxseVxuIik7ICAKKwlyZXR1cm4gMTsgICAKK30KIAordm9pZCBkb20wX2h1Z2VwYWdl c19wb29sKHZvaWQpeworICAgIAlpbnQgazsKKwkJCQorCWZvcihrPTA7azxIVUdFUEFHRV9QT09M X1NJWkU7aysrKQorICAgCXsgCisgICAgCQlwcmludGsoIlxuYTJrMjogTWFwcGluZyBhZnRlciBk b20gMCBWaXJ0X2FkZHI6JXAgICBNRk46JWx4ICBQRk46JWx4XG4iLGh1Z2Vwb29sW2tdLnZpcnQs aHVnZXBvb2xba10ubWZuLGh1Z2Vwb29sW2tdLnBmbik7CisJCQorCQlpZihodWdlcG9vbFtrXS52 aXJ0PT1OVUxMKXsKKwkJICBwcmludGsoIlxuYTJrMjo6SHVnZXBhZ2VzIG1hcHBpbmcgZmFpbGVk IGF0ICVkXG4iLGspOworCQl9CisJfQorCXByaW50aygiXG5hMmsyOjpIdWdlcGFnZXMgcG9vbCBt YXBwZWQgdG8gZG9tYWluIDAgc3VjY2Vzc2Z1bGx5XG4iKTsgIAorfQorKi8KIAotIHVuc2lnbmVk IGxvbmcgZG9fYWxsb2NfaHVnZShpbnQgb3ApewotICBpZihvcD09TUFTS19IVUdFX1BBR0Upewot ICAvLyAgYWxsb2NfaHVnZXBhZ2VfZnJvbV9wb29sKDEsTlVMTCk7CisvKgorVGhpcyBmdW5jdGlv biB3aWxsIGdldCB0aGUgcGFnZXMgZnJvbSB0aGUgcG9vbCAKKyYgd2lsbCBtYXJrIGFzIE1BUktQ QUdFUworc3RhcnQgaXMgZm9yIHF1aWNrIGFjY2Vzc2luZyB0aGUgbmV4dCBmcmVlIHBhZ2VzIGlu ZGV4CisgKi8KK3Vuc2lnbmVkIGxvbmcgIGFsbG9jX2h1Z2VwYWdlX2Zyb21fcG9vbChzdHJ1Y3Qg ZG9tYWluICpkKQoreworICAKKyAgICAgIGludCBrLGZsYWc9MDsKKyAgICAgIHByaW50aygiXG5h MmsyOkluIGFsbG9jX2h1Z2VwYWdlX2Zyb21fcG9vbFxuIik7CisgICAgICBmb3Ioaz1zdGFydDtr PEhVR0VQQUdFX1BPT0xfU0laRTtrKyspCisgICAgICB7CisJCisJaWYoaHVnZXBvb2xba10ubWFy az09VU5NQVJLX0hVR0VQQUdFKQorCXsKKwkgIHN0YXJ0PWs7CisJICBpZihkIT1OVUxMKQorCSAg ZmxhZz1hc3NpZ25fcGFnZXMoZCxodWdlcG9vbFtrXS5wZyxodWdlcG9vbFtrXS5vcmRlciwwKTsK KwkgIC8qYXNzaWduX3BhZ2VzIGlzIGZvciBzZWN1cml0eQorCSAgICAKKwkgICAqLyAgCisJICBp ZihmbGFnPT0wKQorCSAgICB7CisJICAgICAgLy9odWdlcG9vbFtrXS5kb21haW5faWQ9ZC0+ZG9t YWluX2lkOyAgCisJICAgIGh1Z2Vwb29sW2tdLm1hcms9TUFSS19IVUdFUEFHRTsKKwkgICAgcHJp bnRrKCJcbmEyazI6OmsgPSAlZCAlc3JldHVybnMgJWx4XG4iLGssX19GVU5DVElPTl9fLGh1Z2Vw b29sW2tdLm1mbik7CisJICAgIHJldHVybiBodWdlcG9vbFtrXS5tZm47CisJICAgIH0KKwkgICAg ZWxzZQorCSAgICB7CisJICAgICAgcHJpbnRrKCJcbmEyazI6QmFkIGFzc2lnbi5cbiIpOworCSAg ICAgIHJldHVybiAwVUw7CisJICAgIH0KKwl9CisgICAgICB9CisJICBwcmludGsoIlxuYTJrMjpB bGwgaHVnZSBwYWdlcyBhbGxvY2F0ZWQuXG4iKTsKKyAgICAJICByZXR1cm4gMFVMOworfQorLyoK K1RoaXMgZnVuY3Rpb25zIHdpbGwgZnJlZSB0aGUgcGFnZXMgZnJvbSB0aGUgaHVnZXBvb2wKK2Rv bWFpbiB3aWxsIHBhc3MgdGhlIG1mbiB0byB0aGlzIGZ1bmN0aW9uIHdpdGggb3JkZXIKK0FmdGVy IHBhc3Npbmcgc2VjdXJpdHkgaXNzdWVzIGZyZWUgY2FsbCB3aWxsIGJlIHN1Y2Nlc3NmdWwKK0Zy ZWUgcGFnZXMgZnJvbSB0aGUgcG9vbCBhcmUgbWFya2VzIGFzIFVOTUFSS0VECisgKi8KK2ludCBm cmVlX2h1Z2VwYWdlX2Zyb21fcG9vbChzdHJ1Y3QgZG9tYWluICpkLCBsb25nIG1mbixpbnQgb3Jk ZXIpCit7CisgIAorICAgICAgaW50IGssaTsKKyAgICAgIAorICAgICAgZm9yKGs9MDtrPEhVR0VQ QUdFX1BPT0xfU0laRTtrKyspCisgICAgICB7CisJCisJaWYoaHVnZXBvb2xba10ubWFyaz09TUFS S19IVUdFUEFHRSYmaHVnZXBvb2xba10ubWZuPT1tZm4mJmh1Z2Vwb29sW2tdLmRvbWFpbl9pZD09 ZC0+ZG9tYWluX2lkJiZodWdlcG9vbFtrXS5vcmRlcj09b3JkZXIpCisJeworCSAgZm9yICggaSA9 IDA7IGkgPCAoMSA8PCBvcmRlcik7IGkrKyApCisJICB7CiAgICAgCisgICAgICAgICAgICBwYWdl X2xpc3RfZGVsMihodWdlcG9vbFtrXS5wZywgJmQtPnBhZ2VfbGlzdCwgJmQtPmFyY2gucmVsbWVt X2xpc3QpOworCSAgfQorCisJICBkLT50b3RfcGFnZXMgLT0gMSA8PCBvcmRlcjsKKwkgIGh1Z2Vw b29sW2tdLm1hcms9PVVOTUFSS19IVUdFUEFHRTsKKwkgIAorCSAgcHJpbnRrKCJcbmEyazI6RnJl ZWQuXG4iKTsKKwkgIHJldHVybiAxOworCX0KKyAgICAgIH0KKwkgIHByaW50aygiXG5hMmsyOk5v dCBmcmVlZC5cbiIpOworCQorCXJldHVybiAwOworfQorLyphMmsyOlRoaXMgaXMgdGhlIGNvZGUg Zm9yIHRoZSBoeXBlcmNhbGwKK2ZvciBhbGxvY2F0aW5nICYgZGVhbGxvY2F0aW5nIGh1Z2VwYWdl cyAuCitvcD0xOSBhbGxvY19odWdlcGFnZV9mcm9tX3Bvb2wKK29wPTIwIGZyZWVfaHVnZXBhZ2Vz X2Zyb21fcG9vbAorVE9ETzoKK29wPTIxIHNldCBwdGUgZm9yIGFnZQorKi8KK3Vuc2lnbmVkIGxv bmcKK2RvX2FsbG9jX2h1Z2VwYWdlKGludCBvcCx1bnNpZ25lZCBsb25nICpwdGVwLHVuc2lnbmVk IGxvbmcgcHRlKQoreworICB1bnNpZ25lZCBsb25nICBtZm47CisgIHN3aXRjaChvcCl7CisgICAg Y2FzZSAxOgorICAgICAgcmV0dXJuIGFsbG9jX2h1Z2VwYWdlX2Zyb21fcG9vbChjdXJyZW50LT5k b21haW4pOworICAgIGNhc2UgMjogIAorICAgICAgcmV0dXJuIGZyZWVfaHVnZXBhZ2VfZnJvbV9w b29sKGN1cnJlbnQtPmRvbWFpbiwwLDkpOworICAgIGNhc2UgMzoKKyAgICAgIG1mbj1hbGxvY19o dWdlcGFnZV9mcm9tX3Bvb2woY3VycmVudC0+ZG9tYWluKTsKKyAgICAgIHB0ZSA9IHB0ZSAmIDB4 RjAwMDAwMDAwMDAwMEZGRjsKKyAgICAgIHB0ZSA9IHB0ZSB8IG1mbiA8PCAxMjsKKyAgICAgIHBy aW50aygiXG5hMmsyOjpwdHAgPSAlbHggXG4iLHB0ZSk7CisgICAgICAvLypwdGVwID0gcHRlOwor ICAgICAgcHJpbnRrKCJcbmEyazI6OnB0cCA9ICVseCBcbiIsKnB0ZXApOworICAgICAgcmV0dXJu IHB0ZTsgIAorICAgICAgYnJlYWs7CiAgIH0KLSAgZWxzZSBpZihvcD09VU1BU0tfSFVHRV9QQUdF KXsKLSAgICAvL2ZyZWVfaHVnZXBhZ2VzX2Zyb21fcG9vbChOVUxMKTsgCi0gIH0KLSAgcmV0dXJu IDBVTDsKKyAgcmV0dXJuIDA7CiB9Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy94ZW4uaAorKysg Yi94ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmgKQEAgLTkzLDcgKzkzLDcgQEAgREVGSU5FX1hFTl9H VUVTVF9IQU5ETEUoeGVuX3Bmbl90KTsKICNkZWZpbmUgX19IWVBFUlZJU09SX2RvbWN0bCAgICAg ICAgICAgICAgIDM2CiAjZGVmaW5lIF9fSFlQRVJWSVNPUl9rZXhlY19vcCAgICAgICAgICAgICAz NwogI2RlZmluZSBfX0hZUEVSVklTT1JfdG1lbV9vcCAgICAgICAgICAgICAgMzgKLSNkZWZpbmUg X19IWVBFUlZJU09SX2FsbG9jX2h1Z2UJCSAgMzkJCisjZGVmaW5lIF9fSFlQRVJWSVNPUl9hbGxv Y19odWdlcGFnZQkJICAzOQkKIC8qIEFyY2hpdGVjdHVyZS1zcGVjaWZpYyBoeXBlcmNhbGwgZGVm aW5pdGlvbnMuICovCiAjZGVmaW5lIF9fSFlQRVJWSVNPUl9hcmNoXzAgICAgICAgICAgICAgICA0 OAogI2RlZmluZSBfX0hZUEVSVklTT1JfYXJjaF8xICAgICAgICAgICAgICAgNDkKZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL3hlbi9jb21waWxlLmggYi94ZW4vaW5jbHVkZS94ZW4vY29tcGlsZS5o CmluZGV4IDNhMjhhMmIuLjBlZTA2NTkgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9jb21w aWxlLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2NvbXBpbGUuaApAQCAtMSw2ICsxLDYgQEAKLSNk ZWZpbmUgWEVOX0NPTVBJTEVfREFURQkiU2F0IEphbiAyOSAxNjoxMjowNyBJU1QgMjAxMSIKLSNk ZWZpbmUgWEVOX0NPTVBJTEVfVElNRQkiMTY6MTI6MDciCi0jZGVmaW5lIFhFTl9DT01QSUxFX0JZ CQkiYXNod2luIgorI2RlZmluZSBYRU5fQ09NUElMRV9EQVRFCSJUaHUgRmViIDEwIDEyOjAyOjM3 IElTVCAyMDExIgorI2RlZmluZSBYRU5fQ09NUElMRV9USU1FCSIxMjowMjozNyIKKyNkZWZpbmUg WEVOX0NPTVBJTEVfQlkJCSJyb290IgogI2RlZmluZSBYRU5fQ09NUElMRV9ET01BSU4JIndpbGRm aXJlIgogI2RlZmluZSBYRU5fQ09NUElMRV9IT1NUCSJhc2h3aW4ud2lsZGZpcmUiCiAjZGVmaW5l IFhFTl9DT01QSUxFUgkJImdjYyB2ZXJzaW9uIDQuNC40IDIwMTAwNTAzIChSZWQgSGF0IDQuNC40 LTIpIChHQ0MpICIKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9odWdldGFibGUuaCBiL3hl bi9pbmNsdWRlL3hlbi9odWdldGFibGUuaApvbGQgbW9kZSAxMDA3NTUKbmV3IG1vZGUgMTAwNjQ0 CmluZGV4IGUyYWUyYjIuLmI3ZjQ3MzUKLS0tIGEveGVuL2luY2x1ZGUveGVuL2h1Z2V0YWJsZS5o CisrKyBiL3hlbi9pbmNsdWRlL3hlbi9odWdldGFibGUuaApAQCAtMSwyNiArMSwzMyBAQAogI2lm bmRlZiBfX0hVR0VUQUJMRV9IX18KICNkZWZpbmUgX19IVUdFVEFCTEVfSF9fCiAjZGVmaW5lIEhV R0VQQUdFX1BPT0xfU0laRSAyMAotI2RlZmluZSBNQVNLX0hVR0VfUEFHRSAxCi0jZGVmaW5lIFVN QVNLX0hVR0VfUEFHRSAwCisjZGVmaW5lIE1BUktfSFVHRVBBR0UgMQorI2RlZmluZSBVTk1BUktf SFVHRVBBR0UgMAorI2RlZmluZSBBTExPQ0FURV9IVUdFUEFHRSAxCisjaW5jbHVkZTx4ZW4vc2No ZWQuaD4KKwogLyp0aGlzIHN0cnVjdCBpcyBkZWZpbmVkIGJ5IHRlYW0gYTJrMgogICogaHVnZV9y ZWZfY250IGlkIGZvciBjb3VudGluZyBudW1iZXIgb2YgcmVmZXJlbmNlcwogICogaHVnZV9tZm4g d2lsbCBnaXZlIHRoZSBtZm4gbnVtYmVyIG9mIGh1Z2VwYWdlIGluIFJBTQogICogb3JkZXIgZmll bGQgYnkgZGVmYXVsdCBpcyA5IGJ1dCBjYW4gYmUgY2hhbmdlZCBmb3IgZnV0dXJlIHNjb3BlCiAg KiBkb21haW5faWQgd2lsbCBzdG9yZSB0aGUgZG9tYWluIGlkIHdob20gdGhlIGh1Z2UgcGFnZSBp cyBhbGxvY2F0ZWQKICAqLwotLypzdHJ1Y3QgaHVnZXNwYWNlewotICB1bnNpZ25lZCBpbnQgbWFz azsKKworc3RydWN0IGh1Z2VzcGFjZXsKKyAgaW50IG1hcms7CiAgIHVuc2lnbmVkIGludCBodWdl X3JlZl9jbnQ7Ci0gIHVuc2lnbmVkIGludCBodWdlX21mbjsKKyAgdW5zaWduZWQgbG9uZyBtZm47 CisgIHVuc2lnbmVkIGxvbmcgcGZuOwogICB1bnNpZ25lZCBpbnQgb3JkZXI7Ci0gIHVuc2lnbmVk IGludCBkb21haW47CisgIHVuc2lnbmVkIGludCBkb21haW5faWQ7CiAgIHN0cnVjdCBwYWdlX2lu Zm8gKnBnOwotICB2b2lkICpodWdlX3Zpcl9hZGQ7ICAKLSAgfWh1Z2VfcG9vbFsyMF07Ki8KLWV4 dGVybiBpbnQgaHVnZXBhZ2VfY250OwotZXh0ZXJuIHVuc2lnbmVkIGxvbmcgIGRvX2FsbG9jX2h1 Z2UoaW50IG9wKTsKLWV4dGVybiBpbnQgaW5pdF9odWdlcGFnZXNfcG9vbChpbnQpOworICB2b2lk ICp2aXJ0OyAgCit9OworCisvL2V4dGVybiBzdHJ1Y3QgaHVnZXNwYWNlIGh1Z2Vwb29sWzIwXTsK IAorZXh0ZXJuIGludCBpbml0X2h1Z2VwYWdlc19wb29sKHZvaWQpOworZXh0ZXJuIHVuc2lnbmVk IGxvbmcgIGFsbG9jX2h1Z2VwYWdlX2Zyb21fcG9vbChzdHJ1Y3QgZG9tYWluICpkKTsKK2V4dGVy biBpbnQgZnJlZV9odWdlcGFnZV9mcm9tX3Bvb2woc3RydWN0IGRvbWFpbiAqZCwgbG9uZyBtZm4s aW50IG9yZGVyKTsKK2V4dGVybiB1bnNpZ25lZCBsb25nIGRvX2FsbG9jX2h1Z2VwYWdlKGludCBv cCx1bnNpZ25lZCBsb25nICogcHRlcCx1bnNpZ25lZCBsb25nIHB0ZSk7CiAjZW5kaWYKLSAKZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9oeXBlcmNhbGwuaCBiL3hlbi9pbmNsdWRlL3hlbi9o eXBlcmNhbGwuaAppbmRleCBkYjRhMmFjLi44MTIzMzE1IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVk ZS94ZW4vaHlwZXJjYWxsLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2h5cGVyY2FsbC5oCkBAIC0x MjksNyArMTI5LDggQEAgZG9feGVub3Byb2Zfb3AoaW50IG9wLCBYRU5fR1VFU1RfSEFORExFKHZv aWQpIGFyZyk7CiAgKiAKICAqKi8KIGV4dGVybiB1bnNpZ25lZCBsb25nCi1kb19hbGxvY19odWdl KGludCBvcCk7Citkb19hbGxvY19odWdlcGFnZShpbnQgb3AsdW5zaWduZWQgbG9uZyAqcHRlcCx1 bnNpZ25lZCBsb25nIHB0ZSk7CisKIAo= --0016362836dee40a01049bed88bd Content-Type: text/x-patch; charset=US-ASCII; name="jeremy2-6-32-27.patch" Content-Disposition: attachment; filename="jeremy2-6-32-27.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gjzp3tlj1 ZGlmZiAtLWdpdCBhL2Eub3V0IGIvYS5vdXQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4 IGY3YzYyMTguLjAwMDAwMDAKQmluYXJ5IGZpbGVzIGEvYS5vdXQgYW5kIC9kZXYvbnVsbCBkaWZm ZXIKZGlmZiAtLWdpdCBhL2EucCBiL2EucApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MjBkZGE3Zi4uMDAwMDAwMAotLS0gYS9hLnAKKysrIC9kZXYvbnVsbApAQCAtMSwxNjQgKzAsMCBA QAotZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3hlbi9oeXBlcmNhbGwuaCBiL2Fy Y2gveDg2L2luY2x1ZGUvYXNtL3hlbi9oeXBlcmNhbGwuaAotaW5kZXggNDFjNGJlMC4uNmEzMTJh MyAxMDA2NDQKLS0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3hlbi9oeXBlcmNhbGwuaAotKysr IGIvYXJjaC94ODYvaW5jbHVkZS9hc20veGVuL2h5cGVyY2FsbC5oCi1AQCAtMjg2LDYgKzI4Niwx MSBAQCBIWVBFUlZJU09SX2ZwdV90YXNrc3dpdGNoKGludCBzZXQpCi0gCXJldHVybiBfaHlwZXJj YWxsMShpbnQsIGZwdV90YXNrc3dpdGNoLCBzZXQpOwotIH0KLSAKLStzdGF0aWMgaW5saW5lIHVu c2lnbmVkIGxvbmcKLStIWVBFUlZJU09SX2FsbG9jX2h1Z2VwYWdlKGludCBzZXQpCi0rewotKwly ZXR1cm4gX2h5cGVyY2FsbDEodW5zaWduZWQgbG9uZyxhbGxvY19odWdlcGFnZSwgc2V0KTsKLSt9 Ci0gc3RhdGljIGlubGluZSBpbnQKLSBIWVBFUlZJU09SX3NjaGVkX29wKGludCBjbWQsIHZvaWQg KmFyZykKLSB7Ci1kaWZmIC0tZ2l0IGEvYXJjaC94ODYveGVuL21tdS5jIGIvYXJjaC94ODYveGVu L21tdS5jCi1pbmRleCAzMmExYzY1Li4xODFjZWZkIDEwMDY0NAotLS0tIGEvYXJjaC94ODYveGVu L21tdS5jCi0rKysgYi9hcmNoL3g4Ni94ZW4vbW11LmMKLUBAIC0yNDEsNiArMjQxLDcgQEAgc3Rh dGljIHZvaWQgcDJtX3RvcF9pbml0KHVuc2lnbmVkIGxvbmcgKioqdG9wKQotIAkJdG9wW2ldID0g cDJtX21pZF9taXNzaW5nOwotIH0KLSAKLSsKLSBzdGF0aWMgdm9pZCBwMm1fdG9wX21mbl9pbml0 KHVuc2lnbmVkIGxvbmcgKnRvcCkKLSB7Ci0gCXVuc2lnbmVkIGk7Ci1AQCAtNTE2LDYgKzUxNyw3 IEBAIHN0YXRpYyBib29sIGFsbG9jX3AybSh1bnNpZ25lZCBsb25nIHBmbikKLSB9Ci0gCi0gLyog VHJ5IHRvIGluc3RhbGwgcDJtIG1hcHBpbmc7IGZhaWwgaWYgaW50ZXJtZWRpYXRlIGJpdHMgbWlz c2luZyAqLwotKwotIGJvb2wgX19zZXRfcGh5c190b19tYWNoaW5lKHVuc2lnbmVkIGxvbmcgcGZu LCB1bnNpZ25lZCBsb25nIG1mbikKLSB7Ci0gCXVuc2lnbmVkIHRvcGlkeCwgbWlkaWR4LCBpZHg7 Ci1AQCAtNTM3LDYgKzUzOSwxNSBAQCBib29sIF9fc2V0X3BoeXNfdG9fbWFjaGluZSh1bnNpZ25l ZCBsb25nIHBmbiwgdW5zaWduZWQgbG9uZyBtZm4pCi0gCXJldHVybiB0cnVlOwotIH0KLSAKLSsv L2EyazI6Ci0rc3RhdGljIHZvaWQgeGVuX3NldF9odWdlbWZuKHVuc2lnbmVkIGxvbmcgcGZuKXsK LSsgIHVuc2lnbmVkIGxvbmcgbWZuOwotKyAgcHJpbnRrKCJcbmFrMmsyOiBCZWZvcmUgaHlwZXJc biIpOwotKyAgbWZuPUhZUEVSVklTT1JfYWxsb2NfaHVnZXBhZ2UoMSk7Ci0rICBwcmludGsoIlxu YWsyazI6IEFmdGVyIGh5cGVyXG4iKTsKLSsKLSsgIF9fc2V0X3BoeXNfdG9fbWFjaGluZShwZm4s bWZuKTsKLSt9Ci0gYm9vbCBzZXRfcGh5c190b19tYWNoaW5lKHVuc2lnbmVkIGxvbmcgcGZuLCB1 bnNpZ25lZCBsb25nIG1mbikKLSB7Ci0gCWlmICh1bmxpa2VseSh4ZW5fZmVhdHVyZShYRU5GRUFU X2F1dG9fdHJhbnNsYXRlZF9waHlzbWFwKSkpIHsKLWRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4v bW11LmggYi9hcmNoL3g4Ni94ZW4vbW11LmgKLWluZGV4IDUzN2JiOWEuLjc5MDQwYTQgMTAwNjQ0 Ci0tLS0gYS9hcmNoL3g4Ni94ZW4vbW11LmgKLSsrKyBiL2FyY2gveDg2L3hlbi9tbXUuaAotQEAg LTU2LDYgKzU2LDcgQEAgcHRlX3QgeGVuX3B0ZXBfbW9kaWZ5X3Byb3Rfc3RhcnQoc3RydWN0IG1t X3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRkciwgcHRlX3QKLSB2b2lkICB4ZW5fcHRlcF9t b2RpZnlfcHJvdF9jb21taXQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRk ciwKLSAJCQkJICBwdGVfdCAqcHRlcCwgcHRlX3QgcHRlKTsKLSAKLSsKLSB1bnNpZ25lZCBsb25n IHhlbl9yZWFkX2NyMl9kaXJlY3Qodm9pZCk7Ci0gCi0gZXh0ZXJuIHZvaWQgeGVuX2luaXRfbW11 X29wcyh2b2lkKTsKLWRpZmYgLS1naXQgYS9kcml2ZXJzL3hlbi9iYWxsb29uLmMgYi9kcml2ZXJz L3hlbi9iYWxsb29uLmMKLWluZGV4IDE1OGNkZDEuLmNlOGY2MGQgMTAwNjQ0Ci0tLS0gYS9kcml2 ZXJzL3hlbi9iYWxsb29uLmMKLSsrKyBiL2RyaXZlcnMveGVuL2JhbGxvb24uYwotQEAgLTI0NSw4 ICsyNDUsOSBAQCBzdGF0aWMgaW50IGluY3JlYXNlX3Jlc2VydmF0aW9uKHVuc2lnbmVkIGxvbmcg bnJfcGFnZXMpCi0gCi0gCWlmIChucl9wYWdlcyA+IEFSUkFZX1NJWkUoZnJhbWVfbGlzdCkpCi0g CQlucl9wYWdlcyA9IEFSUkFZX1NJWkUoZnJhbWVfbGlzdCk7Ci0tCi0rCXByaW50aygiXG5hMmsy OmluYyBmaXJzdCBwYWdlXG4iKTsKLSAJcGFnZSA9IGJhbGxvb25fZmlyc3RfcGFnZSgpOwotKwlw cmludGsoIlxuYTJrMjppbmMgYWZ0ZXIgZmlyc3QgcGFnZVxuIik7Ci0gCWZvciAoaSA9IDA7IGkg PCBucl9wYWdlczsgaSsrKSB7Ci0gCQlCVUdfT04ocGFnZSA9PSBOVUxMKTsKLSAJCWZyYW1lX2xp c3RbaV0gPSBwYWdlX3RvX3BmbihwYWdlKTsKLUBAIC0zMDgsNiArMzA5LDcgQEAgc3RhdGljIGlu dCBkZWNyZWFzZV9yZXNlcnZhdGlvbih1bnNpZ25lZCBsb25nIG5yX3BhZ2VzKQotIAkJLmRvbWlk ICAgICAgICA9IERPTUlEX1NFTEYKLSAJfTsKLSAKLSsJcHJpbnRrKCJcbmEyazI6ZGVjIGZpcnN0 IHBhZ2VcbiIpOwotIAlpZiAobnJfcGFnZXMgPiBBUlJBWV9TSVpFKGZyYW1lX2xpc3QpKQotIAkJ bnJfcGFnZXMgPSBBUlJBWV9TSVpFKGZyYW1lX2xpc3QpOwotIAotQEAgLTM2NCw3ICszNjYsNyBA QCBzdGF0aWMgaW50IGRlY3JlYXNlX3Jlc2VydmF0aW9uKHVuc2lnbmVkIGxvbmcgbnJfcGFnZXMp Ci0gCXJlc2VydmF0aW9uLmV4dGVudF9vcmRlciA9IGJhbGxvb25fb3JkZXI7Ci0gCXJldCA9IEhZ UEVSVklTT1JfbWVtb3J5X29wKFhFTk1FTV9kZWNyZWFzZV9yZXNlcnZhdGlvbiwgJnJlc2VydmF0 aW9uKTsKLSAJQlVHX09OKHJldCAhPSBucl9wYWdlcyk7Ci0tCi0rCXByaW50aygiXG5hMmsyOmRl YyBhZnRlciBoeXBlciBjYWxsXG4iKTsKLSAJcmV0dXJuIG5lZWRfc2xlZXA7Ci0gfQotIAotZGlm ZiAtLWdpdCBhL2ZzL2V4ZWMuYyBiL2ZzL2V4ZWMuYwotaW5kZXggYTA0MTBlYi4uZTI5MjllNyAx MDA2NDQKLS0tLSBhL2ZzL2V4ZWMuYwotKysrIGIvZnMvZXhlYy5jCi1AQCAtMTg3Niw3ICsxODc2 LDcgQEAgdm9pZCBkb19jb3JlZHVtcChsb25nIHNpZ25yLCBpbnQgZXhpdF9jb2RlLCBzdHJ1Y3Qg cHRfcmVncyAqcmVncykKLSAJCQkgKiBjb3JlX3BhdHRlcm4gcHJvY2VzcyBkaWVzLgotIAkJCSAq LwotIAkJCXByaW50ayhLRVJOX1dBUk5JTkcKLS0JCQkJIlByb2Nlc3MgJWQoJXMpIGhhcyBSTElN SVRfQ09SRSBzZXQgdG8gMFxuIiwKLSsJCQkJImEyazI6UHJvY2VzcyAlZCglcykgaGFzIFJMSU1J VF9DT1JFIHNldCB0byAwXG4iLAotIAkJCQl0YXNrX3RnaWRfdm5yKGN1cnJlbnQpLCBjdXJyZW50 LT5jb21tKTsKLSAJCQlwcmludGsoS0VSTl9XQVJOSU5HICJBYm9ydGluZyBjb3JlXG4iKTsKLSAJ CQlnb3RvIGZhaWxfdW5sb2NrOwotZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2ludGVyZmFjZS94 ZW4uaCBiL2luY2x1ZGUveGVuL2ludGVyZmFjZS94ZW4uaAotaW5kZXggOWZmYWVlMC4uZjIwMGEz MyAxMDA2NDQKLS0tLSBhL2luY2x1ZGUveGVuL2ludGVyZmFjZS94ZW4uaAotKysrIGIvaW5jbHVk ZS94ZW4vaW50ZXJmYWNlL3hlbi5oCi1AQCAtNTgsNyArNTgsNyBAQAotICNkZWZpbmUgX19IWVBF UlZJU09SX2V2ZW50X2NoYW5uZWxfb3AgICAgIDMyCi0gI2RlZmluZSBfX0hZUEVSVklTT1JfcGh5 c2Rldl9vcCAgICAgICAgICAgMzMKLSAjZGVmaW5lIF9fSFlQRVJWSVNPUl9odm1fb3AgICAgICAg ICAgICAgICAzNAotLQotKyNkZWZpbmUgX19IWVBFUlZJU09SX2FsbG9jX2h1Z2VwYWdlCSAgMzkg Ly9hMmsyCi0gLyogQXJjaGl0ZWN0dXJlLXNwZWNpZmljIGh5cGVyY2FsbCBkZWZpbml0aW9ucy4g Ki8KLSAjZGVmaW5lIF9fSFlQRVJWSVNPUl9hcmNoXzAgICAgICAgICAgICAgICA0OAotICNkZWZp bmUgX19IWVBFUlZJU09SX2FyY2hfMSAgICAgICAgICAgICAgIDQ5Ci1kaWZmIC0tZ2l0IGEvbW0v aHVnZXRsYi5jIGIvbW0vaHVnZXRsYi5jCi1pbmRleCBmNWExMDZlLi4wZjExYmUxIDEwMDY0NAot LS0tIGEvbW0vaHVnZXRsYi5jCi0rKysgYi9tbS9odWdldGxiLmMKLUBAIC0xOCw3ICsxOCw2IEBA Ci0gI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+Ci0gI2luY2x1ZGUgPGxpbnV4L2Jvb3RtZW0uaD4K LSAjaW5jbHVkZSA8bGludXgvc3lzZnMuaD4KLS0KLSAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KLSAj aW5jbHVkZSA8YXNtL3BndGFibGUuaD4KLSAjaW5jbHVkZSA8YXNtL2lvLmg+Ci1AQCAtNjksNiAr NjgsNyBAQCBzdHJ1Y3QgZmlsZV9yZWdpb24gewotIAlsb25nIHRvOwotIH07Ci0gCi0rCi0gc3Rh dGljIGxvbmcgcmVnaW9uX2FkZChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLCBsb25nIGYsIGxvbmcg dCkKLSB7Ci0gCXN0cnVjdCBmaWxlX3JlZ2lvbiAqcmcsICpucmcsICp0cmc7Ci1AQCAtNDU1LDcg KzQ1NSw4IEBAIHN0YXRpYyB2b2lkIGVucXVldWVfaHVnZV9wYWdlKHN0cnVjdCBoc3RhdGUgKmgs IHN0cnVjdCBwYWdlICpwYWdlKQotIAloLT5mcmVlX2h1Z2VfcGFnZXMrKzsKLSAJaC0+ZnJlZV9o dWdlX3BhZ2VzX25vZGVbbmlkXSsrOwotIH0KLS0KLSsvL2EyazI6Ci0rZXh0ZXJuIHZvaWQgeGVu X3NldF9odWdlbWZuKHVuc2lnbmVkIGxvbmcgcGZuKTsKLSBzdGF0aWMgc3RydWN0IHBhZ2UgKmRl cXVldWVfaHVnZV9wYWdlX3ZtYShzdHJ1Y3QgaHN0YXRlICpoLAotIAkJCQlzdHJ1Y3Qgdm1fYXJl YV9zdHJ1Y3QgKnZtYSwKLSAJCQkJdW5zaWduZWQgbG9uZyBhZGRyZXNzLCBpbnQgYXZvaWRfcmVz ZXJ2ZSkKLUBAIC00OTksNyArNTAwLDExIEBAIHN0YXRpYyBzdHJ1Y3QgcGFnZSAqZGVxdWV1ZV9o dWdlX3BhZ2Vfdm1hKHN0cnVjdCBoc3RhdGUgKmgsCi0gCQkJYnJlYWs7Ci0gCQl9Ci0gCX0KLSsJ cHJpbnRrKCJcbkhlbGxvIFxuIik7Ci0gCW1wb2xfY29uZF9wdXQobXBvbCk7Ci0rCS8vYTJrMjoK LSsJcHJpbnRrKCJcbmEyazI6ICVzIFxuIixfX0ZVTkNUSU9OX18pOwotKwl4ZW5fc2V0X2h1Z2Vt Zm4ocGFnZV90b19wZm4ocGFnZSkpOwotIAlyZXR1cm4gcGFnZTsKLSB9Ci0gCmRpZmYgLS1naXQg YS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oIGIvYXJjaC94ODYvaW5jbHVk ZS9hc20vcGFyYXZpcnRfdHlwZXMuaAppbmRleCAyMGM2MmY3Li4zMjAyZGNjIDEwMDY0NAotLS0g YS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oCisrKyBiL2FyY2gveDg2L2lu Y2x1ZGUvYXNtL3BhcmF2aXJ0X3R5cGVzLmgKQEAgLTI2MiwxMCArMjYyLDggQEAgc3RydWN0IHB2 X21tdV9vcHMgewogCXZvaWQgKCpyZWxlYXNlX3B0ZSkodW5zaWduZWQgbG9uZyBwZm4pOwogCXZv aWQgKCpyZWxlYXNlX3BtZCkodW5zaWduZWQgbG9uZyBwZm4pOwogCXZvaWQgKCpyZWxlYXNlX3B1 ZCkodW5zaWduZWQgbG9uZyBwZm4pOwotICAKKwogCS8qIFBhZ2V0YWJsZSBtYW5pcHVsYXRpb24g ZnVuY3Rpb25zICovCi0gICAgICAgIC8vYTJrMjoKLSAgLy8vdm9pZCAoKnhlbl9zZXRfaHVnZW1m bikodW5zaWduZWQgbG9uZyBwZm4pOyAKIAl2b2lkICgqc2V0X3B0ZSkocHRlX3QgKnB0ZXAsIHB0 ZV90IHB0ZXZhbCk7CiAJdm9pZCAoKnNldF9wdGVfYXQpKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1 bnNpZ25lZCBsb25nIGFkZHIsCiAJCQkgICBwdGVfdCAqcHRlcCwgcHRlX3QgcHRldmFsKTsKZGlm ZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3hlbi9oeXBlcmNhbGwuaCBiL2FyY2gveDg2 L2luY2x1ZGUvYXNtL3hlbi9oeXBlcmNhbGwuaAppbmRleCBiMjZmYmZmLi40MWM0YmUwIDEwMDY0 NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS94ZW4vaHlwZXJjYWxsLmgKKysrIGIvYXJjaC94 ODYvaW5jbHVkZS9hc20veGVuL2h5cGVyY2FsbC5oCkBAIC0yODYsMTEgKzI4Niw2IEBAIEhZUEVS VklTT1JfZnB1X3Rhc2tzd2l0Y2goaW50IHNldCkKIAlyZXR1cm4gX2h5cGVyY2FsbDEoaW50LCBm cHVfdGFza3N3aXRjaCwgc2V0KTsKIH0KIAotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nCi1I WVBFUlZJU09SX2FsbG9jX2h1Z2VwYWdlKGludCBzZXQsdW5zaWduZWQgbG9uZyAqcHRlcCx1bnNp Z25lZCBsb25nIHB0ZSkKLXsKLQlyZXR1cm4gX2h5cGVyY2FsbDModW5zaWduZWQgbG9uZyxhbGxv Y19odWdlcGFnZSwgc2V0LHB0ZXAscHRlKTsKLX0KIHN0YXRpYyBpbmxpbmUgaW50CiBIWVBFUlZJ U09SX3NjaGVkX29wKGludCBjbWQsIHZvaWQgKmFyZykKIHsKZGlmZiAtLWdpdCBhL2FyY2gveDg2 L3hlbi9tbXUuYyBiL2FyY2gveDg2L3hlbi9tbXUuYwppbmRleCAzNjBhYjMyLi4zMmExYzY1IDEw MDY0NAotLS0gYS9hcmNoL3g4Ni94ZW4vbW11LmMKKysrIGIvYXJjaC94ODYveGVuL21tdS5jCkBA IC0yNDEsNyArMjQxLDYgQEAgc3RhdGljIHZvaWQgcDJtX3RvcF9pbml0KHVuc2lnbmVkIGxvbmcg KioqdG9wKQogCQl0b3BbaV0gPSBwMm1fbWlkX21pc3Npbmc7CiB9CiAKLQogc3RhdGljIHZvaWQg cDJtX3RvcF9tZm5faW5pdCh1bnNpZ25lZCBsb25nICp0b3ApCiB7CiAJdW5zaWduZWQgaTsKQEAg LTUxNyw3ICs1MTYsNiBAQCBzdGF0aWMgYm9vbCBhbGxvY19wMm0odW5zaWduZWQgbG9uZyBwZm4p CiB9CiAKIC8qIFRyeSB0byBpbnN0YWxsIHAybSBtYXBwaW5nOyBmYWlsIGlmIGludGVybWVkaWF0 ZSBiaXRzIG1pc3NpbmcgKi8KLQogYm9vbCBfX3NldF9waHlzX3RvX21hY2hpbmUodW5zaWduZWQg bG9uZyBwZm4sIHVuc2lnbmVkIGxvbmcgbWZuKQogewogCXVuc2lnbmVkIHRvcGlkeCwgbWlkaWR4 LCBpZHg7CkBAIC01MzksMjggKzUzNyw2IEBAIGJvb2wgX19zZXRfcGh5c190b19tYWNoaW5lKHVu c2lnbmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIG1mbikKIAlyZXR1cm4gdHJ1ZTsKIH0KIAot Ly9hMmsyOgotCi12b2lkIHhlbl9zZXRfaHVnZW1mbih1bnNpZ25lZCBsb25nIHBmbixwdGVfdCAq cHRlcCwgcHRlX3QgcHRlKXsKLSAgdW5zaWduZWQgbG9uZyBtZm47Ly8sKipwcHAsKnB0OwotICAv L3BtZF90ICpwcCxwdGUxOwotICAvL3BwcD0odW5zaWduZWQgbG9uZyoqKSZwcDsKLSAgLy8qcHBw PXB0ZXA7Ci0gIHByaW50aygiYWsyazI6IEJlZm9yZSBoeXBlciBcbiIpOwotICBwdGUucHRlPUhZ UEVSVklTT1JfYWxsb2NfaHVnZXBhZ2UoMywodW5zaWduZWQgbG9uZyAqKXB0ZXAsKHVuc2lnbmVk IGxvbmcpcHRlLnB0ZSk7Ci0gIG1mbj0ocHRlLnB0ZSA+PiAxMikgJiAweDBmZmZmZmZmZmZmZmY7 Ci0gIHByaW50aygiTUZOOiAlbHggXG4iLG1mbik7Ci0gIHByaW50aygiYWsyazI6IEFmdGVyIGh5 cGVyIFxuIik7Ci0gIHByaW50aygiYTJrMjo6ICVseCIsZ2V0X3BoeXNfdG9fbWFjaGluZShwZm4p KTsKLSAgLy9wdD0odW5zaWduZWQgbG9uZyopJnB0ZTE7Ci0gIC8vKnB0PXB0ZTsKLQotICBpZiht Zm4+MCAmJiBwZm4gPiAwKQotICBfX3NldF9waHlzX3RvX21hY2hpbmUocGZuLG1mbik7Ci0gIHhl bl9zZXRfcHRlKHB0ZXAscHRlKTsKLSAgLy94ZW5fc2V0X3BtZChwcCxwdGUxKTsKLSAgcHJpbnRr KCJwdGU9JWx4XG4iLHB0ZS5wdGUpOwotfQogYm9vbCBzZXRfcGh5c190b19tYWNoaW5lKHVuc2ln bmVkIGxvbmcgcGZuLCB1bnNpZ25lZCBsb25nIG1mbikKIHsKIAlpZiAodW5saWtlbHkoeGVuX2Zl YXR1cmUoWEVORkVBVF9hdXRvX3RyYW5zbGF0ZWRfcGh5c21hcCkpKSB7CkBAIC0yMzM1LDcgKzIz MTEsNiBAQCBzdGF0aWMgX19pbml0IHZvaWQgeGVuX3Bvc3RfYWxsb2NhdG9yX2luaXQodm9pZCkK IAlwdl9tbXVfb3BzLnNldF9wdGUgPSB4ZW5fc2V0X3B0ZTsKIAlwdl9tbXVfb3BzLnNldF9wbWQg PSB4ZW5fc2V0X3BtZDsKIAlwdl9tbXVfb3BzLnNldF9wdWQgPSB4ZW5fc2V0X3B1ZDsKLS8vCXB2 X21tdV9vcHMuc2V0X3hlbl9odWdlbWZuPXhlbl9zZXRfaHVnZW1mbjsKICNpZiBQQUdFVEFCTEVf TEVWRUxTID09IDQKIAlwdl9tbXVfb3BzLnNldF9wZ2QgPSB4ZW5fc2V0X3BnZDsKICNlbmRpZgpA QCAtMjM5Niw3ICsyMzcxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBwdl9tbXVfb3BzIHhlbl9t bXVfb3BzIF9faW5pdGRhdGEgPSB7CiAJLnNldF9wdGUgPSB4ZW5fc2V0X3B0ZV9pbml0LAogCS5z ZXRfcHRlX2F0ID0geGVuX3NldF9wdGVfYXQsCiAJLnNldF9wbWQgPSB4ZW5fc2V0X3BtZF9oeXBl ciwKLQkvLy5zZXRfeGVuX2h1Z2VtZm49c2V0X3hlbl9odWdlbWZuLAorCiAJLnB0ZXBfbW9kaWZ5 X3Byb3Rfc3RhcnQgPSBfX3B0ZXBfbW9kaWZ5X3Byb3Rfc3RhcnQsCiAJLnB0ZXBfbW9kaWZ5X3By b3RfY29tbWl0ID0gX19wdGVwX21vZGlmeV9wcm90X2NvbW1pdCwKIApkaWZmIC0tZ2l0IGEvYXJj aC94ODYveGVuL21tdS5oIGIvYXJjaC94ODYveGVuL21tdS5oCmluZGV4IDIwNjY0NDYuLjUzN2Ji OWEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi9tbXUuaAorKysgYi9hcmNoL3g4Ni94ZW4vbW11 LmgKQEAgLTIsNyArMiw3IEBACiAKICNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CiAjaW5jbHVk ZSA8YXNtL3BhZ2UuaD4KLSNpbmNsdWRlIDxsaW51eC9teWh1Z2UuaD4KKwogZW51bSBwdF9sZXZl bCB7CiAJUFRfUEdELAogCVBUX1BVRCwKQEAgLTU2LDcgKzU2LDYgQEAgcHRlX3QgeGVuX3B0ZXBf bW9kaWZ5X3Byb3Rfc3RhcnQoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRk ciwgcHRlX3QKIHZvaWQgIHhlbl9wdGVwX21vZGlmeV9wcm90X2NvbW1pdChzdHJ1Y3QgbW1fc3Ry dWN0ICptbSwgdW5zaWduZWQgbG9uZyBhZGRyLAogCQkJCSAgcHRlX3QgKnB0ZXAsIHB0ZV90IHB0 ZSk7CiAKLQogdW5zaWduZWQgbG9uZyB4ZW5fcmVhZF9jcjJfZGlyZWN0KHZvaWQpOwogCiBleHRl cm4gdm9pZCB4ZW5faW5pdF9tbXVfb3BzKHZvaWQpOwpkaWZmIC0tZ2l0IGEvYi5wIGIvYi5wCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjlkZTI5Li4wMDAwMDAwCmRpZmYgLS1naXQg YS9kcml2ZXJzL3hlbi9iYWxsb29uLmMgYi9kcml2ZXJzL3hlbi9iYWxsb29uLmMKaW5kZXggYTJk NGYzMC4uMTU4Y2RkMSAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vYmFsbG9vbi5jCisrKyBiL2Ry aXZlcnMveGVuL2JhbGxvb24uYwpAQCAtMjQ1LDYgKzI0NSw3IEBAIHN0YXRpYyBpbnQgaW5jcmVh c2VfcmVzZXJ2YXRpb24odW5zaWduZWQgbG9uZyBucl9wYWdlcykKIAogCWlmIChucl9wYWdlcyA+ IEFSUkFZX1NJWkUoZnJhbWVfbGlzdCkpCiAJCW5yX3BhZ2VzID0gQVJSQVlfU0laRShmcmFtZV9s aXN0KTsKKwogCXBhZ2UgPSBiYWxsb29uX2ZpcnN0X3BhZ2UoKTsKIAlmb3IgKGkgPSAwOyBpIDwg bnJfcGFnZXM7IGkrKykgewogCQlCVUdfT04ocGFnZSA9PSBOVUxMKTsKQEAgLTM2Myw2ICszNjQs NyBAQCBzdGF0aWMgaW50IGRlY3JlYXNlX3Jlc2VydmF0aW9uKHVuc2lnbmVkIGxvbmcgbnJfcGFn ZXMpCiAJcmVzZXJ2YXRpb24uZXh0ZW50X29yZGVyID0gYmFsbG9vbl9vcmRlcjsKIAlyZXQgPSBI WVBFUlZJU09SX21lbW9yeV9vcChYRU5NRU1fZGVjcmVhc2VfcmVzZXJ2YXRpb24sICZyZXNlcnZh dGlvbik7CiAJQlVHX09OKHJldCAhPSBucl9wYWdlcyk7CisKIAlyZXR1cm4gbmVlZF9zbGVlcDsK IH0KIApkaWZmIC0tZ2l0IGEvZnMvZXhlYy5jIGIvZnMvZXhlYy5jCmluZGV4IGUyOTI5ZTcuLmEw NDEwZWIgMTAwNjQ0Ci0tLSBhL2ZzL2V4ZWMuYworKysgYi9mcy9leGVjLmMKQEAgLTE4NzYsNyAr MTg3Niw3IEBAIHZvaWQgZG9fY29yZWR1bXAobG9uZyBzaWduciwgaW50IGV4aXRfY29kZSwgc3Ry dWN0IHB0X3JlZ3MgKnJlZ3MpCiAJCQkgKiBjb3JlX3BhdHRlcm4gcHJvY2VzcyBkaWVzLgogCQkJ ICovCiAJCQlwcmludGsoS0VSTl9XQVJOSU5HCi0JCQkJImEyazI6UHJvY2VzcyAlZCglcykgaGFz IFJMSU1JVF9DT1JFIHNldCB0byAwXG4iLAorCQkJCSJQcm9jZXNzICVkKCVzKSBoYXMgUkxJTUlU X0NPUkUgc2V0IHRvIDBcbiIsCiAJCQkJdGFza190Z2lkX3ZucihjdXJyZW50KSwgY3VycmVudC0+ Y29tbSk7CiAJCQlwcmludGsoS0VSTl9XQVJOSU5HICJBYm9ydGluZyBjb3JlXG4iKTsKIAkJCWdv dG8gZmFpbF91bmxvY2s7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L215aHVnZS5oIGIvaW5j bHVkZS9saW51eC9teWh1Z2UuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmU2NjVi YS4uMDAwMDAwMAotLS0gYS9pbmNsdWRlL2xpbnV4L215aHVnZS5oCisrKyAvZGV2L251bGwKQEAg LTEsNSArMCwwIEBACi0jaWZuZGVmIF9fTVlfSFVHRV9IX18KLSNkZWZpbmUgX19NWV9IVUdFX0hf XwotZXh0ZXJuIHZvaWQgeGVuX3NldF9odWdlbWZuKHVuc2lnbmVkIGxvbmcgcGZuLHB0ZV90ICpw dGVwLCBwdGVfdCBwdGUpOwotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL2luY2x1ZGUveGVuL2ludGVy ZmFjZS94ZW4uaCBiL2luY2x1ZGUveGVuL2ludGVyZmFjZS94ZW4uaAppbmRleCBmMjAwYTMzLi45 ZmZhZWUwIDEwMDY0NAotLS0gYS9pbmNsdWRlL3hlbi9pbnRlcmZhY2UveGVuLmgKKysrIGIvaW5j bHVkZS94ZW4vaW50ZXJmYWNlL3hlbi5oCkBAIC01OCw3ICs1OCw3IEBACiAjZGVmaW5lIF9fSFlQ RVJWSVNPUl9ldmVudF9jaGFubmVsX29wICAgICAzMgogI2RlZmluZSBfX0hZUEVSVklTT1JfcGh5 c2Rldl9vcCAgICAgICAgICAgMzMKICNkZWZpbmUgX19IWVBFUlZJU09SX2h2bV9vcCAgICAgICAg ICAgICAgIDM0Ci0jZGVmaW5lIF9fSFlQRVJWSVNPUl9hbGxvY19odWdlcGFnZQkgIDM5IC8vYTJr MgorCiAvKiBBcmNoaXRlY3R1cmUtc3BlY2lmaWMgaHlwZXJjYWxsIGRlZmluaXRpb25zLiAqLwog I2RlZmluZSBfX0hZUEVSVklTT1JfYXJjaF8wICAgICAgICAgICAgICAgNDgKICNkZWZpbmUgX19I WVBFUlZJU09SX2FyY2hfMSAgICAgICAgICAgICAgIDQ5CmRpZmYgLS1naXQgYS9tbS9odWdldGxi LmMgYi9tbS9odWdldGxiLmMKaW5kZXggMDZmZmU0YS4uZjVhMTA2ZSAxMDA2NDQKLS0tIGEvbW0v aHVnZXRsYi5jCisrKyBiL21tL2h1Z2V0bGIuYwpAQCAtMTgsMTQgKzE4LDEzIEBACiAjaW5jbHVk ZSA8bGludXgvbXV0ZXguaD4KICNpbmNsdWRlIDxsaW51eC9ib290bWVtLmg+CiAjaW5jbHVkZSA8 bGludXgvc3lzZnMuaD4KKwogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CiAjaW5jbHVkZSA8YXNtL3Bn dGFibGUuaD4KICNpbmNsdWRlIDxhc20vaW8uaD4KIAogI2luY2x1ZGUgPGxpbnV4L2h1Z2V0bGIu aD4KLSNpbmNsdWRlIDxsaW51eC9teWh1Z2UuaD4KICNpbmNsdWRlICJpbnRlcm5hbC5oIgotLy8j aW5jbHVkZSAiLi4vaW5jbHVkZS9hc20tZ2VuZXJpYy9wYWdlLmgiCiAKIGNvbnN0IHVuc2lnbmVk IGxvbmcgaHVnZXRsYl96ZXJvID0gMCwgaHVnZXRsYl9pbmZpbml0eSA9IH4wVUw7CiBzdGF0aWMg Z2ZwX3QgaHRsYl9hbGxvY19tYXNrID0gR0ZQX0hJR0hVU0VSOwpAQCAtNzAsNyArNjksNiBAQCBz dHJ1Y3QgZmlsZV9yZWdpb24gewogCWxvbmcgdG87CiB9OwogCi0KIHN0YXRpYyBsb25nIHJlZ2lv bl9hZGQoc3RydWN0IGxpc3RfaGVhZCAqaGVhZCwgbG9uZyBmLCBsb25nIHQpCiB7CiAJc3RydWN0 IGZpbGVfcmVnaW9uICpyZywgKm5yZywgKnRyZzsKQEAgLTQ1Nyw4ICs0NTUsNyBAQCBzdGF0aWMg dm9pZCBlbnF1ZXVlX2h1Z2VfcGFnZShzdHJ1Y3QgaHN0YXRlICpoLCBzdHJ1Y3QgcGFnZSAqcGFn ZSkKIAloLT5mcmVlX2h1Z2VfcGFnZXMrKzsKIAloLT5mcmVlX2h1Z2VfcGFnZXNfbm9kZVtuaWRd Kys7CiB9Ci0vL2EyazI6Ci0vL2V4dGVybiB2b2lkIHhlbl9zZXRfaHVnZW1mbih1bnNpZ25lZCBs b25nIHBmbik7CisKIHN0YXRpYyBzdHJ1Y3QgcGFnZSAqZGVxdWV1ZV9odWdlX3BhZ2Vfdm1hKHN0 cnVjdCBoc3RhdGUgKmgsCiAJCQkJc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAJCQkJdW5z aWduZWQgbG9uZyBhZGRyZXNzLCBpbnQgYXZvaWRfcmVzZXJ2ZSkKQEAgLTUwMiw5ICs0OTksNyBA QCBzdGF0aWMgc3RydWN0IHBhZ2UgKmRlcXVldWVfaHVnZV9wYWdlX3ZtYShzdHJ1Y3QgaHN0YXRl ICpoLAogCQkJYnJlYWs7CiAJCX0KIAl9Ci0JCiAJbXBvbF9jb25kX3B1dChtcG9sKTsKLQkvL3hl bl9zZXRfaHVnZW1mbihwYWdlX3RvX3BmbihwYWdlKSk7CiAJcmV0dXJuIHBhZ2U7CiB9CiAKQEAg LTExMDAsNyArMTA5NSw2IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBodWdldGxiX2luaXRfaHN0YXRl cyh2b2lkKQogewogCXN0cnVjdCBoc3RhdGUgKmg7CiAKLQlwcmludGsoIlxuYTJrMjolc1xuIixf X0ZVTkNUSU9OX18pOwogCWZvcl9lYWNoX2hzdGF0ZShoKSB7CiAJCS8qIG92ZXJzaXplIGh1Z2Vw YWdlcyB3ZXJlIGluaXQnZWQgaW4gZWFybHkgYm9vdCAqLwogCQlpZiAoaC0+b3JkZXIgPCBNQVhf T1JERVIpCkBAIC0xNzQwLDcgKzE3MzQsOCBAQCBzdGF0aWMgcHRlX3QgbWFrZV9odWdlX3B0ZShz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwgc3RydWN0IHBhZ2UgKnBhZ2UsCiAJcHRlX3QgZW50 cnk7CiAKIAlpZiAod3JpdGFibGUpIHsKLQkJZW50cnkgPXB0ZV9ta3dyaXRlKHB0ZV9ta2RpcnR5 KG1rX3B0ZShwYWdlLCB2bWEtPnZtX3BhZ2VfcHJvdCkpKTsKKwkJZW50cnkgPQorCQkgICAgcHRl X21rd3JpdGUocHRlX21rZGlydHkobWtfcHRlKHBhZ2UsIHZtYS0+dm1fcGFnZV9wcm90KSkpOwog CX0gZWxzZSB7CiAJCWVudHJ5ID0gaHVnZV9wdGVfd3Jwcm90ZWN0KG1rX3B0ZShwYWdlLCB2bWEt PnZtX3BhZ2VfcHJvdCkpOwogCX0KQEAgLTIxMjgsMTQgKzIxMjMsMTAgQEAgcmV0cnk6CiAJaWYg KCFodWdlX3B0ZV9ub25lKGh1Z2VfcHRlcF9nZXQocHRlcCkpKQogCQlnb3RvIGJhY2tvdXQ7CiAK LQlwcmludGsoIlxuYTJrMjolcyAscHRlPSVsdSBcbiIsX19GVU5DVElPTl9fLHB0ZXAtPnB0ZSk7 CiAJbmV3X3B0ZSA9IG1ha2VfaHVnZV9wdGUodm1hLCBwYWdlLCAoKHZtYS0+dm1fZmxhZ3MgJiBW TV9XUklURSkKIAkJCQkmJiAodm1hLT52bV9mbGFncyAmIFZNX1NIQVJFRCkpKTsKIAlzZXRfaHVn ZV9wdGVfYXQobW0sIGFkZHJlc3MsIHB0ZXAsIG5ld19wdGUpOwotCXByaW50aygiXG5hMmsyOiVz ICxwdGU9JWx4ICxuZXdfcHRlPSVseCAtLTExIFxuIixfX0ZVTkNUSU9OX18scHRlcC0+cHRlLG5l d19wdGUucHRlKTsKLQl4ZW5fc2V0X2h1Z2VtZm4ocGFnZV90b19wZm4ocGFnZSkscHRlcCxuZXdf cHRlKTsKLQlwcmludGsoIlxuYTJrMjolcyAscHRlPSVseCAsbmV3X3B0ZT0lbHggXG4iLF9fRlVO Q1RJT05fXyxwdGVwLT5wdGUsbmV3X3B0ZS5wdGUpOwotCQorCiAJaWYgKChmbGFncyAmIEZBVUxU X0ZMQUdfV1JJVEUpICYmICEodm1hLT52bV9mbGFncyAmIFZNX1NIQVJFRCkpIHsKIAkJLyogT3B0 aW1pemF0aW9uLCBkbyB0aGUgQ09XIHdpdGhvdXQgYSBzZWNvbmQgZmF1bHQgKi8KIAkJcmV0ID0g aHVnZXRsYl9jb3cobW0sIHZtYSwgYWRkcmVzcywgcHRlcCwgbmV3X3B0ZSwgcGFnZSk7CmRpZmYg LS1naXQgYS90ZW1wLmMgYi90ZW1wLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNj ZDRjOTIuLjAwMDAwMDAKLS0tIGEvdGVtcC5jCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBA Ci0jaW5jbHVkZTxzdGRpby5oPgotI2RlZmluZSBzd2FwICh4LHkseikgKHggdDt0PXk7eT16O3o9 dDspCi1tYWluKCkKLXsKLQotaW50IGEsYixjOwotCi1zd2FwKGludCxhLGIpOwotfQo= --0016362836dee40a01049bed88bd Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --0016362836dee40a01049bed88bd--