From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH v3 12/12] xen/domain: Allocate d->vcpu[] in domain_create() Date: Wed, 29 Aug 2018 15:40:21 +0100 Message-ID: <1535553621-7671-1-git-send-email-andrew.cooper3@citrix.com> References: <1534154469-6076-13-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: <1534154469-6076-13-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: Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Tim Deegan , Julien Grall , Jan Beulich List-Id: xen-devel@lists.xenproject.org Rm9yIEFSTSwgdGhlIGNhbGwgdG8gYXJjaF9kb21haW5fY3JlYXRlKCkgbmVlZHMgdG8gaGF2ZSBj b21wbGV0ZWQgYmVmb3JlCmRvbWFpbl9tYXhfdmNwdXMoKSB3aWxsIHJldHVybiB0aGUgY29ycmVj dCB1cHBlciBib3VuZC4KCkZvciBlYWNoIGFyY2gncyBkb20wJ3MsIGRyb3AgdGhlIHRlbXBvcmFy eSBtYXhfdmNwdXMgcGFyYW1ldGVyLCBhbmQgYWxsb2NhdGlvbgpvZiBkb20wLT52Y3B1LgoKV2l0 aCBkLT5tYXhfdmNwdXMgbm93IGNvcnJlY3RseSBjb25maWd1cmVkIGJlZm9yZSBldnRjaG5faW5p dCgpLCB0aGUgcG9sbCBtYXNrCmNhbiBiZSBjb25zdHJ1Y3RlZCBzdWl0YWJseSBmb3IgdGhlIGRv bWFpbiwgcmF0aGVyIHRoYW4gZm9yIHRoZSB3b3JzdC1jYXNlCnNldHRpbmcuCgpEdWUgdG8gdGhl IGV2dGNobl9pbml0KCkgZml4ZXMsIGl0IG5vIGxvbmdlciBjYWxscyBkb21haW5fbWF4X3ZjcHVz KCksIGFuZApBUk0ncyB0d28gaW1wbGVtZW50YXRpb25zIG9mIHZnaWNfbWF4X3ZjcHVzKCkgbm8g bG9uZ2VyIG5lZWQgd29yayBhcm91bmQgdGhlCm91dC1vZi1vcmRlciBjYWxsLgoKRnJvbSB0aGlz IHBvaW50IG9uLCBkLT5tYXhfdmNwdXMgYW5kIGQtPnZjcHVzW10gYXJlIHZhbGlkIGZvciBhbnkg ZG9tYWluIHdoaWNoCmNhbiBiZSBsb29rZWQgdXAgYnkgZG9taWQuCgpUaGUgWEVOX0RPTUNUTF9t YXhfdmNwdXMgaHlwZXJjYWxsIGlzIG1vZGlmaWVkIHRvIHJlamVjdCBhbnkgY2FsbCBhdHRlbXB0 IHdpdGgKbWF4ICE9IGQtPm1heF92Y3B1cywgd2hpY2ggZG9lcyBtYXRjaCB0aGUgb2xkZXIgc2Vt YW50aWNzIChub3QgdGhhdCBpdCBpcwpvYnZpb3VzIGZyb20gdGhlIGNvZGUpLiAgVGhlIGxvZ2lj IHRvIGFsbG9jYXRlIGQtPnZjcHVbXSBpcyBkcm9wcGVkLCBidXQgYXQKdGhpcyBwb2ludCB0aGUg aHlwZXJjYWxsIHN0aWxsIG5lZWRzIG1ha2luZyB0byBhbGxvY2F0ZSBlYWNoIHZjcHUuCgpTaWdu ZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0K Q0M6IEphbiBCZXVsaWNoIDxKQmV1bGljaEBzdXNlLmNvbT4KQ0M6IFN0ZWZhbm8gU3RhYmVsbGlu aSA8c3N0YWJlbGxpbmlAa2VybmVsLm9yZz4KQ0M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxs QGFybS5jb20+CkNDOiBHZW9yZ2UgRHVubGFwIDxHZW9yZ2UuRHVubGFwQGV1LmNpdHJpeC5jb20+ CkNDOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+CkNDOiBU aW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4KQ0M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+ Cgp2MjoKICogQWxsb2NhdGUgaW4gZG9tYWluX2NyZWF0ZSgpIHJhdGhlciB0aGFuIGFyY2hfZG9t YWluX2NyZWF0ZSgpLgogKiBSZXRhaW4gZG9tYWluX21heF92Y3B1cygpLgp2MzoKICogT25seSBk cm9wIHRoZSBHSUNfSU5WQUxJRCBjYXNlIGluIHZnaWNfbWF4X3ZjcHVzKCkuCiAqIExlYXZlIGEg bm90ZSBjb25jZXJuaW5nIHRoZSBuZXcgYmVoYXZpb3VyIG9mIFhFTl9ET01DVExfbWF4X3ZjcHVz IGluIHRoZQogICBpbnRlcmltIGJlZm9yZSBpdCBnZXRzIGRlbGV0ZWQuCi0tLQogeGVuL2FyY2gv YXJtL2RvbWFpbl9idWlsZC5jIHwgIDggKy0tLS0tLS0KIHhlbi9hcmNoL2FybS9zZXR1cC5jICAg ICAgICB8ICAyICstCiB4ZW4vYXJjaC9hcm0vdmdpYy5jICAgICAgICAgfCAxMSArLS0tLS0tLS0t LQogeGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy5jICAgIHwgIDkgLS0tLS0tLS0tCiB4ZW4vYXJjaC94 ODYvZG9tMF9idWlsZC5jICAgfCAgOCArLS0tLS0tLQogeGVuL2FyY2gveDg2L3NldHVwLmMgICAg ICAgIHwgIDIgKy0KIHhlbi9jb21tb24vZG9tYWluLmMgICAgICAgICB8IDE4ICsrKysrKysrKysr KysrKysrKwogeGVuL2NvbW1vbi9kb21jdGwuYyAgICAgICAgIHwgNDYgKysrKysrKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vY29tbW9uL2V2ZW50X2NoYW5uZWwu YyAgfCAgMyArLS0KIHhlbi9pbmNsdWRlL3hlbi9kb21haW4uaCAgICB8ICAyICstCiAxMCBmaWxl cyBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCA3NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxk LmMKaW5kZXggNjkwMGE5My4uOWNlYjMzZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2RvbWFp bl9idWlsZC5jCisrKyBiL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYwpAQCAtNzIsMTQgKzcy LDggQEAgdW5zaWduZWQgaW50IF9faW5pdCBkb20wX21heF92Y3B1cyh2b2lkKQogICAgIHJldHVy biBvcHRfZG9tMF9tYXhfdmNwdXM7CiB9CiAKLXN0cnVjdCB2Y3B1ICpfX2luaXQgYWxsb2NfZG9t MF92Y3B1MChzdHJ1Y3QgZG9tYWluICpkb20wLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGludCBtYXhfdmNwdXMpCitzdHJ1Y3QgdmNwdSAqX19pbml0IGFs bG9jX2RvbTBfdmNwdTAoc3RydWN0IGRvbWFpbiAqZG9tMCkKIHsKLSAgICBkb20wLT52Y3B1ID0g eHphbGxvY19hcnJheShzdHJ1Y3QgdmNwdSAqLCBtYXhfdmNwdXMpOwotICAgIGlmICggIWRvbTAt PnZjcHUgKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBkb20wLT5tYXhfdmNwdXMgPSBtYXhf dmNwdXM7Ci0KICAgICByZXR1cm4gYWxsb2NfdmNwdShkb20wLCAwLCAwKTsKIH0KIApkaWZmIC0t Z2l0IGEveGVuL2FyY2gvYXJtL3NldHVwLmMgYi94ZW4vYXJjaC9hcm0vc2V0dXAuYwppbmRleCAw NDhkNWYzLi4wMWFhYWFiIDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vc2V0dXAuYworKysgYi94 ZW4vYXJjaC9hcm0vc2V0dXAuYwpAQCAtODU0LDcgKzg1NCw3IEBAIHZvaWQgX19pbml0IHN0YXJ0 X3hlbih1bnNpZ25lZCBsb25nIGJvb3RfcGh5c19vZmZzZXQsCiAgICAgZG9tMF9jZmcubWF4X3Zj cHVzID0gZG9tMF9tYXhfdmNwdXMoKTsKIAogICAgIGRvbTAgPSBkb21haW5fY3JlYXRlKDAsICZk b20wX2NmZywgdHJ1ZSk7Ci0gICAgaWYgKCBJU19FUlIoZG9tMCkgfHwgKGFsbG9jX2RvbTBfdmNw dTAoZG9tMCwgZG9tMF9jZmcubWF4X3ZjcHVzKSA9PSBOVUxMKSApCisgICAgaWYgKCBJU19FUlIo ZG9tMCkgfHwgKGFsbG9jX2RvbTBfdmNwdTAoZG9tMCkgPT0gTlVMTCkgKQogICAgICAgICAgICAg cGFuaWMoIkVycm9yIGNyZWF0aW5nIGRvbWFpbiAwIik7CiAKICAgICBpZiAoIGNvbnN0cnVjdF9k b20wKGRvbTApICE9IDApCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdmdpYy5jIGIveGVuL2Fy Y2gvYXJtL3ZnaWMuYwppbmRleCA3YTJjNDU1Li41YTRmMDgyIDEwMDY0NAotLS0gYS94ZW4vYXJj aC9hcm0vdmdpYy5jCisrKyBiL3hlbi9hcmNoL2FybS92Z2ljLmMKQEAgLTY2OSwxNiArNjY5LDcg QEAgdm9pZCB2Z2ljX2ZyZWVfdmlycShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgdmly cSkKIAogdW5zaWduZWQgaW50IHZnaWNfbWF4X3ZjcHVzKGNvbnN0IHN0cnVjdCBkb21haW4gKmQp CiB7Ci0gICAgLyoKLSAgICAgKiBTaW5jZSBldnRjaG5faW5pdCB3b3VsZCBjYWxsIGRvbWFpbl9t YXhfdmNwdXMgZm9yIHBvbGxfbWFzawotICAgICAqIGFsbG9jYXRpb24gd2hlbiB0aGUgdmdpY19v cHMgaGF2ZW4ndCBiZWVuIGluaXRpYWxpc2VkIHlldCwKLSAgICAgKiB3ZSByZXR1cm4gTUFYX1ZJ UlRfQ1BVUyBpZiBkLT5hcmNoLnZnaWMuaGFuZGxlciBpcyBudWxsLgotICAgICAqLwotICAgIGlm ICggIWQtPmFyY2gudmdpYy5oYW5kbGVyICkKLSAgICAgICAgcmV0dXJuIE1BWF9WSVJUX0NQVVM7 Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4gbWluX3QodW5zaWduZWQgaW50LCBNQVhfVklSVF9D UFVTLAotICAgICAgICAgICAgICAgICAgICAgZC0+YXJjaC52Z2ljLmhhbmRsZXItPm1heF92Y3B1 cyk7CisgICAgcmV0dXJuIG1pbl90KHVuc2lnbmVkIGludCwgTUFYX1ZJUlRfQ1BVUywgZC0+YXJj aC52Z2ljLmhhbmRsZXItPm1heF92Y3B1cyk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS94ZW4vYXJj aC9hcm0vdmdpYy92Z2ljLmMgYi94ZW4vYXJjaC9hcm0vdmdpYy92Z2ljLmMKaW5kZXggODMyNjMy YS4uMzI3Mjk1MiAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy5jCisrKyBiL3hl bi9hcmNoL2FybS92Z2ljL3ZnaWMuYwpAQCAtOTU1LDE1ICs5NTUsNiBAQCB1bnNpZ25lZCBpbnQg dmdpY19tYXhfdmNwdXMoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCkKIAogICAgIHN3aXRjaCAoIGQt PmFyY2gudmdpYy52ZXJzaW9uICkKICAgICB7Ci0gICAgY2FzZSBHSUNfSU5WQUxJRDoKLSAgICAg ICAgLyoKLSAgICAgICAgICogU2luY2UgZXZ0Y2huX2luaXQgd291bGQgY2FsbCBkb21haW5fbWF4 X3ZjcHVzIGZvciBwb2xsX21hc2sKLSAgICAgICAgICogYWxsb2NhdGlvbiBiZWZvcmUgdGhlIFZH SUMgaGFzIGJlZW4gaW5pdGlhbGlzZWQsIHdlIG5lZWQgdG8KLSAgICAgICAgICogcmV0dXJuIHNv bWUgc2FmZSB2YWx1ZSBpbiB0aGlzIGNhc2UuIEFzIHRoaXMgaXMgZm9yIGFsbG9jYXRpb24KLSAg ICAgICAgICogcHVycG9zZXMsIGdvIHdpdGggdGhlIG1heGltdW0gdmFsdWUuCi0gICAgICAgICAq LwotICAgICAgICB2Z2ljX3ZjcHVfbGltaXQgPSBNQVhfVklSVF9DUFVTOwotICAgICAgICBicmVh azsKICAgICBjYXNlIEdJQ19WMjoKICAgICAgICAgdmdpY192Y3B1X2xpbWl0ID0gVkdJQ19WMl9N QVhfQ1BVUzsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tMF9i dWlsZC5jIGIveGVuL2FyY2gveDg2L2RvbTBfYnVpbGQuYwppbmRleCBiNDJlYWMzLi40MjNmZGVj IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZG9tMF9idWlsZC5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9kb20wX2J1aWxkLmMKQEAgLTE5OSwxNyArMTk5LDExIEBAIHVuc2lnbmVkIGludCBfX2luaXQg ZG9tMF9tYXhfdmNwdXModm9pZCkKICAgICByZXR1cm4gbWF4X3ZjcHVzOwogfQogCi1zdHJ1Y3Qg dmNwdSAqX19pbml0IGFsbG9jX2RvbTBfdmNwdTAoc3RydWN0IGRvbWFpbiAqZG9tMCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbWF4X3ZjcHVzKQor c3RydWN0IHZjcHUgKl9faW5pdCBhbGxvY19kb20wX3ZjcHUwKHN0cnVjdCBkb21haW4gKmRvbTAp CiB7CiAgICAgZG9tMC0+bm9kZV9hZmZpbml0eSA9IGRvbTBfbm9kZXM7CiAgICAgZG9tMC0+YXV0 b19ub2RlX2FmZmluaXR5ID0gIWRvbTBfbnJfcHhtczsKIAotICAgIGRvbTAtPnZjcHUgPSB4emFs bG9jX2FycmF5KHN0cnVjdCB2Y3B1ICosIG1heF92Y3B1cyk7Ci0gICAgaWYgKCAhZG9tMC0+dmNw dSApCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIGRvbTAtPm1heF92Y3B1cyA9IG1heF92Y3B1 czsKLQogICAgIHJldHVybiBkb20wX3NldHVwX3ZjcHUoZG9tMCwgMCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNwdW1hc2tfbGFzdCgmZG9tMF9jcHVzKSAvKiBzbyBpdCB3cmFwcyBhcm91 bmQgdG8gZmlyc3QgcGNwdSAqLyk7CiB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvc2V0dXAu YyBiL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCmluZGV4IDNmZmNiN2EuLmM5ZTY2ZWEgMTAwNjQ0Ci0t LSBhL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCkBAIC0x NzAxLDcgKzE3MDEsNyBAQCB2b2lkIF9faW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25l ZCBsb25nIG1iaV9wKQogCiAgICAgLyogQ3JlYXRlIGluaXRpYWwgZG9tYWluIDAuICovCiAgICAg ZG9tMCA9IGRvbWFpbl9jcmVhdGUoZ2V0X2luaXRpYWxfZG9tYWluX2lkKCksICZkb20wX2NmZywg IXB2X3NoaW0pOwotICAgIGlmICggSVNfRVJSKGRvbTApIHx8IChhbGxvY19kb20wX3ZjcHUwKGRv bTAsIGRvbTBfY2ZnLm1heF92Y3B1cykgPT0gTlVMTCkgKQorICAgIGlmICggSVNfRVJSKGRvbTAp IHx8IChhbGxvY19kb20wX3ZjcHUwKGRvbTApID09IE5VTEwpICkKICAgICAgICAgcGFuaWMoIkVy cm9yIGNyZWF0aW5nIGRvbWFpbiAwIik7CiAKICAgICAvKiBHcmFiIHRoZSBET00wIGNvbW1hbmQg bGluZS4gKi8KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZG9tYWluLmMgYi94ZW4vY29tbW9uL2Rv bWFpbi5jCmluZGV4IDgxNDM1MzIuLmY2NGFkNWYgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vZG9t YWluLmMKKysrIGIveGVuL2NvbW1vbi9kb21haW4uYwpAQCAtMzM4LDYgKzMzOCwxOSBAQCBzdHJ1 Y3QgZG9tYWluICpkb21haW5fY3JlYXRlKGRvbWlkX3QgZG9taWQsCiAKICAgICBpZiAoICFpc19p ZGxlX2RvbWFpbihkKSApCiAgICAgeworICAgICAgICAvKiBDaGVjayBkLT5tYXhfdmNwdXMgYW5k IGFsbG9jYXRlIGQtPnZjcHVbXS4gKi8KKyAgICAgICAgZXJyID0gLUVJTlZBTDsKKyAgICAgICAg aWYgKCBjb25maWctPm1heF92Y3B1cyA8IDEgfHwKKyAgICAgICAgICAgICBjb25maWctPm1heF92 Y3B1cyA+IGRvbWFpbl9tYXhfdmNwdXMoZCkgKQorICAgICAgICAgICAgZ290byBmYWlsOworCisg ICAgICAgIGVyciA9IC1FTk9NRU07CisgICAgICAgIGQtPnZjcHUgPSB4emFsbG9jX2FycmF5KHN0 cnVjdCB2Y3B1ICosIGNvbmZpZy0+bWF4X3ZjcHVzKTsKKyAgICAgICAgaWYgKCAhZC0+dmNwdSAp CisgICAgICAgICAgICBnb3RvIGZhaWw7CisKKyAgICAgICAgZC0+bWF4X3ZjcHVzID0gY29uZmln LT5tYXhfdmNwdXM7CisKICAgICAgICAgd2F0Y2hkb2dfZG9tYWluX2luaXQoZCk7CiAgICAgICAg IGluaXRfc3RhdHVzIHw9IElOSVRfd2F0Y2hkb2c7CiAKQEAgLTQyMiw2ICs0MzUsMTEgQEAgc3Ry dWN0IGRvbWFpbiAqZG9tYWluX2NyZWF0ZShkb21pZF90IGRvbWlkLAogCiAgICAgc2NoZWRfZGVz dHJveV9kb21haW4oZCk7CiAKKyAgICBpZiAoIGQtPm1heF92Y3B1cyApCisgICAgeworICAgICAg ICBkLT5tYXhfdmNwdXMgPSAwOworICAgICAgICBYRlJFRShkLT52Y3B1KTsKKyAgICB9CiAgICAg aWYgKCBpbml0X3N0YXR1cyAmIElOSVRfYXJjaCApCiAgICAgICAgIGFyY2hfZG9tYWluX2Rlc3Ry b3koZCk7CiAgICAgaWYgKCBpbml0X3N0YXR1cyAmIElOSVRfZ250dGFiICkKZGlmZiAtLWdpdCBh L3hlbi9jb21tb24vZG9tY3RsLmMgYi94ZW4vY29tbW9uL2RvbWN0bC5jCmluZGV4IDU4ZTUxYjIu LjhhODAzYjMgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vZG9tY3RsLmMKKysrIGIveGVuL2NvbW1v bi9kb21jdGwuYwpAQCAtNTQ3LDYgKzU0NywxMyBAQCBsb25nIGRvX2RvbWN0bChYRU5fR1VFU1Rf SEFORExFX1BBUkFNKHhlbl9kb21jdGxfdCkgdV9kb21jdGwpCiAgICAgICAgIGJyZWFrOwogICAg IH0KIAorICAgIC8qCisgICAgICogTm90ZTogVGhlIHBhcmFtZXRlciBwYXNzZWQgdG8gWEVOX0RP TUNUTF9tYXhfdmNwdXMgbXVzdCBtYXRjaCB0aGUgdmFsdWUKKyAgICAgKiBwYXNzZWQgdG8gWEVO X0RPTUNUTF9jcmVhdGVkb21haW4uICBUaGlzIGh5cGVyY2FsbCBpcyBpbiB0aGUgcHJvY2VzcyBv ZgorICAgICAqIGJlaW5nIHJlbW92ZWQgKG9uY2UgdGhlIGZhaWx1cmUgcGF0aHMgaW4gZG9tYWlu X2NyZWF0ZSgpIGhhdmUgYmVlbgorICAgICAqIGltcHJvdmVkKSwgYnV0IGlzIHN0aWxsIHJlcXVp cmVkIGluIHRoZSBzaG9ydCB0ZXJtIHRvIGFsbG9jYXRlIHRoZQorICAgICAqIHZjcHVzIHRoZW1z ZWx2ZXMuCisgICAgICovCiAgICAgY2FzZSBYRU5fRE9NQ1RMX21heF92Y3B1czoKICAgICB7CiAg ICAgICAgIHVuc2lnbmVkIGludCBpLCBtYXggPSBvcC0+dS5tYXhfdmNwdXMubWF4LCBjcHU7CkBA IC01NTQsMTYgKzU2MSw5IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0o eGVuX2RvbWN0bF90KSB1X2RvbWN0bCkKIAogICAgICAgICByZXQgPSAtRUlOVkFMOwogICAgICAg ICBpZiAoIChkID09IGN1cnJlbnQtPmRvbWFpbikgfHwgLyogbm8gZG9tYWluX3BhdXNlKCkgKi8K LSAgICAgICAgICAgICAobWF4ID4gZG9tYWluX21heF92Y3B1cyhkKSkgKQorICAgICAgICAgICAg IChtYXggIT0gZC0+bWF4X3ZjcHVzKSApICAgLyogbWF4X3ZjcHVzIHNldCB1cCBpbiBjcmVhdGVk b21haW4gKi8KICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIC8qIFVudGlsIFhlbm9wcm9m IGNhbiBkeW5hbWljYWxseSBncm93IGl0cyB2Y3B1LXMgYXJyYXkuLi4gKi8KLSAgICAgICAgaWYg KCBkLT54ZW5vcHJvZiApCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldCA9IC1FQUdBSU47Ci0g ICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCiAgICAgICAgIC8qIE5lZWRlZCwgZm9yIGV4 YW1wbGUsIHRvIGVuc3VyZSB3cml0YWJsZSBwLnQuIHN0YXRlIGlzIHN5bmNlZC4gKi8KICAgICAg ICAgZG9tYWluX3BhdXNlKGQpOwogCkBAIC01ODEsMzggKzU4MSw4IEBAIGxvbmcgZG9fZG9tY3Rs KFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX2RvbWN0bF90KSB1X2RvbWN0bCkKICAgICAgICAg ICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIC8qIFdlIGNhbm5vdCByZWR1Y2UgbWF4aW11bSBW Q1BVcy4gKi8KLSAgICAgICAgcmV0ID0gLUVJTlZBTDsKLSAgICAgICAgaWYgKCAobWF4IDwgZC0+ bWF4X3ZjcHVzKSAmJiAoZC0+dmNwdVttYXhdICE9IE5VTEwpICkKLSAgICAgICAgICAgIGdvdG8g bWF4dmNwdV9vdXQ7Ci0KLSAgICAgICAgLyoKLSAgICAgICAgICogRm9yIG5vdyBkb24ndCBhbGxv dyBpbmNyZWFzaW5nIHRoZSB2Y3B1IGNvdW50IGZyb20gYSBub24temVybwotICAgICAgICAgKiB2 YWx1ZTogVGhpcyBjb2RlIGFuZCBhbGwgcmVhZGVycyBvZiBkLT52Y3B1IHdvdWxkIG90aGVyd2lz ZSBuZWVkCi0gICAgICAgICAqIHRvIGJlIGNvbnZlcnRlZCB0byB1c2UgUkNVLCBidXQgYXQgcHJl c2VudCB0aGVyZSdzIG5vIHRvb2xzIHNpZGUKLSAgICAgICAgICogY29kZSBwYXRoIHRoYXQgd291 bGQgaXNzdWUgc3VjaCBhIHJlcXVlc3QuCi0gICAgICAgICAqLwotICAgICAgICByZXQgPSAtRUJV U1k7Ci0gICAgICAgIGlmICggKGQtPm1heF92Y3B1cyA+IDApICYmIChtYXggPiBkLT5tYXhfdmNw dXMpICkKLSAgICAgICAgICAgIGdvdG8gbWF4dmNwdV9vdXQ7Ci0KICAgICAgICAgcmV0ID0gLUVO T01FTTsKICAgICAgICAgb25saW5lID0gY3B1cG9vbF9kb21haW5fY3B1bWFzayhkKTsKLSAgICAg ICAgaWYgKCBtYXggPiBkLT5tYXhfdmNwdXMgKQotICAgICAgICB7Ci0gICAgICAgICAgICBzdHJ1 Y3QgdmNwdSAqKnZjcHVzOwotCi0gICAgICAgICAgICBCVUdfT04oZC0+dmNwdSAhPSBOVUxMKTsK LSAgICAgICAgICAgIEJVR19PTihkLT5tYXhfdmNwdXMgIT0gMCk7Ci0KLSAgICAgICAgICAgIGlm ICggKHZjcHVzID0geHphbGxvY19hcnJheShzdHJ1Y3QgdmNwdSAqLCBtYXgpKSA9PSBOVUxMICkK LSAgICAgICAgICAgICAgICBnb3RvIG1heHZjcHVfb3V0OwotCi0gICAgICAgICAgICAvKiBJbnN0 YWxsIHZjcHUgYXJyYXkgL3RoZW4vIHVwZGF0ZSBtYXhfdmNwdXMuICovCi0gICAgICAgICAgICBk LT52Y3B1ID0gdmNwdXM7Ci0gICAgICAgICAgICBzbXBfd21iKCk7Ci0gICAgICAgICAgICBkLT5t YXhfdmNwdXMgPSBtYXg7Ci0gICAgICAgIH0KIAogICAgICAgICBmb3IgKCBpID0gMDsgaSA8IG1h eDsgaSsrICkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9ldmVudF9jaGFubmVs LmMgYi94ZW4vY29tbW9uL2V2ZW50X2NoYW5uZWwuYwppbmRleCA0MWNiYmFlLi4zODFmMzBlIDEw MDY0NAotLS0gYS94ZW4vY29tbW9uL2V2ZW50X2NoYW5uZWwuYworKysgYi94ZW4vY29tbW9uL2V2 ZW50X2NoYW5uZWwuYwpAQCAtMTMwMyw4ICsxMzAzLDcgQEAgaW50IGV2dGNobl9pbml0KHN0cnVj dCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBtYXhfcG9ydCkKICAgICBldnRjaG5fZnJvbV9wb3J0 KGQsIDApLT5zdGF0ZSA9IEVDU19SRVNFUlZFRDsKIAogI2lmIE1BWF9WSVJUX0NQVVMgPiBCSVRT X1BFUl9MT05HCi0gICAgZC0+cG9sbF9tYXNrID0geHphbGxvY19hcnJheSh1bnNpZ25lZCBsb25n LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQklUU19UT19MT05HUyhkb21haW5f bWF4X3ZjcHVzKGQpKSk7CisgICAgZC0+cG9sbF9tYXNrID0geHphbGxvY19hcnJheSh1bnNpZ25l ZCBsb25nLCBCSVRTX1RPX0xPTkdTKGQtPm1heF92Y3B1cykpOwogICAgIGlmICggIWQtPnBvbGxf bWFzayApCiAgICAgewogICAgICAgICBmcmVlX2V2dGNobl9idWNrZXQoZCwgZC0+ZXZ0Y2huKTsK ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9kb21haW4uaCBiL3hlbi9pbmNsdWRlL3hlbi9k b21haW4uaAppbmRleCA2NTEyMDVkLi5jZTMxOTk5IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94 ZW4vZG9tYWluLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL2RvbWFpbi5oCkBAIC0xNyw3ICsxNyw3 IEBAIHN0cnVjdCB2Y3B1ICphbGxvY192Y3B1KAogICAgIHN0cnVjdCBkb21haW4gKmQsIHVuc2ln bmVkIGludCB2Y3B1X2lkLCB1bnNpZ25lZCBpbnQgY3B1X2lkKTsKIAogdW5zaWduZWQgaW50IGRv bTBfbWF4X3ZjcHVzKHZvaWQpOwotc3RydWN0IHZjcHUgKmFsbG9jX2RvbTBfdmNwdTAoc3RydWN0 IGRvbWFpbiAqZG9tMCwgdW5zaWduZWQgaW50IG1heF92Y3B1cyk7CitzdHJ1Y3QgdmNwdSAqYWxs b2NfZG9tMF92Y3B1MChzdHJ1Y3QgZG9tYWluICpkb20wKTsKIAogaW50IHZjcHVfcmVzZXQoc3Ry dWN0IHZjcHUgKik7CiBpbnQgdmNwdV91cChzdHJ1Y3QgdmNwdSAqdik7Ci0tIAoyLjEuNAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMu eGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=