From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrzej Hajda Subject: Re: [PATCH 08/60] drm/bridge: Extend bridge API to disable connector creation Date: Wed, 17 Jul 2019 08:39:47 +0200 Message-ID: <8b51b540-61ec-435e-e87a-da0dfbbc70a6@samsung.com> References: <20190707180852.5512-1-laurent.pinchart@ideasonboard.com> <20190707181937.6250-1-laurent.pinchart@ideasonboard.com> <20190707181937.6250-5-laurent.pinchart@ideasonboard.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9DE5F6E233 for ; Wed, 17 Jul 2019 06:39:53 +0000 (UTC) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20190717063951euoutp01401f1fe50aeaab678b2b5be55df0a147~yHoheFp8D2490724907euoutp01b for ; Wed, 17 Jul 2019 06:39:51 +0000 (GMT) In-Reply-To: <20190707181937.6250-5-laurent.pinchart@ideasonboard.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Laurent Pinchart , dri-devel@lists.freedesktop.org Cc: Maxime Ripard , Sebastian Reichel , Tomi Valkeinen , Sean Paul List-Id: dri-devel@lists.freedesktop.org T24gMDcuMDcuMjAxOSAyMDoxOCwgTGF1cmVudCBQaW5jaGFydCB3cm90ZToKPiBNb3N0IGJyaWRn ZSBkcml2ZXJzIGNyZWF0ZSBhIERSTSBjb25uZWN0b3IgdG8gbW9kZWwgdGhlIGNvbm5lY3RvciBh dCB0aGUKPiBvdXRwdXQgb2YgdGhlIGJyaWRnZS4gVGhpcyBtb2RlbCBpcyBoaXN0b3JpY2FsIGFu ZCBoYXMgd29ya2VkIHByZXR0eQo+IHdlbGwgc28gZmFyLCBidXQgY2F1c2VzIHNldmVyYWwgaXNz dWVzOgo+Cj4gLSBJdCBwcmV2ZW50cyBzdXBwb3J0aW5nIG1vcmUgY29tcGxleCBkaXNwbGF5IHBp cGVsaW5lcyB3aGVyZSBEUk0KPiBjb25uZWN0b3Igb3BlcmF0aW9ucyBhcmUgc3BsaXQgb3ZlciBt dWx0aXBsZSBjb21wb25lbnRzLiBGb3IgaW5zdGFuY2UgYQo+IHBpcGVsaW5lIHdpdGggYSBicmlk Z2UgY29ubmVjdGVkIHRvIHRoZSBEREMgc2lnbmFscyB0byByZWFkIEVESUQgZGF0YSwKPiBhbmQg YW5vdGhlciBvbmUgY29ubmVjdGVkIHRvIHRoZSBIUEQgc2lnbmFsIHRvIGRldGVjdCBjb25uZWN0 aW9uIGFuZAo+IGRpc2Nvbm5lY3Rpb24sIHdpbGwgbm90IGJlIHBvc3NpYmxlIHRvIHN1cHBvcnQg dGhyb3VnaCB0aGlzIG1vZGVsLgo+Cj4gLSBJdCByZXF1aXJlcyBldmVyeSBicmlkZ2UgZHJpdmVy IHRvIGltcGxlbWVudCBzaW1pbGFyIGNvbm5lY3Rvcgo+IGhhbmRsaW5nIGNvZGUsIHJlc3VsdGlu ZyBpbiBjb2RlIGR1cGxpY2F0aW9uLgo+Cj4gLSBJdCBhc3N1bWVzIHRoYXQgYSBicmlkZ2Ugd2ls bCBlaXRoZXIgYmUgd2lyZWQgdG8gYSBjb25uZWN0b3Igb3IgdG8KPiBhbm90aGVyIGJyaWRnZSwg YnV0IGRvZXNuJ3Qgc3VwcG9ydCBicmlkZ2VzIHRoYXQgY2FuIGJlIHVzZWQgaW4gYm90aAo+IHBv c2l0aW9ucyB2ZXJ5IHdlbGwgKGFsdGhvdWdoIHRoZXJlIGlzIHNvbWUgYWQtaG9jIHN1cHBvcnQg Zm9yIHRoaXMgaW4KPiB0aGUgYW5hbG9naXhfZHAgYnJpZGdlIGRyaXZlcikuCj4KPiBJbiBvcmRl ciB0byBzb2x2ZSB0aGVzZSBpc3N1ZXMsIG93bmVyc2hpcCBvZiB0aGUgY29ubmVjdG9yIHNob3Vs ZCBiZQo+IG1vdmVkIHRvIHRoZSBkaXNwbGF5IGNvbnRyb2xsZXIgZHJpdmVyICh3aGVyZSBpdCBj YW4gYmUgaW1wbGVtZW50ZWQKPiB1c2luZyBoZWxwZXJzIHByb3ZpZGVkIGJ5IHRoZSBjb3JlKS4K Pgo+IEV4dGVuZCB0aGUgYnJpZGdlIEFQSSB0byBhbGxvdyBkaXNhYmxpbmcgY29ubmVjdG9yIGNy ZWF0aW9uIGluIGJyaWRnZQo+IGRyaXZlcnMgYXMgYSBmaXJzdCBzdGVwIHRvd2FyZHMgdGhlIG5l dyBtb2RlbC4gVGhlIG5ldyBjcmVhdGVfY29ubmVjdG9yCj4gYXJndW1lbnQgdG8gdGhlIGJyaWRn ZSAuYXR0YWNoKCkgb3BlcmF0aW9uIHRlbGxzIHRoZSBicmlkZ2UgZHJpdmVyCj4gd2hldGhlciB0 byBjcmVhdGUgYSBjb25uZWN0b3IuIFNldCB0aGUgYXJndW1lbnQgdG8gdHJ1ZSB1bmNvbmRpdGlv bmFsbHksCj4gYW5kIG1vZGlmeSBhbGwgZXhpc3RpbmcgYnJpZGdlIGRyaXZlcnMgdG8gcmV0dXJu IGFuIGVycm9yIHdoZW4gY29ubmVjdG9yCj4gY3JlYXRpb24gaXMgbm90IHJlcXVlc3RlZCBhcyB0 aGV5IGRvbid0IHN1cHBvcnQgdGhpcyBmZWF0dXJlIHlldC4KPgo+IFNpZ25lZC1vZmYtYnk6IExh dXJlbnQgUGluY2hhcnQgPGxhdXJlbnQucGluY2hhcnRAaWRlYXNvbmJvYXJkLmNvbT4KPiAtLS0K PiAgZHJpdmVycy9ncHUvZHJtL2FyYy9hcmNwZ3VfaGRtaS5jICAgICAgICAgICAgICAgICAgICAg ICAgfCAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9hdG1lbC1obGNkYy9hdG1lbF9obGNkY19vdXRw dXQuYyAgICAgICAgIHwgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvYWR2 NzUxMV9kcnYuYyAgICAgICAgICAgICB8IDYgKysrKystCj4gIGRyaXZlcnMvZ3B1L2RybS9icmlk Z2UvYW5hbG9naXgtYW54Nzh4eC5jICAgICAgICAgICAgICAgIHwgNiArKysrKy0KPiAgZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFsb2dpeF9kcF9jb3JlLmMgICAgICAgfCA4ICsr KysrKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvY2Rucy1kc2kuYyAgICAgICAgICAgICAg ICAgICAgICAgIHwgNiArKysrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9sdmRzLWVuY29k ZXIuYyAgICAgICAgICAgICAgICAgICAgfCA0ICsrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRn ZS9tZWdhY2hpcHMtc3RkcHh4eHgtZ2UtYjg1MHYzLWZ3LmMgfCA2ICsrKysrLQo+ICBkcml2ZXJz L2dwdS9kcm0vYnJpZGdlL254cC1wdG4zNDYwLmMgICAgICAgICAgICAgICAgICAgICB8IDYgKysr KystCj4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvcGFuZWwuYyAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgNSArKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3BhcmFkZS1wczg2MjIu YyAgICAgICAgICAgICAgICAgICB8IDUgKysrKy0KPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9z aWk5MDJ4LmMgICAgICAgICAgICAgICAgICAgICAgICAgfCA2ICsrKysrLQo+ICBkcml2ZXJzL2dw dS9kcm0vYnJpZGdlL3NpbC1zaWk4NjIwLmMgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KPiAg ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaW1wbGUtYnJpZGdlLmMgICAgICAgICAgICAgICAgICAg fCA2ICsrKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuYyAg ICAgICAgICAgICAgICB8IDggKysrKysrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5v cHN5cy9kdy1taXBpLWRzaS5jICAgICAgICAgICAgfCA4ICsrKysrLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9icmlkZ2UvdGMzNTg3NjQuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgNSArKysrLQo+ ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RjMzU4NzY3LmMgICAgICAgICAgICAgICAgICAgICAg ICB8IDUgKysrKy0KPiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90aGM2M2x2ZDEwMjQuYyAgICAg ICAgICAgICAgICAgICAgfCA1ICsrKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGktc242 NWRzaTg2LmMgICAgICAgICAgICAgICAgICAgIHwgNSArKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0v YnJpZGdlL3RpLXRmcDQxMC5jICAgICAgICAgICAgICAgICAgICAgICB8IDUgKysrKy0KPiAgZHJp dmVycy9ncHUvZHJtL2RybV9icmlkZ2UuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA1 ICsrKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuYyAgICAgICAg ICAgICAgICAgIHwgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcC5jICAg ICAgICAgICAgICAgICAgICAgICB8IDMgKystCj4gIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5 bm9zX2RybV9kc2kuYyAgICAgICAgICAgICAgICAgIHwgNCArKy0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9leHlub3MvZXh5bm9zX2hkbWkuYyAgICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ICBkcml2 ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9yZ2IuYyAgICAgICAgICAgICAgICB8IDIg Ky0KPiAgZHJpdmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9kd19kcm1fZHNpLmMgICAgICAg ICAgICAgfCAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pMmMvdGRhOTk4eF9kcnYuYyAgICAgICAg ICAgICAgICAgICAgICAgIHwgOCArKysrKystLQo+ICBkcml2ZXJzL2dwdS9kcm0vaW14L2lteC1s ZGIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KPiAgZHJpdmVycy9ncHUvZHJt L2lteC9wYXJhbGxlbC1kaXNwbGF5LmMgICAgICAgICAgICAgICAgICAgfCAyICstCj4gIGRyaXZl cnMvZ3B1L2RybS9tY2RlL21jZGVfZHNpLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNiAr KysrKy0KPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcGkuYyAgICAgICAgICAgICAg ICAgICAgICAgfCAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHNpLmMgICAg ICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRr X2hkbWkuYyAgICAgICAgICAgICAgICAgICAgICB8IDggKysrKysrLS0KPiAgZHJpdmVycy9ncHUv ZHJtL21zbS9kc2kvZHNpX21hbmFnZXIuYyAgICAgICAgICAgICAgICAgICAgfCA0ICsrLS0KPiAg ZHJpdmVycy9ncHUvZHJtL21zbS9lZHAvZWRwX2JyaWRnZS5jICAgICAgICAgICAgICAgICAgICAg fCAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vaGRtaS9oZG1pX2JyaWRnZS5jICAgICAgICAg ICAgICAgICAgIHwgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2Rydi5jICAg ICAgICAgICAgICAgICAgICAgICB8IDMgKystCj4gIGRyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3Jj YXJfZHVfZW5jb2Rlci5jICAgICAgICAgICAgICAgIHwgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0v cmNhci1kdS9yY2FyX2x2ZHMuYyAgICAgICAgICAgICAgICAgICAgICB8IDcgKysrKystLQo+ICBk cml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfbHZkcy5jICAgICAgICAgICAgICAgICB8 IDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX3JnYi5jICAgICAgICAg ICAgICAgICAgfCAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2R2by5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9oZGEu YyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL3N0 aS9zdGlfaGRtaS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCj4gIGRyaXZlcnMv Z3B1L2RybS9zdG0vbHRkYy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ ICBkcml2ZXJzL2dwdS9kcm0vc3VuNGkvc3VuNGlfbHZkcy5jICAgICAgICAgICAgICAgICAgICAg ICB8IDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX3JnYi5jICAgICAgICAgICAg ICAgICAgICAgICAgfCAyICstCj4gIGRyaXZlcnMvZ3B1L2RybS90aWxjZGMvdGlsY2RjX2V4dGVy bmFsLmMgICAgICAgICAgICAgICAgIHwgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9k cGkuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KPiAgZHJpdmVycy9ncHUvZHJt L3ZjNC92YzRfZHNpLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCj4gIGluY2x1 ZGUvZHJtL2RybV9icmlkZ2UuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNCAr Ky0tCj4gIDUzIGZpbGVzIGNoYW5nZWQsIDE0MCBpbnNlcnRpb25zKCspLCA2NyBkZWxldGlvbnMo LSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJjL2FyY3BndV9oZG1pLmMgYi9k cml2ZXJzL2dwdS9kcm0vYXJjL2FyY3BndV9oZG1pLmMKPiBpbmRleCA5OGFhYzc0M2NjMjYuLjcz OWYyMzU4ZjFkNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJjL2FyY3BndV9oZG1p LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXJjL2FyY3BndV9oZG1pLmMKPiBAQCAtMzksNyAr MzksNyBAQCBpbnQgYXJjcGd1X2RybV9oZG1pX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRybSwg c3RydWN0IGRldmljZV9ub2RlICpucCkKPiAgCQlyZXR1cm4gcmV0Owo+ICAKPiAgCS8qIExpbmsg ZHJtX2JyaWRnZSB0byBlbmNvZGVyICovCj4gLQlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChlbmNv ZGVyLCBicmlkZ2UsIE5VTEwpOwo+ICsJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZW5jb2Rlciwg YnJpZGdlLCBOVUxMLCB0cnVlKTsKCgpGZXcgc3VnZ2VzdGlvbnM6CgoxLiBNYXliZSBpdCB3b3Vs ZCBiZSBtb3JlIGNvbnZlbmllbnQgdG8gYWRkIGZsYWdzIGFyZ3VtZW50IGluc3RlYWQgb2YgYm9v bDoKCi0gY29kZSBzaG91bGQgYmUgbW9yZSByZWFkYWJsZTogcmV0ID0gZHJtX2JyaWRnZV9hdHRh Y2goZW5jb2RlciwgYnJpZGdlLApOVUxMLCBEUk1fQlJJREdFX0ZMQUdfTk9fQ09OTkVDVE9SKQoK LSBpdCBjYW4gYmUgZWFzaWx5IGV4cGFuZGVkIGxhdGVyIHdpdGggb3RoZXIgZmxhZ3MsIHRoZXJl IGF0IGxlYXN0IHR3bwpkcml2ZXJzIHdoaWNoIHdvdWxkIGJlbmVmaXQgZnJvbSBEUk1fQlJJREdF X0ZMQUdfTk9fQ0hBSU5JTkcgZmxhZy4KCjIuIElmIHRoZSBwYXRjaCBjYW4gYmUgYXBwbGllZCBh dG9taWNhbGx5IGl0IGlzIE9LIGFzIGlzLCBpZiBub3QgeW91IGNhbgp1c2UgcHJlcHJvY2Vzc29y IHZhcmFyZyBtYWdpYyB0byBzdXBwb3J0IG5ldyBhbmQgb2xkIHN5bnRheCwgc3RoIGxpa2U6Cgoj ZGVmaW5lIF9kcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCBicmlkZ2UsIHByZXYsIGZsYWdzLCBv cHRhcmcuLi4pCl9fZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgYnJpZGdlLCBwcmV2LCBmbGFn cykKCiNkZWZpbmUgZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgYnJpZGdlLCBwcmV2LCBvcHRh cmcuLi4pCl9kcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCBicmlkZ2UsIHByZXYsICMjb3B0YXJn LCAwKQoKMy4gTWF5YmUgbW9yZSBjb252ZW5pZW50IHdvdWxkIGJlIHRvIGp1c3Qgc2V0IHRoZSBm bGFncyBkaXJlY3RseSBiZWZvcmUKYXR0YWNobWVudDoKCsKgwqDCoCBicmlkZ2UtPmRvbnRfY3Jl YXRlX2Nvbm5lY3RvciA9IHRydWU7CgrCoMKgwqAgcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZW5j b2RlciwgYnJpZGdlLCBOVUxMKTsKCsKgwqDCoCBUaGlzIHdheSBpdCB3aWxsIGJlIHN0aWxsIGV4 cGFuZGFibGUsIGFuZCBsZXNzIGNoYW5nZXMuCgoKUmVnYXJkcwoKQW5kcnplagoKCj4gIAlpZiAo cmV0KQo+ICAJCWRybV9lbmNvZGVyX2NsZWFudXAoZW5jb2Rlcik7Cj4gIAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfb3V0cHV0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfb3V0cHV0LmMKPiBpbmRleCBmNzNk OGE5MjI3NGUuLjYwNjg0MWQyYzBiMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXRt ZWwtaGxjZGMvYXRtZWxfaGxjZGNfb3V0cHV0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYXRt ZWwtaGxjZGMvYXRtZWxfaGxjZGNfb3V0cHV0LmMKPiBAQCAtMTIzLDcgKzEyMyw3IEBAIHN0YXRp YyBpbnQgYXRtZWxfaGxjZGNfYXR0YWNoX2VuZHBvaW50KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IGludCBlbmRwb2ludCkKPiAgCX0KPiAgCj4gIAlpZiAoYnJpZGdlKSB7Cj4gLQkJcmV0ID0gZHJt X2JyaWRnZV9hdHRhY2goJm91dHB1dC0+ZW5jb2RlciwgYnJpZGdlLCBOVUxMKTsKPiArCQlyZXQg PSBkcm1fYnJpZGdlX2F0dGFjaCgmb3V0cHV0LT5lbmNvZGVyLCBicmlkZ2UsIE5VTEwsIHRydWUp Owo+ICAJCWlmICghcmV0KQo+ICAJCQlyZXR1cm4gMDsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9hZHY3NTExX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJt L2JyaWRnZS9hZHY3NTExL2Fkdjc1MTFfZHJ2LmMKPiBpbmRleCBmNmQyNjgxZjY5MjcuLmM2N2Jh MzBlZGVjNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fkdjc1MTEvYWR2 NzUxMV9kcnYuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9hZHY3NTEx X2Rydi5jCj4gQEAgLTg0NywxMSArODQ3LDE1IEBAIHN0YXRpYyB2b2lkIGFkdjc1MTFfYnJpZGdl X21vZGVfc2V0KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gIAlhZHY3NTExX21vZGVfc2V0 KGFkdiwgbW9kZSwgYWRqX21vZGUpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGFkdjc1MTFfYnJp ZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICtzdGF0aWMgaW50IGFkdjc1 MTFfYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ICsJCQkJIGJvb2wg Y3JlYXRlX2Nvbm5lY3RvcikKPiAgewo+ICAJc3RydWN0IGFkdjc1MTEgKmFkdiA9IGJyaWRnZV90 b19hZHY3NTExKGJyaWRnZSk7Cj4gIAlpbnQgcmV0Owo+ICAKPiArCWlmICghY3JlYXRlX2Nvbm5l Y3RvcikKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gIAlpZiAoIWJyaWRnZS0+ZW5jb2Rlcikg ewo+ICAJCURSTV9FUlJPUigiUGFyZW50IGVuY29kZXIgb2JqZWN0IG5vdCBmb3VuZCIpOwo+ICAJ CXJldHVybiAtRU5PREVWOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2Fu YWxvZ2l4LWFueDc4eHguYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgtYW54Nzh4 eC5jCj4gaW5kZXggM2M3Y2M1YWY3MzVjLi5mNzI3NTVlNTllMTIgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC1hbng3OHh4LmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYnJpZGdlL2FuYWxvZ2l4LWFueDc4eHguYwo+IEBAIC05OTgsMTEgKzk5OCwxNSBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgYW54Nzh4eF9jb25uZWN0b3Jf ZnVuY3MgPSB7Cj4gIAkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9j b25uZWN0b3JfZGVzdHJveV9zdGF0ZSwKPiAgfTsKPiAgCj4gLXN0YXRpYyBpbnQgYW54Nzh4eF9i cmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gK3N0YXRpYyBpbnQgYW54 Nzh4eF9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gKwkJCQkgYm9v bCBjcmVhdGVfY29ubmVjdG9yKQo+ICB7Cj4gIAlzdHJ1Y3QgYW54Nzh4eCAqYW54Nzh4eCA9IGJy aWRnZV90b19hbng3OHh4KGJyaWRnZSk7Cj4gIAlpbnQgZXJyOwo+ICAKPiArCWlmICghY3JlYXRl X2Nvbm5lY3RvcikKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gIAlpZiAoIWJyaWRnZS0+ZW5j b2Rlcikgewo+ICAJCURSTV9FUlJPUigiUGFyZW50IGVuY29kZXIgb2JqZWN0IG5vdCBmb3VuZCIp Owo+ICAJCXJldHVybiAtRU5PREVWOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJp ZGdlL2FuYWxvZ2l4L2FuYWxvZ2l4X2RwX2NvcmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uv YW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5jCj4gaW5kZXggM2Y3ZjQ4ODBiZTA5Li5mNmExYmRj YzA5ZDYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9hbmFsb2dpeC9hbmFs b2dpeF9kcF9jb3JlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2FuYWxvZ2l4L2Fu YWxvZ2l4X2RwX2NvcmUuYwo+IEBAIC0xMTc5LDEzICsxMTc5LDE3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBhbmFsb2dpeF9kcF9jb25uZWN0b3JfZnVuY3MgPSB7 Cj4gIAkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3Jf ZGVzdHJveV9zdGF0ZSwKPiAgfTsKPiAgCj4gLXN0YXRpYyBpbnQgYW5hbG9naXhfZHBfYnJpZGdl X2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ICtzdGF0aWMgaW50IGFuYWxvZ2l4 X2RwX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiArCQkJCSAgICAg Ym9vbCBjcmVhdGVfY29ubmVjdG9yKQo+ICB7Cj4gIAlzdHJ1Y3QgYW5hbG9naXhfZHBfZGV2aWNl ICpkcCA9IGJyaWRnZS0+ZHJpdmVyX3ByaXZhdGU7Cj4gIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIgPSBkcC0+ZW5jb2RlcjsKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Ig PSBOVUxMOwo+ICAJaW50IHJldCA9IDA7Cj4gIAo+ICsJaWYgKCFjcmVhdGVfY29ubmVjdG9yKQo+ ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiAgCWlmICghYnJpZGdlLT5lbmNvZGVyKSB7Cj4gIAkJ RFJNX0VSUk9SKCJQYXJlbnQgZW5jb2RlciBvYmplY3Qgbm90IGZvdW5kIik7Cj4gIAkJcmV0dXJu IC1FTk9ERVY7Cj4gQEAgLTE0NjMsNyArMTQ2Nyw3IEBAIHN0YXRpYyBpbnQgYW5hbG9naXhfZHBf Y3JlYXRlX2JyaWRnZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiwKPiAgCWJyaWRnZS0+ZHJp dmVyX3ByaXZhdGUgPSBkcDsKPiAgCWJyaWRnZS0+ZnVuY3MgPSAmYW5hbG9naXhfZHBfYnJpZGdl X2Z1bmNzOwo+ICAKPiAtCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGRwLT5lbmNvZGVyLCBicmlk Z2UsIE5VTEwpOwo+ICsJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZHAtPmVuY29kZXIsIGJyaWRn ZSwgTlVMTCwgdHJ1ZSk7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJRFJNX0VSUk9SKCJmYWlsZWQgdG8g YXR0YWNoIGRybSBicmlkZ2VcbiIpOwo+ICAJCXJldHVybiAtRUlOVkFMOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2NkbnMtZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJp ZGdlL2NkbnMtZHNpLmMKPiBpbmRleCA2MTY2ZGNhNmJlODEuLjQ1ZjUwODUyY2ZiYiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2NkbnMtZHNpLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vYnJpZGdlL2NkbnMtZHNpLmMKPiBAQCAtNjQ1LDcgKzY0NSw4IEBAIHN0YXRpYyBp bnQgY2Ruc19kc2lfY2hlY2tfY29uZihzdHJ1Y3QgY2Ruc19kc2kgKmRzaSwKPiAgCXJldHVybiAw Owo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGNkbnNfZHNpX2JyaWRnZV9hdHRhY2goc3RydWN0IGRy bV9icmlkZ2UgKmJyaWRnZSkKPiArc3RhdGljIGludCBjZG5zX2RzaV9icmlkZ2VfYXR0YWNoKHN0 cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gKwkJCQkgIGJvb2wgY3JlYXRlX2Nvbm5lY3RvcikK PiAgewo+ICAJc3RydWN0IGNkbnNfZHNpX2lucHV0ICppbnB1dCA9IGJyaWRnZV90b19jZG5zX2Rz aV9pbnB1dChicmlkZ2UpOwo+ICAJc3RydWN0IGNkbnNfZHNpICpkc2kgPSBpbnB1dF90b19kc2ko aW5wdXQpOwo+IEBAIC02NTcsNyArNjU4LDggQEAgc3RhdGljIGludCBjZG5zX2RzaV9icmlkZ2Vf YXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gIAkJcmV0dXJuIC1FTk9UU1VQUDsK PiAgCX0KPiAgCj4gLQlyZXR1cm4gZHJtX2JyaWRnZV9hdHRhY2goYnJpZGdlLT5lbmNvZGVyLCBv dXRwdXQtPmJyaWRnZSwgYnJpZGdlKTsKPiArCXJldHVybiBkcm1fYnJpZGdlX2F0dGFjaChicmlk Z2UtPmVuY29kZXIsIG91dHB1dC0+YnJpZGdlLCBicmlkZ2UsCj4gKwkJCQkgY3JlYXRlX2Nvbm5l Y3Rvcik7Cj4gIH0KPiAgCj4gIHN0YXRpYyBlbnVtIGRybV9tb2RlX3N0YXR1cwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2x2ZHMtZW5jb2Rlci5jIGIvZHJpdmVycy9ncHUv ZHJtL2JyaWRnZS9sdmRzLWVuY29kZXIuYwo+IGluZGV4IDJhYjJjMjM0ZjI2Yy4uYmFmYWI5NzUy MWFmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvbHZkcy1lbmNvZGVyLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL2x2ZHMtZW5jb2Rlci5jCj4gQEAgLTE4LDE0 ICsxOCwxNCBAQCBzdHJ1Y3QgbHZkc19lbmNvZGVyIHsKPiAgCXN0cnVjdCBncGlvX2Rlc2MgKnBv d2VyZG93bl9ncGlvOwo+ICB9Owo+ICAKPiAtc3RhdGljIGludCBsdmRzX2VuY29kZXJfYXR0YWNo KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gK3N0YXRpYyBpbnQgbHZkc19lbmNvZGVyX2F0 dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLCBib29sIGNyZWF0ZV9jb25uZWN0b3IpCj4g IHsKPiAgCXN0cnVjdCBsdmRzX2VuY29kZXIgKmx2ZHNfZW5jb2RlciA9IGNvbnRhaW5lcl9vZihi cmlkZ2UsCj4gIAkJCQkJCQkgc3RydWN0IGx2ZHNfZW5jb2RlciwKPiAgCQkJCQkJCSBicmlkZ2Up Owo+ICAKPiAgCXJldHVybiBkcm1fYnJpZGdlX2F0dGFjaChicmlkZ2UtPmVuY29kZXIsIGx2ZHNf ZW5jb2Rlci0+cGFuZWxfYnJpZGdlLAo+IC0JCQkJIGJyaWRnZSk7Cj4gKwkJCQkgYnJpZGdlLCBj cmVhdGVfY29ubmVjdG9yKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQgbHZkc19lbmNvZGVyX2Vu YWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYnJpZGdlL21lZ2FjaGlwcy1zdGRweHh4eC1nZS1iODUwdjMtZncuYyBiL2RyaXZlcnMv Z3B1L2RybS9icmlkZ2UvbWVnYWNoaXBzLXN0ZHB4eHh4LWdlLWI4NTB2My1mdy5jCj4gaW5kZXgg NzkzMTFmODM1NGJkLi40MjUwZTIyMzVmNTAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2JyaWRnZS9tZWdhY2hpcHMtc3RkcHh4eHgtZ2UtYjg1MHYzLWZ3LmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vYnJpZGdlL21lZ2FjaGlwcy1zdGRweHh4eC1nZS1iODUwdjMtZncuYwo+IEBAIC0y MDYsMTMgKzIwNiwxNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZ2VfYjg1MHYzX2x2ZHNfaXJxX2hh bmRsZXIoaW50IGlycSwgdm9pZCAqZGV2X2lkKQo+ICAJcmV0dXJuIElSUV9IQU5ETEVEOwo+ICB9 Cj4gIAo+IC1zdGF0aWMgaW50IGdlX2I4NTB2M19sdmRzX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRn ZSAqYnJpZGdlKQo+ICtzdGF0aWMgaW50IGdlX2I4NTB2M19sdmRzX2F0dGFjaChzdHJ1Y3QgZHJt X2JyaWRnZSAqYnJpZGdlLAo+ICsJCQkJIGJvb2wgY3JlYXRlX2Nvbm5lY3RvcikKPiAgewo+ICAJ c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZnZV9iODUwdjNfbHZkc19wdHItPmNv bm5lY3RvcjsKPiAgCXN0cnVjdCBpMmNfY2xpZW50ICpzdGRwNDAyOF9pMmMKPiAgCQkJPSBnZV9i ODUwdjNfbHZkc19wdHItPnN0ZHA0MDI4X2kyYzsKPiAgCWludCByZXQ7Cj4gIAo+ICsJaWYgKCFj cmVhdGVfY29ubmVjdG9yKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiAgCWlmICghYnJpZGdl LT5lbmNvZGVyKSB7Cj4gIAkJRFJNX0VSUk9SKCJQYXJlbnQgZW5jb2RlciBvYmplY3Qgbm90IGZv dW5kIik7Cj4gIAkJcmV0dXJuIC1FTk9ERVY7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9icmlkZ2UvbnhwLXB0bjM0NjAuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvbnhwLXB0bjM0 NjAuYwo+IGluZGV4IDk4YmM2NTBiOGM5NS4uNmJlZjQzOTI2MWRhIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9icmlkZ2UvbnhwLXB0bjM0NjAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9icmlkZ2UvbnhwLXB0bjM0NjAuYwo+IEBAIC0yMzgsMTEgKzIzOCwxNSBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgcHRuMzQ2MF9jb25uZWN0b3JfZnVuY3MgPSB7 Cj4gIAkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3Jf ZGVzdHJveV9zdGF0ZSwKPiAgfTsKPiAgCj4gLXN0YXRpYyBpbnQgcHRuMzQ2MF9icmlkZ2VfYXR0 YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gK3N0YXRpYyBpbnQgcHRuMzQ2MF9icmlk Z2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gKwkJCQkgYm9vbCBjcmVhdGVf Y29ubmVjdG9yKQo+ICB7Cj4gIAlzdHJ1Y3QgcHRuMzQ2MF9icmlkZ2UgKnB0bl9icmlkZ2UgPSBi cmlkZ2VfdG9fcHRuMzQ2MChicmlkZ2UpOwo+ICAJaW50IHJldDsKPiAgCj4gKwlpZiAoIWNyZWF0 ZV9jb25uZWN0b3IpCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICAJaWYgKCFicmlkZ2UtPmVu Y29kZXIpIHsKPiAgCQlEUk1fRVJST1IoIlBhcmVudCBlbmNvZGVyIG9iamVjdCBub3QgZm91bmQi KTsKPiAgCQlyZXR1cm4gLUVOT0RFVjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9wYW5lbC5jCj4gaW5kZXggYjEy YWUzYTRjNWYxLi45OGFkNGFiZjI0MDkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS9wYW5lbC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9wYW5lbC5jCj4gQEAg LTUyLDEyICs1MiwxNSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3Mg cGFuZWxfYnJpZGdlX2Nvbm5lY3Rvcl9mdW5jcyA9IHsKPiAgCS5hdG9taWNfZGVzdHJveV9zdGF0 ZSA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kZXN0cm95X3N0YXRlLAo+ICB9Owo+ICAK PiAtc3RhdGljIGludCBwYW5lbF9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlk Z2UpCj4gK3N0YXRpYyBpbnQgcGFuZWxfYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAq YnJpZGdlLCBib29sIGNyZWF0ZV9jb25uZWN0b3IpCj4gIHsKPiAgCXN0cnVjdCBwYW5lbF9icmlk Z2UgKnBhbmVsX2JyaWRnZSA9IGRybV9icmlkZ2VfdG9fcGFuZWxfYnJpZGdlKGJyaWRnZSk7Cj4g IAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yID0gJnBhbmVsX2JyaWRnZS0+Y29ubmVj dG9yOwo+ICAJaW50IHJldDsKPiAgCj4gKwlpZiAoIWNyZWF0ZV9jb25uZWN0b3IpCj4gKwkJcmV0 dXJuIC1FSU5WQUw7Cj4gKwo+ICAJaWYgKCFicmlkZ2UtPmVuY29kZXIpIHsKPiAgCQlEUk1fRVJS T1IoIk1pc3NpbmcgZW5jb2RlclxuIik7Cj4gIAkJcmV0dXJuIC1FTk9ERVY7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvcGFyYWRlLXBzODYyMi5jIGIvZHJpdmVycy9ncHUv ZHJtL2JyaWRnZS9wYXJhZGUtcHM4NjIyLmMKPiBpbmRleCAyZDg4MTQ2ZTQ4MzYuLmI5MjQzZDUx NDg5YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3BhcmFkZS1wczg2MjIu Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvcGFyYWRlLXBzODYyMi5jCj4gQEAgLTQ3 NiwxMSArNDc2LDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBw czg2MjJfY29ubmVjdG9yX2Z1bmNzID0gewo+ICAJLmF0b21pY19kZXN0cm95X3N0YXRlID0gZHJt X2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUsCj4gIH07Cj4gIAo+IC1zdGF0 aWMgaW50IHBzODYyMl9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiArc3RhdGlj IGludCBwczg2MjJfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsIGJvb2wgY3JlYXRl X2Nvbm5lY3RvcikKPiAgewo+ICAJc3RydWN0IHBzODYyMl9icmlkZ2UgKnBzODYyMiA9IGJyaWRn ZV90b19wczg2MjIoYnJpZGdlKTsKPiAgCWludCByZXQ7Cj4gIAo+ICsJaWYgKCFjcmVhdGVfY29u bmVjdG9yKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiAgCWlmICghYnJpZGdlLT5lbmNvZGVy KSB7Cj4gIAkJRFJNX0VSUk9SKCJQYXJlbnQgZW5jb2RlciBvYmplY3Qgbm90IGZvdW5kIik7Cj4g IAkJcmV0dXJuIC1FTk9ERVY7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uv c2lpOTAyeC5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWk5MDJ4LmMKPiBpbmRleCBkZDdh YTQ2NmIyODAuLjE4OTA0YjEwODJiNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJp ZGdlL3NpaTkwMnguYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lpOTAyeC5jCj4g QEAgLTM5NiwxMiArMzk2LDE2IEBAIHN0YXRpYyB2b2lkIHNpaTkwMnhfYnJpZGdlX21vZGVfc2V0 KHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gIAltdXRleF91bmxvY2soJnNpaTkwMngtPm11 dGV4KTsKPiAgfQo+ICAKPiAtc3RhdGljIGludCBzaWk5MDJ4X2JyaWRnZV9hdHRhY2goc3RydWN0 IGRybV9icmlkZ2UgKmJyaWRnZSkKPiArc3RhdGljIGludCBzaWk5MDJ4X2JyaWRnZV9hdHRhY2go c3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiArCQkJCSBib29sIGNyZWF0ZV9jb25uZWN0b3Ip Cj4gIHsKPiAgCXN0cnVjdCBzaWk5MDJ4ICpzaWk5MDJ4ID0gYnJpZGdlX3RvX3NpaTkwMngoYnJp ZGdlKTsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkcm0gPSBicmlkZ2UtPmRldjsKPiAgCWludCBy ZXQ7Cj4gIAo+ICsJaWYgKCFjcmVhdGVfY29ubmVjdG9yKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ ICsKPiAgCWRybV9jb25uZWN0b3JfaGVscGVyX2FkZCgmc2lpOTAyeC0+Y29ubmVjdG9yLAo+ICAJ CQkJICZzaWk5MDJ4X2Nvbm5lY3Rvcl9oZWxwZXJfZnVuY3MpOwo+ICAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5jIGIvZHJpdmVycy9ncHUvZHJtL2Jy aWRnZS9zaWwtc2lpODYyMC5jCj4gaW5kZXggMGNjMjkzYTZhYzI0Li5lYTY1MjlkZjdkOWMgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5jCj4gQEAgLTIyMDMsNyArMjIwMyw3 IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHNpaTg2MjAgKmJyaWRnZV90b19zaWk4NjIwKHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gIAlyZXR1cm4gY29udGFpbmVyX29mKGJyaWRnZSwgc3Ry dWN0IHNpaTg2MjAsIGJyaWRnZSk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgc2lpODYyMF9hdHRh Y2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiArc3RhdGljIGludCBzaWk4NjIwX2F0dGFj aChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLCBib29sIGNyZWF0ZV9jb25uZWN0b3IpCj4gIHsK PiAgCXN0cnVjdCBzaWk4NjIwICpjdHggPSBicmlkZ2VfdG9fc2lpODYyMChicmlkZ2UpOwo+ICAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaW1wbGUtYnJpZGdlLmMgYi9k cml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpbXBsZS1icmlkZ2UuYwo+IGluZGV4IDc0OTViOWJlZjg2 NS4uODY4ODVlYjZlMjhkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc2lt cGxlLWJyaWRnZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaW1wbGUtYnJpZGdl LmMKPiBAQCAtMTA4LDExICsxMDgsMTUgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVj dG9yX2Z1bmNzIHNpbXBsZV9icmlkZ2VfY29uX2Z1bmNzID0gewo+ICAJLmF0b21pY19kZXN0cm95 X3N0YXRlCT0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ryb3lfc3RhdGUsCj4gIH07 Cj4gIAo+IC1zdGF0aWMgaW50IHNpbXBsZV9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdl ICpicmlkZ2UpCj4gK3N0YXRpYyBpbnQgc2ltcGxlX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9i cmlkZ2UgKmJyaWRnZSwKPiArCQkJCWJvb2wgY3JlYXRlX2Nvbm5lY3RvcikKPiAgewo+ICAJc3Ry dWN0IHNpbXBsZV9icmlkZ2UgKnNicmlkZ2UgPSBkcm1fYnJpZGdlX3RvX3NpbXBsZV9icmlkZ2Uo YnJpZGdlKTsKPiAgCWludCByZXQ7Cj4gIAo+ICsJaWYgKCFjcmVhdGVfY29ubmVjdG9yKQo+ICsJ CXJldHVybiAwOwo+ICsKPiAgCWlmICghYnJpZGdlLT5lbmNvZGVyKSB7Cj4gIAkJRFJNX0VSUk9S KCJNaXNzaW5nIGVuY29kZXJcbiIpOwo+ICAJCXJldHVybiAtRU5PREVWOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS5jCj4gaW5kZXggYzY0OTA5NDlkOWRiLi45MzBk NjdjNjE4ZGQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9k dy1oZG1pLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWku Ywo+IEBAIC0yMTc0LDEyICsyMTc0LDE2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9oZWxwZXJfZnVuY3MgZHdfaGRtaV9jb25uZWN0b3JfaGVscGVyX2Z1bmNzID0KPiAgCS5n ZXRfbW9kZXMgPSBkd19oZG1pX2Nvbm5lY3Rvcl9nZXRfbW9kZXMsCj4gIH07Cj4gIAo+IC1zdGF0 aWMgaW50IGR3X2hkbWlfYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlKQo+ ICtzdGF0aWMgaW50IGR3X2hkbWlfYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJp ZGdlLAo+ICsJCQkJIGJvb2wgY3JlYXRlX2Nvbm5lY3RvcikKPiAgewo+ICAJc3RydWN0IGR3X2hk bWkgKmhkbWkgPSBicmlkZ2UtPmRyaXZlcl9wcml2YXRlOwo+ICAJc3RydWN0IGRybV9lbmNvZGVy ICplbmNvZGVyID0gYnJpZGdlLT5lbmNvZGVyOwo+ICAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvciA9ICZoZG1pLT5jb25uZWN0b3I7Cj4gIAo+ICsJaWYgKCFjcmVhdGVfY29ubmVjdG9y KQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiAgCWNvbm5lY3Rvci0+aW50ZXJsYWNlX2FsbG93 ZWQgPSAxOwo+ICAJY29ubmVjdG9yLT5wb2xsZWQgPSBEUk1fQ09OTkVDVE9SX1BPTExfSFBEOwo+ ICAKPiBAQCAtMjg1Nyw3ICsyODYxLDcgQEAgc3RydWN0IGR3X2hkbWkgKmR3X2hkbWlfYmluZChz dHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ICAJaWYgKElTX0VSUihoZG1pKSkKPiAgCQly ZXR1cm4gaGRtaTsKPiAgCj4gLQlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCAmaGRt aS0+YnJpZGdlLCBOVUxMKTsKPiArCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsICZo ZG1pLT5icmlkZ2UsIE5VTEwsIHRydWUpOwo+ICAJaWYgKHJldCkgewo+ICAJCWR3X2hkbWlfcmVt b3ZlKGhkbWkpOwo+ICAJCURSTV9FUlJPUigiRmFpbGVkIHRvIGluaXRpYWxpemUgYnJpZGdlIHdp dGggZHJtXG4iKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5 cy9kdy1taXBpLWRzaS5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1taXBp LWRzaS5jCj4gaW5kZXggMjgxYzU4YmFiMWExLi4wNWNmOTdhZDUyNGYgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1taXBpLWRzaS5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1taXBpLWRzaS5jCj4gQEAgLTkwNiw3ICs5 MDYsOCBAQCBkd19taXBpX2RzaV9icmlkZ2VfbW9kZV92YWxpZChzdHJ1Y3QgZHJtX2JyaWRnZSAq YnJpZGdlLAo+ICAJcmV0dXJuIG1vZGVfc3RhdHVzOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IGR3 X21pcGlfZHNpX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiArc3Rh dGljIGludCBkd19taXBpX2RzaV9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlk Z2UsCj4gKwkJCQkgICAgIGJvb2wgY3JlYXRlX2Nvbm5lY3RvcikKPiAgewo+ICAJc3RydWN0IGR3 X21pcGlfZHNpICpkc2kgPSBicmlkZ2VfdG9fZHNpKGJyaWRnZSk7Cj4gIAo+IEBAIC05MTksNyAr OTIwLDggQEAgc3RhdGljIGludCBkd19taXBpX2RzaV9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1f YnJpZGdlICpicmlkZ2UpCj4gIAlicmlkZ2UtPmVuY29kZXItPmVuY29kZXJfdHlwZSA9IERSTV9N T0RFX0VOQ09ERVJfRFNJOwo+ICAKPiAgCS8qIEF0dGFjaCB0aGUgcGFuZWwtYnJpZGdlIHRvIHRo ZSBkc2kgYnJpZGdlICovCj4gLQlyZXR1cm4gZHJtX2JyaWRnZV9hdHRhY2goYnJpZGdlLT5lbmNv ZGVyLCBkc2ktPnBhbmVsX2JyaWRnZSwgYnJpZGdlKTsKPiArCXJldHVybiBkcm1fYnJpZGdlX2F0 dGFjaChicmlkZ2UtPmVuY29kZXIsIGRzaS0+cGFuZWxfYnJpZGdlLCBicmlkZ2UsCj4gKwkJCQkg Y3JlYXRlX2Nvbm5lY3Rvcik7Cj4gIH0KPiAgCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Jy aWRnZV9mdW5jcyBkd19taXBpX2RzaV9icmlkZ2VfZnVuY3MgPSB7Cj4gQEAgLTEwNjQsNyArMTA2 Niw3IEBAIGludCBkd19taXBpX2RzaV9iaW5kKHN0cnVjdCBkd19taXBpX2RzaSAqZHNpLCBzdHJ1 Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCj4gIHsKPiAgCWludCByZXQ7Cj4gIAo+IC0JcmV0ID0g ZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgJmRzaS0+YnJpZGdlLCBOVUxMKTsKPiArCXJldCA9 IGRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsICZkc2ktPmJyaWRnZSwgTlVMTCwgdHJ1ZSk7Cj4g IAlpZiAocmV0KSB7Cj4gIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBicmlkZ2Ug d2l0aCBkcm1cbiIpOwo+ICAJCXJldHVybiByZXQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9icmlkZ2UvdGMzNTg3NjQuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3NjQu Ywo+IGluZGV4IDE3MGYxNjJmZmE1NS4uNjAxNmYzYWFlNDJmIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3NjQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9icmlk Z2UvdGMzNTg3NjQuYwo+IEBAIC0zNDgsMTIgKzM0OCwxNSBAQCBzdGF0aWMgdm9pZCB0YzM1ODc2 NF9lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiAgCQlkZXZfZXJyKGN0eC0+ZGV2 LCAiZXJyb3IgZW5hYmxpbmcgcGFuZWwgKCVkKVxuIiwgcmV0KTsKPiAgfQo+ICAKPiAtc3RhdGlj IGludCB0YzM1ODc2NF9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiArc3RhdGlj IGludCB0YzM1ODc2NF9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwgYm9vbCBjcmVh dGVfY29ubmVjdG9yKQo+ICB7Cj4gIAlzdHJ1Y3QgdGMzNTg3NjQgKmN0eCA9IGJyaWRnZV90b190 YzM1ODc2NChicmlkZ2UpOwo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRybSA9IGJyaWRnZS0+ZGV2 Owo+ICAJaW50IHJldDsKPiAgCj4gKwlpZiAoIWNyZWF0ZV9jb25uZWN0b3IpCj4gKwkJcmV0dXJu IC1FSU5WQUw7Cj4gKwo+ICAJY3R4LT5jb25uZWN0b3IucG9sbGVkID0gRFJNX0NPTk5FQ1RPUl9Q T0xMX0hQRDsKPiAgCXJldCA9IGRybV9jb25uZWN0b3JfaW5pdChkcm0sICZjdHgtPmNvbm5lY3Rv ciwKPiAgCQkJCSAmdGMzNTg3NjRfY29ubmVjdG9yX2Z1bmNzLAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYnJpZGdlL3RjMzU4NzY3LmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3Rj MzU4NzY3LmMKPiBpbmRleCAxM2FkZTI4YTM2YTguLmUyYjJkMjY2MGFkYyAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RjMzU4NzY3LmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vYnJpZGdlL3RjMzU4NzY3LmMKPiBAQCAtMTI3MywxMyArMTI3MywxNiBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgdGNfY29ubmVjdG9yX2Z1bmNzID0gewo+ICAJ LmF0b21pY19kZXN0cm95X3N0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2Rlc3Ry b3lfc3RhdGUsCj4gIH07Cj4gIAo+IC1zdGF0aWMgaW50IHRjX2JyaWRnZV9hdHRhY2goc3RydWN0 IGRybV9icmlkZ2UgKmJyaWRnZSkKPiArc3RhdGljIGludCB0Y19icmlkZ2VfYXR0YWNoKHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UsIGJvb2wgY3JlYXRlX2Nvbm5lY3RvcikKPiAgewo+ICAJdTMy IGJ1c19mb3JtYXQgPSBNRURJQV9CVVNfRk1UX1JHQjg4OF8xWDI0Owo+ICAJc3RydWN0IHRjX2Rh dGEgKnRjID0gYnJpZGdlX3RvX3RjKGJyaWRnZSk7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJt ID0gYnJpZGdlLT5kZXY7Cj4gIAlpbnQgcmV0Owo+ICAKPiArCWlmICghY3JlYXRlX2Nvbm5lY3Rv cikKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gIAkvKiBDcmVhdGUgRFAvZURQIGNvbm5lY3Rv ciAqLwo+ICAJZHJtX2Nvbm5lY3Rvcl9oZWxwZXJfYWRkKCZ0Yy0+Y29ubmVjdG9yLCAmdGNfY29u bmVjdG9yX2hlbHBlcl9mdW5jcyk7Cj4gIAlyZXQgPSBkcm1fY29ubmVjdG9yX2luaXQoZHJtLCAm dGMtPmNvbm5lY3RvciwgJnRjX2Nvbm5lY3Rvcl9mdW5jcywKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2JyaWRnZS90aGM2M2x2ZDEwMjQuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uv dGhjNjNsdmQxMDI0LmMKPiBpbmRleCAzZDc0MTI5YjI5OTUuLjg2ZjNiOTZmOTVkYiAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RoYzYzbHZkMTAyNC5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2JyaWRnZS90aGM2M2x2ZDEwMjQuYwo+IEBAIC00MiwxMSArNDIsMTIgQEAg c3RhdGljIGlubGluZSBzdHJ1Y3QgdGhjNjNfZGV2ICp0b190aGM2MyhzdHJ1Y3QgZHJtX2JyaWRn ZSAqYnJpZGdlKQo+ICAJcmV0dXJuIGNvbnRhaW5lcl9vZihicmlkZ2UsIHN0cnVjdCB0aGM2M19k ZXYsIGJyaWRnZSk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBpbnQgdGhjNjNfYXR0YWNoKHN0cnVjdCBk cm1fYnJpZGdlICpicmlkZ2UpCj4gK3N0YXRpYyBpbnQgdGhjNjNfYXR0YWNoKHN0cnVjdCBkcm1f YnJpZGdlICpicmlkZ2UsIGJvb2wgY3JlYXRlX2Nvbm5lY3RvcikKPiAgewo+ICAJc3RydWN0IHRo YzYzX2RldiAqdGhjNjMgPSB0b190aGM2MyhicmlkZ2UpOwo+ICAKPiAtCXJldHVybiBkcm1fYnJp ZGdlX2F0dGFjaChicmlkZ2UtPmVuY29kZXIsIHRoYzYzLT5uZXh0LCBicmlkZ2UpOwo+ICsJcmV0 dXJuIGRybV9icmlkZ2VfYXR0YWNoKGJyaWRnZS0+ZW5jb2RlciwgdGhjNjMtPm5leHQsIGJyaWRn ZSwKPiArCQkJCSBjcmVhdGVfY29ubmVjdG9yKTsKPiAgfQo+ICAKPiAgc3RhdGljIGVudW0gZHJt X21vZGVfc3RhdHVzIHRoYzYzX21vZGVfdmFsaWQoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90aS1zbjY1ZHNpODYuYyBiL2Ry aXZlcnMvZ3B1L2RybS9icmlkZ2UvdGktc242NWRzaTg2LmMKPiBpbmRleCBiNzdhNTJkMDUwNjEu LmRiZTI2NWY3MTEyZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RpLXNu NjVkc2k4Ni5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90aS1zbjY1ZHNpODYuYwo+ IEBAIC0yMjQsNyArMjI0LDcgQEAgc3RhdGljIGludCB0aV9zbl9icmlkZ2VfcGFyc2VfcmVndWxh dG9ycyhzdHJ1Y3QgdGlfc25fYnJpZGdlICpwZGF0YSkKPiAgCQkJCSAgICAgICBwZGF0YS0+c3Vw cGxpZXMpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IHRpX3NuX2JyaWRnZV9hdHRhY2goc3RydWN0 IGRybV9icmlkZ2UgKmJyaWRnZSkKPiArc3RhdGljIGludCB0aV9zbl9icmlkZ2VfYXR0YWNoKHN0 cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsIGJvb2wgY3JlYXRlX2Nvbm5lY3RvcikKPiAgewo+ICAJ aW50IHJldCwgdmFsOwo+ICAJc3RydWN0IHRpX3NuX2JyaWRnZSAqcGRhdGEgPSBicmlkZ2VfdG9f dGlfc25fYnJpZGdlKGJyaWRnZSk7Cj4gQEAgLTIzNSw2ICsyMzUsOSBAQCBzdGF0aWMgaW50IHRp X3NuX2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiAgCQkJCQkJICAg Lm5vZGUgPSBOVUxMLAo+ICAJCQkJCQkgfTsKPiAgCj4gKwlpZiAoIWNyZWF0ZV9jb25uZWN0b3Ip Cj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICAJcmV0ID0gZHJtX2Nvbm5lY3Rvcl9pbml0KGJy aWRnZS0+ZGV2LCAmcGRhdGEtPmNvbm5lY3RvciwKPiAgCQkJCSAmdGlfc25fYnJpZGdlX2Nvbm5l Y3Rvcl9mdW5jcywKPiAgCQkJCSBEUk1fTU9ERV9DT05ORUNUT1JfZURQKTsKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90aS10ZnA0MTAuYyBiL2RyaXZlcnMvZ3B1L2RybS9i cmlkZ2UvdGktdGZwNDEwLmMKPiBpbmRleCA0ZTc2YjJiMjczNzQuLjhkNDY5MGU0MzZjMyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3RpLXRmcDQxMC5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2JyaWRnZS90aS10ZnA0MTAuYwo+IEBAIC0xMjEsMTEgKzEyMSwxNCBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgdGZwNDEwX2Nvbl9mdW5jcyA9 IHsKPiAgCS5hdG9taWNfZGVzdHJveV9zdGF0ZQk9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rv cl9kZXN0cm95X3N0YXRlLAo+ICB9Owo+ICAKPiAtc3RhdGljIGludCB0ZnA0MTBfYXR0YWNoKHN0 cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gK3N0YXRpYyBpbnQgdGZwNDEwX2F0dGFjaChzdHJ1 Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLCBib29sIGNyZWF0ZV9jb25uZWN0b3IpCj4gIHsKPiAgCXN0 cnVjdCB0ZnA0MTAgKmR2aSA9IGRybV9icmlkZ2VfdG9fdGZwNDEwKGJyaWRnZSk7Cj4gIAlpbnQg cmV0Owo+ICAKPiArCWlmICghY3JlYXRlX2Nvbm5lY3RvcikKPiArCQlyZXR1cm4gLUVJTlZBTDsK PiArCj4gIAlpZiAoIWJyaWRnZS0+ZW5jb2Rlcikgewo+ICAJCWRldl9lcnIoZHZpLT5kZXYsICJN aXNzaW5nIGVuY29kZXJcbiIpOwo+ICAJCXJldHVybiAtRU5PREVWOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2JyaWRnZS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2Uu Ywo+IGluZGV4IGNiYTUzN2M5OWU0My4uNTE5NTc3ZjM2M2UzIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9kcm1fYnJpZGdlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2JyaWRn ZS5jCj4gQEAgLTk1LDYgKzk1LDcgQEAgRVhQT1JUX1NZTUJPTChkcm1fYnJpZGdlX3JlbW92ZSk7 Cj4gICAqIEBlbmNvZGVyOiBEUk0gZW5jb2Rlcgo+ICAgKiBAYnJpZGdlOiBicmlkZ2UgdG8gYXR0 YWNoCj4gICAqIEBwcmV2aW91czogcHJldmlvdXMgYnJpZGdlIGluIHRoZSBjaGFpbiAob3B0aW9u YWwpCj4gKyAqIEBjcmVhdGVfY29ubmVjdG9yOiB0cnVlIGlmIHRoZSBicmlkZ2Ugc2hvdWxkIGNy ZWF0ZSBhIGRybV9jb25uZWN0b3IKPiAgICoKPiAgICogQ2FsbGVkIGJ5IGEga21zIGRyaXZlciB0 byBsaW5rIHRoZSBicmlkZ2UgdG8gYW4gZW5jb2RlcidzIGNoYWluLiBUaGUgcHJldmlvdXMKPiAg ICogYXJndW1lbnQgc3BlY2lmaWVzIHRoZSBwcmV2aW91cyBicmlkZ2UgaW4gdGhlIGNoYWluLiBJ ZiBOVUxMLCB0aGUgYnJpZGdlIGlzCj4gQEAgLTExMiw3ICsxMTMsNyBAQCBFWFBPUlRfU1lNQk9M KGRybV9icmlkZ2VfcmVtb3ZlKTsKPiAgICogWmVybyBvbiBzdWNjZXNzLCBlcnJvciBjb2RlIG9u IGZhaWx1cmUKPiAgICovCj4gIGludCBkcm1fYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIsIHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gLQkJICAgICAgc3RydWN0 IGRybV9icmlkZ2UgKnByZXZpb3VzKQo+ICsJCSAgICAgIHN0cnVjdCBkcm1fYnJpZGdlICpwcmV2 aW91cywgYm9vbCBjcmVhdGVfY29ubmVjdG9yKQo+ICB7Cj4gIAlpbnQgcmV0Owo+ICAKPiBAQCAt MTI5LDcgKzEzMCw3IEBAIGludCBkcm1fYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIsIHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gIAlicmlkZ2UtPmVuY29kZXIg PSBlbmNvZGVyOwo+ICAKPiAgCWlmIChicmlkZ2UtPmZ1bmNzLT5hdHRhY2gpIHsKPiAtCQlyZXQg PSBicmlkZ2UtPmZ1bmNzLT5hdHRhY2goYnJpZGdlKTsKPiArCQlyZXQgPSBicmlkZ2UtPmZ1bmNz LT5hdHRhY2goYnJpZGdlLCBjcmVhdGVfY29ubmVjdG9yKTsKPiAgCQlpZiAocmV0IDwgMCkgewo+ ICAJCQlicmlkZ2UtPmRldiA9IE5VTEw7Cj4gIAkJCWJyaWRnZS0+ZW5jb2RlciA9IE5VTEw7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuYyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fc2ltcGxlX2ttc19oZWxwZXIuYwo+IGluZGV4IGIxMTkxMGYxNGM0 Ni4uYTM2N2VmMWU1MDgxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2ltcGxl X2ttc19oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc2ltcGxlX2ttc19oZWxw ZXIuYwo+IEBAIC0yMjgsNyArMjI4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcGxhbmVf ZnVuY3MgZHJtX3NpbXBsZV9rbXNfcGxhbmVfZnVuY3MgPSB7Cj4gIGludCBkcm1fc2ltcGxlX2Rp c3BsYXlfcGlwZV9hdHRhY2hfYnJpZGdlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAq cGlwZSwKPiAgCQkJCQkgIHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gIHsKPiAtCXJldHVy biBkcm1fYnJpZGdlX2F0dGFjaCgmcGlwZS0+ZW5jb2RlciwgYnJpZGdlLCBOVUxMKTsKPiArCXJl dHVybiBkcm1fYnJpZGdlX2F0dGFjaCgmcGlwZS0+ZW5jb2RlciwgYnJpZGdlLCBOVUxMLCB0cnVl KTsKPiAgfQo+ICBFWFBPUlRfU1lNQk9MKGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2F0dGFjaF9i cmlkZ2UpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3Nf ZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RwLmMKPiBpbmRleCAzYTBmMGJh OGM2M2EuLjAyYjk4ZTZjYTUyZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9z L2V4eW5vc19kcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHAuYwo+ IEBAIC0xMDUsNyArMTA1LDggQEAgc3RhdGljIGludCBleHlub3NfZHBfYnJpZGdlX2F0dGFjaChz dHJ1Y3QgYW5hbG9naXhfZHBfcGxhdF9kYXRhICpwbGF0X2RhdGEsCj4gIAo+ICAJLyogUHJlLWVt cHQgRFAgY29ubmVjdG9yIGNyZWF0aW9uIGlmIHRoZXJlJ3MgYSBicmlkZ2UgKi8KPiAgCWlmIChk cC0+cHRuX2JyaWRnZSkgewo+IC0JCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKCZkcC0+ZW5jb2Rl ciwgZHAtPnB0bl9icmlkZ2UsIGJyaWRnZSk7Cj4gKwkJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2go JmRwLT5lbmNvZGVyLCBkcC0+cHRuX2JyaWRnZSwgYnJpZGdlLAo+ICsJCQkJCXRydWUpOwo+ICAJ CWlmIChyZXQpIHsKPiAgCQkJRFJNX0RFVl9FUlJPUihkcC0+ZGV2LAo+ICAJCQkJICAgICAgIkZh aWxlZCB0byBhdHRhY2ggYnJpZGdlIHRvIGRybVxuIik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3Mv ZXh5bm9zX2RybV9kc2kuYwo+IGluZGV4IDVmNmY1MjM4MjFhMi4uNzY4YWNjNzlkMTBjIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kc2kuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kc2kuYwo+IEBAIC0xNTIyLDcgKzE1 MjIsNyBAQCBzdGF0aWMgaW50IGV4eW5vc19kc2lfaG9zdF9hdHRhY2goc3RydWN0IG1pcGlfZHNp X2hvc3QgKmhvc3QsCj4gIAo+ICAJb3V0X2JyaWRnZSAgPSBvZl9kcm1fZmluZF9icmlkZ2UoZGV2 aWNlLT5kZXYub2Zfbm9kZSk7Cj4gIAlpZiAob3V0X2JyaWRnZSkgewo+IC0JCWRybV9icmlkZ2Vf YXR0YWNoKGVuY29kZXIsIG91dF9icmlkZ2UsIE5VTEwpOwo+ICsJCWRybV9icmlkZ2VfYXR0YWNo KGVuY29kZXIsIG91dF9icmlkZ2UsIE5VTEwsIHRydWUpOwo+ICAJCWRzaS0+b3V0X2JyaWRnZSA9 IG91dF9icmlkZ2U7Cj4gIAkJZW5jb2Rlci0+YnJpZGdlID0gTlVMTDsKPiAgCX0gZWxzZSB7Cj4g QEAgLTE2OTgsNyArMTY5OCw3IEBAIHN0YXRpYyBpbnQgZXh5bm9zX2RzaV9iaW5kKHN0cnVjdCBk ZXZpY2UgKmRldiwgc3RydWN0IGRldmljZSAqbWFzdGVyLAo+ICAJaWYgKGRzaS0+aW5fYnJpZGdl X25vZGUpIHsKPiAgCQlpbl9icmlkZ2UgPSBvZl9kcm1fZmluZF9icmlkZ2UoZHNpLT5pbl9icmlk Z2Vfbm9kZSk7Cj4gIAkJaWYgKGluX2JyaWRnZSkKPiAtCQkJZHJtX2JyaWRnZV9hdHRhY2goZW5j b2RlciwgaW5fYnJpZGdlLCBOVUxMKTsKPiArCQkJZHJtX2JyaWRnZV9hdHRhY2goZW5jb2Rlciwg aW5fYnJpZGdlLCBOVUxMLCB0cnVlKTsKPiAgCX0KPiAgCj4gIAlyZXR1cm4gbWlwaV9kc2lfaG9z dF9yZWdpc3RlcigmZHNpLT5kc2lfaG9zdCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9leHlub3MvZXh5bm9zX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2hk bWkuYwo+IGluZGV4IGJjMTU2NWYxODIyYS4uODA4Yzk4MTAxZDU2IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2hkbWkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9leHlub3MvZXh5bm9zX2hkbWkuYwo+IEBAIC05NTIsNyArOTUyLDcgQEAgc3RhdGljIGludCBo ZG1pX2NyZWF0ZV9jb25uZWN0b3Ioc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ICAJZHJt X2Nvbm5lY3Rvcl9hdHRhY2hfZW5jb2Rlcihjb25uZWN0b3IsIGVuY29kZXIpOwo+ICAKPiAgCWlm IChoZGF0YS0+YnJpZGdlKSB7Cj4gLQkJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZW5jb2Rlciwg aGRhdGEtPmJyaWRnZSwgTlVMTCk7Cj4gKwkJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZW5jb2Rl ciwgaGRhdGEtPmJyaWRnZSwgTlVMTCwgdHJ1ZSk7Cj4gIAkJaWYgKHJldCkKPiAgCQkJRFJNX0RF Vl9FUlJPUihoZGF0YS0+ZGV2LCAiRmFpbGVkIHRvIGF0dGFjaCBicmlkZ2VcbiIpOwo+ICAJfQo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xfZGN1X2RybV9yZ2IuYyBi L2RyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2ZzbF9kY3VfZHJtX3JnYi5jCj4gaW5kZXggYzQ5ZTll Mzc0MGY4Li44ZDIyNjE4Y2NmMmUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2ZzbC1k Y3UvZnNsX2RjdV9kcm1fcmdiLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZnNsLWRjdS9mc2xf ZGN1X2RybV9yZ2IuYwo+IEBAIC0xNTksNSArMTU5LDUgQEAgaW50IGZzbF9kY3VfY3JlYXRlX291 dHB1dHMoc3RydWN0IGZzbF9kY3VfZHJtX2RldmljZSAqZnNsX2RldikKPiAgCQlyZXR1cm4gZnNs X2RjdV9hdHRhY2hfcGFuZWwoZnNsX2RldiwgcGFuZWwpOwo+ICAJfQo+ICAKPiAtCXJldHVybiBk cm1fYnJpZGdlX2F0dGFjaCgmZnNsX2Rldi0+ZW5jb2RlciwgYnJpZGdlLCBOVUxMKTsKPiArCXJl dHVybiBkcm1fYnJpZGdlX2F0dGFjaCgmZnNsX2Rldi0+ZW5jb2RlciwgYnJpZGdlLCBOVUxMLCB0 cnVlKTsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaGlzaWxpY29uL2tpcmlu L2R3X2RybV9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9oaXNpbGljb24va2lyaW4vZHdfZHJtX2Rz aS5jCj4gaW5kZXggM2Q2YzQ1MDk3ZjUxLi5lYWM4ZWMxNTEyYWIgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2hpc2lsaWNvbi9raXJpbi9kd19kcm1fZHNpLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaGlzaWxpY29uL2tpcmluL2R3X2RybV9kc2kuYwo+IEBAIC03ODAsNyArNzgwLDcg QEAgc3RhdGljIGludCBkc2lfYnJpZGdlX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3Ry dWN0IGR3X2RzaSAqZHNpKQo+ICAJaW50IHJldDsKPiAgCj4gIAkvKiBhc3NvY2lhdGUgdGhlIGJy aWRnZSB0byBkc2kgZW5jb2RlciAqLwo+IC0JcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZW5jb2Rl ciwgYnJpZGdlLCBOVUxMKTsKPiArCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGJy aWRnZSwgTlVMTCwgdHJ1ZSk7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJRFJNX0VSUk9SKCJmYWlsZWQg dG8gYXR0YWNoIGV4dGVybmFsIGJyaWRnZVxuIik7Cj4gIAkJcmV0dXJuIHJldDsKPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2kyYy90ZGE5OTh4X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJt L2kyYy90ZGE5OTh4X2Rydi5jCj4gaW5kZXggM2QzNjhjNDMxODVmLi42YjJlNjQ4YjZjNGQgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2kyYy90ZGE5OTh4X2Rydi5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2kyYy90ZGE5OTh4X2Rydi5jCj4gQEAgLTEzNjYsMTAgKzEzNjYsMTQgQEAg c3RhdGljIGludCB0ZGE5OTh4X2Nvbm5lY3Rvcl9pbml0KHN0cnVjdCB0ZGE5OTh4X3ByaXYgKnBy aXYsCj4gIAo+ICAvKiBEUk0gYnJpZGdlIGZ1bmN0aW9ucyAqLwo+ICAKPiAtc3RhdGljIGludCB0 ZGE5OTh4X2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiArc3RhdGlj IGludCB0ZGE5OTh4X2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiAr CQkJCSBib29sIGNyZWF0ZV9jb25uZWN0b3IpCj4gIHsKPiAgCXN0cnVjdCB0ZGE5OTh4X3ByaXYg KnByaXYgPSBicmlkZ2VfdG9fdGRhOTk4eF9wcml2KGJyaWRnZSk7Cj4gIAo+ICsJaWYgKCFjcmVh dGVfY29ubmVjdG9yKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiAgCXJldHVybiB0ZGE5OTh4 X2Nvbm5lY3Rvcl9pbml0KHByaXYsIGJyaWRnZS0+ZGV2KTsKPiAgfQo+ICAKPiBAQCAtMjAzMyw3 ICsyMDM3LDcgQEAgc3RhdGljIGludCB0ZGE5OTh4X2VuY29kZXJfaW5pdChzdHJ1Y3QgZGV2aWNl ICpkZXYsIHN0cnVjdCBkcm1fZGV2aWNlICpkcm0pCj4gIAlpZiAocmV0KQo+ICAJCWdvdG8gZXJy X2VuY29kZXI7Cj4gIAo+IC0JcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goJnByaXYtPmVuY29kZXIs ICZwcml2LT5icmlkZ2UsIE5VTEwpOwo+ICsJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goJnByaXYt PmVuY29kZXIsICZwcml2LT5icmlkZ2UsIE5VTEwsIHRydWUpOwo+ICAJaWYgKHJldCkKPiAgCQln b3RvIGVycl9icmlkZ2U7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaW14L2lt eC1sZGIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWxkYi5jCj4gaW5kZXggMzgzNzMzMzAy MjgwLi44NDVlYWQyNWFkZTcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2lteC9pbXgt bGRiLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaW14L2lteC1sZGIuYwo+IEBAIC00NDYsNyAr NDQ2LDcgQEAgc3RhdGljIGludCBpbXhfbGRiX3JlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpk cm0sCj4gIAo+ICAJaWYgKGlteF9sZGJfY2gtPmJyaWRnZSkgewo+ICAJCXJldCA9IGRybV9icmlk Z2VfYXR0YWNoKCZpbXhfbGRiX2NoLT5lbmNvZGVyLAo+IC0JCQkJCWlteF9sZGJfY2gtPmJyaWRn ZSwgTlVMTCk7Cj4gKwkJCQkJaW14X2xkYl9jaC0+YnJpZGdlLCBOVUxMLCB0cnVlKTsKPiAgCQlp ZiAocmV0KSB7Cj4gIAkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGluaXRpYWxpemUgYnJpZGdlIHdp dGggZHJtXG4iKTsKPiAgCQkJcmV0dXJuIHJldDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2lteC9wYXJhbGxlbC1kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaW14L3BhcmFsbGVs LWRpc3BsYXkuYwo+IGluZGV4IDFhNzZkZTFlOGU3Yi4uY2Q3NDY1OTJkMmE3IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pbXgvcGFyYWxsZWwtZGlzcGxheS5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2lteC9wYXJhbGxlbC1kaXNwbGF5LmMKPiBAQCAtMTgyLDcgKzE4Miw3IEBAIHN0 YXRpYyBpbnQgaW14X3BkX3JlZ2lzdGVyKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sCj4gIAkJZHJt X3BhbmVsX2F0dGFjaChpbXhwZC0+cGFuZWwsICZpbXhwZC0+Y29ubmVjdG9yKTsKPiAgCj4gIAlp ZiAoaW14cGQtPmJyaWRnZSkgewo+IC0JCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIs IGlteHBkLT5icmlkZ2UsIE5VTEwpOwo+ICsJCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29k ZXIsIGlteHBkLT5icmlkZ2UsIE5VTEwsIHRydWUpOwo+ICAJCWlmIChyZXQgPCAwKSB7Cj4gIAkJ CWRldl9lcnIoaW14cGQtPmRldiwgImZhaWxlZCB0byBhdHRhY2ggYnJpZGdlOiAlZFxuIiwKPiAg CQkJCXJldCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tY2RlL21jZGVfZHNpLmMg Yi9kcml2ZXJzL2dwdS9kcm0vbWNkZS9tY2RlX2RzaS5jCj4gaW5kZXggMDdmNzA5MGQwOGIzLi5m MmRlYWRjOTgwZjggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21jZGUvbWNkZV9kc2ku Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tY2RlL21jZGVfZHNpLmMKPiBAQCAtODE3LDEyICs4 MTcsMTYgQEAgbWNkZV9kc2lfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyA9IHsKPiAgCS5nZXRfbW9k ZXMgPSBtY2RlX2RzaV9nZXRfbW9kZXMsCj4gIH07Cj4gIAo+IC1zdGF0aWMgaW50IG1jZGVfZHNp X2JyaWRnZV9hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiArc3RhdGljIGludCBt Y2RlX2RzaV9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gKwkJCQkg IGJvb2wgY3JlYXRlX2Nvbm5lY3RvcikKPiAgewo+ICAJc3RydWN0IG1jZGVfZHNpICpkID0gYnJp ZGdlX3RvX21jZGVfZHNpKGJyaWRnZSk7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gYnJp ZGdlLT5kZXY7Cj4gIAlpbnQgcmV0Owo+ICAKPiArCWlmICghY3JlYXRlX2Nvbm5lY3RvcikKPiAr CQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gIAlkcm1fY29ubmVjdG9yX2hlbHBlcl9hZGQoJmQtPmNv bm5lY3RvciwKPiAgCQkJCSAmbWNkZV9kc2lfY29ubmVjdG9yX2hlbHBlcl9mdW5jcyk7Cj4gIAo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RwaS5jIGIvZHJpdmVy cy9ncHUvZHJtL21lZGlhdGVrL210a19kcGkuYwo+IGluZGV4IGJhY2Q5ODljYzlhYS4uMWZmMjdi YjE3MDE2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHBpLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RwaS5jCj4gQEAgLTYwNCw3ICs2 MDQsNyBAQCBzdGF0aWMgaW50IG10a19kcGlfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVj dCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKPiAgCS8qIEN1cnJlbnRseSBEUEkwIGlzIGZp eGVkIHRvIGJlIGRyaXZlbiBieSBPVkwxICovCj4gIAlkcGktPmVuY29kZXIucG9zc2libGVfY3J0 Y3MgPSBCSVQoMSk7Cj4gIAo+IC0JcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goJmRwaS0+ZW5jb2Rl ciwgZHBpLT5icmlkZ2UsIE5VTEwpOwo+ICsJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goJmRwaS0+ ZW5jb2RlciwgZHBpLT5icmlkZ2UsIE5VTEwsIHRydWUpOwo+ICAJaWYgKHJldCkgewo+ICAJCWRl dl9lcnIoZGV2LCAiRmFpbGVkIHRvIGF0dGFjaCBicmlkZ2U6ICVkXG4iLCByZXQpOwo+ICAJCWdv dG8gZXJyX2NsZWFudXA7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9t dGtfZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RzaS5jCj4gaW5kZXggYjkx YzQ2MTY2NDRhLi45YzViYWM0OGI0NGYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19kc2kuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHNp LmMKPiBAQCAtODE5LDcgKzgxOSw3IEBAIHN0YXRpYyBpbnQgbXRrX2RzaV9jcmVhdGVfY29ubl9l bmMoc3RydWN0IGRybV9kZXZpY2UgKmRybSwgc3RydWN0IG10a19kc2kgKmRzaSkKPiAgCj4gIAkv KiBJZiB0aGVyZSdzIGEgYnJpZGdlLCBhdHRhY2ggdG8gaXQgYW5kIGxldCBpdCBjcmVhdGUgdGhl IGNvbm5lY3RvciAqLwo+ICAJaWYgKGRzaS0+YnJpZGdlKSB7Cj4gLQkJcmV0ID0gZHJtX2JyaWRn ZV9hdHRhY2goJmRzaS0+ZW5jb2RlciwgZHNpLT5icmlkZ2UsIE5VTEwpOwo+ICsJCXJldCA9IGRy bV9icmlkZ2VfYXR0YWNoKCZkc2ktPmVuY29kZXIsIGRzaS0+YnJpZGdlLCBOVUxMLCB0cnVlKTsK PiAgCQlpZiAocmV0KSB7Cj4gIAkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGF0dGFjaCBicmlkZ2Ug dG8gZHJtXG4iKTsKPiAgCQkJZ290byBlcnJfZW5jb2Rlcl9jbGVhbnVwOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfaGRtaS5jCj4gaW5kZXggNWQ2YTlmMDk0ZGY1Li5kMzI0OGE4ODFjZjAgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19oZG1pLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2hkbWkuYwo+IEBAIC0xMjkwLDExICsxMjkwLDE1 IEBAIHN0YXRpYyB2b2lkIG10a19oZG1pX2hwZF9ldmVudChib29sIGhwZCwgc3RydWN0IGRldmlj ZSAqZGV2KQo+ICAgKiBCcmlkZ2UgY2FsbGJhY2tzCj4gICAqLwo+ICAKPiAtc3RhdGljIGludCBt dGtfaGRtaV9icmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gK3N0YXRp YyBpbnQgbXRrX2hkbWlfYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLAo+ ICsJCQkJICBib29sIGNyZWF0ZV9jb25uZWN0b3IpCj4gIHsKPiAgCXN0cnVjdCBtdGtfaGRtaSAq aGRtaSA9IGhkbWlfY3R4X2Zyb21fYnJpZGdlKGJyaWRnZSk7Cj4gIAlpbnQgcmV0Owo+ICAKPiAr CWlmICghY3JlYXRlX2Nvbm5lY3RvcikKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gIAlyZXQg PSBkcm1fY29ubmVjdG9yX2luaXQoYnJpZGdlLT5lbmNvZGVyLT5kZXYsICZoZG1pLT5jb25uLAo+ ICAJCQkJICZtdGtfaGRtaV9jb25uZWN0b3JfZnVuY3MsCj4gIAkJCQkgRFJNX01PREVfQ09OTkVD VE9SX0hETUlBKTsKPiBAQCAtMTMxOCw3ICsxMzIyLDcgQEAgc3RhdGljIGludCBtdGtfaGRtaV9i cmlkZ2VfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gIAo+ICAJaWYgKGhkbWkt Pm5leHRfYnJpZGdlKSB7Cj4gIAkJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goYnJpZGdlLT5lbmNv ZGVyLCBoZG1pLT5uZXh0X2JyaWRnZSwKPiAtCQkJCQlicmlkZ2UpOwo+ICsJCQkJCWJyaWRnZSwg Y3JlYXRlX2Nvbm5lY3Rvcik7Cj4gIAkJaWYgKHJldCkgewo+ICAJCQlkZXZfZXJyKGhkbWktPmRl diwKPiAgCQkJCSJGYWlsZWQgdG8gYXR0YWNoIGV4dGVybmFsIGJyaWRnZTogJWRcbiIsIHJldCk7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9tYW5hZ2VyLmMgYi9k cml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lfbWFuYWdlci5jCj4gaW5kZXggMjcxYWE3YmJjYTky Li5jYTczMzA4NjA0MWEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kvZHNp X21hbmFnZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9tYW5hZ2VyLmMK PiBAQCAtNjY0LDcgKzY2NCw3IEBAIHN0cnVjdCBkcm1fYnJpZGdlICptc21fZHNpX21hbmFnZXJf YnJpZGdlX2luaXQodTggaWQpCj4gIAlicmlkZ2UgPSAmZHNpX2JyaWRnZS0+YmFzZTsKPiAgCWJy aWRnZS0+ZnVuY3MgPSAmZHNpX21ncl9icmlkZ2VfZnVuY3M7Cj4gIAo+IC0JcmV0ID0gZHJtX2Jy aWRnZV9hdHRhY2goZW5jb2RlciwgYnJpZGdlLCBOVUxMKTsKPiArCXJldCA9IGRybV9icmlkZ2Vf YXR0YWNoKGVuY29kZXIsIGJyaWRnZSwgTlVMTCwgdHJ1ZSk7Cj4gIAlpZiAocmV0KQo+ICAJCWdv dG8gZmFpbDsKPiAgCj4gQEAgLTY5Myw3ICs2OTMsNyBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq bXNtX2RzaV9tYW5hZ2VyX2V4dF9icmlkZ2VfaW5pdCh1OCBpZCkKPiAgCWVuY29kZXIgPSBtc21f ZHNpLT5lbmNvZGVyOwo+ICAKPiAgCS8qIGxpbmsgdGhlIGludGVybmFsIGRzaSBicmlkZ2UgdG8g dGhlIGV4dGVybmFsIGJyaWRnZSAqLwo+IC0JZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgZXh0 X2JyaWRnZSwgaW50X2JyaWRnZSk7Cj4gKwlkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCBleHRf YnJpZGdlLCBpbnRfYnJpZGdlLCB0cnVlKTsKPiAgCj4gIAkvKgo+ICAJICogd2UgbmVlZCB0aGUg ZHJtX2Nvbm5lY3RvciBjcmVhdGVkIGJ5IHRoZSBleHRlcm5hbCBicmlkZ2UKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL21zbS9lZHAvZWRwX2JyaWRnZS5jIGIvZHJpdmVycy9ncHUvZHJt L21zbS9lZHAvZWRwX2JyaWRnZS5jCj4gaW5kZXggMjk1MGJiYTRhY2E5Li4zMmE0NjNjODRjYzEg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9lZHAvZWRwX2JyaWRnZS5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL21zbS9lZHAvZWRwX2JyaWRnZS5jCj4gQEAgLTkxLDcgKzkxLDcg QEAgc3RydWN0IGRybV9icmlkZ2UgKm1zbV9lZHBfYnJpZGdlX2luaXQoc3RydWN0IG1zbV9lZHAg KmVkcCkKPiAgCWJyaWRnZSA9ICZlZHBfYnJpZGdlLT5iYXNlOwo+ICAJYnJpZGdlLT5mdW5jcyA9 ICZlZHBfYnJpZGdlX2Z1bmNzOwo+ICAKPiAtCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVkcC0+ ZW5jb2RlciwgYnJpZGdlLCBOVUxMKTsKPiArCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVkcC0+ ZW5jb2RlciwgYnJpZGdlLCBOVUxMLCB0cnVlKTsKPiAgCWlmIChyZXQpCj4gIAkJZ290byBmYWls Owo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9oZG1pL2hkbWlfYnJpZGdl LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkvaGRtaV9icmlkZ2UuYwo+IGluZGV4IDAzMTk3 Yjg5NTliYS4uZDc3MzhhYWZjZmY4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20v aGRtaS9oZG1pX2JyaWRnZS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9oZG1pL2hkbWlf YnJpZGdlLmMKPiBAQCAtMjk2LDcgKzI5Niw3IEBAIHN0cnVjdCBkcm1fYnJpZGdlICptc21faGRt aV9icmlkZ2VfaW5pdChzdHJ1Y3QgaGRtaSAqaGRtaSkKPiAgCWJyaWRnZSA9ICZoZG1pX2JyaWRn ZS0+YmFzZTsKPiAgCWJyaWRnZS0+ZnVuY3MgPSAmbXNtX2hkbWlfYnJpZGdlX2Z1bmNzOwo+ICAK PiAtCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGhkbWktPmVuY29kZXIsIGJyaWRnZSwgTlVMTCk7 Cj4gKwlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChoZG1pLT5lbmNvZGVyLCBicmlkZ2UsIE5VTEws IHRydWUpOwo+ICAJaWYgKHJldCkKPiAgCQlnb3RvIGZhaWw7Cj4gIAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL29tYXBk cm0vb21hcF9kcnYuYwo+IGluZGV4IDY3MmUwZjhhZDExYy4uODM3ZDBjZDIwZGQxIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9vbWFwZHJtL29tYXBfZHJ2LmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vb21hcGRybS9vbWFwX2Rydi5jCj4gQEAgLTMwMSw3ICszMDEsOCBAQCBzdGF0aWMg aW50IG9tYXBfbW9kZXNldF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAo+ICAJCWlm IChwaXBlLT5vdXRwdXQtPmJyaWRnZSkgewo+ICAJCQlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChw aXBlLT5lbmNvZGVyLAo+IC0JCQkJCQlwaXBlLT5vdXRwdXQtPmJyaWRnZSwgTlVMTCk7Cj4gKwkJ CQkJCXBpcGUtPm91dHB1dC0+YnJpZGdlLCBOVUxMLAo+ICsJCQkJCQl0cnVlKTsKPiAgCQkJaWYg KHJldCA8IDApCj4gIAkJCQlyZXR1cm4gcmV0Owo+ICAJCX0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9lbmNvZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmNh ci1kdS9yY2FyX2R1X2VuY29kZXIuYwo+IGluZGV4IDBmMDBiZGZlMjM2Ni4uNzRjMmFlNWNlNjg3 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfZW5jb2Rlci5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9lbmNvZGVyLmMKPiBAQCAt MTIwLDcgKzEyMCw3IEBAIGludCByY2FyX2R1X2VuY29kZXJfaW5pdChzdHJ1Y3QgcmNhcl9kdV9k ZXZpY2UgKnJjZHUsCj4gIAkgKiBBdHRhY2ggdGhlIGJyaWRnZSB0byB0aGUgZW5jb2Rlci4gVGhl IGJyaWRnZSB3aWxsIGNyZWF0ZSB0aGUKPiAgCSAqIGNvbm5lY3Rvci4KPiAgCSAqLwo+IC0JcmV0 ID0gZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgYnJpZGdlLCBOVUxMKTsKPiArCXJldCA9IGRy bV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGJyaWRnZSwgTlVMTCwgdHJ1ZSk7Cj4gIAlpZiAocmV0 KSB7Cj4gIAkJZHJtX2VuY29kZXJfY2xlYW51cChlbmNvZGVyKTsKPiAgCQlyZXR1cm4gcmV0Owo+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2x2ZHMuYyBiL2RyaXZl cnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfbHZkcy5jCj4gaW5kZXggMWM2MjU3ODU5MGY0Li5hOGQ4 YjA1YzQ3MzEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9sdmRz LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2x2ZHMuYwo+IEBAIC02MDUs NyArNjA1LDcgQEAgc3RhdGljIHZvaWQgcmNhcl9sdmRzX21vZGVfc2V0KHN0cnVjdCBkcm1fYnJp ZGdlICpicmlkZ2UsCj4gIAlyY2FyX2x2ZHNfZ2V0X2x2ZHNfbW9kZShsdmRzKTsKPiAgfQo+ICAK PiAtc3RhdGljIGludCByY2FyX2x2ZHNfYXR0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2Up Cj4gK3N0YXRpYyBpbnQgcmNhcl9sdmRzX2F0dGFjaChzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdl LCBib29sIGNyZWF0ZV9jb25uZWN0b3IpCj4gIHsKPiAgCXN0cnVjdCByY2FyX2x2ZHMgKmx2ZHMg PSBicmlkZ2VfdG9fcmNhcl9sdmRzKGJyaWRnZSk7Cj4gIAlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yID0gJmx2ZHMtPmNvbm5lY3RvcjsKPiBAQCAtNjE1LDcgKzYxNSwxMCBAQCBzdGF0 aWMgaW50IHJjYXJfbHZkc19hdHRhY2goc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiAgCS8q IElmIHdlIGhhdmUgYSBuZXh0IGJyaWRnZSBqdXN0IGF0dGFjaCBpdC4gKi8KPiAgCWlmIChsdmRz LT5uZXh0X2JyaWRnZSkKPiAgCQlyZXR1cm4gZHJtX2JyaWRnZV9hdHRhY2goYnJpZGdlLT5lbmNv ZGVyLCBsdmRzLT5uZXh0X2JyaWRnZSwKPiAtCQkJCQkgYnJpZGdlKTsKPiArCQkJCQkgYnJpZGdl LCBjcmVhdGVfY29ubmVjdG9yKTsKPiArCj4gKwlpZiAoIWNyZWF0ZV9jb25uZWN0b3IpCj4gKwkJ cmV0dXJuIC1FSU5WQUw7Cj4gIAo+ICAJLyogT3RoZXJ3aXNlIGlmIHdlIGhhdmUgYSBwYW5lbCwg Y3JlYXRlIGEgY29ubmVjdG9yLiAqLwo+ICAJaWYgKCFsdmRzLT5wYW5lbCkKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2x2ZHMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9sdmRzLmMKPiBpbmRleCA4MzA4NThhODA5ZTUuLjdjYTQx MmQyOTRiMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBf bHZkcy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2x2ZHMuYwo+ IEBAIC00NDAsNyArNDQwLDcgQEAgc3RhdGljIGludCByb2NrY2hpcF9sdmRzX2JpbmQoc3RydWN0 IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsCj4gIAkJCWdvdG8gZXJyX2ZyZWVf Y29ubmVjdG9yOwo+ICAJCX0KPiAgCX0gZWxzZSB7Cj4gLQkJcmV0ID0gZHJtX2JyaWRnZV9hdHRh Y2goZW5jb2RlciwgbHZkcy0+YnJpZGdlLCBOVUxMKTsKPiArCQlyZXQgPSBkcm1fYnJpZGdlX2F0 dGFjaChlbmNvZGVyLCBsdmRzLT5icmlkZ2UsIE5VTEwsIHRydWUpOwo+ICAJCWlmIChyZXQpIHsK PiAgCQkJRFJNX0RFVl9FUlJPUihkcm1fZGV2LT5kZXYsCj4gIAkJCQkgICAgICAiZmFpbGVkIHRv IGF0dGFjaCBicmlkZ2U6ICVkXG4iLCByZXQpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vcm9ja2NoaXAvcm9ja2NoaXBfcmdiLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9j a2NoaXBfcmdiLmMKPiBpbmRleCBjZTRkODJkMjkzZTQuLjgyMThiYmQwOWE3MiAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfcmdiLmMKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfcmdiLmMKPiBAQCAtMTQzLDcgKzE0Myw3IEBA IHN0cnVjdCByb2NrY2hpcF9yZ2IgKnJvY2tjaGlwX3JnYl9pbml0KHN0cnVjdCBkZXZpY2UgKmRl diwKPiAgCj4gIAlyZ2ItPmJyaWRnZSA9IGJyaWRnZTsKPiAgCj4gLQlyZXQgPSBkcm1fYnJpZGdl X2F0dGFjaChlbmNvZGVyLCByZ2ItPmJyaWRnZSwgTlVMTCk7Cj4gKwlyZXQgPSBkcm1fYnJpZGdl X2F0dGFjaChlbmNvZGVyLCByZ2ItPmJyaWRnZSwgTlVMTCwgdHJ1ZSk7Cj4gIAlpZiAocmV0KSB7 Cj4gIAkJRFJNX0RFVl9FUlJPUihkcm1fZGV2LT5kZXYsCj4gIAkJCSAgICAgICJmYWlsZWQgdG8g YXR0YWNoIGJyaWRnZTogJWRcbiIsIHJldCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9zdGkvc3RpX2R2by5jIGIvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZHZvLmMKPiBpbmRleCA5 ZTZkNWQ4YjcwMzAuLmYwOTIwOTYyMTU2OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v c3RpL3N0aV9kdm8uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2R2by5jCj4gQEAg LTQ2OCw3ICs0NjgsNyBAQCBzdGF0aWMgaW50IHN0aV9kdm9fYmluZChzdHJ1Y3QgZGV2aWNlICpk ZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKPiAgCWJyaWRnZS0+b2Zfbm9k ZSA9IGR2by0+ZGV2Lm9mX25vZGU7Cj4gIAlkcm1fYnJpZGdlX2FkZChicmlkZ2UpOwo+ICAKPiAt CWVyciA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGJyaWRnZSwgTlVMTCk7Cj4gKwllcnIg PSBkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCBicmlkZ2UsIE5VTEwsIHRydWUpOwo+ICAJaWYg KGVycikgewo+ICAJCURSTV9FUlJPUigiRmFpbGVkIHRvIGF0dGFjaCBicmlkZ2VcbiIpOwo+ICAJ CXJldHVybiBlcnI7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hkYS5j IGIvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfaGRhLmMKPiBpbmRleCA5NGU0MDRmMTMyMzQuLjg3 ZTBmYjc0MmRjOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9oZGEuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hkYS5jCj4gQEAgLTcwMCw3ICs3MDAsNyBA QCBzdGF0aWMgaW50IHN0aV9oZGFfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZp Y2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKPiAgCj4gIAlicmlkZ2UtPmRyaXZlcl9wcml2YXRlID0g aGRhOwo+ICAJYnJpZGdlLT5mdW5jcyA9ICZzdGlfaGRhX2JyaWRnZV9mdW5jczsKPiAtCWRybV9i cmlkZ2VfYXR0YWNoKGVuY29kZXIsIGJyaWRnZSwgTlVMTCk7Cj4gKwlkcm1fYnJpZGdlX2F0dGFj aChlbmNvZGVyLCBicmlkZ2UsIE5VTEwsIHRydWUpOwo+ICAKPiAgCWNvbm5lY3Rvci0+ZW5jb2Rl ciA9IGVuY29kZXI7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9o ZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9oZG1pLmMKPiBpbmRleCBmMDNkNjE3ZWRj NGMuLjhjMGZmZTY4MzNmOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9o ZG1pLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9oZG1pLmMKPiBAQCAtMTI3Niw3 ICsxMjc2LDcgQEAgc3RhdGljIGludCBzdGlfaGRtaV9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwg c3RydWN0IGRldmljZSAqbWFzdGVyLCB2b2lkICpkYXRhKQo+ICAKPiAgCWJyaWRnZS0+ZHJpdmVy X3ByaXZhdGUgPSBoZG1pOwo+ICAJYnJpZGdlLT5mdW5jcyA9ICZzdGlfaGRtaV9icmlkZ2VfZnVu Y3M7Cj4gLQlkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCBicmlkZ2UsIE5VTEwpOwo+ICsJZHJt X2JyaWRnZV9hdHRhY2goZW5jb2RlciwgYnJpZGdlLCBOVUxMLCB0cnVlKTsKPiAgCj4gIAljb25u ZWN0b3ItPmVuY29kZXIgPSBlbmNvZGVyOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3N0bS9sdGRjLmMgYi9kcml2ZXJzL2dwdS9kcm0vc3RtL2x0ZGMuYwo+IGluZGV4IDJmZTZj NGE4ZDkxNS4uMTBhOWY4NDhjNWY2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdG0v bHRkYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3N0bS9sdGRjLmMKPiBAQCAtMTA1Myw3ICsx MDUzLDcgQEAgc3RhdGljIGludCBsdGRjX2VuY29kZXJfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAq ZGRldiwgc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkKPiAgCWRybV9lbmNvZGVyX2luaXQoZGRl diwgZW5jb2RlciwgJmx0ZGNfZW5jb2Rlcl9mdW5jcywKPiAgCQkJIERSTV9NT0RFX0VOQ09ERVJf RFBJLCBOVUxMKTsKPiAgCj4gLQlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCBicmlk Z2UsIE5VTEwpOwo+ICsJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgYnJpZGdlLCBO VUxMLCB0cnVlKTsKPiAgCWlmIChyZXQpIHsKPiAgCQlkcm1fZW5jb2Rlcl9jbGVhbnVwKGVuY29k ZXIpOwo+ICAJCXJldHVybiAtRUlOVkFMOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v c3VuNGkvc3VuNGlfbHZkcy5jIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2x2ZHMuYwo+ IGluZGV4IDNhM2JhOTlmZWQyMi4uM2U1MTcwZmExZTY3IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9zdW40aS9zdW40aV9sdmRzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vc3VuNGkv c3VuNGlfbHZkcy5jCj4gQEAgLTE1NSw3ICsxNTUsNyBAQCBpbnQgc3VuNGlfbHZkc19pbml0KHN0 cnVjdCBkcm1fZGV2aWNlICpkcm0sIHN0cnVjdCBzdW40aV90Y29uICp0Y29uKQo+ICAJfQo+ICAK PiAgCWlmIChicmlkZ2UpIHsKPiAtCQlyZXQgPSBkcm1fYnJpZGdlX2F0dGFjaChlbmNvZGVyLCBi cmlkZ2UsIE5VTEwpOwo+ICsJCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGJyaWRn ZSwgTlVMTCwgdHJ1ZSk7Cj4gIAkJaWYgKHJldCkgewo+ICAJCQlkZXZfZXJyKGRybS0+ZGV2LCAi Q291bGRuJ3QgYXR0YWNoIG91ciBicmlkZ2VcbiIpOwo+ICAJCQlnb3RvIGVycl9jbGVhbnVwX2Nv bm5lY3RvcjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX3JnYi5j IGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX3JnYi5jCj4gaW5kZXggYTkwMWVjNjg5YjYy Li4zZjg2Mjk0NDVmYmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRp X3JnYi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX3JnYi5jCj4gQEAgLTI1 Miw3ICsyNTIsNyBAQCBpbnQgc3VuNGlfcmdiX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRybSwg c3RydWN0IHN1bjRpX3Rjb24gKnRjb24pCj4gIAl9Cj4gIAo+ICAJaWYgKHJnYi0+YnJpZGdlKSB7 Cj4gLQkJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgcmdiLT5icmlkZ2UsIE5VTEwp Owo+ICsJCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIHJnYi0+YnJpZGdlLCBOVUxM LCB0cnVlKTsKPiAgCQlpZiAocmV0KSB7Cj4gIAkJCWRldl9lcnIoZHJtLT5kZXYsICJDb3VsZG4n dCBhdHRhY2ggb3VyIGJyaWRnZVxuIik7Cj4gIAkJCWdvdG8gZXJyX2NsZWFudXBfY29ubmVjdG9y Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNkY19leHRlcm5hbC5j IGIvZHJpdmVycy9ncHUvZHJtL3RpbGNkYy90aWxjZGNfZXh0ZXJuYWwuYwo+IGluZGV4IGU5OTY5 Y2QzNjYxMC4uZWM2OTNjMTFlNDU1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90aWxj ZGMvdGlsY2RjX2V4dGVybmFsLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlsY2RjL3RpbGNk Y19leHRlcm5hbC5jCj4gQEAgLTE2OCw3ICsxNjgsNyBAQCBpbnQgdGlsY2RjX2F0dGFjaF9icmlk Z2Uoc3RydWN0IGRybV9kZXZpY2UgKmRkZXYsIHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4g IAo+ICAJcHJpdi0+ZXh0ZXJuYWxfZW5jb2Rlci0+cG9zc2libGVfY3J0Y3MgPSBCSVQoMCk7Cj4g IAo+IC0JcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2gocHJpdi0+ZXh0ZXJuYWxfZW5jb2RlciwgYnJp ZGdlLCBOVUxMKTsKPiArCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKHByaXYtPmV4dGVybmFsX2Vu Y29kZXIsIGJyaWRnZSwgTlVMTCwgdHJ1ZSk7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJZGV2X2Vycihk ZGV2LT5kZXYsICJkcm1fYnJpZGdlX2F0dGFjaCgpIGZhaWxlZCAlZFxuIiwgcmV0KTsKPiAgCQly ZXR1cm4gcmV0Owo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcGkuYyBi L2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2RwaS5jCj4gaW5kZXggMzRmOTBjYThmNDc5Li4yZDdj NWNmMGQ0NjggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHBpLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kcGkuYwo+IEBAIC0yNjIsNyArMjYyLDcgQEAg c3RhdGljIGludCB2YzRfZHBpX2luaXRfYnJpZGdlKHN0cnVjdCB2YzRfZHBpICpkcGkpCj4gIAlp ZiAocGFuZWwpCj4gIAkJYnJpZGdlID0gZHJtX3BhbmVsX2JyaWRnZV9hZGQocGFuZWwsIERSTV9N T0RFX0NPTk5FQ1RPUl9EUEkpOwo+ICAKPiAtCXJldHVybiBkcm1fYnJpZGdlX2F0dGFjaChkcGkt PmVuY29kZXIsIGJyaWRnZSwgTlVMTCk7Cj4gKwlyZXR1cm4gZHJtX2JyaWRnZV9hdHRhY2goZHBp LT5lbmNvZGVyLCBicmlkZ2UsIE5VTEwsIHRydWUpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW50IHZj NF9kcGlfYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9p ZCAqZGF0YSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHNpLmMgYi9k cml2ZXJzL2dwdS9kcm0vdmM0L3ZjNF9kc2kuYwo+IGluZGV4IDJlYTRlMjBiN2I4YS4uM2VkZDdm ZmM3MzgzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS92YzQvdmM0X2RzaS5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHNpLmMKPiBAQCAtMTYwNyw3ICsxNjA3LDcgQEAg c3RhdGljIGludCB2YzRfZHNpX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNl ICptYXN0ZXIsIHZvaWQgKmRhdGEpCj4gIAkJCSBEUk1fTU9ERV9FTkNPREVSX0RTSSwgTlVMTCk7 Cj4gIAlkcm1fZW5jb2Rlcl9oZWxwZXJfYWRkKGRzaS0+ZW5jb2RlciwgJnZjNF9kc2lfZW5jb2Rl cl9oZWxwZXJfZnVuY3MpOwo+ICAKPiAtCXJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGRzaS0+ZW5j b2RlciwgZHNpLT5icmlkZ2UsIE5VTEwpOwo+ICsJcmV0ID0gZHJtX2JyaWRnZV9hdHRhY2goZHNp LT5lbmNvZGVyLCBkc2ktPmJyaWRnZSwgTlVMTCwgdHJ1ZSk7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJ ZGV2X2VycihkZXYsICJicmlkZ2UgYXR0YWNoIGZhaWxlZDogJWRcbiIsIHJldCk7Cj4gIAkJcmV0 dXJuIHJldDsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2JyaWRnZS5oIGIvaW5jbHVk ZS9kcm0vZHJtX2JyaWRnZS5oCj4gaW5kZXggNzYxNmY2NTYyZmU0Li4wOGRjMTVmOTNkZWQgMTAw NjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2JyaWRnZS5oCj4gKysrIGIvaW5jbHVkZS9kcm0v ZHJtX2JyaWRnZS5oCj4gQEAgLTQ4LDcgKzQ4LDcgQEAgc3RydWN0IGRybV9icmlkZ2VfZnVuY3Mg ewo+ICAJICoKPiAgCSAqIFplcm8gb24gc3VjY2VzcywgZXJyb3IgY29kZSBvbiBmYWlsdXJlLgo+ ICAJICovCj4gLQlpbnQgKCphdHRhY2gpKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpOwo+ICsJ aW50ICgqYXR0YWNoKShzdHJ1Y3QgZHJtX2JyaWRnZSAqYnJpZGdlLCBib29sIGNyZWF0ZV9jb25u ZWN0b3IpOwo+ICAKPiAgCS8qKgo+ICAJICogQGRldGFjaDoKPiBAQCAtNDA0LDcgKzQwNCw3IEBA IHZvaWQgZHJtX2JyaWRnZV9hZGQoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSk7Cj4gIHZvaWQg ZHJtX2JyaWRnZV9yZW1vdmUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSk7Cj4gIHN0cnVjdCBk cm1fYnJpZGdlICpvZl9kcm1fZmluZF9icmlkZ2Uoc3RydWN0IGRldmljZV9ub2RlICpucCk7Cj4g IGludCBkcm1fYnJpZGdlX2F0dGFjaChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHN0cnVj dCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gLQkJICAgICAgc3RydWN0IGRybV9icmlkZ2UgKnByZXZp b3VzKTsKPiArCQkgICAgICBzdHJ1Y3QgZHJtX2JyaWRnZSAqcHJldmlvdXMsIGJvb2wgY3JlYXRl X2Nvbm5lY3Rvcik7Cj4gIAo+ICBib29sIGRybV9icmlkZ2VfbW9kZV9maXh1cChzdHJ1Y3QgZHJt X2JyaWRnZSAqYnJpZGdlLAo+ICAJCQkgICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq bW9kZSwKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=