From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 2/7] drm/ttm: use an operation ctx for ttm_mem_global_alloc Date: Thu, 25 Jan 2018 09:31:54 +0100 Message-ID: <9716c43f-6bc2-70f0-c166-442121dcf60f@amd.com> References: <1513766101-15993-1-git-send-email-Hongbo.He@amd.com> <1513766101-15993-2-git-send-email-Hongbo.He@amd.com> <15e3b956-8777-8fb1-2709-5409a756f0be@gmail.com> <20180124232346.GA59165@syeh-m02.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180124232346.GA59165-WSU1YMatGzO44ywRPIzf9A@public.gmane.org> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: Sinclair Yeh Cc: Thomas Hellstrom , Roger He , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org VW5mb3J0dW5hdGVseSB0aGUgcGF0Y2hlcyBhcmUgYWxyZWFkeSBjb21pdHRlZCAod2l0aCBhIGJl dHRlciBjb21taXQgCm1lc3NhZ2UgSUlSQykuCgpCdXQgdGhlIHZhcmlhYmxlIG5hbWUgc291bmRz IGp1c3QgbGlrZSBhIHN0eWxlIG5pdCBwaWNrIHRvIG1lIHdlIGNhbiBmaXggCmluIGEgc2VwYXJh dGUgcGF0Y2ggYXMgd2VsbC4KClRoYW5rcywKQ2hyaXN0aWFuLgoKQW0gMjUuMDEuMjAxOCB1bSAw MDoyNCBzY2hyaWViIFNpbmNsYWlyIFllaDoKPiBIaSwKPgo+IFNvcnJ5LCBJJ3ZlIGJlZW4gb24g YSBsZWF2ZS4gIENhdGNoaW5nIHVwIG9uIGVtYWlscy4KPgo+IEluIGNhc2UgdGhpcyBpcyBzdGls bCBub3QgeWV0IG1lcmdlZCwgbXkgY29tbWVudCBpcwo+IGJlIGNvbnNpc3Qgd2l0aCB0aGUgbmV3 IHZhcmlhYmxlIG5hbWUuICBJbiBzb21lIGNhc2VzCj4gaXQncyAidHRtX29wdF9jdHgiLCBpbiBv dGhlcnMgaXQncyAiY3R4Ii4KPgo+IEkgcHJlZmVyIHR0bV9vcHRfY3R4IGJlY2F1c2UgaXQncyBt b3JlIGRlc2NyaXB0aXZlLgo+Cj4gQW5kIHllcywgc29tZSBkZXNjcmlwdGlvbiBvbiB3aHkgdGhp cyBjaGFuZ2UgaXMgbmVjZXNzYXJ5IGluIHRoZQo+IGNvbW1pdCBtZXNzYWdlIGlzIG5pY2UsIHRv by4KPgo+IFNpbmNsYWlyCj4KPiBPbiBXZWQsIERlYyAyMCwgMjAxNyBhdCAwMjozMzozN1BNICsw MTAwLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+PiBDb21taXQgbWVzc2FnZSBuZWVkZWQhIFNv bWV0aGluZyBsaWtlOgo+Pgo+PiBGb3J3YXJkIHRoZSBvcGVyYXRpb24gY29udGV4dCB0byB0dG1f bWVtX2dsb2JhbF9hbGxvYyBhcyB3ZWxsLgo+Pgo+PiBBbSAyMC4xMi4yMDE3IHVtIDExOjM0IHNj aHJpZWIgUm9nZXIgSGU6Cj4+PiBDaGFuZ2UtSWQ6IEk1Mjc5YjVjZDM1NjBjNDA4MmIwMGY4MjIy MTk1NzVhNWY5YzM4MDhhCj4+PiBTaWduZWQtb2ZmLWJ5OiBSb2dlciBIZSA8SG9uZ2JvLkhlQGFt ZC5jb20+Cj4+IFdpdGggdGhlIGNvbW1pdCBtZXNzYWdlIGZpeGVkLCBwYXRjaCBpcyBSZXZpZXdl ZC1ieTogQ2hyaXN0aWFuIEvDtm5pZwo+PiA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPi4KPj4K Pj4gSSB3b3VsZCBsaWtlIHRvIGdldCBhbiByYiBvciBhYiBmcm9tIFRob21hcyBhbmQvb3IgU2lu Y2xhaXIgYXMgd2VsbCwgc2luY2UKPj4gdGhpcyBpcyB0b3VjaGluZyBhIGxvdCBvZiB2bXdnZngg Y29kZS4KPj4KPj4gUmVnYXJkcywKPj4gQ2hyaXN0aWFuLgo+Pgo+Pj4gLS0tCj4+PiAgICBkcml2 ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jICAgICAgICAgICAgICAgICAgICB8ICAyICstCj4+PiAg ICBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9tZW1vcnkuYyAgICAgICAgICAgICAgICB8IDE1ICsr KysrKysrKy0tLS0tLQo+Pj4gICAgZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fb2JqZWN0LmMgICAg ICAgICAgICAgICAgfCAxMyArKysrKysrKysrLS0tCj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9iaW5kaW5nLmMgICAgICAgICB8ICA2ICsrKysrLQo+Pj4gICAgZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfYnVmZmVyLmMgICAgICAgICAgfCAxMyArKysrKysrKysrLS0t Cj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9jb250ZXh0LmMgICAgICAgICB8 ICA2ICsrKysrLQo+Pj4gICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY290YWJsZS5j ICAgICAgICAgfCAgNiArKysrKy0KPj4+ICAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2ZlbmNlLmMgICAgICAgICAgIHwgIDYgKysrKystCj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9zaGFkZXIuYyAgICAgICAgICB8IDE4ICsrKysrKysrKysrKysrKy0tLQo+Pj4g ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2ltcGxlX3Jlc291cmNlLmMgfCAgNiAr KysrKy0KPj4+ICAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3NvLmMgICAgICAgICAg ICAgIHwgIDYgKysrKystCj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdXJm YWNlLmMgICAgICAgICB8IDEyICsrKysrKysrKystLQo+Pj4gICAgaW5jbHVkZS9kcm0vdHRtL3R0 bV9tZW1vcnkuaCAgICAgICAgICAgICAgICAgICAgfCAgMyArKy0KPj4+ICAgIDEzIGZpbGVzIGNo YW5nZWQsIDg3IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90 dG1fYm8uYwo+Pj4gaW5kZXggZmE1N2FhOC4uYzU5ZjU3MiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRt X2JvLmMKPj4+IEBAIC0xMTMzLDcgKzExMzMsNyBAQCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQo c3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCj4+PiAgICAJc3RydWN0IHR0bV9tZW1fZ2xvYmFs ICptZW1fZ2xvYiA9IGJkZXYtPmdsb2ItPm1lbV9nbG9iOwo+Pj4gICAgCWJvb2wgbG9ja2VkOwo+ Pj4gLQlyZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxvYyhtZW1fZ2xvYiwgYWNjX3NpemUsIGZhbHNl LCBmYWxzZSk7Cj4+PiArCXJldCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jKG1lbV9nbG9iLCBhY2Nf c2l6ZSwgY3R4KTsKPj4+ICAgIAlpZiAocmV0KSB7Cj4+PiAgICAJCXByX2VycigiT3V0IG9mIGtl cm5lbCBtZW1vcnlcbiIpOwo+Pj4gICAgCQlpZiAoZGVzdHJveSkKPj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9tZW1vcnkuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRt X21lbW9yeS5jCj4+PiBpbmRleCA5MTMwYmRmLi41MjVkM2I2IDEwMDY0NAo+Pj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fbWVtb3J5LmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90 dG0vdHRtX21lbW9yeS5jCj4+PiBAQCAtNTA4LDcgKzUwOCw3IEBAIHN0YXRpYyBpbnQgdHRtX21l bV9nbG9iYWxfcmVzZXJ2ZShzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgKmdsb2IsCj4+PiAgICBzdGF0 aWMgaW50IHR0bV9tZW1fZ2xvYmFsX2FsbG9jX3pvbmUoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpn bG9iLAo+Pj4gICAgCQkJCSAgICAgc3RydWN0IHR0bV9tZW1fem9uZSAqc2luZ2xlX3pvbmUsCj4+ PiAgICAJCQkJICAgICB1aW50NjRfdCBtZW1vcnksCj4+PiAtCQkJCSAgICAgYm9vbCBub193YWl0 LCBib29sIGludGVycnVwdGlibGUpCj4+PiArCQkJCSAgICAgc3RydWN0IHR0bV9vcGVyYXRpb25f Y3R4ICpjdHgpCj4+PiAgICB7Cj4+PiAgICAJaW50IGNvdW50ID0gVFRNX01FTU9SWV9BTExPQ19S RVRSSUVTOwo+Pj4gQEAgLTUxNiw3ICs1MTYsNyBAQCBzdGF0aWMgaW50IHR0bV9tZW1fZ2xvYmFs X2FsbG9jX3pvbmUoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iLAo+Pj4gICAgCQkJCQkgICAg ICAgc2luZ2xlX3pvbmUsCj4+PiAgICAJCQkJCSAgICAgICBtZW1vcnksIHRydWUpCj4+PiAgICAJ CQkhPSAwKSkgewo+Pj4gLQkJaWYgKG5vX3dhaXQpCj4+PiArCQlpZiAoY3R4LT5ub193YWl0X2dw dSkKPj4+ICAgIAkJCXJldHVybiAtRU5PTUVNOwo+Pj4gICAgCQlpZiAodW5saWtlbHkoY291bnQt LSA9PSAwKSkKPj4+ICAgIAkJCXJldHVybiAtRU5PTUVNOwo+Pj4gQEAgLTUyNywxNSArNTI3LDE0 IEBAIHN0YXRpYyBpbnQgdHRtX21lbV9nbG9iYWxfYWxsb2Nfem9uZShzdHJ1Y3QgdHRtX21lbV9n bG9iYWwgKmdsb2IsCj4+PiAgICB9Cj4+PiAgICBpbnQgdHRtX21lbV9nbG9iYWxfYWxsb2Moc3Ry dWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iLCB1aW50NjRfdCBtZW1vcnksCj4+PiAtCQkJIGJvb2wg bm9fd2FpdCwgYm9vbCBpbnRlcnJ1cHRpYmxlKQo+Pj4gKwkJCSBzdHJ1Y3QgdHRtX29wZXJhdGlv bl9jdHggKmN0eCkKPj4+ICAgIHsKPj4+ICAgIAkvKioKPj4+ICAgIAkgKiBOb3JtYWwgYWxsb2Nh dGlvbnMgb2Yga2VybmVsIG1lbW9yeSBhcmUgcmVnaXN0ZXJlZCBpbgo+Pj4gICAgCSAqIGFsbCB6 b25lcy4KPj4+ICAgIAkgKi8KPj4+IC0JcmV0dXJuIHR0bV9tZW1fZ2xvYmFsX2FsbG9jX3pvbmUo Z2xvYiwgTlVMTCwgbWVtb3J5LCBub193YWl0LAo+Pj4gLQkJCQkJIGludGVycnVwdGlibGUpOwo+ Pj4gKwlyZXR1cm4gdHRtX21lbV9nbG9iYWxfYWxsb2Nfem9uZShnbG9iLCBOVUxMLCBtZW1vcnks IGN0eCk7Cj4+PiAgICB9Cj4+PiAgICBFWFBPUlRfU1lNQk9MKHR0bV9tZW1fZ2xvYmFsX2FsbG9j KTsKPj4+IEBAIC01NDQsNiArNTQzLDEwIEBAIGludCB0dG1fbWVtX2dsb2JhbF9hbGxvY19wYWdl KHN0cnVjdCB0dG1fbWVtX2dsb2JhbCAqZ2xvYiwKPj4+ICAgIHsKPj4+ICAgIAlzdHJ1Y3QgdHRt X21lbV96b25lICp6b25lID0gTlVMTDsKPj4+ICsJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0 eCA9IHsKPj4+ICsJCS5pbnRlcnJ1cHRpYmxlID0gZmFsc2UsCj4+PiArCQkubm9fd2FpdF9ncHUg PSBmYWxzZQo+Pj4gKwl9Owo+Pj4gICAgCS8qKgo+Pj4gICAgCSAqIFBhZ2UgYWxsb2NhdGlvbnMg bWF5IGJlIHJlZ2lzdGVkIGluIGEgc2luZ2xlIHpvbmUKPj4+IEBAIC01NTcsNyArNTYwLDcgQEAg aW50IHR0bV9tZW1fZ2xvYmFsX2FsbG9jX3BhZ2Uoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9i LAo+Pj4gICAgCWlmIChnbG9iLT56b25lX2RtYTMyICYmIHBhZ2VfdG9fcGZuKHBhZ2UpID4gMHgw MDEwMDAwMFVMKQo+Pj4gICAgCQl6b25lID0gZ2xvYi0+em9uZV9rZXJuZWw7Cj4+PiAgICAjZW5k aWYKPj4+IC0JcmV0dXJuIHR0bV9tZW1fZ2xvYmFsX2FsbG9jX3pvbmUoZ2xvYiwgem9uZSwgc2l6 ZSwgZmFsc2UsIGZhbHNlKTsKPj4+ICsJcmV0dXJuIHR0bV9tZW1fZ2xvYmFsX2FsbG9jX3pvbmUo Z2xvYiwgem9uZSwgc2l6ZSwgJmN0eCk7Cj4+PiAgICB9Cj4+PiAgICB2b2lkIHR0bV9tZW1fZ2xv YmFsX2ZyZWVfcGFnZShzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgKmdsb2IsIHN0cnVjdCBwYWdlICpw YWdlLAo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX29iamVjdC5jIGIv ZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fb2JqZWN0LmMKPj4+IGluZGV4IDI2YTdhZDAuLjFhYTJi YWEgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9vYmplY3QuYwo+Pj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fb2JqZWN0LmMKPj4+IEBAIC0zMjUsNiArMzI1 LDEwIEBAIGludCB0dG1fcmVmX29iamVjdF9hZGQoc3RydWN0IHR0bV9vYmplY3RfZmlsZSAqdGZp bGUsCj4+PiAgICAJc3RydWN0IHR0bV9yZWZfb2JqZWN0ICpyZWY7Cj4+PiAgICAJc3RydWN0IGRy bV9oYXNoX2l0ZW0gKmhhc2g7Cj4+PiAgICAJc3RydWN0IHR0bV9tZW1fZ2xvYmFsICptZW1fZ2xv YiA9IHRmaWxlLT50ZGV2LT5tZW1fZ2xvYjsKPj4+ICsJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4 IGN0eCA9IHsKPj4+ICsJCS5pbnRlcnJ1cHRpYmxlID0gZmFsc2UsCj4+PiArCQkubm9fd2FpdF9n cHUgPSBmYWxzZQo+Pj4gKwl9Owo+Pj4gICAgCWludCByZXQgPSAtRUlOVkFMOwo+Pj4gICAgCWlm IChiYXNlLT50ZmlsZSAhPSB0ZmlsZSAmJiAhYmFzZS0+c2hhcmVhYmxlKQo+Pj4gQEAgLTM1MCw3 ICszNTQsNyBAQCBpbnQgdHRtX3JlZl9vYmplY3RfYWRkKHN0cnVjdCB0dG1fb2JqZWN0X2ZpbGUg KnRmaWxlLAo+Pj4gICAgCQkJcmV0dXJuIC1FUEVSTTsKPj4+ICAgIAkJcmV0ID0gdHRtX21lbV9n bG9iYWxfYWxsb2MobWVtX2dsb2IsIHNpemVvZigqcmVmKSwKPj4+IC0JCQkJCSAgIGZhbHNlLCBm YWxzZSk7Cj4+PiArCQkJCQkgICAmY3R4KTsKPj4+ICAgIAkJaWYgKHVubGlrZWx5KHJldCAhPSAw KSkKPj4+ICAgIAkJCXJldHVybiByZXQ7Cj4+PiAgICAJCXJlZiA9IGttYWxsb2Moc2l6ZW9mKCpy ZWYpLCBHRlBfS0VSTkVMKTsKPj4+IEBAIC02ODYsNyArNjkwLDEwIEBAIGludCB0dG1fcHJpbWVf aGFuZGxlX3RvX2ZkKHN0cnVjdCB0dG1fb2JqZWN0X2ZpbGUgKnRmaWxlLAo+Pj4gICAgCWRtYV9i dWYgPSBwcmltZS0+ZG1hX2J1ZjsKPj4+ICAgIAlpZiAoIWRtYV9idWYgfHwgIWdldF9kbWFfYnVm X3VubGVzc19kb29tZWQoZG1hX2J1ZikpIHsKPj4+ICAgIAkJREVGSU5FX0RNQV9CVUZfRVhQT1JU X0lORk8oZXhwX2luZm8pOwo+Pj4gLQo+Pj4gKwkJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0 eCA9IHsKPj4+ICsJCQkuaW50ZXJydXB0aWJsZSA9IHRydWUsCj4+PiArCQkJLm5vX3dhaXRfZ3B1 ID0gZmFsc2UKPj4+ICsJCX07Cj4+PiAgICAJCWV4cF9pbmZvLm9wcyA9ICZ0ZGV2LT5vcHM7Cj4+ PiAgICAJCWV4cF9pbmZvLnNpemUgPSBwcmltZS0+c2l6ZTsKPj4+ICAgIAkJZXhwX2luZm8uZmxh Z3MgPSBmbGFnczsKPj4+IEBAIC02OTYsNyArNzAzLDcgQEAgaW50IHR0bV9wcmltZV9oYW5kbGVf dG9fZmQoc3RydWN0IHR0bV9vYmplY3RfZmlsZSAqdGZpbGUsCj4+PiAgICAJCSAqIE5lZWQgdG8g Y3JlYXRlIGEgbmV3IGRtYV9idWYsIHdpdGggbWVtb3J5IGFjY291bnRpbmcuCj4+PiAgICAJCSAq Lwo+Pj4gICAgCQlyZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxvYyh0ZGV2LT5tZW1fZ2xvYiwgdGRl di0+ZG1hX2J1Zl9zaXplLAo+Pj4gLQkJCQkJICAgZmFsc2UsIHRydWUpOwo+Pj4gKwkJCQkJICAg JmN0eCk7Cj4+PiAgICAJCWlmICh1bmxpa2VseShyZXQgIT0gMCkpIHsKPj4+ICAgIAkJCW11dGV4 X3VubG9jaygmcHJpbWUtPm11dGV4KTsKPj4+ICAgIAkJCWdvdG8gb3V0X3VucmVmOwo+Pj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JpbmRpbmcuYyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JpbmRpbmcuYwo+Pj4gaW5kZXggOWM0MmU5Ni4uNTVk MzJhZSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JpbmRp bmcuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYmluZGluZy5jCj4+ PiBAQCAtMTIwMiwxMCArMTIwMiwxNCBAQCBzdHJ1Y3Qgdm13X2N0eF9iaW5kaW5nX3N0YXRlICoK Pj4+ICAgIHZtd19iaW5kaW5nX3N0YXRlX2FsbG9jKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3By aXYpCj4+PiAgICB7Cj4+PiAgICAJc3RydWN0IHZtd19jdHhfYmluZGluZ19zdGF0ZSAqY2JzOwo+ Pj4gKwlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0gewo+Pj4gKwkJLmludGVycnVwdGli bGUgPSBmYWxzZSwKPj4+ICsJCS5ub193YWl0X2dwdSA9IGZhbHNlCj4+PiArCX07Cj4+PiAgICAJ aW50IHJldDsKPj4+ICAgIAlyZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxvYyh2bXdfbWVtX2dsb2Io ZGV2X3ByaXYpLCBzaXplb2YoKmNicyksCj4+PiAtCQkJCSAgIGZhbHNlLCBmYWxzZSk7Cj4+PiAr CQkJCSZjdHgpOwo+Pj4gICAgCWlmIChyZXQpCj4+PiAgICAJCXJldHVybiBFUlJfUFRSKHJldCk7 Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYnVmZmVyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9idWZmZXIuYwo+Pj4gaW5kZXggYzcwNTYz Mi4uZWY5NzU0MiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2J1ZmZlci5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9idWZmZXIu Ywo+Pj4gQEAgLTM5NCw2ICszOTQsMTAgQEAgc3RhdGljIGludCB2bXdfdHRtX21hcF9kbWEoc3Ry dWN0IHZtd190dG1fdHQgKnZtd190dCkKPj4+ICAgIAlzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9w cml2ID0gdm13X3R0LT5kZXZfcHJpdjsKPj4+ICAgIAlzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgKmds b2IgPSB2bXdfbWVtX2dsb2IoZGV2X3ByaXYpOwo+Pj4gICAgCXN0cnVjdCB2bXdfc2dfdGFibGUg KnZzZ3QgPSAmdm13X3R0LT52c2d0Owo+Pj4gKwlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4 ID0gewo+Pj4gKwkJLmludGVycnVwdGlibGUgPSB0cnVlLAo+Pj4gKwkJLm5vX3dhaXRfZ3B1ID0g ZmFsc2UKPj4+ICsJfTsKPj4+ICAgIAlzdHJ1Y3Qgdm13X3BpdGVyIGl0ZXI7Cj4+PiAgICAJZG1h X2FkZHJfdCBvbGQ7Cj4+PiAgICAJaW50IHJldCA9IDA7Cj4+PiBAQCAtNDE3LDggKzQyMSw3IEBA IHN0YXRpYyBpbnQgdm13X3R0bV9tYXBfZG1hKHN0cnVjdCB2bXdfdHRtX3R0ICp2bXdfdHQpCj4+ PiAgICAJCQlzZ3Rfc2l6ZSA9IHR0bV9yb3VuZF9wb3Qoc2l6ZW9mKHN0cnVjdCBzZ190YWJsZSkp Owo+Pj4gICAgCQl9Cj4+PiAgICAJCXZtd190dC0+c2dfYWxsb2Nfc2l6ZSA9IHNndF9zaXplICsg c2dsX3NpemUgKiB2c2d0LT5udW1fcGFnZXM7Cj4+PiAtCQlyZXQgPSB0dG1fbWVtX2dsb2JhbF9h bGxvYyhnbG9iLCB2bXdfdHQtPnNnX2FsbG9jX3NpemUsIGZhbHNlLAo+Pj4gLQkJCQkJICAgdHJ1 ZSk7Cj4+PiArCQlyZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxvYyhnbG9iLCB2bXdfdHQtPnNnX2Fs bG9jX3NpemUsICZjdHgpOwo+Pj4gICAgCQlpZiAodW5saWtlbHkocmV0ICE9IDApKQo+Pj4gICAg CQkJcmV0dXJuIHJldDsKPj4+IEBAIC02MzgsNiArNjQxLDEwIEBAIHN0YXRpYyBpbnQgdm13X3R0 bV9wb3B1bGF0ZShzdHJ1Y3QgdHRtX3R0ICp0dG0pCj4+PiAgICAJCWNvbnRhaW5lcl9vZih0dG0s IHN0cnVjdCB2bXdfdHRtX3R0LCBkbWFfdHRtLnR0bSk7Cj4+PiAgICAJc3RydWN0IHZtd19wcml2 YXRlICpkZXZfcHJpdiA9IHZtd190dC0+ZGV2X3ByaXY7Cj4+PiAgICAJc3RydWN0IHR0bV9tZW1f Z2xvYmFsICpnbG9iID0gdm13X21lbV9nbG9iKGRldl9wcml2KTsKPj4+ICsJc3RydWN0IHR0bV9v cGVyYXRpb25fY3R4IGN0eCA9IHsKPj4+ICsJCS5pbnRlcnJ1cHRpYmxlID0gdHJ1ZSwKPj4+ICsJ CS5ub193YWl0X2dwdSA9IGZhbHNlCj4+PiArCX07Cj4+PiAgICAJaW50IHJldDsKPj4+ICAgIAlp ZiAodHRtLT5zdGF0ZSAhPSB0dF91bnBvcHVsYXRlZCkKPj4+IEBAIC02NDYsNyArNjUzLDcgQEAg c3RhdGljIGludCB2bXdfdHRtX3BvcHVsYXRlKHN0cnVjdCB0dG1fdHQgKnR0bSkKPj4+ICAgIAlp ZiAoZGV2X3ByaXYtPm1hcF9tb2RlID09IHZtd19kbWFfYWxsb2NfY29oZXJlbnQpIHsKPj4+ICAg IAkJc2l6ZV90IHNpemUgPQo+Pj4gICAgCQkJdHRtX3JvdW5kX3BvdCh0dG0tPm51bV9wYWdlcyAq IHNpemVvZihkbWFfYWRkcl90KSk7Cj4+PiAtCQlyZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxvYyhn bG9iLCBzaXplLCBmYWxzZSwgdHJ1ZSk7Cj4+PiArCQlyZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxv YyhnbG9iLCBzaXplLCAmY3R4KTsKPj4+ICAgIAkJaWYgKHVubGlrZWx5KHJldCAhPSAwKSkKPj4+ ICAgIAkJCXJldHVybiByZXQ7Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY29udGV4 dC5jCj4+PiBpbmRleCA0MjEyYjNlLi4zNzY3YWMzIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfY29udGV4dC5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9jb250ZXh0LmMKPj4+IEBAIC03NDYsNiArNzQ2LDEwIEBAIHN0YXRpYyBp bnQgdm13X2NvbnRleHRfZGVmaW5lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEs Cj4+PiAgICAJc3RydWN0IHZtd19yZXNvdXJjZSAqdG1wOwo+Pj4gICAgCXN0cnVjdCBkcm1fdm13 X2NvbnRleHRfYXJnICphcmcgPSAoc3RydWN0IGRybV92bXdfY29udGV4dF9hcmcgKilkYXRhOwo+ Pj4gICAgCXN0cnVjdCB0dG1fb2JqZWN0X2ZpbGUgKnRmaWxlID0gdm13X2Zwcml2KGZpbGVfcHJp diktPnRmaWxlOwo+Pj4gKwlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggdHRtX29wdF9jdHggPSB7 Cj4+PiArCQkuaW50ZXJydXB0aWJsZSA9IHRydWUsCj4+PiArCQkubm9fd2FpdF9ncHUgPSBmYWxz ZQo+Pj4gKwl9Owo+Pj4gICAgCWludCByZXQ7Cj4+PiAgICAJaWYgKCFkZXZfcHJpdi0+aGFzX2R4 ICYmIGR4KSB7Cj4+PiBAQCAtNzY4LDcgKzc3Miw3IEBAIHN0YXRpYyBpbnQgdm13X2NvbnRleHRf ZGVmaW5lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4+PiAgICAJcmV0ID0g dHRtX21lbV9nbG9iYWxfYWxsb2Modm13X21lbV9nbG9iKGRldl9wcml2KSwKPj4+ICAgIAkJCQkg ICB2bXdfdXNlcl9jb250ZXh0X3NpemUsCj4+PiAtCQkJCSAgIGZhbHNlLCB0cnVlKTsKPj4+ICsJ CQkJICAgJnR0bV9vcHRfY3R4KTsKPj4+ICAgIAlpZiAodW5saWtlbHkocmV0ICE9IDApKSB7Cj4+ PiAgICAJCWlmIChyZXQgIT0gLUVSRVNUQVJUU1lTKQo+Pj4gICAgCQkJRFJNX0VSUk9SKCJPdXQg b2YgZ3JhcGhpY3MgbWVtb3J5IGZvciBjb250ZXh0Igo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X2NvdGFibGUuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X2NvdGFibGUuYwo+Pj4gaW5kZXggOTJkZjBiMC4uY2JmNTRlYSAxMDA2NDQKPj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2NvdGFibGUuYwo+Pj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY290YWJsZS5jCj4+PiBAQCAtNTczLDYgKzU3Mywx MCBAQCBzdHJ1Y3Qgdm13X3Jlc291cmNlICp2bXdfY290YWJsZV9hbGxvYyhzdHJ1Y3Qgdm13X3By aXZhdGUgKmRldl9wcml2LAo+Pj4gICAgCQkJCSAgICAgICB1MzIgdHlwZSkKPj4+ICAgIHsKPj4+ ICAgIAlzdHJ1Y3Qgdm13X2NvdGFibGUgKnZjb3RibDsKPj4+ICsJc3RydWN0IHR0bV9vcGVyYXRp b25fY3R4IHR0bV9vcHRfY3R4ID0gewo+Pj4gKwkJLmludGVycnVwdGlibGUgPSB0cnVlLAo+Pj4g KwkJLm5vX3dhaXRfZ3B1ID0gZmFsc2UKPj4+ICsJfTsKPj4+ICAgIAlpbnQgcmV0Owo+Pj4gICAg CXUzMiBudW1fZW50cmllczsKPj4+IEBAIC01ODAsNyArNTg0LDcgQEAgc3RydWN0IHZtd19yZXNv dXJjZSAqdm13X2NvdGFibGVfYWxsb2Moc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKPj4+ ICAgIAkJY290YWJsZV9hY2Nfc2l6ZSA9IHR0bV9yb3VuZF9wb3Qoc2l6ZW9mKHN0cnVjdCB2bXdf Y290YWJsZSkpOwo+Pj4gICAgCXJldCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jKHZtd19tZW1fZ2xv YihkZXZfcHJpdiksCj4+PiAtCQkJCSAgIGNvdGFibGVfYWNjX3NpemUsIGZhbHNlLCB0cnVlKTsK Pj4+ICsJCQkJICAgY290YWJsZV9hY2Nfc2l6ZSwgJnR0bV9vcHRfY3R4KTsKPj4+ICAgIAlpZiAo dW5saWtlbHkocmV0KSkKPj4+ICAgIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsKPj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mZW5jZS5jIGIvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuYwo+Pj4gaW5kZXggZDZiMWM1MC4uNmM1Yzc1YyAxMDA2 NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmMKPj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmMKPj4+IEBAIC01ODgsNiAr NTg4LDEwIEBAIGludCB2bXdfdXNlcl9mZW5jZV9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxl X3ByaXYsCj4+PiAgICAJc3RydWN0IHZtd191c2VyX2ZlbmNlICp1ZmVuY2U7Cj4+PiAgICAJc3Ry dWN0IHZtd19mZW5jZV9vYmogKnRtcDsKPj4+ICAgIAlzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgKm1l bV9nbG9iID0gdm13X21lbV9nbG9iKGZtYW4tPmRldl9wcml2KTsKPj4+ICsJc3RydWN0IHR0bV9v cGVyYXRpb25fY3R4IGN0eCA9IHsKPj4+ICsJCS5pbnRlcnJ1cHRpYmxlID0gZmFsc2UsCj4+PiAr CQkubm9fd2FpdF9ncHUgPSBmYWxzZQo+Pj4gKwl9Owo+Pj4gICAgCWludCByZXQ7Cj4+PiAgICAJ LyoKPj4+IEBAIC01OTYsNyArNjAwLDcgQEAgaW50IHZtd191c2VyX2ZlbmNlX2NyZWF0ZShzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKPj4+ICAgIAkgKi8KPj4+ICAgIAlyZXQgPSB0dG1fbWVt X2dsb2JhbF9hbGxvYyhtZW1fZ2xvYiwgZm1hbi0+dXNlcl9mZW5jZV9zaXplLAo+Pj4gLQkJCQkg ICBmYWxzZSwgZmFsc2UpOwo+Pj4gKwkJCQkgICAmY3R4KTsKPj4+ICAgIAlpZiAodW5saWtlbHko cmV0ICE9IDApKQo+Pj4gICAgCQlyZXR1cm4gcmV0Owo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X3NoYWRlci5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfc2hhZGVyLmMKPj4+IGluZGV4IDAwNGUxOGIuLjczYjhlOWEgMTAwNjQ0Cj4+PiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zaGFkZXIuYwo+Pj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2hhZGVyLmMKPj4+IEBAIC02MDcsNiArNjA3LDEwIEBA IGludCB2bXdfZHhfc2hhZGVyX2FkZChzdHJ1Y3Qgdm13X2NtZGJ1Zl9yZXNfbWFuYWdlciAqbWFu LAo+Pj4gICAgCXN0cnVjdCB2bXdfZHhfc2hhZGVyICpzaGFkZXI7Cj4+PiAgICAJc3RydWN0IHZt d19yZXNvdXJjZSAqcmVzOwo+Pj4gICAgCXN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYgPSBj dHgtPmRldl9wcml2Owo+Pj4gKwlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggdHRtX29wdF9jdHgg PSB7Cj4+PiArCQkuaW50ZXJydXB0aWJsZSA9IHRydWUsCj4+PiArCQkubm9fd2FpdF9ncHUgPSBm YWxzZQo+Pj4gKwl9Owo+Pj4gICAgCWludCByZXQ7Cj4+PiAgICAJaWYgKCF2bXdfc2hhZGVyX2R4 X3NpemUpCj4+PiBAQCAtNjE2LDcgKzYyMCw3IEBAIGludCB2bXdfZHhfc2hhZGVyX2FkZChzdHJ1 Y3Qgdm13X2NtZGJ1Zl9yZXNfbWFuYWdlciAqbWFuLAo+Pj4gICAgCQlyZXR1cm4gLUVJTlZBTDsK Pj4+ICAgIAlyZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxvYyh2bXdfbWVtX2dsb2IoZGV2X3ByaXYp LCB2bXdfc2hhZGVyX2R4X3NpemUsCj4+PiAtCQkJCSAgIGZhbHNlLCB0cnVlKTsKPj4+ICsJCQkJ ICAgJnR0bV9vcHRfY3R4KTsKPj4+ICAgIAlpZiAocmV0KSB7Cj4+PiAgICAJCWlmIChyZXQgIT0g LUVSRVNUQVJUU1lTKQo+Pj4gICAgCQkJRFJNX0VSUk9SKCJPdXQgb2YgZ3JhcGhpY3MgbWVtb3J5 IGZvciBzaGFkZXIgIgo+Pj4gQEAgLTczMCw2ICs3MzQsMTAgQEAgc3RhdGljIGludCB2bXdfdXNl cl9zaGFkZXJfYWxsb2Moc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKPj4+ICAgIHsKPj4+ ICAgIAlzdHJ1Y3Qgdm13X3VzZXJfc2hhZGVyICp1c2hhZGVyOwo+Pj4gICAgCXN0cnVjdCB2bXdf cmVzb3VyY2UgKnJlcywgKnRtcDsKPj4+ICsJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9 IHsKPj4+ICsJCS5pbnRlcnJ1cHRpYmxlID0gdHJ1ZSwKPj4+ICsJCS5ub193YWl0X2dwdSA9IGZh bHNlCj4+PiArCX07Cj4+PiAgICAJaW50IHJldDsKPj4+ICAgIAkvKgo+Pj4gQEAgLTc0Miw3ICs3 NTAsNyBAQCBzdGF0aWMgaW50IHZtd191c2VyX3NoYWRlcl9hbGxvYyhzdHJ1Y3Qgdm13X3ByaXZh dGUgKmRldl9wcml2LAo+Pj4gICAgCXJldCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jKHZtd19tZW1f Z2xvYihkZXZfcHJpdiksCj4+PiAgICAJCQkJICAgdm13X3VzZXJfc2hhZGVyX3NpemUsCj4+PiAt CQkJCSAgIGZhbHNlLCB0cnVlKTsKPj4+ICsJCQkJICAgJmN0eCk7Cj4+PiAgICAJaWYgKHVubGlr ZWx5KHJldCAhPSAwKSkgewo+Pj4gICAgCQlpZiAocmV0ICE9IC1FUkVTVEFSVFNZUykKPj4+ICAg IAkJCURSTV9FUlJPUigiT3V0IG9mIGdyYXBoaWNzIG1lbW9yeSBmb3Igc2hhZGVyICIKPj4+IEBA IC04MDAsNiArODA4LDEwIEBAIHN0YXRpYyBzdHJ1Y3Qgdm13X3Jlc291cmNlICp2bXdfc2hhZGVy X2FsbG9jKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+PiAgICB7Cj4+PiAgICAJc3Ry dWN0IHZtd19zaGFkZXIgKnNoYWRlcjsKPj4+ICAgIAlzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXM7 Cj4+PiArCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7Cj4+PiArCQkuaW50ZXJydXB0 aWJsZSA9IHRydWUsCj4+PiArCQkubm9fd2FpdF9ncHUgPSBmYWxzZQo+Pj4gKwl9Owo+Pj4gICAg CWludCByZXQ7Cj4+PiAgICAJLyoKPj4+IEBAIC04MTIsNyArODI0LDcgQEAgc3RhdGljIHN0cnVj dCB2bXdfcmVzb3VyY2UgKnZtd19zaGFkZXJfYWxsb2Moc3RydWN0IHZtd19wcml2YXRlICpkZXZf cHJpdiwKPj4+ICAgIAlyZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxvYyh2bXdfbWVtX2dsb2IoZGV2 X3ByaXYpLAo+Pj4gICAgCQkJCSAgIHZtd19zaGFkZXJfc2l6ZSwKPj4+IC0JCQkJICAgZmFsc2Us IHRydWUpOwo+Pj4gKwkJCQkgICAmY3R4KTsKPj4+ICAgIAlpZiAodW5saWtlbHkocmV0ICE9IDAp KSB7Cj4+PiAgICAJCWlmIChyZXQgIT0gLUVSRVNUQVJUU1lTKQo+Pj4gICAgCQkJRFJNX0VSUk9S KCJPdXQgb2YgZ3JhcGhpY3MgbWVtb3J5IGZvciBzaGFkZXIgIgo+Pj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3NpbXBsZV9yZXNvdXJjZS5jIGIvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfc2ltcGxlX3Jlc291cmNlLmMKPj4+IGluZGV4IDA1MWQzYjMu LmEwY2IzMTAgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9z aW1wbGVfcmVzb3VyY2UuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf c2ltcGxlX3Jlc291cmNlLmMKPj4+IEBAIC0xNDksNiArMTQ5LDEwIEBAIHZtd19zaW1wbGVfcmVz b3VyY2VfY3JlYXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4+ PiAgICAJc3RydWN0IHZtd19yZXNvdXJjZSAqcmVzOwo+Pj4gICAgCXN0cnVjdCB2bXdfcmVzb3Vy Y2UgKnRtcDsKPj4+ICAgIAlzdHJ1Y3QgdHRtX29iamVjdF9maWxlICp0ZmlsZSA9IHZtd19mcHJp dihmaWxlX3ByaXYpLT50ZmlsZTsKPj4+ICsJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9 IHsKPj4+ICsJCS5pbnRlcnJ1cHRpYmxlID0gdHJ1ZSwKPj4+ICsJCS5ub193YWl0X2dwdSA9IGZh bHNlCj4+PiArCX07Cj4+PiAgICAJc2l6ZV90IGFsbG9jX3NpemU7Cj4+PiAgICAJc2l6ZV90IGFj Y291bnRfc2l6ZTsKPj4+ICAgIAlpbnQgcmV0Owo+Pj4gQEAgLTE2Miw3ICsxNjYsNyBAQCB2bXdf c2ltcGxlX3Jlc291cmNlX2NyZWF0ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lk ICpkYXRhLAo+Pj4gICAgCQlyZXR1cm4gcmV0Owo+Pj4gICAgCXJldCA9IHR0bV9tZW1fZ2xvYmFs X2FsbG9jKHZtd19tZW1fZ2xvYihkZXZfcHJpdiksIGFjY291bnRfc2l6ZSwKPj4+IC0JCQkJICAg ZmFsc2UsIHRydWUpOwo+Pj4gKwkJCQkgICAmY3R4KTsKPj4+ICAgIAl0dG1fcmVhZF91bmxvY2so JmRldl9wcml2LT5yZXNlcnZhdGlvbl9zZW0pOwo+Pj4gICAgCWlmIChyZXQpIHsKPj4+ICAgIAkJ aWYgKHJldCAhPSAtRVJFU1RBUlRTWVMpCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfc28uYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3NvLmMK Pj4+IGluZGV4IDVhNzNlZWIuLmQzNTczYzMgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9zby5jCj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9zby5jCj4+PiBAQCAtMzI5LDYgKzMyOSwxMCBAQCBpbnQgdm13X3ZpZXdfYWRkKHN0cnVj dCB2bXdfY21kYnVmX3Jlc19tYW5hZ2VyICptYW4sCj4+PiAgICAJc3RydWN0IHZtd19wcml2YXRl ICpkZXZfcHJpdiA9IGN0eC0+ZGV2X3ByaXY7Cj4+PiAgICAJc3RydWN0IHZtd19yZXNvdXJjZSAq cmVzOwo+Pj4gICAgCXN0cnVjdCB2bXdfdmlldyAqdmlldzsKPj4+ICsJc3RydWN0IHR0bV9vcGVy YXRpb25fY3R4IHR0bV9vcHRfY3R4ID0gewo+Pj4gKwkJLmludGVycnVwdGlibGUgPSB0cnVlLAo+ Pj4gKwkJLm5vX3dhaXRfZ3B1ID0gZmFsc2UKPj4+ICsJfTsKPj4+ICAgIAlzaXplX3Qgc2l6ZTsK Pj4+ICAgIAlpbnQgcmV0Owo+Pj4gQEAgLTM0NSw3ICszNDksNyBAQCBpbnQgdm13X3ZpZXdfYWRk KHN0cnVjdCB2bXdfY21kYnVmX3Jlc19tYW5hZ2VyICptYW4sCj4+PiAgICAJc2l6ZSA9IG9mZnNl dG9mKHN0cnVjdCB2bXdfdmlldywgY21kKSArIGNtZF9zaXplOwo+Pj4gLQlyZXQgPSB0dG1fbWVt X2dsb2JhbF9hbGxvYyh2bXdfbWVtX2dsb2IoZGV2X3ByaXYpLCBzaXplLCBmYWxzZSwgdHJ1ZSk7 Cj4+PiArCXJldCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jKHZtd19tZW1fZ2xvYihkZXZfcHJpdiks IHNpemUsICZ0dG1fb3B0X2N0eCk7Cj4+PiAgICAJaWYgKHJldCkgewo+Pj4gICAgCQlpZiAocmV0 ICE9IC1FUkVTVEFSVFNZUykKPj4+ICAgIAkJCURSTV9FUlJPUigiT3V0IG9mIGdyYXBoaWNzIG1l bW9yeSBmb3IgdmlldyIKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9zdXJmYWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdXJmYWNlLmMK Pj4+IGluZGV4IDZhYzA5NGUuLmRiMWJiMTYgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9zdXJmYWNlLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdn Zngvdm13Z2Z4X3N1cmZhY2UuYwo+Pj4gQEAgLTcwMCw2ICs3MDAsMTAgQEAgaW50IHZtd19zdXJm YWNlX2RlZmluZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+Pj4g ICAgCXN0cnVjdCBkcm1fdm13X3N1cmZhY2VfY3JlYXRlX3JlcSAqcmVxID0gJmFyZy0+cmVxOwo+ Pj4gICAgCXN0cnVjdCBkcm1fdm13X3N1cmZhY2VfYXJnICpyZXAgPSAmYXJnLT5yZXA7Cj4+PiAg ICAJc3RydWN0IHR0bV9vYmplY3RfZmlsZSAqdGZpbGUgPSB2bXdfZnByaXYoZmlsZV9wcml2KS0+ dGZpbGU7Cj4+PiArCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7Cj4+PiArCQkuaW50 ZXJydXB0aWJsZSA9IHRydWUsCj4+PiArCQkubm9fd2FpdF9ncHUgPSBmYWxzZQo+Pj4gKwl9Owo+ Pj4gICAgCWludCByZXQ7Cj4+PiAgICAJaW50IGksIGo7Cj4+PiAgICAJdWludDMyX3QgY3VyX2Jv X29mZnNldDsKPj4+IEBAIC03NDEsNyArNzQ1LDcgQEAgaW50IHZtd19zdXJmYWNlX2RlZmluZV9p b2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+Pj4gICAgCQlyZXR1cm4g cmV0Owo+Pj4gICAgCXJldCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jKHZtd19tZW1fZ2xvYihkZXZf cHJpdiksCj4+PiAtCQkJCSAgIHNpemUsIGZhbHNlLCB0cnVlKTsKPj4+ICsJCQkJICAgc2l6ZSwg JmN0eCk7Cj4+PiAgICAJaWYgKHVubGlrZWx5KHJldCAhPSAwKSkgewo+Pj4gICAgCQlpZiAocmV0 ICE9IC1FUkVTVEFSVFNZUykKPj4+ICAgIAkJCURSTV9FUlJPUigiT3V0IG9mIGdyYXBoaWNzIG1l bW9yeSBmb3Igc3VyZmFjZSIKPj4+IEBAIC0xNDc5LDYgKzE0ODMsMTAgQEAgaW50IHZtd19zdXJm YWNlX2diX3ByaXZfZGVmaW5lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+PiAgICB7Cj4+PiAg ICAJc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiA9IHZtd19wcml2KGRldik7Cj4+PiAgICAJ c3RydWN0IHZtd191c2VyX3N1cmZhY2UgKnVzZXJfc3JmOwo+Pj4gKwlzdHJ1Y3QgdHRtX29wZXJh dGlvbl9jdHggY3R4ID0gewo+Pj4gKwkJLmludGVycnVwdGlibGUgPSB0cnVlLAo+Pj4gKwkJLm5v X3dhaXRfZ3B1ID0gZmFsc2UKPj4+ICsJfTsKPj4+ICAgIAlzdHJ1Y3Qgdm13X3N1cmZhY2UgKnNy ZjsKPj4+ICAgIAlpbnQgcmV0Owo+Pj4gICAgCXUzMiBudW1fbGF5ZXJzOwo+Pj4gQEAgLTE1MjUs NyArMTUzMyw3IEBAIGludCB2bXdfc3VyZmFjZV9nYl9wcml2X2RlZmluZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAo+Pj4gICAgCQlyZXR1cm4gcmV0Owo+Pj4gICAgCXJldCA9IHR0bV9tZW1fZ2xv YmFsX2FsbG9jKHZtd19tZW1fZ2xvYihkZXZfcHJpdiksCj4+PiAtCQkJCSAgIHVzZXJfYWNjb3Vu dGluZ19zaXplLCBmYWxzZSwgdHJ1ZSk7Cj4+PiArCQkJCSAgIHVzZXJfYWNjb3VudGluZ19zaXpl LCAmY3R4KTsKPj4+ICAgIAlpZiAodW5saWtlbHkocmV0ICE9IDApKSB7Cj4+PiAgICAJCWlmIChy ZXQgIT0gLUVSRVNUQVJUU1lTKQo+Pj4gICAgCQkJRFJNX0VSUk9SKCJPdXQgb2YgZ3JhcGhpY3Mg bWVtb3J5IGZvciBzdXJmYWNlIgo+Pj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1f bWVtb3J5LmggYi9pbmNsdWRlL2RybS90dG0vdHRtX21lbW9yeS5oCj4+PiBpbmRleCA4NWYzYWQ2 Li43NTVjMTA3IDEwMDY0NAo+Pj4gLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9tZW1vcnkuaAo+ Pj4gKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9tZW1vcnkuaAo+Pj4gQEAgLTM1LDYgKzM1LDcg QEAKPj4+ICAgICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgo+Pj4gICAgI2luY2x1ZGUgPGxpbnV4 L2tvYmplY3QuaD4KPj4+ICAgICNpbmNsdWRlIDxsaW51eC9tbS5oPgo+Pj4gKyNpbmNsdWRlICJ0 dG1fYm9fYXBpLmgiCj4+PiAgICAvKioKPj4+ICAgICAqIHN0cnVjdCB0dG1fbWVtX2dsb2JhbCAt IEdsb2JhbCBtZW1vcnkgYWNjb3VudGluZyBzdHJ1Y3R1cmUuCj4+PiBAQCAtNzksNyArODAsNyBA QCBzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgewo+Pj4gICAgZXh0ZXJuIGludCB0dG1fbWVtX2dsb2Jh bF9pbml0KHN0cnVjdCB0dG1fbWVtX2dsb2JhbCAqZ2xvYik7Cj4+PiAgICBleHRlcm4gdm9pZCB0 dG1fbWVtX2dsb2JhbF9yZWxlYXNlKHN0cnVjdCB0dG1fbWVtX2dsb2JhbCAqZ2xvYik7Cj4+PiAg ICBleHRlcm4gaW50IHR0bV9tZW1fZ2xvYmFsX2FsbG9jKHN0cnVjdCB0dG1fbWVtX2dsb2JhbCAq Z2xvYiwgdWludDY0X3QgbWVtb3J5LAo+Pj4gLQkJCQlib29sIG5vX3dhaXQsIGJvb2wgaW50ZXJy dXB0aWJsZSk7Cj4+PiArCQkJCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KTsKPj4+ICAg IGV4dGVybiB2b2lkIHR0bV9tZW1fZ2xvYmFsX2ZyZWUoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpn bG9iLAo+Pj4gICAgCQkJCXVpbnQ2NF90IGFtb3VudCk7Cj4+PiAgICBleHRlcm4gaW50IHR0bV9t ZW1fZ2xvYmFsX2FsbG9jX3BhZ2Uoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iLAoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5n IGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==