From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v5 4/8] xen: make grant resource limits per domain Date: Fri, 8 Sep 2017 08:56:30 +0200 Message-ID: <20170908065634.5420-5-jgross@suse.com> References: <20170908065634.5420-1-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170908065634.5420-1-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Juergen Gross , sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, tim@xen.org, julien.grall@arm.com, jbeulich@suse.com, dgdegra@tycho.nsa.gov List-Id: xen-devel@lists.xenproject.org SW5zdGVhZCBvZiB1c2luZyB0aGUgc2FtZSBnbG9iYWwgcmVzb3VyY2UgbGltaXRzIG9mIGdyYW50 IHRhYmxlcyAobWF4LgpudW1iZXIgb2YgZ3JhbnQgZnJhbWVzLCBtYXguIG51bWJlciBvZiBtYXB0 cmFjayBmcmFtZXMpIGZvciBhbGwgZG9tYWlucwptYWtlIHRoZXNlIGxpbWl0cyBwZXIgZG9tYWlu LiBUaGlzIHdpbGwgYWxsb3cgc2V0dGluZyBpbmRpdmlkdWFsIGxpbWl0cwppbiB0aGUgZnV0dXJl LiBGb3Igbm93IGluaXRpYWxpemUgdGhlIHBlciBkb21haW4gbGltaXRzIHdpdGggdGhlIGdsb2Jh bAp2YWx1ZXMuCgpTaWduZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+ ClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgpSZXZp ZXdlZC1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0tClYzOgotIGNvcnJlY3Qg ZXJyb3IgbWVzc2FnZSAoUGF1bCBEdXJyYW50KQotLS0KIHhlbi9jb21tb24vZ3JhbnRfdGFibGUu YyB8IDgyICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUu YwppbmRleCAyOWU3ZmE1MzliLi5mZjczNWE0YjQ3IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2dy YW50X3RhYmxlLmMKKysrIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCkBAIC03MSw2ICs3MSw5 IEBAIHN0cnVjdCBncmFudF90YWJsZSB7CiAgICAgICogd2hhdCB2ZXJzaW9uIHRvIHVzZSB5ZXQu CiAgICAgICovCiAgICAgdW5zaWduZWQgICAgICAgICAgICAgIGd0X3ZlcnNpb247CisgICAgLyog UmVzb3VyY2UgbGltaXRzIG9mIHRoZSBkb21haW4uICovCisgICAgdW5zaWduZWQgaW50ICAgICAg ICAgIG1heF9ncmFudF9mcmFtZXM7CisgICAgdW5zaWduZWQgaW50ICAgICAgICAgIG1heF9tYXB0 cmFja19mcmFtZXM7CiB9OwogCiAjaWZuZGVmIERFRkFVTFRfTUFYX05SX0dSQU5UX0ZSQU1FUyAv KiB0byBhbGxvdyBhcmNoIHRvIG92ZXJyaWRlICovCkBAIC0yODcsOCArMjkwLDggQEAgbnVtX2Fj dF9mcmFtZXNfZnJvbV9zaGFfZnJhbWVzKGNvbnN0IHVuc2lnbmVkIGludCBudW0pCiAgICAgcmV0 dXJuIERJVl9ST1VORF9VUChudW0gKiBzaGFfcGVyX3BhZ2UsIEFDR05UX1BFUl9QQUdFKTsKIH0K IAotI2RlZmluZSBtYXhfbnJfYWN0aXZlX2dyYW50X2ZyYW1lcyBcCi0gICAgbnVtX2FjdF9mcmFt ZXNfZnJvbV9zaGFfZnJhbWVzKG1heF9ncmFudF9mcmFtZXMpCisjZGVmaW5lIG1heF9ucl9hY3Rp dmVfZ3JhbnRfZnJhbWVzKGd0KSBcCisgICAgbnVtX2FjdF9mcmFtZXNfZnJvbV9zaGFfZnJhbWVz KGd0LT5tYXhfZ3JhbnRfZnJhbWVzKQogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludAogbnJf YWN0aXZlX2dyYW50X2ZyYW1lcyhzdHJ1Y3QgZ3JhbnRfdGFibGUgKmd0KQpAQCAtNTI2LDcgKzUy OSw3IEBAIGdldF9tYXB0cmFja19oYW5kbGUoCiAgICAgICogb3V0IG9mIG1lbW9yeSwgdHJ5IHN0 ZWFsaW5nIGFuIGVudHJ5IGZyb20gYW5vdGhlciBWQ1BVIChpbiBjYXNlIHRoZQogICAgICAqIGd1 ZXN0IGlzbid0IG1hcHBpbmcgYWNyb3NzIGl0cyBWQ1BVcyBldmVubHkpLgogICAgICAqLwotICAg IGlmICggbnJfbWFwdHJhY2tfZnJhbWVzKGxndCkgPCBtYXhfbWFwdHJhY2tfZnJhbWVzICkKKyAg ICBpZiAoIG5yX21hcHRyYWNrX2ZyYW1lcyhsZ3QpIDwgbGd0LT5tYXhfbWFwdHJhY2tfZnJhbWVz ICkKICAgICAgICAgbmV3X210ID0gYWxsb2NfeGVuaGVhcF9wYWdlKCk7CiAKICAgICBpZiAoICFu ZXdfbXQgKQpAQCAtMTY2NCwxNCArMTY2NywxNSBAQCBncmFudF90YWJsZV9pbml0KHN0cnVjdCBk b21haW4gKmQpCiAgICAgaWYgKCBndC0+bnJfZ3JhbnRfZnJhbWVzICkKICAgICAgICAgcmV0dXJu IDA7CiAKLSAgICBndC0+bnJfZ3JhbnRfZnJhbWVzID0gSU5JVElBTF9OUl9HUkFOVF9GUkFNRVM7 CisgICAgZ3QtPm5yX2dyYW50X2ZyYW1lcyA9IG1pbl90KHVuc2lnbmVkIGludCwgSU5JVElBTF9O Ul9HUkFOVF9GUkFNRVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZ3QtPm1heF9ncmFudF9mcmFtZXMpOwogCiAgICAgLyogQWN0aXZlIGdyYW50IHRhYmxl LiAqLwogICAgIGlmICggKGd0LT5hY3RpdmUgPSB4emFsbG9jX2FycmF5KHN0cnVjdCBhY3RpdmVf Z3JhbnRfZW50cnkgKiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhf bnJfYWN0aXZlX2dyYW50X2ZyYW1lcykpID09IE5VTEwgKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG1heF9ucl9hY3RpdmVfZ3JhbnRfZnJhbWVzKGd0KSkpID09IE5VTEwg KQogICAgICAgICBnb3RvIG5vX21lbV8xOwogICAgIGZvciAoIGkgPSAwOwotICAgICAgICAgIGkg PCBudW1fYWN0X2ZyYW1lc19mcm9tX3NoYV9mcmFtZXMoSU5JVElBTF9OUl9HUkFOVF9GUkFNRVMp OyBpKysgKQorICAgICAgICAgIGkgPCBudW1fYWN0X2ZyYW1lc19mcm9tX3NoYV9mcmFtZXMoZ3Qt Pm5yX2dyYW50X2ZyYW1lcyk7IGkrKyApCiAgICAgewogICAgICAgICBpZiAoIChndC0+YWN0aXZl W2ldID0gYWxsb2NfeGVuaGVhcF9wYWdlKCkpID09IE5VTEwgKQogICAgICAgICAgICAgZ290byBu b19tZW1fMjsKQEAgLTE2ODEsMTQgKzE2ODUsMTQgQEAgZ3JhbnRfdGFibGVfaW5pdChzdHJ1Y3Qg ZG9tYWluICpkKQogICAgIH0KIAogICAgIC8qIFRyYWNraW5nIG9mIG1hcHBlZCBmb3JlaWduIGZy YW1lcyB0YWJsZSAqLwotICAgIGd0LT5tYXB0cmFjayA9IHZ6YWxsb2MobWF4X21hcHRyYWNrX2Zy YW1lcyAqIHNpemVvZigqZ3QtPm1hcHRyYWNrKSk7CisgICAgZ3QtPm1hcHRyYWNrID0gdnphbGxv YyhndC0+bWF4X21hcHRyYWNrX2ZyYW1lcyAqIHNpemVvZigqZ3QtPm1hcHRyYWNrKSk7CiAgICAg aWYgKCBndC0+bWFwdHJhY2sgPT0gTlVMTCApCiAgICAgICAgIGdvdG8gbm9fbWVtXzI7CiAKICAg ICAvKiBTaGFyZWQgZ3JhbnQgdGFibGUuICovCi0gICAgaWYgKCAoZ3QtPnNoYXJlZF9yYXcgPSB4 emFsbG9jX2FycmF5KHZvaWQgKiwgbWF4X2dyYW50X2ZyYW1lcykpID09IE5VTEwgKQorICAgIGlm ICggKGd0LT5zaGFyZWRfcmF3ID0geHphbGxvY19hcnJheSh2b2lkICosIGd0LT5tYXhfZ3JhbnRf ZnJhbWVzKSkgPT0gTlVMTCApCiAgICAgICAgIGdvdG8gbm9fbWVtXzM7Ci0gICAgZm9yICggaSA9 IDA7IGkgPCBJTklUSUFMX05SX0dSQU5UX0ZSQU1FUzsgaSsrICkKKyAgICBmb3IgKCBpID0gMDsg aSA8IGd0LT5ucl9ncmFudF9mcmFtZXM7IGkrKyApCiAgICAgewogICAgICAgICBpZiAoIChndC0+ c2hhcmVkX3Jhd1tpXSA9IGFsbG9jX3hlbmhlYXBfcGFnZSgpKSA9PSBOVUxMICkKICAgICAgICAg ICAgIGdvdG8gbm9fbWVtXzQ7CkBAIC0xNjk3LDExICsxNzAxLDExIEBAIGdyYW50X3RhYmxlX2lu aXQoc3RydWN0IGRvbWFpbiAqZCkKIAogICAgIC8qIFN0YXR1cyBwYWdlcyBmb3IgZ3JhbnQgdGFi bGUgLSBmb3IgdmVyc2lvbiAyICovCiAgICAgZ3QtPnN0YXR1cyA9IHh6YWxsb2NfYXJyYXkoZ3Jh bnRfc3RhdHVzX3QgKiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmFudF90b19z dGF0dXNfZnJhbWVzKG1heF9ncmFudF9mcmFtZXMpKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBncmFudF90b19zdGF0dXNfZnJhbWVzKGd0LT5tYXhfZ3JhbnRfZnJhbWVzKSk7CiAg ICAgaWYgKCBndC0+c3RhdHVzID09IE5VTEwgKQogICAgICAgICBnb3RvIG5vX21lbV80OwogCi0g ICAgZm9yICggaSA9IDA7IGkgPCBJTklUSUFMX05SX0dSQU5UX0ZSQU1FUzsgaSsrICkKKyAgICBm b3IgKCBpID0gMDsgaSA8IGd0LT5ucl9ncmFudF9mcmFtZXM7IGkrKyApCiAgICAgICAgIGdudHRh Yl9jcmVhdGVfc2hhcmVkX3BhZ2UoZCwgZ3QsIGkpOwogCiAgICAgZ3QtPm5yX3N0YXR1c19mcmFt ZXMgPSAwOwpAQCAtMTcwOSw3ICsxNzEzLDcgQEAgZ3JhbnRfdGFibGVfaW5pdChzdHJ1Y3QgZG9t YWluICpkKQogICAgIHJldHVybiAwOwogCiAgbm9fbWVtXzQ6Ci0gICAgZm9yICggaSA9IDA7IGkg PCBJTklUSUFMX05SX0dSQU5UX0ZSQU1FUzsgaSsrICkKKyAgICBmb3IgKCBpID0gMDsgaSA8IGd0 LT5ucl9ncmFudF9mcmFtZXM7IGkrKyApCiAgICAgICAgIGZyZWVfeGVuaGVhcF9wYWdlKGd0LT5z aGFyZWRfcmF3W2ldKTsKICAgICB4ZnJlZShndC0+c2hhcmVkX3Jhdyk7CiAgICAgZ3QtPnNoYXJl ZF9yYXcgPSBOVUxMOwpAQCAtMTcxOCw3ICsxNzIyLDcgQEAgZ3JhbnRfdGFibGVfaW5pdChzdHJ1 Y3QgZG9tYWluICpkKQogICAgIGd0LT5tYXB0cmFjayA9IE5VTEw7CiAgbm9fbWVtXzI6CiAgICAg Zm9yICggaSA9IDA7Ci0gICAgICAgICAgaSA8IG51bV9hY3RfZnJhbWVzX2Zyb21fc2hhX2ZyYW1l cyhJTklUSUFMX05SX0dSQU5UX0ZSQU1FUyk7IGkrKyApCisgICAgICAgICAgaSA8IG51bV9hY3Rf ZnJhbWVzX2Zyb21fc2hhX2ZyYW1lcyhndC0+bnJfZ3JhbnRfZnJhbWVzKTsgaSsrICkKICAgICAg ICAgZnJlZV94ZW5oZWFwX3BhZ2UoZ3QtPmFjdGl2ZVtpXSk7CiAgICAgeGZyZWUoZ3QtPmFjdGl2 ZSk7CiAgICAgZ3QtPmFjdGl2ZSA9IE5VTEw7CkBAIC0xNzQzLDcgKzE3NDcsNyBAQCBnbnR0YWJf Z3Jvd190YWJsZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgcmVxX25yX2ZyYW1lcykK ICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgQVNTRVJUKHJlcV9ucl9mcmFtZXMgPD0g bWF4X2dyYW50X2ZyYW1lcyk7CisgICAgQVNTRVJUKHJlcV9ucl9mcmFtZXMgPD0gZ3QtPm1heF9n cmFudF9mcmFtZXMpOwogCiAgICAgZ2RwcmludGsoWEVOTE9HX0lORk8sCiAgICAgICAgICAgICAi RXhwYW5kaW5nIGRvbSAoJWQpIGdyYW50IHRhYmxlIGZyb20gKCVkKSB0byAoJWQpIGZyYW1lcy5c biIsCkBAIC0xODE1LDE1ICsxODE5LDYgQEAgZ250dGFiX3NldHVwX3RhYmxlKAogICAgIGlmICgg dW5saWtlbHkoY29weV9mcm9tX2d1ZXN0KCZvcCwgdW9wLCAxKSkgKQogICAgICAgICByZXR1cm4g LUVGQVVMVDsKIAotICAgIGlmICggdW5saWtlbHkob3AubnJfZnJhbWVzID4gbWF4X2dyYW50X2Zy YW1lcykgKQotICAgIHsKLSAgICAgICAgZ2RwcmludGsoWEVOTE9HX0lORk8sICJYZW4gb25seSBz dXBwb3J0cyB1cCB0byAlZCBncmFudC10YWJsZSBmcmFtZXMiCi0gICAgICAgICAgICAgICAgIiBw ZXIgZG9tYWluLlxuIiwKLSAgICAgICAgICAgICAgICBtYXhfZ3JhbnRfZnJhbWVzKTsKLSAgICAg ICAgb3Auc3RhdHVzID0gR05UU1RfZ2VuZXJhbF9lcnJvcjsKLSAgICAgICAgZ290byBvdXQ7Ci0g ICAgfQotCiAgICAgaWYgKCAhZ3Vlc3RfaGFuZGxlX29rYXkob3AuZnJhbWVfbGlzdCwgb3AubnJf ZnJhbWVzKSApCiAgICAgICAgIHJldHVybiAtRUZBVUxUOwogCkBAIC0xODQzLDYgKzE4MzgsMTQg QEAgZ250dGFiX3NldHVwX3RhYmxlKAogICAgIGd0ID0gZC0+Z3JhbnRfdGFibGU7CiAgICAgZ3Jh bnRfd3JpdGVfbG9jayhndCk7CiAKKyAgICBpZiAoIHVubGlrZWx5KG9wLm5yX2ZyYW1lcyA+IGd0 LT5tYXhfZ3JhbnRfZnJhbWVzKSApCisgICAgeworICAgICAgICBnZHByaW50ayhYRU5MT0dfSU5G TywgIkRvbWFpbiBpcyBsaW1pdGVkIHRvICVkIGdyYW50LXRhYmxlIGZyYW1lcy5cbiIsCisgICAg ICAgICAgICAgICAgZ3QtPm1heF9ncmFudF9mcmFtZXMpOworICAgICAgICBvcC5zdGF0dXMgPSBH TlRTVF9nZW5lcmFsX2Vycm9yOworICAgICAgICBnb3RvIHVubG9jazsKKyAgICB9CisKICAgICBp ZiAoIGd0LT5ndF92ZXJzaW9uID09IDAgKQogICAgICAgICBndC0+Z3RfdmVyc2lvbiA9IDE7CiAK QEAgLTE4NTMsNyArMTg1Niw3IEBAIGdudHRhYl9zZXR1cF90YWJsZSgKICAgICB7CiAgICAgICAg IGdkcHJpbnRrKFhFTkxPR19JTkZPLAogICAgICAgICAgICAgICAgICAiRXhwYW5kIGdyYW50IHRh YmxlIHRvICV1IGZhaWxlZC4gQ3VycmVudDogJXUgTWF4OiAldVxuIiwKLSAgICAgICAgICAgICAg ICAgb3AubnJfZnJhbWVzLCBucl9ncmFudF9mcmFtZXMoZ3QpLCBtYXhfZ3JhbnRfZnJhbWVzKTsK KyAgICAgICAgICAgICAgICAgb3AubnJfZnJhbWVzLCBucl9ncmFudF9mcmFtZXMoZ3QpLCBndC0+ bWF4X2dyYW50X2ZyYW1lcyk7CiAgICAgICAgIG9wLnN0YXR1cyA9IEdOVFNUX2dlbmVyYWxfZXJy b3I7CiAgICAgICAgIGdvdG8gdW5sb2NrOwogICAgIH0KQEAgLTE4ODgsNiArMTg5MSw3IEBAIGdu dHRhYl9xdWVyeV9zaXplKAogewogICAgIHN0cnVjdCBnbnR0YWJfcXVlcnlfc2l6ZSBvcDsKICAg ICBzdHJ1Y3QgZG9tYWluICpkOworICAgIHN0cnVjdCBncmFudF90YWJsZSAqZ3Q7CiAKICAgICBp ZiAoIGNvdW50ICE9IDEgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKQEAgLTE5MDgsMTMgKzE5 MTIsMTUgQEAgZ250dGFiX3F1ZXJ5X3NpemUoCiAgICAgICAgIGdvdG8gb3V0OwogICAgIH0KIAot ICAgIGdyYW50X3JlYWRfbG9jayhkLT5ncmFudF90YWJsZSk7CisgICAgZ3QgPSBkLT5ncmFudF90 YWJsZTsKKworICAgIGdyYW50X3JlYWRfbG9jayhndCk7CiAKLSAgICBvcC5ucl9mcmFtZXMgICAg ID0gbnJfZ3JhbnRfZnJhbWVzKGQtPmdyYW50X3RhYmxlKTsKLSAgICBvcC5tYXhfbnJfZnJhbWVz ID0gbWF4X2dyYW50X2ZyYW1lczsKKyAgICBvcC5ucl9mcmFtZXMgICAgID0gbnJfZ3JhbnRfZnJh bWVzKGd0KTsKKyAgICBvcC5tYXhfbnJfZnJhbWVzID0gZ3QtPm1heF9ncmFudF9mcmFtZXM7CiAg ICAgb3Auc3RhdHVzICAgICAgICA9IEdOVFNUX29rYXk7CiAKLSAgICBncmFudF9yZWFkX3VubG9j ayhkLT5ncmFudF90YWJsZSk7CisgICAgZ3JhbnRfcmVhZF91bmxvY2soZ3QpOwogCiAgb3V0Ogog ICAgIGlmICggZCApCkBAIC0zNDY1LDYgKzM0NzEsOCBAQCBncmFudF90YWJsZV9jcmVhdGUoCiAg ICAgLyogU2ltcGxlIHN0dWZmLiAqLwogICAgIHBlcmNwdV9yd2xvY2tfcmVzb3VyY2VfaW5pdCgm dC0+bG9jaywgZ3JhbnRfcndsb2NrKTsKICAgICBzcGluX2xvY2tfaW5pdCgmdC0+bWFwdHJhY2tf bG9jayk7CisgICAgdC0+bWF4X2dyYW50X2ZyYW1lcyA9IG1heF9ncmFudF9mcmFtZXM7CisgICAg dC0+bWF4X21hcHRyYWNrX2ZyYW1lcyA9IG1heF9tYXB0cmFja19mcmFtZXM7CiAKICAgICAvKiBP a2F5LCBpbnN0YWxsIHRoZSBzdHJ1Y3R1cmUuICovCiAgICAgZC0+Z3JhbnRfdGFibGUgPSB0OwpA QCAtMzcyOCw3ICszNzM2LDcgQEAgaW50IGdudHRhYl9tYXBfZnJhbWUoc3RydWN0IGRvbWFpbiAq ZCwgdW5zaWduZWQgbG9uZyBpZHgsIGdmbl90IGdmbiwKICAgICB9CiAgICAgZWxzZQogICAgIHsK LSAgICAgICAgaWYgKCAoaWR4ID49IG5yX2dyYW50X2ZyYW1lcyhndCkpICYmIChpZHggPCBtYXhf Z3JhbnRfZnJhbWVzKSApCisgICAgICAgIGlmICggKGlkeCA+PSBucl9ncmFudF9mcmFtZXMoZ3Qp KSAmJiAoaWR4IDwgZ3QtPm1heF9ncmFudF9mcmFtZXMpICkKICAgICAgICAgICAgIGdudHRhYl9n cm93X3RhYmxlKGQsIGlkeCArIDEpOwogCiAgICAgICAgIGlmICggaWR4IDwgbnJfZ3JhbnRfZnJh bWVzKGd0KSApCkBAIC0zNzU1LDYgKzM3NjMsMTIgQEAgc3RhdGljIHZvaWQgZ250dGFiX3VzYWdl X3ByaW50KHN0cnVjdCBkb21haW4gKnJkKQogCiAgICAgZ3JhbnRfcmVhZF9sb2NrKGd0KTsKIAor ICAgIHByaW50aygiZ3JhbnQtdGFibGUgZm9yIHJlbW90ZSBkb21haW46JTVkICh2JWQpXG4iCisg ICAgICAgICAgICIgICVkIGZyYW1lcyAoJWQgbWF4KSwgJWQgbWFwdHJhY2sgZnJhbWVzICglZCBt YXgpXG4iLAorICAgICAgICAgICByZC0+ZG9tYWluX2lkLCBndC0+Z3RfdmVyc2lvbiwKKyAgICAg ICAgICAgbnJfZ3JhbnRfZnJhbWVzKGd0KSwgZ3QtPm1heF9ncmFudF9mcmFtZXMsCisgICAgICAg ICAgIG5yX21hcHRyYWNrX2ZyYW1lcyhndCksIGd0LT5tYXhfbWFwdHJhY2tfZnJhbWVzKTsKKwog ICAgIGZvciAoIHJlZiA9IDA7IHJlZiAhPSBucl9ncmFudF9lbnRyaWVzKGd0KTsgcmVmKysgKQog ICAgIHsKICAgICAgICAgc3RydWN0IGFjdGl2ZV9ncmFudF9lbnRyeSAqYWN0OwpAQCAtMzc4Miwx MiArMzc5Niw3IEBAIHN0YXRpYyB2b2lkIGdudHRhYl91c2FnZV9wcmludChzdHJ1Y3QgZG9tYWlu ICpyZCkKICAgICAgICAgICAgIHN0YXR1cyA9IHN0YXR1c19lbnRyeShndCwgcmVmKTsKICAgICAg ICAgfQogCi0gICAgICAgIGlmICggZmlyc3QgKQotICAgICAgICB7Ci0gICAgICAgICAgICBwcmlu dGsoImdyYW50LXRhYmxlIGZvciByZW1vdGUgZG9tYWluOiU1ZCAodiVkKVxuIiwKLSAgICAgICAg ICAgICAgICAgICByZC0+ZG9tYWluX2lkLCBndC0+Z3RfdmVyc2lvbik7Ci0gICAgICAgICAgICBm aXJzdCA9IDA7Ci0gICAgICAgIH0KKyAgICAgICAgZmlyc3QgPSAwOwogCiAgICAgICAgIC8qICAg ICAgWzB4WFhYXSAgZGRkZGQgMHhYWFhYWFggMHhYWFhYWFhYWCAgICAgIGRkZGRkIDB4WFhYWFhY IDB4WFggKi8KICAgICAgICAgcHJpbnRrKCJbMHglMDN4XSAgJTVkIDB4JTA2bHggMHglMDh4ICAg ICAgJTVkIDB4JTA2IlBSSXg2NCIgMHglMDJ4XG4iLApAQCAtMzc5OSw4ICszODA4LDcgQEAgc3Rh dGljIHZvaWQgZ250dGFiX3VzYWdlX3ByaW50KHN0cnVjdCBkb21haW4gKnJkKQogICAgIGdyYW50 X3JlYWRfdW5sb2NrKGd0KTsKIAogICAgIGlmICggZmlyc3QgKQotICAgICAgICBwcmludGsoImdy YW50LXRhYmxlIGZvciByZW1vdGUgZG9tYWluOiU1ZCAuLi4gIgotICAgICAgICAgICAgICAgIm5v IGFjdGl2ZSBncmFudCB0YWJsZSBlbnRyaWVzXG4iLCByZC0+ZG9tYWluX2lkKTsKKyAgICAgICAg cHJpbnRrKCJubyBhY3RpdmUgZ3JhbnQgdGFibGUgZW50cmllc1xuIik7CiB9CiAKIHN0YXRpYyB2 b2lkIGdudHRhYl91c2FnZV9wcmludF9hbGwodW5zaWduZWQgY2hhciBrZXkpCi0tIAoyLjEyLjMK CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVu Lm9yZy94ZW4tZGV2ZWwK