From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark yao Subject: Re: [PATCH] drm/rockchip: fix fbdev crash when not use DRM_FBDEV_EMULATION Date: Wed, 3 Aug 2016 16:56:20 +0800 Message-ID: <57A1B1B4.7040501@rock-chips.com> References: <1470212025-30336-1-git-send-email-mark.yao@rock-chips.com> <20160803084321.GJ6232@phenom.ffwll.local> <20160803084627.GK6232@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160803084627.GK6232@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: David Airlie , Heiko Stuebner , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org List-Id: linux-rockchip.vger.kernel.org T24gMjAxNuW5tDA45pyIMDPml6UgMTY6NDYsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gT24gV2Vk LCBBdWcgMDMsIDIwMTYgYXQgMTA6NDM6MjFBTSArMDIwMCwgRGFuaWVsIFZldHRlciB3cm90ZToK Pj4gT24gV2VkLCBBdWcgMDMsIDIwMTYgYXQgMDQ6MTM6NDVQTSArMDgwMCwgTWFyayBZYW8gd3Jv dGU6Cj4+PiBbICAgIDEuMTYyNTcxXSBVbmFibGUgdG8gaGFuZGxlIGtlcm5lbCBOVUxMIHBvaW50 ZXIgZGVyZWZlcmVuY2UgYXQgdmlydHVhbCBhZGRyZXNzIDAwMDAwMjAwCj4+PiBbICAgIDEuMTY1 NjU2XSBNb2R1bGVzIGxpbmtlZCBpbjoKPj4+IFsgICAgMS4xNjU5NDFdIENQVTogNSBQSUQ6IDE0 MyBDb21tOiBrd29ya2VyLzU6MiBOb3QgdGFpbnRlZCA0LjQuMTUgIzIzNwo+Pj4gWyAgICAxLjE2 NjUwNl0gSGFyZHdhcmUgbmFtZTogUm9ja2NoaXAgUkszMzk5IEV2YWx1YXRpb24gQm9hcmQgdjEg KEFuZHJvaWQpIChEVCkKPj4+IFsgICAgMS4xNjcxNTNdIFdvcmtxdWV1ZTogZXZlbnRzIG91dHB1 dF9wb2xsX2V4ZWN1dGUKPj4+IFsgICAgMS4xNjgyMzFdIFBDIGlzIGF0IG11dGV4X2xvY2srMHgx NC8weDQ0Cj4+PiBbICAgIDEuMTY4NTg2XSBMUiBpcyBhdCBkcm1fZmJfaGVscGVyX2hvdHBsdWdf ZXZlbnQrMHgyOC8weGNjCj4+PiBbICAgIDEuMTcyMTkyXSBbPGZmZmZmZjgwMDg5ODIxMTA+XSBt dXRleF9sb2NrKzB4MTQvMHg0NAo+Pj4gWyAgICAxLjE3MjE5Nl0gWzxmZmZmZmY4MDA4NDAyNWE0 Pl0gZHJtX2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50KzB4MjgvMHhjYwo+Pj4gWyAgICAxLjE3MjIw MV0gWzxmZmZmZmY4MDA4NDI3YWU0Pl0gcm9ja2NoaXBfZHJtX291dHB1dF9wb2xsX2NoYW5nZWQr MHgxNC8weDFjCj4+PiBbICAgIDEuMTcyMjA0XSBbPGZmZmZmZjgwMDgzZjdjNGM+XSBkcm1fa21z X2hlbHBlcl9ob3RwbHVnX2V2ZW50KzB4MjgvMHgzNAo+Pj4gWyAgICAxLjE3MjIwN10gWzxmZmZm ZmY4MDA4M2Y3ZGRjPl0gb3V0cHV0X3BvbGxfZXhlY3V0ZSsweDE1MC8weDE5OAo+Pj4gWyAgICAx LjE3MjIxMl0gWzxmZmZmZmY4MDA4MGIwZWE4Pl0gcHJvY2Vzc19vbmVfd29yaysweDIxOC8weDNk Ywo+Pj4gWyAgICAxLjE3MjIxNV0gWzxmZmZmZmY4MDA4MGIxNTc4Pl0gd29ya2VyX3RocmVhZCsw eDI0Yy8weDM3NAo+Pj4gWyAgICAxLjE3MjIxN10gWzxmZmZmZmY4MDA4MGI1YmNjPl0ga3RocmVh ZCsweGRjLzB4ZTQKPj4+IFsgICAgMS4xNzIyMjJdIFs8ZmZmZmZmODAwODA4NGNkMD5dIHJldF9m cm9tX2ZvcmsrMHgxMC8weDQwCj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogTWFyayBZYW8gPG1hcmsu eWFvQHJvY2stY2hpcHMuY29tPgo+PiBFcmhtLCBob3cgZXhhY3RseSBkaWQgeW91IG1hbmFnZSB0 byBibG93IHVwIGluIHRoZXJlPyBXaXRob3V0IGZiZGV2Cj4+IHN1cHBvcnQgZW5hYmxlIGRybV9m Yl9oZWxwZXJfaG90cGx1Z19ldmVudCgpIGRvZXMgbm90aGluZyBhdCBhbGwuCj4+Cj4+IFRoZSBm YmRldiBoZWxwZXIgaXMgZGVzaWduZWQgc3VjaCB0aGF0IHlvdSBfZG9uJ3RfIGhhdmUgdG8gY2hl Y2sgZm9yIE5VTEwKPj4gZXZlcnl3aGVyZSBpbiB0aGUgZHJpdmVyLCB0aGF0IHdvdWxkIGJlIHBy ZXR0eSBiYWQgY29kZS4KPiBBbmQgaW5kZWVkIHRoaXMgaXNzdWUgc2VlbXMgcHJlZXhpc3Rpbmcs IGFuZCB3YXMgYWxyZWFkeSBhdHRlbXB0IHRvIGZpeCBpbgo+Cj4gY29tbWl0IDc2NWMzNWJiZDI2 N2U5M2VhYmUxNWE5NDUzNDY4OGRkYWEwYjlkYzcKPiBBdXRob3I6IEhlaWtvIFN0w7xibmVyIDxo ZWlrb0BzbnRlY2guZGU+Cj4gRGF0ZTogICBUdWUgSnVuIDIgMTY6NDE6NDUgMjAxNSArMDIwMAo+ Cj4gICAgICBkcm0vcm9ja2NoaXA6IG9ubHkgY2FsbCBkcm1fZmJfaGVscGVyX2hvdHBsdWdfZXZl bnQgaWYgZmJfaGVscGVyIHByZXNlbnQKPgo+IGV4Y2VwdCB0aGF0IHBhdGNoIGlzIGNvbXBsZXRl IG5vbnNlbnNlIC0gdGhlIGFkZGVkIGNoZWNrIGlzIGFsd2F5cyB0cnVlLgo+IE9oIGFuZCBpdCdz IG1pc3NpbmcgeW91ciBzLW8tYiwgd2hpY2ggaXMgbm90IGdvb2QgYXQgYWxsLgo+Cj4gVGhlIHBy b3BlciBmaXggaXMgdG8gbWFrZSBkZWxheWVkIGZiZGV2IGxvYWRpbmcgd29yayBjb3JyZWN0bHks IFRoaWVycnkKPiBoYXMgcGF0Y2hlcyBmb3IgdGhhdCBvbiB0aGUgbWFpbGluZyBsaXN0LiBOb3Qg YWRkIGV2ZW4gbW9yZSBoYWNrcyBsaWtlIHRoZQo+IGFib3ZlIChhbmQgdGhlbiBzbGFwIGEgbWlz bGVhZGluZyBzdWJqZWN0IG9udG8geW91ciBwYXRjaCkuCj4gLURhbmllbAoKSG1tbSwgdGhlcmUg aXMgYSBtaXN0YWtlIG9uIEhlaWtvJ3MgcGF0Y2g6CgogICAgICAgICBzdHJ1Y3QgZHJtX2ZiX2hl bHBlciAqZmJfaGVscGVyID0gJnByaXZhdGUtPmZiZGV2X2hlbHBlcjsKCiAgICAgICAgLSAgICAg ICBkcm1fZmJfaGVscGVyX2hvdHBsdWdfZXZlbnQoZmJfaGVscGVyKTsKICAgICAgICsgICAgICAg aWYgKGZiX2hlbHBlcikKICAgICAgICsgICAgICAgICAgICAgICBkcm1fZmJfaGVscGVyX2hvdHBs dWdfZXZlbnQoZmJfaGVscGVyKTsKCkJ1dCB0aGUgZmJfaGVscGVyIHdvdWxkIG5ldmVyIGJlIE5V TEwsIGJlY2F1c2UgdGhlIHByaXZhdGUtPmZiZGV2X2hlbHBlciAKaXMgbm90IGEgcG9pbnRlci4K ClNvIHRoZSBmaXJzdCBzdGVwIGlzIG1ha2luZyBwcml2YXRlLT5mYmRldl9oZWxwZXIgdG8gYSBw b2ludGVyLCB0aGF0J3MgCndoYXQgSSBkbyBvbiB0aGlzIHBhdGNoLgoKCj4+IC1EYW5pZWwKPj4K Pj4+IC0tLQo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2Rydi5j ICAgfCAxMyArKysrKysrKysrLS0tCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2Nr Y2hpcF9kcm1fZHJ2LmggICB8ICA4ICsrKysrKy0tCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9yb2Nr Y2hpcC9yb2NrY2hpcF9kcm1fZmIuYyAgICB8ICA2ICsrKy0tLQo+Pj4gICBkcml2ZXJzL2dwdS9k cm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2ZiZGV2LmMgfCAyNiArKysrKysrKysrKysrKysrKy0t LS0tLS0tLQo+Pj4gICA0IGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDE3IGRlbGV0 aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9j a2NoaXBfZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9k cnYuYwo+Pj4gaW5kZXggYTgyMmQ0OS4uMWE0ZGFkNiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZHJ2LmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZHJ2LmMKPj4+IEBAIC0yNjEsNyArMjYxLDEwIEBA IHN0YXRpYyB2b2lkIHJvY2tjaGlwX2RybV9sYXN0Y2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPj4+ICAgewo+Pj4gICAJc3RydWN0IHJvY2tjaGlwX2RybV9wcml2YXRlICpwcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKPj4+ICAgCj4+PiAtCWRybV9mYl9oZWxwZXJfcmVzdG9yZV9mYmRldl9t b2RlX3VubG9ja2VkKCZwcml2LT5mYmRldl9oZWxwZXIpOwo+Pj4gKwlpZiAoIXByaXYtPmZiZGV2 KQo+Pj4gKwkJcmV0dXJuOwo+Pj4gKwo+Pj4gKwlkcm1fZmJfaGVscGVyX3Jlc3RvcmVfZmJkZXZf bW9kZV91bmxvY2tlZCgmcHJpdi0+ZmJkZXYtPmZiZGV2X2hlbHBlcik7Cj4+PiAgIH0KPj4+ICAg Cj4+PiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJvY2tjaGlwX2RybV9k cml2ZXJfZm9wcyA9IHsKPj4+IEBAIC0zMTAsOCArMzEzLDEwIEBAIHZvaWQgcm9ja2NoaXBfZHJt X2ZiX3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRybSkKPj4+ICAgewo+Pj4gICAJc3RydWN0 IHJvY2tjaGlwX2RybV9wcml2YXRlICpwcml2ID0gZHJtLT5kZXZfcHJpdmF0ZTsKPj4+ICAgCj4+ PiArCWlmICghcHJpdi0+ZmJkZXYpCj4+PiArCQlyZXR1cm47Cj4+PiAgIAljb25zb2xlX2xvY2so KTsKPj4+IC0JZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZCgmcHJpdi0+ZmJkZXZfaGVscGVyLCAx KTsKPj4+ICsJZHJtX2ZiX2hlbHBlcl9zZXRfc3VzcGVuZCgmcHJpdi0+ZmJkZXYtPmZiZGV2X2hl bHBlciwgMSk7Cj4+PiAgIAljb25zb2xlX3VubG9jaygpOwo+Pj4gICB9Cj4+PiAgIAo+Pj4gQEAg LTMxOSw4ICszMjQsMTAgQEAgdm9pZCByb2NrY2hpcF9kcm1fZmJfcmVzdW1lKHN0cnVjdCBkcm1f ZGV2aWNlICpkcm0pCj4+PiAgIHsKPj4+ICAgCXN0cnVjdCByb2NrY2hpcF9kcm1fcHJpdmF0ZSAq cHJpdiA9IGRybS0+ZGV2X3ByaXZhdGU7Cj4+PiAgIAo+Pj4gKwlpZiAoIXByaXYtPmZiZGV2KQo+ Pj4gKwkJcmV0dXJuOwo+Pj4gICAJY29uc29sZV9sb2NrKCk7Cj4+PiAtCWRybV9mYl9oZWxwZXJf c2V0X3N1c3BlbmQoJnByaXYtPmZiZGV2X2hlbHBlciwgMCk7Cj4+PiArCWRybV9mYl9oZWxwZXJf c2V0X3N1c3BlbmQoJnByaXYtPmZiZGV2LT5mYmRldl9oZWxwZXIsIDApOwo+Pj4gICAJY29uc29s ZV91bmxvY2soKTsKPj4+ICAgfQo+Pj4gICAKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L3JvY2tjaGlwX2RybV9kcnYuaAo+Pj4gaW5kZXggZWEzOTMyOS4uYzA1NGZjMiAxMDA2NDQKPj4+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZHJ2LmgKPj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZHJ2LmgKPj4+IEBAIC01 MCw2ICs1MCwxMSBAQCBzdHJ1Y3Qgcm9ja2NoaXBfY3J0Y19zdGF0ZSB7Cj4+PiAgICNkZWZpbmUg dG9fcm9ja2NoaXBfY3J0Y19zdGF0ZShzKSBcCj4+PiAgIAkJY29udGFpbmVyX29mKHMsIHN0cnVj dCByb2NrY2hpcF9jcnRjX3N0YXRlLCBiYXNlKQo+Pj4gICAKPj4+ICtzdHJ1Y3Qgcm9ja2NoaXBf ZHJtX2ZiZGV2IHsKPj4+ICsJc3RydWN0IGRybV9mYl9oZWxwZXIgZmJkZXZfaGVscGVyOwo+Pj4g KwlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmZiZGV2X2JvOwo+Pj4gK307Cj4+PiArCj4+PiAgIC8q Cj4+PiAgICAqIFJvY2tjaGlwIGRybSBwcml2YXRlIHN0cnVjdHVyZS4KPj4+ICAgICoKPj4+IEBA IC01Nyw4ICs2Miw3IEBAIHN0cnVjdCByb2NrY2hpcF9jcnRjX3N0YXRlIHsKPj4+ICAgICogQG51 bV9waXBlOiBudW1iZXIgb2YgcGlwZXMgZm9yIHRoaXMgZGV2aWNlLgo+Pj4gICAgKi8KPj4+ICAg c3RydWN0IHJvY2tjaGlwX2RybV9wcml2YXRlIHsKPj4+IC0Jc3RydWN0IGRybV9mYl9oZWxwZXIg ZmJkZXZfaGVscGVyOwo+Pj4gLQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmZiZGV2X2JvOwo+Pj4g KwlzdHJ1Y3Qgcm9ja2NoaXBfZHJtX2ZiZGV2ICpmYmRldjsKPj4+ICAgCWNvbnN0IHN0cnVjdCBy b2NrY2hpcF9jcnRjX2Z1bmNzICpjcnRjX2Z1bmNzW1JPQ0tDSElQX01BWF9DUlRDXTsKPj4+ICAg CXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPj4+ICAgfTsKPj4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2ZiLmMgYi9kcml2ZXJzL2dw dS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2ZiLmMKPj4+IGluZGV4IDU1YzUyNzMuLmZlZjZm OGQgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJt X2ZiLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZmIu Ywo+Pj4gQEAgLTE1NiwxMCArMTU2LDEwIEBAIGVycl9nZW1fb2JqZWN0X3VucmVmZXJlbmNlOgo+ Pj4gICBzdGF0aWMgdm9pZCByb2NrY2hpcF9kcm1fb3V0cHV0X3BvbGxfY2hhbmdlZChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQo+Pj4gICB7Cj4+PiAgIAlzdHJ1Y3Qgcm9ja2NoaXBfZHJtX3ByaXZh dGUgKnByaXZhdGUgPSBkZXYtPmRldl9wcml2YXRlOwo+Pj4gLQlzdHJ1Y3QgZHJtX2ZiX2hlbHBl ciAqZmJfaGVscGVyID0gJnByaXZhdGUtPmZiZGV2X2hlbHBlcjsKPj4+ICsJc3RydWN0IHJvY2tj aGlwX2RybV9mYmRldiAqZmJkZXYgPSBwcml2YXRlLT5mYmRldjsKPj4+ICAgCj4+PiAtCWlmIChm Yl9oZWxwZXIpCj4+PiAtCQlkcm1fZmJfaGVscGVyX2hvdHBsdWdfZXZlbnQoZmJfaGVscGVyKTsK Pj4+ICsJaWYgKGZiZGV2KQo+Pj4gKwkJZHJtX2ZiX2hlbHBlcl9ob3RwbHVnX2V2ZW50KCZmYmRl di0+ZmJkZXZfaGVscGVyKTsKPj4+ICAgfQo+Pj4gICAKPj4+ICAgc3RhdGljIHZvaWQgcm9ja2No aXBfY3J0Y193YWl0X2Zvcl91cGRhdGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+Pj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZmJkZXYuYyBiL2Ry aXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZmJkZXYuYwo+Pj4gaW5kZXggMjA3 ZTAxZC4uY2M1NzgxYSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9y b2NrY2hpcF9kcm1fZmJkZXYuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3Jv Y2tjaGlwX2RybV9mYmRldi5jCj4+PiBAQCAtMjIsMTYgKzIyLDE2IEBACj4+PiAgICNpbmNsdWRl ICJyb2NrY2hpcF9kcm1fZmIuaCIKPj4+ICAgCj4+PiAgICNkZWZpbmUgUFJFRkVSUkVEX0JQUAkJ MzIKPj4+IC0jZGVmaW5lIHRvX2RybV9wcml2YXRlKHgpIFwKPj4+IC0JCWNvbnRhaW5lcl9vZih4 LCBzdHJ1Y3Qgcm9ja2NoaXBfZHJtX3ByaXZhdGUsIGZiZGV2X2hlbHBlcikKPj4+ICsjZGVmaW5l IHRvX3JvY2tjaGlwX2ZiZGV2KHgpIFwKPj4+ICsJCWNvbnRhaW5lcl9vZih4LCBzdHJ1Y3Qgcm9j a2NoaXBfZHJtX2ZiZGV2LCBmYmRldl9oZWxwZXIpCj4+PiAgIAo+Pj4gICBzdGF0aWMgaW50IHJv Y2tjaGlwX2ZiZGV2X21tYXAoc3RydWN0IGZiX2luZm8gKmluZm8sCj4+PiAgIAkJCSAgICAgICBz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKPj4+ICAgewo+Pj4gICAJc3RydWN0IGRybV9mYl9o ZWxwZXIgKmhlbHBlciA9IGluZm8tPnBhcjsKPj4+IC0Jc3RydWN0IHJvY2tjaGlwX2RybV9wcml2 YXRlICpwcml2YXRlID0gdG9fZHJtX3ByaXZhdGUoaGVscGVyKTsKPj4+ICsJc3RydWN0IHJvY2tj aGlwX2RybV9mYmRldiAqZmJkZXYgPSB0b19yb2NrY2hpcF9mYmRldihoZWxwZXIpOwo+Pj4gICAK Pj4+IC0JcmV0dXJuIHJvY2tjaGlwX2dlbV9tbWFwX2J1Zihwcml2YXRlLT5mYmRldl9ibywgdm1h KTsKPj4+ICsJcmV0dXJuIHJvY2tjaGlwX2dlbV9tbWFwX2J1ZihmYmRldi0+ZmJkZXZfYm8sIHZt YSk7Cj4+PiAgIH0KPj4+ICAgCj4+PiAgIHN0YXRpYyBzdHJ1Y3QgZmJfb3BzIHJvY2tjaGlwX2Ry bV9mYmRldl9vcHMgPSB7Cj4+PiBAQCAtNTAsNyArNTAsNyBAQCBzdGF0aWMgc3RydWN0IGZiX29w cyByb2NrY2hpcF9kcm1fZmJkZXZfb3BzID0gewo+Pj4gICBzdGF0aWMgaW50IHJvY2tjaGlwX2Ry bV9mYmRldl9jcmVhdGUoc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKPj4+ICAgCQkJCSAg ICAgc3RydWN0IGRybV9mYl9oZWxwZXJfc3VyZmFjZV9zaXplICpzaXplcykKPj4+ICAgewo+Pj4g LQlzdHJ1Y3Qgcm9ja2NoaXBfZHJtX3ByaXZhdGUgKnByaXZhdGUgPSB0b19kcm1fcHJpdmF0ZSho ZWxwZXIpOwo+Pj4gKwlzdHJ1Y3Qgcm9ja2NoaXBfZHJtX2ZiZGV2ICpmYmRldiA9IHRvX3JvY2tj aGlwX2ZiZGV2KGhlbHBlcik7Cj4+PiAgIAlzdHJ1Y3QgZHJtX21vZGVfZmJfY21kMiBtb2RlX2Nt ZCA9IHsgMCB9Owo+Pj4gICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGhlbHBlci0+ZGV2Owo+ Pj4gICAJc3RydWN0IHJvY2tjaGlwX2dlbV9vYmplY3QgKnJrX29iajsKPj4+IEBAIC03NSw3ICs3 NSw3IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfZHJtX2ZiZGV2X2NyZWF0ZShzdHJ1Y3QgZHJtX2Zi X2hlbHBlciAqaGVscGVyLAo+Pj4gICAJaWYgKElTX0VSUihya19vYmopKQo+Pj4gICAJCXJldHVy biAtRU5PTUVNOwo+Pj4gICAKPj4+IC0JcHJpdmF0ZS0+ZmJkZXZfYm8gPSAmcmtfb2JqLT5iYXNl Owo+Pj4gKwlmYmRldi0+ZmJkZXZfYm8gPSAmcmtfb2JqLT5iYXNlOwo+Pj4gICAKPj4+ICAgCWZi aSA9IGRybV9mYl9oZWxwZXJfYWxsb2NfZmJpKGhlbHBlcik7Cj4+PiAgIAlpZiAoSVNfRVJSKGZi aSkpIHsKPj4+IEBAIC04NSw3ICs4NSw3IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfZHJtX2ZiZGV2 X2NyZWF0ZShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyLAo+Pj4gICAJfQo+Pj4gICAKPj4+ ICAgCWhlbHBlci0+ZmIgPSByb2NrY2hpcF9kcm1fZnJhbWVidWZmZXJfaW5pdChkZXYsICZtb2Rl X2NtZCwKPj4+IC0JCQkJCQkgICBwcml2YXRlLT5mYmRldl9ibyk7Cj4+PiArCQkJCQkJICAgZmJk ZXYtPmZiZGV2X2JvKTsKPj4+ICAgCWlmIChJU19FUlIoaGVscGVyLT5mYikpIHsKPj4+ICAgCQlk ZXZfZXJyKGRldi0+ZGV2LCAiRmFpbGVkIHRvIGFsbG9jYXRlIERSTSBmcmFtZWJ1ZmZlci5cbiIp Owo+Pj4gICAJCXJldCA9IFBUUl9FUlIoaGVscGVyLT5mYik7Cj4+PiBAQCAtMTMwLDYgKzEzMCw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2ZiX2hlbHBlcl9mdW5jcyByb2NrY2hpcF9kcm1f ZmJfaGVscGVyX2Z1bmNzID0gewo+Pj4gICBpbnQgcm9ja2NoaXBfZHJtX2ZiZGV2X2luaXQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKPj4+ICAgewo+Pj4gICAJc3RydWN0IHJvY2tjaGlwX2RybV9w cml2YXRlICpwcml2YXRlID0gZGV2LT5kZXZfcHJpdmF0ZTsKPj4+ICsJc3RydWN0IHJvY2tjaGlw X2RybV9mYmRldiAqZmJkZXY7Cj4+PiAgIAlzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqaGVscGVyOwo+ Pj4gICAJdW5zaWduZWQgaW50IG51bV9jcnRjOwo+Pj4gICAJaW50IHJldDsKPj4+IEBAIC0xMzks NyArMTQwLDEyIEBAIGludCByb2NrY2hpcF9kcm1fZmJkZXZfaW5pdChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+Pj4gICAKPj4+ICAgCW51bV9jcnRjID0gZGV2LT5tb2RlX2NvbmZpZy5udW1fY3J0 YzsKPj4+ICAgCj4+PiAtCWhlbHBlciA9ICZwcml2YXRlLT5mYmRldl9oZWxwZXI7Cj4+PiArCWZi ZGV2ID0gZGV2bV9remFsbG9jKGRldi0+ZGV2LCBzaXplb2YoKmZiZGV2KSwgR0ZQX0tFUk5FTCk7 Cj4+PiArCWlmICghZmJkZXYpCj4+PiArCQlyZXR1cm4gLUVOT01FTTsKPj4+ICsKPj4+ICsJcHJp dmF0ZS0+ZmJkZXYgPSBmYmRldjsKPj4+ICsJaGVscGVyID0gJmZiZGV2LT5mYmRldl9oZWxwZXI7 Cj4+PiAgIAo+Pj4gICAJZHJtX2ZiX2hlbHBlcl9wcmVwYXJlKGRldiwgaGVscGVyLCAmcm9ja2No aXBfZHJtX2ZiX2hlbHBlcl9mdW5jcyk7Cj4+PiAgIAo+Pj4gQEAgLTE3NSw3ICsxODEsOSBAQCB2 b2lkIHJvY2tjaGlwX2RybV9mYmRldl9maW5pKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+PiAg IAlzdHJ1Y3Qgcm9ja2NoaXBfZHJtX3ByaXZhdGUgKnByaXZhdGUgPSBkZXYtPmRldl9wcml2YXRl Owo+Pj4gICAJc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlcjsKPj4+ICAgCj4+PiAtCWhlbHBl ciA9ICZwcml2YXRlLT5mYmRldl9oZWxwZXI7Cj4+PiArCWlmICghcHJpdmF0ZSB8fCBwcml2YXRl LT5mYmRldikKPj4+ICsJCXJldHVybjsKPj4+ICsJaGVscGVyID0gJnByaXZhdGUtPmZiZGV2LT5m YmRldl9oZWxwZXI7Cj4+PiAgIAo+Pj4gICAJZHJtX2ZiX2hlbHBlcl91bnJlZ2lzdGVyX2ZiaSho ZWxwZXIpOwo+Pj4gICAJZHJtX2ZiX2hlbHBlcl9yZWxlYXNlX2ZiaShoZWxwZXIpOwo+Pj4gLS0g Cj4+PiAxLjkuMQo+Pj4KPj4+Cj4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwo+Pj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+Pj4gZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwo+Pj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPj4gLS0gCj4+IERhbmllbCBWZXR0ZXIKPj4gU29mdHdh cmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4+IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCgoK LS0gCu+8rWFyayBZYW8KCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK