From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: Replace obj->pin_global with obj->frontbuffer Date: Fri, 23 Aug 2019 19:48:49 +0300 Message-ID: <20190823164849.GV5942@intel.com> References: <20190823162041.9482-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id AA54088E57 for ; Fri, 23 Aug 2019 16:48:52 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190823162041.9482-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBBdWcgMjMsIDIwMTkgYXQgMDU6MjA6NDFQTSArMDEwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IG9iai0+cGluX2dsb2JhbCB3YXMgb3JpZ2luYWwgdXNlZCBhcyBhIG1lYW5zIHRvIGtl ZXAgdGhlIHNocmlua2VyIG9mZgo+IHRoZSBhY3RpdmUgc2Nhbm91dCwgYnV0IHdlIHVzZSB0aGUg dm1hLT5waW5fY291bnQgaXRzZWxmIGZvciB0aGF0IGFuZAo+IHRoZSBvYmotPmZyb250YnVmZmVy IHRvIGRlbGF5IHNocmlua2luZyBhY3RpdmUgZnJhbWVidWZmZXJzLiBUaGUgb3RoZXIKPiByb2xl IHRoYXQgb2JqLT5waW5fZ2xvYmFsIGdhaW5lZCB3YXMgZm9yIHNwb3R0aW5nIGRpc3BsYXkgb2Jq ZWN0cyBpbnNpZGUKPiBHRU0gYW5kIHdvcmtpbmcgaGFyZGVyIHRvIGtlZXAgdGhvc2UgY29oZXJl bnQ7IGZvciB3aGljaCB3ZSBjYW4gYWdhaW4KPiBzaW1wbHkgaW5zcGVjdCBvYmotPmZyb250YnVm ZmVyIGRpcmVjdGx5Lgo+IAo+IENvbWluZyB1cCBuZXh0LCB3ZSB3aWxsIHdhbnQgdG8gbWFuaXB1 bGF0ZSB0aGUgcGluX2dsb2JhbCBjb3VudGVyCj4gb3V0c2lkZSBvZiB0aGUgcHJpbmNpcGxlIGxv Y2tzLCBzbyB3b3VsZCBuZWVkIHRvIG1ha2UgcGluX2dsb2JhbCBhdG9taWMuCj4gSG93ZXZlciwg c2luY2Ugb2JqLT5mcm9udGJ1ZmZlciBpcyBhbHJlYWR5IG1hbmFnZWQgYXRvbWljYWxseSwgaXQg bWFrZXMKPiBzZW5zZSB0byB1c2UgdGhhdCB0aGUgcHJpbWFyeSBrZXkgZm9yIGRpc3BsYXkgb2Jq ZWN0cyBpbnN0ZWFkIG9mIGhhdmluZwo+IHBpbl9nbG9iYWwuCgpUaGUgZGlmZmVyZW5jZSBiZWlu ZyB0aGF0IHBpbl9nbG9iYWwgd2FzIG9ubHkgaW5jcmVtZW50ZWQgd2hpbGUgYWN0aXZlCnNjYW5v dXQgd2FzIGhhcHBlbmluZywgYnV0IG9iai0+ZnJvbnRidWZmZXIgc2ltcGx5IGluZGljYXRlcyB0 aGF0IHRoZQpvYmogaXMgYXR0YWNoZWQgdG8gYXQgbGVhc3Qgb25lIGZyYW1lYnVmZmVyIHJlZ2Fy ZGxlc3Mgb2Ygd2hldGhlciBpdCdzCmV2ZXIgc2Nhbm5lZCBvdXQgb3Igbm90LgoKPiAKPiBTaWdu ZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiBDYzog TWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIC4u Li9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9mcm9udGJ1ZmZlci5jICB8IDEzICsrKysrLS0K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2RvbWFpbi5jICAgIHwgMzQgKysr KysrLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2Jq ZWN0LmggICAgfCAgMyArLQo+ICAuLi4vZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3Rf dHlwZXMuaCAgfCAgMiAtLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc2hy aW5rZXIuYyAgfCAxNSArKystLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYyAgICAgICAgICAgfCAxMiArKy0tLS0tCj4gIDYgZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0 aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZnJvbnRidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZnJvbnRidWZmZXIuYwo+IGluZGV4IDcxOTM3OTc3NGZhNS4uNDMwNDdi Njc2YjdiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZnJvbnRidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZnJvbnRidWZmZXIuYwo+IEBAIC0yMjAsMTEgKzIyMCwxOCBAQCBzdGF0aWMgdm9pZCBmcm9udGJ1 ZmZlcl9yZWxlYXNlKHN0cnVjdCBrcmVmICpyZWYpCj4gIHsKPiAgCXN0cnVjdCBpbnRlbF9mcm9u dGJ1ZmZlciAqZnJvbnQgPQo+ICAJCWNvbnRhaW5lcl9vZihyZWYsIHR5cGVvZigqZnJvbnQpLCBy ZWYpOwo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IGZyb250LT5vYmo7Cj4g KwlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKPiAgCj4gLQlmcm9udC0+b2JqLT5mcm9udGJ1ZmZlciA9 IE5VTEw7Cj4gLQlzcGluX3VubG9jaygmdG9faTkxNShmcm9udC0+b2JqLT5iYXNlLmRldiktPmZi X3RyYWNraW5nLmxvY2spOwo+ICsJc3Bpbl9sb2NrKCZvYmotPnZtYS5sb2NrKTsKPiArCWZvcl9l YWNoX2dndHRfdm1hKHZtYSwgb2JqKQo+ICsJCXZtYS0+ZGlzcGxheV9hbGlnbm1lbnQgPSBJOTE1 X0dUVF9QQUdFX1NJWkU7Cj4gKwlzcGluX3VubG9jaygmb2JqLT52bWEubG9jayk7Cj4gIAo+IC0J aTkxNV9nZW1fb2JqZWN0X3B1dChmcm9udC0+b2JqKTsKPiArCW9iai0+ZnJvbnRidWZmZXIgPSBO VUxMOwo+ICsJc3Bpbl91bmxvY2soJnRvX2k5MTUob2JqLT5iYXNlLmRldiktPmZiX3RyYWNraW5n LmxvY2spOwo+ICsKPiArCWk5MTVfZ2VtX29iamVjdF9wdXQob2JqKTsKPiAgCWtmcmVlKGZyb250 KTsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX2RvbWFpbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2RvbWFpbi5j Cj4gaW5kZXggOWM1OGU4ZmFjMWQ5Li4wMzQxYjNkYTkzMGEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2RvbWFpbi5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2RvbWFpbi5jCj4gQEAgLTI3LDcgKzI3LDcgQEAgc3RhdGlj IHZvaWQgX19pOTE1X2dlbV9vYmplY3RfZmx1c2hfZm9yX2Rpc3BsYXkoc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaikKPiAgCj4gIHZvaWQgaTkxNV9nZW1fb2JqZWN0X2ZsdXNoX2lmX2Rp c3BsYXkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiAgewo+IC0JaWYgKCFSRUFE X09OQ0Uob2JqLT5waW5fZ2xvYmFsKSkKPiArCWlmICghUkVBRF9PTkNFKG9iai0+ZnJvbnRidWZm ZXIpKQo+ICAJCXJldHVybjsKClNvIHdlIG1heWJlIGdldCBhIGZldyBtb3JlIGZsdXNoZXMgbm93 PwoKPiAgCj4gIAlpOTE1X2dlbV9vYmplY3RfbG9jayhvYmopOwo+IEBAIC00MjIsMTIgKzQyMiw4 IEBAIGk5MTVfZ2VtX29iamVjdF9waW5fdG9fZGlzcGxheV9wbGFuZShzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqLAo+ICAKPiAgCWFzc2VydF9vYmplY3RfaGVsZChvYmopOwo+ICAKPiAt CS8qIE1hcmsgdGhlIGdsb2JhbCBwaW4gZWFybHkgc28gdGhhdCB3ZSBhY2NvdW50IGZvciB0aGUK PiAtCSAqIGRpc3BsYXkgY29oZXJlbmN5IHdoaWxzdCBzZXR0aW5nIHVwIHRoZSBjYWNoZSBkb21h aW5zLgo+IC0JICovCj4gLQlvYmotPnBpbl9nbG9iYWwrKzsKPiAtCj4gLQkvKiBUaGUgZGlzcGxh eSBlbmdpbmUgaXMgbm90IGNvaGVyZW50IHdpdGggdGhlIExMQyBjYWNoZSBvbiBnZW42LiAgQXMK PiArCS8qCj4gKwkgKiBUaGUgZGlzcGxheSBlbmdpbmUgaXMgbm90IGNvaGVyZW50IHdpdGggdGhl IExMQyBjYWNoZSBvbiBnZW42LiAgQXMKPiAgCSAqIGEgcmVzdWx0LCB3ZSBtYWtlIHN1cmUgdGhh dCB0aGUgcGlubmluZyB0aGF0IGlzIGFib3V0IHRvIG9jY3VyIGlzCj4gIAkgKiBkb25lIHdpdGgg dW5jYWNoZWQgUFRFcy4gVGhpcyBpcyBsb3dlc3QgY29tbW9uIGRlbm9taW5hdG9yIGZvciBhbGwK PiAgCSAqIGNoaXBzZXRzLgo+IEBAIC00MzksMTIgKzQzNSwxMSBAQCBpOTE1X2dlbV9vYmplY3Rf cGluX3RvX2Rpc3BsYXlfcGxhbmUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiAg CXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfY2FjaGVfbGV2ZWwob2JqLAo+ICAJCQkJCSAgICAg IEhBU19XVCh0b19pOTE1KG9iai0+YmFzZS5kZXYpKSA/Cj4gIAkJCQkJICAgICAgSTkxNV9DQUNI RV9XVCA6IEk5MTVfQ0FDSEVfTk9ORSk7Cj4gLQlpZiAocmV0KSB7Cj4gLQkJdm1hID0gRVJSX1BU UihyZXQpOwo+IC0JCWdvdG8gZXJyX3VucGluX2dsb2JhbDsKPiAtCX0KPiArCWlmIChyZXQpCj4g KwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiAgCj4gLQkvKiBBcyB0aGUgdXNlciBtYXkgbWFwIHRo ZSBidWZmZXIgb25jZSBwaW5uZWQgaW4gdGhlIGRpc3BsYXkgcGxhbmUKPiArCS8qCj4gKwkgKiBB cyB0aGUgdXNlciBtYXkgbWFwIHRoZSBidWZmZXIgb25jZSBwaW5uZWQgaW4gdGhlIGRpc3BsYXkg cGxhbmUKPiAgCSAqIChlLmcuIGxpYmttcyBmb3IgdGhlIGJvb3R1cCBzcGxhc2gpLCB3ZSBoYXZl IHRvIGVuc3VyZSB0aGF0IHdlCj4gIAkgKiBhbHdheXMgdXNlIG1hcF9hbmRfZmVuY2VhYmxlIGZv ciBhbGwgc2Nhbm91dCBidWZmZXJzLiBIb3dldmVyLAo+ICAJICogaXQgbWF5IHNpbXBseSBiZSB0 b28gYmlnIHRvIGZpdCBpbnRvIG1hcHBhYmxlLCBpbiB3aGljaCBjYXNlCj4gQEAgLTQ2MSwyMiAr NDU2LDE5IEBAIGk5MTVfZ2VtX29iamVjdF9waW5fdG9fZGlzcGxheV9wbGFuZShzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICAJaWYgKElTX0VSUih2bWEpKQo+ICAJCXZtYSA9IGk5 MTVfZ2VtX29iamVjdF9nZ3R0X3BpbihvYmosIHZpZXcsIDAsIGFsaWdubWVudCwgZmxhZ3MpOwo+ ICAJaWYgKElTX0VSUih2bWEpKQo+IC0JCWdvdG8gZXJyX3VucGluX2dsb2JhbDsKPiArCQlyZXR1 cm4gdm1hOwo+ICAKPiAgCXZtYS0+ZGlzcGxheV9hbGlnbm1lbnQgPSBtYXhfdCh1NjQsIHZtYS0+ ZGlzcGxheV9hbGlnbm1lbnQsIGFsaWdubWVudCk7Cj4gIAo+ICAJX19pOTE1X2dlbV9vYmplY3Rf Zmx1c2hfZm9yX2Rpc3BsYXkob2JqKTsKPiAgCj4gLQkvKiBJdCBzaG91bGQgbm93IGJlIG91dCBv ZiBhbnkgb3RoZXIgd3JpdGUgZG9tYWlucywgYW5kIHdlIGNhbiB1cGRhdGUKPiArCS8qCj4gKwkg KiBJdCBzaG91bGQgbm93IGJlIG91dCBvZiBhbnkgb3RoZXIgd3JpdGUgZG9tYWlucywgYW5kIHdl IGNhbiB1cGRhdGUKPiAgCSAqIHRoZSBkb21haW4gdmFsdWVzIGZvciBvdXIgY2hhbmdlcy4KPiAg CSAqLwo+ICAJb2JqLT5yZWFkX2RvbWFpbnMgfD0gSTkxNV9HRU1fRE9NQUlOX0dUVDsKPiAgCj4g IAlyZXR1cm4gdm1hOwo+IC0KPiAtZXJyX3VucGluX2dsb2JhbDoKPiAtCW9iai0+cGluX2dsb2Jh bC0tOwo+IC0JcmV0dXJuIHZtYTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgaTkxNV9nZW1fb2Jq ZWN0X2J1bXBfaW5hY3RpdmVfZ2d0dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ IEBAIC01MTQsMTIgKzUwNiw2IEBAIGk5MTVfZ2VtX29iamVjdF91bnBpbl9mcm9tX2Rpc3BsYXlf cGxhbmUoc3RydWN0IGk5MTVfdm1hICp2bWEpCj4gIAo+ICAJYXNzZXJ0X29iamVjdF9oZWxkKG9i aik7Cj4gIAo+IC0JaWYgKFdBUk5fT04ob2JqLT5waW5fZ2xvYmFsID09IDApKQo+IC0JCXJldHVy bjsKPiAtCj4gLQlpZiAoLS1vYmotPnBpbl9nbG9iYWwgPT0gMCkKPiAtCQl2bWEtPmRpc3BsYXlf YWxpZ25tZW50ID0gSTkxNV9HVFRfTUlOX0FMSUdOTUVOVDsKPiAtCj4gIAkvKiBCdW1wIHRoZSBM UlUgdG8gdHJ5IGFuZCBhdm9pZCBwcmVtYXR1cmUgZXZpY3Rpb24gd2hpbHN0IGZsaXBwaW5nICAq Lwo+ICAJaTkxNV9nZW1fb2JqZWN0X2J1bXBfaW5hY3RpdmVfZ2d0dChvYmopOwo+ICAKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oCj4gaW5kZXggNWVmYjk5MzZl MDViLi5kNjAwNWNhZDlkNWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX29iamVjdC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX29iamVjdC5oCj4gQEAgLTQwNiw3ICs0MDYsOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgY3B1 X3dyaXRlX25lZWRzX2NsZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiAg CWlmICghKG9iai0+Y2FjaGVfY29oZXJlbnQgJiBJOTE1X0JPX0NBQ0hFX0NPSEVSRU5UX0ZPUl9X UklURSkpCj4gIAkJcmV0dXJuIHRydWU7Cj4gIAo+IC0JcmV0dXJuIG9iai0+cGluX2dsb2JhbDsg LyogY3VycmVudGx5IGluIHVzZSBieSBIVywga2VlcCBmbHVzaGVkICovCj4gKwkvKiBDdXJyZW50 bHkgaW4gdXNlIGJ5IEhXIChkaXNwbGF5IGVuZ2luZSk/IEtlZXAgZmx1c2hlZC4gKi8KPiArCXJl dHVybiBSRUFEX09OQ0Uob2JqLT5mcm9udGJ1ZmZlcik7Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbmxp bmUgdm9pZCBfX3N0YXJ0X2NwdV93cml0ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq KQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0 X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVz LmgKPiBpbmRleCBlZGUwZWI0MjE4YTguLjEzYjlkYzBlMWE4OSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgKPiBAQCAtMTUyLDgg KzE1Miw2IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0IHsKPiAgCj4gIAkvKiogQ291bnQg b2YgVk1BIGFjdHVhbGx5IGJvdW5kIGJ5IHRoaXMgb2JqZWN0ICovCj4gIAlhdG9taWNfdCBiaW5k X2NvdW50Owo+IC0JLyoqIENvdW50IG9mIGhvdyBtYW55IGdsb2JhbCBWTUEgYXJlIGN1cnJlbnRs eSBwaW5uZWQgZm9yIHVzZSBieSBIVyAqLwo+IC0JdW5zaWduZWQgaW50IHBpbl9nbG9iYWw7Cj4g IAo+ICAJc3RydWN0IHsKPiAgCQlzdHJ1Y3QgbXV0ZXggbG9jazsgLyogcHJvdGVjdHMgdGhlIHBh Z2VzIGFuZCB0aGVpciB1c2UgKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv Z2VtL2k5MTVfZ2VtX3Nocmlua2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9n ZW1fc2hyaW5rZXIuYwo+IGluZGV4IGVkZDIxZDE0ZTY0Zi4uNGU1NWNmYzJiMGRjIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9zaHJpbmtlci5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Nocmlua2VyLmMKPiBAQCAtNjEs NyArNjEsOCBAQCBzdGF0aWMgYm9vbCBjYW5fcmVsZWFzZV9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqKQo+ICAJaWYgKCFpOTE1X2dlbV9vYmplY3RfaXNfc2hyaW5rYWJsZShv YmopKQo+ICAJCXJldHVybiBmYWxzZTsKPiAgCj4gLQkvKiBPbmx5IHJlcG9ydCB0cnVlIGlmIGJ5 IHVuYmluZGluZyB0aGUgb2JqZWN0IGFuZCBwdXR0aW5nIGl0cyBwYWdlcwo+ICsJLyoKPiArCSAq IE9ubHkgcmVwb3J0IHRydWUgaWYgYnkgdW5iaW5kaW5nIHRoZSBvYmplY3QgYW5kIHB1dHRpbmcg aXRzIHBhZ2VzCj4gIAkgKiB3ZSBjYW4gYWN0dWFsbHkgbWFrZSBmb3J3YXJkIHByb2dyZXNzIHRv d2FyZHMgZnJlZWluZyBwaHlzaWNhbAo+ICAJICogcGFnZXMuCj4gIAkgKgo+IEBAIC03MiwxNiAr NzMsOCBAQCBzdGF0aWMgYm9vbCBjYW5fcmVsZWFzZV9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqKQo+ICAJaWYgKGF0b21pY19yZWFkKCZvYmotPm1tLnBhZ2VzX3Bpbl9jb3Vu dCkgPiBhdG9taWNfcmVhZCgmb2JqLT5iaW5kX2NvdW50KSkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4g IAo+IC0JLyogSWYgYW55IHZtYSBhcmUgInBlcm1hbmVudGx5IiBwaW5uZWQsIGl0IHdpbGwgcHJl dmVudCB1cyBmcm9tCj4gLQkgKiByZWNsYWltaW5nIHRoZSBvYmotPm1tLnBhZ2VzLiBXZSBvbmx5 IGFsbG93IHNjYW5vdXQgb2JqZWN0cyB0byBjbGFpbQo+IC0JICogYSBwZXJtYW5lbnQgcGluLCBh bG9uZyB3aXRoIGEgZmV3IG90aGVycyBsaWtlIHRoZSBjb250ZXh0IG9iamVjdHMuCj4gLQkgKiBU byBzaW1wbGlmeSB0aGUgc2NhbiwgYW5kIHRvIGF2b2lkIHdhbGtpbmcgdGhlIGxpc3Qgb2Ygdm1h IHVuZGVyIHRoZQo+IC0JICogb2JqZWN0LCB3ZSBqdXN0IGNoZWNrIHRoZSBjb3VudCBvZiBpdHMg cGVybWFuZW50bHkgcGlubmVkLgo+IC0JICovCj4gLQlpZiAoUkVBRF9PTkNFKG9iai0+cGluX2ds b2JhbCkpCj4gLQkJcmV0dXJuIGZhbHNlOwoKQXJlIHdlIGdpdmluZyB0aGUgc2hyaW5rZXIgZmFs c2UgaG9wZSBoZXJlIHdoZW4gaXQgY29tZXMgdG8gdGhlIGFjdHVhbApmcm9udGJ1ZmZlcj8KCj4g LQo+IC0JLyogV2UgY2FuIG9ubHkgcmV0dXJuIHBoeXNpY2FsIHBhZ2VzIHRvIHRoZSBzeXN0ZW0g aWYgd2UgY2FuIGVpdGhlcgo+ICsJLyoKPiArCSAqIFdlIGNhbiBvbmx5IHJldHVybiBwaHlzaWNh bCBwYWdlcyB0byB0aGUgc3lzdGVtIGlmIHdlIGNhbiBlaXRoZXIKPiAgCSAqIGRpc2NhcmQgdGhl IGNvbnRlbnRzIChiZWNhdXNlIHRoZSB1c2VyIGhhcyBtYXJrZWQgdGhlbSBhcyBiZWluZwo+ICAJ ICogcHVyZ2VhYmxlKSBvciBpZiB3ZSBjYW4gbW92ZSB0aGVpciBjb250ZW50cyBvdXQgdG8gc3dh cC4KPiAgCSAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gaW5kZXggZTEwM2Zj YmE2NDM1Li5iOTAzNzE4NDQ2ODkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kZWJ1Z2ZzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu Ywo+IEBAIC03NywxMSArNzcsNiBAQCBzdGF0aWMgaW50IGk5MTVfY2FwYWJpbGl0aWVzKHN0cnVj dCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0 aWMgY2hhciBnZXRfcGluX2ZsYWcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiAt ewo+IC0JcmV0dXJuIG9iai0+cGluX2dsb2JhbCA/ICdwJyA6ICcgJzsKPiAtfQo+IC0KPiAgc3Rh dGljIGNoYXIgZ2V0X3RpbGluZ19mbGFnKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmop Cj4gIHsKPiAgCXN3aXRjaCAoaTkxNV9nZW1fb2JqZWN0X2dldF90aWxpbmcob2JqKSkgewo+IEBA IC0xNDAsOSArMTM1LDggQEAgZGVzY3JpYmVfb2JqKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0 IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiAgCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwo+ICAJ aW50IHBpbl9jb3VudCA9IDA7Cj4gIAo+IC0Jc2VxX3ByaW50ZihtLCAiJXBLOiAlYyVjJWMlYyAl OHpkS2lCICUwMnggJTAyeCAlcyVzJXMiLAo+ICsJc2VxX3ByaW50ZihtLCAiJXBLOiAlYyVjJWMg JTh6ZEtpQiAlMDJ4ICUwMnggJXMlcyVzIiwKPiAgCQkgICAmb2JqLT5iYXNlLAo+IC0JCSAgIGdl dF9waW5fZmxhZyhvYmopLAo+ICAJCSAgIGdldF90aWxpbmdfZmxhZyhvYmopLAo+ICAJCSAgIGdl dF9nbG9iYWxfZmxhZyhvYmopLAo+ICAJCSAgIGdldF9waW5fbWFwcGVkX2ZsYWcob2JqKSwKPiBA QCAtMjIxLDggKzIxNSw4IEBAIGRlc2NyaWJlX29iaihzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCj4gIAlzZXFfcHJpbnRmKG0sICIgKHBpbm5lZCB4 ICVkKSIsIHBpbl9jb3VudCk7Cj4gIAlpZiAob2JqLT5zdG9sZW4pCj4gIAkJc2VxX3ByaW50Ziht LCAiIChzdG9sZW46ICUwOGxseCkiLCBvYmotPnN0b2xlbi0+c3RhcnQpOwo+IC0JaWYgKG9iai0+ cGluX2dsb2JhbCkKPiAtCQlzZXFfcHJpbnRmKG0sICIgKGdsb2JhbCkiKTsKPiArCWlmIChSRUFE X09OQ0Uob2JqLT5mcm9udGJ1ZmZlcikpCj4gKwkJc2VxX3ByaW50ZihtLCAiIChmcm9udCkiKTsK CkEgYml0IGNvbmZ1c2luZyB0byBzYXkgaXQncyAiZnJvbnQiIHdoZW4gaW4gZmFjdCBpdCBjYW4g YmUgYW55IHJhbmRvbSBiYWNrYnVmZmVyLgpNYXliZSBzaG91bGQgYmUganVzdCAiZmIiIG9yIHNv bWV0aGluZz8KCj4gIAo+ICAJZW5naW5lID0gaTkxNV9nZW1fb2JqZWN0X2xhc3Rfd3JpdGVfZW5n aW5lKG9iaik7Cj4gIAlpZiAoZW5naW5lKQo+IC0tIAo+IDIuMjMuMAo+IAo+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0gClZpbGxlIFN5cmrD pGzDpApJbnRlbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=