From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH 32/32] drm: Nuke fb->pixel_format Date: Thu, 17 Nov 2016 20:39:04 +0200 Message-ID: <10276742.VRT1PEbuap@avalon> References: <1479399271-31991-1-git-send-email-ville.syrjala@linux.intel.com> <1479399271-31991-33-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from galahad.ideasonboard.com (galahad.ideasonboard.com [185.26.127.97]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6750E6E844 for ; Thu, 17 Nov 2016 18:38:53 +0000 (UTC) In-Reply-To: <1479399271-31991-33-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: ville.syrjala@linux.intel.com Cc: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SGkgVmlsbGUsCgpUaGFuayB5b3UgZm9yIHRoZSBwYXRjaC4KCk9uIFRodXJzZGF5IDE3IE5vdiAy MDE2IDE4OjE0OjMxIHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tIHdyb3RlOgo+IEZyb206 IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gCj4gUmVw bGFjZSB1c2VzIG9mIGZiLT5iaXRzX3Blcl9waXhlbCB3aXRoIGZiLT5mb3JtYXQtPmZvcm1hdC4K CkkgYXNzdW1lIHlvdSBtZWFuIGZiLT5waXhlbF9mb3JtYXQuCgo+IExlc3MgZHVwbGljYXRlZCBp bmZvcm1hdGlvbiBpcyBhIGdvb2QgdGhpbmcuCj4gCj4gTm90ZSB0aGF0IGNvY2NpbmVsbGUgZmFp bGVkIHRvIGVsaW1pbmF0ZSB0aGUKPiAiLyogZm91cmNjIGZvcm1hdCAqLyIgY29tbWVudCBmcm9t IGRybV9mcmFtZWJ1ZmZlci5oLCBzbyBJIGhhZAo+IHRvIGRvIHRoYXQgcGFydCBtYW51YWxseS4K CltzbmlwXQoKPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFA bGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9kY2Vf djEwXzAuYyAgICAgICAgICB8ICA0ICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9k Y2VfdjExXzAuYyAgICAgICAgICB8ICA0ICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9kY2VfdjZfMC5jICAgICAgICAgICB8ICA0ICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9kY2VfdjhfMC5jICAgICAgICAgICB8ICA0ICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vYXJj L2FyY3BndV9jcnRjLmMgICAgICAgICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9h cm0vaGRsY2RfY3J0Yy5jICAgICAgICAgICAgICAgIHwgIDQgKy0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9hcm0vbWFsaWRwX3BsYW5lcy5jICAgICAgICAgICAgIHwgMTAgKysrLS0tLQo+ICBkcml2ZXJz L2dwdS9kcm0vYXJtYWRhL2FybWFkYV9jcnRjLmMgICAgICAgICAgICB8ICAyICstCj4gIGRyaXZl cnMvZ3B1L2RybS9hcm1hZGEvYXJtYWRhX292ZXJsYXkuYyAgICAgICAgIHwgIDIgKy0KPiAgZHJp dmVycy9ncHUvZHJtL2F0bWVsLWhsY2RjL2F0bWVsX2hsY2RjX2xheWVyLmMgfCAgMiArLQo+ICBk cml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfcGxhbmUuYyB8IDIyICsrKysr KystLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgICAgICAgICAgICAgICAg ICAgIHwgIDYgKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYyAgICAgICAgICAgICAg ICAgICAgICB8ICA0ICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaGVscGVyLmMgICAg ICAgICAgICAgICB8ICA0ICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2NtYV9oZWxwZXIu YyAgICAgICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIu YyAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9tb2Rlc2V0X2hl bHBlci5jICAgICAgICAgICAgfCAgMSAtCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fcGxhbmUuYyAg ICAgICAgICAgICAgICAgICAgIHwgIDYgKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4 eW5vczU0MzNfZHJtX2RlY29uLmMgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9leHlub3Mv ZXh5bm9zN19kcm1fZGVjb24uYyAgICAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2V4eW5v cy9leHlub3NfZHJtX2ZpbWQuYyAgICAgICAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vZXh5 bm9zL2V4eW5vc19taXhlci5jICAgICAgICAgICB8ICA4ICsrLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9mc2wtZGN1L2ZzbF9kY3VfZHJtX3BsYW5lLmMgICAgIHwgIDQgKy0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9oaXNpbGljb24va2lyaW4va2lyaW5fZHJtX2FkZS5jIHwgIDYgKystLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAgICAgICB8ICAzICstCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pY19wbGFuZS5jICAgICAgIHwgIDQgKy0tCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICAgICAgICAgIHwgMzMgKysrKysr KysrKy0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYyAgICAg ICAgICAgICAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vdmVybGF5LmMg ICAgICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAg ICAgICAgICAgICAgIHwgMTAgKysrLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9z cHJpdGUuYyAgICAgICAgICAgICB8IDEyICsrKystLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pbXgv aXB1djMtcGxhbmUuYyAgICAgICAgICAgICAgIHwgNDAgKysrKysrKysrLS0tLS0tLS0tLS0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9wbGFuZS5jICAgICAgICB8ICAyICst Cj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDQvbWRwNF9wbGFuZS5jICAgICAgIHwgIDIg Ky0KPiAgZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X3BsYW5lLmMgICAgICAgfCAg NCArLS0KPiAgZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmIuYyAgICAgICAgICAgICAgICAgICAg fCAxMCArKystLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L2Rpc3BudjA0L292ZXJsYXku YyAgICAgIHwgIDggKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbnY1MF9kaXNwbGF5 LmMgICAgICAgICAgfCAgNCArLS0KPiAgZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9mYi5j ICAgICAgICAgICAgICAgfCAxMCArKystLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vYXRv bWJpb3NfY3J0Yy5jICAgICAgICAgIHwgIDggKystLS0KPiAgZHJpdmVycy9ncHUvZHJtL3JjYXIt ZHUvcmNhcl9kdV9wbGFuZS5jICAgICAgICAgfCAgNCArLS0KPiAgZHJpdmVycy9ncHUvZHJtL3Jj YXItZHUvcmNhcl9kdV92c3AuYyAgICAgICAgICAgfCAgNCArLS0KPiAgZHJpdmVycy9ncHUvZHJt L3JvY2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYyAgICAgfCAyMiArKysrKysrLS0tLS0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vc2htb2JpbGUvc2htb2JfZHJtX2NydGMuYyAgICAgICB8ICA2ICsrLS0K PiAgZHJpdmVycy9ncHUvZHJtL3NobW9iaWxlL3NobW9iX2RybV9wbGFuZS5jICAgICAgfCAgNCAr LS0KPiAgZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZ2RwLmMgICAgICAgICAgICAgICAgICAgfCAx MCArKystLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hxdmRwLmMgICAgICAgICAgICAg ICAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2JhY2tlbmQuYyAgICAg ICAgICAgfCAgNSArKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jICAgICAgICAgICAg ICAgICAgICAgIHwgIDYgKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vdGVncmEvZmIuYyAgICAgICAg ICAgICAgICAgICAgICB8ICAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX2Ny dGMuYyAgICAgICAgICAgIHwgIDQgKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2Rj X3BsYW5lLmMgICAgICAgICAgIHwgIDQgKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3Bs YW5lLmMgICAgICAgICAgICAgICAgIHwgIDYgKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9rbXMuYyAgICAgICAgICAgICB8ICAyIC0tCj4gIGRyaXZlcnMvZ3B1L2RybS96dGUv enhfcGxhbmUuYyAgICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgaW5jbHVkZS9kcm0vZHJtX2Zy YW1lYnVmZmVyLmggICAgICAgICAgICAgICAgICAgfCAgNCAtLS0KPiAgNTYgZmlsZXMgY2hhbmdl ZCwgMTcxIGluc2VydGlvbnMoKyksIDE3OSBkZWxldGlvbnMoLSkKCltzbmlwXQoKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jCj4gYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2NydGNfaGVscGVyLmMgaW5kZXggNWQyY2IxMzhlYmE2Li45NGJjZTBiNDYyYWEgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2RybV9jcnRjX2hlbHBlci5jCj4gQEAgLTU4OCw4ICs1ODgsOCBAQCBpbnQg ZHJtX2NydGNfaGVscGVyX3NldF9jb25maWcoc3RydWN0IGRybV9tb2RlX3NldCAqc2V0KQo+IGlm IChzZXQtPmNydGMtPnByaW1hcnktPmZiID09IE5VTEwpIHsKPiAgCQkJRFJNX0RFQlVHX0tNUygi Y3J0YyBoYXMgbm8gZmIsIGZ1bGwgbW9kZSBzZXRcbiIpOwo+ICAJCQltb2RlX2NoYW5nZWQgPSB0 cnVlOwo+IC0JCX0gZWxzZSBpZiAoc2V0LT5mYi0+cGl4ZWxfZm9ybWF0ICE9Cj4gLQkJCSAgIHNl dC0+Y3J0Yy0+cHJpbWFyeS0+ZmItPnBpeGVsX2Zvcm1hdCkgewo+ICsJCX0gZWxzZSBpZiAoc2V0 LT5mYi0+Zm9ybWF0LT5mb3JtYXQgIT0KPiArCQkJICAgc2V0LT5jcnRjLT5wcmltYXJ5LT5mYi0+ Zm9ybWF0LT5mb3JtYXQpIHsKPiAgCQkJbW9kZV9jaGFuZ2VkID0gdHJ1ZTsKCllvdSBjb3VsZCBh bHNvIGNvbXBhcmUgc2V0LT5mYi0+Zm9ybWF0ICE9IHNldC0+Y3J0Yy0+cHJpbWFyeS0+ZmItPmZv cm1hdCB3aGljaCAKc2hvdWxkIGJlIHNsaWdodGx5IG1vcmUgZWZmaWNpZW50LgoKPiAgCQl9IGVs c2UKPiAgCQkJZmJfY2hhbmdlZCA9IHRydWU7Cgpbc25pcF0KCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2RybV9mcmFt ZWJ1ZmZlci5jIGluZGV4IDk4YzA1NDA5ODgwOC4uZTQ4YzllN2ZhNzhlIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fZnJhbWVidWZmZXIuYwo+IEBAIC02MzQsNyArNjM0LDcgQEAgaW50IGRybV9mcmFtZWJ1 ZmZlcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdAo+IGRybV9mcmFtZWJ1ZmZl ciAqZmIsIElOSVRfTElTVF9IRUFEKCZmYi0+ZmlscF9oZWFkKTsKPiAgCWlmIChXQVJOX09OX09O Q0UoZmItPmRldiAhPSBkZXYpKSB7Cj4gIAkJZmItPmRldiA9IGRldjsKPiAtCQlmYi0+Zm9ybWF0 ID0gZHJtX2Zvcm1hdF9pbmZvKGZiLT5waXhlbF9mb3JtYXQpOwo+ICsJCWZiLT5mb3JtYXQgPSBk cm1fZm9ybWF0X2luZm8oZmItPmZvcm1hdC0+Zm9ybWF0KTsKClRoaXMgaXMgYW4gaW50ZXJlc3Rp bmcgb25lIDotKSBJZiBmYi0+Zm9ybWF0IGlzIE5VTEwgeW91IHdpbGwgY3Jhc2gsIGFuZCBpZiBp dCAKaXNuJ3QgdGhpcyBpcyBhIG5vLW9wLgoKPiAgCX0KPiAgCWZiLT5mdW5jcyA9IGZ1bmNzOwoK W3NuaXBdCgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu Ywo+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgaW5kZXggZWUyNzJlYzg3 MzJjLi5lNTcxZTlhMzdhYzQKPiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2RlYnVnZnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j Cj4gQEAgLTMwNDIsNyArMzA0Miw4IEBAIHN0YXRpYyB2b2lkIGludGVsX3BsYW5lX2luZm8oc3Ry dWN0IHNlcV9maWxlICptLAo+IHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjKSBzdGF0ZSA9 IHBsYW5lLT5zdGF0ZTsKPiAKPiAgCQlpZiAoc3RhdGUtPmZiKSB7Cj4gLQkJCWRybV9nZXRfZm9y bWF0X25hbWUoc3RhdGUtPmZiLT5waXhlbF9mb3JtYXQsIAomZm9ybWF0X25hbWUpOwo+ICsJCQlk cm1fZ2V0X2Zvcm1hdF9uYW1lKHN0YXRlLT5mYi0+Zm9ybWF0LT5mb3JtYXQsCj4gKwkJCQkJICAg ICZmb3JtYXRfbmFtZSk7CgoocmFuZG9tbHkgcGlja2luZyBhIGRyaXZlciBmb3IgdGhpcyBjb21t ZW50KQoKQXMgYSBjYW5kaWRhdGUgZm9yIGFub3RoZXIgcGF0Y2ggc2VyaWVzLCB3aGF0IHdvdWxk IHlvdSB0aGluayBhYm91dCBzdG9yaW5nIApmb3JtYXQgbmFtZXMgaW4gdGhlIGZvcm1hdCBpbmZv IHN0cnVjdHVyZSwgYW5kIGdldHRpbmcgcmlkIG9mIHRoZSAKZHJtX2dldF9mb3JtYXRfbmFtZSgp IGZ1bmN0aW9uID8gSXQgbWlnaHQgaW5jcmVhc2UgdGhlIGtlcm5lbCBzaXplIGEgYml0IAp0aG91 Z2gsIGJ1dCBJIGRvbid0IHRoaW5rIHRoYXQncyBhbiBpc3N1ZS4KCj4gIAkJfSBlbHNlIHsKPiAg CQkJc3ByaW50Zihmb3JtYXRfbmFtZS5zdHIsICJOL0EiKTsKPiAgCQl9Cgpbc25pcF0KCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGluZGV4IDZjODg5ZjBlOGUwZi4uZjVmOWYx NDIyZDY5Cj4gMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCgpbc25pcF0K Cj4gQEAgLTEyMTUxLDcgKzEyMTQ4LDcgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX3BhZ2VfZmxp cChzdHJ1Y3QgZHJtX2NydGMKPiAqY3J0YywgcmV0dXJuIC1FQlVTWTsKPiAKPiAgCS8qIENhbid0 IGNoYW5nZSBwaXhlbCBmb3JtYXQgdmlhIE1JIGRpc3BsYXkgZmxpcHMuICovCj4gLQlpZiAoZmIt PnBpeGVsX2Zvcm1hdCAhPSBjcnRjLT5wcmltYXJ5LT5mYi0+cGl4ZWxfZm9ybWF0KQo+ICsJaWYg KGZiLT5mb3JtYXQtPmZvcm1hdCAhPSBjcnRjLT5wcmltYXJ5LT5mYi0+Zm9ybWF0LT5mb3JtYXQp CgpZb3UgY2FuIHdyaXRlIHRoaXMKCglmYi0+Zm9ybWF0ICE9IGNydGMtPnByaW1hcnktPmZiLT5m b3JtYXQKCj4gIAkJcmV0dXJuIC1FSU5WQUw7Cgpbc25pcF0KCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pbXgvaXB1djMtcGxhbmUuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2lteC9pcHV2 My1wbGFuZS5jIGluZGV4IGU3NGEwYWQ1Mjk1MC4uNzZmY2M1ZjBkOWUxIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pbXgvaXB1djMtcGxhbmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pbXgvaXB1djMtcGxhbmUuYwo+IEBAIC03Nyw3ICs3Nyw3IEBAIGRybV9wbGFuZV9zdGF0ZV90 b19lYmEoc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCj4gIAlCVUdfT04oIWNtYV9vYmop Owo+IAo+ICAJcmV0dXJuIGNtYV9vYmotPnBhZGRyICsgZmItPm9mZnNldHNbMF0gKyBmYi0+cGl0 Y2hlc1swXSAqIHkgKwo+IC0JICAgICAgIGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhlbF9m b3JtYXQsIDApICogeDsKPiArCSAgICAgICBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+Zm9ybWF0 LT5mb3JtYXQsIDApICogeDsKCllvdSBzaG91bGQgdXNlIGZiLT5mb3JtYXQtPmNwcFswXS4gTGlr ZXdpc2UgZm9yIHRoZSBvdGhlciBmb3JtYXQgaW5mb3JtYXRpb24gCmZpZWxkcyBhY2Nlc3NlZCBp biB0aGlzIGRyaXZlci4KCj4gIH0KPiAKPiAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nCj4g QEAgLTkyLDExICs5MiwxMSBAQCBkcm1fcGxhbmVfc3RhdGVfdG9fdWJvKHN0cnVjdCBkcm1fcGxh bmVfc3RhdGUgKnN0YXRlKQo+ICAJY21hX29iaiA9IGRybV9mYl9jbWFfZ2V0X2dlbV9vYmooZmIs IDEpOwo+ICAJQlVHX09OKCFjbWFfb2JqKTsKPiAKPiAtCXggLz0gZHJtX2Zvcm1hdF9ob3J6X2No cm9tYV9zdWJzYW1wbGluZyhmYi0+cGl4ZWxfZm9ybWF0KTsKPiAtCXkgLz0gZHJtX2Zvcm1hdF92 ZXJ0X2Nocm9tYV9zdWJzYW1wbGluZyhmYi0+cGl4ZWxfZm9ybWF0KTsKPiArCXggLz0gZHJtX2Zv cm1hdF9ob3J6X2Nocm9tYV9zdWJzYW1wbGluZyhmYi0+Zm9ybWF0LT5mb3JtYXQpOwo+ICsJeSAv PSBkcm1fZm9ybWF0X3ZlcnRfY2hyb21hX3N1YnNhbXBsaW5nKGZiLT5mb3JtYXQtPmZvcm1hdCk7 Cj4gCj4gIAlyZXR1cm4gY21hX29iai0+cGFkZHIgKyBmYi0+b2Zmc2V0c1sxXSArIGZiLT5waXRj aGVzWzFdICogeSArCj4gLQkgICAgICAgZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zv cm1hdCwgMSkgKiB4IC0gZWJhOwo+ICsJICAgICAgIGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5m b3JtYXQtPmZvcm1hdCwgMSkgKiB4IC0gZWJhOwo+ICB9Cj4gCj4gIHN0YXRpYyBpbmxpbmUgdW5z aWduZWQgbG9uZwo+IEBAIC0xMTEsMTEgKzExMSwxMSBAQCBkcm1fcGxhbmVfc3RhdGVfdG9fdmJv KHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQo+ICAJY21hX29iaiA9IGRybV9mYl9jbWFf Z2V0X2dlbV9vYmooZmIsIDIpOwo+ICAJQlVHX09OKCFjbWFfb2JqKTsKPiAKPiAtCXggLz0gZHJt X2Zvcm1hdF9ob3J6X2Nocm9tYV9zdWJzYW1wbGluZyhmYi0+cGl4ZWxfZm9ybWF0KTsKPiAtCXkg Lz0gZHJtX2Zvcm1hdF92ZXJ0X2Nocm9tYV9zdWJzYW1wbGluZyhmYi0+cGl4ZWxfZm9ybWF0KTsK PiArCXggLz0gZHJtX2Zvcm1hdF9ob3J6X2Nocm9tYV9zdWJzYW1wbGluZyhmYi0+Zm9ybWF0LT5m b3JtYXQpOwo+ICsJeSAvPSBkcm1fZm9ybWF0X3ZlcnRfY2hyb21hX3N1YnNhbXBsaW5nKGZiLT5m b3JtYXQtPmZvcm1hdCk7Cj4gCj4gIAlyZXR1cm4gY21hX29iai0+cGFkZHIgKyBmYi0+b2Zmc2V0 c1syXSArIGZiLT5waXRjaGVzWzJdICogeSArCj4gLQkgICAgICAgZHJtX2Zvcm1hdF9wbGFuZV9j cHAoZmItPnBpeGVsX2Zvcm1hdCwgMikgKiB4IC0gZWJhOwo+ICsJICAgICAgIGRybV9mb3JtYXRf cGxhbmVfY3BwKGZiLT5mb3JtYXQtPmZvcm1hdCwgMikgKiB4IC0gZWJhOwo+ICB9Cj4gCj4gIHZv aWQgaXB1X3BsYW5lX3B1dF9yZXNvdXJjZXMoc3RydWN0IGlwdV9wbGFuZSAqaXB1X3BsYW5lKQo+ IEBAIC0yODEsNyArMjgxLDcgQEAgc3RhdGljIGludCBpcHVfcGxhbmVfYXRvbWljX2NoZWNrKHN0 cnVjdCBkcm1fcGxhbmUKPiAqcGxhbmUsICovCj4gIAlpZiAob2xkX2ZiICYmIChzdGF0ZS0+c3Jj X3cgIT0gb2xkX3N0YXRlLT5zcmNfdyB8fAo+ICAJCQkgICAgICBzdGF0ZS0+c3JjX2ggIT0gb2xk X3N0YXRlLT5zcmNfaCB8fAo+IC0JCQkgICAgICBmYi0+cGl4ZWxfZm9ybWF0ICE9IG9sZF9mYi0+ cGl4ZWxfZm9ybWF0KSkKPiArCQkJICAgICAgZmItPmZvcm1hdC0+Zm9ybWF0ICE9IG9sZF9mYi0+ Zm9ybWF0LT5mb3JtYXQpKQoKCWZiLT5mb3JtYXQgIT0gb2xkX2ZiLT5mb3JtYXQKCkxpa2V3aXNl IGZvciB0aGUgb3RoZXIgbG9jYXRpb25zIGluIHRoaXMgZHJpdmVyLgoKW3NuaXBdCgoKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAvbWRwNS9tZHA1X3BsYW5lLmMKPiBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vbWRwL21kcDUvbWRwNV9wbGFuZS5jIGluZGV4Cj4gODFjMDU2MmFi NDg5Li5mYjMyZDQ1NjNkOTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tZHAv bWRwNS9tZHA1X3BsYW5lLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21kcC9tZHA1L21k cDVfcGxhbmUuYwo+IEBAIC0zNDAsNyArMzQwLDcgQEAgc3RhdGljIGludCBtZHA1X3BsYW5lX2F0 b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lCj4gKnBsYW5lLCBpZiAocGxhbmVfZW5hYmxlZChz dGF0ZSkgJiYgcGxhbmVfZW5hYmxlZChvbGRfc3RhdGUpKSB7Cj4gIAkJLyogd2UgY2Fubm90IGNo YW5nZSBTTVAgYmxvY2sgY29uZmlndXJhdGlvbiBkdXJpbmcgc2Nhbm91dDogKi8KPiAgCQlib29s IGZ1bGxfbW9kZXNldCA9IGZhbHNlOwo+IC0JCWlmIChzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCAh PSBvbGRfc3RhdGUtPmZiLT5waXhlbF9mb3JtYXQpIHsKPiArCQlpZiAoc3RhdGUtPmZiLT5mb3Jt YXQtPmZvcm1hdCAhPSBvbGRfc3RhdGUtPmZiLT5mb3JtYXQtCj5mb3JtYXQpIHsKCkRpdHRvLgoK PiAgCQkJREJHKCIlczogcGl4ZWxfZm9ybWF0IGNoYW5nZSEiLCBtZHA1X3BsYW5lLT5uYW1lKTsK PiAgCQkJZnVsbF9tb2Rlc2V0ID0gdHJ1ZTsKPiAgCQl9Cj4gQEAgLTcwMyw3ICs3MDMsNyBAQCBz dGF0aWMgaW50IG1kcDVfcGxhbmVfbW9kZV9zZXQoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4g IAl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ICAJaW50IHJldDsKPiAKPiAtCW5wbGFuZXMgPSBkcm1f Zm9ybWF0X251bV9wbGFuZXMoZmItPnBpeGVsX2Zvcm1hdCk7Cj4gKwlucGxhbmVzID0gZHJtX2Zv cm1hdF9udW1fcGxhbmVzKGZiLT5mb3JtYXQtPmZvcm1hdCk7CgoJZmItPmZvcm1hdC0+bnVtX3Bs YW5lcwoKPiAKPiAgCS8qIGJhZCBmb3JtYXRzIHNob3VsZCBhbHJlYWR5IGJlIHJlamVjdGVkOiAq Lwo+ICAJaWYgKFdBUk5fT04obnBsYW5lcyA+IHBpcGUybmNsaWVudHMocGlwZSkpKQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL21z bS9tc21fZmIuYwo+IGluZGV4IDk2MTRlZDQwNTgwOC4uNWI1NzkyNDhmYmFhIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZiLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL21zbV9mYi5jCj4gQEAgLTQxLDcgKzQxLDcgQEAgc3RhdGljIGludCBtc21fZnJhbWVidWZm ZXJfY3JlYXRlX2hhbmRsZShzdHJ1Y3QKPiBkcm1fZnJhbWVidWZmZXIgKmZiLCBzdGF0aWMgdm9p ZCBtc21fZnJhbWVidWZmZXJfZGVzdHJveShzdHJ1Y3QKPiBkcm1fZnJhbWVidWZmZXIgKmZiKQo+ ICB7Cj4gIAlzdHJ1Y3QgbXNtX2ZyYW1lYnVmZmVyICptc21fZmIgPSB0b19tc21fZnJhbWVidWZm ZXIoZmIpOwo+IC0JaW50IGksIG4gPSBkcm1fZm9ybWF0X251bV9wbGFuZXMoZmItPnBpeGVsX2Zv cm1hdCk7Cj4gKwlpbnQgaSwgbiA9IGRybV9mb3JtYXRfbnVtX3BsYW5lcyhmYi0+Zm9ybWF0LT5m b3JtYXQpOwoKU2FtZSBoZXJlIGFuZCBiZWxvdy4KCj4gIAlEQkcoImRlc3Ryb3k6IEZCIElEOiAl ZCAoJXApIiwgZmItPmJhc2UuaWQsIGZiKTsKPiAKPiBAQCAtNjUsMTAgKzY1LDEwIEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyX2Z1bmNzCj4gbXNtX2ZyYW1lYnVmZmVyX2Z1 bmNzID0geyB2b2lkIG1zbV9mcmFtZWJ1ZmZlcl9kZXNjcmliZShzdHJ1Y3QKPiBkcm1fZnJhbWVi dWZmZXIgKmZiLCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pIHsKPiAgCXN0cnVjdCBtc21fZnJhbWVidWZm ZXIgKm1zbV9mYiA9IHRvX21zbV9mcmFtZWJ1ZmZlcihmYik7Cj4gLQlpbnQgaSwgbiA9IGRybV9m b3JtYXRfbnVtX3BsYW5lcyhmYi0+cGl4ZWxfZm9ybWF0KTsKPiArCWludCBpLCBuID0gZHJtX2Zv cm1hdF9udW1fcGxhbmVzKGZiLT5mb3JtYXQtPmZvcm1hdCk7Cj4gCj4gIAlzZXFfcHJpbnRmKG0s ICJmYjogJWR4JWRAJTQuNHMgKCUyZCwgSUQ6JWQpXG4iLAo+IC0JCQlmYi0+d2lkdGgsIGZiLT5o ZWlnaHQsIChjaGFyICopJmZiLT5waXhlbF9mb3JtYXQsCj4gKwkJCWZiLT53aWR0aCwgZmItPmhl aWdodCwgKGNoYXIgKikmZmItPmZvcm1hdC0+Zm9ybWF0LAo+ICAJCQlkcm1fZnJhbWVidWZmZXJf cmVhZF9yZWZjb3VudChmYiksIGZiLT5iYXNlLmlkKTsKPiAKPiAgCWZvciAoaSA9IDA7IGkgPCBu OyBpKyspIHsKPiBAQCAtODcsNyArODcsNyBAQCB2b2lkIG1zbV9mcmFtZWJ1ZmZlcl9kZXNjcmli ZShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pIGludCBt c21fZnJhbWVidWZmZXJfcHJlcGFyZShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiBpbnQg aWQpCj4gIHsKPiAgCXN0cnVjdCBtc21fZnJhbWVidWZmZXIgKm1zbV9mYiA9IHRvX21zbV9mcmFt ZWJ1ZmZlcihmYik7Cj4gLQlpbnQgcmV0LCBpLCBuID0gZHJtX2Zvcm1hdF9udW1fcGxhbmVzKGZi LT5waXhlbF9mb3JtYXQpOwo+ICsJaW50IHJldCwgaSwgbiA9IGRybV9mb3JtYXRfbnVtX3BsYW5l cyhmYi0+Zm9ybWF0LT5mb3JtYXQpOwo+ICAJdWludDMyX3QgaW92YTsKPiAKPiAgCWZvciAoaSA9 IDA7IGkgPCBuOyBpKyspIHsKPiBAQCAtMTAzLDcgKzEwMyw3IEBAIGludCBtc21fZnJhbWVidWZm ZXJfcHJlcGFyZShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiBpbnQgaWQpIHZvaWQgbXNt X2ZyYW1lYnVmZmVyX2NsZWFudXAoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsIGludCBpZCkK PiAgewo+ICAJc3RydWN0IG1zbV9mcmFtZWJ1ZmZlciAqbXNtX2ZiID0gdG9fbXNtX2ZyYW1lYnVm ZmVyKGZiKTsKPiAtCWludCBpLCBuID0gZHJtX2Zvcm1hdF9udW1fcGxhbmVzKGZiLT5waXhlbF9m b3JtYXQpOwo+ICsJaW50IGksIG4gPSBkcm1fZm9ybWF0X251bV9wbGFuZXMoZmItPmZvcm1hdC0+ Zm9ybWF0KTsKPiAKPiAgCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspCj4gIAkJbXNtX2dlbV9wdXRf aW92YShtc21fZmItPnBsYW5lc1tpXSwgaWQpOwoKW3NuaXBdCgo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2ZiLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJt L29tYXBfZmIuYyBpbmRleCA5ODc1Yzk5YmUwMDkuLmQyNzQyNzcyYjlkOCAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2ZiLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vb21hcGRybS9vbWFwX2ZiLmMKPiBAQCAtMTA3LDcgKzEwNyw3IEBAIHN0YXRpYyBpbnQgb21h cF9mcmFtZWJ1ZmZlcl9jcmVhdGVfaGFuZGxlKHN0cnVjdAo+IGRybV9mcmFtZWJ1ZmZlciAqZmIs IHN0YXRpYyB2b2lkIG9tYXBfZnJhbWVidWZmZXJfZGVzdHJveShzdHJ1Y3QKPiBkcm1fZnJhbWVi dWZmZXIgKmZiKQo+ICB7Cj4gIAlzdHJ1Y3Qgb21hcF9mcmFtZWJ1ZmZlciAqb21hcF9mYiA9IHRv X29tYXBfZnJhbWVidWZmZXIoZmIpOwo+IC0JaW50IGksIG4gPSBkcm1fZm9ybWF0X251bV9wbGFu ZXMoZmItPnBpeGVsX2Zvcm1hdCk7Cj4gKwlpbnQgaSwgbiA9IGRybV9mb3JtYXRfbnVtX3BsYW5l cyhmYi0+Zm9ybWF0LT5mb3JtYXQpOwoKCWZiLT5mb3JtYXQtPm51bV9wbGFuZXMKClNhbWUgY29t bWVudCBmb3IgdGhlIG90aGVyIGxvY2F0aW9ucyBiZWxvdy4KCj4gIAlEQkcoImRlc3Ryb3k6IEZC IElEOiAlZCAoJXApIiwgZmItPmJhc2UuaWQsIGZiKTsKPiAKPiBAQCAtMjUyLDcgKzI1Miw3IEBA IHZvaWQgb21hcF9mcmFtZWJ1ZmZlcl91cGRhdGVfc2Nhbm91dChzdHJ1Y3QKPiBkcm1fZnJhbWVi dWZmZXIgKmZiLCBpbnQgb21hcF9mcmFtZWJ1ZmZlcl9waW4oc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIpCj4gIHsKPiAgCXN0cnVjdCBvbWFwX2ZyYW1lYnVmZmVyICpvbWFwX2ZiID0gdG9fb21h cF9mcmFtZWJ1ZmZlcihmYik7Cj4gLQlpbnQgcmV0LCBpLCBuID0gZHJtX2Zvcm1hdF9udW1fcGxh bmVzKGZiLT5waXhlbF9mb3JtYXQpOwo+ICsJaW50IHJldCwgaSwgbiA9IGRybV9mb3JtYXRfbnVt X3BsYW5lcyhmYi0+Zm9ybWF0LT5mb3JtYXQpOwo+IAo+ICAJbXV0ZXhfbG9jaygmb21hcF9mYi0+ bG9jayk7Cj4gCj4gQEAgLTI5Miw3ICsyOTIsNyBAQCBpbnQgb21hcF9mcmFtZWJ1ZmZlcl9waW4o c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpCj4gIHZvaWQgb21hcF9mcmFtZWJ1ZmZlcl91bnBp bihzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYikKPiAgewo+ICAJc3RydWN0IG9tYXBfZnJhbWVi dWZmZXIgKm9tYXBfZmIgPSB0b19vbWFwX2ZyYW1lYnVmZmVyKGZiKTsKPiAtCWludCBpLCBuID0g ZHJtX2Zvcm1hdF9udW1fcGxhbmVzKGZiLT5waXhlbF9mb3JtYXQpOwo+ICsJaW50IGksIG4gPSBk cm1fZm9ybWF0X251bV9wbGFuZXMoZmItPmZvcm1hdC0+Zm9ybWF0KTsKPiAKPiAgCW11dGV4X2xv Y2soJm9tYXBfZmItPmxvY2spOwo+IAo+IEBAIC0zNDMsMTAgKzM0MywxMCBAQCBzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcgo+ICpvbWFwX2ZyYW1lYnVmZmVyX2dldF9uZXh0X2Nvbm5lY3Rvciggdm9pZCBv bWFwX2ZyYW1lYnVmZmVyX2Rlc2NyaWJlKHN0cnVjdAo+IGRybV9mcmFtZWJ1ZmZlciAqZmIsIHN0 cnVjdCBzZXFfZmlsZSAqbSkgewo+ICAJc3RydWN0IG9tYXBfZnJhbWVidWZmZXIgKm9tYXBfZmIg PSB0b19vbWFwX2ZyYW1lYnVmZmVyKGZiKTsKPiAtCWludCBpLCBuID0gZHJtX2Zvcm1hdF9udW1f cGxhbmVzKGZiLT5waXhlbF9mb3JtYXQpOwo+ICsJaW50IGksIG4gPSBkcm1fZm9ybWF0X251bV9w bGFuZXMoZmItPmZvcm1hdC0+Zm9ybWF0KTsKPiAKPiAgCXNlcV9wcmludGYobSwgImZiOiAlZHgl ZEAlNC40c1xuIiwgZmItPndpZHRoLCBmYi0+aGVpZ2h0LAo+IC0JCQkoY2hhciAqKSZmYi0+cGl4 ZWxfZm9ybWF0KTsKPiArCQkJKGNoYXIgKikmZmItPmZvcm1hdC0+Zm9ybWF0KTsKPiAKPiAgCWZv ciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKPiAgCQlzdHJ1Y3QgcGxhbmUgKnBsYW5lID0gJm9tYXBf ZmItPnBsYW5lc1tpXTsKCltzbmlwXQoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Jv Y2tjaGlwL3JvY2tjaGlwX2RybV92b3AuYwo+IGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3Jv Y2tjaGlwX2RybV92b3AuYyBpbmRleAo+IGM3ZWJhMzA1YzQ4OC4uZjhjNmY3NGVkYzgwIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fdm9wLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX3ZvcC5jCgpbc25pcF0K Cj4gQEAgLTc0OSwyMSArNzQ5LDIxIEBAIHN0YXRpYyB2b2lkIHZvcF9wbGFuZV9hdG9taWNfdXBk YXRlKHN0cnVjdCBkcm1fcGxhbmUKPiAqcGxhbmUsIGRzcF9zdHkgPSBkZXN0LT55MSArIGNydGMt Pm1vZGUudnRvdGFsIC0gY3J0Yy0+bW9kZS52c3luY19zdGFydDsKPiBkc3Bfc3QgPSBkc3Bfc3R5 IDw8IDE2IHwgKGRzcF9zdHggJiAweGZmZmYpOwo+IAo+IC0Jb2Zmc2V0ID0gKHNyYy0+eDEgPj4g MTYpICogZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwgMCk7Cj4gKwlvZmZz ZXQgPSAoc3JjLT54MSA+PiAxNikgKiBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+Zm9ybWF0LT5m b3JtYXQsIAowKTsKCmZiLT5mb3JtYXQtPmNwcFswXQoKU2FtZSBjb21tZW50IGZvciB0aGUgb3Ro ZXIgZmllbGRzIGFjY2Vzc2VkIGJlbG93LgoKPiAgCW9mZnNldCArPSAoc3JjLT55MSA+PiAxNikg KiBmYi0+cGl0Y2hlc1swXTsKPiAgCWRtYV9hZGRyID0gcmtfb2JqLT5kbWFfYWRkciArIG9mZnNl dCArIGZiLT5vZmZzZXRzWzBdOwo+IAo+IC0JZm9ybWF0ID0gdm9wX2NvbnZlcnRfZm9ybWF0KGZi LT5waXhlbF9mb3JtYXQpOwo+ICsJZm9ybWF0ID0gdm9wX2NvbnZlcnRfZm9ybWF0KGZiLT5mb3Jt YXQtPmZvcm1hdCk7Cj4gCj4gIAlzcGluX2xvY2soJnZvcC0+cmVnX2xvY2spOwo+IAo+ICAJVk9Q X1dJTl9TRVQodm9wLCB3aW4sIGZvcm1hdCwgZm9ybWF0KTsKPiAgCVZPUF9XSU5fU0VUKHZvcCwg d2luLCB5cmdiX3ZpciwgZmItPnBpdGNoZXNbMF0gPj4gMik7Cj4gIAlWT1BfV0lOX1NFVCh2b3As IHdpbiwgeXJnYl9tc3QsIGRtYV9hZGRyKTsKPiAtCWlmIChpc195dXZfc3VwcG9ydChmYi0+cGl4 ZWxfZm9ybWF0KSkgewo+IC0JCWludCBoc3ViID0gZHJtX2Zvcm1hdF9ob3J6X2Nocm9tYV9zdWJz YW1wbGluZyhmYi0KPnBpeGVsX2Zvcm1hdCk7Cj4gLQkJaW50IHZzdWIgPSBkcm1fZm9ybWF0X3Zl cnRfY2hyb21hX3N1YnNhbXBsaW5nKGZiLQo+cGl4ZWxfZm9ybWF0KTsKPiAtCQlpbnQgYnBwID0g ZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwgMSk7Cj4gKwlpZiAoaXNfeXV2 X3N1cHBvcnQoZmItPmZvcm1hdC0+Zm9ybWF0KSkgewo+ICsJCWludCBoc3ViID0gZHJtX2Zvcm1h dF9ob3J6X2Nocm9tYV9zdWJzYW1wbGluZyhmYi0+Zm9ybWF0LQo+Zm9ybWF0KTsKPiArCQlpbnQg dnN1YiA9IGRybV9mb3JtYXRfdmVydF9jaHJvbWFfc3Vic2FtcGxpbmcoZmItPmZvcm1hdC0KPmZv cm1hdCk7Cj4gKwkJaW50IGJwcCA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5mb3JtYXQtPmZv cm1hdCwgMSk7Cj4gCj4gIAkJdXZfb2JqID0gcm9ja2NoaXBfZmJfZ2V0X2dlbV9vYmooZmIsIDEp Owo+ICAJCXJrX3V2X29iaiA9IHRvX3JvY2tjaGlwX29iaih1dl9vYmopOwoKW3NuaXBdCgo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9nZHAuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9zdGkvc3RpX2dkcC5jCj4gaW5kZXggODFkZjMwOTdiNTQ1Li4zMzgyMWRkYTc5ZGYgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZ2RwLmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vc3RpL3N0aV9nZHAuYwoKW3NuaXBdCgo+IEBAIC03NTMsMTEgKzc1MywxMSBAQCBzdGF0 aWMgdm9pZCBzdGlfZ2RwX2F0b21pY191cGRhdGUoc3RydWN0IGRybV9wbGFuZQo+ICpkcm1fcGxh bmUsIGNtYV9vYmogPSBkcm1fZmJfY21hX2dldF9nZW1fb2JqKGZiLCAwKTsKPiAKPiAgCURSTV9E RUJVR19EUklWRVIoImRybSBGQjolZCBmb3JtYXQ6JS40cyBwaHlzQDoweCVseFxuIiwgZmItPmJh c2UuaWQsCj4gLQkJCSAoY2hhciAqKSZmYi0+cGl4ZWxfZm9ybWF0LAo+ICsJCQkgKGNoYXIgKikm ZmItPmZvcm1hdC0+Zm9ybWF0LAo+ICAJCQkgKHVuc2lnbmVkIGxvbmcpY21hX29iai0+cGFkZHIp Owo+IAo+ICAJLyogcGl4ZWwgbWVtb3J5IGxvY2F0aW9uICovCj4gLQlicHAgPSBkcm1fZm9ybWF0 X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKTsKPiArCWJwcCA9IGRybV9mb3JtYXRfcGxh bmVfY3BwKGZiLT5mb3JtYXQtPmZvcm1hdCwgMCk7CgpmYi0+Zm9ybWF0LT5jcHBbMF0KCj4gIAl0 b3BfZmllbGQtPmdhbV9nZHBfcG1sID0gKHUzMiljbWFfb2JqLT5wYWRkciArIGZiLT5vZmZzZXRz WzBdOwo+ICAJdG9wX2ZpZWxkLT5nYW1fZ2RwX3BtbCArPSBzcmNfeCAqIGJwcDsKPiAgCXRvcF9m aWVsZC0+Z2FtX2dkcF9wbWwgKz0gc3JjX3kgKiBmYi0+cGl0Y2hlc1swXTsKCgo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfYmFja2VuZC5jCj4gYi9kcml2ZXJzL2dw dS9kcm0vc3VuNGkvc3VuNGlfYmFja2VuZC5jIGluZGV4IDJlMDhmOTY5YmI2NC4uODcxOWFjZjc0 NWMyCj4gMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2JhY2tlbmQu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9iYWNrZW5kLmMKCltzbmlwXQoK PiBAQCAtMjE4LDcgKzIxOSw3IEBAIGludCBzdW40aV9iYWNrZW5kX3VwZGF0ZV9sYXllcl9idWZm ZXIoc3RydWN0Cj4gc3VuNGlfYmFja2VuZCAqYmFja2VuZCwgRFJNX0RFQlVHX0RSSVZFUigiVXNp bmcgR0VNIEAgJXBhZFxuIiwKPiAmZ2VtLT5wYWRkcik7Cj4gCj4gIAkvKiBDb21wdXRlIHRoZSBz dGFydCBvZiB0aGUgZGlzcGxheWVkIG1lbW9yeSAqLwo+IC0JYnBwID0gZHJtX2Zvcm1hdF9wbGFu ZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwgMCk7Cj4gKwlicHAgPSBkcm1fZm9ybWF0X3BsYW5lX2Nw cChmYi0+Zm9ybWF0LT5mb3JtYXQsIDApOwoKRGl0dG8uCgo+ICAJcGFkZHIgPSBnZW0tPnBhZGRy ICsgZmItPm9mZnNldHNbMF07Cj4gIAlwYWRkciArPSAoc3RhdGUtPnNyY194ID4+IDE2KSAqIGJw cDsKPiAgCXBhZGRyICs9IChzdGF0ZS0+c3JjX3kgPj4gMTYpICogZmItPnBpdGNoZXNbMF07Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jIGIvZHJpdmVycy9ncHUvZHJt L3RlZ3JhL2RjLmMKPiBpbmRleCAzYWYxNTdhMmQ0MGMuLjQxMjFkMGMyYWFjOCAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90 ZWdyYS9kYy5jCgpbc25pcF0KCj4gQEAgLTUzMSw3ICs1MzEsNyBAQCBzdGF0aWMgaW50IHRlZ3Jh X3BsYW5lX2F0b21pY19jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lCj4gKnBsYW5lLCAqIGVycm9yIG91 dCBpZiB0aGUgdXNlciB0cmllcyB0byBkaXNwbGF5IGEgZnJhbWVidWZmZXIgd2l0aCBzdWNoIGEK PiAqIGNvbmZpZ3VyYXRpb24uCj4gIAkgKi8KPiAtCWlmIChkcm1fZm9ybWF0X251bV9wbGFuZXMo c3RhdGUtPmZiLT5waXhlbF9mb3JtYXQpID4gMikgewo+ICsJaWYgKGRybV9mb3JtYXRfbnVtX3Bs YW5lcyhzdGF0ZS0+ZmItPmZvcm1hdC0+Zm9ybWF0KSA+IDIpIHsKCnN0YXRlLT5mYi0+Zm9ybWF0 LT5udW1fcGxhbmVzCgo+ICAJCWlmIChzdGF0ZS0+ZmItPnBpdGNoZXNbMl0gIT0gc3RhdGUtPmZi LT5waXRjaGVzWzFdKSB7Cj4gIAkJCURSTV9FUlJPUigidW5zdXBwb3J0ZWQgVVYtcGxhbmUgY29u ZmlndXJhdGlvblxuIik7Cj4gIAkJCXJldHVybiAtRUlOVkFMOwo+IEBAIC01NzYsNyArNTc2LDcg QEAgc3RhdGljIHZvaWQgdGVncmFfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5l Cj4gKnBsYW5lLCB3aW5kb3cuZm9ybWF0ID0gc3RhdGUtPmZvcm1hdDsKPiAgCXdpbmRvdy5zd2Fw ID0gc3RhdGUtPnN3YXA7Cj4gCj4gLQlmb3IgKGkgPSAwOyBpIDwgZHJtX2Zvcm1hdF9udW1fcGxh bmVzKGZiLT5waXhlbF9mb3JtYXQpOyBpKyspIHsKPiArCWZvciAoaSA9IDA7IGkgPCBkcm1fZm9y bWF0X251bV9wbGFuZXMoZmItPmZvcm1hdC0+Zm9ybWF0KTsgaSsrKSB7CgpTYW1lIGhlcmUuCgo+ ICAJCXN0cnVjdCB0ZWdyYV9ibyAqYm8gPSB0ZWdyYV9mYl9nZXRfcGxhbmUoZmIsIGkpOwo+IAo+ ICAJCXdpbmRvdy5iYXNlW2ldID0gYm8tPnBhZGRyICsgZmItPm9mZnNldHNbaV07Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3Jh L2ZiLmMKPiBpbmRleCAyYTFiZjkyNDAzYjguLjFlYTVjMzlhNDQxMSAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vdGVncmEvZmIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9m Yi5jCj4gQEAgLTMyLDcgKzMyLDcgQEAgc3RydWN0IHRlZ3JhX2JvICp0ZWdyYV9mYl9nZXRfcGxh bmUoc3RydWN0IGRybV9mcmFtZWJ1ZmZlcgo+ICpmcmFtZWJ1ZmZlciwgewo+ICAJc3RydWN0IHRl Z3JhX2ZiICpmYiA9IHRvX3RlZ3JhX2ZiKGZyYW1lYnVmZmVyKTsKPiAKPiAtCWlmIChpbmRleCA+ PSBkcm1fZm9ybWF0X251bV9wbGFuZXMoZnJhbWVidWZmZXItPnBpeGVsX2Zvcm1hdCkpCj4gKwlp ZiAoaW5kZXggPj0gZHJtX2Zvcm1hdF9udW1fcGxhbmVzKGZyYW1lYnVmZmVyLT5mb3JtYXQtPmZv cm1hdCkpCgpBbmQgaGVyZS4KCj4gIAkJcmV0dXJuIE5VTEw7Cj4gCj4gIAlyZXR1cm4gZmItPnBs YW5lc1tpbmRleF07Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2Rj X2NydGMuYwo+IGIvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfY3J0Yy5jIGluZGV4IDgy MjUzMWViZDRiMC4uZDAwYzU5ZTExNWZmCj4gMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3RpbGNkYy90aWxjZGNfY3J0Yy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxj ZGNfY3J0Yy5jCj4gQEAgLTc5LDcgKzc5LDcgQEAgc3RhdGljIHZvaWQgc2V0X3NjYW5vdXQoc3Ry dWN0IGRybV9jcnRjICpjcnRjLCBzdHJ1Y3QKPiBkcm1fZnJhbWVidWZmZXIgKmZiKQo+IAo+ICAJ c3RhcnQgPSBnZW0tPnBhZGRyICsgZmItPm9mZnNldHNbMF0gKwo+ICAJCWNydGMtPnkgKiBmYi0+ cGl0Y2hlc1swXSArCj4gLQkJY3J0Yy0+eCAqIGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5waXhl bF9mb3JtYXQsIDApOwo+ICsJCWNydGMtPnggKiBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+Zm9y bWF0LT5mb3JtYXQsIDApOwoKSSB0aGluayB5b3Uga25vdyB3aGF0IHRvIGRvIGJ5IG5vdyA6LSkK Cj4gCj4gIAllbmQgPSBzdGFydCArIChjcnRjLT5tb2RlLnZkaXNwbGF5ICogZmItPnBpdGNoZXNb MF0pOwoKW3NuaXBdCgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNk Y19wbGFuZS5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19wbGFuZS5jIGluZGV4 IDhhNmE1MGQ3NGFmZi4uNWEzMDNhODFhYzk2Cj4gMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3RpbGNkYy90aWxjZGNfcGxhbmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90aWxjZGMv dGlsY2RjX3BsYW5lLmMKPiBAQCAtNjksNyArNjksNyBAQCBzdGF0aWMgaW50IHRpbGNkY19wbGFu ZV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9wbGFuZQo+ICpwbGFuZSwgfQo+IAo+ICAJcGl0Y2gg PSBjcnRjX3N0YXRlLT5tb2RlLmhkaXNwbGF5ICoKPiAtCQlkcm1fZm9ybWF0X3BsYW5lX2NwcChz dGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCwgMCk7Cj4gKwkJZHJtX2Zvcm1hdF9wbGFuZV9jcHAoc3Rh dGUtPmZiLT5mb3JtYXQtPmZvcm1hdCwgMCk7CgpEaXR0by4KCj4gIAlpZiAoc3RhdGUtPmZiLT5w aXRjaGVzWzBdICE9IHBpdGNoKSB7Cj4gIAkJZGV2X2VycihwbGFuZS0+ZGV2LT5kZXYsCj4gIAkJ CSJJbnZhbGlkIHBpdGNoOiBmYiBhbmQgY3J0YyB3aWR0aHMgbXVzdCBiZSB0aGUgc2FtZSIpOwo+ IEBAIC03Nyw3ICs3Nyw3IEBAIHN0YXRpYyBpbnQgdGlsY2RjX3BsYW5lX2F0b21pY19jaGVjayhz dHJ1Y3QgZHJtX3BsYW5lCj4gKnBsYW5lLCB9Cj4gCj4gIAlpZiAoc3RhdGUtPmZiICYmIG9sZF9z dGF0ZS0+ZmIgJiYKPiAtCSAgICBzdGF0ZS0+ZmItPnBpeGVsX2Zvcm1hdCAhPSBvbGRfc3RhdGUt PmZiLT5waXhlbF9mb3JtYXQpIHsKPiArCSAgICBzdGF0ZS0+ZmItPmZvcm1hdC0+Zm9ybWF0ICE9 IG9sZF9zdGF0ZS0+ZmItPmZvcm1hdC0+Zm9ybWF0KSB7CgpzdGF0ZS0+ZmItPmZvcm1hdCAhPSBv bGRfc3RhdGUtPmZiLT5mb3JtYXQKCj4gIAkJZGV2X2RiZyhwbGFuZS0+ZGV2LT5kZXYsCj4gIAkJ CSIlcygpOiBwaXhlbCBmb3JtYXQgY2hhbmdlIHJlcXVpcmVzIG1vZGVfY2hhbmdlXG4iLAo+ICAJ CQlfX2Z1bmNfXyk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3BsYW5l LmMKPiBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3BsYW5lLmMgaW5kZXggODgxYmY0ODk0Nzhi Li41OWJlOWU3YzI2ZGUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfcGxh bmUuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X3BsYW5lLmMKCltzbmlwXQoKPiBA QCAtMzY5LDcgKzM2OSw3IEBAIHN0YXRpYyBpbnQgdmM0X3BsYW5lX3NldHVwX2NsaXBwaW5nX2Fu ZF9zY2FsaW5nKHN0cnVjdAo+IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpICovCj4gIAlpZiAodmM0 X3N0YXRlLT5jcnRjX3ggPCAwKSB7Cj4gIAkJZm9yIChpID0gMDsgaSA8IG51bV9wbGFuZXM7IGkr Kykgewo+IC0JCQl1MzIgY3BwID0gZHJtX2Zvcm1hdF9wbGFuZV9jcHAoZmItPnBpeGVsX2Zvcm1h dCwgaSk7Cj4gKwkJCXUzMiBjcHAgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+Zm9ybWF0LT5m b3JtYXQsIGkpOwoKZmItPmZvcm1hdC0+Y3BwW2ldCgo+ICAJCQl1MzIgc3VicyA9ICgoaSA9PSAw KSA/IDEgOiBoX3N1YnNhbXBsZSk7Cj4gCj4gIAkJCXZjNF9zdGF0ZS0+b2Zmc2V0c1tpXSArPSAo Y3BwICoKCltzbmlwXQoKLS0gClJlZ2FyZHMsCgpMYXVyZW50IFBpbmNoYXJ0CgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK