From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm: Update edid-derived drm_display_info fields at edid property set [v2] Date: Wed, 13 Dec 2017 14:58:29 +0100 Message-ID: <20171213135829.GC26573@phenom.ffwll.local> References: <20171211101951.fh6mf3bjbtoqo5jz@phenom.ffwll.local> <20171213084427.31199-1-keithp@keithp.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x22f.google.com (mail-wm0-x22f.google.com [IPv6:2a00:1450:400c:c09::22f]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7BFE46E503 for ; Wed, 13 Dec 2017 13:58:34 +0000 (UTC) Received: by mail-wm0-x22f.google.com with SMTP id r78so5204418wme.5 for ; Wed, 13 Dec 2017 05:58:34 -0800 (PST) Content-Disposition: inline In-Reply-To: <20171213084427.31199-1-keithp@keithp.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Keith Packard Cc: Dave Airlie , dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBEZWMgMTMsIDIwMTcgYXQgMTI6NDQ6MjZBTSAtMDgwMCwgS2VpdGggUGFja2FyZCB3 cm90ZToKPiBUaGVyZSBhcmUgYSBzZXQgb2YgdmFsdWVzIGluIHRoZSBkcm1fZGlzcGxheV9pbmZv IHN0cnVjdHVyZSBmb3IgZWFjaAo+IGNvbm5lY3RvciB3aGljaCBob2xkIGluZm9ybWF0aW9uIGRl cml2ZWQgZnJvbSBFRElELiBUaGVzZSBhcmUgY29tcHV0ZWQKPiBpbiBkcm1fYWRkX2Rpc3BsYXlf aW5mby4gQmVmb3JlIHRoaXMgcGF0Y2gsIHRoYXQgd2FzIG9ubHkgY2FsbGVkIGluCj4gZHJtX2Fk ZF9lZGlkX21vZGVzLiBUaGlzIG1lYW50IHRoYXQgdGhleSB3ZXJlIG9ubHkgc2V0IHdoZW4gRURJ RCB3YXMKPiBwcmVzZW50IGFuZCBuZXZlciByZXNldCB3aGVuIEVESUQgd2FzIG5vdCwgYXMgaGFw cGVuZWQgd2hlbiB0aGUKPiBkaXNwbGF5IHdhcyBkaXNjb25uZWN0ZWQuCj4gCj4gT25lIG9mIHRo ZXNlIGZpZWxkcywgbm9uX2Rlc2t0b3AsIGlzIHVzZWQgZnJvbQo+IGRybV9tb2RlX2Nvbm5lY3Rv cl91cGRhdGVfZWRpZF9wcm9wZXJ0eSwgdGhlIGZ1bmN0aW9uIHJlc3BvbnNpYmxlIGZvcgo+IGFz c2lnbmluZyB0aGUgbmV3IGVkaWQgdmFsdWUgdG8gdGhlIGFwcGxpY2F0aW9uLXZpc2libGUgcHJv cGVydHkuCj4gCj4gVmFyaW91cyBkcml2ZXJzIGNhbGwgdGhlc2UgdHdvIGZ1bmN0aW9ucyAoZHJt X2FkZF9lZGlkX21vZGVzIGFuZAo+IGRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9w ZXJ0eSkgaW4gZGlmZmVyZW50IG9yZGVycy4gVGhpcwo+IG1lYW5zIHRoYXQgZXZlbiB3aGVuIEVE SUQgaXMgcHJlc2VudCwgdGhlIGRybV9kaXNwbGF5X2luZm8gZmllbGRzIG1heQo+IG5vdCBoYXZl IGJlZW4gY29tcHV0ZWQgYXQgdGhlIHRpbWUgdGhhdAo+IGRybV9tb2RlX2Nvbm5lY3Rvcl91cGRh dGVfZWRpZF9wcm9wZXJ0eSB1c2VkIHRoZSBub25fZGVza3RvcCB2YWx1ZSB0bwo+IHNldCB0aGUg bm9uX2Rlc2t0b3AgcHJvcGVydHkuCj4gCj4gSSd2ZSBhZGRlZCBhIHB1YmxpYyBmdW5jdGlvbiAo ZHJtX3Jlc2V0X2Rpc3BsYXlfaW5mbykgdGhhdCByZXNldHMgdGhlCj4gZHJtX2Rpc3BsYXlfaW5m byBmaWVsZCB2YWx1ZXMgdG8gZGVmYXVsdCB2YWx1ZXMgYW5kIHRoZW4gbWFkZSB0aGUKPiBkcm1f YWRkX2Rpc3BsYXlfaW5mbyBmdW5jdGlvbiBwdWJsaWMuIFRoZXNlIHR3byBmdW5jdGlvbnMgYXJl IG5vdwo+IGNhbGxlZCBkaXJlY3RseSBmcm9tIGRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRp ZF9wcm9wZXJ0eSBzbyB0aGF0Cj4gdGhlIGRybV9kaXNwbGF5X2luZm8gZmllbGRzIGFyZSBhbHdh eXMgY29tcHV0ZWQgZnJvbSB0aGUgY3VycmVudCBFRElECj4gaW5mb3JtYXRpb24gYmVmb3JlIGJl aW5nIHVzZWQgaW4gdGhhdCBmdW5jdGlvbi4KPiAKPiBUaGlzIG1lYW5zIHRoYXQgdGhlIGRybV9k aXNwbGF5X2luZm8gdmFsdWVzIGFyZSBvZnRlbiBjb21wdXRlZCB0d2ljZSwKPiBvbmNlIHdoZW4g dGhlIEVESUQgcHJvcGVydHkgaXQgc2V0IGFuZCBhIHNlY29uZCB0aW1lIHdoZW4gRURJRCBpcyB1 c2VkCj4gdG8gY29tcHV0ZSBtb2RlcyBmb3IgdGhlIGRldmljZS4gVGhlIGFsdGVybmF0aXZlIHdv dWxkIGJlIHRvIHVuaWZvcm1seQo+IGVuc3VyZSB0aGF0IHRoZSB2YWx1ZXMgd2VyZSBjb21wdXRl ZCBvbmNlIGJlZm9yZSBiZWluZyB1c2VkLCB3aGljaAo+IHdvdWxkIHJlcXVpcmUgdGhhdCBhbGwg ZHJpdmVycyByZWxpYWJseSBpbnZva2UgdGhlIHR3byBwYXRocyBpbiB0aGUKPiBzYW1lIG9yZGVy LiBUaGUgY29tcHV0YXRpb24gaXMgaW5leHBlbnNpdmUgZW5vdWdoIHRoYXQgaXQgc2VlbXMgbW9y ZQo+IG1haW50YWluYWJsZSBpbiB0aGUgbG9uZyB0ZXJtIHRvIHNpbXBseSBjb21wdXRlIHRoZW0g aW4gYm90aCBwYXRocy4KPiAKPiBUaGUgQVBJIHRvIGRybV9hZGRfZGlzcGxheV9pbmZvIGhhcyBi ZWVuIGNoYW5nZWQgc28gdGhhdCBpdCBubyBsb25nZXIKPiB0YWtlcyB0aGUgc2V0IG9mIGVkaWQt YmFzZWQgcXVpcmtzIGFzIGEgcGFyYW1ldGVyLiBSYXRoZXIsIGl0IG5vdwo+IGNvbXB1dGVzIHRo b3NlIHF1aXJrcyBpdHNlbGYgYW5kIHJldHVybnMgdGhlbSBmb3IgZnVydGhlciB1c2UgYnkKPiBk cm1fYWRkX2VkaWRfbW9kZXMuCj4gCj4gVGhpcyBwYXRjaCBhbHNvIGluY2x1ZGVzIGEgbnVtYmVy IG9mICdjb25zdCcgYWRkaXRpb25zIGNhdXNlZCBieQo+IGRybV9tb2RlX2Nvbm5lY3Rvcl91cGRh dGVfZWRpZF9wcm9wZXJ0eSB0YWtpbmcgYSAnY29uc3Qgc3RydWN0IGVkaWQgKicKPiBwYXJhbWV0 ZXIgYW5kIHdhbnRpbmcgdG8gcGFzcyB0aGF0IGFsb25nIHRvIGRybV9hZGRfZGlzcGxheV9pbmZv Lgo+IAo+IHYyOiBhZnRlciByZXZpZXcgYnkgRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBm ZndsbC5jaD4KPiAKPiAJUmVtb3ZlZCBFWFBPUlRfU1lNQk9MX0dQTCBmb3IgZHJtX3Jlc2V0X2Rp c3BsYXlfaW5mbyBhbmQKPiAJZHJtX2FkZF9kaXNwbGF5X2luZm8uCj4gCj4gCUFkZGVkIEZJWE1F IGluIGRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eSBhYm91dAo+IAlwb3Rl bnRpYWxseSBtZXJnaW5nIHRoYXQgd2l0aCBkcm1fYWRkX2VkaWRfbW9kZXMgdG8gYXZvaWQKPiAJ dGhlIG5lZWQgZm9yIHR3byBkcml2ZXIgY2FsbHMuCj4gCj4gU2lnbmVkLW9mZi1ieTogS2VpdGgg UGFja2FyZCA8a2VpdGhwQGtlaXRocC5jb20+Cj4gUmV2aWV3ZWQtYnk6IERhbmllbCBWZXR0ZXIg PGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CgpPayB0aGVyZSdzIGEgZnVuY3Rpb25hbCBjb25mbGlj dCB3aGVuIEkgdHJpZWQgdG8gYXBwbHkgdGhpcyB0byAtZml4ZXMsCmR1ZSB0byBzb21lIHJld29y ayBhbHJlYWR5IGluIGRybS1taXNjLW5leHQuIEhlbmNlIEkgYXBwbGllZCB5b3VyIG9yaWdpbmFs CnBhdGNoIGhlcmUgdG8gZHJtLW1pc2MtbmV4dCwgYW5kIHRoZW4gY2hlcnJ5LXBpY2tlZCBpdCBv dmVyIHRvCmRybS1taXNjLWZpeGVzIGFuZCBmaXhlZCBpdCB1cC4gVGhhdCB3YXkgd2UnbGwgbm90 IGxvb3NlIHRoZSBiaXRzIG5lZWRlZAppbiAtbmV4dC4KClBsZWFzZSBkb3VibGUtY2hlY2sgSSBk aWRuJ3Qgd3JlY2sgc3R1ZmYgYmVmb3JlIEkgc2VuZCB0aGUgcHVsbCByZXF1ZXN0Cm91dC4KClRo YW5rcywgRGFuaWVsCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMgfCAx MyArKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jICAgICAgfCA1MyArKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQo+ICBpbmNsdWRlL2RybS9kcm1f ZWRpZC5oICAgICAgICAgIHwgIDIgKysKPiAgMyBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25z KCspLCAxNCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9jb25uZWN0b3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiBpbmRleCAy NWY0YjJlOWE0NGYuLjgzYzAxZjM1OWQ1NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2Nvbm5lY3Rvci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+ IEBAIC0xMjA3LDYgKzEyMDcsMTkgQEAgaW50IGRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRp ZF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJaWYgKGVkaWQp Cj4gIAkJc2l6ZSA9IEVESURfTEVOR1RIICogKDEgKyBlZGlkLT5leHRlbnNpb25zKTsKPiAgCj4g KwkvKiBTZXQgdGhlIGRpc3BsYXkgaW5mbywgdXNpbmcgZWRpZCBpZiBhdmFpbGFibGUsIG90aGVy d2lzZQo+ICsJICogcmVzZXRpbmcgdGhlIHZhbHVlcyB0byBkZWZhdWx0cy4gVGhpcyBkdXBsaWNh dGVzIHRoZSB3b3JrCj4gKwkgKiBkb25lIGluIGRybV9hZGRfZWRpZF9tb2RlcywgYnV0IHRoYXQg ZnVuY3Rpb24gaXMgbm90Cj4gKwkgKiBjb25zaXN0ZW50bHkgY2FsbGVkIGJlZm9yZSB0aGlzIG9u ZSBpbiBhbGwgZHJpdmVycyBhbmQgdGhlCj4gKwkgKiBjb21wdXRhdGlvbiBpcyBjaGVhcCBlbm91 Z2ggdGhhdCBpdCBzZWVtcyBiZXR0ZXIgdG8KPiArCSAqIGR1cGxpY2F0ZSBpdCByYXRoZXIgdGhh biBhdHRlbXB0IHRvIGVuc3VyZSBzb21lIGFyYml0cmFyeQo+ICsJICogb3JkZXJpbmcgb2YgY2Fs bHMuCj4gKwkgKi8KPiArCWlmIChlZGlkKQo+ICsJCWRybV9hZGRfZGlzcGxheV9pbmZvKGNvbm5l Y3RvciwgZWRpZCk7Cj4gKwllbHNlCj4gKwkJZHJtX3Jlc2V0X2Rpc3BsYXlfaW5mbyhjb25uZWN0 b3IpOwo+ICsKPiAgCWRybV9vYmplY3RfcHJvcGVydHlfc2V0X3ZhbHVlKCZjb25uZWN0b3ItPmJh c2UsCj4gIAkJCQkgICAgICBkZXYtPm1vZGVfY29uZmlnLm5vbl9kZXNrdG9wX3Byb3BlcnR5LAo+ ICAJCQkJICAgICAgY29ubmVjdG9yLT5kaXNwbGF5X2luZm8ubm9uX2Rlc2t0b3ApOwo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZWRpZC5jCj4gaW5kZXggNTI0ZWFjZTNkNDYwLi4zNjU5MDFjMWMzM2MgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Vk aWQuYwo+IEBAIC0xNzMxLDcgKzE3MzEsNyBAQCBFWFBPUlRfU1lNQk9MKGRybV9lZGlkX2R1cGxp Y2F0ZSk7Cj4gICAqCj4gICAqIFJldHVybnMgdHJ1ZSBpZiBAdmVuZG9yIGlzIGluIEBlZGlkLCBm YWxzZSBvdGhlcndpc2UKPiAgICovCj4gLXN0YXRpYyBib29sIGVkaWRfdmVuZG9yKHN0cnVjdCBl ZGlkICplZGlkLCBjb25zdCBjaGFyICp2ZW5kb3IpCj4gK3N0YXRpYyBib29sIGVkaWRfdmVuZG9y KGNvbnN0IHN0cnVjdCBlZGlkICplZGlkLCBjb25zdCBjaGFyICp2ZW5kb3IpCj4gIHsKPiAgCWNo YXIgZWRpZF92ZW5kb3JbM107Cj4gIAo+IEBAIC0xNzQ5LDcgKzE3NDksNyBAQCBzdGF0aWMgYm9v bCBlZGlkX3ZlbmRvcihzdHJ1Y3QgZWRpZCAqZWRpZCwgY29uc3QgY2hhciAqdmVuZG9yKQo+ICAg Kgo+ICAgKiBUaGlzIHRlbGxzIHN1YnNlcXVlbnQgcm91dGluZXMgd2hhdCBmaXhlcyB0aGV5IG5l ZWQgdG8gYXBwbHkuCj4gICAqLwo+IC1zdGF0aWMgdTMyIGVkaWRfZ2V0X3F1aXJrcyhzdHJ1Y3Qg ZWRpZCAqZWRpZCkKPiArc3RhdGljIHUzMiBlZGlkX2dldF9xdWlya3MoY29uc3Qgc3RydWN0IGVk aWQgKmVkaWQpCj4gIHsKPiAgCWNvbnN0IHN0cnVjdCBlZGlkX3F1aXJrICpxdWlyazsKPiAgCWlu dCBpOwo+IEBAIC0yODEzLDcgKzI4MTMsNyBAQCBhZGRfZGV0YWlsZWRfbW9kZXMoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3Rvciwgc3RydWN0IGVkaWQgKmVkaWQsCj4gIC8qCj4gICAqIFNl YXJjaCBFRElEIGZvciBDRUEgZXh0ZW5zaW9uIGJsb2NrLgo+ICAgKi8KPiAtc3RhdGljIHU4ICpk cm1fZmluZF9lZGlkX2V4dGVuc2lvbihzdHJ1Y3QgZWRpZCAqZWRpZCwgaW50IGV4dF9pZCkKPiAr c3RhdGljIHU4ICpkcm1fZmluZF9lZGlkX2V4dGVuc2lvbihjb25zdCBzdHJ1Y3QgZWRpZCAqZWRp ZCwgaW50IGV4dF9pZCkKPiAgewo+ICAJdTggKmVkaWRfZXh0ID0gTlVMTDsKPiAgCWludCBpOwo+ IEBAIC0yODM1LDEyICsyODM1LDEyIEBAIHN0YXRpYyB1OCAqZHJtX2ZpbmRfZWRpZF9leHRlbnNp b24oc3RydWN0IGVkaWQgKmVkaWQsIGludCBleHRfaWQpCj4gIAlyZXR1cm4gZWRpZF9leHQ7Cj4g IH0KPiAgCj4gLXN0YXRpYyB1OCAqZHJtX2ZpbmRfY2VhX2V4dGVuc2lvbihzdHJ1Y3QgZWRpZCAq ZWRpZCkKPiArc3RhdGljIHU4ICpkcm1fZmluZF9jZWFfZXh0ZW5zaW9uKGNvbnN0IHN0cnVjdCBl ZGlkICplZGlkKQo+ICB7Cj4gIAlyZXR1cm4gZHJtX2ZpbmRfZWRpZF9leHRlbnNpb24oZWRpZCwg Q0VBX0VYVCk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB1OCAqZHJtX2ZpbmRfZGlzcGxheWlkX2V4dGVu c2lvbihzdHJ1Y3QgZWRpZCAqZWRpZCkKPiArc3RhdGljIHU4ICpkcm1fZmluZF9kaXNwbGF5aWRf ZXh0ZW5zaW9uKGNvbnN0IHN0cnVjdCBlZGlkICplZGlkKQo+ICB7Cj4gIAlyZXR1cm4gZHJtX2Zp bmRfZWRpZF9leHRlbnNpb24oZWRpZCwgRElTUExBWUlEX0VYVCk7Cj4gIH0KPiBAQCAtNDM3OCw3 ICs0Mzc4LDcgQEAgZHJtX3BhcnNlX2hkbWlfdnNkYl92aWRlbyhzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLCBjb25zdCB1OCAqZGIpCj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGRybV9w YXJzZV9jZWFfZXh0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gLQkJCSAgICAg IHN0cnVjdCBlZGlkICplZGlkKQo+ICsJCQkgICAgICBjb25zdCBzdHJ1Y3QgZWRpZCAqZWRpZCkK PiAgewo+ICAJc3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmluZm8gPSAmY29ubmVjdG9yLT5kaXNw bGF5X2luZm87Cj4gIAljb25zdCB1OCAqZWRpZF9leHQ7Cj4gQEAgLTQ0MTIsMTEgKzQ0MTIsMzQg QEAgc3RhdGljIHZvaWQgZHJtX3BhcnNlX2NlYV9leHQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvciwKPiAgCX0KPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgZHJtX2FkZF9kaXNwbGF5X2lu Zm8oc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAtCQkJCSBzdHJ1Y3QgZWRpZCAq ZWRpZCwgdTMyIHF1aXJrcykKPiArLyogQSBjb25uZWN0b3IgaGFzIG5vIEVESUQgaW5mb3JtYXRp b24sIHNvIHdlJ3ZlIGdvdCBubyBFRElEIHRvIGNvbXB1dGUgcXVpcmtzIGZyb20uIFJlc2V0Cj4g KyAqIGFsbCBvZiB0aGUgdmFsdWVzIHdoaWNoIHdvdWxkIGhhdmUgYmVlbiBzZXQgZnJvbSBFRElE Cj4gKyAqLwo+ICt2b2lkCj4gK2RybV9yZXNldF9kaXNwbGF5X2luZm8oc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJc3RydWN0IGRybV9kaXNwbGF5X2luZm8gKmluZm8g PSAmY29ubmVjdG9yLT5kaXNwbGF5X2luZm87Cj4gKwo+ICsJaW5mby0+d2lkdGhfbW0gPSAwOwo+ ICsJaW5mby0+aGVpZ2h0X21tID0gMDsKPiArCj4gKwlpbmZvLT5icGMgPSAwOwo+ICsJaW5mby0+ Y29sb3JfZm9ybWF0cyA9IDA7Cj4gKwlpbmZvLT5jZWFfcmV2ID0gMDsKPiArCWluZm8tPm1heF90 bWRzX2Nsb2NrID0gMDsKPiArCWluZm8tPmR2aV9kdWFsID0gZmFsc2U7Cj4gKwlpbmZvLT5oYXNf aGRtaV9pbmZvZnJhbWUgPSBmYWxzZTsKPiArCj4gKwlpbmZvLT5ub25fZGVza3RvcCA9IDA7Cj4g K30KPiArRVhQT1JUX1NZTUJPTF9HUEwoZHJtX3Jlc2V0X2Rpc3BsYXlfaW5mbyk7Cj4gKwo+ICt1 MzIgZHJtX2FkZF9kaXNwbGF5X2luZm8oc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvciwg Y29uc3Qgc3RydWN0IGVkaWQgKmVkaWQpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGlzcGxheV9pbmZv ICppbmZvID0gJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvOwo+ICAKPiArCXUzMiBxdWlya3MgPSBl ZGlkX2dldF9xdWlya3MoZWRpZCk7Cj4gKwo+ICAJaW5mby0+d2lkdGhfbW0gPSBlZGlkLT53aWR0 aF9jbSAqIDEwOwo+ICAJaW5mby0+aGVpZ2h0X21tID0gZWRpZC0+aGVpZ2h0X2NtICogMTA7Cj4g IAo+IEBAIC00NDMwLDExICs0NDUzLDEzIEBAIHN0YXRpYyB2b2lkIGRybV9hZGRfZGlzcGxheV9p bmZvKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAo+ICAJaW5mby0+bm9uX2Rl c2t0b3AgPSAhIShxdWlya3MgJiBFRElEX1FVSVJLX05PTl9ERVNLVE9QKTsKPiAgCj4gKwlEUk1f REVCVUdfS01TKCJub25fZGVza3RvcCBzZXQgdG8gJWRcbiIsIGluZm8tPm5vbl9kZXNrdG9wKTsK PiArCj4gIAlpZiAoZWRpZC0+cmV2aXNpb24gPCAzKQo+IC0JCXJldHVybjsKPiArCQlyZXR1cm4g cXVpcmtzOwo+ICAKPiAgCWlmICghKGVkaWQtPmlucHV0ICYgRFJNX0VESURfSU5QVVRfRElHSVRB TCkpCj4gLQkJcmV0dXJuOwo+ICsJCXJldHVybiBxdWlya3M7Cj4gIAo+ICAJZHJtX3BhcnNlX2Nl YV9leHQoY29ubmVjdG9yLCBlZGlkKTsKPiAgCj4gQEAgLTQ0NTQsNyArNDQ3OSw3IEBAIHN0YXRp YyB2b2lkIGRybV9hZGRfZGlzcGxheV9pbmZvKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsCj4gIAo+ICAJLyogT25seSBkZWZpbmVkIGZvciAxLjQgd2l0aCBkaWdpdGFsIGRpc3BsYXlz ICovCj4gIAlpZiAoZWRpZC0+cmV2aXNpb24gPCA0KQo+IC0JCXJldHVybjsKPiArCQlyZXR1cm4g cXVpcmtzOwo+ICAKPiAgCXN3aXRjaCAoZWRpZC0+aW5wdXQgJiBEUk1fRURJRF9ESUdJVEFMX0RF UFRIX01BU0spIHsKPiAgCWNhc2UgRFJNX0VESURfRElHSVRBTF9ERVBUSF82Ogo+IEBAIC00NDg5 LDcgKzQ1MTQsOSBAQCBzdGF0aWMgdm9pZCBkcm1fYWRkX2Rpc3BsYXlfaW5mbyhzdHJ1Y3QgZHJt X2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJCWluZm8tPmNvbG9yX2Zvcm1hdHMgfD0gRFJNX0NP TE9SX0ZPUk1BVF9ZQ1JDQjQ0NDsKPiAgCWlmIChlZGlkLT5mZWF0dXJlcyAmIERSTV9FRElEX0ZF QVRVUkVfUkdCX1lDUkNCNDIyKQo+ICAJCWluZm8tPmNvbG9yX2Zvcm1hdHMgfD0gRFJNX0NPTE9S X0ZPUk1BVF9ZQ1JDQjQyMjsKPiArCXJldHVybiBxdWlya3M7Cj4gIH0KPiArRVhQT1JUX1NZTUJP TF9HUEwoZHJtX2FkZF9kaXNwbGF5X2luZm8pOwo+ICAKPiAgc3RhdGljIGludCB2YWxpZGF0ZV9k aXNwbGF5aWQodTggKmRpc3BsYXlpZCwgaW50IGxlbmd0aCwgaW50IGlkeCkKPiAgewo+IEBAIC00 NjQ1LDggKzQ2NzIsNiBAQCBpbnQgZHJtX2FkZF9lZGlkX21vZGVzKHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IsIHN0cnVjdCBlZGlkICplZGlkKQo+ICAJCXJldHVybiAwOwo+ICAJfQo+ ICAKPiAtCXF1aXJrcyA9IGVkaWRfZ2V0X3F1aXJrcyhlZGlkKTsKPiAtCj4gIAlkcm1fZWRpZF90 b19lbGQoY29ubmVjdG9yLCBlZGlkKTsKPiAgCj4gIAkvKgo+IEBAIC00NjU0LDcgKzQ2NzksNyBA QCBpbnQgZHJtX2FkZF9lZGlkX21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Is IHN0cnVjdCBlZGlkICplZGlkKQo+ICAJICogVG8gYXZvaWQgbXVsdGlwbGUgcGFyc2luZyBvZiBz YW1lIGJsb2NrLCBsZXRzIHBhcnNlIHRoYXQgbWFwCj4gIAkgKiBmcm9tIHNpbmsgaW5mbywgYmVm b3JlIHBhcnNpbmcgQ0VBIG1vZGVzLgo+ICAJICovCj4gLQlkcm1fYWRkX2Rpc3BsYXlfaW5mbyhj b25uZWN0b3IsIGVkaWQsIHF1aXJrcyk7Cj4gKwlxdWlya3MgPSBkcm1fYWRkX2Rpc3BsYXlfaW5m byhjb25uZWN0b3IsIGVkaWQpOwo+ICAKPiAgCS8qCj4gIAkgKiBFRElEIHNwZWMgc2F5cyBtb2Rl cyBzaG91bGQgYmUgcHJlZmVycmVkIGluIHRoaXMgb3JkZXI6Cj4gZGlmZiAtLWdpdCBhL2luY2x1 ZGUvZHJtL2RybV9lZGlkLmggYi9pbmNsdWRlL2RybS9kcm1fZWRpZC5oCj4gaW5kZXggYjI1ZDEy ZWYxMjBhLi44ZDg5YTljMzc0OGQgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2VkaWQu aAo+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9lZGlkLmgKPiBAQCAtNDY1LDYgKzQ2NSw4IEBAIHN0 cnVjdCBlZGlkICpkcm1fZ2V0X2VkaWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwK PiAgc3RydWN0IGVkaWQgKmRybV9nZXRfZWRpZF9zd2l0Y2hlcm9vKHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IsCj4gIAkJCQkgICAgIHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlcik7 Cj4gIHN0cnVjdCBlZGlkICpkcm1fZWRpZF9kdXBsaWNhdGUoY29uc3Qgc3RydWN0IGVkaWQgKmVk aWQpOwo+ICt2b2lkIGRybV9yZXNldF9kaXNwbGF5X2luZm8oc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3Rvcik7Cj4gK3UzMiBkcm1fYWRkX2Rpc3BsYXlfaW5mbyhzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yLCBjb25zdCBzdHJ1Y3QgZWRpZCAqZWRpZCk7Cj4gIGludCBkcm1fYWRk X2VkaWRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvciwgc3RydWN0IGVkaWQg KmVkaWQpOwo+ICAKPiAgdTggZHJtX21hdGNoX2NlYV9tb2RlKGNvbnN0IHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICp0b19tYXRjaCk7Cj4gLS0gCj4gMi4xNS4wLnJjMAo+IAoKLS0gCkRhbmllbCBW ZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZm d2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=