From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 07/10] drm: Revamp connector_list protection Date: Wed, 22 Jun 2016 11:09:38 +0200 Message-ID: <20160622090938.GP23520@phenom.ffwll.local> References: <1466500235-21282-1-git-send-email-daniel.vetter@ffwll.ch> <1466500235-21282-8-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-lb0-x242.google.com (mail-lb0-x242.google.com [IPv6:2a00:1450:4010:c04::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id BC41F6E7C2 for ; Wed, 22 Jun 2016 09:09:43 +0000 (UTC) Received: by mail-lb0-x242.google.com with SMTP id td3so3667451lbb.2 for ; Wed, 22 Jun 2016 02:09:43 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1466500235-21282-8-git-send-email-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: DRI Development Cc: Daniel Vetter , Intel Graphics Development , Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBKdW4gMjEsIDIwMTYgYXQgMTE6MTA6MzJBTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBUaGlzIGlzIGEgcHJldHR5IGdvb2QgaG9ycm9yIHNob3csIGJ1dCBJIHRoaW5rIGl0 J3MgdGhlIGJlc3QgdHJhZGVvZmY6Cj4gLSBUaGFua3MgdG8gc3JjdSBhbmQgZGVsYXllZCBmcmVl aW5nIHRoZSBsb2NraW5nIGRvZXNuJ3QgbGVhayBvdXQgdG8KPiAgIGNhbGxlcnMsIGhlbmNlIG5v IGFkZGVkIGhlYWRhY2hlcyB3aXRoIGxvY2tpbmcgaW52ZXJzaW9ucy4KPiAtIEZvciBjb3JlIGFu ZCBkcml2ZXJzIHdoaWNoIGhvdC1yZW1vdmUgY29ubmVjdG9ycyBhbGwgdGhlIGNvbm5lY3Rvcgo+ ICAgbGlzdCB3YWxraW5nIGRldGFpbHMgYXJlIGhpZGRlbiBpbiBhIG1hY3JvLgo+IC0gT3RoZXIg ZHJpdmVycyB3aGljaCBkb24ndCBjYXJlIGFib3V0IGhvdC1yZW1vdmluZyBjYW4gc2ltcGx5IGtl ZXAgb24KPiAgIHVzaW5nIHRoZSBub3JtYWwgbGlzdCB3YWxraW5nIG1hY3Jvcy4KPiAKPiBUaGUg bmV3IGRlc2lnbiBpczoKPiAtIE5ldyBkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0X2xv Y2sgdG8gcHJvdGVjdCB0aGUKPiAgIGNvbm5lY3Rvcl9saXN0LCBhbmQgdGhlIGNvbm5lY3Rvcl9p ZGEgKHNpbmNlIHRoYXQncyBhbHNvCj4gICB1bnByb3RlY3RlZCksIHBsdXMgbnVtX2Nvbm5lY3Rv cnMuIFRoaXMgaXMgYSBwdXJlIGxlYWYgbG9jaywgbm90aGluZwo+ICAgaXMgYWxsb3dlZCB0byBu ZXN0IHdpdGhpbiwgbm90aGluZyBvdXRzaWRlIG9mIGNvbm5lY3RvciBpbml0L2NsZWFudXAKPiAg IHdpbGwgZXZlciBuZWVkIGl0Lgo+IC0gUHJvdGVjdCBjb25uZWN0b3JfbGlzdCBpdHNlbGYgd2l0 aCBzcmN1LiBUaGlzIGFsbG93cyBzbGVlcGluZyBhbmQKPiAgIGFueXRoaW5nIGVsc2UuIFRoZSBv bmx5IHRoaW5nIHdoaWNoIGlzIG5vdCBhbGxvd2VkIGlzIGNhbGxpbmcKPiAgIHN5bmNocm9uaXpl X3NyY3UsIG9yIGdyYWJiaW5nIGFueSBsb2NrcyBvciB3YWl0aW5nIG9uCj4gICB3YWl0cXVldWVz L2NvbXBsZXRpb25zL3doYXRldmVyIHdoaWNoIG1pZ2h0IGNhbGwgdGhhdC4gVG8gbWFrZSB0aGlz Cj4gICAxMDAlIHNhZmUgd2Ugb3B0IHRvIG5vdCBoYXZlIGFueSBjYWxscyB0byBzeW5jaHJvbml6 ZV9zcmN1Lgo+IC0gUHJvdGVjdCBhZ2FpbnN0IHVzZS1hZnRlci1mcmVlIG9mIGNvbm5lY3RvcnMg dXNpbmcgY2FsbF9zcmN1LCB0bwo+ICAgZGVsYXkgdGhlIGtmcmVlIGVub3VnaC4KPiAtIFRvIHBy b3RlY3QgYWdhaW5zdCB6b21iaWUgY29ubmVjdG9ycyB3aGljaCBhcmUgaW4gcHJvZ3Jlc3Mgb2Yg ZmluYWwKPiAgIGRlc3RydWN0aW9uIHVzZSBrcmVmX2dldF91bmxlc3NfemVyby4gVGhpcyBpcyBz YWZlIHNpbmNlIHNyY3UKPiAgIHByZXZlbnRzIGFnYWluc3QgdXNlLWFmdGVyLWZyZWUsIGFuZCB0 aGF0J3MgdGhlIG9ubHkgZ3VhcmFudGVlIHdlCj4gICBuZWVkLgo+IAo+IEZvciB0aGlzIGRlbW8g SSBvbmx5IGJvdGhlcmVkIGNvbnZlcnRpbmcgaTkxNSwgYW5kIHRoZXJlIGFsc28gbm90Cj4gZXZl cnl0aGluZyAtIEkgbGVmdCB0aGUgY29ubmVjdG9yIGxvb3BzIGluIHRoZSBtb2Rlc2V0IGNvZGUg dW5jaGFuZ2VkCj4gc2luY2UgdGhvc2Ugd2lsbCBhbGwgYmUgY29udmVydGVkIG92ZXIgdG8KPiBk cm1fZm9yX2VhY2hfY29ubmVjdG9yX2luX3N0YXRlIHRvIG1ha2UgdGhlbSB3b3JrIGNvcnJlY3Rs eSBmb3IKPiBub25ibG9ja2luZyBhdG9taWMgY29tbWl0cy4gT25seSBsb29wcyBvdXRzaWRlIG9m IGF0b21pYyBjb21taXRzCj4gc2hvdWxkIGJlIGNvbnZlcnRlZCB0byBkcm1fZm9yX2VhY2hfY29u bmVjdG9yLgo+IAo+IE5vdGUgdGhhdCB0aGUgaTkxNSBEUCBNU1QgY29kZSBzdGlsbCB1c2VzIGRy bV9tb2Rlc2V0X2xvY2tfYWxsKCkuIEJ1dAo+IHRoYXQncyBub3QgYmVjYXVzZSBvZiBkcm0gY29y ZSBjb25uZWN0b3IgbGlmZXRpbWUgaXNzdWVzLCBidXQgYmVjYXVzZQo+IHRoZSBmYmRldiBoZWxw ZXIgcmV1c2VzIGNvcmUgbG9ja3MgdG8gbWFuZ2UgaXRzIG93biBsaXN0cyBhbmQgZGF0YQo+IHN0 cnVjdHVyZXMuIFRoaWVycnkgUmVkaW5nIGhhcyBhIHBhdGNoIHNlcmllcyB0byBnaWZ0IGZiZGV2 IGl0cyBvd24KPiBsb2NrLCB3aGljaCB3aWxsIHJlbWVkeSB0aGlzLgo+IAo+IHYyOiBUb3RhbGx5 IHJld3JpdGUgZXZlcnl0aGluZyB0byBwYWNrIGl0IHVwIGluIGEgbmVhdAo+IGl0ZXJhdG9yIG1h Y3JvLCB3aXRoIGluaXQvY2hlY2svbmV4dCBleHRyYWN0ZWQgaW50byBoZWxwZXJzLgo+IAo+IHYz OiBUaW55IHJlYmFzZSBjb25mbGljdC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVy IDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KCk9rLCBDSSBwb2ludGVkIG91dCBhIGZsYXcgaW4g dGhpczogYnJlYWsgKG9yIHdvcnNlIGdvdG8pIG1lYW5zIHRoYXQgdGhlCnVucmVmZXJlbmNlIGFu ZCB0aGUgcmVhZF91bmxvY2tfc3JjdSBpc24ndCBkb25lIGF0IHRoZSBlbmQsIHdoaWNoIG1lYW5z CmxlYWtzIGFuZCBsb2NrZGVwIGNvbXBsYWludHMuIGJyZWFrIGNhbiBiZSBmaXhlZCwgYnV0IGdv dG8gaXMgaW1wb3NzaWJsZQp0byBmaXggd2l0aCBwbGFpbiBDIC4uLgoKTm90IHN1cmUgd2hhdCBk byB0byBub3csIHNpbmNlIEknZCByZWFsbHkgbGlrZSB0byBhdm9pZCBsZWFraW5nIHRoZQpjb25u ZWN0b3JfbGlzdCBsb2NraW5nIGFsbCBvdmVyIHRoZSBwbGFjZS4gSXQgbWVhbnMgbG90cyBvZiBj aHVybiwgYW5kCmFsc28gaXNzdWVzIChpZiB3ZSBnbyB3aXRob3V0IHNyY3UpIHdpdGggbG9ja2lu ZyBpbnZlcnNpb25zLgotRGFuaWVsCgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMu YyAgICAgICAgICB8IDU3ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwX21zdC5jIHwgIDIgKy0KPiAgaW5jbHVkZS9kcm0vZHJtX2NydGMu aCAgICAgICAgICAgICAgfCA4MiArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t Cj4gIDMgZmlsZXMgY2hhbmdlZCwgMTA5IGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQo+ IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fY3J0Yy5jCj4gaW5kZXggNmE4ZjkxZTg4MjFiLi5kYzIyYzBiZmJlOTkgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2NydGMuYwo+IEBAIC00NCw2ICs0NCw5IEBACj4gICNpbmNsdWRlICJkcm1fY3J0Y19p bnRlcm5hbC5oIgo+ICAjaW5jbHVkZSAiZHJtX2ludGVybmFsLmgiCj4gIAo+ICtERUZJTkVfU1JD VShkcm1fY29ubmVjdG9yX2xpc3Rfc3JjdSk7Cj4gK0VYUE9SVF9TWU1CT0woZHJtX2Nvbm5lY3Rv cl9saXN0X3NyY3UpOwo+ICsKPiAgc3RhdGljIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKgo+ICBp bnRlcm5hbF9mcmFtZWJ1ZmZlcl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJ ICAgIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICpyLAo+IEBAIC04MjUsNyArODI4LDcg QEAgc3RhdGljIHZvaWQgZHJtX2Nvbm5lY3Rvcl9nZXRfY21kbGluZV9tb2RlKHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAkJICAgICAgbW9kZS0+aW50ZXJsYWNlID8gICIgaW50 ZXJsYWNlZCIgOiAiIik7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGRybV9jb25uZWN0b3JfZnJl ZShzdHJ1Y3Qga3JlZiAqa3JlZikKPiArc3RhdGljIHZvaWQgZHJtX2Nvbm5lY3Rvcl9rcmVmX3Jl bGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpCj4gIHsKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3IgPQo+ICAJCWNvbnRhaW5lcl9vZihrcmVmLCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvciwg YmFzZS5yZWZjb3VudCk7Cj4gQEAgLTg1OCwxMSArODYxLDEwIEBAIGludCBkcm1fY29ubmVjdG9y X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCXN0cnVjdCBpZGEgKmNvbm5lY3Rvcl9p ZGEgPQo+ICAJCSZkcm1fY29ubmVjdG9yX2VudW1fbGlzdFtjb25uZWN0b3JfdHlwZV0uaWRhOwo+ ICAKPiAtCWRybV9tb2Rlc2V0X2xvY2tfYWxsKGRldik7Cj4gLQo+ICsJbXV0ZXhfbG9jaygmZGV2 LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdF9sb2NrKTsKPiAgCXJldCA9IGRybV9tb2RlX29i amVjdF9nZXRfcmVnKGRldiwgJmNvbm5lY3Rvci0+YmFzZSwKPiAgCQkJCSAgICAgIERSTV9NT0RF X09CSkVDVF9DT05ORUNUT1IsCj4gLQkJCQkgICAgICBmYWxzZSwgZHJtX2Nvbm5lY3Rvcl9mcmVl KTsKPiArCQkJCSAgICAgIGZhbHNlLCBkcm1fY29ubmVjdG9yX2tyZWZfcmVsZWFzZSk7Cj4gIAlp ZiAocmV0KQo+ICAJCWdvdG8gb3V0X3VubG9jazsKPiAgCj4gQEAgLTg5OSwxMSArOTAxLDYgQEAg aW50IGRybV9jb25uZWN0b3JfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAKPiAgCWRy bV9jb25uZWN0b3JfZ2V0X2NtZGxpbmVfbW9kZShjb25uZWN0b3IpOwo+ICAKPiAtCS8qIFdlIHNo b3VsZCBhZGQgY29ubmVjdG9ycyBhdCB0aGUgZW5kIHRvIGF2b2lkIHVwc2V0dGluZyB0aGUgY29u bmVjdG9yCj4gLQkgKiBpbmRleCB0b28gbXVjaC4gKi8KPiAtCWxpc3RfYWRkX3RhaWwoJmNvbm5l Y3Rvci0+aGVhZCwgJmNvbmZpZy0+Y29ubmVjdG9yX2xpc3QpOwo+IC0JY29uZmlnLT5udW1fY29u bmVjdG9yKys7Cj4gLQo+ICAJaWYgKGNvbm5lY3Rvcl90eXBlICE9IERSTV9NT0RFX0NPTk5FQ1RP Ul9WSVJUVUFMKQo+ICAJCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJh c2UsCj4gIAkJCQkJICAgICAgY29uZmlnLT5lZGlkX3Byb3BlcnR5LAo+IEBAIC05MTcsNiArOTE0 LDExIEBAIGludCBkcm1fY29ubmVjdG9yX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAg CX0KPiAgCj4gIAljb25uZWN0b3ItPmRlYnVnZnNfZW50cnkgPSBOVUxMOwo+ICsKPiArCS8qIFdl IG11c3QgYWRkIHRoZSBjb25uZWN0b3IgdG8gdGhlIGxpc3QgbGFzdC4gKi8KPiArCWxpc3RfYWRk X3RhaWxfcmN1KCZjb25uZWN0b3ItPmhlYWQsICZjb25maWctPmNvbm5lY3Rvcl9saXN0KTsKPiAr CWNvbmZpZy0+bnVtX2Nvbm5lY3RvcisrOwo+ICsKPiAgb3V0X3B1dF90eXBlX2lkOgo+ICAJaWYg KHJldCkKPiAgCQlpZGFfcmVtb3ZlKGNvbm5lY3Rvcl9pZGEsIGNvbm5lY3Rvci0+Y29ubmVjdG9y X3R5cGVfaWQpOwo+IEBAIC05MjgsNyArOTMwLDcgQEAgb3V0X3B1dDoKPiAgCQlkcm1fbW9kZV9v YmplY3RfdW5yZWdpc3RlcihkZXYsICZjb25uZWN0b3ItPmJhc2UpOwo+ICAKPiAgb3V0X3VubG9j azoKPiAtCWRybV9tb2Rlc2V0X3VubG9ja19hbGwoZGV2KTsKPiArCW11dGV4X3VubG9jaygmZGV2 LT5tb2RlX2NvbmZpZy5jb25uZWN0b3JfbGlzdF9sb2NrKTsKPiAgCj4gIAlyZXR1cm4gcmV0Owo+ ICB9Cj4gQEAgLTk1MSw2ICs5NTMsNyBAQCB2b2lkIGRybV9jb25uZWN0b3JfY2xlYW51cChzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAJaWYgKFdBUk5fT04oY29ubmVjdG9yLT5y ZWdpc3RlcmVkKSkKPiAgCQlkcm1fY29ubmVjdG9yX3VucmVnaXN0ZXIoY29ubmVjdG9yKTsKPiAg Cj4gKwltdXRleF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0X2xvY2spOwo+ ICAJaWYgKGNvbm5lY3Rvci0+dGlsZV9ncm91cCkgewo+ICAJCWRybV9tb2RlX3B1dF90aWxlX2dy b3VwKGRldiwgY29ubmVjdG9yLT50aWxlX2dyb3VwKTsKPiAgCQljb25uZWN0b3ItPnRpbGVfZ3Jv dXAgPSBOVUxMOwo+IEBAIC05ODEsOSArOTg0LDQyIEBAIHZvaWQgZHJtX2Nvbm5lY3Rvcl9jbGVh bnVwKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAkJCQkJCSAgICAgICBjb25u ZWN0b3ItPnN0YXRlKTsKPiAgCj4gIAltZW1zZXQoY29ubmVjdG9yLCAwLCBzaXplb2YoKmNvbm5l Y3RvcikpOwo+ICsJbXV0ZXhfdW5sb2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0 X2xvY2spOwo+ICB9Cj4gIEVYUE9SVF9TWU1CT0woZHJtX2Nvbm5lY3Rvcl9jbGVhbnVwKTsKPiAg Cj4gK3N0YXRpYyB2b2lkIGRybV9jb25uZWN0b3JfZnJlZV9jYihzdHJ1Y3QgcmN1X2hlYWQgKmhl YWQpCj4gK3sKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSBjb250YWluZXJf b2YoaGVhZCwKPiArCQkJCQkJICAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yLAo+ICsJCQkJCQkg ICAgICAgZnJlZV9oZWFkKTsKPiArCj4gKwlrZnJlZShjb25uZWN0b3IpOwo+ICt9Cj4gKwo+ICsv KioKPiArICogZHJtX2Nvbm5lY3Rvcl9mcmVlIC0gZnJlZXMgYSBjb25uZWN0b3Igc3RydWN0dXJl Cj4gKyAqIEBjb25uZWN0b3I6IGNvbm5lY3RvciB0byBmcmVlCj4gKyAqCj4gKyAqIFRoaXMgZnJl ZXMgQGNvbm5lY3RvciB1c2luZyBjYWxsX3NyY3UoKSBhbmQga2ZyZWUoKS4gSWYgdGhlIGRyaXZl ciBzdWJjbGFzc2VzCj4gKyAqIHRoZSBjb25uZWN0b3IsIHRoZW4gdGhlIGVtYmVkZGVkIHN0cnVj dCAmZHJtX2Nvbm5lY3RvciBtdXN0IGJlIHRoZSBmaXJzdAo+ICsgKiBlbGVtZW50LCBhbmQgQGNv bm5lY3RvciBtdXN0IGhhdmUgYmVlbiBhbGxvY2F0ZWQgdXNpbmcga21hbGxvYygpIG9yIG9uZSBv Zgo+ICsgKiB0aGUgZnVuY3Rpb25zIHdyYXBwaW5nIHRoYXQuCj4gKyAqCj4gKyAqIERlbGF5ZWQg ZnJlZWluZyBpcyByZXF1aXJlZCB0byBhdm9pZCB1c2UtYWZ0ZXItZnJlZSB3aGVuIHdhbGtpbmcg dGhlCj4gKyAqIGNvbm5lY3RvciBsaXN0LCB3aGljaCBpcyBzcmN1IHByb3RlY3RlZC4gSGVuY2Ug ZHJpdmVycyBtdXN0IHVzZSB0aGlzIGZ1bmN0aW9uCj4gKyAqIGZvciBjb25uZWN0b3JzIHdoaWNo IGNhbiBiZSByZW1vdmVkIHdoaWxlIHRoZSBkcml2ZXIgaXMgbG9hZGVkLiBDdXJyZW50bHkKPiAr ICogdGhhdCdzIG9ubHkgdHJ1ZSBmb3IgRFAgTVNUIGNvbm5lY3RvcnMuIEZvciBhbnkgb3RoZXIg Y29ubmVjdG9ycyBpdCBpcyB2YWxpZAo+ICsgKiB0byBjYWxsIGtmcmVlIGRpcmVjdGx5Lgo+ICsg Ki8KPiArdm9pZCBkcm1fY29ubmVjdG9yX2ZyZWUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcikKPiArewo+ICsJY2FsbF9zcmN1KCZkcm1fY29ubmVjdG9yX2xpc3Rfc3JjdSwKPiArCQkg ICZjb25uZWN0b3ItPmZyZWVfaGVhZCwKPiArCQkgIGRybV9jb25uZWN0b3JfZnJlZV9jYik7Cj4g K30KPiArRVhQT1JUX1NZTUJPTChkcm1fY29ubmVjdG9yX2ZyZWUpOwo+ICsKPiAgLyoqCj4gICAq IGRybV9jb25uZWN0b3JfcmVnaXN0ZXIgLSByZWdpc3RlciBhIGNvbm5lY3Rvcgo+ICAgKiBAY29u bmVjdG9yOiB0aGUgY29ubmVjdG9yIHRvIHJlZ2lzdGVyCj4gQEAgLTU1NTQsNiArNTU5MCw3IEBA IHZvaWQgZHJtX21vZGVfY29uZmlnX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCW11 dGV4X2luaXQoJmRldi0+bW9kZV9jb25maWcuaWRyX211dGV4KTsKPiAgCW11dGV4X2luaXQoJmRl di0+bW9kZV9jb25maWcuZmJfbG9jayk7Cj4gIAltdXRleF9pbml0KCZkZXYtPm1vZGVfY29uZmln LmJsb2JfbG9jayk7Cj4gKwltdXRleF9pbml0KCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9s aXN0X2xvY2spOwo+ICAJSU5JVF9MSVNUX0hFQUQoJmRldi0+bW9kZV9jb25maWcuZmJfbGlzdCk7 Cj4gIAlJTklUX0xJU1RfSEVBRCgmZGV2LT5tb2RlX2NvbmZpZy5jcnRjX2xpc3QpOwo+ICAJSU5J VF9MSVNUX0hFQUQoJmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QpOwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwX21zdC5jCj4gaW5kZXggOTY0NjgxNjYwNGJlLi4xMWJiYmIxOTRmMmQg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+IEBAIC0zMjcsNyArMzI3LDcg QEAgaW50ZWxfZHBfbXN0X2Nvbm5lY3Rvcl9kZXN0cm95KHN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3IpCj4gIAkJa2ZyZWUoaW50ZWxfY29ubmVjdG9yLT5lZGlkKTsKPiAgCj4gIAlkcm1f Y29ubmVjdG9yX2NsZWFudXAoY29ubmVjdG9yKTsKPiAtCWtmcmVlKGNvbm5lY3Rvcik7Cj4gKwlk cm1fY29ubmVjdG9yX2ZyZWUoY29ubmVjdG9yKTsKPiAgfQo+ICAKPiAgc3RhdGljIGNvbnN0IHN0 cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIGludGVsX2RwX21zdF9jb25uZWN0b3JfZnVuY3MgPSB7 Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmggYi9pbmNsdWRlL2RybS9kcm1f Y3J0Yy5oCj4gaW5kZXggYmE1NzRiOWMxZWM0Li44ZjQzODBhYzExM2UgMTAwNjQ0Cj4gLS0tIGEv aW5jbHVkZS9kcm0vZHJtX2NydGMuaAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiBA QCAtMzIsNiArMzIsNyBAQAo+ICAjaW5jbHVkZSA8bGludXgvZmIuaD4KPiAgI2luY2x1ZGUgPGxp bnV4L2hkbWkuaD4KPiAgI2luY2x1ZGUgPGxpbnV4L21lZGlhLWJ1cy1mb3JtYXQuaD4KPiArI2lu Y2x1ZGUgPGxpbnV4L3NyY3UuaD4KPiAgI2luY2x1ZGUgPHVhcGkvZHJtL2RybV9tb2RlLmg+Cj4g ICNpbmNsdWRlIDx1YXBpL2RybS9kcm1fZm91cmNjLmg+Cj4gICNpbmNsdWRlIDxkcm0vZHJtX21v ZGVzZXRfbG9jay5oPgo+IEBAIC0xMTg2LDYgKzExODcsNyBAQCBzdHJ1Y3QgZHJtX2VuY29kZXIg ewo+ICAgKiBAa2Rldjoga2VybmVsIGRldmljZSBmb3Igc3lzZnMgYXR0cmlidXRlcwo+ICAgKiBA YXR0cjogc3lzZnMgYXR0cmlidXRlcwo+ICAgKiBAaGVhZDogbGlzdCBtYW5hZ2VtZW50Cj4gKyAq IEBmcmVlX2hlYWQ6IHJjdSBkZWxheWVkIGZyZWVpbmcgbWFuYWdlbWVudAo+ICAgKiBAYmFzZTog YmFzZSBLTVMgb2JqZWN0Cj4gICAqIEBuYW1lOiBodW1hbiByZWFkYWJsZSBuYW1lLCBjYW4gYmUg b3ZlcndyaXR0ZW4gYnkgdGhlIGRyaXZlcgo+ICAgKiBAY29ubmVjdG9yX2lkOiBjb21wYWN0ZWQg Y29ubmVjdG9yIGlkIHVzZWZ1bCBpbmRleGluZyBhcnJheXMKPiBAQCAtMTI0MSw2ICsxMjQzLDcg QEAgc3RydWN0IGRybV9jb25uZWN0b3Igewo+ICAJc3RydWN0IGRldmljZSAqa2RldjsKPiAgCXN0 cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyOwo+ICAJc3RydWN0IGxpc3RfaGVhZCBoZWFkOwo+ ICsJc3RydWN0IHJjdV9oZWFkIGZyZWVfaGVhZDsKPiAgCj4gIAlzdHJ1Y3QgZHJtX21vZGVfb2Jq ZWN0IGJhc2U7Cj4gIAo+IEBAIC0yMzA5LDcgKzIzMTIsNyBAQCBzdHJ1Y3QgZHJtX21vZGVfY29u ZmlnIHsKPiAgCSAqIEB0aWxlX2lkcjoKPiAgCSAqCj4gIAkgKiBVc2UgdGhpcyBpZHIgZm9yIGFs bG9jYXRpbmcgbmV3IElEcyBmb3IgdGlsZWQgc2lua3MgbGlrZSB1c2UgaW4gc29tZQo+IC0JICog aGlnaC1yZXMgRFAgTVNUIHNjcmVlbnMuCj4gKwkgKiBoaWdoLXJlcyBEUCBNU1Qgc2NyZWVucy4g UHJvdGVjdGVkIGJ5IEBpZHJfbXV0ZXguCj4gIAkgKi8KPiAgCXN0cnVjdCBpZHIgdGlsZV9pZHI7 Cj4gIAo+IEBAIC0yMzIwLDYgKzIzMjMsMTQgQEAgc3RydWN0IGRybV9tb2RlX2NvbmZpZyB7Cj4g IAlpbnQgbnVtX2Nvbm5lY3RvcjsKPiAgCXN0cnVjdCBpZGEgY29ubmVjdG9yX2lkYTsKPiAgCXN0 cnVjdCBsaXN0X2hlYWQgY29ubmVjdG9yX2xpc3Q7Cj4gKwo+ICsJLyoqCj4gKwkgKiBAY29ubmVj dG9yX2xpc3RfbG9jazoKPiArCSAqCj4gKwkgKiBQcm90ZWN0cyBAY29ubmVjdG9yX2xpc3QsIEBj b25uZWN0b3JfaWRhIGFuZCAqIEBudW1fY29ubmNldG9ycy4KPiArCSAqLwo+ICsJc3RydWN0IG11 dGV4IGNvbm5lY3Rvcl9saXN0X2xvY2s7Cj4gKwo+ICAJaW50IG51bV9lbmNvZGVyOwo+ICAJc3Ry dWN0IGxpc3RfaGVhZCBlbmNvZGVyX2xpc3Q7Cj4gIAo+IEBAIC0yNDI2LDYgKzI0MzcsOCBAQCBz dHJ1Y3QgZHJtX21vZGVfY29uZmlnIHsKPiAgCXN0cnVjdCBkcm1fbW9kZV9jb25maWdfaGVscGVy X2Z1bmNzICpoZWxwZXJfcHJpdmF0ZTsKPiAgfTsKPiAgCj4gK2V4dGVybiBzdHJ1Y3Qgc3JjdV9z dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9saXN0X3NyY3U7Cj4gKwo+ICAvKioKPiAgICogZHJtX2Zvcl9l YWNoX3BsYW5lX21hc2sgLSBpdGVyYXRlIG92ZXIgcGxhbmVzIHNwZWNpZmllZCBieSBiaXRtYXNr Cj4gICAqIEBwbGFuZTogdGhlIGxvb3AgY3Vyc29yCj4gQEAgLTI1MDUsNiArMjUxOCw3IEBAIGlu dCBkcm1fY29ubmVjdG9yX3JlZ2lzdGVyKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Ip Owo+ICB2b2lkIGRybV9jb25uZWN0b3JfdW5yZWdpc3RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yKTsKPiAgCj4gIGV4dGVybiB2b2lkIGRybV9jb25uZWN0b3JfY2xlYW51cChzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPiArZXh0ZXJuIHZvaWQgZHJtX2Nvbm5lY3Rv cl9mcmVlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ICBzdGF0aWMgaW5saW5l IHVuc2lnbmVkIGRybV9jb25uZWN0b3JfaW5kZXgoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5l Y3RvcikKPiAgewo+ICAJcmV0dXJuIGNvbm5lY3Rvci0+Y29ubmVjdG9yX2lkOwo+IEBAIC0yODM1 LDMxICsyODQ5LDU3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkcm1fY29ubmVjdG9yX3VucmVmZXJl bmNlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gICNkZWZpbmUgZHJtX2Zvcl9l YWNoX2NydGMoY3J0YywgZGV2KSBcCj4gIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNydGMsICYoZGV2 KS0+bW9kZV9jb25maWcuY3J0Y19saXN0LCBoZWFkKQo+ICAKPiArc3RydWN0IGRybV9jb25uZWN0 b3JfaXRlciB7Cj4gKwlzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICptb2RlX2NvbmZpZzsKPiArCXN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gKwlpbnQgc3JjdV9yZXQ7Cj4gK307Cj4g Kwo+ICBzdGF0aWMgaW5saW5lIHZvaWQKPiAtYXNzZXJ0X2RybV9jb25uZWN0b3JfbGlzdF9yZWFk X2xvY2tlZChzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICptb2RlX2NvbmZpZykKPiArX19kcm1fY29u bmVjdG9yX2l0ZXJfaW5pdChzdHJ1Y3QgZHJtX21vZGVfY29uZmlnICptb2RlX2NvbmZpZywKPiAr CQkJICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9pdGVyICppdGVyKQo+ICB7Cj4gLQkvKgo+IC0JICog VGhlIGNvbm5lY3RvciBob3RhZGQvcmVtb3ZlIGNvZGUgY3VycmVudGx5IGdyYWJzIGJvdGggbG9j a3Mgd2hlbgo+IC0JICogdXBkYXRpbmcgbGlzdHMuIEhlbmNlIHJlYWRlcnMgbmVlZCBvbmx5IGhv bGQgZWl0aGVyIG9mIHRoZW0gdG8gYmUKPiAtCSAqIHNhZmUgYW5kIHRoZSBjaGVjayBhbW91bnRz IHRvCj4gLQkgKgo+IC0JICogV0FSTl9PTihub3RfaG9sZGluZyhBKSAmJiBub3RfaG9sZGluZyhC KSkuCj4gLQkgKi8KPiAtCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgmbW9kZV9jb25maWctPm11 dGV4KSAmJgo+IC0JCSFkcm1fbW9kZXNldF9pc19sb2NrZWQoJm1vZGVfY29uZmlnLT5jb25uZWN0 aW9uX211dGV4KSk7Cj4gKwlpdGVyLT5tb2RlX2NvbmZpZyA9IG1vZGVfY29uZmlnOwo+ICsJaXRl ci0+c3JjdV9yZXQgPSBzcmN1X3JlYWRfbG9jaygmZHJtX2Nvbm5lY3Rvcl9saXN0X3NyY3UpOwo+ ICsJaXRlci0+Y29ubmVjdG9yID0gbGlzdF9lbnRyeV9yY3UobW9kZV9jb25maWctPmNvbm5lY3Rv cl9saXN0Lm5leHQsCj4gKwkJCQkJIHN0cnVjdCBkcm1fY29ubmVjdG9yLCBoZWFkKTsKPiAgfQo+ ICAKPiAtc3RydWN0IGRybV9jb25uZWN0b3JfaXRlciB7Cj4gLQlzdHJ1Y3QgZHJtX21vZGVfY29u ZmlnICptb2RlX2NvbmZpZzsKPiAtfTsKPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqCj4gK19fZHJtX2Nvbm5lY3Rvcl9pdGVyX2NoZWNrKHN0cnVjdCBkcm1fY29ubmVjdG9y X2l0ZXIgKml0ZXIpCj4gK3sKPiArcmV0cnk6Cj4gKwlpZiAoJml0ZXItPmNvbm5lY3Rvci0+aGVh ZCA9PSAmaXRlci0+bW9kZV9jb25maWctPmNvbm5lY3Rvcl9saXN0KSB7Cj4gKwkJLyogbGFzdCBp dGVyYXRpb24sIGNsZWFuIHVwICovCj4gKwkJc3JjdV9yZWFkX3VubG9jaygmZHJtX2Nvbm5lY3Rv cl9saXN0X3NyY3UsIGl0ZXItPnNyY3VfcmV0KTsKPiArCQlyZXR1cm4gTlVMTDsKPiArCX0KPiAr Cj4gKwkvKiBzcmN1IHByb3RlY3RzIGFnYWluc3QgaXRlci0+Y29ubmVjdG9yIGRpc2FwcGVhcmlu ZyAqLwo+ICsJaWYgKCFrcmVmX2dldF91bmxlc3NfemVybygmaXRlci0+Y29ubmVjdG9yLT5iYXNl LnJlZmNvdW50KSkgewo+ICsJCWl0ZXItPmNvbm5lY3RvciA9IGxpc3RfZW50cnlfcmN1KGl0ZXIt PmNvbm5lY3Rvci0+aGVhZC5uZXh0LAo+ICsJCQkJCQkgc3RydWN0IGRybV9jb25uZWN0b3IsIGhl YWQpOwo+ICsJCWdvdG8gcmV0cnk7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIGl0ZXItPmNvbm5lY3Rv cjsKPiArfQo+ICsKPiArc3RhdGljIGlubGluZSB2b2lkCj4gK19fZHJtX2Nvbm5lY3Rvcl9pdGVy X25leHQoc3RydWN0IGRybV9jb25uZWN0b3JfaXRlciAqaXRlcikKPiArewo+ICsJLyogX25leHQo KSBpcyBvbmx5IGNhbGxlZCB3aGVuIF9jaGVjaygpIHN1Y2NlZWRlZCBvbiBpdGVyLT5jb25uZWN0 b3IsCj4gKwkgKiBhbmQgX2NoZWNrKCkgb25seSBzdWNjZWVkcyBpZiBrcmVmX2dldF91bmxlc3Nf emVybygpIHN1Y2NlZWRlZC4KPiArCSAqIFRoZXJlZm9yZSBkcm9wcGluZyB0aGUgcmVmZXJlbmNl IGhlcmUgaXMgdGhlIGNvcnJlY3QgcGxhY2UuICovCj4gKwlkcm1fY29ubmVjdG9yX3VucmVmZXJl bmNlKGl0ZXItPmNvbm5lY3Rvcik7Cj4gKwlpdGVyLT5jb25uZWN0b3IgPSBsaXN0X2VudHJ5X3Jj dShpdGVyLT5jb25uZWN0b3ItPmhlYWQubmV4dCwKPiArCQkJCQkgc3RydWN0IGRybV9jb25uZWN0 b3IsIGhlYWQpOwo+ICt9Cj4gIAo+IC0jZGVmaW5lIGRybV9mb3JfZWFjaF9jb25uZWN0b3IoY29u bmVjdG9yLCBkZXYsIGl0ZXIpIFwKPiAtCWZvciAoKGl0ZXIpLm1vZGVfY29uZmlnID0gTlVMTCwJ CQkJCQlcCj4gLQkgICAgIGFzc2VydF9kcm1fY29ubmVjdG9yX2xpc3RfcmVhZF9sb2NrZWQoJihk ZXYpLT5tb2RlX2NvbmZpZyksCVwKPiAtCSAgICAgY29ubmVjdG9yID0gbGlzdF9maXJzdF9lbnRy eSgmKGRldiktPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LAlcCj4gLQkJCQkJICBzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciwgaGVhZCk7CQlcCj4gLQkgICAgICZjb25uZWN0b3ItPmhlYWQgIT0gKCYo ZGV2KS0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QpOwkJXAo+IC0JICAgICBjb25uZWN0b3Ig PSBsaXN0X25leHRfZW50cnkoY29ubmVjdG9yLCBoZWFkKSkKPiArI2RlZmluZSBkcm1fZm9yX2Vh Y2hfY29ubmVjdG9yKGNvbm5lY3RvciwgZGV2LCBpdGVyKSAJCQlcCj4gKwlmb3IgKF9fZHJtX2Nv bm5lY3Rvcl9pdGVyX2luaXQoJihkZXYpLT5tb2RlX2NvbmZpZywgJihpdGVyKSk7CVwKPiArCSAg ICAgKGNvbm5lY3RvciA9IF9fZHJtX2Nvbm5lY3Rvcl9pdGVyX2NoZWNrKCYoaXRlcikpKTsJCVwK PiArCSAgICAgX19kcm1fY29ubmVjdG9yX2l0ZXJfbmV4dCgmKGl0ZXIpKSkKPiAgCj4gICNkZWZp bmUgZHJtX2Zvcl9lYWNoX2VuY29kZXIoZW5jb2RlciwgZGV2KSBcCj4gIAlsaXN0X2Zvcl9lYWNo X2VudHJ5KGVuY29kZXIsICYoZGV2KS0+bW9kZV9jb25maWcuZW5jb2Rlcl9saXN0LCBoZWFkKQo+ IC0tIAo+IDIuOC4xCj4gCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50 ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==