From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 3/6] xen/sched: Improvements to the {alloc, free}_domdata() interfaces Date: Wed, 28 Feb 2018 14:14:25 +0000 Message-ID: <1519827268-18199-4-git-send-email-andrew.cooper3@citrix.com> References: <1519827268-18199-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1519827268-18199-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: George Dunlap , Andrew Cooper , Robert VanVossen , Dario Faggioli , Josh Whitehead , Meng Xu List-Id: xen-devel@lists.xenproject.org VGhlIG1haW4gcHVycG9zZSBvZiB0aGlzIGNoYW5nZSBpcyBmb3IgdGhlIHN1YnNlcXVlbnQgY2xl YW51cCBpdCBlbmFibGVzLCBidXQKaXQgc3RhbmRzIG9uIGl0cyBvd24gbWVyaXRzLgoKSW4gcHJp bmNpcGxlLCB0aGVzZSBob29rcyBhcmUgb3B0aW9uYWwsIGJ1dCB0aGUgU0NIRURfT1AoKSBkZWZh dWx0IGFsaWFzZXMgYQptZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlLCB3aGljaCBjYXVzZXMgYXJp bmM2NTMgdG8gcGxheSB0aGUgZGFuZ2Vyb3VzIGdhbWUgb2YKcGFzc2luZyBpdHMgcHJpdiBwb2lu dGVyIGJhY2ssIGFuZCByZW1lbWJlcmluZyBub3QgdG8gYWN0dWFsbHkgZnJlZSBpdC4KClJlZGVm aW5lIGFsbG9jX2RvbWRhdGEgdG8gdXNlIEVSUl9QVFIoKSBmb3IgZXJyb3JzLCBOVUxMIGZvciBu b3RoaW5nLCBhbmQKbm9uLU5VTEwgZm9yIGEgcmVhbCBhbGxvY2F0aW9uLCB3aGljaCBhbGxvd3Mg dGhlIGhvb2sgdG8gYmVjb21lIHByb3Blcmx5Cm9wdGlvbmFsLiAgUmVkZWZpbmUgZnJlZV9kb21k YXRhIHRvIGJlIGlkZW1wb3RlbnQuCgpGb3IgYXJpbmM2NTMsIHRoaXMgbWVhbnMgdGhlIGR1bW15 IGhvb2tzIGNhbiBiZSBkcm9wcGVkIGVudGlyZWx5LiAgRm9yIHRoZQpvdGhlciBzY2hlZHVsZXJz LCB0aGlzIG1lYW5zIHJldHVybmluZyBFUlJfUFRSKC1FTk9NRU0pIGluc3RlYWQgb2YgTlVMTCBm b3IKbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZXMsIGFuZCBtb2RpZnlpbmcgdGhlIGZyZWUgaG9v a3MgdG8gY29wZSB3aXRoIGEgTlVMTApwb2ludGVyLiAgV2hpbGUgbWFraW5nIHRoZSBhbHRlcmF0 aW9ucywgZHJvcCBzb21lIHNwdXJpb3VzIGNhc3RzIHRvIHZvaWQgKi4KCkludHJvZHVjZSBhbmQg dXNlIHByb3BlciB3cmFwcGVycyBmb3Igc2NoZWRfe2FsbG9jLGZyZWV9X2RvbWRhdGEoKS4gIFRo ZXNlIGFyZQpzdHJpY3RseSBiZXR0ZXIgdGhhbiBTQ0hFRF9PUCgpLCBhcyB0aGUgc291cmNlIGNv ZGUgaXMgdmlzaWJsZSB0bwpncmVwL2NzY29wZS90YWdzLCB0aGUgZ2VuZXJhdGVkIGNvZGUgaXMg YmV0dGVyLCBhbmQgdGhlcmUgY2FuIGJlIHByb3BlcgpwZXItaG9vayBkZWZhdWx0cyBhbmQgY2hl Y2tzLgoKQ2FsbGVycyBvZiB0aGUgYWxsb2MgaG9va3MgYXJlIHN3aXRjaGVkIHRvIHVzaW5nIElT X0VSUigpLCByYXRoZXIgdGhhbgpjaGVja2luZyBmb3IgTlVMTC4KClNpZ25lZC1vZmYtYnk6IEFu ZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzogR2VvcmdlIER1 bmxhcCA8Z2VvcmdlLmR1bmxhcEBldS5jaXRyaXguY29tPgpDQzogRGFyaW8gRmFnZ2lvbGkgPGRm YWdnaW9saUBzdXNlLmNvbT4KQ0M6IE1lbmcgWHUgPG1lbmd4dUBjaXMudXBlbm4uZWR1PgpDQzog Sm9zaCBXaGl0ZWhlYWQgPGpvc2gud2hpdGVoZWFkQGRvcm5lcndvcmtzLmNvbT4KQ0M6IFJvYmVy dCBWYW5Wb3NzZW4gPHJvYmVydC52YW52b3NzZW5AZG9ybmVyd29ya3MuY29tPgotLS0KIHhlbi9j b21tb24vc2NoZWRfYXJpbmM2NTMuYyB8IDMxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KIHhlbi9jb21tb24vc2NoZWRfY3JlZGl0LmMgICB8ICA4ICsrKystLS0tCiB4ZW4vY29tbW9u L3NjaGVkX2NyZWRpdDIuYyAgfCAyNCArKysrKysrKysrKysrLS0tLS0tLS0tLS0KIHhlbi9jb21t b24vc2NoZWRfbnVsbC5jICAgICB8IDIyICsrKysrKysrKysrKystLS0tLS0tLS0KIHhlbi9jb21t b24vc2NoZWRfcnQuYyAgICAgICB8IDIxICsrKysrKysrKysrKystLS0tLS0tLQogeGVuL2NvbW1v bi9zY2hlZHVsZS5jICAgICAgIHwgMTIgKysrKysrLS0tLS0tCiB4ZW4vaW5jbHVkZS94ZW4vc2No ZWQtaWYuaCAgfCAyNyArKysrKysrKysrKysrKysrKysrKysrKysrKy0KIDcgZmlsZXMgY2hhbmdl ZCwgNzUgaW5zZXJ0aW9ucygrKSwgNzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2Nv bW1vbi9zY2hlZF9hcmluYzY1My5jIGIveGVuL2NvbW1vbi9zY2hlZF9hcmluYzY1My5jCmluZGV4 IDk4Mjg0NWIuLjE3ZTc2NWQgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vc2NoZWRfYXJpbmM2NTMu YworKysgYi94ZW4vY29tbW9uL3NjaGVkX2FyaW5jNjUzLmMKQEAgLTQ1NSwzNCArNDU1LDYgQEAg YTY1M3NjaGVkX2ZyZWVfdmRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpw cml2KQogfQogCiAvKioKLSAqIFRoaXMgZnVuY3Rpb24gYWxsb2NhdGVzIHNjaGVkdWxlci1zcGVj aWZpYyBkYXRhIGZvciBhIGRvbWFpbgotICoKLSAqIFdlIGRvIG5vdCBhY3R1YWxseSBtYWtlIHVz ZSBvZiBhbnkgcGVyLWRvbWFpbiBkYXRhIGJ1dCB0aGUgaHlwZXJ2aXNvcgotICogZXhwZWN0cyBh IG5vbi1OVUxMIHJldHVybiB2YWx1ZQotICoKLSAqIEBwYXJhbSBvcHMgICAgICAgUG9pbnRlciB0 byB0aGlzIGluc3RhbmNlIG9mIHRoZSBzY2hlZHVsZXIgc3RydWN0dXJlCi0gKgotICogQHJldHVy biAgICAgICAgICBQb2ludGVyIHRvIHRoZSBhbGxvY2F0ZWQgZGF0YQotICovCi1zdGF0aWMgdm9p ZCAqCi1hNjUzc2NoZWRfYWxsb2NfZG9tZGF0YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMs IHN0cnVjdCBkb21haW4gKmRvbSkKLXsKLSAgICAvKiByZXR1cm4gYSBub24tTlVMTCB2YWx1ZSB0 byBrZWVwIHNjaGVkdWxlLmMgaGFwcHkgKi8KLSAgICByZXR1cm4gU0NIRURfUFJJVihvcHMpOwot fQotCi0vKioKLSAqIFRoaXMgZnVuY3Rpb24gZnJlZXMgc2NoZWR1bGVyLXNwZWNpZmljIGRhdGEg Zm9yIGEgZG9tYWluCi0gKgotICogQHBhcmFtIG9wcyAgICAgICBQb2ludGVyIHRvIHRoaXMgaW5z dGFuY2Ugb2YgdGhlIHNjaGVkdWxlciBzdHJ1Y3R1cmUKLSAqLwotc3RhdGljIHZvaWQKLWE2NTNz Y2hlZF9mcmVlX2RvbWRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpkYXRh KQotewotICAgIC8qIG5vcCAqLwotfQotCi0vKioKICAqIFhlbiBzY2hlZHVsZXIgY2FsbGJhY2sg ZnVuY3Rpb24gdG8gc2xlZXAgYSBWQ1BVCiAgKgogICogQHBhcmFtIG9wcyAgICAgICBQb2ludGVy IHRvIHRoaXMgaW5zdGFuY2Ugb2YgdGhlIHNjaGVkdWxlciBzdHJ1Y3R1cmUKQEAgLTc0MCw5ICs3 MTIsNiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNjaGVkdWxlciBzY2hlZF9hcmluYzY1M19kZWYg PSB7CiAgICAgLmZyZWVfdmRhdGEgICAgID0gYTY1M3NjaGVkX2ZyZWVfdmRhdGEsCiAgICAgLmFs bG9jX3ZkYXRhICAgID0gYTY1M3NjaGVkX2FsbG9jX3ZkYXRhLAogCi0gICAgLmZyZWVfZG9tZGF0 YSAgID0gYTY1M3NjaGVkX2ZyZWVfZG9tZGF0YSwKLSAgICAuYWxsb2NfZG9tZGF0YSAgPSBhNjUz c2NoZWRfYWxsb2NfZG9tZGF0YSwKLQogICAgIC5pbml0X2RvbWFpbiAgICA9IE5VTEwsCiAgICAg LmRlc3Ryb3lfZG9tYWluID0gTlVMTCwKIApkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZF9j cmVkaXQuYyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0LmMKaW5kZXggZjgyMTJkYi4uZTIxMzNk ZiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQuYworKysgYi94ZW4vY29tbW9u L3NjaGVkX2NyZWRpdC5jCkBAIC0xMjgyLDcgKzEyODIsNyBAQCBjc2NoZWRfYWxsb2NfZG9tZGF0 YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBkb21haW4gKmRvbSkKIAogICAg IHNkb20gPSB4emFsbG9jKHN0cnVjdCBjc2NoZWRfZG9tKTsKICAgICBpZiAoIHNkb20gPT0gTlVM TCApCi0gICAgICAgIHJldHVybiBOVUxMOworICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PTUVN KTsKIAogICAgIC8qIEluaXRpYWxpemUgY3JlZGl0IGFuZCB3ZWlnaHQgKi8KICAgICBJTklUX0xJ U1RfSEVBRCgmc2RvbS0+YWN0aXZlX3ZjcHUpOwpAQCAtMTI5MCw3ICsxMjkwLDcgQEAgY3NjaGVk X2FsbG9jX2RvbWRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgZG9tYWlu ICpkb20pCiAgICAgc2RvbS0+ZG9tID0gZG9tOwogICAgIHNkb20tPndlaWdodCA9IENTQ0hFRF9E RUZBVUxUX1dFSUdIVDsKIAotICAgIHJldHVybiAodm9pZCAqKXNkb207CisgICAgcmV0dXJuIHNk b207CiB9CiAKIHN0YXRpYyBpbnQKQEAgLTEzMDIsOCArMTMwMiw4IEBAIGNzY2hlZF9kb21faW5p dChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBkb21haW4gKmRvbSkKICAgICAg ICAgcmV0dXJuIDA7CiAKICAgICBzZG9tID0gY3NjaGVkX2FsbG9jX2RvbWRhdGEob3BzLCBkb20p OwotICAgIGlmICggc2RvbSA9PSBOVUxMICkKLSAgICAgICAgcmV0dXJuIC1FTk9NRU07CisgICAg aWYgKCBJU19FUlIoc2RvbSkgKQorICAgICAgICByZXR1cm4gUFRSX0VSUihzZG9tKTsKIAogICAg IGRvbS0+c2NoZWRfcHJpdiA9IHNkb207CiAKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vc2NoZWRf Y3JlZGl0Mi5jIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMKaW5kZXggYjA5NGIzYy4uMjlh MjRkNiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMKKysrIGIveGVuL2Nv bW1vbi9zY2hlZF9jcmVkaXQyLmMKQEAgLTMwMTIsNyArMzAxMiw3IEBAIGNzY2hlZDJfYWxsb2Nf ZG9tZGF0YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBkb21haW4gKmRvbSkK IAogICAgIHNkb20gPSB4emFsbG9jKHN0cnVjdCBjc2NoZWQyX2RvbSk7CiAgICAgaWYgKCBzZG9t ID09IE5VTEwgKQotICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgcmV0dXJuIEVSUl9QVFIo LUVOT01FTSk7CiAKICAgICAvKiBJbml0aWFsaXplIGNyZWRpdCwgY2FwIGFuZCB3ZWlnaHQgKi8K ICAgICBJTklUX0xJU1RfSEVBRCgmc2RvbS0+c2RvbV9lbGVtKTsKQEAgLTMwMzIsNyArMzAzMiw3 IEBAIGNzY2hlZDJfYWxsb2NfZG9tZGF0YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMsIHN0 cnVjdCBkb21haW4gKmRvbSkKIAogICAgIHdyaXRlX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxv Y2ssIGZsYWdzKTsKIAotICAgIHJldHVybiAodm9pZCAqKXNkb207CisgICAgcmV0dXJuIHNkb207 CiB9CiAKIHN0YXRpYyBpbnQKQEAgLTMwNDQsOCArMzA0NCw4IEBAIGNzY2hlZDJfZG9tX2luaXQo Y29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgZG9tYWluICpkb20pCiAgICAgICAg IHJldHVybiAwOwogCiAgICAgc2RvbSA9IGNzY2hlZDJfYWxsb2NfZG9tZGF0YShvcHMsIGRvbSk7 Ci0gICAgaWYgKCBzZG9tID09IE5VTEwgKQotICAgICAgICByZXR1cm4gLUVOT01FTTsKKyAgICBp ZiAoIElTX0VSUihzZG9tKSApCisgICAgICAgIHJldHVybiBQVFJfRVJSKHNkb20pOwogCiAgICAg ZG9tLT5zY2hlZF9wcml2ID0gc2RvbTsKIApAQCAtMzA1NSwxOSArMzA1NSwyMSBAQCBjc2NoZWQy X2RvbV9pbml0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgc3RydWN0IGRvbWFpbiAqZG9t KQogc3RhdGljIHZvaWQKIGNzY2hlZDJfZnJlZV9kb21kYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVs ZXIgKm9wcywgdm9pZCAqZGF0YSkKIHsKLSAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogICAgIHN0 cnVjdCBjc2NoZWQyX2RvbSAqc2RvbSA9IGRhdGE7CiAgICAgc3RydWN0IGNzY2hlZDJfcHJpdmF0 ZSAqcHJ2ID0gY3NjaGVkMl9wcml2KG9wcyk7CiAKLSAgICBraWxsX3RpbWVyKCZzZG9tLT5yZXBs X3RpbWVyKTsKLQotICAgIHdyaXRlX2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7Cisg ICAgaWYgKCBzZG9tICkKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAKLSAg ICBsaXN0X2RlbF9pbml0KCZzZG9tLT5zZG9tX2VsZW0pOworICAgICAgICBraWxsX3RpbWVyKCZz ZG9tLT5yZXBsX3RpbWVyKTsKIAotICAgIHdyaXRlX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxv Y2ssIGZsYWdzKTsKKyAgICAgICAgd3JpdGVfbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZsYWdz KTsKKyAgICAgICAgbGlzdF9kZWxfaW5pdCgmc2RvbS0+c2RvbV9lbGVtKTsKKyAgICAgICAgd3Jp dGVfdW5sb2NrX2lycXJlc3RvcmUoJnBydi0+bG9jaywgZmxhZ3MpOwogCi0gICAgeGZyZWUoZGF0 YSk7CisgICAgICAgIHhmcmVlKHNkb20pOworICAgIH0KIH0KIAogc3RhdGljIHZvaWQKZGlmZiAt LWdpdCBhL3hlbi9jb21tb24vc2NoZWRfbnVsbC5jIGIveGVuL2NvbW1vbi9zY2hlZF9udWxsLmMK aW5kZXggYjRhMjRiYS4uNGRkNDA1YiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hlZF9udWxs LmMKKysrIGIveGVuL2NvbW1vbi9zY2hlZF9udWxsLmMKQEAgLTIzMSw3ICsyMzEsNyBAQCBzdGF0 aWMgdm9pZCAqIG51bGxfYWxsb2NfZG9tZGF0YShjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICpvcHMs CiAKICAgICBuZG9tID0geHphbGxvYyhzdHJ1Y3QgbnVsbF9kb20pOwogICAgIGlmICggbmRvbSA9 PSBOVUxMICkKLSAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIHJldHVybiBFUlJfUFRSKC1F Tk9NRU0pOwogCiAgICAgbmRvbS0+ZG9tID0gZDsKIApAQCAtMjM5LDIwICsyMzksMjQgQEAgc3Rh dGljIHZvaWQgKiBudWxsX2FsbG9jX2RvbWRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3Bz LAogICAgIGxpc3RfYWRkX3RhaWwoJm5kb20tPm5kb21fZWxlbSwgJm51bGxfcHJpdihvcHMpLT5u ZG9tKTsKICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZsYWdzKTsKIAot ICAgIHJldHVybiAodm9pZCopbmRvbTsKKyAgICByZXR1cm4gbmRvbTsKIH0KIAogc3RhdGljIHZv aWQgbnVsbF9mcmVlX2RvbWRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCB2b2lkICpk YXRhKQogewotICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAgICAgc3RydWN0IG51bGxfZG9tICpu ZG9tID0gZGF0YTsKICAgICBzdHJ1Y3QgbnVsbF9wcml2YXRlICpwcnYgPSBudWxsX3ByaXYob3Bz KTsKIAotICAgIHNwaW5fbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ssIGZsYWdzKTsKLSAgICBsaXN0 X2RlbF9pbml0KCZuZG9tLT5uZG9tX2VsZW0pOwotICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JnBydi0+bG9jaywgZmxhZ3MpOworICAgIGlmICggbmRvbSApCisgICAgeworICAgICAgICB1bnNp Z25lZCBsb25nIGZsYWdzOworCisgICAgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZwcnYtPmxvY2ss IGZsYWdzKTsKKyAgICAgICAgbGlzdF9kZWxfaW5pdCgmbmRvbS0+bmRvbV9lbGVtKTsKKyAgICAg ICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcHJ2LT5sb2NrLCBmbGFncyk7CiAKLSAgICB4ZnJl ZShkYXRhKTsKKyAgICAgICAgeGZyZWUobmRvbSk7CisgICAgfQogfQogCiBzdGF0aWMgaW50IG51 bGxfZG9tX2luaXQoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgZG9tYWluICpk KQpAQCAtMjYzLDggKzI2Nyw4IEBAIHN0YXRpYyBpbnQgbnVsbF9kb21faW5pdChjb25zdCBzdHJ1 Y3Qgc2NoZWR1bGVyICpvcHMsIHN0cnVjdCBkb21haW4gKmQpCiAgICAgICAgIHJldHVybiAwOwog CiAgICAgbmRvbSA9IG51bGxfYWxsb2NfZG9tZGF0YShvcHMsIGQpOwotICAgIGlmICggbmRvbSA9 PSBOVUxMICkKLSAgICAgICAgcmV0dXJuIC1FTk9NRU07CisgICAgaWYgKCBJU19FUlIobmRvbSkg KQorICAgICAgICByZXR1cm4gUFRSX0VSUihuZG9tKTsKIAogICAgIGQtPnNjaGVkX3ByaXYgPSBu ZG9tOwogCmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3NjaGVkX3J0LmMgYi94ZW4vY29tbW9uL3Nj aGVkX3J0LmMKaW5kZXggYTIwMjgwMi4uZTRmZjVjMSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9z Y2hlZF9ydC5jCisrKyBiL3hlbi9jb21tb24vc2NoZWRfcnQuYwpAQCAtODIwLDcgKzgyMCw3IEBA IHJ0X2FsbG9jX2RvbWRhdGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgZG9t YWluICpkb20pCiAKICAgICBzZG9tID0geHphbGxvYyhzdHJ1Y3QgcnRfZG9tKTsKICAgICBpZiAo IHNkb20gPT0gTlVMTCApCi0gICAgICAgIHJldHVybiBOVUxMOworICAgICAgICByZXR1cm4gRVJS X1BUUigtRU5PTUVNKTsKIAogICAgIElOSVRfTElTVF9IRUFEKCZzZG9tLT5zZG9tX2VsZW0pOwog ICAgIHNkb20tPmRvbSA9IGRvbTsKQEAgLTgzNiwxNCArODM2LDE5IEBAIHJ0X2FsbG9jX2RvbWRh dGEoY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqb3BzLCBzdHJ1Y3QgZG9tYWluICpkb20pCiBzdGF0 aWMgdm9pZAogcnRfZnJlZV9kb21kYXRhKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywgdm9p ZCAqZGF0YSkKIHsKLSAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogICAgIHN0cnVjdCBydF9kb20g KnNkb20gPSBkYXRhOwogICAgIHN0cnVjdCBydF9wcml2YXRlICpwcnYgPSBydF9wcml2KG9wcyk7 CiAKLSAgICBzcGluX2xvY2tfaXJxc2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7Ci0gICAgbGlzdF9k ZWxfaW5pdCgmc2RvbS0+c2RvbV9lbGVtKTsKLSAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZw cnYtPmxvY2ssIGZsYWdzKTsKLSAgICB4ZnJlZShkYXRhKTsKKyAgICBpZiAoIHNkb20gKQorICAg IHsKKyAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKKworICAgICAgICBzcGluX2xvY2tfaXJx c2F2ZSgmcHJ2LT5sb2NrLCBmbGFncyk7CisgICAgICAgIGxpc3RfZGVsX2luaXQoJnNkb20tPnNk b21fZWxlbSk7CisgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnBydi0+bG9jaywgZmxh Z3MpOworCisgICAgICAgIHhmcmVlKHNkb20pOworICAgIH0KIH0KIAogc3RhdGljIGludApAQCAt ODU2LDggKzg2MSw4IEBAIHJ0X2RvbV9pbml0KGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKm9wcywg c3RydWN0IGRvbWFpbiAqZG9tKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIHNkb20gPSBydF9h bGxvY19kb21kYXRhKG9wcywgZG9tKTsKLSAgICBpZiAoIHNkb20gPT0gTlVMTCApCi0gICAgICAg IHJldHVybiAtRU5PTUVNOworICAgIGlmICggSVNfRVJSKHNkb20pICkKKyAgICAgICAgcmV0dXJu IFBUUl9FUlIoc2RvbSk7CiAKICAgICBkb20tPnNjaGVkX3ByaXYgPSBzZG9tOwogCmRpZmYgLS1n aXQgYS94ZW4vY29tbW9uL3NjaGVkdWxlLmMgYi94ZW4vY29tbW9uL3NjaGVkdWxlLmMKaW5kZXgg Yjc4ODQyNi4uMDhhMzFiNiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9zY2hlZHVsZS5jCisrKyBi L3hlbi9jb21tb24vc2NoZWR1bGUuYwpAQCAtMzE4LDE0ICszMTgsMTQgQEAgaW50IHNjaGVkX21v dmVfZG9tYWluKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBjcHVwb29sICpjKQogICAgICAgICAg ICAgcmV0dXJuIC1FQlVTWTsKICAgICB9CiAKLSAgICBkb21kYXRhID0gU0NIRURfT1AoYy0+c2No ZWQsIGFsbG9jX2RvbWRhdGEsIGQpOwotICAgIGlmICggZG9tZGF0YSA9PSBOVUxMICkKLSAgICAg ICAgcmV0dXJuIC1FTk9NRU07CisgICAgZG9tZGF0YSA9IHNjaGVkX2FsbG9jX2RvbWRhdGEoYy0+ c2NoZWQsIGQpOworICAgIGlmICggSVNfRVJSKGRvbWRhdGEpICkKKyAgICAgICAgcmV0dXJuIFBU Ul9FUlIoZG9tZGF0YSk7CiAKICAgICB2Y3B1X3ByaXYgPSB4emFsbG9jX2FycmF5KHZvaWQgKiwg ZC0+bWF4X3ZjcHVzKTsKICAgICBpZiAoIHZjcHVfcHJpdiA9PSBOVUxMICkKICAgICB7Ci0gICAg ICAgIFNDSEVEX09QKGMtPnNjaGVkLCBmcmVlX2RvbWRhdGEsIGRvbWRhdGEpOworICAgICAgICBz Y2hlZF9mcmVlX2RvbWRhdGEoYy0+c2NoZWQsIGRvbWRhdGEpOwogICAgICAgICByZXR1cm4gLUVO T01FTTsKICAgICB9CiAKQEAgLTMzNyw3ICszMzcsNyBAQCBpbnQgc2NoZWRfbW92ZV9kb21haW4o c3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGNwdXBvb2wgKmMpCiAgICAgICAgICAgICBmb3JfZWFj aF92Y3B1ICggZCwgdiApCiAgICAgICAgICAgICAgICAgeGZyZWUodmNwdV9wcml2W3YtPnZjcHVf aWRdKTsKICAgICAgICAgICAgIHhmcmVlKHZjcHVfcHJpdik7Ci0gICAgICAgICAgICBTQ0hFRF9P UChjLT5zY2hlZCwgZnJlZV9kb21kYXRhLCBkb21kYXRhKTsKKyAgICAgICAgICAgIHNjaGVkX2Zy ZWVfZG9tZGF0YShjLT5zY2hlZCwgZG9tZGF0YSk7CiAgICAgICAgICAgICByZXR1cm4gLUVOT01F TTsKICAgICAgICAgfQogICAgIH0KQEAgLTM5Myw3ICszOTMsNyBAQCBpbnQgc2NoZWRfbW92ZV9k b21haW4oc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGNwdXBvb2wgKmMpCiAKICAgICBkb21haW5f dW5wYXVzZShkKTsKIAotICAgIFNDSEVEX09QKG9sZF9vcHMsIGZyZWVfZG9tZGF0YSwgb2xkX2Rv bWRhdGEpOworICAgIHNjaGVkX2ZyZWVfZG9tZGF0YShvbGRfb3BzLCBvbGRfZG9tZGF0YSk7CiAK ICAgICB4ZnJlZSh2Y3B1X3ByaXYpOwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vc2No ZWQtaWYuaCBiL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC1pZi5oCmluZGV4IGM0YTQ5MzUuLjU2ZTdk MGMgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC1pZi5oCisrKyBiL3hlbi9pbmNs dWRlL3hlbi9zY2hlZC1pZi5oCkBAIC0xNDYsOCArMTQ2LDExIEBAIHN0cnVjdCBzY2hlZHVsZXIg ewogICAgIHZvaWQgKiAgICAgICAoKmFsbG9jX3BkYXRhKSAgICAoY29uc3Qgc3RydWN0IHNjaGVk dWxlciAqLCBpbnQpOwogICAgIHZvaWQgICAgICAgICAoKmluaXRfcGRhdGEpICAgICAoY29uc3Qg c3RydWN0IHNjaGVkdWxlciAqLCB2b2lkICosIGludCk7CiAgICAgdm9pZCAgICAgICAgICgqZGVp bml0X3BkYXRhKSAgIChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICosIHZvaWQgKiwgaW50KTsKLSAg ICB2b2lkICAgICAgICAgKCpmcmVlX2RvbWRhdGEpICAgKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIg Kiwgdm9pZCAqKTsKKworICAgIC8qIFJldHVybnMgRVJSX1BUUigtZXJyKSBmb3IgZXJyb3IsIE5V TEwgZm9yICdub3RoaW5nIG5lZWRlZCcuICovCiAgICAgdm9pZCAqICAgICAgICgqYWxsb2NfZG9t ZGF0YSkgIChjb25zdCBzdHJ1Y3Qgc2NoZWR1bGVyICosIHN0cnVjdCBkb21haW4gKik7CisgICAg LyogSWRlbXBvdGVudC4gKi8KKyAgICB2b2lkICAgICAgICAgKCpmcmVlX2RvbWRhdGEpICAgKGNv bnN0IHN0cnVjdCBzY2hlZHVsZXIgKiwgdm9pZCAqKTsKIAogICAgIHZvaWQgICAgICAgICAoKnN3 aXRjaF9zY2hlZCkgICAoc3RydWN0IHNjaGVkdWxlciAqLCB1bnNpZ25lZCBpbnQsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICosIHZvaWQgKik7CkBAIC0xODEsNiAr MTg0LDI4IEBAIHN0cnVjdCBzY2hlZHVsZXIgewogICAgIHZvaWQgICAgICAgICAoKnRpY2tfcmVz dW1lKSAgICAgKGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIgKiwgdW5zaWduZWQgaW50KTsKIH07CiAK K3N0YXRpYyBpbmxpbmUgdm9pZCAqc2NoZWRfYWxsb2NfZG9tZGF0YShjb25zdCBzdHJ1Y3Qgc2No ZWR1bGVyICpzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBkb21haW4gKmQpCit7CisgICAgaWYgKCBzLT5hbGxvY19kb21kYXRhICkKKyAgICAgICAgcmV0 dXJuIHMtPmFsbG9jX2RvbWRhdGEocywgZCk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gTlVM TDsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHNjaGVkX2ZyZWVfZG9tZGF0YShjb25zdCBzdHJ1 Y3Qgc2NoZWR1bGVyICpzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 b2lkICpkYXRhKQoreworICAgIGlmICggcy0+ZnJlZV9kb21kYXRhICkKKyAgICAgICAgcy0+ZnJl ZV9kb21kYXRhKHMsIGRhdGEpOworICAgIGVsc2UKKyAgICAgICAgLyoKKyAgICAgICAgICogQ2hl Y2sgdGhhdCBpZiB0aGVyZSBpc24ndCBhIGZyZWVfZG9tZGF0YSBob29rLCB3ZSBoYXZlbid0IGdv dCBhbnkKKyAgICAgICAgICogZGF0YSB3ZSdyZSBleHBlY3RlZCB0byBkZWFsIHdpdGguCisgICAg ICAgICAqLworICAgICAgICBBU1NFUlQoIWRhdGEpOworfQorCiAjZGVmaW5lIFJFR0lTVEVSX1ND SEVEVUxFUih4KSBzdGF0aWMgY29uc3Qgc3RydWN0IHNjaGVkdWxlciAqeCMjX2VudHJ5IFwKICAg X191c2VkX3NlY3Rpb24oIi5kYXRhLnNjaGVkdWxlcnMiKSA9ICZ4OwogCi0tIAoyLjEuNAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMu eGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=