From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCH RFC] xen/pvh: use a custom IO bitmap for PVH hardware domains Date: Thu, 9 Apr 2015 11:55:28 +0100 Message-ID: <55265AA0.9010606@citrix.com> References: <1428497829-21845-1-git-send-email-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1YgAFG-0006Wj-FO for xen-devel@lists.xenproject.org; Thu, 09 Apr 2015 11:03:38 +0000 In-Reply-To: <1428497829-21845-1-git-send-email-roger.pau@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Roger Pau Monne , xen-devel@lists.xenproject.org Cc: Kevin Tian , Suravee Suthikulpanit , Eddie Dong , Jan Beulich , Aravind Gopalakrishnan , Jun Nakajima , Boris Ostrovsky List-Id: xen-devel@lists.xenproject.org T24gMDgvMDQvMTUgMTM6NTcsIFJvZ2VyIFBhdSBNb25uZSB3cm90ZToKPiBTaW5jZSBhIFBWSCBo YXJkd2FyZSBkb21haW4gaGFzIGFjY2VzcyB0byB0aGUgcGh5c2ljYWwgaGFyZHdhcmUgY3JlYXRl IGEKPiBjdXN0b20gbW9yZSBwZXJtaXNzaXZlIElPIGJpdG1hcC4gVGhlIHBlcm1pc3Npb25zIHNl dCBvbiB0aGUgYml0bWFwIGFyZQo+IHBvcHVsYXRlZCBiYXNlZCBvbiB0aGUgY29udGVudHMgb2Yg dGhlIGlvcG9ydHMgcmFuZ2VzZXQuCj4KPiBBbHNvIGFkZCB0aGUgSU8gcG9ydHMgb2YgdGhlIHNl cmlhbCBjb25zb2xlIHVzZWQgYnkgWGVuIHRvIHRoZSBsaXN0IG9mIG5vdAo+IGFjY2Vzc2libGUg SU8gcG9ydHMuCgpUaGFua3lvdSBmb3IgbG9va2luZyBpbnRvIHRoaXMuICBJIHRoaW5rIGl0IGlz IHRoZSBjb3JyZWN0IGdlbmVyYWwKZGlyZWN0aW9uLCBidXQgSSBkbyBoYXZlIHNvbWUgcXVlc3Rp b25zL3Rob3VnaHRzIGFib3V0IHRoaXMgYXJlYS4KCkkga25vdyB0aGF0IHRoZSBjdXJyZW50IGlt cGxlbWVudGF0aW9uIGlzIHRoYXQgZG9tMCBpcyB3aGl0ZWxpc3RlZCBhbmQKY2FuIHBsYXkgd2l0 aCBldmVyeXRoaW5nLCBidXQgaXMgdGhpcyBhY3R1YWxseSB0aGUgYmVzdCBBUEk/IApDb25jZXB0 dWFsbHksIGEgYmV0dGVyIGFwcHJvYWNoIHdvdWxkIGJlIGZvciBkb20wIHRvIHN0YXJ0IHdpdGgg bm8KcGVybWlzc2lvbnMsIGFuZCBleHBsaWNpdGx5IHJlcXVlc3QgYWNjZXNzIChBZnRlciBhbGws IFBWIGFuZCBQVkgKZG9tYWlucyBhcmUgZXhwZWN0ZWQgdG8ga25vdyBleGFjdGx5IHdoYXQgdGhl eSBhcmUgZG9pbmcgdW5kZXIgWGVuKS4gClRoaXMgaGFzIGFuIGV4dHJhIGFkdmFudGFnZSBpbiB0 aGF0IGRvbTAgY2FuJ3QgYWNjaWRlbnRhbGx5IGdyYW50CnBlcm1pc3Npb25zIGZvciByZXNvdXJj ZXMgaXQgZG9lbnMndCBrbm93IGFib3V0IHRvIGRvbVVzLgoKSW5zdGVhZCBvZiBhZGRpbmcgdG8g YSBncm93aW5nIGJsYWNrbGlzdCBpbiBjb250cnVjdF9kb20wLCBpdCBtaWdodCBiZSBhCmJldHRl ciB0byBtYWludGFpbiBhIGdsb2JhbCByYW5nZXNldCAob3IgZmV3KSBmb3IgcmVzb3VyY2VzIHdo aWNoIGFyZQp1c2VkIGJ5IFhlbiBhbmQgbm90IHBlcm1pdHRlZCB0byBiZSB1c2VkIGJ5IGFueSBv dGhlciBkb21haW5zLiAgVGhpcwp3b3VsZCBhbGxvdyB0aGUgaW9wb3J0c19kZW55X2FjY2Vzcygp L2V0YyBjYWxscyB0byBtb3ZlIGludG8gdGhlIGNvcnJlY3QKZHJpdmVycywgaW5zdGVhZCBvZiBo YXZpbmcgdG8gZXh0ZXJuIHRoaW5ncyBsaWtlIHRoZSB1YXJ0IHBvcnRzLiAgSXQgaXMKYWxzbyBm YXIgbW9yZSBsaWtlbHkgdG8gYmUga2VwdCB1cCB0byBkYXRlLiAgKE9uIHRoYXQgbm90ZSwgd2Ug Y291bGQKcHJvYmFibHkgZG8gd2l0aCBhbiBhdWRpdCBvZiB0aGUgY3VycmVudGx5IGRlbmllZCBy ZXNvdXJjZXMuICBJIGhpZ2hseQpkb3VidCB0aGVyZSBpcyBhIFBJVCBkcml2ZXIgd2hpY2ggY291 bGQgZnVuY3Rpb24gd2l0aCBhY2Nlc3MgdG8gb25seQpzb21lIG9mIHRoZSBwb3J0cykuCgpJbiBh ZGRpdGlvbiwgc29tZSBzcGVjaWZpYyByZXZpZXcuLi4KCj4KPiBTaWduZWQtb2ZmLWJ5OiBSb2dl ciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KPiBDYzogSmFuIEJldWxpY2ggPGpi ZXVsaWNoQHN1c2UuY29tPgo+IENjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRy aXguY29tPgo+IENjOiBCb3JpcyBPc3Ryb3Zza3kgPGJvcmlzLm9zdHJvdnNreUBvcmFjbGUuY29t Pgo+IENjOiBTdXJhdmVlIFN1dGhpa3VscGFuaXQgPHN1cmF2ZWUuc3V0aGlrdWxwYW5pdEBhbWQu Y29tPgo+IENjOiBBcmF2aW5kIEdvcGFsYWtyaXNobmFuIDxBcmF2aW5kLkdvcGFsYWtyaXNobmFu QGFtZC5jb20+Cj4gQ2M6IEp1biBOYWthamltYSA8anVuLm5ha2FqaW1hQGludGVsLmNvbT4KPiBD YzogRWRkaWUgRG9uZyA8ZWRkaWUuZG9uZ0BpbnRlbC5jb20+Cj4gQ2M6IEtldmluIFRpYW4gPGtl dmluLnRpYW5AaW50ZWwuY29tPgo+IC0tLQo+ICB4ZW4vYXJjaC94ODYvZG9tYWluX2J1aWxkLmMg ICAgICB8IDEwICsrKysrKysrKysKPiAgeGVuL2FyY2gveDg2L2h2bS9odm0uYyAgICAgICAgICAg fCAxMSArKysrKysrKysrKwo+ICB4ZW4vYXJjaC94ODYvaHZtL3N2bS92bWNiLmMgICAgICB8ICAz ICsrLQo+ICB4ZW4vYXJjaC94ODYvaHZtL3ZteC92bWNzLmMgICAgICB8ICA2ICsrKystLQo+ICB4 ZW4vYXJjaC94ODYvaHZtL3ZteC92bXguYyAgICAgICB8ICAxICsKPiAgeGVuL2RyaXZlcnMvY2hh ci9uczE2NTUwLmMgICAgICAgfCAxMCArKysrKysrKysrCj4gIHhlbi9pbmNsdWRlL2FzbS14ODYv aHZtL2RvbWFpbi5oIHwgIDIgKysKPiAgeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaHZtLmggICAg fCAgMSArCj4gIHhlbi9pbmNsdWRlL3hlbi9zZXJpYWwuaCAgICAgICAgIHwgIDQgKysrKwo+ICA5 IGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCj4KPiBkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWFpbl9idWlsZC5jIGIveGVuL2FyY2gveDg2L2RvbWFp bl9idWlsZC5jCj4gaW5kZXggZTVjODQ1Yy4uZDAzNjVmZSAxMDA2NDQKPiAtLS0gYS94ZW4vYXJj aC94ODYvZG9tYWluX2J1aWxkLmMKPiArKysgYi94ZW4vYXJjaC94ODYvZG9tYWluX2J1aWxkLmMK PiBAQCAtMjIsNiArMjIsNyBAQAo+ICAjaW5jbHVkZSA8eGVuL2NvbXBhdC5oPgo+ICAjaW5jbHVk ZSA8eGVuL2xpYmVsZi5oPgo+ICAjaW5jbHVkZSA8eGVuL3Bmbi5oPgo+ICsjaW5jbHVkZSA8eGVu L3NlcmlhbC5oPgo+ICAjaW5jbHVkZSA8YXNtL3JlZ3MuaD4KPiAgI2luY2x1ZGUgPGFzbS9zeXN0 ZW0uaD4KPiAgI2luY2x1ZGUgPGFzbS9pby5oPgo+IEBAIC0xNTQxLDYgKzE1NDIsMTEgQEAgaW50 IF9faW5pdCBjb25zdHJ1Y3RfZG9tMCgKPiAgICAgIHJjIHw9IGlvcG9ydHNfZGVueV9hY2Nlc3Mo ZCwgMHg0MCwgMHg0Myk7Cj4gICAgICAvKiBQSVQgQ2hhbm5lbCAyIC8gUEMgU3BlYWtlciBDb250 cm9sLiAqLwo+ICAgICAgcmMgfD0gaW9wb3J0c19kZW55X2FjY2VzcyhkLCAweDYxLCAweDYxKTsK PiArICAgIC8qIFNlcmlhbCBjb25zb2xlLiAqLwo+ICsgICAgaWYgKCB1YXJ0X2lvcG9ydDEgIT0g MCApCj4gKyAgICAgICAgcmMgfD0gaW9wb3J0c19kZW55X2FjY2VzcyhkLCB1YXJ0X2lvcG9ydDEs IHVhcnRfaW9wb3J0MSArIDcpOwo+ICsgICAgaWYgKCB1YXJ0X2lvcG9ydDIgIT0gMCApCj4gKyAg ICAgICAgcmMgfD0gaW9wb3J0c19kZW55X2FjY2VzcyhkLCB1YXJ0X2lvcG9ydDIsIHVhcnRfaW9w b3J0MiArIDcpOwo+ICAgICAgLyogQUNQSSBQTSBUaW1lci4gKi8KPiAgICAgIGlmICggcG10bXJf aW9wb3J0ICkKPiAgICAgICAgICByYyB8PSBpb3BvcnRzX2RlbnlfYWNjZXNzKGQsIHBtdG1yX2lv cG9ydCwgcG10bXJfaW9wb3J0ICsgMyk7Cj4gQEAgLTE2MTgsNiArMTYyNCwxMCBAQCBpbnQgX19p bml0IGNvbnN0cnVjdF9kb20wKAo+ICAKPiAgICAgICAgICBwdmhfbWFwX2FsbF9pb21lbShkLCBu cl9wYWdlcyk7Cj4gICAgICAgICAgcHZoX3NldHVwX2U4MjAoZCwgbnJfcGFnZXMpOwo+ICsKPiAr ICAgICAgICBmb3IgKCBpID0gMDsgaSA8IDB4MTAwMDA7IGkrKyApCj4gKyAgICAgICAgICAgIGlm ICggaW9wb3J0c19hY2Nlc3NfcGVybWl0dGVkKGQsIGksIGkpICkKPiArICAgICAgICAgICAgICAg IF9fY2xlYXJfYml0KGksIGh2bV9od19pb19iaXRtYXApOwoKKFRoZXJlIGlzIHN1cmVseSBhIG1v cmUgZWZmaWNpZW50IHdheSBvZiBkb2luZyB0aGlzPyAgSWYgdGhlcmUgaXNuJ3QsCnRoZXJlIHBy b2JhYmx5IHNob3VsZCBiZSkKClRoZXJlIGlzIGFsc28gYSBib3VuZGFyeSBpc3N1ZSBiZXR3ZWVu IFZULXggYW5kIFNWTS4KCkZvciBWVC14LCB0aGUgSU8gYml0bWFwIGlzIDIgcGFnZXMuICBGb3Ig U1ZNLCBpdCBpcyAyIHBhZ2VzIGFuZCAzIGJpdHMuIApJIHN1c3BlY3QgdGhlIGRpZmZlcmVuY2Ug aXMgdG8gZG8gd2l0aCB0aGUgaGFuZGxpbmcgb2YgYSA0Ynl0ZSB3cml0ZSB0bwpwb3J0IDB4ZmZm Zi4gIEkgdGhpbmsgeW91IG1pZ2h0IG5lZWQgdG8gY2hlY2sgImkgPCAweDEwMDAzIiBpbnN0ZWFk LgoKPiAgICAgIH0KPiAgCj4gICAgICBpZiAoIGQtPmRvbWFpbl9pZCA9PSBoYXJkd2FyZV9kb21p ZCApCj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMgYi94ZW4vYXJjaC94ODYv aHZtL2h2bS5jCj4gaW5kZXggM2ZmODdjNi4uNmRlODliMiAxMDA2NDQKPiAtLS0gYS94ZW4vYXJj aC94ODYvaHZtL2h2bS5jCj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwo+IEBAIC04Miw2 ICs4MiwxMCBAQCBzdHJ1Y3QgaHZtX2Z1bmN0aW9uX3RhYmxlIGh2bV9mdW5jcyBfX3JlYWRfbW9z dGx5Owo+ICB1bnNpZ25lZCBsb25nIF9fYXR0cmlidXRlX18gKChfX3NlY3Rpb25fXyAoIi5ic3Mu cGFnZV9hbGlnbmVkIikpKQo+ICAgICAgaHZtX2lvX2JpdG1hcFszKlBBR0VfU0laRS9CWVRFU19Q RVJfTE9OR107Cj4gIAo+ICsvKiBJL08gcGVybWlzc2lvbiBiaXRtYXAgZm9yIEhWTSBoYXJkd2Fy ZSBkb21haW4gKi8KPiArdW5zaWduZWQgbG9uZyBfX2F0dHJpYnV0ZV9fICgoX19zZWN0aW9uX18g KCIuYnNzLnBhZ2VfYWxpZ25lZCIpKSkKPiArICAgIGh2bV9od19pb19iaXRtYXBbMypQQUdFX1NJ WkUvQllURVNfUEVSX0xPTkddOwo+ICsKPiAgLyogWGVuIGNvbW1hbmQtbGluZSBvcHRpb24gdG8g ZW5hYmxlIEhBUCAqLwo+ICBzdGF0aWMgYm9vbF90IF9faW5pdGRhdGEgb3B0X2hhcF9lbmFibGVk ID0gMTsKPiAgYm9vbGVhbl9wYXJhbSgiaGFwIiwgb3B0X2hhcF9lbmFibGVkKTsKPiBAQCAtMTYy LDYgKzE2Niw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGh2bV9lbmFibGUodm9pZCkKPiAgICAgICAq IG9mdGVuIHVzZWQgZm9yIEkvTyBkZWxheXMsIGJ1dCB0aGUgdm1leGl0cyBzaW1wbHkgc2xvdyB0 aGluZ3MgZG93bikuCj4gICAgICAgKi8KPiAgICAgIG1lbXNldChodm1faW9fYml0bWFwLCB+MCwg c2l6ZW9mKGh2bV9pb19iaXRtYXApKTsKPiArICAgIG1lbXNldChodm1faHdfaW9fYml0bWFwLCB+ MCwgc2l6ZW9mKGh2bV9od19pb19iaXRtYXApKTsKPiAgICAgIGlmICggaHZtX3BvcnQ4MF9hbGxv d2VkICkKPiAgICAgICAgICBfX2NsZWFyX2JpdCgweDgwLCBodm1faW9fYml0bWFwKTsKPiAgICAg IF9fY2xlYXJfYml0KDB4ZWQsIGh2bV9pb19iaXRtYXApOwo+IEBAIC0xNDg0LDYgKzE0ODksMTIg QEAgaW50IGh2bV9kb21haW5faW5pdGlhbGlzZShzdHJ1Y3QgZG9tYWluICpkKQo+ICAgICAgICAg IGdvdG8gZmFpbDE7Cj4gICAgICBkLT5hcmNoLmh2bV9kb21haW4uaW9faGFuZGxlci0+bnVtX3Ns b3QgPSAwOwo+ICAKPiArICAgIC8qIFNldCB0aGUgZGVmYXVsdCBJTyBCaXRtYXAgKi8KPiArICAg IGlmICggaXNfaGFyZHdhcmVfZG9tYWluKGQpICkKPiArICAgICAgICBkLT5hcmNoLmh2bV9kb21h aW4uaW9fYml0bWFwID0gaHZtX2h3X2lvX2JpdG1hcDsKPiArICAgIGVsc2UKPiArICAgICAgICBk LT5hcmNoLmh2bV9kb21haW4uaW9fYml0bWFwID0gaHZtX2lvX2JpdG1hcDsKCllvdSB3aWxsIG5l ZWQgdG8gYXVnbWVudCBsYXRlX2h3ZG9tX2luaXQoKSBhcyB3ZWxsLCBvciB5b3Ugd2lsbCBicmVh awphbnlvbmUgbWFraW5nIHVzIG9mICJoYXJkd2FyZV9kb209JE4iCgp+QW5kcmV3Cgo+ICsKPiAg ICAgIGlmICggaXNfcHZoX2RvbWFpbihkKSApCj4gICAgICB7Cj4gICAgICAgICAgcmVnaXN0ZXJf cG9ydGlvX2hhbmRsZXIoZCwgMCwgMHgxMDAwMywgaGFuZGxlX3B2aF9pbyk7Cj4gZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3ZtY2IuYyBiL3hlbi9hcmNoL3g4Ni9odm0vc3ZtL3Zt Y2IuYwo+IGluZGV4IDIxMjkyYmIuLmViMjE3NmIgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2 L2h2bS9zdm0vdm1jYi5jCj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS9zdm0vdm1jYi5jCj4gQEAg LTcyLDYgKzcyLDcgQEAgc3RhdGljIGludCBjb25zdHJ1Y3Rfdm1jYihzdHJ1Y3QgdmNwdSAqdikK PiAgewo+ICAgICAgc3RydWN0IGFyY2hfc3ZtX3N0cnVjdCAqYXJjaF9zdm0gPSAmdi0+YXJjaC5o dm1fc3ZtOwo+ICAgICAgc3RydWN0IHZtY2Jfc3RydWN0ICp2bWNiID0gYXJjaF9zdm0tPnZtY2I7 Cj4gKyAgICBzdHJ1Y3QgZG9tYWluICpkID0gdi0+ZG9tYWluOwo+ICAKPiAgICAgIHZtY2ItPl9n ZW5lcmFsMV9pbnRlcmNlcHRzID0gCj4gICAgICAgICAgR0VORVJBTDFfSU5URVJDRVBUX0lOVFIg ICAgICAgIHwgR0VORVJBTDFfSU5URVJDRVBUX05NSSAgICAgICAgIHwKPiBAQCAtMTE4LDcgKzEx OSw3IEBAIHN0YXRpYyBpbnQgY29uc3RydWN0X3ZtY2Ioc3RydWN0IHZjcHUgKnYpCj4gICAgICAg ICAgc3ZtX2Rpc2FibGVfaW50ZXJjZXB0X2Zvcl9tc3IodiwgTVNSX0FNRDY0X0xXUF9DQkFERFIp Owo+ICAKPiAgICAgIHZtY2ItPl9tc3JwbV9iYXNlX3BhID0gKHU2NCl2aXJ0X3RvX21hZGRyKGFy Y2hfc3ZtLT5tc3JwbSk7Cj4gLSAgICB2bWNiLT5faW9wbV9iYXNlX3BhICA9ICh1NjQpdmlydF90 b19tYWRkcihodm1faW9fYml0bWFwKTsKPiArICAgIHZtY2ItPl9pb3BtX2Jhc2VfcGEgID0gKHU2 NCl2aXJ0X3RvX21hZGRyKGQtPmFyY2guaHZtX2RvbWFpbi5pb19iaXRtYXApOwo+ICAKPiAgICAg IC8qIFZpcnR1YWxpc2UgRUZMQUdTLklGIGFuZCBMQVBJQyBUUFIgKENSOCkuICovCj4gICAgICB2 bWNiLT5fdmludHIuZmllbGRzLmludHJfbWFza2luZyA9IDE7Cj4gZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9odm0vdm14L3ZtY3MuYyBiL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZtY3MuYwo+IGlu ZGV4IGQ2MTQ2MzguLjMwODA5NzkgMTAwNjQ0Cj4gLS0tIGEveGVuL2FyY2gveDg2L2h2bS92bXgv dm1jcy5jCj4gKysrIGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm1jcy5jCj4gQEAgLTk4Niw4ICs5 ODYsMTAgQEAgc3RhdGljIGludCBjb25zdHJ1Y3Rfdm1jcyhzdHJ1Y3QgdmNwdSAqdikKPiAgICAg IH0KPiAgCj4gICAgICAvKiBJL08gYWNjZXNzIGJpdG1hcC4gKi8KPiAtICAgIF9fdm13cml0ZShJ T19CSVRNQVBfQSwgdmlydF90b19tYWRkcigoY2hhciAqKWh2bV9pb19iaXRtYXAgKyAwKSk7Cj4g LSAgICBfX3Ztd3JpdGUoSU9fQklUTUFQX0IsIHZpcnRfdG9fbWFkZHIoKGNoYXIgKilodm1faW9f Yml0bWFwICsgUEFHRV9TSVpFKSk7Cj4gKyAgICBfX3Ztd3JpdGUoSU9fQklUTUFQX0EsCj4gKyAg ICAgICAgICAgICAgdmlydF90b19tYWRkcigoY2hhciAqKWQtPmFyY2guaHZtX2RvbWFpbi5pb19i aXRtYXAgKyAwKSk7Cj4gKyAgICBfX3Ztd3JpdGUoSU9fQklUTUFQX0IsCj4gKyAgICAgICAgICAg ICAgdmlydF90b19tYWRkcigoY2hhciAqKWQtPmFyY2guaHZtX2RvbWFpbi5pb19iaXRtYXAgKyBQ QUdFX1NJWkUpKTsKPiAgCj4gICAgICBpZiAoIGNwdV9oYXNfdm14X3ZpcnR1YWxfaW50cl9kZWxp dmVyeSApCj4gICAgICB7Cj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5j IGIveGVuL2FyY2gveDg2L2h2bS92bXgvdm14LmMKPiBpbmRleCAyYWMxNDkyLi5kNWNjZGNlIDEw MDY0NAo+IC0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vdm14L3ZteC5jCj4gKysrIGIveGVuL2FyY2gv eDg2L2h2bS92bXgvdm14LmMKPiBAQCAtMzExOCw2ICszMTE4LDcgQEAgdm9pZCB2bXhfdm1leGl0 X2hhbmRsZXIoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MpCj4gICAgICAgICAgICAgIHVpbnQx Nl90IHBvcnQgPSAoZXhpdF9xdWFsaWZpY2F0aW9uID4+IDE2KSAmIDB4RkZGRjsKPiAgICAgICAg ICAgICAgaW50IGJ5dGVzID0gKGV4aXRfcXVhbGlmaWNhdGlvbiAmIDB4MDcpICsgMTsKPiAgICAg ICAgICAgICAgaW50IGRpciA9IChleGl0X3F1YWxpZmljYXRpb24gJiAweDA4KSA/IElPUkVRX1JF QUQgOiBJT1JFUV9XUklURTsKPiArCj4gICAgICAgICAgICAgIGlmICggaGFuZGxlX3Bpbyhwb3J0 LCBieXRlcywgZGlyKSApCj4gICAgICAgICAgICAgICAgICB1cGRhdGVfZ3Vlc3RfZWlwKCk7IC8q IFNhZmU6IElOLCBPVVQgKi8KPiAgICAgICAgICB9Cj4gZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJz L2NoYXIvbnMxNjU1MC5jIGIveGVuL2RyaXZlcnMvY2hhci9uczE2NTUwLmMKPiBpbmRleCBkNDQz ODgwLi5iMzgyZTcyIDEwMDY0NAo+IC0tLSBhL3hlbi9kcml2ZXJzL2NoYXIvbnMxNjU1MC5jCj4g KysrIGIveGVuL2RyaXZlcnMvY2hhci9uczE2NTUwLmMKPiBAQCAtNDQsNiArNDQsOSBAQCBzdGF0 aWMgY2hhciBfX2luaXRkYXRhIG9wdF9jb20yWzMwXSA9ICIiOwo+ICBzdHJpbmdfcGFyYW0oImNv bTEiLCBvcHRfY29tMSk7Cj4gIHN0cmluZ19wYXJhbSgiY29tMiIsIG9wdF9jb20yKTsKPiAgCj4g K3Vuc2lnbmVkIGludCB1YXJ0X2lvcG9ydDEgPSAwOwo+ICt1bnNpZ25lZCBpbnQgdWFydF9pb3Bv cnQyID0gMDsKPiArCj4gIHN0YXRpYyBzdHJ1Y3QgbnMxNjU1MCB7Cj4gICAgICBpbnQgYmF1ZCwg Y2xvY2tfaHosIGRhdGFfYml0cywgcGFyaXR5LCBzdG9wX2JpdHMsIGZpZm9fc2l6ZSwgaXJxOwo+ ICAgICAgdTY0IGlvX2Jhc2U7ICAgLyogSS9PIHBvcnQgb3IgbWVtb3J5LW1hcHBlZCBJL08gYWRk cmVzcy4gKi8KPiBAQCAtMTEyMSw2ICsxMTI0LDEzIEBAIHZvaWQgX19pbml0IG5zMTY1NTBfaW5p dChpbnQgaW5kZXgsIHN0cnVjdCBuczE2NTUwX2RlZmF1bHRzICpkZWZhdWx0cykKPiAgICAgIHVh cnQtPnJlZ19zaGlmdCA9IDA7Cj4gIAo+ICAgICAgbnMxNjU1MF9wYXJzZV9wb3J0X2NvbmZpZyh1 YXJ0LCAoaW5kZXggPT0gMCkgPyBvcHRfY29tMSA6IG9wdF9jb20yKTsKPiArICAgIGlmICggdWFy dC0+YmF1ZCAhPSAwICYmIHVhcnQtPmlvX2Jhc2UgPCAweDEwMDAwICkKPiArICAgIHsKPiArICAg ICAgICBpZiAoIGluZGV4ID09IDAgKQo+ICsgICAgICAgICAgICB1YXJ0X2lvcG9ydDEgPSB1YXJ0 LT5pb19iYXNlOwo+ICsgICAgICAgIGVsc2UKPiArICAgICAgICAgICAgdWFydF9pb3BvcnQyID0g dWFydC0+aW9fYmFzZTsKPiArICAgIH0KPiAgfQo+ICAKPiAgI2lmZGVmIEhBU19ERVZJQ0VfVFJF RQo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9kb21haW4uaCBiL3hlbi9p bmNsdWRlL2FzbS14ODYvaHZtL2RvbWFpbi5oCj4gaW5kZXggMDcwMmJmNS4uZDAwMjk1NCAxMDA2 NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9kb21haW4uaAo+ICsrKyBiL3hlbi9p bmNsdWRlL2FzbS14ODYvaHZtL2RvbWFpbi5oCj4gQEAgLTE0Myw2ICsxNDMsOCBAQCBzdHJ1Y3Qg aHZtX2RvbWFpbiB7Cj4gICAgICAgKi8KPiAgICAgIHVpbnQ2NF90IHN5bmNfdHNjOwo+ICAKPiAr ICAgIHVuc2lnbmVkIGxvbmcgICAgICAgICAqaW9fYml0bWFwOwo+ICsKPiAgICAgIHVuaW9uIHsK PiAgICAgICAgICBzdHJ1Y3Qgdm14X2RvbWFpbiB2bXg7Cj4gICAgICAgICAgc3RydWN0IHN2bV9k b21haW4gc3ZtOwo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9odm0uaCBi L3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oCj4gaW5kZXggMGRjOTA5Yi4uNTVlNDMyZSAx MDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9odm0uaAo+ICsrKyBiL3hlbi9p bmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oCj4gQEAgLTIxMyw2ICsyMTMsNyBAQCBleHRlcm4gc3Ry dWN0IGh2bV9mdW5jdGlvbl90YWJsZSBodm1fZnVuY3M7Cj4gIGV4dGVybiBib29sX3QgaHZtX2Vu YWJsZWQ7Cj4gIGV4dGVybiBib29sX3QgY3B1X2hhc19sbXNsOwo+ICBleHRlcm4gczggaHZtX3Bv cnQ4MF9hbGxvd2VkOwo+ICtleHRlcm4gdW5zaWduZWQgbG9uZyBodm1faHdfaW9fYml0bWFwW107 Cj4gIAo+ICBleHRlcm4gY29uc3Qgc3RydWN0IGh2bV9mdW5jdGlvbl90YWJsZSAqc3RhcnRfc3Zt KHZvaWQpOwo+ICBleHRlcm4gY29uc3Qgc3RydWN0IGh2bV9mdW5jdGlvbl90YWJsZSAqc3RhcnRf dm14KHZvaWQpOwo+IGRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vc2VyaWFsLmggYi94ZW4v aW5jbHVkZS94ZW4vc2VyaWFsLmgKPiBpbmRleCA3MWU2YWRlLi5iYzVmYjA2IDEwMDY0NAo+IC0t LSBhL3hlbi9pbmNsdWRlL3hlbi9zZXJpYWwuaAo+ICsrKyBiL3hlbi9pbmNsdWRlL3hlbi9zZXJp YWwuaAo+IEBAIC0yNCw2ICsyNCwxMCBAQCB2b2lkIHNlcmlhbF9zZXRfcnhfaGFuZGxlcihpbnQg aGFuZGxlLCBzZXJpYWxfcnhfZm4gZm4pOwo+ICAvKiBOdW1iZXIgb2YgY2hhcmFjdGVycyB3ZSBi dWZmZXIgZm9yIGFuIGludGVycnVwdC1kcml2ZW4gdHJhbnNtaXR0ZXIuICovCj4gIGV4dGVybiB1 bnNpZ25lZCBpbnQgc2VyaWFsX3R4YnVmc3o7Cj4gIAo+ICsvKiBVQVJUIElPIHBvcnQgKi8KPiAr ZXh0ZXJuIHVuc2lnbmVkIGludCB1YXJ0X2lvcG9ydDE7Cj4gK2V4dGVybiB1bnNpZ25lZCBpbnQg dWFydF9pb3BvcnQyOwo+ICsKPiAgc3RydWN0IHVhcnRfZHJpdmVyOwo+ICAKPiAgZW51bSBzZXJp YWxfcG9ydF9zdGF0ZSB7CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpo dHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK