From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Wed, 17 Aug 2005 15:17:23 -0700 From: Andrew Morton Subject: pagefault scalability patches Message-Id: <20050817151723.48c948c7.akpm@osdl.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Wed__17_Aug_2005_15_17_23_-0700_XDIaa/nxzyKk/cDo" Sender: owner-linux-mm@kvack.org Return-Path: To: Linus Torvalds , Hugh Dickins Cc: Christoph Lameter , Nick Piggin , linux-mm@kvack.org List-ID: This is a multi-part message in MIME format. --Multipart=_Wed__17_Aug_2005_15_17_23_-0700_XDIaa/nxzyKk/cDo Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit These are getting in the way now, and I need to make a go/no-go decision. I have vague feelings of ickiness with the patches wrt: a) general increase of complexity b) the fact that they only partially address the problem: anonymous page faults are addressed, but lots of other places aren't. c) the fact that they address one particular part of one particular workload on exceedingly rare machines. I believe that Nick has plans to address b). I'd like us to thrash this out (again), please. Hugh, could you (for the nth and final time) describe your concerns with these patches? Thanks. (Three patches attached) --Multipart=_Wed__17_Aug_2005_15_17_23_-0700_XDIaa/nxzyKk/cDo Content-Type: application/octet-stream; name="page-fault-patches-introduce-pte_xchg-and-pte_cmpxchg.patch" Content-Disposition: attachment; filename="page-fault-patches-introduce-pte_xchg-and-pte_cmpxchg.patch" Content-Transfer-Encoding: base64 CkZyb206IENocmlzdG9waCBMYW1ldGVyIDxjaHJpc3RvcGhAbGFtZXRlci5jb20+CgpVcGRhdGlu ZyBhIHBhZ2UgdGFibGUgZW50cnkgKHB0ZSkgY2FuIGJlIGRpZmZpY3VsdCBzaW5jZSB0aGUgTU1V IG1heSBtb2RpZnkKdGhlIHB0ZSBjb25jdXJyZW50bHkuICBUaGUgY3VycmVudCBhcHByb2FjaCB0 YWtlbiBpcyB0byBmaXJzdCBleGNoYW5nZSB0aGUgcHRlCmNvbnRlbnRzIHdpdGggemVyby4gIENs ZWFyaW5nIHRoZSBwdGUgYnkgd3JpdGluZyB6ZXJvIHRvIGl0IGFsc28gcmVzZXRzIHRoZQpwcmVz ZW50IGJpdCwgd2hpY2ggd2lsbCBzdG9wIHRoZSBNTVUgZnJvbSBtb2RpZnlpbmcgdGhlIHB0ZSBh bmQgYWxsb3dzIHRoZQpwcm9jZXNzaW5nIG9mIHRoZSBiaXRzIHRoYXQgd2VyZSBzZXQuICBUaGVu IHRoZSBwdGUgaXMgc2V0IHRvIGl0cyBuZXcgdmFsdWUuCgpXaGlsZSB0aGUgcHJlc2VudCBiaXQg aXMgbm90IHNldCwgYWNjZXNzZXMgdG8gdGhlIHBhZ2UgbWFwcGVkIGJ5IHRoZSBwdGUgd2lsbApy ZXN1bHRzIGluIHBhZ2UgZmF1bHRzLCB3aGljaCBtYXkgaW5zdGFsbCBhIG5ldyBwdGUgb3ZlciB0 aGUgbm9uIHByZXNlbnQKZW50cnkuICBJbiBvcmRlciB0byBhdm9pZCB0aGF0IHNjZW5hcmlvIHRo ZSBwYWdlX3RhYmxlX2xvY2sgaXMgaGVsZC4gIEFuCmFjY2VzcyB3aWxsIHN0aWxsIHJlc3VsdCBp biBhIHBhZ2UgZmF1bHQgYnV0IHRoZSBmYXVsdCBoYW5kbGVyIHdpbGwgYWxzbyB0cnkKdG8gYWNx dWlyZSB0aGUgcGFnZV90YWJsZV9sb2NrLiAgVGhlIHBhZ2VfdGFibGVfbG9jayBpcyByZWxlYXNl ZCBhZnRlciB0aGUgcHRlCmhhcyBiZWVuIHNldHVwIGJ5IHRoZSBmaXJzdCBwcm9jZXNzLiAgVGhl IHNlY29uZCBwcm9jZXNzIHdpbGwgbm93IGFjcXVpcmUgdGhlCnBhZ2VfdGFibGVfbG9jayBhbmQg ZmluZCB0aGF0IHRoZXJlIGlzIGFscmVhZHkgYSBwdGUgc2V0dXAgZm9yIHRoaXMgcGFnZSBhbmQK cmV0dXJuIHdpdGhvdXQgaGF2aW5nIGRvbmUgYW55dGhpbmcuCgpUaGlzIG1lYW5zIHRoYXQgYSB1 c2VsZXNzIHBhZ2UgZmF1bHQgaGFzIGJlZW4gZ2VuZXJhdGVkLgoKSG93ZXZlciwgbW9zdCBhcmNo aXRlY3R1cmVzIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gYXRvbWljYWxseSBleGNoYW5nZSB0aGUK dmFsdWUgb2YgdGhlIHB0ZS4gIEZvciB0aG9zZSB0aGUgY2xlYXJpbmcgb2YgcHRlIGJlZm9yZSBz ZXR0aW5nIHRoZW0gdG8gYSBuZXcKdmFsdWUgaXMgbm90IG5lY2Vzc2FyeS4gIFRoZSB1c2Ugb2Yg YXRvbWljIGV4Y2hhbmdlcyBhdm9pZHMgdXNlbGVzcyBwYWdlCmZhdWx0cy4KClRoZSBmb2xsb3dp bmcgcGF0Y2ggaW50cm9kdWNlcyB0d28gbmV3IGF0b21pYyBvcGVyYXRpb25zIHB0ZXBfeGNoZyBh bmQKcHRlcF9jbXB4Y2hnIHRoYXQgbWF5IGJlIHByb3ZpZGVkIGJ5IGFuIGFyY2hpdGVjdHVyZS4g IFRoZSBmYWxsYmFjayBpbgppbmNsdWRlL2FzbS1nZW5lcmljL3BndGFibGUuaCBpcyB0byBzaW11 bGF0ZSBib3RoIG9wZXJhdGlvbnMgdGhyb3VnaCB0aGUKZXhpc3RpbmcgcHRlcF9nZXRfYW5kX2Ns ZWFyIGZ1bmN0aW9uLiAgU28gdGhlcmUgaXMgZXNzZW50aWFsbHkgbm8gY2hhbmdlIGlmCmF0b21p YyBvcGVyYXRpb25zIG9uIHB0ZXMgaGF2ZSBub3QgYmVlbiBkZWZpbmVkLiAgQXJjaGl0ZWN0dXJl cyB0aGF0IGRvIG5vdApzdXBwb3J0IGF0b21pYyBvcGVyYXRpb25zIG9uIHB0ZXMgbWF5IGNvbnRp bnVlIHRvIHVzZSB0aGUgY2xlYXJpbmcgb2YgYSBwdGUuCgpBdG9taWMgb3BlcmF0aW9ucyBhcmUg ZW5hYmxlZCBmb3IgaTM4NiwgaWE2NCBhbmQgeDg2XzY0IGlmIGEgc3VpdGFibGUgQ1BVIGlzCmNv bmZpZ3VyZWQgaW4gU01QIG1vZGUuICBHZW5lcmljIGF0b21pYyBkZWZpbml0aW9ucyBmb3IgcHRl cF94Y2hnIGFuZApwdGVwX2NtcHhjaGcgaGF2ZSBiZWVuIHByb3ZpZGVkIGJhc2VkIG9uIHRoZSBl eGlzdGluZyB4Y2hnKCkgYW5kIGNtcHhjaGcoKQpmdW5jdGlvbnMgdGhhdCBhbHJlYWR5IHdvcmsg YXRvbWljYWxseSBvbiBtYW55IHBsYXRmb3Jtcy4KClRoZSBwcm92aWRlZCBnZW5lcmljIGF0b21p YyBmdW5jdGlvbnMgbWF5IGJlIG92ZXJyaWRkZW4gYXMgdXN1YWwgYnkgZGVmaW5pbmcKdGhlIGFw cHJvcHJpYXRlX19IQVZFX0FSQ0hfeHh4IGNvbnN0YW50IGFuZCBwcm92aWRpbmcgYSBkaWZmZXJl bnQKaW1wbGVtZW50YXRpb24uCgpUaGlzIHBhdGNoIGlzIGEgcGllY2Ugb2YgbXkgYXR0ZW1wdCB0 byByZWR1Y2UgdGhlIHVzZSBvZiB0aGUgcGFnZV90YWJsZV9sb2NrCmluIHRoZSBwYWdlIGZhdWx0 IGhhbmRsZXIgdGhyb3VnaCBhdG9taWMgb3BlcmF0aW9ucy4gIFRoaXMgaXMgb25seSBwb3NzaWJs ZSBpZgppdCBjYW4gYmUgZW5zdXJlZCB0aGF0IGEgcHRlIGlzIG5ldmVyIGNsZWFyZWQgaWYgdGhl IHB0ZSBpcyBpbiB1c2UgZXZlbiB3aGVuCnRoZSBwYWdlX3RhYmxlX2xvY2sgaXMgbm90IGhlbGQu ICBDbGVhcmluZyBhIHB0ZSBiZWZvcmUgc2V0dGluZyBpdCB0byBhbm90aGVyCnZhbHVlIGNvdWxk IHJlc3VsdCBpbiBhIHNpdHVhdGlvbiBpbiB3aGljaCBhIGZhdWx0IGdlbmVyYXRlZCBieSBhbm90 aGVyIGNwdQpjb3VsZCBpbnN0YWxsIGEgcHRlIHdoaWNoIGlzIHRoZW4gaW1tZWRpYXRlbHkgb3Zl cndyaXR0ZW4gYnkgdGhlIGZpcnN0IENQVQpzZXR0aW5nIHRoZSBwdGUgdG8gYSB2YWxpZCB2YWx1 ZSBhZ2Fpbi4gIFRoZSBwYXRjaCBpcyBuZWNlc3NhcnkgZm9yIHRoZSBvdGhlcgpwYXRjaGVzIHJl bW92aW5nIHRoZSB1c2Ugb2YgdGhlIHBhZ2VfdGFibGVfbG9jayB0byB3b3JrIHByb3Blcmx5LgoK U2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoIExhbWV0ZXIgPGNsYW1ldGVyQHNnaS5jb20+ClNpZ25l ZC1vZmYtYnk6IEFuZHJldyBNb3J0b24gPGFrcG1Ab3NkbC5vcmc+Ci0tLQoKIGFyY2gvaTM4Ni9L Y29uZmlnICAgICAgICAgICAgIHwgICAgNSArKwogYXJjaC9pYTY0L0tjb25maWcgICAgICAgICAg ICAgfCAgICA1ICsrCiBhcmNoL3g4Nl82NC9LY29uZmlnICAgICAgICAgICB8ICAgIDUgKysKIGlu Y2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS5oIHwgICA4NiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIG1tL21lbW9yeS5jICAgICAgICAgICAgICAgICAgIHwgICAx NCArKysrLS0KIG1tL21wcm90ZWN0LmMgICAgICAgICAgICAgICAgIHwgICAyMiArKysrKy0tLS0t CiBtbS9ybWFwLmMgICAgICAgICAgICAgICAgICAgICB8ICAgMjIgKysrKystLS0tLQogNyBmaWxl cyBjaGFuZ2VkLCAxMzMgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0pCgpkaWZmIC1wdU4g YXJjaC9pMzg2L0tjb25maWd+cGFnZS1mYXVsdC1wYXRjaGVzLWludHJvZHVjZS1wdGVfeGNoZy1h bmQtcHRlX2NtcHhjaGcgYXJjaC9pMzg2L0tjb25maWcKLS0tIDI1L2FyY2gvaTM4Ni9LY29uZmln fnBhZ2UtZmF1bHQtcGF0Y2hlcy1pbnRyb2R1Y2UtcHRlX3hjaGctYW5kLXB0ZV9jbXB4Y2hnCVdl ZCBBdWcgMTcgMTQ6NTM6MDEgMjAwNQorKysgMjUtYWtwbS9hcmNoL2kzODYvS2NvbmZpZwlXZWQg QXVnIDE3IDE1OjA5OjI0IDIwMDUKQEAgLTkwNSw2ICs5MDUsMTEgQEAgY29uZmlnIEhBVkVfREVD X0xPQ0sKIAlkZXBlbmRzIG9uIChTTVAgfHwgUFJFRU1QVCkgJiYgWDg2X0NNUFhDSEcKIAlkZWZh dWx0IHkKIAorY29uZmlnIEFUT01JQ19UQUJMRV9PUFMKKwlib29sCisJZGVwZW5kcyBvbiBTTVAg JiYgWDg2X0NNUFhDSEcgJiYgIVg4Nl9QQUUKKwlkZWZhdWx0IHkKKwogIyB0dXJuaW5nIHRoaXMg b24gd2FzdGVzIGEgYnVuY2ggb2Ygc3BhY2UuCiAjIFN1bW1pdCBuZWVkcyBpdCBvbmx5IHdoZW4g TlVNQSBpcyBvbgogY29uZmlnIEJPT1RfSU9SRU1BUApkaWZmIC1wdU4gYXJjaC9pYTY0L0tjb25m aWd+cGFnZS1mYXVsdC1wYXRjaGVzLWludHJvZHVjZS1wdGVfeGNoZy1hbmQtcHRlX2NtcHhjaGcg YXJjaC9pYTY0L0tjb25maWcKLS0tIDI1L2FyY2gvaWE2NC9LY29uZmlnfnBhZ2UtZmF1bHQtcGF0 Y2hlcy1pbnRyb2R1Y2UtcHRlX3hjaGctYW5kLXB0ZV9jbXB4Y2hnCVdlZCBBdWcgMTcgMTQ6NTM6 MDEgMjAwNQorKysgMjUtYWtwbS9hcmNoL2lhNjQvS2NvbmZpZwlXZWQgQXVnIDE3IDE1OjA5OjI0 IDIwMDUKQEAgLTI5Nyw2ICsyOTcsMTEgQEAgY29uZmlnIFBSRUVNUFQKIAogc291cmNlICJtbS9L Y29uZmlnIgogCitjb25maWcgQVRPTUlDX1RBQkxFX09QUworCWJvb2wKKwlkZXBlbmRzIG9uIFNN UAorCWRlZmF1bHQgeQorCiBjb25maWcgSEFWRV9ERUNfTE9DSwogCWJvb2wKIAlkZXBlbmRzIG9u IChTTVAgfHwgUFJFRU1QVCkKZGlmZiAtcHVOIGFyY2gveDg2XzY0L0tjb25maWd+cGFnZS1mYXVs dC1wYXRjaGVzLWludHJvZHVjZS1wdGVfeGNoZy1hbmQtcHRlX2NtcHhjaGcgYXJjaC94ODZfNjQv S2NvbmZpZwotLS0gMjUvYXJjaC94ODZfNjQvS2NvbmZpZ35wYWdlLWZhdWx0LXBhdGNoZXMtaW50 cm9kdWNlLXB0ZV94Y2hnLWFuZC1wdGVfY21weGNoZwlXZWQgQXVnIDE3IDE0OjUzOjAxIDIwMDUK KysrIDI1LWFrcG0vYXJjaC94ODZfNjQvS2NvbmZpZwlXZWQgQXVnIDE3IDE1OjA5OjI0IDIwMDUK QEAgLTIxNyw2ICsyMTcsMTEgQEAgY29uZmlnIFNDSEVEX1NNVAogCSAgY29zdCBvZiBzbGlnaHRs eSBpbmNyZWFzZWQgb3ZlcmhlYWQgaW4gc29tZSBwbGFjZXMuIElmIHVuc3VyZSBzYXkKIAkgIE4g aGVyZS4KIAorY29uZmlnIEFUT01JQ19UQUJMRV9PUFMKKwlib29sCisJICBkZXBlbmRzIG9uIFNN UAorCSAgZGVmYXVsdCB5CisKIHNvdXJjZSAia2VybmVsL0tjb25maWcucHJlZW1wdCIKIAogY29u ZmlnIEs4X05VTUEKZGlmZiAtcHVOIGluY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS5ofnBhZ2Ut ZmF1bHQtcGF0Y2hlcy1pbnRyb2R1Y2UtcHRlX3hjaGctYW5kLXB0ZV9jbXB4Y2hnIGluY2x1ZGUv YXNtLWdlbmVyaWMvcGd0YWJsZS5oCi0tLSAyNS9pbmNsdWRlL2FzbS1nZW5lcmljL3BndGFibGUu aH5wYWdlLWZhdWx0LXBhdGNoZXMtaW50cm9kdWNlLXB0ZV94Y2hnLWFuZC1wdGVfY21weGNoZwlX ZWQgQXVnIDE3IDE0OjUzOjAxIDIwMDUKKysrIDI1LWFrcG0vaW5jbHVkZS9hc20tZ2VuZXJpYy9w Z3RhYmxlLmgJV2VkIEF1ZyAxNyAxNTowOTozOCAyMDA1CkBAIC0xMTEsNiArMTExLDkyIEBAIGRv IHsJCQkJICAJCQkJCSAgXAogfSkKICNlbmRpZgogCisjaWZkZWYgQ09ORklHX0FUT01JQ19UQUJM RV9PUFMKKworLyoKKyAqIFRoZSBhcmNoaXRlY3R1cmUgZG9lcyBzdXBwb3J0IGF0b21pYyB0YWJs ZSBvcGVyYXRpb25zLgorICogV2UgbWF5IGJlIGFibGUgdG8gcHJvdmlkZSBhdG9taWMgcHRlcF94 Y2hnIGFuZCBwdGVwX2NtcHhjaGcgdXNpbmcKKyAqIGNtcHhjaGcgYW5kIHhjaGcuCisgKi8KKyNp Zm5kZWYgX19IQVZFX0FSQ0hfUFRFUF9YQ0hHCisjZGVmaW5lIHB0ZXBfeGNoZyhfX21tLCBfX2Fk ZHJlc3MsIF9fcHRlcCwgX19wdGV2YWwpIFwKKwlfX3B0ZSh4Y2hnKCZwdGVfdmFsKCooX19wdGVw KSksIHB0ZV92YWwoX19wdGV2YWwpKSkKKyNlbmRpZgorCisjaWZuZGVmIF9fSEFWRV9BUkNIX1BU RVBfQ01QWENIRworI2RlZmluZSBwdGVwX2NtcHhjaGcoX19tbSwgX19hZGRyZXNzLCBfX3B0ZXAs X19vbGR2YWwsX19uZXd2YWwpCQlcCisJKGNtcHhjaGcoJnB0ZV92YWwoKihfX3B0ZXApKSwJCQkJ CVwKKwkJCXB0ZV92YWwoX19vbGR2YWwpLAkJCQlcCisJCQlwdGVfdmFsKF9fbmV3dmFsKQkJCQlc CisJCSkgPT0gcHRlX3ZhbChfX29sZHZhbCkJCQkJCVwKKwkpCisjZW5kaWYKKworI2lmbmRlZiBf X0hBVkVfQVJDSF9QVEVQX1hDSEdfRkxVU0gKKyNkZWZpbmUgcHRlcF94Y2hnX2ZsdXNoKF9fdm1h LCBfX2FkZHJlc3MsIF9fcHRlcCwgX19wdGV2YWwpCQlcCisoewkJCQkJCQkJCVwKKwlwdGVfdCBf X3B0ZSA9IHB0ZXBfeGNoZyhfX3ZtYSwgX19hZGRyZXNzLCBfX3B0ZXAsIF9fcHRldmFsKTsJXAor CWZsdXNoX3RsYl9wYWdlKF9fdm1hLCBfX2FkZHJlc3MpOwkJCQlcCisJX19wdGU7CQkJCQkJCQlc Cit9KQorI2VuZGlmCisKKyNlbHNlCisKKy8qCisgKiBObyBzdXBwb3J0IGZvciBhdG9taWMgb3Bl cmF0aW9ucyBvbiB0aGUgcGFnZSB0YWJsZS4KKyAqIEV4Y2hhbmdpbmcgb2YgcHRlIHZhbHVlcyBp cyBkb25lIGJ5IGZpcnN0IHN3YXBwaW5nIHplcm9zIGludG8KKyAqIGEgcHRlIGFuZCB0aGVuIHB1 dHRpbmcgbmV3IGNvbnRlbnQgaW50byB0aGUgcHRlIGVudHJ5LgorICogSG93ZXZlciwgdGhlc2Ug ZnVuY3Rpb25zIHdpbGwgZ2VuZXJhdGUgYW4gZW1wdHkgcHRlIGZvciBhCisgKiBzaG9ydCB0aW1l IGZyYW1lLiBUaGlzIG1lYW5zIHRoYXQgdGhlIHBhZ2VfdGFibGVfbG9jayBtdXN0IGJlIGhlbGQK KyAqIHRvIGF2b2lkIGEgcGFnZSBmYXVsdCB0aGF0IHdvdWxkIGluc3RhbGwgYSBuZXcgZW50cnku CisgKi8KKyNpZm5kZWYgX19IQVZFX0FSQ0hfUFRFUF9YQ0hHCisjZGVmaW5lIHB0ZXBfeGNoZyhf X21tLCBfX2FkZHJlc3MsIF9fcHRlcCwgX19wdGV2YWwpCQkJXAorKHsJCQkJCQkJCQlcCisJcHRl X3QgX19wdGUgPSBwdGVwX2dldF9hbmRfY2xlYXIoX19tbSwgX19hZGRyZXNzLCBfX3B0ZXApOwlc CisJc2V0X3B0ZV9hdChfX21tLCBfX2FkZHJlc3MsIF9fcHRlcCwgX19wdGV2YWwpOwkJCVwKKwlf X3B0ZTsJCQkJCQkJCVwKK30pCisjZW5kaWYKKworI2lmbmRlZiBfX0hBVkVfQVJDSF9QVEVQX1hD SEdfRkxVU0gKKyNpZm5kZWYgX19IQVZFX0FSQ0hfUFRFUF9YQ0hHCisjZGVmaW5lIHB0ZXBfeGNo Z19mbHVzaChfX3ZtYSwgX19hZGRyZXNzLCBfX3B0ZXAsIF9fcHRldmFsKQkJXAorKHsJCQkJCQkJ CQlcCisJcHRlX3QgX19wdGUgPSBwdGVwX2NsZWFyX2ZsdXNoKF9fdm1hLCBfX2FkZHJlc3MsIF9f cHRlcCk7CVwKKwlzZXRfcHRlX2F0KChfX3ZtYSktPnZtX21tLCBfX2FkZHJlc3MsIF9fcHRlcCwg X19wdGV2YWwpOwkJXAorCV9fcHRlOwkJCQkJCQkJXAorfSkKKyNlbHNlCisjZGVmaW5lIHB0ZXBf eGNoZ19mbHVzaChfX3ZtYSwgX19hZGRyZXNzLCBfX3B0ZXAsIF9fcHRldmFsKQkJXAorKHsJCQkJ CQkJCQlcCisJcHRlX3QgX19wdGUgPSBwdGVwX3hjaGcoKF9fdm1hKS0+dm1fbW0sIF9fYWRkcmVz cywgX19wdGVwLCBfX3B0ZXZhbCk7XAorCWZsdXNoX3RsYl9wYWdlKF9fdm1hLCBfX2FkZHJlc3Mp OwkJCQlcCisJX19wdGU7CQkJCQkJCQlcCit9KQorI2VuZGlmCisjZW5kaWYKKworLyoKKyAqIFRo ZSBmYWxsYmFjayBmdW5jdGlvbiBmb3IgcHRlcF9jbXB4Y2hnIGF2b2lkcyBhbnkgcmVhbCB1c2Ug b2YgY21weGNoZworICogc2luY2UgY21weGNoZyBtYXkgbm90IGJlIGF2YWlsYWJsZSBvbiBjZXJ0 YWluIGFyY2hpdGVjdHVyZXMuIEluc3RlYWQKKyAqIHRoZSBjbGVhcmluZyBvZiBhIHB0ZSBpcyB1 c2VkIGFzIGEgZm9ybSBvZiBsb2NraW5nIG1lY2hhbmlzbS4KKyAqIFRoaXMgYXBwcm9hY2ggd2ls bCBvbmx5IHdvcmsgaWYgdGhlIHBhZ2VfdGFibGVfbG9jayBpcyBoZWxkIHRvIGluc3VyZQorICog dGhhdCB0aGUgcHRlIGlzIG5vdCBwb3B1bGF0ZWQgYnkgYSBwYWdlIGZhdWx0IGdlbmVyYXRlZCBv biBhbm90aGVyCisgKiBDUFUuCisgKi8KKyNpZm5kZWYgX19IQVZFX0FSQ0hfUFRFUF9DTVBYQ0hH CisjZGVmaW5lIHB0ZXBfY21weGNoZyhfX21tLCBfX2FkZHJlc3MsIF9fcHRlcCwgX19vbGQsIF9f bmV3KQkJXAorKHsJCQkJCQkJCQlcCisJcHRlX3QgcHJldiA9IHB0ZXBfZ2V0X2FuZF9jbGVhcihf X21tLCBfX2FkZHJlc3MsIF9fcHRlcCk7CVwKKwlpbnQgciA9IHB0ZV92YWwocHJldikgPT0gcHRl X3ZhbChfX29sZCk7CQkJXAorCXNldF9wdGVfYXQoX19tbSwgX19hZGRyZXNzLCBfX3B0ZXAsIHIg PyAoX19uZXcpIDogcHJldik7CVwKKwlyOwkJCQkJCQkJXAorfSkKKyNlbmRpZgorI2VuZGlmCisK ICNpZm5kZWYgX19IQVZFX0FSQ0hfUFRFUF9TRVRfV1JQUk9URUNUCiBzdGF0aWMgaW5saW5lIHZv aWQgcHRlcF9zZXRfd3Jwcm90ZWN0KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25n IGFkZHJlc3MsIHB0ZV90ICpwdGVwKQogewpkaWZmIC1wdU4gbW0vbWVtb3J5LmN+cGFnZS1mYXVs dC1wYXRjaGVzLWludHJvZHVjZS1wdGVfeGNoZy1hbmQtcHRlX2NtcHhjaGcgbW0vbWVtb3J5LmMK LS0tIDI1L21tL21lbW9yeS5jfnBhZ2UtZmF1bHQtcGF0Y2hlcy1pbnRyb2R1Y2UtcHRlX3hjaGct YW5kLXB0ZV9jbXB4Y2hnCVdlZCBBdWcgMTcgMTQ6NTM6MDEgMjAwNQorKysgMjUtYWtwbS9tbS9t ZW1vcnkuYwlXZWQgQXVnIDE3IDE1OjA5OjMzIDIwMDUKQEAgLTU1MSwxNSArNTUxLDE5IEBAIHN0 YXRpYyB2b2lkIHphcF9wdGVfcmFuZ2Uoc3RydWN0IG1tdV9nYXQKIAkJCQkgICAgIHBhZ2UtPmlu ZGV4ID4gZGV0YWlscy0+bGFzdF9pbmRleCkpCiAJCQkJCWNvbnRpbnVlOwogCQkJfQotCQkJcHRl bnQgPSBwdGVwX2dldF9hbmRfY2xlYXIodGxiLT5tbSwgYWRkciwgcHRlKTsKLQkJCXRsYl9yZW1v dmVfdGxiX2VudHJ5KHRsYiwgcHRlLCBhZGRyKTsKLQkJCWlmICh1bmxpa2VseSghcGFnZSkpCisJ CQlpZiAodW5saWtlbHkoIXBhZ2UpKSB7CisJCQkJcHRlbnQgPSBwdGVwX2dldF9hbmRfY2xlYXIo dGxiLT5tbSwgYWRkciwgcHRlKTsKKwkJCQl0bGJfcmVtb3ZlX3RsYl9lbnRyeSh0bGIsIHB0ZSwg YWRkcik7CiAJCQkJY29udGludWU7CisJCQl9CiAJCQlpZiAodW5saWtlbHkoZGV0YWlscykgJiYg ZGV0YWlscy0+bm9ubGluZWFyX3ZtYQogCQkJICAgICYmIGxpbmVhcl9wYWdlX2luZGV4KGRldGFp bHMtPm5vbmxpbmVhcl92bWEsCiAJCQkJCQlhZGRyKSAhPSBwYWdlLT5pbmRleCkKLQkJCQlzZXRf cHRlX2F0KHRsYi0+bW0sIGFkZHIsIHB0ZSwKLQkJCQkJICAgcGdvZmZfdG9fcHRlKHBhZ2UtPmlu ZGV4KSk7CisJCQkJcHRlbnQgPSBwdGVwX3hjaGcodGxiLT5tbSwgYWRkciwgcHRlLAorCQkJCQkJ ICBwZ29mZl90b19wdGUocGFnZS0+aW5kZXgpKTsKKwkJCWVsc2UKKwkJCQlwdGVudCA9IHB0ZXBf Z2V0X2FuZF9jbGVhcih0bGItPm1tLCBhZGRyLCBwdGUpOworCQkJdGxiX3JlbW92ZV90bGJfZW50 cnkodGxiLCBwdGUsIGFkZHIpOwogCQkJaWYgKHB0ZV9kaXJ0eShwdGVudCkpCiAJCQkJc2V0X3Bh Z2VfZGlydHkocGFnZSk7CiAJCQlpZiAoUGFnZUFub24ocGFnZSkpCmRpZmYgLXB1TiBtbS9tcHJv dGVjdC5jfnBhZ2UtZmF1bHQtcGF0Y2hlcy1pbnRyb2R1Y2UtcHRlX3hjaGctYW5kLXB0ZV9jbXB4 Y2hnIG1tL21wcm90ZWN0LmMKLS0tIDI1L21tL21wcm90ZWN0LmN+cGFnZS1mYXVsdC1wYXRjaGVz LWludHJvZHVjZS1wdGVfeGNoZy1hbmQtcHRlX2NtcHhjaGcJV2VkIEF1ZyAxNyAxNDo1MzowMSAy MDA1CisrKyAyNS1ha3BtL21tL21wcm90ZWN0LmMJV2VkIEF1ZyAxNyAxNDo1MzowMSAyMDA1CkBA IC0zMiwxNyArMzIsMTkgQEAgc3RhdGljIHZvaWQgY2hhbmdlX3B0ZV9yYW5nZShzdHJ1Y3QgbW1f cwogCiAJcHRlID0gcHRlX29mZnNldF9tYXAocG1kLCBhZGRyKTsKIAlkbyB7Ci0JCWlmIChwdGVf cHJlc2VudCgqcHRlKSkgewotCQkJcHRlX3QgcHRlbnQ7CisJCXB0ZV90IHB0ZW50OworcmVkbzoK KwkJcHRlbnQgPSAqcHRlOworCQlpZiAoIXB0ZV9wcmVzZW50KHB0ZW50KSkKKwkJCWNvbnRpbnVl OwogCi0JCQkvKiBBdm9pZCBhbiBTTVAgcmFjZSB3aXRoIGhhcmR3YXJlIHVwZGF0ZWQgZGlydHkv Y2xlYW4KLQkJCSAqIGJpdHMgYnkgd2lwaW5nIHRoZSBwdGUgYW5kIHRoZW4gc2V0dGluZyB0aGUg bmV3IHB0ZQotCQkJICogaW50byBwbGFjZS4KLQkJCSAqLwotCQkJcHRlbnQgPSBwdGVfbW9kaWZ5 KHB0ZXBfZ2V0X2FuZF9jbGVhcihtbSwgYWRkciwgcHRlKSwgbmV3cHJvdCk7Ci0JCQlzZXRfcHRl X2F0KG1tLCBhZGRyLCBwdGUsIHB0ZW50KTsKLQkJCWxhenlfbW11X3Byb3RfdXBkYXRlKHB0ZW50 KTsKLQkJfQorCQkvKiBEZWFsIHdpdGggYSBwb3RlbnRpYWwgU01QIHJhY2Ugd2l0aCBoYXJkd2Fy ZS9hcmNoCisJCSAqIGludGVycnVwdCB1cGRhdGluZyBkaXJ0eS9jbGVhbiBiaXRzIHRocm91Z2gg dGhlIHVzZQorCQkgKiBvZiBwdGVwX2NtcHhjaGcuCisJCSAqLworCQlpZiAoIXB0ZXBfY21weGNo ZyhtbSwgYWRkciwgcHRlLCBwdGVudCwgcHRlX21vZGlmeShwdGVudCwgbmV3cHJvdCkpKQorCQkJ CWdvdG8gcmVkbzsKKwkJbGF6eV9tbXVfcHJvdF91cGRhdGUocHRlbnQpOwogCX0gd2hpbGUgKHB0 ZSsrLCBhZGRyICs9IFBBR0VfU0laRSwgYWRkciAhPSBlbmQpOwogCXB0ZV91bm1hcChwdGUgLSAx KTsKIH0KZGlmZiAtcHVOIG1tL3JtYXAuY35wYWdlLWZhdWx0LXBhdGNoZXMtaW50cm9kdWNlLXB0 ZV94Y2hnLWFuZC1wdGVfY21weGNoZyBtbS9ybWFwLmMKLS0tIDI1L21tL3JtYXAuY35wYWdlLWZh dWx0LXBhdGNoZXMtaW50cm9kdWNlLXB0ZV94Y2hnLWFuZC1wdGVfY21weGNoZwlXZWQgQXVnIDE3 IDE0OjUzOjAxIDIwMDUKKysrIDI1LWFrcG0vbW0vcm1hcC5jCVdlZCBBdWcgMTcgMTU6MDI6NTcg MjAwNQpAQCAtNTM5LDExICs1MzksNiBAQCBzdGF0aWMgaW50IHRyeV90b191bm1hcF9vbmUoc3Ry dWN0IHBhZ2UgCiAKIAkvKiBOdWtlIHRoZSBwYWdlIHRhYmxlIGVudHJ5LiAqLwogCWZsdXNoX2Nh Y2hlX3BhZ2Uodm1hLCBhZGRyZXNzLCBwYWdlX3RvX3BmbihwYWdlKSk7Ci0JcHRldmFsID0gcHRl cF9jbGVhcl9mbHVzaCh2bWEsIGFkZHJlc3MsIHB0ZSk7Ci0KLQkvKiBNb3ZlIHRoZSBkaXJ0eSBi aXQgdG8gdGhlIHBoeXNpY2FsIHBhZ2Ugbm93IHRoZSBwdGUgaXMgZ29uZS4gKi8KLQlpZiAocHRl X2RpcnR5KHB0ZXZhbCkpCi0JCXNldF9wYWdlX2RpcnR5KHBhZ2UpOwogCiAJaWYgKFBhZ2VBbm9u KHBhZ2UpKSB7CiAJCXN3cF9lbnRyeV90IGVudHJ5ID0geyAudmFsID0gcGFnZS0+cHJpdmF0ZSB9 OwpAQCAtNTU4LDEwICs1NTMsMTUgQEAgc3RhdGljIGludCB0cnlfdG9fdW5tYXBfb25lKHN0cnVj dCBwYWdlIAogCQkJbGlzdF9hZGQoJm1tLT5tbWxpc3QsICZpbml0X21tLm1tbGlzdCk7CiAJCQlz cGluX3VubG9jaygmbW1saXN0X2xvY2spOwogCQl9Ci0JCXNldF9wdGVfYXQobW0sIGFkZHJlc3Ms IHB0ZSwgc3dwX2VudHJ5X3RvX3B0ZShlbnRyeSkpOworCQlwdGV2YWwgPSBwdGVwX3hjaGdfZmx1 c2godm1hLCBhZGRyZXNzLCBwdGUsIHN3cF9lbnRyeV90b19wdGUoZW50cnkpKTsKIAkJQlVHX09O KHB0ZV9maWxlKCpwdGUpKTsKIAkJZGVjX21tX2NvdW50ZXIobW0sIGFub25fcnNzKTsKLQl9CisJ fSBlbHNlCisJCXB0ZXZhbCA9IHB0ZXBfY2xlYXJfZmx1c2godm1hLCBhZGRyZXNzLCBwdGUpOwor CisJLyogTW92ZSB0aGUgZGlydHkgYml0IHRvIHRoZSBwaHlzaWNhbCBwYWdlIG5vdyB0aGUgcHRl IGlzIGdvbmUuICovCisJaWYgKHB0ZV9kaXJ0eShwdGV2YWwpKQorCQlzZXRfcGFnZV9kaXJ0eShw YWdlKTsKIAogCWRlY19tbV9jb3VudGVyKG1tLCByc3MpOwogCXBhZ2VfcmVtb3ZlX3JtYXAocGFn ZSk7CkBAIC02NTMsMTUgKzY1MywxNSBAQCBzdGF0aWMgdm9pZCB0cnlfdG9fdW5tYXBfY2x1c3Rl cih1bnNpZ25lCiAJCWlmIChwdGVwX2NsZWFyX2ZsdXNoX3lvdW5nKHZtYSwgYWRkcmVzcywgcHRl KSkKIAkJCWNvbnRpbnVlOwogCi0JCS8qIE51a2UgdGhlIHBhZ2UgdGFibGUgZW50cnkuICovCiAJ CWZsdXNoX2NhY2hlX3BhZ2Uodm1hLCBhZGRyZXNzLCBwZm4pOwotCQlwdGV2YWwgPSBwdGVwX2Ns ZWFyX2ZsdXNoKHZtYSwgYWRkcmVzcywgcHRlKTsKIAogCQkvKiBJZiBub25saW5lYXIsIHN0b3Jl IHRoZSBmaWxlIHBhZ2Ugb2Zmc2V0IGluIHRoZSBwdGUuICovCiAJCWlmIChwYWdlLT5pbmRleCAh PSBsaW5lYXJfcGFnZV9pbmRleCh2bWEsIGFkZHJlc3MpKQotCQkJc2V0X3B0ZV9hdChtbSwgYWRk cmVzcywgcHRlLCBwZ29mZl90b19wdGUocGFnZS0+aW5kZXgpKTsKKwkJCXB0ZXZhbCA9IHB0ZXBf eGNoZ19mbHVzaCh2bWEsIGFkZHJlc3MsIHB0ZSwgcGdvZmZfdG9fcHRlKHBhZ2UtPmluZGV4KSk7 CisJCWVsc2UKKwkJCXB0ZXZhbCA9IHB0ZXBfY2xlYXJfZmx1c2godm1hLCBhZGRyZXNzLCBwdGUp OwogCi0JCS8qIE1vdmUgdGhlIGRpcnR5IGJpdCB0byB0aGUgcGh5c2ljYWwgcGFnZSBub3cgdGhl IHB0ZSBpcyBnb25lLiAqLworCQkvKiBNb3ZlIHRoZSBkaXJ0eSBiaXQgdG8gdGhlIHBoeXNpY2Fs IHBhZ2Ugbm93IHRoYXQgdGhlIHB0ZSBpcyBnb25lLiAqLwogCQlpZiAocHRlX2RpcnR5KHB0ZXZh bCkpCiAJCQlzZXRfcGFnZV9kaXJ0eShwYWdlKTsKIApfCg== --Multipart=_Wed__17_Aug_2005_15_17_23_-0700_XDIaa/nxzyKk/cDo Content-Type: application/octet-stream; name="page-fault-patches-optional-page_lock-acquisition-in.patch" Content-Disposition: attachment; filename="page-fault-patches-optional-page_lock-acquisition-in.patch" Content-Transfer-Encoding: base64 CkZyb206IENocmlzdG9waCBMYW1ldGVyIDxjaHJpc3RvcGhAbGFtZXRlci5jb20+CgpUaGUgcGFn ZSBmYXVsdCBoYW5kbGVyIGF0dGVtcHRzIHRvIHVzZSB0aGUgcGFnZV90YWJsZV9sb2NrIG9ubHkg Zm9yIHNob3J0IHRpbWUKcGVyaW9kcy4gIEl0IHJlcGVhdGVkbHkgZHJvcHMgYW5kIHJlYWNxdWly ZXMgdGhlIGxvY2suICBXaGVuIHRoZSBsb2NrIGlzCnJlYWNxdWlyZWQsIGNoZWNrcyBhcmUgbWFk ZSBpZiB0aGUgdW5kZXJseWluZyBwdGUgaGFzIGNoYW5nZWQgYmVmb3JlIHJlcGxhY2luZwp0aGUg cHRlIHZhbHVlLiAgVGhlc2UgbG9jYXRpb25zIGFyZSBhIGdvb2QgZml0IGZvciB0aGUgdXNlIG9m IHB0ZXBfY21weGNoZy4KClRoZSBmb2xsb3dpbmcgcGF0Y2ggYWxsb3dzIHRoZSB1c2Ugb2YgYXRv bWljIG9wZXJhdGlvbnMgdG8gcmVtb3ZlIHRoZSBmaXJzdAphY3F1aXNpdGlvbiBvZiB0aGUgcGFn ZV90YWJsZV9sb2NrLiAgQSBzZWN0aW9uIHVzaW5nIGF0b21pYyBwdGUgb3BlcmF0aW9ucyBpcwpi ZWd1biB3aXRoCgoJcGFnZV90YWJsZV9hdG9taWNfc3RhcnQoc3RydWN0IG1tX3N0cnVjdCAqKQoK YW5kIGVuZHMgd2l0aAoKCXBhZ2VfdGFibGVfYXRvbWljX3N0b3Aoc3RydWN0IG1tX3N0cnVjdCAq KQoKQm90aCBvZiB0aGVzZSBiZWNvbWUgc3Bpbl9sb2NrKHBhZ2VfdGFibGVfbG9jaykgYW5kCnNw aW5fdW5sb2NrKHBhZ2VfdGFibGVfbG9jaykgaWYgYXRvbWljIHBhZ2UgdGFibGUgb3BlcmF0aW9u cyBhcmUgbm90CmNvbmZpZ3VyZWQgKENPTkZJR19BVE9NSUNfVEFCTEVfT1BTIHVuZGVmaW5lZCku CgpBdG9taWMgcHRlIG9wZXJhdGlvbnMgdXNpbmcgcHRlX3hjaGcgYW5kIHB0ZV9jbXB4Y2hnIG9u bHkgd29yayBmb3IgdGhlIGxvd2VzdApsYXllciBvZiB0aGUgcGFnZSB0YWJsZS4gIEhpZ2hlciBs YXllcnMgbWF5IGFsc28gYmUgcG9wdWxhdGVkIGluIGFuIGF0b21pYyB3YXkKYnkgZGVmaW5pbmcg cG1kX3Rlc3RfYW5kX3BvcHVsYXRlKCkgZXRjLiAgVGhlIGdlbmVyaWMgdmVyc2lvbnMgb2YgdGhl c2UKZnVuY3Rpb25zIGZhbGwgYmFjayB0byB0aGUgcGFnZV90YWJsZV9sb2NrLiAgUG9wdWxhdGlu ZyBoaWdoZXIgbGV2ZWwgcGFnZQp0YWJsZSBlbnRyaWVzIGlzIHJhcmUgYW5kIHRoZXJlZm9yZSB0 aGlzIGlzIG5vdCBsaWtlbHkgdG8gYmUgcGVyZm9ybWFuY2UKY3JpdGljYWwuICBGb3IgaWE2NCBh IGRlZmluaXRpb24gb2YgaGlnaGVyIGxldmVsIGF0b21pYyBvcGVyYXRpb25zIGlzCmluY2x1ZGVk LgoKVGhpcyBwYXRjaCBkZXBlbmRzIG9uIHRoZSBwYXRjaCB0byBhdm9pZCBzcHVyaW91cyBwYWdl IGZhdWx0cyB0byBiZSBhcHBsaWVkCmZpcnN0IGFuZCB3aWxsIG9ubHkgcmVtb3ZlIHRoZSBmaXJz dCBhY3F1aXNpdGlvbiBvZiB0aGUgcGFnZV90YWJsZV9sb2NrIGluIHRoZQpwYWdlIGZhdWx0IGhh bmRsZXIuICBUaGlzIHdpbGwgYWxsb3cgdGhlIGZvbGxvd2luZyBwYWdlIHRhYmxlIG9wZXJhdGlv bnMKd2l0aG91dCBhY3F1aXJpbmcgdGhlIHBhZ2VfdGFibGVfbG9jazoKCjEuIFVwZGF0aW5nIG9m IGFjY2VzcyBiaXRzIChoYW5kbGVfbW1fZmF1bHQpCjIuIEFub255bW91cyByZWFkIGZhdWx0cyAo ZG9fYW5vbnltb3VzX3BhZ2UpCgpUaGUgcGFnZV90YWJsZV9sb2NrIGlzIHN0aWxsIGFjcXVpcmVk IGZvciBjcmVhdGluZyBhIG5ldyBwdGUgZm9yIGFuIGFub255bW91cwp3cml0ZSBmYXVsdCBhbmQg dGhlcmVmb3JlIHRoZSBwcm9ibGVtcyB3aXRoIGF0b21pYyB1cGRhdGVzIG9mIHJzcyBkbyBub3Qg eWV0Cm9jY3VyLgoKVGhlIHBhdGNoIGFsc28gYWRkcyBzb21lIGRpYWdub3N0aWMgZmVhdHVyZXMg YnkgY291bnRpbmcgdGhlIG51bWJlciBvZiBjbXB4Y2hnCmZhaWx1cmVzICh1c2VmdWwgZm9yIHZl cmlmaWNhdGlvbiBpZiB0aGlzIHBhdGNoIHdvcmtzIHJpZ2h0KSBhbmQgdGhlIG51bWJlciBvZgpw YWdlIGZhdWx0cyB0aGF0IGxlZCB0byBubyBjaGFuZ2UgaW4gdGhlIHBhZ2UgdGFibGUuICBUaGUg c3RhdGlzdGljcyBtYXkgYmUKYWNjZXNzZWQgdmlhIC9wcm9jL21lbWluZm8uCgpTaWduZWQtb2Zm LWJ5OiBDaHJpc3RvcGggTGFtZXRlciA8Y2xhbWV0ZXJAc2dpLmNvbT4KU2lnbmVkLW9mZi1ieTog QW5kcmV3IE1vcnRvbiA8YWtwbUBvc2RsLm9yZz4KLS0tCgogaW5jbHVkZS9hc20tZ2VuZXJpYy80 bGV2ZWwtZml4dXAuaCAgfCAgICAxIAogaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxlLW5vcG1k LmggfCAgICA1IAogaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxlLW5vcHVkLmggfCAgICA4IAog aW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxlLmggICAgICAgfCAgIDk5ICsrKysrKysrKysrCiBp bmNsdWRlL2FzbS1pYTY0L3BnYWxsb2MuaCAgICAgICAgICB8ICAgMTkgKysKIGluY2x1ZGUvYXNt LWlhNjQvcGd0YWJsZS5oICAgICAgICAgIHwgICAgMiAKIGluY2x1ZGUvbGludXgvcGFnZS1mbGFn cy5oICAgICAgICAgIHwgICAgNiAKIG1tL21lbW9yeS5jICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDI5OSArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0KIG1tL3BhZ2VfYWxs b2MuYyAgICAgICAgICAgICAgICAgICAgIHwgICAgNiAKIHByb2MvcHJvY19taXNjLmMgICAgICAg ICAgICAgICAgICAgIHwgICAgMCAKIDEwIGZpbGVzIGNoYW5nZWQsIDM0NyBpbnNlcnRpb25zKCsp LCA5OCBkZWxldGlvbnMoLSkKCmRpZmYgLXB1TiBmcy9wcm9jL3Byb2NfbWlzYy5jfnBhZ2UtZmF1 bHQtcGF0Y2hlcy1vcHRpb25hbC1wYWdlX2xvY2stYWNxdWlzaXRpb24taW4gZnMvcHJvYy9wcm9j X21pc2MuYwpkaWZmIC1wdU4gaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxlLmh+cGFnZS1mYXVs dC1wYXRjaGVzLW9wdGlvbmFsLXBhZ2VfbG9jay1hY3F1aXNpdGlvbi1pbiBpbmNsdWRlL2FzbS1n ZW5lcmljL3BndGFibGUuaAotLS0gMjUvaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxlLmh+cGFn ZS1mYXVsdC1wYXRjaGVzLW9wdGlvbmFsLXBhZ2VfbG9jay1hY3F1aXNpdGlvbi1pbglXZWQgQXVn IDE3IDE1OjA5OjU0IDIwMDUKKysrIDI1LWFrcG0vaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxl LmgJV2VkIEF1ZyAxNyAxNTowOTo1NCAyMDA1CkBAIC0xNDEsNiArMTQxLDY1IEBAIGRvIHsJCQkJ ICAJCQkJCSAgXAogfSkKICNlbmRpZgogCisvKgorICogcGFnZV90YWJsZV9hdG9taWNfc3RhcnQg YW5kIHBhZ2VfdGFibGVfYXRvbWljX3N0b3AgbWF5IGJlIHVzZWQgdG8KKyAqIGRlZmluZSBzcGVj aWFsIG1lYXN1cmVzIHRoYXQgYW4gYXJjaCBuZWVkcyB0byBndWFyYW50ZWUgYXRvbWljCisgKiBv cGVyYXRpb25zIG91dHNpZGUgb2YgYSBzcGlubG9jay4gSW4gdGhlIGNhc2UgdGhhdCBhbiBhcmNo IGRvZXMKKyAqIG5vdCBzdXBwb3J0IGF0b21pYyBwYWdlIHRhYmxlIG9wZXJhdGlvbnMgd2Ugd2ls bCBmYWxsIGJhY2sgdG8gdGhlCisgKiBwYWdlIHRhYmxlIGxvY2suCisgKi8KKyNpZm5kZWYgX19I QVZFX0FSQ0hfUEFHRV9UQUJMRV9BVE9NSUNfU1RBUlQKKyNkZWZpbmUgcGFnZV90YWJsZV9hdG9t aWNfc3RhcnQobW0pIGRvIHsgfSB3aGlsZSAoMCkKKyNlbmRpZgorCisjaWZuZGVmIF9fSEFWRV9B UkNIX1BBR0VfVEFCTEVfQVRPTUlDX1NUQVJUCisjZGVmaW5lIHBhZ2VfdGFibGVfYXRvbWljX3N0 b3AobW0pIGRvIHsgfSB3aGlsZSAoMCkKKyNlbmRpZgorCisvKgorICogRmFsbGJhY2sgZnVuY3Rp b25zIGZvciBhdG9taWMgcG9wdWxhdGlvbiBvZiBoaWdoZXIgcGFnZSB0YWJsZQorICogc3RydWN0 dXJlcy4gVGhlc2Ugc2ltcGx5IGFjcXVpcmUgdGhlIHBhZ2VfdGFibGVfbG9jayBmb3IKKyAqIHN5 bmNocm9uaXphdGlvbi4gQW4gYXJjaGl0ZWN0dXJlIG1heSBvdmVycmlkZSB0aGVzZSBnZW5lcmlj CisgKiBmdW5jdGlvbnMgdG8gcHJvdmlkZSBhdG9taWMgcG9wdWxhdGUgZnVuY3Rpb25zIHRvIG1h a2UgdGhlc2UKKyAqIG1vcmUgZWZmZWN0aXZlLgorICovCisKKyNpZm5kZWYgX19IQVZFX0FSQ0hf UEdEX1RFU1RfQU5EX1BPUFVMQVRFCisjZGVmaW5lIHBnZF90ZXN0X2FuZF9wb3B1bGF0ZShfX21t LCBfX3BnZCwgX19wdWQpCQkJXAorKHsJCQkJCQkJCQlcCisJaW50IF9fcmM7CQkJCQkJCVwKKwlz cGluX2xvY2soJm1tLT5wYWdlX3RhYmxlX2xvY2spOwkJCQlcCisJX19yYyA9IHBnZF9ub25lKCoo X19wZ2QpKTsJCQkJCVwKKwlpZiAoX19yYykgcGdkX3BvcHVsYXRlKF9fbW0sIF9fcGdkLCBfX3B1 ZCk7CQkJXAorCXNwaW5fdW5sb2NrKCZtbS0+cGFnZV90YWJsZV9sb2NrKTsJCQkJXAorCV9fcmM7 CQkJCQkJCQlcCit9KQorI2VuZGlmCisKKyNpZm5kZWYgX19IQVZFX0FSQ0hfUFVEX1RFU1RfQU5E X1BPUFVMQVRFCisjZGVmaW5lIHB1ZF90ZXN0X2FuZF9wb3B1bGF0ZShfX21tLCBfX3B1ZCwgX19w bWQpCQkJXAorKHsJCQkJCQkJCQlcCisJaW50IF9fcmM7CQkJCQkJCVwKKwlzcGluX2xvY2soJm1t LT5wYWdlX3RhYmxlX2xvY2spOwkJCQlcCisJX19yYyA9IHB1ZF9ub25lKCooX19wdWQpKTsJCQkJ CVwKKwlpZiAoX19yYykgcHVkX3BvcHVsYXRlKF9fbW0sIF9fcHVkLCBfX3BtZCk7CQkJXAorCXNw aW5fdW5sb2NrKCZtbS0+cGFnZV90YWJsZV9sb2NrKTsJCQkJXAorCV9fcmM7CQkJCQkJCQlcCit9 KQorI2VuZGlmCisKKyNpZm5kZWYgX19IQVZFX0FSQ0hfUE1EX1RFU1RfQU5EX1BPUFVMQVRFCisj ZGVmaW5lIHBtZF90ZXN0X2FuZF9wb3B1bGF0ZShfX21tLCBfX3BtZCwgX19wYWdlKQkJCVwKKyh7 CQkJCQkJCQkJXAorCWludCBfX3JjOwkJCQkJCQlcCisJc3Bpbl9sb2NrKCZtbS0+cGFnZV90YWJs ZV9sb2NrKTsJCQkJXAorCV9fcmMgPSAhcG1kX3ByZXNlbnQoKihfX3BtZCkpOwkJCQkJXAorCWlm IChfX3JjKSBwbWRfcG9wdWxhdGUoX19tbSwgX19wbWQsIF9fcGFnZSk7CQkJXAorCXNwaW5fdW5s b2NrKCZtbS0+cGFnZV90YWJsZV9sb2NrKTsJCQkJXAorCV9fcmM7CQkJCQkJCQlcCit9KQorI2Vu ZGlmCisKICNlbHNlCiAKIC8qCkBAIC0xNTEsNiArMjEwLDExIEBAIGRvIHsJCQkJICAJCQkJCSAg XAogICogc2hvcnQgdGltZSBmcmFtZS4gVGhpcyBtZWFucyB0aGF0IHRoZSBwYWdlX3RhYmxlX2xv Y2sgbXVzdCBiZSBoZWxkCiAgKiB0byBhdm9pZCBhIHBhZ2UgZmF1bHQgdGhhdCB3b3VsZCBpbnN0 YWxsIGEgbmV3IGVudHJ5LgogICovCisKKy8qIEZhbGwgYmFjayB0byB0aGUgcGFnZSB0YWJsZSBs b2NrIHRvIHN5bmNocm9uaXplIHBhZ2UgdGFibGUgYWNjZXNzICovCisjZGVmaW5lIHBhZ2VfdGFi bGVfYXRvbWljX3N0YXJ0KG1tKQlzcGluX2xvY2soJihtbSktPnBhZ2VfdGFibGVfbG9jaykKKyNk ZWZpbmUgcGFnZV90YWJsZV9hdG9taWNfc3RvcChtbSkJc3Bpbl91bmxvY2soJihtbSktPnBhZ2Vf dGFibGVfbG9jaykKKwogI2lmbmRlZiBfX0hBVkVfQVJDSF9QVEVQX1hDSEcKICNkZWZpbmUgcHRl cF94Y2hnKF9fbW0sIF9fYWRkcmVzcywgX19wdGVwLCBfX3B0ZXZhbCkJCQlcCiAoewkJCQkJCQkJ CVwKQEAgLTE5NSw2ICsyNTksNDEgQEAgZG8gewkJCQkgIAkJCQkJICBcCiAJcjsJCQkJCQkJCVwK IH0pCiAjZW5kaWYKKworLyoKKyAqIEZhbGxiYWNrIGZ1bmN0aW9ucyBmb3IgYXRvbWljIHBvcHVs YXRpb24gb2YgaGlnaGVyIHBhZ2UgdGFibGUKKyAqIHN0cnVjdHVyZXMuIFRoZXNlIHJlbHkgb24g dGhlIHBhZ2VfdGFibGVfbG9jayBiZWluZyBoZWxkLgorICovCisjaWZuZGVmIF9fSEFWRV9BUkNI X1BHRF9URVNUX0FORF9QT1BVTEFURQorI2RlZmluZSBwZ2RfdGVzdF9hbmRfcG9wdWxhdGUoX19t bSwgX19wZ2QsIF9fcHVkKQkJCVwKKyh7CQkJCQkJCQkJXAorCWludCBfX3JjOwkJCQkJCQlcCisJ X19yYyA9IHBnZF9ub25lKCooX19wZ2QpKTsJCQkJCVwKKwlpZiAoX19yYykgcGdkX3BvcHVsYXRl KF9fbW0sIF9fcGdkLCBfX3B1ZCk7CQkJXAorCV9fcmM7CQkJCQkJCQlcCit9KQorI2VuZGlmCisK KyNpZm5kZWYgX19IQVZFX0FSQ0hfUFVEX1RFU1RfQU5EX1BPUFVMQVRFCisjZGVmaW5lIHB1ZF90 ZXN0X2FuZF9wb3B1bGF0ZShfX21tLCBfX3B1ZCwgX19wbWQpCQkJXAorKHsJCQkJCQkJCQlcCisg ICAgICAgaW50IF9fcmM7CQkJCQkJCVwKKyAgICAgICBfX3JjID0gcHVkX25vbmUoKihfX3B1ZCkp OwkJCQkJXAorICAgICAgIGlmIChfX3JjKSBwdWRfcG9wdWxhdGUoX19tbSwgX19wdWQsIF9fcG1k KTsJCQlcCisgICAgICAgX19yYzsJCQkJCQkJCVwKK30pCisjZW5kaWYKKworI2lmbmRlZiBfX0hB VkVfQVJDSF9QTURfVEVTVF9BTkRfUE9QVUxBVEUKKyNkZWZpbmUgcG1kX3Rlc3RfYW5kX3BvcHVs YXRlKF9fbW0sIF9fcG1kLCBfX3BhZ2UpCQkJXAorKHsJCQkJCQkJCQlcCisgICAgICAgaW50IF9f cmM7CQkJCQkJCVwKKyAgICAgICBfX3JjID0gIXBtZF9wcmVzZW50KCooX19wbWQpKTsJCQkJCVwK KyAgICAgICBpZiAoX19yYykgcG1kX3BvcHVsYXRlKF9fbW0sIF9fcG1kLCBfX3BhZ2UpOwkJCVwK KyAgICAgICBfX3JjOwkJCQkJCQkJXAorfSkKKyNlbmRpZgorCiAjZW5kaWYKIAogI2lmbmRlZiBf X0hBVkVfQVJDSF9QVEVQX1NFVF9XUlBST1RFQ1QKZGlmZiAtcHVOIGluY2x1ZGUvYXNtLWdlbmVy aWMvcGd0YWJsZS1ub3BtZC5ofnBhZ2UtZmF1bHQtcGF0Y2hlcy1vcHRpb25hbC1wYWdlX2xvY2st YWNxdWlzaXRpb24taW4gaW5jbHVkZS9hc20tZ2VuZXJpYy9wZ3RhYmxlLW5vcG1kLmgKLS0tIDI1 L2luY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS1ub3BtZC5ofnBhZ2UtZmF1bHQtcGF0Y2hlcy1v cHRpb25hbC1wYWdlX2xvY2stYWNxdWlzaXRpb24taW4JV2VkIEF1ZyAxNyAxNTowOTo1NCAyMDA1 CisrKyAyNS1ha3BtL2luY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS1ub3BtZC5oCVdlZCBBdWcg MTcgMTU6MDk6NTQgMjAwNQpAQCAtMzEsNiArMzEsMTEgQEAgc3RhdGljIGlubGluZSB2b2lkIHB1 ZF9jbGVhcihwdWRfdCAqcHVkKQogI2RlZmluZSBwbWRfRVJST1IocG1kKQkJCQkocHVkX0VSUk9S KChwbWQpLnB1ZCkpCiAKICNkZWZpbmUgcHVkX3BvcHVsYXRlKG1tLCBwbWQsIHB0ZSkJCWRvIHsg fSB3aGlsZSAoMCkKKyNkZWZpbmUgX19BUkNIX0hBVkVfUFVEX1RFU1RfQU5EX1BPUFVMQVRFCitz dGF0aWMgaW5saW5lIGludCBwdWRfdGVzdF9hbmRfcG9wdWxhdGUoc3RydWN0IG1tX3N0cnVjdCAq bW0sIHB1ZF90ICpwdWQsIHBtZF90ICpwbWQpCit7CisJcmV0dXJuIDE7Cit9CiAKIC8qCiAgKiAo cG1kcyBhcmUgZm9sZGVkIGludG8gcHVkcyBzbyB0aGlzIGRvZXNuJ3QgZ2V0IGFjdHVhbGx5IGNh bGxlZCwKZGlmZiAtcHVOIGluY2x1ZGUvYXNtLWdlbmVyaWMvcGd0YWJsZS1ub3B1ZC5ofnBhZ2Ut ZmF1bHQtcGF0Y2hlcy1vcHRpb25hbC1wYWdlX2xvY2stYWNxdWlzaXRpb24taW4gaW5jbHVkZS9h c20tZ2VuZXJpYy9wZ3RhYmxlLW5vcHVkLmgKLS0tIDI1L2luY2x1ZGUvYXNtLWdlbmVyaWMvcGd0 YWJsZS1ub3B1ZC5ofnBhZ2UtZmF1bHQtcGF0Y2hlcy1vcHRpb25hbC1wYWdlX2xvY2stYWNxdWlz aXRpb24taW4JV2VkIEF1ZyAxNyAxNTowOTo1NCAyMDA1CisrKyAyNS1ha3BtL2luY2x1ZGUvYXNt LWdlbmVyaWMvcGd0YWJsZS1ub3B1ZC5oCVdlZCBBdWcgMTcgMTU6MDk6NTQgMjAwNQpAQCAtMjcs OCArMjcsMTQgQEAgc3RhdGljIGlubGluZSBpbnQgcGdkX2JhZChwZ2RfdCBwZ2QpCQl7IAogc3Rh dGljIGlubGluZSBpbnQgcGdkX3ByZXNlbnQocGdkX3QgcGdkKQl7IHJldHVybiAxOyB9CiBzdGF0 aWMgaW5saW5lIHZvaWQgcGdkX2NsZWFyKHBnZF90ICpwZ2QpCXsgfQogI2RlZmluZSBwdWRfRVJS T1IocHVkKQkJCQkocGdkX0VSUk9SKChwdWQpLnBnZCkpCi0KICNkZWZpbmUgcGdkX3BvcHVsYXRl KG1tLCBwZ2QsIHB1ZCkJCWRvIHsgfSB3aGlsZSAoMCkKKworI2RlZmluZSBfX0hBVkVfQVJDSF9Q R0RfVEVTVF9BTkRfUE9QVUxBVEUKK3N0YXRpYyBpbmxpbmUgaW50IHBnZF90ZXN0X2FuZF9wb3B1 bGF0ZShzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcGdkX3QgKnBnZCwgcHVkX3QgKnB1ZCkKK3sKKwly ZXR1cm4gMTsKK30KKwogLyoKICAqIChwdWRzIGFyZSBmb2xkZWQgaW50byBwZ2RzIHNvIHRoaXMg ZG9lc24ndCBnZXQgYWN0dWFsbHkgY2FsbGVkLAogICogYnV0IHRoZSBkZWZpbmUgaXMgbmVlZGVk IGZvciBhIGdlbmVyaWMgaW5saW5lIGZ1bmN0aW9uLikKZGlmZiAtcHVOIGluY2x1ZGUvYXNtLWlh NjQvcGdhbGxvYy5ofnBhZ2UtZmF1bHQtcGF0Y2hlcy1vcHRpb25hbC1wYWdlX2xvY2stYWNxdWlz aXRpb24taW4gaW5jbHVkZS9hc20taWE2NC9wZ2FsbG9jLmgKLS0tIDI1L2luY2x1ZGUvYXNtLWlh NjQvcGdhbGxvYy5ofnBhZ2UtZmF1bHQtcGF0Y2hlcy1vcHRpb25hbC1wYWdlX2xvY2stYWNxdWlz aXRpb24taW4JV2VkIEF1ZyAxNyAxNTowOTo1NCAyMDA1CisrKyAyNS1ha3BtL2luY2x1ZGUvYXNt LWlhNjQvcGdhbGxvYy5oCVdlZCBBdWcgMTcgMTU6MDk6NTQgMjAwNQpAQCAtMSw2ICsxLDEwIEBA CiAjaWZuZGVmIF9BU01fSUE2NF9QR0FMTE9DX0gKICNkZWZpbmUgX0FTTV9JQTY0X1BHQUxMT0Nf SAogCisvKiBFbXB0eSBlbnRyaWVzIG9mIFBNRCBhbmQgUEdEICovCisjZGVmaW5lIFBNRF9OT05F ICAgICAgIDAKKyNkZWZpbmUgUFVEX05PTkUgICAgICAgMAorCiAvKgogICogVGhpcyBmaWxlIGNv bnRhaW5zIHRoZSBmdW5jdGlvbnMgYW5kIGRlZmluZXMgbmVjZXNzYXJ5IHRvIGFsbG9jYXRlCiAg KiBwYWdlIHRhYmxlcy4KQEAgLTg2LDYgKzkwLDIxIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwZ2Rf ZnJlZShwZ2RfdCAqIHBnZCkKIAlwZ3RhYmxlX3F1aWNrbGlzdF9mcmVlKHBnZCk7CiB9CiAKKy8q IEF0b21pYyBwb3B1bGF0ZSAqLworc3RhdGljIGlubGluZSBpbnQKK3B1ZF90ZXN0X2FuZF9wb3B1 bGF0ZSAoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHB1ZF90ICpwdWRfZW50cnksIHBtZF90ICpwbWQp Cit7CisJcmV0dXJuIGlhNjRfY21weGNoZzhfYWNxKHB1ZF9lbnRyeSxfX3BhKHBtZCksIFBVRF9O T05FKSA9PSBQVURfTk9ORTsKK30KKworLyogQXRvbWljIHBvcHVsYXRlICovCitzdGF0aWMgaW5s aW5lIGludAorcG1kX3Rlc3RfYW5kX3BvcHVsYXRlIChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgcG1k X3QgKnBtZF9lbnRyeSwgc3RydWN0IHBhZ2UgKnB0ZSkKK3sKKwlyZXR1cm4gaWE2NF9jbXB4Y2hn OF9hY3EocG1kX2VudHJ5LCBwYWdlX3RvX3BoeXMocHRlKSwgUE1EX05PTkUpID09IFBNRF9OT05F OworfQorCisKIHN0YXRpYyBpbmxpbmUgdm9pZAogcHVkX3BvcHVsYXRlKHN0cnVjdCBtbV9zdHJ1 Y3QgKm1tLCBwdWRfdCAqIHB1ZF9lbnRyeSwgcG1kX3QgKiBwbWQpCiB7CmRpZmYgLXB1TiBpbmNs dWRlL2FzbS1pYTY0L3BndGFibGUuaH5wYWdlLWZhdWx0LXBhdGNoZXMtb3B0aW9uYWwtcGFnZV9s b2NrLWFjcXVpc2l0aW9uLWluIGluY2x1ZGUvYXNtLWlhNjQvcGd0YWJsZS5oCi0tLSAyNS9pbmNs dWRlL2FzbS1pYTY0L3BndGFibGUuaH5wYWdlLWZhdWx0LXBhdGNoZXMtb3B0aW9uYWwtcGFnZV9s b2NrLWFjcXVpc2l0aW9uLWluCVdlZCBBdWcgMTcgMTU6MDk6NTQgMjAwNQorKysgMjUtYWtwbS9p bmNsdWRlL2FzbS1pYTY0L3BndGFibGUuaAlXZWQgQXVnIDE3IDE1OjA5OjU0IDIwMDUKQEAgLTU2 NSw2ICs1NjUsOCBAQCBkbyB7CQkJCQkJCQkJCQlcCiAjZGVmaW5lIF9fSEFWRV9BUkNIX1BURV9T QU1FCiAjZGVmaW5lIF9fSEFWRV9BUkNIX1BHRF9PRkZTRVRfR0FURQogI2RlZmluZSBfX0hBVkVf QVJDSF9MQVpZX01NVV9QUk9UX1VQREFURQorI2RlZmluZSBfX0hBVkVfQVJDSF9QVURfVEVTVF9B TkRfUE9QVUxBVEUKKyNkZWZpbmUgX19IQVZFX0FSQ0hfUE1EX1RFU1RfQU5EX1BPUFVMQVRFCiAK ICNpbmNsdWRlIDxhc20tZ2VuZXJpYy9wZ3RhYmxlLW5vcHVkLmg+CiAjaW5jbHVkZSA8YXNtLWdl bmVyaWMvcGd0YWJsZS5oPgpkaWZmIC1wdU4gaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmh+cGFn ZS1mYXVsdC1wYXRjaGVzLW9wdGlvbmFsLXBhZ2VfbG9jay1hY3F1aXNpdGlvbi1pbiBpbmNsdWRl L2xpbnV4L3BhZ2UtZmxhZ3MuaAotLS0gMjUvaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmh+cGFn ZS1mYXVsdC1wYXRjaGVzLW9wdGlvbmFsLXBhZ2VfbG9jay1hY3F1aXNpdGlvbi1pbglXZWQgQXVn IDE3IDE1OjA5OjU0IDIwMDUKKysrIDI1LWFrcG0vaW5jbHVkZS9saW51eC9wYWdlLWZsYWdzLmgJ V2VkIEF1ZyAxNyAxNTowOTo1OSAyMDA1CkBAIC0xMzEsNiArMTMxLDEyIEBAIHN0cnVjdCBwYWdl X3N0YXRlIHsKIAogCXVuc2lnbmVkIGxvbmcgcGdyb3RhdGVkOwkvKiBwYWdlcyByb3RhdGVkIHRv IHRhaWwgb2YgdGhlIExSVSAqLwogCXVuc2lnbmVkIGxvbmcgbnJfYm91bmNlOwkvKiBwYWdlcyBm b3IgYm91bmNlIGJ1ZmZlcnMgKi8KKwl1bnNpZ25lZCBsb25nIHNwdXJpb3VzX3BhZ2VfZmF1bHRz OwkvKiBGYXVsdHMgd2l0aCBubyBvcHMgKi8KKwl1bnNpZ25lZCBsb25nIGNtcHhjaGdfZmFpbF9m bGFnX3VwZGF0ZTsJLyogY21weGNoZyBmYWlsdXJlcyBmb3IgcHRlIGZsYWcgdXBkYXRlICovCisJ dW5zaWduZWQgbG9uZyBjbXB4Y2hnX2ZhaWxfZmxhZ19yZXVzZTsJLyogY21weGNoZyBmYWlsdXJl cyB3aGVuIGNvdyByZXVzZSBvZiBwdGUgKi8KKworCXVuc2lnbmVkIGxvbmcgY21weGNoZ19mYWls X2Fub25fcmVhZDsJLyogY21weGNoZyBmYWlsdXJlcyBvbiBhbm9ueW1vdXMgcmVhZCAqLworCXVu c2lnbmVkIGxvbmcgY21weGNoZ19mYWlsX2Fub25fd3JpdGU7CS8qIGNtcHhjaGcgZmFpbHVyZXMg b24gYW5vbnltb3VzIHdyaXRlICovCiB9OwogCiBleHRlcm4gdm9pZCBnZXRfcGFnZV9zdGF0ZShz dHJ1Y3QgcGFnZV9zdGF0ZSAqcmV0KTsKZGlmZiAtcHVOIG1tL21lbW9yeS5jfnBhZ2UtZmF1bHQt cGF0Y2hlcy1vcHRpb25hbC1wYWdlX2xvY2stYWNxdWlzaXRpb24taW4gbW0vbWVtb3J5LmMKLS0t IDI1L21tL21lbW9yeS5jfnBhZ2UtZmF1bHQtcGF0Y2hlcy1vcHRpb25hbC1wYWdlX2xvY2stYWNx dWlzaXRpb24taW4JV2VkIEF1ZyAxNyAxNTowOTo1NCAyMDA1CisrKyAyNS1ha3BtL21tL21lbW9y eS5jCVdlZCBBdWcgMTcgMTU6MTA6MTEgMjAwNQpAQCAtMzYsNiArMzYsOCBAQAogICoJCShHZXJo YXJkLldpY2hlcnRAcGRiLnNpZW1lbnMuZGUpCiAgKgogICogQXVnL1NlcCAyMDA0IENoYW5nZWQg dG8gZm91ciBsZXZlbCBwYWdlIHRhYmxlcyAoQW5kaSBLbGVlbikKKyAqIEphbiAyMDA1IAlTY2Fs YWJpbGl0eSBpbXByb3ZlbWVudCBieSByZWR1Y2luZyB0aGUgdXNlIGFuZCB0aGUgbGVuZ3RoIG9m IHRpbWUKKyAqCQl0aGUgcGFnZSB0YWJsZSBsb2NrIGlzIGhlbGQgKENocmlzdG9waCBMYW1ldGVy KQogICovCiAKICNpbmNsdWRlIDxsaW51eC9rZXJuZWxfc3RhdC5oPgpAQCAtOTc3LDcgKzk3OSw3 IEBAIGludCBnZXRfdXNlcl9wYWdlcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnQKIAkJCQkgKi8KIAkJ CQlpZiAocmV0ICYgVk1fRkFVTFRfV1JJVEUpCiAJCQkJCXdyaXRlX2FjY2VzcyA9IDA7Ci0JCQkJ CisKIAkJCQlzd2l0Y2ggKHJldCAmIH5WTV9GQVVMVF9XUklURSkgewogCQkJCWNhc2UgVk1fRkFV TFRfTUlOT1I6CiAJCQkJCXRzay0+bWluX2ZsdCsrOwpAQCAtMTY0Niw4ICsxNjQ4LDcgQEAgdm9p ZCBzd2FwaW5fcmVhZGFoZWFkKHN3cF9lbnRyeV90IGVudHJ5LAogfQogCiAvKgotICogV2UgaG9s ZCB0aGUgbW0gc2VtYXBob3JlIGFuZCB0aGUgcGFnZV90YWJsZV9sb2NrIG9uIGVudHJ5IGFuZAot ICogc2hvdWxkIHJlbGVhc2UgdGhlIHBhZ2V0YWJsZSBsb2NrIG9uIGV4aXQuLgorICogV2UgaG9s ZCB0aGUgbW0gc2VtYXBob3JlIGFuZCBoYXZlIHN0YXJ0ZWQgYXRvbWljIHB0ZSBvcGVyYXRpb25z CiAgKi8KIHN0YXRpYyBpbnQgZG9fc3dhcF9wYWdlKHN0cnVjdCBtbV9zdHJ1Y3QgKiBtbSwKIAlz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKiB2bWEsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKQEAgLTE2 NTksMTUgKzE2NjAsMTQgQEAgc3RhdGljIGludCBkb19zd2FwX3BhZ2Uoc3RydWN0IG1tX3N0cnVj dAogCWludCByZXQgPSBWTV9GQVVMVF9NSU5PUjsKIAogCXB0ZV91bm1hcChwYWdlX3RhYmxlKTsK LQlzcGluX3VubG9jaygmbW0tPnBhZ2VfdGFibGVfbG9jayk7CisJcGFnZV90YWJsZV9hdG9taWNf c3RvcChtbSk7CiAJcGFnZSA9IGxvb2t1cF9zd2FwX2NhY2hlKGVudHJ5KTsKIAlpZiAoIXBhZ2Up IHsKICAJCXN3YXBpbl9yZWFkYWhlYWQoZW50cnksIGFkZHJlc3MsIHZtYSk7CiAgCQlwYWdlID0g cmVhZF9zd2FwX2NhY2hlX2FzeW5jKGVudHJ5LCB2bWEsIGFkZHJlc3MpOwogCQlpZiAoIXBhZ2Up IHsKIAkJCS8qCi0JCQkgKiBCYWNrIG91dCBpZiBzb21lYm9keSBlbHNlIGZhdWx0ZWQgaW4gdGhp cyBwdGUgd2hpbGUKLQkJCSAqIHdlIHJlbGVhc2VkIHRoZSBwYWdlIHRhYmxlIGxvY2suCisJCQkg KiBCYWNrIG91dCBpZiBzb21lYm9keSBlbHNlIGZhdWx0ZWQgaW4gdGhpcyBwdGUKIAkJCSAqLwog CQkJc3Bpbl9sb2NrKCZtbS0+cGFnZV90YWJsZV9sb2NrKTsKIAkJCXBhZ2VfdGFibGUgPSBwdGVf b2Zmc2V0X21hcChwbWQsIGFkZHJlc3MpOwpAQCAtMTY5MCw4ICsxNjkwLDcgQEAgc3RhdGljIGlu dCBkb19zd2FwX3BhZ2Uoc3RydWN0IG1tX3N0cnVjdAogCWxvY2tfcGFnZShwYWdlKTsKIAogCS8q Ci0JICogQmFjayBvdXQgaWYgc29tZWJvZHkgZWxzZSBmYXVsdGVkIGluIHRoaXMgcHRlIHdoaWxl IHdlCi0JICogcmVsZWFzZWQgdGhlIHBhZ2UgdGFibGUgbG9jay4KKwkgKiBCYWNrIG91dCBpZiBz b21lYm9keSBlbHNlIGZhdWx0ZWQgaW4gdGhpcyBwdGUKIAkgKi8KIAlzcGluX2xvY2soJm1tLT5w YWdlX3RhYmxlX2xvY2spOwogCXBhZ2VfdGFibGUgPSBwdGVfb2Zmc2V0X21hcChwbWQsIGFkZHJl c3MpOwpAQCAtMTc0Niw2MSArMTc0NSw3OSBAQCBvdXRfbm9tYXA6CiB9CiAKIC8qCi0gKiBXZSBh cmUgY2FsbGVkIHdpdGggdGhlIE1NIHNlbWFwaG9yZSBhbmQgcGFnZV90YWJsZV9sb2NrCi0gKiBz cGlubG9jayBoZWxkIHRvIHByb3RlY3QgYWdhaW5zdCBjb25jdXJyZW50IGZhdWx0cyBpbgotICog bXVsdGl0aHJlYWRlZCBwcm9ncmFtcy4gCisgKiBXZSBhcmUgY2FsbGVkIHdpdGggYXRvbWljIG9w ZXJhdGlvbnMgc3RhcnRlZCBhbmQgdGhlCisgKiB2YWx1ZSBvZiB0aGUgcHRlIHRoYXQgd2FzIHJl YWQgaW4gb3JpZ19lbnRyeS4KICAqLwogc3RhdGljIGludAogZG9fYW5vbnltb3VzX3BhZ2Uoc3Ry dWN0IG1tX3N0cnVjdCAqbW0sIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogCQlwdGVfdCAq cGFnZV90YWJsZSwgcG1kX3QgKnBtZCwgaW50IHdyaXRlX2FjY2VzcywKLQkJdW5zaWduZWQgbG9u ZyBhZGRyKQorCQl1bnNpZ25lZCBsb25nIGFkZHIsIHB0ZV90IG9yaWdfZW50cnkpCiB7CiAJcHRl X3QgZW50cnk7Ci0Jc3RydWN0IHBhZ2UgKiBwYWdlID0gWkVST19QQUdFKGFkZHIpOworCXN0cnVj dCBwYWdlICogcGFnZTsKIAotCS8qIFJlYWQtb25seSBtYXBwaW5nIG9mIFpFUk9fUEFHRS4gKi8K LQllbnRyeSA9IHB0ZV93cnByb3RlY3QobWtfcHRlKFpFUk9fUEFHRShhZGRyKSwgdm1hLT52bV9w YWdlX3Byb3QpKTsKKwlpZiAodW5saWtlbHkoIXdyaXRlX2FjY2VzcykpIHsKIAotCS8qIC4uZXhj ZXB0IGlmIGl0J3MgYSB3cml0ZSBhY2Nlc3MgKi8KLQlpZiAod3JpdGVfYWNjZXNzKSB7Ci0JCS8q IEFsbG9jYXRlIG91ciBvd24gcHJpdmF0ZSBwYWdlLiAqLworCQkvKiBSZWFkLW9ubHkgbWFwcGlu ZyBvZiBaRVJPX1BBR0UuICovCisJCWVudHJ5ID0gcHRlX3dycHJvdGVjdChta19wdGUoWkVST19Q QUdFKGFkZHIpLAorCQkJCQl2bWEtPnZtX3BhZ2VfcHJvdCkpOworCisJCS8qCisJCSAqIElmIHRo ZSBjbXB4Y2hnIGZhaWxzIHRoZW4gYW5vdGhlciBjcHUgbWF5CisJCSAqIGFscmVhZHkgaGF2ZSBw b3B1bGF0ZWQgdGhlIGVudHJ5CisJCSAqLworCQlpZiAocHRlcF9jbXB4Y2hnKG1tLCBhZGRyLCBw YWdlX3RhYmxlLCBvcmlnX2VudHJ5LCBlbnRyeSkpIHsKKwkJCXVwZGF0ZV9tbXVfY2FjaGUodm1h LCBhZGRyLCBlbnRyeSk7CisJCQlsYXp5X21tdV9wcm90X3VwZGF0ZShlbnRyeSk7CisJCX0gZWxz ZSB7CisJCQlpbmNfcGFnZV9zdGF0ZShjbXB4Y2hnX2ZhaWxfYW5vbl9yZWFkKTsKKwkJfQogCQlw dGVfdW5tYXAocGFnZV90YWJsZSk7Ci0JCXNwaW5fdW5sb2NrKCZtbS0+cGFnZV90YWJsZV9sb2Nr KTsKKwkJZ290byBtaW5vcl9mYXVsdDsKKwl9CiAKLQkJaWYgKHVubGlrZWx5KGFub25fdm1hX3By ZXBhcmUodm1hKSkpCi0JCQlnb3RvIG5vX21lbTsKLQkJcGFnZSA9IGFsbG9jX3plcm9lZF91c2Vy X2hpZ2hwYWdlKHZtYSwgYWRkcik7Ci0JCWlmICghcGFnZSkKLQkJCWdvdG8gbm9fbWVtOworCS8q IFRoaXMgbGVhdmVzIHRoZSB3cml0ZSBjYXNlICovCisJcGFnZV90YWJsZV9hdG9taWNfc3RvcCht bSk7CisJaWYgKHVubGlrZWx5KGFub25fdm1hX3ByZXBhcmUodm1hKSkpCisJCWdvdG8gb29tOwog Ci0JCXNwaW5fbG9jaygmbW0tPnBhZ2VfdGFibGVfbG9jayk7Ci0JCXBhZ2VfdGFibGUgPSBwdGVf b2Zmc2V0X21hcChwbWQsIGFkZHIpOworCXBhZ2UgPSBhbGxvY196ZXJvZWRfdXNlcl9oaWdocGFn ZSh2bWEsIGFkZHIpOworCWlmICghcGFnZSkKKwkJZ290byBvb207CiAKLQkJaWYgKCFwdGVfbm9u ZSgqcGFnZV90YWJsZSkpIHsKLQkJCXB0ZV91bm1hcChwYWdlX3RhYmxlKTsKLQkJCXBhZ2VfY2Fj aGVfcmVsZWFzZShwYWdlKTsKLQkJCXNwaW5fdW5sb2NrKCZtbS0+cGFnZV90YWJsZV9sb2NrKTsK LQkJCWdvdG8gb3V0OwotCQl9Ci0JCWluY19tbV9jb3VudGVyKG1tLCByc3MpOwotCQllbnRyeSA9 IG1heWJlX21rd3JpdGUocHRlX21rZGlydHkobWtfcHRlKHBhZ2UsCi0JCQkJCQkJIHZtYS0+dm1f cGFnZV9wcm90KSksCi0JCQkJICAgICAgdm1hKTsKLQkJbHJ1X2NhY2hlX2FkZF9hY3RpdmUocGFn ZSk7Ci0JCVNldFBhZ2VSZWZlcmVuY2VkKHBhZ2UpOwotCQlwYWdlX2FkZF9hbm9uX3JtYXAocGFn ZSwgdm1hLCBhZGRyKTsKLQl9CisJZW50cnkgPSBtYXliZV9ta3dyaXRlKHB0ZV9ta2RpcnR5KG1r X3B0ZShwYWdlLAorCQkJCQkJdm1hLT52bV9wYWdlX3Byb3QpKSwKKwkJCQl2bWEpOworCXNwaW5f bG9jaygmbW0tPnBhZ2VfdGFibGVfbG9jayk7CiAKLQlzZXRfcHRlX2F0KG1tLCBhZGRyLCBwYWdl X3RhYmxlLCBlbnRyeSk7Ci0JcHRlX3VubWFwKHBhZ2VfdGFibGUpOworCWlmICghcHRlcF9jbXB4 Y2hnKG1tLCBhZGRyLCBwYWdlX3RhYmxlLCBvcmlnX2VudHJ5LCBlbnRyeSkpIHsKKwkJcHRlX3Vu bWFwKHBhZ2VfdGFibGUpOworCQlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7CisJCWluY19wYWdl X3N0YXRlKGNtcHhjaGdfZmFpbF9hbm9uX3dyaXRlKTsKKwkJZ290byBtaW5vcl9mYXVsdF9hdG9t aWM7CisgICAgICAgIH0KIAotCS8qIE5vIG5lZWQgdG8gaW52YWxpZGF0ZSAtIGl0IHdhcyBub24t cHJlc2VudCBiZWZvcmUgKi8KKwkvKgorCSAqIFRoZXNlIHR3byBmdW5jdGlvbnMgbXVzdCBjb21l IGFmdGVyIHRoZSBjbXB4Y2hnCisJICogYmVjYXVzZSBpZiB0aGUgcGFnZSBpcyBvbiB0aGUgTFJV IHRoZW4gdHJ5X3RvX3VubWFwIG1heSBjb21lCisJICogaW4gYW5kIHVubWFwIHRoZSBwdGUuCisJ ICovCisJcGFnZV9hZGRfYW5vbl9ybWFwKHBhZ2UsIHZtYSwgYWRkcik7CisJbHJ1X2NhY2hlX2Fk ZF9hY3RpdmUocGFnZSk7CisJaW5jX21tX2NvdW50ZXIobW0sIHJzcyk7CisJcHRlX3VubWFwKHBh Z2VfdGFibGUpOwogCXVwZGF0ZV9tbXVfY2FjaGUodm1hLCBhZGRyLCBlbnRyeSk7CiAJbGF6eV9t bXVfcHJvdF91cGRhdGUoZW50cnkpOworCittaW5vcl9mYXVsdDoKIAlzcGluX3VubG9jaygmbW0t PnBhZ2VfdGFibGVfbG9jayk7Ci1vdXQ6CiAJcmV0dXJuIFZNX0ZBVUxUX01JTk9SOwotbm9fbWVt OgorCittaW5vcl9mYXVsdF9hdG9taWM6CisJcGFnZV90YWJsZV9hdG9taWNfc3RvcChtbSk7CisJ cmV0dXJuIFZNX0ZBVUxUX01JTk9SOworCitvb206CiAJcmV0dXJuIFZNX0ZBVUxUX09PTTsKIH0K IApAQCAtMTgxMywxMiArMTgzMCwxMiBAQCBub19tZW06CiAgKiBBcyB0aGlzIGlzIGNhbGxlZCBv bmx5IGZvciBwYWdlcyB0aGF0IGRvIG5vdCBjdXJyZW50bHkgZXhpc3QsIHdlCiAgKiBkbyBub3Qg bmVlZCB0byBmbHVzaCBvbGQgdmlydHVhbCBjYWNoZXMgb3IgdGhlIFRMQi4KICAqCi0gKiBUaGlz IGlzIGNhbGxlZCB3aXRoIHRoZSBNTSBzZW1hcGhvcmUgaGVsZCBhbmQgdGhlIHBhZ2UgdGFibGUK LSAqIHNwaW5sb2NrIGhlbGQuIEV4aXQgd2l0aCB0aGUgc3BpbmxvY2sgcmVsZWFzZWQuCisgKiBU aGlzIGlzIGNhbGxlZCB3aXRoIHRoZSBNTSBzZW1hcGhvcmUgaGVsZCBhbmQgYXRvbWljIHB0ZSBv cGVyYXRpb25zIHN0YXJ0ZWQuCiAgKi8KIHN0YXRpYyBpbnQKIGRvX25vX3BhZ2Uoc3RydWN0IG1t X3N0cnVjdCAqbW0sIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAotCXVuc2lnbmVkIGxvbmcg YWRkcmVzcywgaW50IHdyaXRlX2FjY2VzcywgcHRlX3QgKnBhZ2VfdGFibGUsIHBtZF90ICpwbWQp CisJdW5zaWduZWQgbG9uZyBhZGRyZXNzLCBpbnQgd3JpdGVfYWNjZXNzLCBwdGVfdCAqcGFnZV90 YWJsZSwKKyAgICAgICAgcG1kX3QgKnBtZCwgcHRlX3Qgb3JpZ19lbnRyeSkKIHsKIAlzdHJ1Y3Qg cGFnZSAqIG5ld19wYWdlOwogCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gTlVMTDsK QEAgLTE4MjksOSArMTg0Niw5IEBAIGRvX25vX3BhZ2Uoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHN0 cnVjdCAKIAogCWlmICghdm1hLT52bV9vcHMgfHwgIXZtYS0+dm1fb3BzLT5ub3BhZ2UpCiAJCXJl dHVybiBkb19hbm9ueW1vdXNfcGFnZShtbSwgdm1hLCBwYWdlX3RhYmxlLAotCQkJCQlwbWQsIHdy aXRlX2FjY2VzcywgYWRkcmVzcyk7CisJCQkJCXBtZCwgd3JpdGVfYWNjZXNzLCBhZGRyZXNzLCBv cmlnX2VudHJ5KTsKIAlwdGVfdW5tYXAocGFnZV90YWJsZSk7Ci0Jc3Bpbl91bmxvY2soJm1tLT5w YWdlX3RhYmxlX2xvY2spOworCXBhZ2VfdGFibGVfYXRvbWljX3N0b3AobW0pOwogCiAJaWYgKHZt YS0+dm1fZmlsZSkgewogCQltYXBwaW5nID0gdm1hLT52bV9maWxlLT5mX21hcHBpbmc7CkBAIC0x OTM4LDcgKzE5NTUsNyBAQCBvb206CiAgKiBub25saW5lYXIgdm1hcy4KICAqLwogc3RhdGljIGlu dCBkb19maWxlX3BhZ2Uoc3RydWN0IG1tX3N0cnVjdCAqIG1tLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1 Y3QgKiB2bWEsCi0JdW5zaWduZWQgbG9uZyBhZGRyZXNzLCBpbnQgd3JpdGVfYWNjZXNzLCBwdGVf dCAqcHRlLCBwbWRfdCAqcG1kKQorCXVuc2lnbmVkIGxvbmcgYWRkcmVzcywgaW50IHdyaXRlX2Fj Y2VzcywgcHRlX3QgKnB0ZSwgcG1kX3QgKnBtZCwgcHRlX3QgZW50cnkpCiB7CiAJdW5zaWduZWQg bG9uZyBwZ29mZjsKIAlpbnQgZXJyOwpAQCAtMTk1MSwxMyArMTk2OCwxMyBAQCBzdGF0aWMgaW50 IGRvX2ZpbGVfcGFnZShzdHJ1Y3QgbW1fc3RydWN0CiAJaWYgKCF2bWEtPnZtX29wcy0+cG9wdWxh dGUgfHwKIAkJCSh3cml0ZV9hY2Nlc3MgJiYgISh2bWEtPnZtX2ZsYWdzICYgVk1fU0hBUkVEKSkp IHsKIAkJcHRlX2NsZWFyKG1tLCBhZGRyZXNzLCBwdGUpOwotCQlyZXR1cm4gZG9fbm9fcGFnZSht bSwgdm1hLCBhZGRyZXNzLCB3cml0ZV9hY2Nlc3MsIHB0ZSwgcG1kKTsKKwkJcmV0dXJuIGRvX25v X3BhZ2UobW0sIHZtYSwgYWRkcmVzcywgd3JpdGVfYWNjZXNzLCBwdGUsIHBtZCwgZW50cnkpOwog CX0KIAotCXBnb2ZmID0gcHRlX3RvX3Bnb2ZmKCpwdGUpOworCXBnb2ZmID0gcHRlX3RvX3Bnb2Zm KGVudHJ5KTsKIAogCXB0ZV91bm1hcChwdGUpOwotCXNwaW5fdW5sb2NrKCZtbS0+cGFnZV90YWJs ZV9sb2NrKTsKKwlwYWdlX3RhYmxlX2F0b21pY19zdG9wKG1tKTsKIAogCWVyciA9IHZtYS0+dm1f b3BzLT5wb3B1bGF0ZSh2bWEsIGFkZHJlc3MgJiBQQUdFX01BU0ssIFBBR0VfU0laRSwgdm1hLT52 bV9wYWdlX3Byb3QsIHBnb2ZmLCAwKTsKIAlpZiAoZXJyID09IC1FTk9NRU0pCkBAIC0xOTc2LDQ5 ICsxOTkzLDgwIEBAIHN0YXRpYyBpbnQgZG9fZmlsZV9wYWdlKHN0cnVjdCBtbV9zdHJ1Y3QKICAq IHdpdGggZXh0ZXJuYWwgbW11IGNhY2hlcyBjYW4gdXNlIHRvIHVwZGF0ZSB0aG9zZSAoaWUgdGhl IFNwYXJjIG9yCiAgKiBQb3dlclBDIGhhc2hlZCBwYWdlIHRhYmxlcyB0aGF0IGFjdCBhcyBleHRl bmRlZCBUTEJzKS4KICAqCi0gKiBOb3RlIHRoZSAicGFnZV90YWJsZV9sb2NrIi4gSXQgaXMgdG8g cHJvdGVjdCBhZ2FpbnN0IGtzd2FwZCByZW1vdmluZwotICogcGFnZXMgZnJvbSB1bmRlciB1cy4g Tm90ZSB0aGF0IGtzd2FwZCBvbmx5IGV2ZXIgX3JlbW92ZXNfIHBhZ2VzLCBuZXZlcgotICogYWRk cyB0aGVtLiBBcyBzdWNoLCBvbmNlIHdlIGhhdmUgbm90aWNlZCB0aGF0IHRoZSBwYWdlIGlzIG5v dCBwcmVzZW50LAotICogd2UgY2FuIGRyb3AgdGhlIGxvY2sgZWFybHkuCi0gKgotICogVGhlIGFk ZGluZyBvZiBwYWdlcyBpcyBwcm90ZWN0ZWQgYnkgdGhlIE1NIHNlbWFwaG9yZSAod2hpY2ggd2Ug aG9sZCksCi0gKiBzbyB3ZSBkb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGEgcGFnZSBiZWluZyBz dWRkZW5seSBiZWVuIGFkZGVkIGludG8KLSAqIG91ciBWTS4KLSAqCi0gKiBXZSBlbnRlciB3aXRo IHRoZSBwYWdldGFibGUgc3BpbmxvY2sgaGVsZCwgd2UgYXJlIHN1cHBvc2VkIHRvCi0gKiByZWxl YXNlIGl0IHdoZW4gZG9uZS4KLSAqLworICogTm90ZSB0aGF0IGtzd2FwZCBvbmx5IGV2ZXIgX3Jl bW92ZXNfIHBhZ2VzLCBuZXZlciBhZGRzIHRoZW0uCisgKiBXZSBleHBsb2l0IHRoYXQgY2FzZSBp ZiBwb3NzaWJsZSB0byBhdm9pZCB0YWtpbmcgdGhlCisgKiBwYWdlIHRhYmxlIGxvY2suCisqLwog c3RhdGljIGlubGluZSBpbnQgaGFuZGxlX3B0ZV9mYXVsdChzdHJ1Y3QgbW1fc3RydWN0ICptbSwK IAlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKiB2bWEsIHVuc2lnbmVkIGxvbmcgYWRkcmVzcywKIAlp bnQgd3JpdGVfYWNjZXNzLCBwdGVfdCAqcHRlLCBwbWRfdCAqcG1kKQogewogCXB0ZV90IGVudHJ5 OworCXB0ZV90IG5ld19lbnRyeTsKIAogCWVudHJ5ID0gKnB0ZTsKIAlpZiAoIXB0ZV9wcmVzZW50 KGVudHJ5KSkgewogCQkvKgotCQkgKiBJZiBpdCB0cnVseSB3YXNuJ3QgcHJlc2VudCwgd2Uga25v dyB0aGF0IGtzd2FwZAotCQkgKiBhbmQgdGhlIFBURSB1cGRhdGVzIHdpbGwgbm90IHRvdWNoIGl0 IGxhdGVyLiBTbwotCQkgKiBkcm9wIHRoZSBsb2NrLgorCQkgKiBQYXNzIHRoZSB2YWx1ZSBvZiB0 aGUgcHRlIHRvIGRvX25vX3BhZ2UgYW5kIGRvX2ZpbGVfcGFnZQorCQkgKiBUaGlzIHZhbHVlIG1h eSBiZSB1c2VkIHRvIHZlcmlmeSB0aGF0IHRoZSBwdGUgaXMgc3RpbGwKKwkJICogbm90IHByZXNl bnQgYWxsb3dpbmcgYXRvbWljIGluc2VydGlvbiBvZiBwdGVzLgogCQkgKi8KIAkJaWYgKHB0ZV9u b25lKGVudHJ5KSkKLQkJCXJldHVybiBkb19ub19wYWdlKG1tLCB2bWEsIGFkZHJlc3MsIHdyaXRl X2FjY2VzcywgcHRlLCBwbWQpOworCQkJcmV0dXJuIGRvX25vX3BhZ2UobW0sIHZtYSwgYWRkcmVz cywgd3JpdGVfYWNjZXNzLAorCQkJCQkJcHRlLCBwbWQsIGVudHJ5KTsKIAkJaWYgKHB0ZV9maWxl KGVudHJ5KSkKLQkJCXJldHVybiBkb19maWxlX3BhZ2UobW0sIHZtYSwgYWRkcmVzcywgd3JpdGVf YWNjZXNzLCBwdGUsIHBtZCk7Ci0JCXJldHVybiBkb19zd2FwX3BhZ2UobW0sIHZtYSwgYWRkcmVz cywgcHRlLCBwbWQsIGVudHJ5LCB3cml0ZV9hY2Nlc3MpOworCQkJcmV0dXJuIGRvX2ZpbGVfcGFn ZShtbSwgdm1hLCBhZGRyZXNzLCB3cml0ZV9hY2Nlc3MsCisJCQkJCQlwdGUsIHBtZCwgZW50cnkp OworCQlyZXR1cm4gZG9fc3dhcF9wYWdlKG1tLCB2bWEsIGFkZHJlc3MsIHB0ZSwgcG1kLAorCQkJ CQkJZW50cnksIHdyaXRlX2FjY2Vzcyk7CiAJfQogCisJbmV3X2VudHJ5ID0gcHRlX21reW91bmco ZW50cnkpOwogCWlmICh3cml0ZV9hY2Nlc3MpIHsKLQkJaWYgKCFwdGVfd3JpdGUoZW50cnkpKQor CQlpZiAoIXB0ZV93cml0ZShlbnRyeSkpIHsKKyNpZmRlZiBDT05GSUdfQVRPTUlDX1RBQkxFX09Q UworCQkJLyoKKwkJCSAqIGRvX3dwX3BhZ2UgbW9kaWZpZXMgYSBwdGUuIFdlIGNhbiBhZGQgYSBw dGUgd2l0aG91dAorCQkJICogdGhlIHBhZ2VfdGFibGVfbG9jayBidXQgbm90IG1vZGlmeSBhIHB0 ZSBzaW5jZSBhCisJCQkgKiBjbXB4Y2hnIGRvZXMgbm90IGFsbG93IHVzIHRvIHZlcmlmeSB0aGF0 IHRoZSBwYWdlCisJCQkgKiB3YXMgbm90IGNoYW5nZWQgdW5kZXIgdXMuIFNvIGFjcXVpcmUgdGhl IHBhZ2UgdGFibGUKKwkJCSAqIGxvY2suCisJCQkgKi8KKwkJCXNwaW5fbG9jaygmbW0tPnBhZ2Vf dGFibGVfbG9jayk7CisJCQlpZiAocHRlX3NhbWUoZW50cnksICpwdGUpKQorCQkJCXJldHVybiBk b193cF9wYWdlKG1tLCB2bWEsIGFkZHJlc3MsIHB0ZSwKKwkJCQkJCQlwbWQsIGVudHJ5KTsKKwkJ CS8qCisJCQkgKiBwdGUgd2FzIGNoYW5nZWQgdW5kZXIgdXMuIEFub3RoZXIgcHJvY2Vzc29yIG1h eSBoYXZlCisJCQkgKiBkb25lIHdoYXQgd2UgbmVlZGVkIHRvIGRvLgorCQkJICovCisJCQlwdGVf dW5tYXAocHRlKTsKKwkJCXNwaW5fdW5sb2NrKCZtbS0+cGFnZV90YWJsZV9sb2NrKTsKKwkJCXJl dHVybiBWTV9GQVVMVF9NSU5PUjsKKyNlbHNlCiAJCQlyZXR1cm4gZG9fd3BfcGFnZShtbSwgdm1h LCBhZGRyZXNzLCBwdGUsIHBtZCwgZW50cnkpOwotCQllbnRyeSA9IHB0ZV9ta2RpcnR5KGVudHJ5 KTsKKyNlbmRpZgorCQl9CisJCW5ld19lbnRyeSA9IHB0ZV9ta2RpcnR5KG5ld19lbnRyeSk7CiAJ fQotCWVudHJ5ID0gcHRlX21reW91bmcoZW50cnkpOwotCXB0ZXBfc2V0X2FjY2Vzc19mbGFncyh2 bWEsIGFkZHJlc3MsIHB0ZSwgZW50cnksIHdyaXRlX2FjY2Vzcyk7Ci0JdXBkYXRlX21tdV9jYWNo ZSh2bWEsIGFkZHJlc3MsIGVudHJ5KTsKLQlsYXp5X21tdV9wcm90X3VwZGF0ZShlbnRyeSk7CisK KwkvKgorCSAqIElmIHRoZSBjbXB4Y2hnIGZhaWxzIHRoZW4gYW5vdGhlciBwcm9jZXNzb3IgbWF5 IGhhdmUgZG9uZQorCSAqIHRoZSBjaGFuZ2VzIGZvciB1cy4gSWYgbm90IHRoZW4gYW5vdGhlciBm YXVsdCB3aWxsIGJyaW5nCisJICogYW5vdGhlciBjaGFuY2UgdG8gZG8gdGhpcyBhZ2Fpbi4KKwkq LworCWlmIChwdGVwX2NtcHhjaGcobW0sIGFkZHJlc3MsIHB0ZSwgZW50cnksIG5ld19lbnRyeSkp IHsKKwkJZmx1c2hfdGxiX3BhZ2Uodm1hLCBhZGRyZXNzKTsKKwkJdXBkYXRlX21tdV9jYWNoZSh2 bWEsIGFkZHJlc3MsIGVudHJ5KTsKKwkJbGF6eV9tbXVfcHJvdF91cGRhdGUoZW50cnkpOworCX0g ZWxzZSB7CisJCWluY19wYWdlX3N0YXRlKGNtcHhjaGdfZmFpbF9mbGFnX3VwZGF0ZSk7CisJfQor CiAJcHRlX3VubWFwKHB0ZSk7Ci0Jc3Bpbl91bmxvY2soJm1tLT5wYWdlX3RhYmxlX2xvY2spOwor CXBhZ2VfdGFibGVfYXRvbWljX3N0b3AobW0pOworCWlmIChwdGVfdmFsKG5ld19lbnRyeSkgPT0g cHRlX3ZhbChlbnRyeSkpCisJCWluY19wYWdlX3N0YXRlKHNwdXJpb3VzX3BhZ2VfZmF1bHRzKTsK IAlyZXR1cm4gVk1fRkFVTFRfTUlOT1I7CiB9CiAKQEAgLTIwMzcsMzMgKzIwODUsOTAgQEAgaW50 IF9faGFuZGxlX21tX2ZhdWx0KHN0cnVjdCBtbV9zdHJ1Y3QgKgogCiAJaW5jX3BhZ2Vfc3RhdGUo cGdmYXVsdCk7CiAKLQlpZiAoaXNfdm1faHVnZXRsYl9wYWdlKHZtYSkpCi0JCXJldHVybiBWTV9G QVVMVF9TSUdCVVM7CS8qIG1hcHBpbmcgdHJ1bmNhdGlvbiBkb2VzIHRoaXMuICovCisJaWYgKHVu bGlrZWx5KGlzX3ZtX2h1Z2V0bGJfcGFnZSh2bWEpKSkKKwkJZ290byBzaWdidXM7CQkvKiBtYXBw aW5nIHRydW5jYXRpb24gZG9lcyB0aGlzLiAqLwogCiAJLyoKLQkgKiBXZSBuZWVkIHRoZSBwYWdl IHRhYmxlIGxvY2sgdG8gc3luY2hyb25pemUgd2l0aCBrc3dhcGQKLQkgKiBhbmQgdGhlIFNNUC1z YWZlIGF0b21pYyBQVEUgdXBkYXRlcy4KKwkgKiBXZSB0cnkgdG8gcmVseSBvbiB0aGUgbW1hcF9z ZW0gYW5kIHRoZSBTTVAtc2FmZSBhdG9taWMgUFRFIHVwZGF0ZXMuCisJICogdG8gc3luY2hyb25p emUgd2l0aCBrc3dhcGQuIEhvd2V2ZXIsIHRoZSBhcmNoIG1heSBmYWxsIGJhY2sKKwkgKiBpbiBw YWdlX3RhYmxlX2F0b21pY19zdGFydCB0byB0aGUgcGFnZSB0YWJsZSBsb2NrLgorCSAqCisJICog V2UgbWF5IGJlIGFibGUgdG8gYXZvaWQgdGFraW5nIGFuZCByZWxlYXNpbmcgdGhlIHBhZ2VfdGFi bGVfbG9jaworCSAqIGZvciB0aGUgcD8/X2FsbG9jIGZ1bmN0aW9ucyB0aHJvdWdoIGF0b21pYyBv cGVyYXRpb25zIHNvIHdlCisJICogZHVwbGljYXRlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIHBtZF9h bGxvYywgcHVkX2FsbG9jIGFuZAorCSAqIHB0ZV9hbGxvY19tYXAgaGVyZS4KIAkgKi8KKwlwYWdl X3RhYmxlX2F0b21pY19zdGFydChtbSk7CiAJcGdkID0gcGdkX29mZnNldChtbSwgYWRkcmVzcyk7 Ci0Jc3Bpbl9sb2NrKCZtbS0+cGFnZV90YWJsZV9sb2NrKTsKKwlpZiAodW5saWtlbHkocGdkX25v bmUoKnBnZCkpKSB7CisjaWZkZWYgX19BUkNIX0hBU180TEVWRUxfSEFDSworCQkvKiBUaGUgaGFj ayBkb2VzIG5vdCBhbGxvdyBhIGNsZWFuIGZhbGwgYmFjay4KKwkJICogV2UgbmVlZCB0byBpbnNl cnQgYSBwbWQgZW50cnkgaW50byBhIHBnZC4gcGdkX3Rlc3RfYW5kX3BvcHVsYXRlIGlzIHNldAor CQkgKiB1cCB0byB0YWtlIGEgcG1kIGVudHJ5LiBwdWRfbm9uZShwZ2QpID09IDAsIHRoZXJlZm9y ZQorCQkgKiB0aGUgcHVkIHBvcHVsYXRpb24gYnJhbmNoIHdpbGwgbmV2ZXIgYmUgdGFrZW4uCisJ CSAqLworCQlwbWRfdCAqbmV3OwogCi0JcHVkID0gcHVkX2FsbG9jKG1tLCBwZ2QsIGFkZHJlc3Mp OwotCWlmICghcHVkKQotCQlnb3RvIG9vbTsKKwkJcGFnZV90YWJsZV9hdG9taWNfc3RvcChtbSk7 CisJCW5ldyA9IHBtZF9hbGxvY19vbmUobW0sIGFkZHJlc3MpOworI2Vsc2UKKwkJcHVkX3QgKm5l dzsKIAotCXBtZCA9IHBtZF9hbGxvYyhtbSwgcHVkLCBhZGRyZXNzKTsKLQlpZiAoIXBtZCkKLQkJ Z290byBvb207CisJCXBhZ2VfdGFibGVfYXRvbWljX3N0b3AobW0pOworCQluZXcgPSBwdWRfYWxs b2Nfb25lKG1tLCBhZGRyZXNzKTsKKyNlbmRpZgogCi0JcHRlID0gcHRlX2FsbG9jX21hcChtbSwg cG1kLCBhZGRyZXNzKTsKLQlpZiAoIXB0ZSkKLQkJZ290byBvb207Ci0JCi0JcmV0dXJuIGhhbmRs ZV9wdGVfZmF1bHQobW0sIHZtYSwgYWRkcmVzcywgd3JpdGVfYWNjZXNzLCBwdGUsIHBtZCk7CisJ CWlmICghbmV3KQorCQkJZ290byBvb207CiAKLSBvb206Ci0Jc3Bpbl91bmxvY2soJm1tLT5wYWdl X3RhYmxlX2xvY2spOworCQlwYWdlX3RhYmxlX2F0b21pY19zdGFydChtbSk7CisJCWlmICghcGdk X3Rlc3RfYW5kX3BvcHVsYXRlKG1tLCBwZ2QsIG5ldykpCisJCQlwdWRfZnJlZShuZXcpOworCX0K KworCXB1ZCA9IHB1ZF9vZmZzZXQocGdkLCBhZGRyZXNzKTsKKwlpZiAodW5saWtlbHkocHVkX25v bmUoKnB1ZCkpKSB7CisJCXBtZF90ICpuZXc7CisKKwkJcGFnZV90YWJsZV9hdG9taWNfc3RvcCht bSk7CisJCW5ldyA9IHBtZF9hbGxvY19vbmUobW0sIGFkZHJlc3MpOworCisJCWlmICghbmV3KQor CQkJZ290byBvb207CisKKwkJcGFnZV90YWJsZV9hdG9taWNfc3RhcnQobW0pOworCisJCWlmICgh cHVkX3Rlc3RfYW5kX3BvcHVsYXRlKG1tLCBwdWQsIG5ldykpCisJCQlwbWRfZnJlZShuZXcpOwor CX0KKworCXBtZCA9IHBtZF9vZmZzZXQocHVkLCBhZGRyZXNzKTsKKwlpZiAodW5saWtlbHkoIXBt ZF9wcmVzZW50KCpwbWQpKSkgeworCQlzdHJ1Y3QgcGFnZSAqbmV3OworCisJCXBhZ2VfdGFibGVf YXRvbWljX3N0b3AobW0pOworCQluZXcgPSBwdGVfYWxsb2Nfb25lKG1tLCBhZGRyZXNzKTsKKwor CQlpZiAoIW5ldykKKwkJCWdvdG8gb29tOworCisJCXBhZ2VfdGFibGVfYXRvbWljX3N0YXJ0KG1t KTsKKworCQlpZiAoIXBtZF90ZXN0X2FuZF9wb3B1bGF0ZShtbSwgcG1kLCBuZXcpKQorCQkJcHRl X2ZyZWUobmV3KTsKKwkJZWxzZSB7CisJCQlpbmNfcGFnZV9zdGF0ZShucl9wYWdlX3RhYmxlX3Bh Z2VzKTsKKwkJCW1tLT5ucl9wdGVzKys7CisJCX0KKwl9CisKKwlwdGUgPSBwdGVfb2Zmc2V0X21h cChwbWQsIGFkZHJlc3MpOworCXJldHVybiBoYW5kbGVfcHRlX2ZhdWx0KG1tLCB2bWEsIGFkZHJl c3MsIHdyaXRlX2FjY2VzcywgcHRlLCBwbWQpOworb29tOgogCXJldHVybiBWTV9GQVVMVF9PT007 CisKK3NpZ2J1czoKKwlyZXR1cm4gVk1fRkFVTFRfU0lHQlVTOwogfQogCiAjaWZuZGVmIF9fUEFH RVRBQkxFX1BVRF9GT0xERUQKZGlmZiAtcHVOIG1tL3BhZ2VfYWxsb2MuY35wYWdlLWZhdWx0LXBh dGNoZXMtb3B0aW9uYWwtcGFnZV9sb2NrLWFjcXVpc2l0aW9uLWluIG1tL3BhZ2VfYWxsb2MuYwot LS0gMjUvbW0vcGFnZV9hbGxvYy5jfnBhZ2UtZmF1bHQtcGF0Y2hlcy1vcHRpb25hbC1wYWdlX2xv Y2stYWNxdWlzaXRpb24taW4JV2VkIEF1ZyAxNyAxNTowOTo1OSAyMDA1CisrKyAyNS1ha3BtL21t L3BhZ2VfYWxsb2MuYwlXZWQgQXVnIDE3IDE1OjA5OjU5IDIwMDUKQEAgLTIyMTgsNiArMjIxOCwx MiBAQCBzdGF0aWMgY2hhciAqdm1zdGF0X3RleHRbXSA9IHsKIAogCSJwZ3JvdGF0ZWQiLAogCSJu cl9ib3VuY2UiLAorCSJzcHVyaW91c19wYWdlX2ZhdWx0cyIsCisJImNtcHhjaGdfZmFpbF9mbGFn X3VwZGF0ZSIsCisJImNtcHhjaGdfZmFpbF9mbGFnX3JldXNlIiwKKworCSJjbXB4Y2hnX2ZhaWxf YW5vbl9yZWFkIiwKKwkiY21weGNoZ19mYWlsX2Fub25fd3JpdGUiLAogfTsKIAogc3RhdGljIHZv aWQgKnZtc3RhdF9zdGFydChzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIGxvZmZfdCAqcG9zKQpkaWZmIC1w dU4gaW5jbHVkZS9hc20tZ2VuZXJpYy80bGV2ZWwtZml4dXAuaH5wYWdlLWZhdWx0LXBhdGNoZXMt b3B0aW9uYWwtcGFnZV9sb2NrLWFjcXVpc2l0aW9uLWluIGluY2x1ZGUvYXNtLWdlbmVyaWMvNGxl dmVsLWZpeHVwLmgKLS0tIDI1L2luY2x1ZGUvYXNtLWdlbmVyaWMvNGxldmVsLWZpeHVwLmh+cGFn ZS1mYXVsdC1wYXRjaGVzLW9wdGlvbmFsLXBhZ2VfbG9jay1hY3F1aXNpdGlvbi1pbglXZWQgQXVn IDE3IDE1OjEwOjA4IDIwMDUKKysrIDI1LWFrcG0vaW5jbHVkZS9hc20tZ2VuZXJpYy80bGV2ZWwt Zml4dXAuaAlXZWQgQXVnIDE3IDE1OjEwOjA4IDIwMDUKQEAgLTI2LDYgKzI2LDcgQEAKICNkZWZp bmUgcHVkX3ByZXNlbnQocHVkKQkJMQogI2RlZmluZSBwdWRfRVJST1IocHVkKQkJCWRvIHsgfSB3 aGlsZSAoMCkKICNkZWZpbmUgcHVkX2NsZWFyKHB1ZCkJCQlwZ2RfY2xlYXIocHVkKQorI2RlZmlu ZSBwdWRfcG9wdWxhdGUJCQlwZ2RfcG9wdWxhdGUKIAogI3VuZGVmIHB1ZF9mcmVlX3RsYgogI2Rl ZmluZSBwdWRfZnJlZV90bGIodGxiLCB4KSAgICAgICAgICAgIGRvIHsgfSB3aGlsZSAoMCkKXwo= --Multipart=_Wed__17_Aug_2005_15_17_23_-0700_XDIaa/nxzyKk/cDo Content-Type: application/octet-stream; name="page-fault-patches-no-pagetable-lock-in-do_anon_page.patch" Content-Disposition: attachment; filename="page-fault-patches-no-pagetable-lock-in-do_anon_page.patch" Content-Transfer-Encoding: base64 CkZyb206IENocmlzdG9waCBMYW1ldGVyIDxjaHJpc3RvcGhAbGFtZXRlci5jb20+CgpEbyBub3Qg dXNlIHRoZSBwYWdlX3RhYmxlX2xvY2sgaW4gZG9fYW5vbnltb3VzX3BhZ2UuICBUaGlzIHdpbGwg c2lnbmlmaWNhbnRseQppbmNyZWFzZSB0aGUgcGFyYWxsZWxpc20gaW4gdGhlIHBhZ2UgZmF1bHQg aGFuZGxlciBmb3IgU01QIHN5c3RlbXMuICBUaGUgcGF0Y2gKYWxzbyBtb2RpZmllcyB0aGUgZGVm aW5pdGlvbnMgb2YgX21tX2NvdW50ZXIgZnVuY3Rpb25zIHNvIHRoYXQgcnNzIGFuZAphbm9uX3Jz cyBiZWNvbWUgYXRvbWljIChhbmQgd2lsbCB1c2UgYXRvbWljNjRfdCBpZiBhdmFpbGFibGUpLgoK U2lnbmVkLW9mZi1ieTogQ2hyaXN0b3BoIExhbWV0ZXIgPGNsYW1ldGVyQHNnaS5jb20+ClNpZ25l ZC1vZmYtYnk6IEh1Z2ggRGlja2lucyA8aHVnaEB2ZXJpdGFzLmNvbT4KU2lnbmVkLW9mZi1ieTog QW5kcmV3IE1vcnRvbiA8YWtwbUBvc2RsLm9yZz4KLS0tCgogaW5jbHVkZS9saW51eC9zY2hlZC5o IHwgICAzMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBtbS9tZW1vcnkuYyAgICAg ICAgICAgfCAgIDE0ICsrKysrLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlv bnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC1wdU4gaW5jbHVkZS9saW51eC9zY2hlZC5ofnBh Z2UtZmF1bHQtcGF0Y2hlcy1uby1wYWdldGFibGUtbG9jay1pbi1kb19hbm9uX3BhZ2UgaW5jbHVk ZS9saW51eC9zY2hlZC5oCi0tLSAyNS9pbmNsdWRlL2xpbnV4L3NjaGVkLmh+cGFnZS1mYXVsdC1w YXRjaGVzLW5vLXBhZ2V0YWJsZS1sb2NrLWluLWRvX2Fub25fcGFnZQlXZWQgQXVnIDE3IDE1OjEw OjMwIDIwMDUKKysrIDI1LWFrcG0vaW5jbHVkZS9saW51eC9zY2hlZC5oCVdlZCBBdWcgMTcgMTU6 MTA6NDUgMjAwNQpAQCAtMjA0LDEyICsyMDQsNDMgQEAgYXJjaF9nZXRfdW5tYXBwZWRfYXJlYV90 b3Bkb3duKHN0cnVjdCBmaQogZXh0ZXJuIHZvaWQgYXJjaF91bm1hcF9hcmVhKHN0cnVjdCBtbV9z dHJ1Y3QgKiwgdW5zaWduZWQgbG9uZyk7CiBleHRlcm4gdm9pZCBhcmNoX3VubWFwX2FyZWFfdG9w ZG93bihzdHJ1Y3QgbW1fc3RydWN0ICosIHVuc2lnbmVkIGxvbmcpOwogCisjaWZkZWYgQ09ORklH X0FUT01JQ19UQUJMRV9PUFMKKy8qCisgKiBObyBzcGlubG9jayBpcyBoZWxkIGR1cmluZyBhdG9t aWMgcGFnZSB0YWJsZSBvcGVyYXRpb25zLiBUaGUKKyAqIGNvdW50ZXJzIGFyZSBub3QgcHJvdGVj dGVkIGFueW1vcmUgYW5kIG11c3QgYWxzbyBiZQorICogaW5jcmVtZW50ZWQgYXRvbWljYWxseS4K KyovCisjaWZkZWYgQVRPTUlDNjRfSU5JVAorI2RlZmluZSBzZXRfbW1fY291bnRlcihtbSwgbWVt YmVyLCB2YWx1ZSkgYXRvbWljNjRfc2V0KCYobW0pLT5fIyNtZW1iZXIsIHZhbHVlKQorI2RlZmlu ZSBnZXRfbW1fY291bnRlcihtbSwgbWVtYmVyKSAoKHVuc2lnbmVkIGxvbmcpYXRvbWljNjRfcmVh ZCgmKG1tKS0+XyMjbWVtYmVyKSkKKyNkZWZpbmUgYWRkX21tX2NvdW50ZXIobW0sIG1lbWJlciwg dmFsdWUpIGF0b21pYzY0X2FkZCh2YWx1ZSwgJihtbSktPl8jI21lbWJlcikKKyNkZWZpbmUgaW5j X21tX2NvdW50ZXIobW0sIG1lbWJlcikgYXRvbWljNjRfaW5jKCYobW0pLT5fIyNtZW1iZXIpCisj ZGVmaW5lIGRlY19tbV9jb3VudGVyKG1tLCBtZW1iZXIpIGF0b21pYzY0X2RlYygmKG1tKS0+XyMj bWVtYmVyKQordHlwZWRlZiBhdG9taWM2NF90IG1tX2NvdW50ZXJfdDsKKyNlbHNlCisvKgorICog VGhpcyBtYXkgbGltaXQgcHJvY2VzcyBtZW1vcnkgdG8gMl4zMSAqIFBBR0VfU0laRSB3aGljaCBt YXkgYmUgYXJvdW5kIDhUQgorICogaWYgdXNpbmcgNEtCIHBhZ2Ugc2l6ZQorICovCisjZGVmaW5l IHNldF9tbV9jb3VudGVyKG1tLCBtZW1iZXIsIHZhbHVlKSBhdG9taWNfc2V0KCYobW0pLT5fIyNt ZW1iZXIsIHZhbHVlKQorI2RlZmluZSBnZXRfbW1fY291bnRlcihtbSwgbWVtYmVyKSAoKHVuc2ln bmVkIGxvbmcpYXRvbWljX3JlYWQoJihtbSktPl8jI21lbWJlcikpCisjZGVmaW5lIGFkZF9tbV9j b3VudGVyKG1tLCBtZW1iZXIsIHZhbHVlKSBhdG9taWNfYWRkKHZhbHVlLCAmKG1tKS0+XyMjbWVt YmVyKQorI2RlZmluZSBpbmNfbW1fY291bnRlcihtbSwgbWVtYmVyKSBhdG9taWNfaW5jKCYobW0p LT5fIyNtZW1iZXIpCisjZGVmaW5lIGRlY19tbV9jb3VudGVyKG1tLCBtZW1iZXIpIGF0b21pY19k ZWMoJihtbSktPl8jI21lbWJlcikKK3R5cGVkZWYgYXRvbWljX3QgbW1fY291bnRlcl90OworI2Vu ZGlmCisjZWxzZQorLyoKKyAqIE5vIGF0b21pYyBwYWdlIHRhYmxlIG9wZXJhdGlvbnMuIENvdW50 ZXJzIGFyZSBwcm90ZWN0ZWQgYnkKKyAqIHRoZSBwYWdlIHRhYmxlIGxvY2sKKyAqLwogI2RlZmlu ZSBzZXRfbW1fY291bnRlcihtbSwgbWVtYmVyLCB2YWx1ZSkgKG1tKS0+XyMjbWVtYmVyID0gKHZh bHVlKQogI2RlZmluZSBnZXRfbW1fY291bnRlcihtbSwgbWVtYmVyKSAoKG1tKS0+XyMjbWVtYmVy KQogI2RlZmluZSBhZGRfbW1fY291bnRlcihtbSwgbWVtYmVyLCB2YWx1ZSkgKG1tKS0+XyMjbWVt YmVyICs9ICh2YWx1ZSkKICNkZWZpbmUgaW5jX21tX2NvdW50ZXIobW0sIG1lbWJlcikgKG1tKS0+ XyMjbWVtYmVyKysKICNkZWZpbmUgZGVjX21tX2NvdW50ZXIobW0sIG1lbWJlcikgKG1tKS0+XyMj bWVtYmVyLS0KIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBtbV9jb3VudGVyX3Q7CisjZW5kaWYKIAog c3RydWN0IG1tX3N0cnVjdCB7CiAJc3RydWN0IHZtX2FyZWFfc3RydWN0ICogbW1hcDsJCS8qIGxp c3Qgb2YgVk1BcyAqLwpkaWZmIC1wdU4gbW0vbWVtb3J5LmN+cGFnZS1mYXVsdC1wYXRjaGVzLW5v LXBhZ2V0YWJsZS1sb2NrLWluLWRvX2Fub25fcGFnZSBtbS9tZW1vcnkuYwotLS0gMjUvbW0vbWVt b3J5LmN+cGFnZS1mYXVsdC1wYXRjaGVzLW5vLXBhZ2V0YWJsZS1sb2NrLWluLWRvX2Fub25fcGFn ZQlXZWQgQXVnIDE3IDE1OjEwOjMwIDIwMDUKKysrIDI1LWFrcG0vbW0vbWVtb3J5LmMJV2VkIEF1 ZyAxNyAxNToxMDo0OCAyMDA1CkBAIC0xNzcyLDEyICsxNzcyLDEyIEBAIGRvX2Fub255bW91c19w YWdlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCAKIAkJfSBlbHNlIHsKIAkJCWluY19wYWdlX3N0YXRl KGNtcHhjaGdfZmFpbF9hbm9uX3JlYWQpOwogCQl9Ci0JCXB0ZV91bm1hcChwYWdlX3RhYmxlKTsK IAkJZ290byBtaW5vcl9mYXVsdDsKIAl9CiAKIAkvKiBUaGlzIGxlYXZlcyB0aGUgd3JpdGUgY2Fz ZSAqLwogCXBhZ2VfdGFibGVfYXRvbWljX3N0b3AobW0pOworCXB0ZV91bm1hcChwYWdlX3RhYmxl KTsKIAlpZiAodW5saWtlbHkoYW5vbl92bWFfcHJlcGFyZSh2bWEpKSkKIAkJZ290byBvb207CiAK QEAgLTE3ODgsMTMgKzE3ODgsMTMgQEAgZG9fYW5vbnltb3VzX3BhZ2Uoc3RydWN0IG1tX3N0cnVj dCAqbW0sIAogCWVudHJ5ID0gbWF5YmVfbWt3cml0ZShwdGVfbWtkaXJ0eShta19wdGUocGFnZSwK IAkJCQkJCXZtYS0+dm1fcGFnZV9wcm90KSksCiAJCQkJdm1hKTsKLQlzcGluX2xvY2soJm1tLT5w YWdlX3RhYmxlX2xvY2spOworCXBhZ2VfdGFibGUgPSBwdGVfb2Zmc2V0X21hcChwbWQsIGFkZHIp OworCXBhZ2VfdGFibGVfYXRvbWljX3N0YXJ0KG1tKTsKIAogCWlmICghcHRlcF9jbXB4Y2hnKG1t LCBhZGRyLCBwYWdlX3RhYmxlLCBvcmlnX2VudHJ5LCBlbnRyeSkpIHsKLQkJcHRlX3VubWFwKHBh Z2VfdGFibGUpOwogCQlwYWdlX2NhY2hlX3JlbGVhc2UocGFnZSk7CiAJCWluY19wYWdlX3N0YXRl KGNtcHhjaGdfZmFpbF9hbm9uX3dyaXRlKTsKLQkJZ290byBtaW5vcl9mYXVsdF9hdG9taWM7CisJ CWdvdG8gbWlub3JfZmF1bHQ7CiAgICAgICAgIH0KIAogCS8qCkBAIC0xODA1LDE2ICsxODA1LDEy IEBAIGRvX2Fub255bW91c19wYWdlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCAKIAlwYWdlX2FkZF9h bm9uX3JtYXAocGFnZSwgdm1hLCBhZGRyKTsKIAlscnVfY2FjaGVfYWRkX2FjdGl2ZShwYWdlKTsK IAlpbmNfbW1fY291bnRlcihtbSwgcnNzKTsKLQlwdGVfdW5tYXAocGFnZV90YWJsZSk7CiAJdXBk YXRlX21tdV9jYWNoZSh2bWEsIGFkZHIsIGVudHJ5KTsKIAlsYXp5X21tdV9wcm90X3VwZGF0ZShl bnRyeSk7CiAKIG1pbm9yX2ZhdWx0OgotCXNwaW5fdW5sb2NrKCZtbS0+cGFnZV90YWJsZV9sb2Nr KTsKLQlyZXR1cm4gVk1fRkFVTFRfTUlOT1I7Ci0KLW1pbm9yX2ZhdWx0X2F0b21pYzoKIAlwYWdl X3RhYmxlX2F0b21pY19zdG9wKG1tKTsKKwlwdGVfdW5tYXAocGFnZV90YWJsZSk7CiAJcmV0dXJu IFZNX0ZBVUxUX01JTk9SOwogCiBvb206Cl8K --Multipart=_Wed__17_Aug_2005_15_17_23_-0700_XDIaa/nxzyKk/cDo-- -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org