From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhang, Jerry(Junwei)" Subject: Re: [PATCH 4/5] drm/ttm: initialize globals during device init Date: Mon, 22 Oct 2018 14:51:11 +0800 Message-ID: References: <20181019164138.32993-1-christian.koenig@amd.com> <20181019164138.32993-4-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181019164138.32993-4-christian.koenig-5C7GfCeVMHo@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: =?UTF-8?Q?Christian_K=c3=b6nig?= , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, tzimmermann-l3A5Bk7waGM@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org QSBxdWVzdGlvbiBmb3IgdHRtX2JvLmMKCk9uIDEwLzIwLzIwMTggMTI6NDEgQU0sIENocmlzdGlh biBLw7ZuaWcgd3JvdGU6Cj4gTWFrZSBzdXJlIHRoYXQgdGhlIGdsb2JhbCBCTyBzdGF0ZSBpcyBh bHdheXMgY29ycmVjdGx5IGluaXRpYWxpemVkLgo+Cj4gVGhpcyBhbGxvd3MgcmVtb3ZpbmcgYWxs IHRoZSBkZXZpY2UgY29kZSB0byBpbml0aWFsaXplIGl0Lgo+Cj4gU2lnbmVkLW9mZi1ieTogQ2hy aXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgo+IC0tLQo+ICAgZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0bS5jICAgICAgICAgfCA1OSArLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRt LmggICAgICAgICB8ICAxIC0KPiAgIGRyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X2Rydi5oICAgICAg ICAgICAgICAgICAgIHwgIDEgLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FzdC9hc3RfdHRtLmMgICAg ICAgICAgICAgICAgICAgfCAzNiAtLS0tLS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9i b2Nocy9ib2Nocy5oICAgICAgICAgICAgICAgICAgIHwgIDEgLQo+ICAgZHJpdmVycy9ncHUvZHJt L2JvY2hzL2JvY2hzX21tLmMgICAgICAgICAgICAgICAgfCAzNSAtLS0tLS0tLS0tLS0tLS0KPiAg IGRyaXZlcnMvZ3B1L2RybS9jaXJydXMvY2lycnVzX2Rydi5oICAgICAgICAgICAgIHwgIDEgLQo+ ICAgZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfdHRtLmMgICAgICAgICAgICAgfCAzNiAt LS0tLS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24vaGlibWMvaGlibWNf ZHJtX2Rydi5oIHwgIDEgLQo+ICAgZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9oaWJtYy9oaWJt Y190dG0uYyAgICAgfCAzNCAtLS0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL21nYWcy MDAvbWdhZzIwMF9kcnYuaCAgICAgICAgICAgfCAgMSAtCj4gICBkcml2ZXJzL2dwdS9kcm0vbWdh ZzIwMC9tZ2FnMjAwX3R0bS5jICAgICAgICAgICB8IDM2IC0tLS0tLS0tLS0tLS0tLQo+ICAgZHJp dmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9kcnYuaCAgICAgICAgICAgfCAgMSAtCj4gICBk cml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X3R0bS5jICAgICAgICAgICB8IDM5IC0tLS0t LS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX2Rydi5oICAgICAgICAgICAg ICAgICAgIHwgIDIgLQo+ICAgZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMgICAgICAgICAg ICAgICAgICAgfCAzMyAtLS0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y YWRlb24uaCAgICAgICAgICAgICAgICAgfCAgMiAtCj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9u L3JhZGVvbl90dG0uYyAgICAgICAgICAgICB8IDM5IC0tLS0tLS0tLS0tLS0tLS0KPiAgIGRyaXZl cnMvZ3B1L2RybS90dG0vdHRtX2JvLmMgICAgICAgICAgICAgICAgICAgIHwgMTkgKysrKystLS0K PiAgIGRyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9kcnYuaCAgICAgICAgICAgIHwgIDIg LQo+ICAgZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X3R0bS5jICAgICAgICAgICAgfCAz NSAtLS0tLS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5j ICAgICAgICAgICAgIHwgMTEgKy0tLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2Rydi5oICAgICAgICAgICAgIHwgIDMgLS0KPiAgIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X3R0bV9nbHVlLmMgICAgICAgIHwgMjcgLS0tLS0tLS0tLS0KPiAgIGRyaXZlcnMvc3RhZ2lu Zy92Ym94dmlkZW8vdmJveF90dG0uYyAgICAgICAgICAgIHwgMzYgLS0tLS0tLS0tLS0tLS0tCj4g ICBpbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oICAgICAgICAgICAgICAgICB8IDQxICst LS0tLS0tLS0tLS0tLS0tCj4gICAyNiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCA1 MTYgZGVsZXRpb25zKC0pCj4KPiBbLi4uIHNraXAgYWJvdmUgLi4uXQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8u Ywo+IGluZGV4IGQ4OTE4M2Y5NTU3MC4uZGYwMjg4MDViN2UyIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9i by5jCj4gQEAgLTE1MzAsNyArMTUzMCw3IEBAIHN0YXRpYyB2b2lkIHR0bV9ib19nbG9iYWxfa29i al9yZWxlYXNlKHN0cnVjdCBrb2JqZWN0ICprb2JqKQo+ICAgCWtmcmVlKGdsb2IpOwo+ICAgfQo+ ICAgCj4gLXZvaWQgdHRtX2JvX2dsb2JhbF9yZWxlYXNlKHZvaWQpCj4gK3N0YXRpYyB2b2lkIHR0 bV9ib19nbG9iYWxfcmVsZWFzZSh2b2lkKQo+ICAgewo+ICAgCXN0cnVjdCB0dG1fYm9fZ2xvYmFs ICpnbG9iID0gJnR0bV9ib19nbG9iOwo+ICAgCj4gQEAgLTE1NDQsOSArMTU0NCw4IEBAIHZvaWQg dHRtX2JvX2dsb2JhbF9yZWxlYXNlKHZvaWQpCj4gICBvdXQ6Cj4gICAJbXV0ZXhfdW5sb2NrKCZ0 dG1fZ2xvYmFsX211dGV4KTsKPiAgIH0KPiAtRVhQT1JUX1NZTUJPTCh0dG1fYm9fZ2xvYmFsX3Jl bGVhc2UpOwo+ICAgCj4gLWludCB0dG1fYm9fZ2xvYmFsX2luaXQodm9pZCkKPiArc3RhdGljIGlu dCB0dG1fYm9fZ2xvYmFsX2luaXQodm9pZCkKPiAgIHsKPiAgIAlzdHJ1Y3QgdHRtX2JvX2dsb2Jh bCAqZ2xvYiA9ICZ0dG1fYm9fZ2xvYjsKPiAgIAlpbnQgcmV0ID0gMDsKPiBAQCAtMTU4Myw4ICsx NTgyLDYgQEAgaW50IHR0bV9ib19nbG9iYWxfaW5pdCh2b2lkKQo+ICAgCW11dGV4X3VubG9jaygm dHRtX2dsb2JhbF9tdXRleCk7Cj4gICAJcmV0dXJuIHJldDsKPiAgIH0KPiAtRVhQT1JUX1NZTUJP TCh0dG1fYm9fZ2xvYmFsX2luaXQpOwo+IC0KPiAgIAo+ICAgaW50IHR0bV9ib19kZXZpY2VfcmVs ZWFzZShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldikKPiAgIHsKPiBAQCAtMTYyMywxOCArMTYy MCwyNSBAQCBpbnQgdHRtX2JvX2RldmljZV9yZWxlYXNlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpi ZGV2KQo+ICAgCj4gICAJZHJtX3ZtYV9vZmZzZXRfbWFuYWdlcl9kZXN0cm95KCZiZGV2LT52bWFf bWFuYWdlcik7Cj4gICAKPiArCWlmICghcmV0KQo+ICsJCXR0bV9ib19nbG9iYWxfcmVsZWFzZSgp Owo+ICsKCklmIHR0bV9ib19jbGVhbl9tbSgpIGZhaWxzLCBpdCB3aWxsIHNraXAgdHRtX2JvX2ds b2JhbF9yZWxlYXNlKCkKV2hlbiBpdCB3aWxsIGJlIGNhbGxlZD8KClNoYWxsIHdlIGFkZCBpdCB0 byBhIGRlbGF5ZWQgd29yayBvciB3ZSBtYXkgY2FsbCBpdCBkaXJlY3RseSBoZXJlLgoKUmVnYXJk cwpKZXJyeQoKCj4gICAJcmV0dXJuIHJldDsKPiAgIH0KPiAgIEVYUE9SVF9TWU1CT0wodHRtX2Jv X2RldmljZV9yZWxlYXNlKTsKPiAgIAo+ICAgaW50IHR0bV9ib19kZXZpY2VfaW5pdChzdHJ1Y3Qg dHRtX2JvX2RldmljZSAqYmRldiwKPiAtCQkgICAgICAgc3RydWN0IHR0bV9ib19nbG9iYWwgKmds b2IsCj4gICAJCSAgICAgICBzdHJ1Y3QgdHRtX2JvX2RyaXZlciAqZHJpdmVyLAo+ICAgCQkgICAg ICAgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsCj4gICAJCSAgICAgICB1aW50NjRfdCBm aWxlX3BhZ2Vfb2Zmc2V0LAo+ICAgCQkgICAgICAgYm9vbCBuZWVkX2RtYTMyKQo+ICAgewo+IC0J aW50IHJldCA9IC1FSU5WQUw7Cj4gKwlzdHJ1Y3QgdHRtX2JvX2dsb2JhbCAqZ2xvYiA9ICZ0dG1f Ym9fZ2xvYjsKPiArCWludCByZXQ7Cj4gKwo+ICsJcmV0ID0gdHRtX2JvX2dsb2JhbF9pbml0KCk7 Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gICAKPiAgIAliZGV2LT5kcml2ZXIgPSBk cml2ZXI7Cj4gICAKPiBAQCAtMTY2MSw2ICsxNjY1LDcgQEAgaW50IHR0bV9ib19kZXZpY2VfaW5p dChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPiAgIAo+ICAgCXJldHVybiAwOwo+ICAgb3V0 X25vX3N5czoKPiArCXR0bV9ib19nbG9iYWxfcmVsZWFzZSgpOwo+ICAgCXJldHVybiByZXQ7Cj4g ICB9Cj4gICBFWFBPUlRfU1lNQk9MKHR0bV9ib19kZXZpY2VfaW5pdCk7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92 aXJ0aW8vdmlydGdwdV9kcnYuaAo+IGluZGV4IGRlYzQyZDQyMWUwMC4uMzBjYWEyMGQ5ZmNmIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9kcnYuaAo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS92aXJ0aW8vdmlydGdwdV9kcnYuaAo+IEBAIC0xMzIsOCArMTMyLDYg QEAgc3RydWN0IHZpcnRpb19ncHVfZnJhbWVidWZmZXIgewo+ICAgCWNvbnRhaW5lcl9vZih4LCBz dHJ1Y3QgdmlydGlvX2dwdV9mcmFtZWJ1ZmZlciwgYmFzZSkKPiAgIAo+ICAgc3RydWN0IHZpcnRp b19ncHVfbW1hbiB7Cj4gLQlzdHJ1Y3QgdHRtX2JvX2dsb2JhbF9yZWYgICAgICAgIGJvX2dsb2Jh bF9yZWY7Cj4gLQlib29sCQkJCW1lbV9nbG9iYWxfcmVmZXJlbmNlZDsKPiAgIAlzdHJ1Y3QgdHRt X2JvX2RldmljZQkJYmRldjsKPiAgIH07Cj4gICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3ZpcnRpby92aXJ0Z3B1X3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1 X3R0bS5jCj4gaW5kZXggYjk5ZWNjNmQ5N2QzLi5jMWE1NmQ2NDAxMjEgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3ZpcnRpby92aXJ0Z3B1X3R0bS5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL3ZpcnRpby92aXJ0Z3B1X3R0bS5jCj4gQEAgLTUwLDM1ICs1MCw2IEBAIHZpcnRpb19ncHVf ZGV2aWNlICp2aXJ0aW9fZ3B1X2dldF92Z2RldihzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldikK PiAgIAlyZXR1cm4gdmdkZXY7Cj4gICB9Cj4gICAKPiAtc3RhdGljIGludCB2aXJ0aW9fZ3B1X3R0 bV9nbG9iYWxfaW5pdChzdHJ1Y3QgdmlydGlvX2dwdV9kZXZpY2UgKnZnZGV2KQo+IC17Cj4gLQlz dHJ1Y3QgZHJtX2dsb2JhbF9yZWZlcmVuY2UgKmdsb2JhbF9yZWY7Cj4gLQlpbnQgcjsKPiAtCj4g LQl2Z2Rldi0+bW1hbi5tZW1fZ2xvYmFsX3JlZmVyZW5jZWQgPSBmYWxzZTsKPiAtCWdsb2JhbF9y ZWYgPSAmdmdkZXYtPm1tYW4uYm9fZ2xvYmFsX3JlZi5yZWY7Cj4gLQlnbG9iYWxfcmVmLT5nbG9i YWxfdHlwZSA9IERSTV9HTE9CQUxfVFRNX0JPOwo+IC0JZ2xvYmFsX3JlZi0+c2l6ZSA9IHNpemVv ZihzdHJ1Y3QgdHRtX2JvX2dsb2JhbCk7Cj4gLQlnbG9iYWxfcmVmLT5pbml0ID0gJnR0bV9ib19n bG9iYWxfcmVmX2luaXQ7Cj4gLQlnbG9iYWxfcmVmLT5yZWxlYXNlID0gJnR0bV9ib19nbG9iYWxf cmVmX3JlbGVhc2U7Cj4gLQlyID0gZHJtX2dsb2JhbF9pdGVtX3JlZihnbG9iYWxfcmVmKTsKPiAt CWlmIChyICE9IDApIHsKPiAtCQlEUk1fRVJST1IoIkZhaWxlZCBzZXR0aW5nIHVwIFRUTSBCTyBz dWJzeXN0ZW0uXG4iKTsKPiAtCQlyZXR1cm4gcjsKPiAtCX0KPiAtCj4gLQl2Z2Rldi0+bW1hbi5t ZW1fZ2xvYmFsX3JlZmVyZW5jZWQgPSB0cnVlOwo+IC0JcmV0dXJuIDA7Cj4gLX0KPiAtCj4gLXN0 YXRpYyB2b2lkIHZpcnRpb19ncHVfdHRtX2dsb2JhbF9maW5pKHN0cnVjdCB2aXJ0aW9fZ3B1X2Rl dmljZSAqdmdkZXYpCj4gLXsKPiAtCWlmICh2Z2Rldi0+bW1hbi5tZW1fZ2xvYmFsX3JlZmVyZW5j ZWQpIHsKPiAtCQlkcm1fZ2xvYmFsX2l0ZW1fdW5yZWYoJnZnZGV2LT5tbWFuLmJvX2dsb2JhbF9y ZWYucmVmKTsKPiAtCQl2Z2Rldi0+bW1hbi5tZW1fZ2xvYmFsX3JlZmVyZW5jZWQgPSBmYWxzZTsK PiAtCX0KPiAtfQo+IC0KPiAgICNpZiAwCj4gICAvKgo+ICAgICogSG1tLCBzZWVtcyB0byBub3Qg ZG8gYW55dGhpbmcgdXNlZnVsLiAgTGVmdG92ZXIgZGVidWcgaGFjaz8KPiBAQCAtMzkxLDEyICsz NjIsOCBAQCBpbnQgdmlydGlvX2dwdV90dG1faW5pdChzdHJ1Y3QgdmlydGlvX2dwdV9kZXZpY2Ug KnZnZGV2KQo+ICAgewo+ICAgCWludCByOwo+ICAgCj4gLQlyID0gdmlydGlvX2dwdV90dG1fZ2xv YmFsX2luaXQodmdkZXYpOwo+IC0JaWYgKHIpCj4gLQkJcmV0dXJuIHI7Cj4gICAJLyogTm8gb3Ro ZXJzIHVzZXIgb2YgYWRkcmVzcyBzcGFjZSBzbyBzZXQgaXQgdG8gMCAqLwo+ICAgCXIgPSB0dG1f Ym9fZGV2aWNlX2luaXQoJnZnZGV2LT5tbWFuLmJkZXYsCj4gLQkJCSAgICAgICB2Z2Rldi0+bW1h bi5ib19nbG9iYWxfcmVmLnJlZi5vYmplY3QsCj4gICAJCQkgICAgICAgJnZpcnRpb19ncHVfYm9f ZHJpdmVyLAo+ICAgCQkJICAgICAgIHZnZGV2LT5kZGV2LT5hbm9uX2lub2RlLT5pX21hcHBpbmcs Cj4gICAJCQkgICAgICAgRFJNX0ZJTEVfUEFHRV9PRkZTRVQsIDApOwo+IEBAIC00MTUsMTMgKzM4 MiwxMSBAQCBpbnQgdmlydGlvX2dwdV90dG1faW5pdChzdHJ1Y3QgdmlydGlvX2dwdV9kZXZpY2Ug KnZnZGV2KQo+ICAgZXJyX21tX2luaXQ6Cj4gICAJdHRtX2JvX2RldmljZV9yZWxlYXNlKCZ2Z2Rl di0+bW1hbi5iZGV2KTsKPiAgIGVycl9kZXZfaW5pdDoKPiAtCXZpcnRpb19ncHVfdHRtX2dsb2Jh bF9maW5pKHZnZGV2KTsKPiAgIAlyZXR1cm4gcjsKPiAgIH0KPiAgIAo+ICAgdm9pZCB2aXJ0aW9f Z3B1X3R0bV9maW5pKHN0cnVjdCB2aXJ0aW9fZ3B1X2RldmljZSAqdmdkZXYpCj4gICB7Cj4gICAJ dHRtX2JvX2RldmljZV9yZWxlYXNlKCZ2Z2Rldi0+bW1hbi5iZGV2KTsKPiAtCXZpcnRpb19ncHVf dHRtX2dsb2JhbF9maW5pKHZnZGV2KTsKPiAgIAlEUk1fSU5GTygidmlydGlvX2dwdTogdHRtIGZp bmFsaXplZFxuIik7Cj4gICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmMKPiBpbmRl eCA1N2RmNzc2ZDk4N2MuLjI5ZGE2M2EwYTBmMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2Rydi5jCj4gQEAgLTgwMSwxMSArODAxLDYgQEAgc3RhdGljIGludCB2bXdfZHJpdmVyX2xv YWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBjaGlwc2V0KQo+ICAgCURS TV9JTkZPKCJNTUlPIGF0IDB4JTA4eCBzaXplIGlzICV1IGtpQlxuIiwKPiAgIAkJIGRldl9wcml2 LT5tbWlvX3N0YXJ0LCBkZXZfcHJpdi0+bW1pb19zaXplIC8gMTAyNCk7Cj4gICAKPiAtCXJldCA9 IHZtd190dG1fZ2xvYmFsX2luaXQoZGV2X3ByaXYpOwo+IC0JaWYgKHVubGlrZWx5KHJldCAhPSAw KSkKPiAtCQlnb3RvIG91dF9lcnIwOwo+IC0KPiAtCj4gICAJdm13X21hc3Rlcl9pbml0KCZkZXZf cHJpdi0+ZmJkZXZfbWFzdGVyKTsKPiAgIAl0dG1fbG9ja19zZXRfa2lsbCgmZGV2X3ByaXYtPmZi ZGV2X21hc3Rlci5sb2NrLCBmYWxzZSwgU0lHVEVSTSk7Cj4gICAJZGV2X3ByaXYtPmFjdGl2ZV9t YXN0ZXIgPSAmZGV2X3ByaXYtPmZiZGV2X21hc3RlcjsKPiBAQCAtODE2LDcgKzgxMSw3IEBAIHN0 YXRpYyBpbnQgdm13X2RyaXZlcl9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVk IGxvbmcgY2hpcHNldCkKPiAgIAlpZiAodW5saWtlbHkoZGV2X3ByaXYtPm1taW9fdmlydCA9PSBO VUxMKSkgewo+ICAgCQlyZXQgPSAtRU5PTUVNOwo+ICAgCQlEUk1fRVJST1IoIkZhaWxlZCBtYXBw aW5nIE1NSU8uXG4iKTsKPiAtCQlnb3RvIG91dF9lcnIzOwo+ICsJCWdvdG8gb3V0X2VycjA7Cj4g ICAJfQo+ICAgCj4gICAJLyogTmVlZCBtbWlvIG1lbW9yeSB0byBjaGVjayBmb3IgZmlmbyBwaXRj aGxvY2sgY2FwLiAqLwo+IEBAIC04NzAsNyArODY1LDYgQEAgc3RhdGljIGludCB2bXdfZHJpdmVy X2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBjaGlwc2V0KQo+ICAg CX0KPiAgIAo+ICAgCXJldCA9IHR0bV9ib19kZXZpY2VfaW5pdCgmZGV2X3ByaXYtPmJkZXYsCj4g LQkJCQkgZGV2X3ByaXYtPmJvX2dsb2JhbF9yZWYucmVmLm9iamVjdCwKPiAgIAkJCQkgJnZtd19i b19kcml2ZXIsCj4gICAJCQkJIGRldi0+YW5vbl9pbm9kZS0+aV9tYXBwaW5nLAo+ICAgCQkJCSBW TVdHRlhfRklMRV9QQUdFX09GRlNFVCwKPiBAQCAtOTkyLDggKzk4Niw2IEBAIHN0YXRpYyBpbnQg dm13X2RyaXZlcl9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGxvbmcgY2hp cHNldCkKPiAgIAl0dG1fb2JqZWN0X2RldmljZV9yZWxlYXNlKCZkZXZfcHJpdi0+dGRldik7Cj4g ICBvdXRfZXJyNDoKPiAgIAltZW11bm1hcChkZXZfcHJpdi0+bW1pb192aXJ0KTsKPiAtb3V0X2Vy cjM6Cj4gLQl2bXdfdHRtX2dsb2JhbF9yZWxlYXNlKGRldl9wcml2KTsKPiAgIG91dF9lcnIwOgo+ ICAgCWZvciAoaSA9IHZtd19yZXNfY29udGV4dDsgaSA8IHZtd19yZXNfbWF4OyArK2kpCj4gICAJ CWlkcl9kZXN0cm95KCZkZXZfcHJpdi0+cmVzX2lkcltpXSk7Cj4gQEAgLTEwNDUsNyArMTAzNyw2 IEBAIHN0YXRpYyB2b2lkIHZtd19kcml2ZXJfdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4gICAJbWVtdW5tYXAoZGV2X3ByaXYtPm1taW9fdmlydCk7Cj4gICAJaWYgKGRldl9wcml2LT5j dHguc3RhZ2VkX2JpbmRpbmdzKQo+ICAgCQl2bXdfYmluZGluZ19zdGF0ZV9mcmVlKGRldl9wcml2 LT5jdHguc3RhZ2VkX2JpbmRpbmdzKTsKPiAtCXZtd190dG1fZ2xvYmFsX3JlbGVhc2UoZGV2X3By aXYpOwo+ICAgCj4gICAJZm9yIChpID0gdm13X3Jlc19jb250ZXh0OyBpIDwgdm13X3Jlc19tYXg7 ICsraSkKPiAgIAkJaWRyX2Rlc3Ryb3koJmRldl9wcml2LT5yZXNfaWRyW2ldKTsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaAo+IGluZGV4IGRmMTVhNzQ1ZWZjMy4uYTIzZjFjMWZkNGM5 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5oCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZHJ2LmgKPiBAQCAtMzY1LDcgKzM2NSw2 IEBAIGVudW0gewo+ICAgCj4gICBzdHJ1Y3Qgdm13X3ByaXZhdGUgewo+ICAgCXN0cnVjdCB0dG1f Ym9fZGV2aWNlIGJkZXY7Cj4gLQlzdHJ1Y3QgdHRtX2JvX2dsb2JhbF9yZWYgYm9fZ2xvYmFsX3Jl ZjsKPiAgIAo+ICAgCXN0cnVjdCB2bXdfZmlmb19zdGF0ZSBmaWZvOwo+ICAgCj4gQEAgLTc2Miw4 ICs3NjEsNiBAQCBleHRlcm4gaW50IHZtd19maWZvX2ZsdXNoKHN0cnVjdCB2bXdfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4gICAgKiBUVE0gZ2x1ZSAtIHZtd2dmeF90dG1fZ2x1ZS5jCj4gICAgKi8KPiAg IAo+IC1leHRlcm4gaW50IHZtd190dG1fZ2xvYmFsX2luaXQoc3RydWN0IHZtd19wcml2YXRlICpk ZXZfcHJpdik7Cj4gLWV4dGVybiB2b2lkIHZtd190dG1fZ2xvYmFsX3JlbGVhc2Uoc3RydWN0IHZt d19wcml2YXRlICpkZXZfcHJpdik7Cj4gICBleHRlcm4gaW50IHZtd19tbWFwKHN0cnVjdCBmaWxl ICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSk7Cj4gICAKPiAgIC8qKgo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fZ2x1ZS5jIGIvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2dsdWUuYwo+IGluZGV4IDBhYzQ3M2NkNTEzNi4u MTU0ZWIwOWFhOTFlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X3R0bV9nbHVlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fZ2x1 ZS5jCj4gQEAgLTQyLDMwICs0MiwzIEBAIGludCB2bXdfbW1hcChzdHJ1Y3QgZmlsZSAqZmlscCwg c3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCj4gICAJZGV2X3ByaXYgPSB2bXdfcHJpdihmaWxl X3ByaXYtPm1pbm9yLT5kZXYpOwo+ICAgCXJldHVybiB0dG1fYm9fbW1hcChmaWxwLCB2bWEsICZk ZXZfcHJpdi0+YmRldik7Cj4gICB9Cj4gLQo+IC1pbnQgdm13X3R0bV9nbG9iYWxfaW5pdChzdHJ1 Y3Qgdm13X3ByaXZhdGUgKmRldl9wcml2KQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2dsb2JhbF9yZWZl cmVuY2UgKmdsb2JhbF9yZWY7Cj4gLQlpbnQgcmV0Owo+IC0KPiAtCWdsb2JhbF9yZWYgPSAmZGV2 X3ByaXYtPmJvX2dsb2JhbF9yZWYucmVmOwo+IC0JZ2xvYmFsX3JlZi0+Z2xvYmFsX3R5cGUgPSBE Uk1fR0xPQkFMX1RUTV9CTzsKPiAtCWdsb2JhbF9yZWYtPnNpemUgPSBzaXplb2Yoc3RydWN0IHR0 bV9ib19nbG9iYWwpOwo+IC0JZ2xvYmFsX3JlZi0+aW5pdCA9ICZ0dG1fYm9fZ2xvYmFsX3JlZl9p bml0Owo+IC0JZ2xvYmFsX3JlZi0+cmVsZWFzZSA9ICZ0dG1fYm9fZ2xvYmFsX3JlZl9yZWxlYXNl Owo+IC0JcmV0ID0gZHJtX2dsb2JhbF9pdGVtX3JlZihnbG9iYWxfcmVmKTsKPiAtCj4gLQlpZiAo dW5saWtlbHkocmV0ICE9IDApKSB7Cj4gLQkJRFJNX0VSUk9SKCJGYWlsZWQgc2V0dGluZyB1cCBU VE0gYnVmZmVyIG9iamVjdHMuXG4iKTsKPiAtCQlnb3RvIG91dF9ub19ibzsKPiAtCX0KPiAtCj4g LQlyZXR1cm4gMDsKPiAtb3V0X25vX2JvOgo+IC0JcmV0dXJuIHJldDsKPiAtfQo+IC0KPiAtdm9p ZCB2bXdfdHRtX2dsb2JhbF9yZWxlYXNlKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYpCj4g LXsKPiAtCWRybV9nbG9iYWxfaXRlbV91bnJlZigmZGV2X3ByaXYtPmJvX2dsb2JhbF9yZWYucmVm KTsKPiAtfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvdmJveHZpZGVvL3Zib3hfdHRt LmMgYi9kcml2ZXJzL3N0YWdpbmcvdmJveHZpZGVvL3Zib3hfdHRtLmMKPiBpbmRleCA4OGNkYWNm MmIwZjAuLjZjOGJhODYyNWFkOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3N0YWdpbmcvdmJveHZp ZGVvL3Zib3hfdHRtLmMKPiArKysgYi9kcml2ZXJzL3N0YWdpbmcvdmJveHZpZGVvL3Zib3hfdHRt LmMKPiBAQCAtMzUsMzcgKzM1LDYgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgdmJveF9wcml2YXRl ICp2Ym94X2JkZXYoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkKQo+ICAgCXJldHVybiBjb250YWlu ZXJfb2YoYmQsIHN0cnVjdCB2Ym94X3ByaXZhdGUsIHR0bS5iZGV2KTsKPiAgIH0KPiAgIAo+IC0v KioKPiAtICogQWRkcyB0aGUgdmJveCBtZW1vcnkgbWFuYWdlciBvYmplY3Qvc3RydWN0dXJlcyB0 byB0aGUgZ2xvYmFsIG1lbW9yeSBtYW5hZ2VyLgo+IC0gKi8KPiAtc3RhdGljIGludCB2Ym94X3R0 bV9nbG9iYWxfaW5pdChzdHJ1Y3QgdmJveF9wcml2YXRlICp2Ym94KQo+IC17Cj4gLQlzdHJ1Y3Qg ZHJtX2dsb2JhbF9yZWZlcmVuY2UgKmdsb2JhbF9yZWY7Cj4gLQlpbnQgcmV0Owo+IC0KPiAtCWds b2JhbF9yZWYgPSAmdmJveC0+dHRtLmJvX2dsb2JhbF9yZWYucmVmOwo+IC0JZ2xvYmFsX3JlZi0+ Z2xvYmFsX3R5cGUgPSBEUk1fR0xPQkFMX1RUTV9CTzsKPiAtCWdsb2JhbF9yZWYtPnNpemUgPSBz aXplb2Yoc3RydWN0IHR0bV9ib19nbG9iYWwpOwo+IC0JZ2xvYmFsX3JlZi0+aW5pdCA9ICZ0dG1f Ym9fZ2xvYmFsX3JlZl9pbml0Owo+IC0JZ2xvYmFsX3JlZi0+cmVsZWFzZSA9ICZ0dG1fYm9fZ2xv YmFsX3JlZl9yZWxlYXNlOwo+IC0KPiAtCXJldCA9IGRybV9nbG9iYWxfaXRlbV9yZWYoZ2xvYmFs X3JlZik7Cj4gLQlpZiAocmV0KSB7Cj4gLQkJRFJNX0VSUk9SKCJGYWlsZWQgc2V0dGluZyB1cCBU VE0gQk8gc3Vic3lzdGVtLlxuIik7Cj4gLQkJcmV0dXJuIHJldDsKPiAtCX0KPiAtCj4gLQlyZXR1 cm4gMDsKPiAtfQo+IC0KPiAtLyoqCj4gLSAqIFJlbW92ZXMgdGhlIHZib3ggbWVtb3J5IG1hbmFn ZXIgb2JqZWN0IGZyb20gdGhlIGdsb2JhbCBtZW1vcnkgbWFuYWdlci4KPiAtICovCj4gLXN0YXRp YyB2b2lkIHZib3hfdHRtX2dsb2JhbF9yZWxlYXNlKHN0cnVjdCB2Ym94X3ByaXZhdGUgKnZib3gp Cj4gLXsKPiAtCWRybV9nbG9iYWxfaXRlbV91bnJlZigmdmJveC0+dHRtLmJvX2dsb2JhbF9yZWYu cmVmKTsKPiAtfQo+IC0KPiAgIHN0YXRpYyB2b2lkIHZib3hfYm9fdHRtX2Rlc3Ryb3koc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICp0Ym8pCj4gICB7Cj4gICAJc3RydWN0IHZib3hfYm8gKmJvOwo+ IEBAIC0yMDMsMTIgKzE3Miw3IEBAIGludCB2Ym94X21tX2luaXQoc3RydWN0IHZib3hfcHJpdmF0 ZSAqdmJveCkKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gdmJveC0+ZGV2Owo+ICAgCXN0 cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2ID0gJnZib3gtPnR0bS5iZGV2Owo+ICAgCj4gLQlyZXQg PSB2Ym94X3R0bV9nbG9iYWxfaW5pdCh2Ym94KTsKPiAtCWlmIChyZXQpCj4gLQkJcmV0dXJuIHJl dDsKPiAtCj4gICAJcmV0ID0gdHRtX2JvX2RldmljZV9pbml0KCZ2Ym94LT50dG0uYmRldiwKPiAt CQkJCSB2Ym94LT50dG0uYm9fZ2xvYmFsX3JlZi5yZWYub2JqZWN0LAo+ICAgCQkJCSAmdmJveF9i b19kcml2ZXIsCj4gICAJCQkJIGRldi0+YW5vbl9pbm9kZS0+aV9tYXBwaW5nLAo+ICAgCQkJCSBE Uk1fRklMRV9QQUdFX09GRlNFVCwgdHJ1ZSk7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0 bS90dG1fYm9fZHJpdmVyLmggYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCj4gaW5k ZXggMjZiZTc0OTM5ZjEwLi42ZmI1ODlmNjQ2MzMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0v dHRtL3R0bV9ib19kcml2ZXIuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVy LmgKPiBAQCAtNTY5LDkgKzU2OSw2IEBAIHZvaWQgdHRtX2JvX21lbV9wdXQoc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibywgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pOwo+ICAgdm9pZCB0dG1f Ym9fbWVtX3B1dF9sb2NrZWQoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPiAgIAkJCSAg IHN0cnVjdCB0dG1fbWVtX3JlZyAqbWVtKTsKPiAgIAo+IC12b2lkIHR0bV9ib19nbG9iYWxfcmVs ZWFzZSh2b2lkKTsKPiAtaW50IHR0bV9ib19nbG9iYWxfaW5pdCh2b2lkKTsKPiAtCj4gICBpbnQg dHRtX2JvX2RldmljZV9yZWxlYXNlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2KTsKPiAgIAo+ ICAgLyoqCj4gQEAgLTU4OSw3ICs1ODYsNyBAQCBpbnQgdHRtX2JvX2RldmljZV9yZWxlYXNlKHN0 cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2KTsKPiAgICAqIFJldHVybnM6Cj4gICAgKiAhMDogRmFp bHVyZS4KPiAgICAqLwo+IC1pbnQgdHRtX2JvX2RldmljZV9pbml0KHN0cnVjdCB0dG1fYm9fZGV2 aWNlICpiZGV2LCBzdHJ1Y3QgdHRtX2JvX2dsb2JhbCAqZ2xvYiwKPiAraW50IHR0bV9ib19kZXZp Y2VfaW5pdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKPiAgIAkJICAgICAgIHN0cnVjdCB0 dG1fYm9fZHJpdmVyICpkcml2ZXIsCj4gICAJCSAgICAgICBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAq bWFwcGluZywKPiAgIAkJICAgICAgIHVpbnQ2NF90IGZpbGVfcGFnZV9vZmZzZXQsIGJvb2wgbmVl ZF9kbWEzMik7Cj4gQEAgLTg4OCw0MCArODg1LDQgQEAgcGdwcm90X3QgdHRtX2lvX3Byb3QodWlu dDMyX3QgY2FjaGluZ19mbGFncywgcGdwcm90X3QgdG1wKTsKPiAgIAo+ICAgZXh0ZXJuIGNvbnN0 IHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlcl9mdW5jIHR0bV9ib19tYW5hZ2VyX2Z1bmM7Cj4g ICAKPiAtLyoqCj4gLSAqIHN0cnVjdCB0dG1fYm9fZ2xvYmFsX3JlZiAtIEFyZ3VtZW50IHRvIGlu aXRpYWxpemUgYSBzdHJ1Y3QgdHRtX2JvX2dsb2JhbC4KPiAtICovCj4gLQo+IC1zdHJ1Y3QgdHRt X2JvX2dsb2JhbF9yZWYgewo+IC0Jc3RydWN0IGRybV9nbG9iYWxfcmVmZXJlbmNlIHJlZjsKPiAt fTsKPiAtCj4gLS8qKgo+IC0gKiB0dG1fYm9fZ2xvYmFsX3JlZl9pbml0Cj4gLSAqCj4gLSAqIEBy ZWY6IERSTSBnbG9iYWwgcmVmZXJlbmNlCj4gLSAqCj4gLSAqIEhlbHBlciBmdW5jdGlvbiB0aGF0 IGluaXRpYWxpemVzIGEgc3RydWN0IHR0bV9ib19nbG9iYWwuIFRoaXMgZnVuY3Rpb24KPiAtICog aXMgdXNlZCBhcyBpbml0IGNhbGwtYmFjayBmdW5jdGlvbiBmb3IgRFJNIGdsb2JhbCByZWZlcmVu Y2VzIG9mIHR5cGUKPiAtICogRFJNX0dMT0JBTF9UVE1fQk9fUkVGLgo+IC0gKi8KPiAtc3RhdGlj IGlubGluZSBpbnQgdHRtX2JvX2dsb2JhbF9yZWZfaW5pdChzdHJ1Y3QgZHJtX2dsb2JhbF9yZWZl cmVuY2UgKnJlZikKPiAtewo+IC0JcmV0dXJuIHR0bV9ib19nbG9iYWxfaW5pdCgpOwo+IC19Cj4g LQo+IC0vKioKPiAtICogdHRtX2JvX2dsb2JhbF9yZWZfcmVsZWFzZQo+IC0gKgo+IC0gKiBAcmVm OiBEUk0gZ2xvYmFsIHJlZmVyZW5jZQo+IC0gKgo+IC0gKiBIZWxwZXIgZnVuY3Rpb24gdGhhdCBy ZWxlYXNlcyBhIHN0cnVjdCB0dG1fYm9fZ2xvYmFsLiBUaGlzIGZ1bmN0aW9uCj4gLSAqIGlzIHVz ZWQgYXMgcmVsZWFzZSBjYWxsLWJhY2sgZnVuY3Rpb24gZm9yIERSTSBnbG9iYWwgcmVmZXJlbmNl cyBvZiB0eXBlCj4gLSAqIERSTV9HTE9CQUxfVFRNX0JPX1JFRi4KPiAtICovCj4gLXN0YXRpYyBp bmxpbmUgdm9pZCB0dG1fYm9fZ2xvYmFsX3JlZl9yZWxlYXNlKHN0cnVjdCBkcm1fZ2xvYmFsX3Jl ZmVyZW5jZSAqcmVmKQo+IC17Cj4gLQl0dG1fYm9fZ2xvYmFsX3JlbGVhc2UoKTsKPiAtfQo+IC0K PiAgICNlbmRpZgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9hbWQtZ2Z4Cg==