From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH v5 4/5] xen/domain: Allocate d->vcpu[] earlier during domain_create() Date: Wed, 14 Nov 2018 19:50:56 +0000 Message-ID: References: <9992702c-ab36-f0ea-9542-0d74e2a0b3be@citrix.com> <1542224915-7856-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1542224915-7856-1-git-send-email-andrew.cooper3@citrix.com> Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Andrew Cooper , Xen-devel Cc: Stefano Stabellini , Wei Liu List-Id: xen-devel@lists.xenproject.org SGkgQW5kcmV3LAoKT24gMTQvMTEvMjAxOCAxOTo0OCwgQW5kcmV3IENvb3BlciB3cm90ZToKPiBU aGUgQVJNIGNvZGUgaGFzIGEgY2hpY2tlbi1hbmQtZWdnIHByb2JsZW0uICBPbmUgb2YgdGhlIHZH SUN2MyBlbXVsYXRpb25zCj4gd2FudHMgdG8ga25vdyBkLT5tYXhfdmNwdXMgdG8gYmUgYWJsZSB0 byBzaXplIGl0c2VsZiBhcHByb3ByaWF0ZWx5LCBidXQgdGhlCj4gY3VycmVudCBvcmRlciBvZiBp bml0aWFsaXNhdGlvbiByZXF1aXJlcyB0aGUgdkdJQyB0byBiZSBzZXQgdXAgYmVmb3JlIHRoZQo+ IHJlcXVlc3RlZCBudW1iZXIgb2YgdmNwdXMgY2FuIGJlIGNoZWNrZWQuCj4gCj4gTW92ZSB0aGUg cmFuZ2UgY2hlY2tpbmcgb2YgY29uZmlnLT5tYXhfdmNwdXMgaW50byBzYW5pdGlzZV9kb21haW5f Y29uZmlnKCkKPiBwYXRoLCB3aGljaCBhbGxvd3MgZm9yIHRoZSBhbGxvY2F0aW9uIG9mIGQtPnZj cHVbXSBhbmQgZC0+bWF4X3ZjcHVzIHRvIGhhcHBlbgo+IGVhcmxpZXIgZHVyaW5nIGNyZWF0ZSwg YW5kIGluIHBhcnRpY3VsYXIsIGJlZm9yZSB0aGUgY2FsbCB0bwo+IGFyY2hfZG9tYWluX2NyZWF0 ZSgpLgo+IAo+IFRoZSB4ODYgc2lkZSBpcyBmYWlybHkgZWFzeSwgYW5kIGltcGxlbWVudHMgdGhl IGxvZ2ljYWwgZXF1aXZhbGVudCBvZgo+IGRvbWFpbl9tYXhfdmNwdXMoKSBidXQgdXNpbmcgWEVO X0RPTUNUTF9DREZfaHZtX2d1ZXN0IHJhdGhlciB0aGFuCj4gaXNfaHZtX2RvbWFpbigpLgo+IAo+ IEZvciB0aGUgQVJNIHNpZGUsIHJlLXB1cnBvc2UgdmdpY19tYXhfdmNwdXMoKSB0byB0YWtlIGEg ZG9tY3RsIHZHSUMgdmVyc2lvbiwKPiBhbmQgcmV0dXJuIHRoZSBtYXhpbXVtIG51bWJlciBvZiBz dXBwb3J0ZWQgdkNQVXMsIHJldXNpbmcgMCBmb3IgInZlcnNpb24gbm90Cj4gc3VwcG9ydGVkIi4g IFRvIGF2b2lkIGV4cG9ydGluZyB0aGUgdmdpY19vcHMgc3RydWN0dXJlcyAod2hpY2ggYXJlIGlu IHRoZQo+IHByb2Nlc3Mgb2YgYmVpbmcgcmVwbGFjZWQpLCBoYXJkIGNvZGUgdGhlIHVwcGVyIGxp bWl0cy4KPiAKPiBUaGlzIGFsbG93cyBmb3IgdGhlIHJlbW92YWwgb2YgdGhlIGRvbWFpbl9tYXhf dmNwdXMoKSBpbmZyYXN0cnVjdHVyZSwgd2hpY2ggaXMKPiBkb25lIHRvIHByZXZlbnQgaXQgYmVp bmcgcmV1c2VkIGluY29ycmVjdGx5IGluIHRoZSBmdXR1cmUuCj4gCj4gU2lnbmVkLW9mZi1ieTog QW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KPiBSZXZpZXdlZC1ieTog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgoKQWNrZWQtYnk6IEp1bGllbiBHcmFsbCA8 anVsaWVuLmdyYWxsQGFybS5jb20+CgpDaGVlcnMsCgo+IC0tLQo+IENDOiBXZWkgTGl1IDx3ZWku bGl1MkBjaXRyaXguY29tPgo+IENDOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxsaW5pQGtl cm5lbC5vcmc+Cj4gQ0M6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+Cj4gCj4g djM6Cj4gICAqIEZpeCA0MDkyLzQwOTYgdHlwbwo+ICAgKiBGaXggYnVpbGQgaW4gTkVXX1ZHSUMg Y2FzZQo+IHY0Ogo+ICAgKiBNb3ZlIHRoZSBtaW4oKSBpbnRvIEFSTSdzIGNvbW1vbiBhcmNoX3Nh bml0aXNlX2RvbWFpbl9jb25maWcoKQo+ICAgICBpbXBsZW1lbnRhdGlvbi4gIFNpbXBsZnkgdGhl IG1pbigpIGV4cHJlc3Npb24gY29kZSBieSBtYWtpbmcgTUFYX1ZJUlRfQ1BVUwo+ICAgICBiZSBh biB1bnNpZ25lZCBjb25zdGFudC4KPiB2NToKPiAgICogcy9tYXgvbWluCj4gLS0tCj4gICB4ZW4v YXJjaC9hcm0vZG9tYWluLmMgICAgICAgICB8IDE4ICsrKysrKysrKysrKysrKysrKwo+ICAgeGVu L2FyY2gvYXJtL3ZnaWMtdjIuYyAgICAgICAgfCAgMSAtCj4gICB4ZW4vYXJjaC9hcm0vdmdpYy12 My5jICAgICAgICB8ICA1IC0tLS0tCj4gICB4ZW4vYXJjaC9hcm0vdmdpYy5jICAgICAgICAgICB8 IDE2ICsrKysrKysrKysrKysrLS0KPiAgIHhlbi9hcmNoL2FybS92Z2ljL3ZnaWMtaW5pdC5jIHwg IDMgLS0tCj4gICB4ZW4vYXJjaC9hcm0vdmdpYy92Z2ljLmMgICAgICB8IDE2ICsrKysrKy0tLS0t LS0tLS0KPiAgIHhlbi9hcmNoL3g4Ni9kb21haW4uYyAgICAgICAgIHwgMTAgKysrKysrKysrKwo+ ICAgeGVuL2NvbW1vbi9kb21haW4uYyAgICAgICAgICAgfCAzMyArKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0KPiAgIHhlbi9pbmNsdWRlL2FzbS1hcm0vY29uZmlnLmggIHwgIDQgKyst LQo+ICAgeGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaCAgfCAgNiAtLS0tLS0KPiAgIHhlbi9p bmNsdWRlL2FzbS1hcm0vdmdpYy5oICAgIHwgIDUgKystLS0KPiAgIHhlbi9pbmNsdWRlL2FzbS14 ODYvZG9tYWluLmggIHwgIDIgLS0KPiAgIDEyIGZpbGVzIGNoYW5nZWQsIDcyIGluc2VydGlvbnMo KyksIDQ3IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWlu LmMgYi94ZW4vYXJjaC9hcm0vZG9tYWluLmMKPiBpbmRleCA3MWFkMWY5Li4xZDkyNmRjIDEwMDY0 NAo+IC0tLSBhL3hlbi9hcmNoL2FybS9kb21haW4uYwo+ICsrKyBiL3hlbi9hcmNoL2FybS9kb21h aW4uYwo+IEBAIC02MDEsNiArNjAxLDggQEAgdm9pZCB2Y3B1X3N3aXRjaF90b19hYXJjaDY0X21v ZGUoc3RydWN0IHZjcHUgKnYpCj4gICAKPiAgIGludCBhcmNoX3Nhbml0aXNlX2RvbWFpbl9jb25m aWcoc3RydWN0IHhlbl9kb21jdGxfY3JlYXRlZG9tYWluICpjb25maWcpCj4gICB7Cj4gKyAgICB1 bnNpZ25lZCBpbnQgbWF4X3ZjcHVzOwo+ICsKPiAgICAgICBpZiAoIGNvbmZpZy0+ZmxhZ3MgIT0g KFhFTl9ET01DVExfQ0RGX2h2bV9ndWVzdCB8IFhFTl9ET01DVExfQ0RGX2hhcCkgKQo+ICAgICAg IHsKPiAgICAgICAgICAgZHByaW50ayhYRU5MT0dfSU5GTywgIlVuc3VwcG9ydGVkIGNvbmZpZ3Vy YXRpb24gJSN4XG4iLCBjb25maWctPmZsYWdzKTsKPiBAQCAtNjI2LDYgKzYyOCwyMiBAQCBpbnQg YXJjaF9zYW5pdGlzZV9kb21haW5fY29uZmlnKHN0cnVjdCB4ZW5fZG9tY3RsX2NyZWF0ZWRvbWFp biAqY29uZmlnKQo+ICAgICAgICAgICB9Cj4gICAgICAgfQo+ICAgCj4gKyAgICAvKiBtYXhfdmNw dXMgZGVwZW5kcyBvbiB0aGUgR0lDIHZlcnNpb24sIGFuZCBYZW4ncyBjb21waWxlZCBsaW1pdC4g Ki8KPiArICAgIG1heF92Y3B1cyA9IG1pbih2Z2ljX21heF92Y3B1cyhjb25maWctPmFyY2guZ2lj X3ZlcnNpb24pLCBNQVhfVklSVF9DUFVTKTsKPiArCj4gKyAgICBpZiAoIG1heF92Y3B1cyA9PSAw ICkKPiArICAgIHsKPiArICAgICAgICBkcHJpbnRrKFhFTkxPR19JTkZPLCAiVW5zdXBwb3J0ZWQg R0lDIHZlcnNpb25cbiIpOwo+ICsgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ICsgICAgfQo+ICsK PiArICAgIGlmICggY29uZmlnLT5tYXhfdmNwdXMgPiBtYXhfdmNwdXMgKQo+ICsgICAgewo+ICsg ICAgICAgIGRwcmludGsoWEVOTE9HX0lORk8sICJSZXF1ZXN0ZWQgdkNQVXMgKCV1KSBleGNlZWRz IG1heCAoJXUpXG4iLAo+ICsgICAgICAgICAgICAgICAgY29uZmlnLT5tYXhfdmNwdXMsIG1heF92 Y3B1cyk7Cj4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4gKyAgICB9Cj4gKwo+ICAgICAgIHJl dHVybiAwOwo+ICAgfQo+ICAgCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92Z2ljLXYyLmMg Yi94ZW4vYXJjaC9hcm0vdmdpYy12Mi5jCj4gaW5kZXggYmY3Nzg5OS4uNjRiMTQxZiAxMDA2NDQK PiAtLS0gYS94ZW4vYXJjaC9hcm0vdmdpYy12Mi5jCj4gKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMt djIuYwo+IEBAIC03MjUsNyArNzI1LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB2Z2ljX29wcyB2 Z2ljX3YyX29wcyA9IHsKPiAgICAgICAuZG9tYWluX2ZyZWUgPSB2Z2ljX3YyX2RvbWFpbl9mcmVl LAo+ICAgICAgIC5scGlfdG9fcGVuZGluZyA9IHZnaWNfdjJfbHBpX3RvX3BlbmRpbmcsCj4gICAg ICAgLmxwaV9nZXRfcHJpb3JpdHkgPSB2Z2ljX3YyX2xwaV9nZXRfcHJpb3JpdHksCj4gLSAgICAu bWF4X3ZjcHVzID0gOCwKPiAgIH07Cj4gICAKPiAgIGludCB2Z2ljX3YyX2luaXQoc3RydWN0IGRv bWFpbiAqZCwgaW50ICptbWlvX2NvdW50KQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdmdp Yy12My5jIGIveGVuL2FyY2gvYXJtL3ZnaWMtdjMuYwo+IGluZGV4IGMxNGJjZDguLjUxOWNjNzIg MTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gvYXJtL3ZnaWMtdjMuYwo+ICsrKyBiL3hlbi9hcmNoL2Fy bS92Z2ljLXYzLmMKPiBAQCAtMTgyMiwxMSArMTgyMiw2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg dmdpY19vcHMgdjNfb3BzID0gewo+ICAgICAgIC5lbXVsYXRlX3JlZyAgPSB2Z2ljX3YzX2VtdWxh dGVfcmVnLAo+ICAgICAgIC5scGlfdG9fcGVuZGluZyA9IHZnaWNfdjNfbHBpX3RvX3BlbmRpbmcs Cj4gICAgICAgLmxwaV9nZXRfcHJpb3JpdHkgPSB2Z2ljX3YzX2xwaV9nZXRfcHJpb3JpdHksCj4g LSAgICAvKgo+IC0gICAgICogV2UgdXNlIGJvdGggQUZGMSBhbmQgQUZGMCBpbiAodilNUElEUi4g VGh1cywgdGhlIG1heCBudW1iZXIgb2YgQ1BVCj4gLSAgICAgKiB0aGF0IGNhbiBiZSBzdXBwb3J0 ZWQgaXMgdXAgdG8gNDA5Nig9PTI1NioxNikgaW4gdGhlb3J5Lgo+IC0gICAgICovCj4gLSAgICAu bWF4X3ZjcHVzID0gNDA5NiwKPiAgIH07Cj4gICAKPiAgIGludCB2Z2ljX3YzX2luaXQoc3RydWN0 IGRvbWFpbiAqZCwgaW50ICptbWlvX2NvdW50KQo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0v dmdpYy5jIGIveGVuL2FyY2gvYXJtL3ZnaWMuYwo+IGluZGV4IDVhNGYwODIuLmYyNjA4YjAgMTAw NjQ0Cj4gLS0tIGEveGVuL2FyY2gvYXJtL3ZnaWMuYwo+ICsrKyBiL3hlbi9hcmNoL2FybS92Z2lj LmMKPiBAQCAtNjY3LDkgKzY2NywyMSBAQCB2b2lkIHZnaWNfZnJlZV92aXJxKHN0cnVjdCBkb21h aW4gKmQsIHVuc2lnbmVkIGludCB2aXJxKQo+ICAgICAgIGNsZWFyX2JpdCh2aXJxLCBkLT5hcmNo LnZnaWMuYWxsb2NhdGVkX2lycXMpOwo+ICAgfQo+ICAgCj4gLXVuc2lnbmVkIGludCB2Z2ljX21h eF92Y3B1cyhjb25zdCBzdHJ1Y3QgZG9tYWluICpkKQo+ICt1bnNpZ25lZCBpbnQgdmdpY19tYXhf dmNwdXModW5zaWduZWQgaW50IGRvbWN0bF92Z2ljX3ZlcnNpb24pCj4gICB7Cj4gLSAgICByZXR1 cm4gbWluX3QodW5zaWduZWQgaW50LCBNQVhfVklSVF9DUFVTLCBkLT5hcmNoLnZnaWMuaGFuZGxl ci0+bWF4X3ZjcHVzKTsKPiArICAgIHN3aXRjaCAoIGRvbWN0bF92Z2ljX3ZlcnNpb24gKQo+ICsg ICAgewo+ICsgICAgY2FzZSBYRU5fRE9NQ1RMX0NPTkZJR19HSUNfVjI6Cj4gKyAgICAgICAgcmV0 dXJuIDg7Cj4gKwo+ICsjaWZkZWYgQ09ORklHX0dJQ1YzCj4gKyAgICBjYXNlIFhFTl9ET01DVExf Q09ORklHX0dJQ19WMzoKPiArICAgICAgICByZXR1cm4gNDA5NjsKPiArI2VuZGlmCj4gKwo+ICsg ICAgZGVmYXVsdDoKPiArICAgICAgICByZXR1cm4gMDsKPiArICAgIH0KPiAgIH0KPiAgIAo+ICAg LyoKPiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy1pbml0LmMgYi94ZW4vYXJj aC9hcm0vdmdpYy92Z2ljLWluaXQuYwo+IGluZGV4IGJmZDNkMDkuLjYyYWU1NTMgMTAwNjQ0Cj4g LS0tIGEveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy1pbml0LmMKPiArKysgYi94ZW4vYXJjaC9hcm0v dmdpYy92Z2ljLWluaXQuYwo+IEBAIC0xMTIsOSArMTEyLDYgQEAgaW50IGRvbWFpbl92Z2ljX3Jl Z2lzdGVyKHN0cnVjdCBkb21haW4gKmQsIGludCAqbW1pb19jb3VudCkKPiAgICAgICAgICAgQlVH KCk7Cj4gICAgICAgfQo+ICAgCj4gLSAgICBpZiAoIGQtPm1heF92Y3B1cyA+IGRvbWFpbl9tYXhf dmNwdXMoZCkgKQo+IC0gICAgICAgIHJldHVybiAtRTJCSUc7Cj4gLQo+ICAgICAgIGQtPmFyY2gu dmdpYy52Z2ljX2Rpc3RfYmFzZSA9IFZHSUNfQUREUl9VTkRFRjsKPiAgICAgICBkLT5hcmNoLnZn aWMudmdpY19jcHVfYmFzZSA9IFZHSUNfQUREUl9VTkRFRjsKPiAgICAgICBkLT5hcmNoLnZnaWMu dmdpY19yZWRpc3RfYmFzZSA9IFZHSUNfQUREUl9VTkRFRjsKPiBkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gvYXJtL3ZnaWMvdmdpYy5jIGIveGVuL2FyY2gvYXJtL3ZnaWMvdmdpYy5jCj4gaW5kZXggN2Mz Y2ZjNS4uZTI4NDRkYyAxMDA2NDQKPiAtLS0gYS94ZW4vYXJjaC9hcm0vdmdpYy92Z2ljLmMKPiAr KysgYi94ZW4vYXJjaC9hcm0vdmdpYy92Z2ljLmMKPiBAQCAtOTQ5LDIwICs5NDksMTYgQEAgdm9p ZCB2Z2ljX3N5bmNfaGFyZHdhcmVfaXJxKHN0cnVjdCBkb21haW4gKmQsCj4gICAgICAgc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmZGVzYy0+bG9jaywgZmxhZ3MpOwo+ICAgfQo+ICAgCj4gLXVuc2ln bmVkIGludCB2Z2ljX21heF92Y3B1cyhjb25zdCBzdHJ1Y3QgZG9tYWluICpkKQo+ICt1bnNpZ25l ZCBpbnQgdmdpY19tYXhfdmNwdXModW5zaWduZWQgaW50IGRvbWN0bF92Z2ljX3ZlcnNpb24pCj4g ICB7Cj4gLSAgICB1bnNpZ25lZCBpbnQgdmdpY192Y3B1X2xpbWl0Owo+IC0KPiAtICAgIHN3aXRj aCAoIGQtPmFyY2gudmdpYy52ZXJzaW9uICkKPiArICAgIHN3aXRjaCAoIGRvbWN0bF92Z2ljX3Zl cnNpb24gKQo+ICAgICAgIHsKPiAtICAgIGNhc2UgR0lDX1YyOgo+IC0gICAgICAgIHZnaWNfdmNw dV9saW1pdCA9IFZHSUNfVjJfTUFYX0NQVVM7Cj4gLSAgICAgICAgYnJlYWs7Cj4gKyAgICBjYXNl IFhFTl9ET01DVExfQ09ORklHX0dJQ19WMjoKPiArICAgICAgICByZXR1cm4gVkdJQ19WMl9NQVhf Q1BVUzsKPiArCj4gICAgICAgZGVmYXVsdDoKPiAtICAgICAgICBCVUcoKTsKPiArICAgICAgICBy ZXR1cm4gMDsKPiAgICAgICB9Cj4gLQo+IC0gICAgcmV0dXJuIG1pbl90KHVuc2lnbmVkIGludCwg TUFYX1ZJUlRfQ1BVUywgdmdpY192Y3B1X2xpbWl0KTsKPiAgIH0KPiAgIAo+ICAgI2lmZGVmIENP TkZJR19HSUNWMwo+IGRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvZG9tYWluLmMgYi94ZW4vYXJj aC94ODYvZG9tYWluLmMKPiBpbmRleCAyNzJmZDg0Li4yOTViMTBjIDEwMDY0NAo+IC0tLSBhL3hl bi9hcmNoL3g4Ni9kb21haW4uYwo+ICsrKyBiL3hlbi9hcmNoL3g4Ni9kb21haW4uYwo+IEBAIC00 MjEsNiArNDIxLDcgQEAgdm9pZCBhcmNoX3ZjcHVfZGVzdHJveShzdHJ1Y3QgdmNwdSAqdikKPiAg IGludCBhcmNoX3Nhbml0aXNlX2RvbWFpbl9jb25maWcoc3RydWN0IHhlbl9kb21jdGxfY3JlYXRl ZG9tYWluICpjb25maWcpCj4gICB7Cj4gICAgICAgYm9vbCBodm0gPSBjb25maWctPmZsYWdzICYg WEVOX0RPTUNUTF9DREZfaHZtX2d1ZXN0Owo+ICsgICAgdW5zaWduZWQgaW50IG1heF92Y3B1czsK PiAgIAo+ICAgICAgIGlmICggaHZtID8gIWh2bV9lbmFibGVkIDogIUlTX0VOQUJMRUQoQ09ORklH X1BWKSApCj4gICAgICAgewo+IEBAIC00MjgsNiArNDI5LDE1IEBAIGludCBhcmNoX3Nhbml0aXNl X2RvbWFpbl9jb25maWcoc3RydWN0IHhlbl9kb21jdGxfY3JlYXRlZG9tYWluICpjb25maWcpCj4g ICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ICAgICAgIH0KPiAgIAo+ICsgICAgbWF4X3ZjcHVz ID0gaHZtID8gSFZNX01BWF9WQ1BVUyA6IE1BWF9WSVJUX0NQVVM7Cj4gKwo+ICsgICAgaWYgKCBj b25maWctPm1heF92Y3B1cyA+IG1heF92Y3B1cyApCj4gKyAgICB7Cj4gKyAgICAgICAgZHByaW50 ayhYRU5MT0dfSU5GTywgIlJlcXVlc3RlZCB2Q1BVcyAoJXUpIGV4Y2VlZHMgbWF4ICgldSlcbiIs Cj4gKyAgICAgICAgICAgICAgICBjb25maWctPm1heF92Y3B1cywgbWF4X3ZjcHVzKTsKPiArICAg ICAgICByZXR1cm4gLUVJTlZBTDsKPiArICAgIH0KPiArCj4gICAgICAgcmV0dXJuIDA7Cj4gICB9 Cj4gICAKPiBkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9kb21haW4uYyBiL3hlbi9jb21tb24vZG9t YWluLmMKPiBpbmRleCBmNjlmNDA1Li43OGNjNTI0IDEwMDY0NAo+IC0tLSBhL3hlbi9jb21tb24v ZG9tYWluLmMKPiArKysgYi94ZW4vY29tbW9uL2RvbWFpbi5jCj4gQEAgLTMwMCw2ICszMDAsMTIg QEAgc3RhdGljIGludCBzYW5pdGlzZV9kb21haW5fY29uZmlnKHN0cnVjdCB4ZW5fZG9tY3RsX2Ny ZWF0ZWRvbWFpbiAqY29uZmlnKQo+ICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiAgICAgICB9 Cj4gICAKPiArICAgIGlmICggY29uZmlnLT5tYXhfdmNwdXMgPCAxICkKPiArICAgIHsKPiArICAg ICAgICBkcHJpbnRrKFhFTkxPR19JTkZPLCAiTm8gdkNQVVNcbiIpOwo+ICsgICAgICAgIHJldHVy biAtRUlOVkFMOwo+ICsgICAgfQo+ICsKPiAgICAgICByZXR1cm4gYXJjaF9zYW5pdGlzZV9kb21h aW5fY29uZmlnKGNvbmZpZyk7Cj4gICB9Cj4gICAKPiBAQCAtMzQ1LDYgKzM1MSwyMCBAQCBzdHJ1 Y3QgZG9tYWluICpkb21haW5fY3JlYXRlKGRvbWlkX3QgZG9taWQsCj4gICAKPiAgICAgICBUUkFD RV8xRChUUkNfRE9NMF9ET01fQURELCBkLT5kb21haW5faWQpOwo+ICAgCj4gKyAgICAvKgo+ICsg ICAgICogQWxsb2NhdGUgZC0+dmNwdVtdIGFuZCBzZXQgLT5tYXhfdmNwdXMgdXAgZWFybHkuICBW YXJpb3VzIHBlci1kb21haW4KPiArICAgICAqIHJlc291cmNlcyB3YW50IHRvIGJlIHNpemVkIGJh c2VkIG9uIG1heF92Y3B1cy4KPiArICAgICAqLwo+ICsgICAgaWYgKCAhaXNfc3lzdGVtX2RvbWFp bihkKSApCj4gKyAgICB7Cj4gKyAgICAgICAgZXJyID0gLUVOT01FTTsKPiArICAgICAgICBkLT52 Y3B1ID0geHphbGxvY19hcnJheShzdHJ1Y3QgdmNwdSAqLCBjb25maWctPm1heF92Y3B1cyk7Cj4g KyAgICAgICAgaWYgKCAhZC0+dmNwdSApCj4gKyAgICAgICAgICAgIGdvdG8gZmFpbDsKPiArCj4g KyAgICAgICAgZC0+bWF4X3ZjcHVzID0gY29uZmlnLT5tYXhfdmNwdXM7Cj4gKyAgICB9Cj4gKwo+ ICAgICAgIGxvY2tfcHJvZmlsZV9yZWdpc3Rlcl9zdHJ1Y3QoTE9DS1BST0ZfVFlQRV9QRVJET00s IGQsIGRvbWlkLCAiRG9tYWluIik7Cj4gICAKPiAgICAgICBpZiAoIChlcnIgPSB4c21fYWxsb2Nf c2VjdXJpdHlfZG9tYWluKGQpKSAhPSAwICkKPiBAQCAtMzk2LDE5ICs0MTYsNiBAQCBzdHJ1Y3Qg ZG9tYWluICpkb21haW5fY3JlYXRlKGRvbWlkX3QgZG9taWQsCj4gICAKPiAgICAgICBpZiAoICFp c19pZGxlX2RvbWFpbihkKSApCj4gICAgICAgewo+IC0gICAgICAgIC8qIENoZWNrIGQtPm1heF92 Y3B1cyBhbmQgYWxsb2NhdGUgZC0+dmNwdVtdLiAqLwo+IC0gICAgICAgIGVyciA9IC1FSU5WQUw7 Cj4gLSAgICAgICAgaWYgKCBjb25maWctPm1heF92Y3B1cyA8IDEgfHwKPiAtICAgICAgICAgICAg IGNvbmZpZy0+bWF4X3ZjcHVzID4gZG9tYWluX21heF92Y3B1cyhkKSApCj4gLSAgICAgICAgICAg IGdvdG8gZmFpbDsKPiAtCj4gLSAgICAgICAgZXJyID0gLUVOT01FTTsKPiAtICAgICAgICBkLT52 Y3B1ID0geHphbGxvY19hcnJheShzdHJ1Y3QgdmNwdSAqLCBjb25maWctPm1heF92Y3B1cyk7Cj4g LSAgICAgICAgaWYgKCAhZC0+dmNwdSApCj4gLSAgICAgICAgICAgIGdvdG8gZmFpbDsKPiAtCj4g LSAgICAgICAgZC0+bWF4X3ZjcHVzID0gY29uZmlnLT5tYXhfdmNwdXM7Cj4gLQo+ICAgICAgICAg ICB3YXRjaGRvZ19kb21haW5faW5pdChkKTsKPiAgICAgICAgICAgaW5pdF9zdGF0dXMgfD0gSU5J VF93YXRjaGRvZzsKPiAgIAo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL2NvbmZp Zy5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9jb25maWcuaAo+IGluZGV4IGNkYWU4ZjYuLmJjODll ODQgMTAwNjQ0Cj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9jb25maWcuaAo+ICsrKyBiL3hl bi9pbmNsdWRlL2FzbS1hcm0vY29uZmlnLmgKPiBAQCAtNDEsOSArNDEsOSBAQAo+ICAgI2RlZmlu ZSBPUFRfQ09OU09MRV9TVFIgImR0dWFydCIKPiAgIAo+ICAgI2lmZGVmIENPTkZJR19BUk1fNjQK PiAtI2RlZmluZSBNQVhfVklSVF9DUFVTIDEyOAo+ICsjZGVmaW5lIE1BWF9WSVJUX0NQVVMgMTI4 dQo+ICAgI2Vsc2UKPiAtI2RlZmluZSBNQVhfVklSVF9DUFVTIDgKPiArI2RlZmluZSBNQVhfVklS VF9DUFVTIDh1Cj4gICAjZW5kaWYKPiAgIAo+ICAgI2RlZmluZSBJTlZBTElEX1ZDUFVfSUQgTUFY X1ZJUlRfQ1BVUwo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oIGIv eGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaAo+IGluZGV4IGQ2ODIzMDcuLjE3NWRlNDQgMTAw NjQ0Cj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9kb21haW4uaAo+ICsrKyBiL3hlbi9pbmNs dWRlL2FzbS1hcm0vZG9tYWluLmgKPiBAQCAtMjA4LDEyICsyMDgsNiBAQCB2b2lkIHZjcHVfc2hv d19leGVjdXRpb25fc3RhdGUoc3RydWN0IHZjcHUgKik7Cj4gICB2b2lkIHZjcHVfc2hvd19yZWdp c3RlcnMoY29uc3Qgc3RydWN0IHZjcHUgKik7Cj4gICB2b2lkIHZjcHVfc3dpdGNoX3RvX2FhcmNo NjRfbW9kZShzdHJ1Y3QgdmNwdSAqKTsKPiAgIAo+IC0vKiBPbiBBUk0sIHRoZSBudW1iZXIgb2Yg VkNQVXMgaXMgbGltaXRlZCBieSB0aGUgdHlwZSBvZiBHSUMgZW11bGF0ZWQuICovCj4gLXN0YXRp YyBpbmxpbmUgdW5zaWduZWQgaW50IGRvbWFpbl9tYXhfdmNwdXMoY29uc3Qgc3RydWN0IGRvbWFp biAqZCkKPiAtewo+IC0gICAgcmV0dXJuIHZnaWNfbWF4X3ZjcHVzKGQpOwo+IC19Cj4gLQo+ICAg LyoKPiAgICAqIER1ZSB0byB0aGUgcmVzdHJpY3Rpb24gb2YgR0lDdjMsIHRoZSBudW1iZXIgb2Yg dkNQVXMgaW4gQUZGMCBpcwo+ICAgICogbGltaXRlZCB0byAxNiwgdGh1cyBvbmx5IHRoZSBmaXJz dCA0IGJpdHMgb2YgQUZGMCBhcmUgbGVnYWwuIFdlIHdpbGwKPiBkaWZmIC0tZ2l0IGEveGVuL2lu Y2x1ZGUvYXNtLWFybS92Z2ljLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL3ZnaWMuaAo+IGluZGV4 IDU2ZWQ1ZmUuLjQ0N2QyNGUgMTAwNjQ0Cj4gLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS92Z2lj LmgKPiArKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL3ZnaWMuaAo+IEBAIC0yMzQsOCArMjM0LDYg QEAgc3RydWN0IHZnaWNfb3BzIHsKPiAgICAgICAvKiBsb29rdXAgdGhlIHN0cnVjdCBwZW5kaW5n X2lycSBmb3IgYSBnaXZlbiBMUEkgaW50ZXJydXB0ICovCj4gICAgICAgc3RydWN0IHBlbmRpbmdf aXJxICooKmxwaV90b19wZW5kaW5nKShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgdmxw aSk7Cj4gICAgICAgaW50ICgqbHBpX2dldF9wcmlvcml0eSkoc3RydWN0IGRvbWFpbiAqZCwgdWlu dDMyX3QgdmxwaSk7Cj4gLSAgICAvKiBNYXhpbXVtIG51bWJlciBvZiB2Q1BVIHN1cHBvcnRlZCAq Lwo+IC0gICAgY29uc3QgdW5zaWduZWQgaW50IG1heF92Y3B1czsKPiAgIH07Cj4gICAKPiAgIC8q IE51bWJlciBvZiByYW5rcyBvZiBpbnRlcnJ1cHQgcmVnaXN0ZXJzIGZvciBhIGRvbWFpbiAqLwo+ IEBAIC0zNTAsNyArMzQ4LDggQEAgZXh0ZXJuIHZvaWQgdmdpY19jbGVhcl9wZW5kaW5nX2lycXMo c3RydWN0IHZjcHUgKnYpOwo+ICAgCj4gICBleHRlcm4gYm9vbCB2Z2ljX2VtdWxhdGUoc3RydWN0 IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIHVuaW9uIGhzciBoc3IpOwo+ICAgCj4gLXVuc2lnbmVkIGlu dCB2Z2ljX21heF92Y3B1cyhjb25zdCBzdHJ1Y3QgZG9tYWluICpkKTsKPiArLyogTWF4aW11bSB2 Q1BVcyBmb3IgYSBzcGVjaWZpYyB2R0lDIHZlcnNpb24sIG9yIDAgZm9yIHVuc3VwcG9ydGVkLiAq Lwo+ICt1bnNpZ25lZCBpbnQgdmdpY19tYXhfdmNwdXModW5zaWduZWQgaW50IGRvbWN0bF92Z2lj X3ZlcnNpb24pOwo+ICAgCj4gICB2b2lkIHZnaWNfdjJfc2V0dXBfaHcocGFkZHJfdCBkYmFzZSwg cGFkZHJfdCBjYmFzZSwgcGFkZHJfdCBjc2l6ZSwKPiAgICAgICAgICAgICAgICAgICAgICAgICBw YWRkcl90IHZiYXNlLCB1aW50MzJfdCBhbGlhc2VkX29mZnNldCk7Cj4gZGlmZiAtLWdpdCBhL3hl bi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5o Cj4gaW5kZXggNjQzZTY5YS4uMjc3Zjk5ZiAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20t eDg2L2RvbWFpbi5oCj4gKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaAo+IEBAIC02 NjQsOCArNjY0LDYgQEAgdW5zaWduZWQgbG9uZyBwdl9ndWVzdF9jcjRfdG9fcmVhbF9jcjQoY29u c3Qgc3RydWN0IHZjcHUgKnYpOwo+ICAgICAgICAgICAgICAgIFg4Nl9DUjRfT1NYU0FWRSB8IFg4 Nl9DUjRfU01FUCB8ICAgICAgICAgICAgICAgXAo+ICAgICAgICAgICAgICAgIFg4Nl9DUjRfRlNH U0JBU0UgfCBYODZfQ1I0X1NNQVAgfCBYODZfQ1I0X1BDSURFKSkKPiAgIAo+IC0jZGVmaW5lIGRv bWFpbl9tYXhfdmNwdXMoZCkgKGlzX2h2bV9kb21haW4oZCkgPyBIVk1fTUFYX1ZDUFVTIDogTUFY X1ZJUlRfQ1BVUykKPiAtCj4gICBzdGF0aWMgaW5saW5lIHN0cnVjdCB2Y3B1X2d1ZXN0X2NvbnRl eHQgKmFsbG9jX3ZjcHVfZ3Vlc3RfY29udGV4dCh2b2lkKQo+ICAgewo+ICAgICAgIHJldHVybiB2 bWFsbG9jKHNpemVvZihzdHJ1Y3QgdmNwdV9ndWVzdF9jb250ZXh0KSk7Cj4gCgotLSAKSnVsaWVu IEdyYWxsCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw czovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs