From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sinclair Yeh Subject: Re: [PATCH 2/7] drm/ttm: use an operation ctx for ttm_mem_global_alloc Date: Wed, 24 Jan 2018 15:24:34 -0800 Message-ID: <20180124232346.GA59165@syeh-m02.local> 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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <15e3b956-8777-8fb1-2709-5409a756f0be-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: christian.koenig-5C7GfCeVMHo@public.gmane.org Cc: Thomas Hellstrom , Roger He , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org SGksCgpTb3JyeSwgSSd2ZSBiZWVuIG9uIGEgbGVhdmUuICBDYXRjaGluZyB1cCBvbiBlbWFpbHMu CgpJbiBjYXNlIHRoaXMgaXMgc3RpbGwgbm90IHlldCBtZXJnZWQsIG15IGNvbW1lbnQgaXMKYmUg Y29uc2lzdCB3aXRoIHRoZSBuZXcgdmFyaWFibGUgbmFtZS4gIEluIHNvbWUgY2FzZXMKaXQncyAi dHRtX29wdF9jdHgiLCBpbiBvdGhlcnMgaXQncyAiY3R4Ii4KCkkgcHJlZmVyIHR0bV9vcHRfY3R4 IGJlY2F1c2UgaXQncyBtb3JlIGRlc2NyaXB0aXZlLgoKQW5kIHllcywgc29tZSBkZXNjcmlwdGlv biBvbiB3aHkgdGhpcyBjaGFuZ2UgaXMgbmVjZXNzYXJ5IGluIHRoZQpjb21taXQgbWVzc2FnZSBp cyBuaWNlLCB0b28uCgpTaW5jbGFpcgoKT24gV2VkLCBEZWMgMjAsIDIwMTcgYXQgMDI6MzM6MzdQ TSArMDEwMCwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPiBDb21taXQgbWVzc2FnZSBuZWVkZWQh IFNvbWV0aGluZyBsaWtlOgo+IAo+IEZvcndhcmQgdGhlIG9wZXJhdGlvbiBjb250ZXh0IHRvIHR0 bV9tZW1fZ2xvYmFsX2FsbG9jIGFzIHdlbGwuCj4gCj4gQW0gMjAuMTIuMjAxNyB1bSAxMTozNCBz Y2hyaWViIFJvZ2VyIEhlOgo+ID4gQ2hhbmdlLUlkOiBJNTI3OWI1Y2QzNTYwYzQwODJiMDBmODIy MjE5NTc1YTVmOWMzODA4YQo+ID4gU2lnbmVkLW9mZi1ieTogUm9nZXIgSGUgPEhvbmdiby5IZUBh bWQuY29tPgo+IAo+IFdpdGggdGhlIGNvbW1pdCBtZXNzYWdlIGZpeGVkLCBwYXRjaCBpcyBSZXZp ZXdlZC1ieTogQ2hyaXN0aWFuIEvDtm5pZwo+IDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Lgo+ IAo+IEkgd291bGQgbGlrZSB0byBnZXQgYW4gcmIgb3IgYWIgZnJvbSBUaG9tYXMgYW5kL29yIFNp bmNsYWlyIGFzIHdlbGwsIHNpbmNlCj4gdGhpcyBpcyB0b3VjaGluZyBhIGxvdCBvZiB2bXdnZngg Y29kZS4KPiAKPiBSZWdhcmRzLAo+IENocmlzdGlhbi4KPiAKPiA+IC0tLQo+ID4gICBkcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9iby5jICAgICAgICAgICAgICAgICAgICB8ICAyICstCj4gPiAgIGRy aXZlcnMvZ3B1L2RybS90dG0vdHRtX21lbW9yeS5jICAgICAgICAgICAgICAgIHwgMTUgKysrKysr KysrLS0tLS0tCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX29iamVjdC5jICAgICAgICAg ICAgICAgIHwgMTMgKysrKysrKysrKy0tLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9iaW5kaW5nLmMgICAgICAgICB8ICA2ICsrKysrLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9idWZmZXIuYyAgICAgICAgICB8IDEzICsrKysrKysrKystLS0KPiA+ICAg ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY29udGV4dC5jICAgICAgICAgfCAgNiArKysr Ky0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY290YWJsZS5jICAgICAgICAg fCAgNiArKysrKy0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuYyAg ICAgICAgICAgfCAgNiArKysrKy0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf c2hhZGVyLmMgICAgICAgICAgfCAxOCArKysrKysrKysrKysrKystLS0KPiA+ICAgZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfc2ltcGxlX3Jlc291cmNlLmMgfCAgNiArKysrKy0KPiA+ICAg ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc28uYyAgICAgICAgICAgICAgfCAgNiArKysr Ky0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3VyZmFjZS5jICAgICAgICAg fCAxMiArKysrKysrKysrLS0KPiA+ICAgaW5jbHVkZS9kcm0vdHRtL3R0bV9tZW1vcnkuaCAgICAg ICAgICAgICAgICAgICAgfCAgMyArKy0KPiA+ICAgMTMgZmlsZXMgY2hhbmdlZCwgODcgaW5zZXJ0 aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9iby5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwo+ID4gaW5k ZXggZmE1N2FhOC4uYzU5ZjU3MiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0v dHRtX2JvLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKPiA+IEBAIC0x MTMzLDcgKzExMzMsNyBAQCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9ib19k ZXZpY2UgKmJkZXYsCj4gPiAgIAlzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgKm1lbV9nbG9iID0gYmRl di0+Z2xvYi0+bWVtX2dsb2I7Cj4gPiAgIAlib29sIGxvY2tlZDsKPiA+IC0JcmV0ID0gdHRtX21l bV9nbG9iYWxfYWxsb2MobWVtX2dsb2IsIGFjY19zaXplLCBmYWxzZSwgZmFsc2UpOwo+ID4gKwly ZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxvYyhtZW1fZ2xvYiwgYWNjX3NpemUsIGN0eCk7Cj4gPiAg IAlpZiAocmV0KSB7Cj4gPiAgIAkJcHJfZXJyKCJPdXQgb2Yga2VybmVsIG1lbW9yeVxuIik7Cj4g PiAgIAkJaWYgKGRlc3Ryb3kpCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90 dG1fbWVtb3J5LmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9tZW1vcnkuYwo+ID4gaW5kZXgg OTEzMGJkZi4uNTI1ZDNiNiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRt X21lbW9yeS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9tZW1vcnkuYwo+ID4g QEAgLTUwOCw3ICs1MDgsNyBAQCBzdGF0aWMgaW50IHR0bV9tZW1fZ2xvYmFsX3Jlc2VydmUoc3Ry dWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iLAo+ID4gICBzdGF0aWMgaW50IHR0bV9tZW1fZ2xvYmFs X2FsbG9jX3pvbmUoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iLAo+ID4gICAJCQkJICAgICBz dHJ1Y3QgdHRtX21lbV96b25lICpzaW5nbGVfem9uZSwKPiA+ICAgCQkJCSAgICAgdWludDY0X3Qg bWVtb3J5LAo+ID4gLQkJCQkgICAgIGJvb2wgbm9fd2FpdCwgYm9vbCBpbnRlcnJ1cHRpYmxlKQo+ ID4gKwkJCQkgICAgIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KQo+ID4gICB7Cj4gPiAg IAlpbnQgY291bnQgPSBUVE1fTUVNT1JZX0FMTE9DX1JFVFJJRVM7Cj4gPiBAQCAtNTE2LDcgKzUx Niw3IEBAIHN0YXRpYyBpbnQgdHRtX21lbV9nbG9iYWxfYWxsb2Nfem9uZShzdHJ1Y3QgdHRtX21l bV9nbG9iYWwgKmdsb2IsCj4gPiAgIAkJCQkJICAgICAgIHNpbmdsZV96b25lLAo+ID4gICAJCQkJ CSAgICAgICBtZW1vcnksIHRydWUpCj4gPiAgIAkJCSE9IDApKSB7Cj4gPiAtCQlpZiAobm9fd2Fp dCkKPiA+ICsJCWlmIChjdHgtPm5vX3dhaXRfZ3B1KQo+ID4gICAJCQlyZXR1cm4gLUVOT01FTTsK PiA+ICAgCQlpZiAodW5saWtlbHkoY291bnQtLSA9PSAwKSkKPiA+ICAgCQkJcmV0dXJuIC1FTk9N RU07Cj4gPiBAQCAtNTI3LDE1ICs1MjcsMTQgQEAgc3RhdGljIGludCB0dG1fbWVtX2dsb2JhbF9h bGxvY196b25lKHN0cnVjdCB0dG1fbWVtX2dsb2JhbCAqZ2xvYiwKPiA+ICAgfQo+ID4gICBpbnQg dHRtX21lbV9nbG9iYWxfYWxsb2Moc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iLCB1aW50NjRf dCBtZW1vcnksCj4gPiAtCQkJIGJvb2wgbm9fd2FpdCwgYm9vbCBpbnRlcnJ1cHRpYmxlKQo+ID4g KwkJCSBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCkKPiA+ICAgewo+ID4gICAJLyoqCj4g PiAgIAkgKiBOb3JtYWwgYWxsb2NhdGlvbnMgb2Yga2VybmVsIG1lbW9yeSBhcmUgcmVnaXN0ZXJl ZCBpbgo+ID4gICAJICogYWxsIHpvbmVzLgo+ID4gICAJICovCj4gPiAtCXJldHVybiB0dG1fbWVt X2dsb2JhbF9hbGxvY196b25lKGdsb2IsIE5VTEwsIG1lbW9yeSwgbm9fd2FpdCwKPiA+IC0JCQkJ CSBpbnRlcnJ1cHRpYmxlKTsKPiA+ICsJcmV0dXJuIHR0bV9tZW1fZ2xvYmFsX2FsbG9jX3pvbmUo Z2xvYiwgTlVMTCwgbWVtb3J5LCBjdHgpOwo+ID4gICB9Cj4gPiAgIEVYUE9SVF9TWU1CT0wodHRt X21lbV9nbG9iYWxfYWxsb2MpOwo+ID4gQEAgLTU0NCw2ICs1NDMsMTAgQEAgaW50IHR0bV9tZW1f Z2xvYmFsX2FsbG9jX3BhZ2Uoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iLAo+ID4gICB7Cj4g PiAgIAlzdHJ1Y3QgdHRtX21lbV96b25lICp6b25lID0gTlVMTDsKPiA+ICsJc3RydWN0IHR0bV9v cGVyYXRpb25fY3R4IGN0eCA9IHsKPiA+ICsJCS5pbnRlcnJ1cHRpYmxlID0gZmFsc2UsCj4gPiAr CQkubm9fd2FpdF9ncHUgPSBmYWxzZQo+ID4gKwl9Owo+ID4gICAJLyoqCj4gPiAgIAkgKiBQYWdl IGFsbG9jYXRpb25zIG1heSBiZSByZWdpc3RlZCBpbiBhIHNpbmdsZSB6b25lCj4gPiBAQCAtNTU3 LDcgKzU2MCw3IEBAIGludCB0dG1fbWVtX2dsb2JhbF9hbGxvY19wYWdlKHN0cnVjdCB0dG1fbWVt X2dsb2JhbCAqZ2xvYiwKPiA+ICAgCWlmIChnbG9iLT56b25lX2RtYTMyICYmIHBhZ2VfdG9fcGZu KHBhZ2UpID4gMHgwMDEwMDAwMFVMKQo+ID4gICAJCXpvbmUgPSBnbG9iLT56b25lX2tlcm5lbDsK PiA+ICAgI2VuZGlmCj4gPiAtCXJldHVybiB0dG1fbWVtX2dsb2JhbF9hbGxvY196b25lKGdsb2Is IHpvbmUsIHNpemUsIGZhbHNlLCBmYWxzZSk7Cj4gPiArCXJldHVybiB0dG1fbWVtX2dsb2JhbF9h bGxvY196b25lKGdsb2IsIHpvbmUsIHNpemUsICZjdHgpOwo+ID4gICB9Cj4gPiAgIHZvaWQgdHRt X21lbV9nbG9iYWxfZnJlZV9wYWdlKHN0cnVjdCB0dG1fbWVtX2dsb2JhbCAqZ2xvYiwgc3RydWN0 IHBhZ2UgKnBhZ2UsCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fb2Jq ZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9vYmplY3QuYwo+ID4gaW5kZXggMjZhN2Fk MC4uMWFhMmJhYSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX29iamVj dC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9vYmplY3QuYwo+ID4gQEAgLTMy NSw2ICszMjUsMTAgQEAgaW50IHR0bV9yZWZfb2JqZWN0X2FkZChzdHJ1Y3QgdHRtX29iamVjdF9m aWxlICp0ZmlsZSwKPiA+ICAgCXN0cnVjdCB0dG1fcmVmX29iamVjdCAqcmVmOwo+ID4gICAJc3Ry dWN0IGRybV9oYXNoX2l0ZW0gKmhhc2g7Cj4gPiAgIAlzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgKm1l bV9nbG9iID0gdGZpbGUtPnRkZXYtPm1lbV9nbG9iOwo+ID4gKwlzdHJ1Y3QgdHRtX29wZXJhdGlv bl9jdHggY3R4ID0gewo+ID4gKwkJLmludGVycnVwdGlibGUgPSBmYWxzZSwKPiA+ICsJCS5ub193 YWl0X2dwdSA9IGZhbHNlCj4gPiArCX07Cj4gPiAgIAlpbnQgcmV0ID0gLUVJTlZBTDsKPiA+ICAg CWlmIChiYXNlLT50ZmlsZSAhPSB0ZmlsZSAmJiAhYmFzZS0+c2hhcmVhYmxlKQo+ID4gQEAgLTM1 MCw3ICszNTQsNyBAQCBpbnQgdHRtX3JlZl9vYmplY3RfYWRkKHN0cnVjdCB0dG1fb2JqZWN0X2Zp bGUgKnRmaWxlLAo+ID4gICAJCQlyZXR1cm4gLUVQRVJNOwo+ID4gICAJCXJldCA9IHR0bV9tZW1f Z2xvYmFsX2FsbG9jKG1lbV9nbG9iLCBzaXplb2YoKnJlZiksCj4gPiAtCQkJCQkgICBmYWxzZSwg ZmFsc2UpOwo+ID4gKwkJCQkJICAgJmN0eCk7Cj4gPiAgIAkJaWYgKHVubGlrZWx5KHJldCAhPSAw KSkKPiA+ICAgCQkJcmV0dXJuIHJldDsKPiA+ICAgCQlyZWYgPSBrbWFsbG9jKHNpemVvZigqcmVm KSwgR0ZQX0tFUk5FTCk7Cj4gPiBAQCAtNjg2LDcgKzY5MCwxMCBAQCBpbnQgdHRtX3ByaW1lX2hh bmRsZV90b19mZChzdHJ1Y3QgdHRtX29iamVjdF9maWxlICp0ZmlsZSwKPiA+ICAgCWRtYV9idWYg PSBwcmltZS0+ZG1hX2J1ZjsKPiA+ICAgCWlmICghZG1hX2J1ZiB8fCAhZ2V0X2RtYV9idWZfdW5s ZXNzX2Rvb21lZChkbWFfYnVmKSkgewo+ID4gICAJCURFRklORV9ETUFfQlVGX0VYUE9SVF9JTkZP KGV4cF9pbmZvKTsKPiA+IC0KPiA+ICsJCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7 Cj4gPiArCQkJLmludGVycnVwdGlibGUgPSB0cnVlLAo+ID4gKwkJCS5ub193YWl0X2dwdSA9IGZh bHNlCj4gPiArCQl9Owo+ID4gICAJCWV4cF9pbmZvLm9wcyA9ICZ0ZGV2LT5vcHM7Cj4gPiAgIAkJ ZXhwX2luZm8uc2l6ZSA9IHByaW1lLT5zaXplOwo+ID4gICAJCWV4cF9pbmZvLmZsYWdzID0gZmxh Z3M7Cj4gPiBAQCAtNjk2LDcgKzcwMyw3IEBAIGludCB0dG1fcHJpbWVfaGFuZGxlX3RvX2ZkKHN0 cnVjdCB0dG1fb2JqZWN0X2ZpbGUgKnRmaWxlLAo+ID4gICAJCSAqIE5lZWQgdG8gY3JlYXRlIGEg bmV3IGRtYV9idWYsIHdpdGggbWVtb3J5IGFjY291bnRpbmcuCj4gPiAgIAkJICovCj4gPiAgIAkJ cmV0ID0gdHRtX21lbV9nbG9iYWxfYWxsb2ModGRldi0+bWVtX2dsb2IsIHRkZXYtPmRtYV9idWZf c2l6ZSwKPiA+IC0JCQkJCSAgIGZhbHNlLCB0cnVlKTsKPiA+ICsJCQkJCSAgICZjdHgpOwo+ID4g ICAJCWlmICh1bmxpa2VseShyZXQgIT0gMCkpIHsKPiA+ICAgCQkJbXV0ZXhfdW5sb2NrKCZwcmlt ZS0+bXV0ZXgpOwo+ID4gICAJCQlnb3RvIG91dF91bnJlZjsKPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iaW5kaW5nLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9iaW5kaW5nLmMKPiA+IGluZGV4IDljNDJlOTYuLjU1ZDMyYWUgMTAwNjQ0Cj4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9iaW5kaW5nLmMKPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JpbmRpbmcuYwo+ID4gQEAgLTEyMDIsMTAg KzEyMDIsMTQgQEAgc3RydWN0IHZtd19jdHhfYmluZGluZ19zdGF0ZSAqCj4gPiAgIHZtd19iaW5k aW5nX3N0YXRlX2FsbG9jKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgIHsKPiA+ ICAgCXN0cnVjdCB2bXdfY3R4X2JpbmRpbmdfc3RhdGUgKmNiczsKPiA+ICsJc3RydWN0IHR0bV9v cGVyYXRpb25fY3R4IGN0eCA9IHsKPiA+ICsJCS5pbnRlcnJ1cHRpYmxlID0gZmFsc2UsCj4gPiAr CQkubm9fd2FpdF9ncHUgPSBmYWxzZQo+ID4gKwl9Owo+ID4gICAJaW50IHJldDsKPiA+ICAgCXJl dCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jKHZtd19tZW1fZ2xvYihkZXZfcHJpdiksIHNpemVvZigq Y2JzKSwKPiA+IC0JCQkJICAgZmFsc2UsIGZhbHNlKTsKPiA+ICsJCQkJJmN0eCk7Cj4gPiAgIAlp ZiAocmV0KQo+ID4gICAJCXJldHVybiBFUlJfUFRSKHJldCk7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9idWZmZXIuYwo+ID4gaW5kZXggYzcwNTYzMi4uZWY5NzU0MiAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2J1ZmZlci5jCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9idWZmZXIuYwo+ID4gQEAgLTM5NCw2ICszOTQs MTAgQEAgc3RhdGljIGludCB2bXdfdHRtX21hcF9kbWEoc3RydWN0IHZtd190dG1fdHQgKnZtd190 dCkKPiA+ICAgCXN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYgPSB2bXdfdHQtPmRldl9wcml2 Owo+ID4gICAJc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iID0gdm13X21lbV9nbG9iKGRldl9w cml2KTsKPiA+ICAgCXN0cnVjdCB2bXdfc2dfdGFibGUgKnZzZ3QgPSAmdm13X3R0LT52c2d0Owo+ ID4gKwlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0gewo+ID4gKwkJLmludGVycnVwdGli bGUgPSB0cnVlLAo+ID4gKwkJLm5vX3dhaXRfZ3B1ID0gZmFsc2UKPiA+ICsJfTsKPiA+ICAgCXN0 cnVjdCB2bXdfcGl0ZXIgaXRlcjsKPiA+ICAgCWRtYV9hZGRyX3Qgb2xkOwo+ID4gICAJaW50IHJl dCA9IDA7Cj4gPiBAQCAtNDE3LDggKzQyMSw3IEBAIHN0YXRpYyBpbnQgdm13X3R0bV9tYXBfZG1h KHN0cnVjdCB2bXdfdHRtX3R0ICp2bXdfdHQpCj4gPiAgIAkJCXNndF9zaXplID0gdHRtX3JvdW5k X3BvdChzaXplb2Yoc3RydWN0IHNnX3RhYmxlKSk7Cj4gPiAgIAkJfQo+ID4gICAJCXZtd190dC0+ c2dfYWxsb2Nfc2l6ZSA9IHNndF9zaXplICsgc2dsX3NpemUgKiB2c2d0LT5udW1fcGFnZXM7Cj4g PiAtCQlyZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxvYyhnbG9iLCB2bXdfdHQtPnNnX2FsbG9jX3Np emUsIGZhbHNlLAo+ID4gLQkJCQkJICAgdHJ1ZSk7Cj4gPiArCQlyZXQgPSB0dG1fbWVtX2dsb2Jh bF9hbGxvYyhnbG9iLCB2bXdfdHQtPnNnX2FsbG9jX3NpemUsICZjdHgpOwo+ID4gICAJCWlmICh1 bmxpa2VseShyZXQgIT0gMCkpCj4gPiAgIAkJCXJldHVybiByZXQ7Cj4gPiBAQCAtNjM4LDYgKzY0 MSwxMCBAQCBzdGF0aWMgaW50IHZtd190dG1fcG9wdWxhdGUoc3RydWN0IHR0bV90dCAqdHRtKQo+ ID4gICAJCWNvbnRhaW5lcl9vZih0dG0sIHN0cnVjdCB2bXdfdHRtX3R0LCBkbWFfdHRtLnR0bSk7 Cj4gPiAgIAlzdHJ1Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2ID0gdm13X3R0LT5kZXZfcHJpdjsK PiA+ICAgCXN0cnVjdCB0dG1fbWVtX2dsb2JhbCAqZ2xvYiA9IHZtd19tZW1fZ2xvYihkZXZfcHJp dik7Cj4gPiArCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7Cj4gPiArCQkuaW50ZXJy dXB0aWJsZSA9IHRydWUsCj4gPiArCQkubm9fd2FpdF9ncHUgPSBmYWxzZQo+ID4gKwl9Owo+ID4g ICAJaW50IHJldDsKPiA+ICAgCWlmICh0dG0tPnN0YXRlICE9IHR0X3VucG9wdWxhdGVkKQo+ID4g QEAgLTY0Niw3ICs2NTMsNyBAQCBzdGF0aWMgaW50IHZtd190dG1fcG9wdWxhdGUoc3RydWN0IHR0 bV90dCAqdHRtKQo+ID4gICAJaWYgKGRldl9wcml2LT5tYXBfbW9kZSA9PSB2bXdfZG1hX2FsbG9j X2NvaGVyZW50KSB7Cj4gPiAgIAkJc2l6ZV90IHNpemUgPQo+ID4gICAJCQl0dG1fcm91bmRfcG90 KHR0bS0+bnVtX3BhZ2VzICogc2l6ZW9mKGRtYV9hZGRyX3QpKTsKPiA+IC0JCXJldCA9IHR0bV9t ZW1fZ2xvYmFsX2FsbG9jKGdsb2IsIHNpemUsIGZhbHNlLCB0cnVlKTsKPiA+ICsJCXJldCA9IHR0 bV9tZW1fZ2xvYmFsX2FsbG9jKGdsb2IsIHNpemUsICZjdHgpOwo+ID4gICAJCWlmICh1bmxpa2Vs eShyZXQgIT0gMCkpCj4gPiAgIAkJCXJldHVybiByZXQ7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY29udGV4dC5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfY29udGV4dC5jCj4gPiBpbmRleCA0MjEyYjNlLi4zNzY3YWMzIDEwMDY0NAo+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY29udGV4dC5jCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9jb250ZXh0LmMKPiA+IEBAIC03NDYsNiArNzQ2 LDEwIEBAIHN0YXRpYyBpbnQgdm13X2NvbnRleHRfZGVmaW5lKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsCj4gPiAgIAlzdHJ1Y3Qgdm13X3Jlc291cmNlICp0bXA7Cj4gPiAgIAlz dHJ1Y3QgZHJtX3Ztd19jb250ZXh0X2FyZyAqYXJnID0gKHN0cnVjdCBkcm1fdm13X2NvbnRleHRf YXJnICopZGF0YTsKPiA+ICAgCXN0cnVjdCB0dG1fb2JqZWN0X2ZpbGUgKnRmaWxlID0gdm13X2Zw cml2KGZpbGVfcHJpdiktPnRmaWxlOwo+ID4gKwlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggdHRt X29wdF9jdHggPSB7Cj4gPiArCQkuaW50ZXJydXB0aWJsZSA9IHRydWUsCj4gPiArCQkubm9fd2Fp dF9ncHUgPSBmYWxzZQo+ID4gKwl9Owo+ID4gICAJaW50IHJldDsKPiA+ICAgCWlmICghZGV2X3By aXYtPmhhc19keCAmJiBkeCkgewo+ID4gQEAgLTc2OCw3ICs3NzIsNyBAQCBzdGF0aWMgaW50IHZt d19jb250ZXh0X2RlZmluZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ID4g ICAJcmV0ID0gdHRtX21lbV9nbG9iYWxfYWxsb2Modm13X21lbV9nbG9iKGRldl9wcml2KSwKPiA+ ICAgCQkJCSAgIHZtd191c2VyX2NvbnRleHRfc2l6ZSwKPiA+IC0JCQkJICAgZmFsc2UsIHRydWUp Owo+ID4gKwkJCQkgICAmdHRtX29wdF9jdHgpOwo+ID4gICAJaWYgKHVubGlrZWx5KHJldCAhPSAw KSkgewo+ID4gICAJCWlmIChyZXQgIT0gLUVSRVNUQVJUU1lTKQo+ID4gICAJCQlEUk1fRVJST1Io Ik91dCBvZiBncmFwaGljcyBtZW1vcnkgZm9yIGNvbnRleHQiCj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY290YWJsZS5jIGIvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfY290YWJsZS5jCj4gPiBpbmRleCA5MmRmMGIwLi5jYmY1NGVhIDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfY290YWJsZS5jCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9jb3RhYmxlLmMKPiA+IEBAIC01NzMsNiAr NTczLDEwIEBAIHN0cnVjdCB2bXdfcmVzb3VyY2UgKnZtd19jb3RhYmxlX2FsbG9jKHN0cnVjdCB2 bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgIAkJCQkgICAgICAgdTMyIHR5cGUpCj4gPiAgIHsK PiA+ICAgCXN0cnVjdCB2bXdfY290YWJsZSAqdmNvdGJsOwo+ID4gKwlzdHJ1Y3QgdHRtX29wZXJh dGlvbl9jdHggdHRtX29wdF9jdHggPSB7Cj4gPiArCQkuaW50ZXJydXB0aWJsZSA9IHRydWUsCj4g PiArCQkubm9fd2FpdF9ncHUgPSBmYWxzZQo+ID4gKwl9Owo+ID4gICAJaW50IHJldDsKPiA+ICAg CXUzMiBudW1fZW50cmllczsKPiA+IEBAIC01ODAsNyArNTg0LDcgQEAgc3RydWN0IHZtd19yZXNv dXJjZSAqdm13X2NvdGFibGVfYWxsb2Moc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiwKPiA+ ICAgCQljb3RhYmxlX2FjY19zaXplID0gdHRtX3JvdW5kX3BvdChzaXplb2Yoc3RydWN0IHZtd19j b3RhYmxlKSk7Cj4gPiAgIAlyZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxvYyh2bXdfbWVtX2dsb2Io ZGV2X3ByaXYpLAo+ID4gLQkJCQkgICBjb3RhYmxlX2FjY19zaXplLCBmYWxzZSwgdHJ1ZSk7Cj4g PiArCQkJCSAgIGNvdGFibGVfYWNjX3NpemUsICZ0dG1fb3B0X2N0eCk7Cj4gPiAgIAlpZiAodW5s aWtlbHkocmV0KSkKPiA+ICAgCQlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9mZW5jZS5jCj4gPiBpbmRleCBkNmIxYzUwLi42YzVjNzVjIDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuYwo+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuYwo+ID4gQEAgLTU4OCw2ICs1ODgs MTAgQEAgaW50IHZtd191c2VyX2ZlbmNlX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJp diwKPiA+ICAgCXN0cnVjdCB2bXdfdXNlcl9mZW5jZSAqdWZlbmNlOwo+ID4gICAJc3RydWN0IHZt d19mZW5jZV9vYmogKnRtcDsKPiA+ICAgCXN0cnVjdCB0dG1fbWVtX2dsb2JhbCAqbWVtX2dsb2Ig PSB2bXdfbWVtX2dsb2IoZm1hbi0+ZGV2X3ByaXYpOwo+ID4gKwlzdHJ1Y3QgdHRtX29wZXJhdGlv bl9jdHggY3R4ID0gewo+ID4gKwkJLmludGVycnVwdGlibGUgPSBmYWxzZSwKPiA+ICsJCS5ub193 YWl0X2dwdSA9IGZhbHNlCj4gPiArCX07Cj4gPiAgIAlpbnQgcmV0Owo+ID4gICAJLyoKPiA+IEBA IC01OTYsNyArNjAwLDcgQEAgaW50IHZtd191c2VyX2ZlbmNlX2NyZWF0ZShzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGVfcHJpdiwKPiA+ICAgCSAqLwo+ID4gICAJcmV0ID0gdHRtX21lbV9nbG9iYWxfYWxs b2MobWVtX2dsb2IsIGZtYW4tPnVzZXJfZmVuY2Vfc2l6ZSwKPiA+IC0JCQkJICAgZmFsc2UsIGZh bHNlKTsKPiA+ICsJCQkJICAgJmN0eCk7Cj4gPiAgIAlpZiAodW5saWtlbHkocmV0ICE9IDApKQo+ ID4gICAJCXJldHVybiByZXQ7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dm eC92bXdnZnhfc2hhZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zaGFkZXIu Ywo+ID4gaW5kZXggMDA0ZTE4Yi4uNzNiOGU5YSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X3NoYWRlci5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9zaGFkZXIuYwo+ID4gQEAgLTYwNyw2ICs2MDcsMTAgQEAgaW50IHZtd19keF9z aGFkZXJfYWRkKHN0cnVjdCB2bXdfY21kYnVmX3Jlc19tYW5hZ2VyICptYW4sCj4gPiAgIAlzdHJ1 Y3Qgdm13X2R4X3NoYWRlciAqc2hhZGVyOwo+ID4gICAJc3RydWN0IHZtd19yZXNvdXJjZSAqcmVz Owo+ID4gICAJc3RydWN0IHZtd19wcml2YXRlICpkZXZfcHJpdiA9IGN0eC0+ZGV2X3ByaXY7Cj4g PiArCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCB0dG1fb3B0X2N0eCA9IHsKPiA+ICsJCS5pbnRl cnJ1cHRpYmxlID0gdHJ1ZSwKPiA+ICsJCS5ub193YWl0X2dwdSA9IGZhbHNlCj4gPiArCX07Cj4g PiAgIAlpbnQgcmV0Owo+ID4gICAJaWYgKCF2bXdfc2hhZGVyX2R4X3NpemUpCj4gPiBAQCAtNjE2 LDcgKzYyMCw3IEBAIGludCB2bXdfZHhfc2hhZGVyX2FkZChzdHJ1Y3Qgdm13X2NtZGJ1Zl9yZXNf bWFuYWdlciAqbWFuLAo+ID4gICAJCXJldHVybiAtRUlOVkFMOwo+ID4gICAJcmV0ID0gdHRtX21l bV9nbG9iYWxfYWxsb2Modm13X21lbV9nbG9iKGRldl9wcml2KSwgdm13X3NoYWRlcl9keF9zaXpl LAo+ID4gLQkJCQkgICBmYWxzZSwgdHJ1ZSk7Cj4gPiArCQkJCSAgICZ0dG1fb3B0X2N0eCk7Cj4g PiAgIAlpZiAocmV0KSB7Cj4gPiAgIAkJaWYgKHJldCAhPSAtRVJFU1RBUlRTWVMpCj4gPiAgIAkJ CURSTV9FUlJPUigiT3V0IG9mIGdyYXBoaWNzIG1lbW9yeSBmb3Igc2hhZGVyICIKPiA+IEBAIC03 MzAsNiArNzM0LDEwIEBAIHN0YXRpYyBpbnQgdm13X3VzZXJfc2hhZGVyX2FsbG9jKHN0cnVjdCB2 bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgIHsKPiA+ICAgCXN0cnVjdCB2bXdfdXNlcl9zaGFk ZXIgKnVzaGFkZXI7Cj4gPiAgIAlzdHJ1Y3Qgdm13X3Jlc291cmNlICpyZXMsICp0bXA7Cj4gPiAr CXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7Cj4gPiArCQkuaW50ZXJydXB0aWJsZSA9 IHRydWUsCj4gPiArCQkubm9fd2FpdF9ncHUgPSBmYWxzZQo+ID4gKwl9Owo+ID4gICAJaW50IHJl dDsKPiA+ICAgCS8qCj4gPiBAQCAtNzQyLDcgKzc1MCw3IEBAIHN0YXRpYyBpbnQgdm13X3VzZXJf c2hhZGVyX2FsbG9jKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgIAlyZXQgPSB0 dG1fbWVtX2dsb2JhbF9hbGxvYyh2bXdfbWVtX2dsb2IoZGV2X3ByaXYpLAo+ID4gICAJCQkJICAg dm13X3VzZXJfc2hhZGVyX3NpemUsCj4gPiAtCQkJCSAgIGZhbHNlLCB0cnVlKTsKPiA+ICsJCQkJ ICAgJmN0eCk7Cj4gPiAgIAlpZiAodW5saWtlbHkocmV0ICE9IDApKSB7Cj4gPiAgIAkJaWYgKHJl dCAhPSAtRVJFU1RBUlRTWVMpCj4gPiAgIAkJCURSTV9FUlJPUigiT3V0IG9mIGdyYXBoaWNzIG1l bW9yeSBmb3Igc2hhZGVyICIKPiA+IEBAIC04MDAsNiArODA4LDEwIEBAIHN0YXRpYyBzdHJ1Y3Qg dm13X3Jlc291cmNlICp2bXdfc2hhZGVyX2FsbG9jKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3By aXYsCj4gPiAgIHsKPiA+ICAgCXN0cnVjdCB2bXdfc2hhZGVyICpzaGFkZXI7Cj4gPiAgIAlzdHJ1 Y3Qgdm13X3Jlc291cmNlICpyZXM7Cj4gPiArCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHgg PSB7Cj4gPiArCQkuaW50ZXJydXB0aWJsZSA9IHRydWUsCj4gPiArCQkubm9fd2FpdF9ncHUgPSBm YWxzZQo+ID4gKwl9Owo+ID4gICAJaW50IHJldDsKPiA+ICAgCS8qCj4gPiBAQCAtODEyLDcgKzgy NCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgdm13X3Jlc291cmNlICp2bXdfc2hhZGVyX2FsbG9jKHN0cnVj dCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgIAlyZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxv Yyh2bXdfbWVtX2dsb2IoZGV2X3ByaXYpLAo+ID4gICAJCQkJICAgdm13X3NoYWRlcl9zaXplLAo+ ID4gLQkJCQkgICBmYWxzZSwgdHJ1ZSk7Cj4gPiArCQkJCSAgICZjdHgpOwo+ID4gICAJaWYgKHVu bGlrZWx5KHJldCAhPSAwKSkgewo+ID4gICAJCWlmIChyZXQgIT0gLUVSRVNUQVJUU1lTKQo+ID4g ICAJCQlEUk1fRVJST1IoIk91dCBvZiBncmFwaGljcyBtZW1vcnkgZm9yIHNoYWRlciAiCj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc2ltcGxlX3Jlc291cmNl LmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zaW1wbGVfcmVzb3VyY2UuYwo+ID4g aW5kZXggMDUxZDNiMy4uYTBjYjMxMCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92 bXdnZngvdm13Z2Z4X3NpbXBsZV9yZXNvdXJjZS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9zaW1wbGVfcmVzb3VyY2UuYwo+ID4gQEAgLTE0OSw2ICsxNDksMTAgQEAg dm13X3NpbXBsZV9yZXNvdXJjZV9jcmVhdGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dm9pZCAqZGF0YSwKPiA+ICAgCXN0cnVjdCB2bXdfcmVzb3VyY2UgKnJlczsKPiA+ICAgCXN0cnVj dCB2bXdfcmVzb3VyY2UgKnRtcDsKPiA+ICAgCXN0cnVjdCB0dG1fb2JqZWN0X2ZpbGUgKnRmaWxl ID0gdm13X2Zwcml2KGZpbGVfcHJpdiktPnRmaWxlOwo+ID4gKwlzdHJ1Y3QgdHRtX29wZXJhdGlv bl9jdHggY3R4ID0gewo+ID4gKwkJLmludGVycnVwdGlibGUgPSB0cnVlLAo+ID4gKwkJLm5vX3dh aXRfZ3B1ID0gZmFsc2UKPiA+ICsJfTsKPiA+ICAgCXNpemVfdCBhbGxvY19zaXplOwo+ID4gICAJ c2l6ZV90IGFjY291bnRfc2l6ZTsKPiA+ICAgCWludCByZXQ7Cj4gPiBAQCAtMTYyLDcgKzE2Niw3 IEBAIHZtd19zaW1wbGVfcmVzb3VyY2VfY3JlYXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsCj4gPiAgIAkJcmV0dXJuIHJldDsKPiA+ICAgCXJldCA9IHR0bV9tZW1f Z2xvYmFsX2FsbG9jKHZtd19tZW1fZ2xvYihkZXZfcHJpdiksIGFjY291bnRfc2l6ZSwKPiA+IC0J CQkJICAgZmFsc2UsIHRydWUpOwo+ID4gKwkJCQkgICAmY3R4KTsKPiA+ICAgCXR0bV9yZWFkX3Vu bG9jaygmZGV2X3ByaXYtPnJlc2VydmF0aW9uX3NlbSk7Cj4gPiAgIAlpZiAocmV0KSB7Cj4gPiAg IAkJaWYgKHJldCAhPSAtRVJFU1RBUlRTWVMpCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC92bXdnZnhfc28uYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Nv LmMKPiA+IGluZGV4IDVhNzNlZWIuLmQzNTczYzMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9zby5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9zby5jCj4gPiBAQCAtMzI5LDYgKzMyOSwxMCBAQCBpbnQgdm13X3ZpZXdfYWRkKHN0 cnVjdCB2bXdfY21kYnVmX3Jlc19tYW5hZ2VyICptYW4sCj4gPiAgIAlzdHJ1Y3Qgdm13X3ByaXZh dGUgKmRldl9wcml2ID0gY3R4LT5kZXZfcHJpdjsKPiA+ICAgCXN0cnVjdCB2bXdfcmVzb3VyY2Ug KnJlczsKPiA+ICAgCXN0cnVjdCB2bXdfdmlldyAqdmlldzsKPiA+ICsJc3RydWN0IHR0bV9vcGVy YXRpb25fY3R4IHR0bV9vcHRfY3R4ID0gewo+ID4gKwkJLmludGVycnVwdGlibGUgPSB0cnVlLAo+ ID4gKwkJLm5vX3dhaXRfZ3B1ID0gZmFsc2UKPiA+ICsJfTsKPiA+ICAgCXNpemVfdCBzaXplOwo+ ID4gICAJaW50IHJldDsKPiA+IEBAIC0zNDUsNyArMzQ5LDcgQEAgaW50IHZtd192aWV3X2FkZChz dHJ1Y3Qgdm13X2NtZGJ1Zl9yZXNfbWFuYWdlciAqbWFuLAo+ID4gICAJc2l6ZSA9IG9mZnNldG9m KHN0cnVjdCB2bXdfdmlldywgY21kKSArIGNtZF9zaXplOwo+ID4gLQlyZXQgPSB0dG1fbWVtX2ds b2JhbF9hbGxvYyh2bXdfbWVtX2dsb2IoZGV2X3ByaXYpLCBzaXplLCBmYWxzZSwgdHJ1ZSk7Cj4g PiArCXJldCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jKHZtd19tZW1fZ2xvYihkZXZfcHJpdiksIHNp emUsICZ0dG1fb3B0X2N0eCk7Cj4gPiAgIAlpZiAocmV0KSB7Cj4gPiAgIAkJaWYgKHJldCAhPSAt RVJFU1RBUlRTWVMpCj4gPiAgIAkJCURSTV9FUlJPUigiT3V0IG9mIGdyYXBoaWNzIG1lbW9yeSBm b3IgdmlldyIKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9z dXJmYWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdXJmYWNlLmMKPiA+IGlu ZGV4IDZhYzA5NGUuLmRiMWJiMTYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF9zdXJmYWNlLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X3N1cmZhY2UuYwo+ID4gQEAgLTcwMCw2ICs3MDAsMTAgQEAgaW50IHZtd19zdXJmYWNlX2Rl ZmluZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ID4gICAJc3Ry dWN0IGRybV92bXdfc3VyZmFjZV9jcmVhdGVfcmVxICpyZXEgPSAmYXJnLT5yZXE7Cj4gPiAgIAlz dHJ1Y3QgZHJtX3Ztd19zdXJmYWNlX2FyZyAqcmVwID0gJmFyZy0+cmVwOwo+ID4gICAJc3RydWN0 IHR0bV9vYmplY3RfZmlsZSAqdGZpbGUgPSB2bXdfZnByaXYoZmlsZV9wcml2KS0+dGZpbGU7Cj4g PiArCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBjdHggPSB7Cj4gPiArCQkuaW50ZXJydXB0aWJs ZSA9IHRydWUsCj4gPiArCQkubm9fd2FpdF9ncHUgPSBmYWxzZQo+ID4gKwl9Owo+ID4gICAJaW50 IHJldDsKPiA+ICAgCWludCBpLCBqOwo+ID4gICAJdWludDMyX3QgY3VyX2JvX29mZnNldDsKPiA+ IEBAIC03NDEsNyArNzQ1LDcgQEAgaW50IHZtd19zdXJmYWNlX2RlZmluZV9pb2N0bChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ID4gICAJCXJldHVybiByZXQ7Cj4gPiAgIAly ZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxvYyh2bXdfbWVtX2dsb2IoZGV2X3ByaXYpLAo+ID4gLQkJ CQkgICBzaXplLCBmYWxzZSwgdHJ1ZSk7Cj4gPiArCQkJCSAgIHNpemUsICZjdHgpOwo+ID4gICAJ aWYgKHVubGlrZWx5KHJldCAhPSAwKSkgewo+ID4gICAJCWlmIChyZXQgIT0gLUVSRVNUQVJUU1lT KQo+ID4gICAJCQlEUk1fRVJST1IoIk91dCBvZiBncmFwaGljcyBtZW1vcnkgZm9yIHN1cmZhY2Ui Cj4gPiBAQCAtMTQ3OSw2ICsxNDgzLDEwIEBAIGludCB2bXdfc3VyZmFjZV9nYl9wcml2X2RlZmlu ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gICB7Cj4gPiAgIAlzdHJ1Y3Qgdm13X3ByaXZh dGUgKmRldl9wcml2ID0gdm13X3ByaXYoZGV2KTsKPiA+ICAgCXN0cnVjdCB2bXdfdXNlcl9zdXJm YWNlICp1c2VyX3NyZjsKPiA+ICsJc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4IGN0eCA9IHsKPiA+ ICsJCS5pbnRlcnJ1cHRpYmxlID0gdHJ1ZSwKPiA+ICsJCS5ub193YWl0X2dwdSA9IGZhbHNlCj4g PiArCX07Cj4gPiAgIAlzdHJ1Y3Qgdm13X3N1cmZhY2UgKnNyZjsKPiA+ICAgCWludCByZXQ7Cj4g PiAgIAl1MzIgbnVtX2xheWVyczsKPiA+IEBAIC0xNTI1LDcgKzE1MzMsNyBAQCBpbnQgdm13X3N1 cmZhY2VfZ2JfcHJpdl9kZWZpbmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICAgCQlyZXR1 cm4gcmV0Owo+ID4gICAJcmV0ID0gdHRtX21lbV9nbG9iYWxfYWxsb2Modm13X21lbV9nbG9iKGRl dl9wcml2KSwKPiA+IC0JCQkJICAgdXNlcl9hY2NvdW50aW5nX3NpemUsIGZhbHNlLCB0cnVlKTsK PiA+ICsJCQkJICAgdXNlcl9hY2NvdW50aW5nX3NpemUsICZjdHgpOwo+ID4gICAJaWYgKHVubGlr ZWx5KHJldCAhPSAwKSkgewo+ID4gICAJCWlmIChyZXQgIT0gLUVSRVNUQVJUU1lTKQo+ID4gICAJ CQlEUk1fRVJST1IoIk91dCBvZiBncmFwaGljcyBtZW1vcnkgZm9yIHN1cmZhY2UiCj4gPiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9tZW1vcnkuaCBiL2luY2x1ZGUvZHJtL3R0bS90 dG1fbWVtb3J5LmgKPiA+IGluZGV4IDg1ZjNhZDYuLjc1NWMxMDcgMTAwNjQ0Cj4gPiAtLS0gYS9p bmNsdWRlL2RybS90dG0vdHRtX21lbW9yeS5oCj4gPiArKysgYi9pbmNsdWRlL2RybS90dG0vdHRt X21lbW9yeS5oCj4gPiBAQCAtMzUsNiArMzUsNyBAQAo+ID4gICAjaW5jbHVkZSA8bGludXgvZXJy bm8uaD4KPiA+ICAgI2luY2x1ZGUgPGxpbnV4L2tvYmplY3QuaD4KPiA+ICAgI2luY2x1ZGUgPGxp bnV4L21tLmg+Cj4gPiArI2luY2x1ZGUgInR0bV9ib19hcGkuaCIKPiA+ICAgLyoqCj4gPiAgICAq IHN0cnVjdCB0dG1fbWVtX2dsb2JhbCAtIEdsb2JhbCBtZW1vcnkgYWNjb3VudGluZyBzdHJ1Y3R1 cmUuCj4gPiBAQCAtNzksNyArODAsNyBAQCBzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgewo+ID4gICBl eHRlcm4gaW50IHR0bV9tZW1fZ2xvYmFsX2luaXQoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9i KTsKPiA+ICAgZXh0ZXJuIHZvaWQgdHRtX21lbV9nbG9iYWxfcmVsZWFzZShzdHJ1Y3QgdHRtX21l bV9nbG9iYWwgKmdsb2IpOwo+ID4gICBleHRlcm4gaW50IHR0bV9tZW1fZ2xvYmFsX2FsbG9jKHN0 cnVjdCB0dG1fbWVtX2dsb2JhbCAqZ2xvYiwgdWludDY0X3QgbWVtb3J5LAo+ID4gLQkJCQlib29s IG5vX3dhaXQsIGJvb2wgaW50ZXJydXB0aWJsZSk7Cj4gPiArCQkJCXN0cnVjdCB0dG1fb3BlcmF0 aW9uX2N0eCAqY3R4KTsKPiA+ICAgZXh0ZXJuIHZvaWQgdHRtX21lbV9nbG9iYWxfZnJlZShzdHJ1 Y3QgdHRtX21lbV9nbG9iYWwgKmdsb2IsCj4gPiAgIAkJCQl1aW50NjRfdCBhbW91bnQpOwo+ID4g ICBleHRlcm4gaW50IHR0bV9tZW1fZ2xvYmFsX2FsbG9jX3BhZ2Uoc3RydWN0IHR0bV9tZW1fZ2xv YmFsICpnbG9iLAo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK