From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 2/2] drm/tinydrm: Make fb_dirty into a lower level hook Date: Wed, 28 Mar 2018 19:23:01 +0300 Message-ID: <20180328162301.GQ5453@intel.com> References: <20180322202738.25817-2-ville.syrjala@linux.intel.com> <20180323153509.15287-1-ville.syrjala@linux.intel.com> <440ef1f4-3a10-3df2-2c09-5457c91c8ff7@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <440ef1f4-3a10-3df2-2c09-5457c91c8ff7@tronnes.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Noralf =?iso-8859-1?Q?Tr=F8nnes?= Cc: intel-gfx@lists.freedesktop.org, David Lechner , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBNYXIgMjMsIDIwMTggYXQgMDU6Mjg6MDNQTSArMDEwMCwgTm9yYWxmIFRyw7hubmVz IHdyb3RlOgo+IAo+IERlbiAyMy4wMy4yMDE4IDE2LjM1LCBza3JldiBWaWxsZSBTeXJqYWxhOgo+ ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K PiA+Cj4gPiBtaXBpX2RiaV9lbmFibGVfZmx1c2goKSB3YW50cyB0byBjYWxsIHRoZSBmYi0+ZGly dHkoKSBob29rIGZyb20gdGhlCj4gPiBib3dlbHMgb2YgdGhlIC5hdG9taWNfZW5hYmxlKCkgaG9v ay4gVGhhdCBwcmV2ZW50cyB1cyBmcm9tIHRha2luZyB0aGUKPiA+IHBsYW5lIG11dGV4IGluIGZi LT5kaXJ0eSgpIHVubGVzcyB3ZSBhbHNvIHBsdW1iIGRvd24gdGhlIGFjcXVpcmUKPiA+IGNvbnRl eHQuCj4gPgo+ID4gSW5zdGVhZCBpdCBzZWVtcyBzaW1wbGVyIHRvIHNwbGl0IHRoZSBmYi0+ZGly dHkoKSBpbnRvIGEgdGlueWRybQo+ID4gc3BlY2lmaWMgbG93ZXIgbGV2ZWwgaG9vayB0aGF0IGNh biBiZSBjYWxsZWQgZnJvbQo+ID4gbWlwaV9kYmlfZW5hYmxlX2ZsdXNoKCkgYW5kIGZyb20gYSBn ZW5lcmljIGhpZ2hlciBsZXZlbAo+ID4gdGlueWRybV9mYl9kaXJ0eSgpIGhlbHBlci4gQXMgd2Ug ZG9uJ3QgaGF2ZSBhIHRpbnlkcm0gc3BlY2lmaWMKPiA+IHZmdW5jcyB0YWJsZSB3ZSdsbCBqdXN0 IHN0aWNrIGl0IGludG8gdGlueWRybV9kZXZpY2UgZGlyZWN0bHkKPiA+IGZvciBub3cuCj4gPgo+ ID4gdjI6IERlYWwgd2l0aCB0aGUgZmItPmRpcnR5KCkgaW4gdGlueWRybV9kaXNwbGF5X3BpcGVf dXBkYXRlKCkgYXMgd2VlbCAoTm9yYWxmKQo+ID4KPiA+IENjOiAiTm9yYWxmIFRyw7hubmVzIiA8 bm9yYWxmQHRyb25uZXMub3JnPgo+ID4gQ2M6IERhdmlkIExlY2huZXIgPGRhdmlkQGxlY2hub2xv Z3kuY29tPgo+ID4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KPiA+IFJldmlld2VkLWJ5OiBOb3JhbGYgVHLDuG5uZXMgPG5vcmFs ZkB0cm9ubmVzLm9yZz4KPiA+IC0tLQo+IAo+IFRlc3RlZCBtaTA4MjNxdCB3aGljaCBjb3ZlcnMg Y29yZSBhbmQgbWlwaS1kYmk6Cj4gCj4gVGVzdGVkLWJ5OiBOb3JhbGYgVHLDuG5uZXMgPG5vcmFs ZkB0cm9ubmVzLm9yZz4KClRoYW5rcy4gQm90aCBwYXRjaGVzIG5vdyBwdXNoZWQgdG8gZHJtLW1p c2MtbmV4dC4KCj4gCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2NvcmUvdGlueWRybS1o ZWxwZXJzLmMgfCAzMCArKysrKysrKysrKysrKysrKysrKysrKysrKwo+ID4gICBkcml2ZXJzL2dw dS9kcm0vdGlueWRybS9jb3JlL3Rpbnlkcm0tcGlwZS5jICAgIHwgIDUgKystLS0KPiA+ICAgZHJp dmVycy9ncHUvZHJtL3Rpbnlkcm0vaWxpOTIyNS5jICAgICAgICAgICAgICB8IDIzICsrKysrKy0t LS0tLS0tLS0tLS0tCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL21pMDI4M3F0LmMgICAg ICAgICAgICAgfCAgMiArLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vdGlueWRybS9taXBpLWRiaS5j ICAgICAgICAgICAgIHwgMzAgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KPiA+ICAgZHJpdmVy cy9ncHUvZHJtL3Rpbnlkcm0vcmVwYXBlci5jICAgICAgICAgICAgICB8IDI4ICsrKysrKysrLS0t LS0tLS0tLS0tLS0tLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vdGlueWRybS9zdDc1ODYuYyAgICAg ICAgICAgICAgIHwgMjMgKysrKysrLS0tLS0tLS0tLS0tLS0KPiA+ICAgZHJpdmVycy9ncHUvZHJt L3Rpbnlkcm0vc3Q3NzM1ci5jICAgICAgICAgICAgICB8ICAyICstCj4gPiAgIGluY2x1ZGUvZHJt L3Rpbnlkcm0vbWlwaS1kYmkuaCAgICAgICAgICAgICAgICAgfCAgNCArKystCj4gPiAgIGluY2x1 ZGUvZHJtL3Rpbnlkcm0vdGlueWRybS1oZWxwZXJzLmggICAgICAgICAgfCAgNSArKysrKwo+ID4g ICBpbmNsdWRlL2RybS90aW55ZHJtL3Rpbnlkcm0uaCAgICAgICAgICAgICAgICAgIHwgIDQgKysr Kwo+ID4gICAxMSBmaWxlcyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCspLCA3OCBkZWxldGlvbnMo LSkKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vY29yZS90aW55 ZHJtLWhlbHBlcnMuYyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2NvcmUvdGlueWRybS1oZWxw ZXJzLmMKPiA+IGluZGV4IGQxYzNjZTlhYjI5NC4uZGNkMzkwMTYzYTRhIDEwMDY0NAo+ID4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vY29yZS90aW55ZHJtLWhlbHBlcnMuYwo+ID4gKysr IGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vY29yZS90aW55ZHJtLWhlbHBlcnMuYwo+ID4gQEAg LTc4LDYgKzc4LDM2IEBAIGJvb2wgdGlueWRybV9tZXJnZV9jbGlwcyhzdHJ1Y3QgZHJtX2NsaXBf cmVjdCAqZHN0LAo+ID4gICB9Cj4gPiAgIEVYUE9SVF9TWU1CT0wodGlueWRybV9tZXJnZV9jbGlw cyk7Cj4gPiAgIAo+ID4gK2ludCB0aW55ZHJtX2ZiX2RpcnR5KHN0cnVjdCBkcm1fZnJhbWVidWZm ZXIgKmZiLAo+ID4gKwkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKPiA+ICsJCSAg ICAgdW5zaWduZWQgaW50IGZsYWdzLCB1bnNpZ25lZCBpbnQgY29sb3IsCj4gPiArCQkgICAgIHN0 cnVjdCBkcm1fY2xpcF9yZWN0ICpjbGlwcywKPiA+ICsJCSAgICAgdW5zaWduZWQgaW50IG51bV9j bGlwcykKPiA+ICt7Cj4gPiArCXN0cnVjdCB0aW55ZHJtX2RldmljZSAqdGRldiA9IGZiLT5kZXYt PmRldl9wcml2YXRlOwo+ID4gKwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSA9ICZ0ZGV2LT5waXBl LnBsYW5lOwo+ID4gKwlpbnQgcmV0ID0gMDsKPiA+ICsKPiA+ICsJZHJtX21vZGVzZXRfbG9jaygm cGxhbmUtPm11dGV4LCBOVUxMKTsKPiA+ICsKPiA+ICsJLyogZmJkZXYgY2FuIGZsdXNoIGV2ZW4g d2hlbiB3ZSdyZSBub3QgaW50ZXJlc3RlZCAqLwo+ID4gKwlpZiAocGxhbmUtPnN0YXRlLT5mYiA9 PSBmYikgewo+ID4gKwkJbXV0ZXhfbG9jaygmdGRldi0+ZGlydHlfbG9jayk7Cj4gPiArCQlyZXQg PSB0ZGV2LT5mYl9kaXJ0eShmYiwgZmlsZV9wcml2LCBmbGFncywKPiA+ICsJCQkJICAgICBjb2xv ciwgY2xpcHMsIG51bV9jbGlwcyk7Cj4gPiArCQltdXRleF91bmxvY2soJnRkZXYtPmRpcnR5X2xv Y2spOwo+ID4gKwl9Cj4gPiArCj4gPiArCWRybV9tb2Rlc2V0X3VubG9jaygmcGxhbmUtPm11dGV4 KTsKPiA+ICsKPiA+ICsJaWYgKHJldCkKPiA+ICsJCWRldl9lcnJfb25jZShmYi0+ZGV2LT5kZXYs Cj4gPiArCQkJICAgICAiRmFpbGVkIHRvIHVwZGF0ZSBkaXNwbGF5ICVkXG4iLCByZXQpOwo+ID4g Kwo+ID4gKwlyZXR1cm4gcmV0Owo+ID4gK30KPiA+ICtFWFBPUlRfU1lNQk9MKHRpbnlkcm1fZmJf ZGlydHkpOwo+ID4gKwo+ID4gICAvKioKPiA+ICAgICogdGlueWRybV9tZW1jcHkgLSBDb3B5IGNs aXAgYnVmZmVyCj4gPiAgICAqIEBkc3Q6IERlc3RpbmF0aW9uIGJ1ZmZlcgo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2NvcmUvdGlueWRybS1waXBlLmMgYi9kcml2ZXJz L2dwdS9kcm0vdGlueWRybS9jb3JlL3Rpbnlkcm0tcGlwZS5jCj4gPiBpbmRleCAxMWFlOTUwYjBm YzkuLmU2OGI1MjhhZTY0ZCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJt L2NvcmUvdGlueWRybS1waXBlLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2Nv cmUvdGlueWRybS1waXBlLmMKPiA+IEBAIC0xMjUsOSArMTI1LDggQEAgdm9pZCB0aW55ZHJtX2Rp c3BsYXlfcGlwZV91cGRhdGUoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlLAo+ ID4gICAJc3RydWN0IGRybV9jcnRjICpjcnRjID0gJnRkZXYtPnBpcGUuY3J0YzsKPiA+ICAgCj4g PiAgIAlpZiAoZmIgJiYgKGZiICE9IG9sZF9zdGF0ZS0+ZmIpKSB7Cj4gPiAtCQlwaXBlLT5wbGFu ZS5mYiA9IGZiOwo+ID4gLQkJaWYgKGZiLT5mdW5jcy0+ZGlydHkpCj4gPiAtCQkJZmItPmZ1bmNz LT5kaXJ0eShmYiwgTlVMTCwgMCwgMCwgTlVMTCwgMCk7Cj4gPiArCQlpZiAodGRldi0+ZmJfZGly dHkpCj4gPiArCQkJdGRldi0+ZmJfZGlydHkoZmIsIE5VTEwsIDAsIDAsIE5VTEwsIDApOwo+ID4g ICAJfQo+ID4gICAKPiA+ICAgCWlmIChjcnRjLT5zdGF0ZS0+ZXZlbnQpIHsKPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9pbGk5MjI1LmMgYi9kcml2ZXJzL2dwdS9kcm0v dGlueWRybS9pbGk5MjI1LmMKPiA+IGluZGV4IDA4OWQyMjc5OGM4Yi4uMDg3NGU4NzdiMTExIDEw MDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vaWxpOTIyNS5jCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9pbGk5MjI1LmMKPiA+IEBAIC04OCwxNCArODgsOCBA QCBzdGF0aWMgaW50IGlsaTkyMjVfZmJfZGlydHkoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIs Cj4gPiAgIAlib29sIGZ1bGw7Cj4gPiAgIAl2b2lkICp0cjsKPiA+ICAgCj4gPiAtCW11dGV4X2xv Y2soJnRkZXYtPmRpcnR5X2xvY2spOwo+ID4gLQo+ID4gICAJaWYgKCFtaXBpLT5lbmFibGVkKQo+ ID4gLQkJZ290byBvdXRfdW5sb2NrOwo+ID4gLQo+ID4gLQkvKiBmYmRldiBjYW4gZmx1c2ggZXZl biB3aGVuIHdlJ3JlIG5vdCBpbnRlcmVzdGVkICovCj4gPiAtCWlmICh0ZGV2LT5waXBlLnBsYW5l LmZiICE9IGZiKQo+ID4gLQkJZ290byBvdXRfdW5sb2NrOwo+ID4gKwkJcmV0dXJuIDA7Cj4gPiAg IAo+ID4gICAJZnVsbCA9IHRpbnlkcm1fbWVyZ2VfY2xpcHMoJmNsaXAsIGNsaXBzLCBudW1fY2xp cHMsIGZsYWdzLAo+ID4gICAJCQkJICAgZmItPndpZHRoLCBmYi0+aGVpZ2h0KTsKPiA+IEBAIC0x MDgsNyArMTAyLDcgQEAgc3RhdGljIGludCBpbGk5MjI1X2ZiX2RpcnR5KHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiLAo+ID4gICAJCXRyID0gbWlwaS0+dHhfYnVmOwo+ID4gICAJCXJldCA9IG1p cGlfZGJpX2J1Zl9jb3B5KG1pcGktPnR4X2J1ZiwgZmIsICZjbGlwLCBzd2FwKTsKPiA+ICAgCQlp ZiAocmV0KQo+ID4gLQkJCWdvdG8gb3V0X3VubG9jazsKPiA+ICsJCQlyZXR1cm4gcmV0Owo+ID4g ICAJfSBlbHNlIHsKPiA+ICAgCQl0ciA9IGNtYV9vYmotPnZhZGRyOwo+ID4gICAJfQo+ID4gQEAg LTE1OSwyMCArMTUzLDEzIEBAIHN0YXRpYyBpbnQgaWxpOTIyNV9mYl9kaXJ0eShzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiwKPiA+ICAgCXJldCA9IG1pcGlfZGJpX2NvbW1hbmRfYnVmKG1pcGks IElMSTkyMjVfV1JJVEVfREFUQV9UT19HUkFNLCB0ciwKPiA+ICAgCQkJCShjbGlwLngyIC0gY2xp cC54MSkgKiAoY2xpcC55MiAtIGNsaXAueTEpICogMik7Cj4gPiAgIAo+ID4gLW91dF91bmxvY2s6 Cj4gPiAtCW11dGV4X3VubG9jaygmdGRldi0+ZGlydHlfbG9jayk7Cj4gPiAtCj4gPiAtCWlmIChy ZXQpCj4gPiAtCQlkZXZfZXJyX29uY2UoZmItPmRldi0+ZGV2LCAiRmFpbGVkIHRvIHVwZGF0ZSBk aXNwbGF5ICVkXG4iLAo+ID4gLQkJCSAgICAgcmV0KTsKPiA+IC0KPiA+ICAgCXJldHVybiByZXQ7 Cj4gPiAgIH0KPiA+ICAgCj4gPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy X2Z1bmNzIGlsaTkyMjVfZmJfZnVuY3MgPSB7Cj4gPiAgIAkuZGVzdHJveQk9IGRybV9nZW1fZmJf ZGVzdHJveSwKPiA+ICAgCS5jcmVhdGVfaGFuZGxlCT0gZHJtX2dlbV9mYl9jcmVhdGVfaGFuZGxl LAo+ID4gLQkuZGlydHkJCT0gaWxpOTIyNV9mYl9kaXJ0eSwKPiA+ICsJLmRpcnR5CQk9IHRpbnlk cm1fZmJfZGlydHksCj4gPiAgIH07Cj4gPiAgIAo+ID4gICBzdGF0aWMgdm9pZCBpbGk5MjI1X3Bp cGVfZW5hYmxlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwKPiA+IEBAIC0y NjksNyArMjU2LDcgQEAgc3RhdGljIHZvaWQgaWxpOTIyNV9waXBlX2VuYWJsZShzdHJ1Y3QgZHJt X3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCj4gPiAgIAo+ID4gICAJaWxpOTIyNV9jb21tYW5k KG1pcGksIElMSTkyMjVfRElTUExBWV9DT05UUk9MXzEsIDB4MTAxNyk7Cj4gPiAgIAo+ID4gLQlt aXBpX2RiaV9lbmFibGVfZmx1c2gobWlwaSk7Cj4gPiArCW1pcGlfZGJpX2VuYWJsZV9mbHVzaCht aXBpLCBjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSk7Cj4gPiAgIH0KPiA+ICAgCj4gPiAgIHN0YXRp YyB2b2lkIGlsaTkyMjVfcGlwZV9kaXNhYmxlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlw ZSAqcGlwZSkKPiA+IEBAIC0zNDIsNiArMzI5LDggQEAgc3RhdGljIGludCBpbGk5MjI1X2luaXQo c3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgbWlwaV9kYmkgKm1pcGksCj4gPiAgIAlpZiAocmV0 KQo+ID4gICAJCXJldHVybiByZXQ7Cj4gPiAgIAo+ID4gKwl0ZGV2LT5mYl9kaXJ0eSA9IGlsaTky MjVfZmJfZGlydHk7Cj4gPiArCj4gPiAgIAlyZXQgPSB0aW55ZHJtX2Rpc3BsYXlfcGlwZV9pbml0 KHRkZXYsIHBpcGVfZnVuY3MsCj4gPiAgIAkJCQkJRFJNX01PREVfQ09OTkVDVE9SX1ZJUlRVQUws Cj4gPiAgIAkJCQkJaWxpOTIyNV9mb3JtYXRzLAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS90aW55ZHJtL21pMDI4M3F0LmMgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9taTAyODNx dC5jCj4gPiBpbmRleCA4MmFkOWI2MTg5OGUuLjRlNmQyZWU5NGU1NSAxMDA2NDQKPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL21pMDI4M3F0LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS90aW55ZHJtL21pMDI4M3F0LmMKPiA+IEBAIC0xMjcsNyArMTI3LDcgQEAgc3RhdGljIHZv aWQgbWkwMjgzcXRfZW5hYmxlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSwK PiA+ICAgCW1zbGVlcCgxMDApOwo+ID4gICAKPiA+ICAgb3V0X2VuYWJsZToKPiA+IC0JbWlwaV9k YmlfZW5hYmxlX2ZsdXNoKG1pcGkpOwo+ID4gKwltaXBpX2RiaV9lbmFibGVfZmx1c2gobWlwaSwg Y3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpOwo+ID4gICB9Cj4gPiAgIAo+ID4gICBzdGF0aWMgY29u c3Qgc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzIG1pMDI4M3F0X3BpcGVfZnVu Y3MgPSB7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vbWlwaS1kYmku YyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL21pcGktZGJpLmMKPiA+IGluZGV4IDllOTAzODEy YjU3My4uNGQxZmIzMWE3ODFmIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlk cm0vbWlwaS1kYmkuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vbWlwaS1kYmku Ywo+ID4gQEAgLTIxOSwxNCArMjE5LDggQEAgc3RhdGljIGludCBtaXBpX2RiaV9mYl9kaXJ0eShz dHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+ICAgCWJvb2wgZnVsbDsKPiA+ICAgCXZvaWQg KnRyOwo+ID4gICAKPiA+IC0JbXV0ZXhfbG9jaygmdGRldi0+ZGlydHlfbG9jayk7Cj4gPiAtCj4g PiAgIAlpZiAoIW1pcGktPmVuYWJsZWQpCj4gPiAtCQlnb3RvIG91dF91bmxvY2s7Cj4gPiAtCj4g PiAtCS8qIGZiZGV2IGNhbiBmbHVzaCBldmVuIHdoZW4gd2UncmUgbm90IGludGVyZXN0ZWQgKi8K PiA+IC0JaWYgKHRkZXYtPnBpcGUucGxhbmUuZmIgIT0gZmIpCj4gPiAtCQlnb3RvIG91dF91bmxv Y2s7Cj4gPiArCQlyZXR1cm4gMDsKPiA+ICAgCj4gPiAgIAlmdWxsID0gdGlueWRybV9tZXJnZV9j bGlwcygmY2xpcCwgY2xpcHMsIG51bV9jbGlwcywgZmxhZ3MsCj4gPiAgIAkJCQkgICBmYi0+d2lk dGgsIGZiLT5oZWlnaHQpOwo+ID4gQEAgLTIzOSw3ICsyMzMsNyBAQCBzdGF0aWMgaW50IG1pcGlf ZGJpX2ZiX2RpcnR5KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4gICAJCXRyID0gbWlw aS0+dHhfYnVmOwo+ID4gICAJCXJldCA9IG1pcGlfZGJpX2J1Zl9jb3B5KG1pcGktPnR4X2J1Ziwg ZmIsICZjbGlwLCBzd2FwKTsKPiA+ICAgCQlpZiAocmV0KQo+ID4gLQkJCWdvdG8gb3V0X3VubG9j azsKPiA+ICsJCQlyZXR1cm4gcmV0Owo+ID4gICAJfSBlbHNlIHsKPiA+ICAgCQl0ciA9IGNtYV9v YmotPnZhZGRyOwo+ID4gICAJfQo+ID4gQEAgLTI1NCwyMCArMjQ4LDEzIEBAIHN0YXRpYyBpbnQg bWlwaV9kYmlfZmJfZGlydHkoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gPiAgIAlyZXQg PSBtaXBpX2RiaV9jb21tYW5kX2J1ZihtaXBpLCBNSVBJX0RDU19XUklURV9NRU1PUllfU1RBUlQs IHRyLAo+ID4gICAJCQkJKGNsaXAueDIgLSBjbGlwLngxKSAqIChjbGlwLnkyIC0gY2xpcC55MSkg KiAyKTsKPiA+ICAgCj4gPiAtb3V0X3VubG9jazoKPiA+IC0JbXV0ZXhfdW5sb2NrKCZ0ZGV2LT5k aXJ0eV9sb2NrKTsKPiA+IC0KPiA+IC0JaWYgKHJldCkKPiA+IC0JCWRldl9lcnJfb25jZShmYi0+ ZGV2LT5kZXYsICJGYWlsZWQgdG8gdXBkYXRlIGRpc3BsYXkgJWRcbiIsCj4gPiAtCQkJICAgICBy ZXQpOwo+ID4gLQo+ID4gICAJcmV0dXJuIHJldDsKPiA+ICAgfQo+ID4gICAKPiA+ICAgc3RhdGlj IGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3MgbWlwaV9kYmlfZmJfZnVuY3MgPSB7 Cj4gPiAgIAkuZGVzdHJveQk9IGRybV9nZW1fZmJfZGVzdHJveSwKPiA+ICAgCS5jcmVhdGVfaGFu ZGxlCT0gZHJtX2dlbV9mYl9jcmVhdGVfaGFuZGxlLAo+ID4gLQkuZGlydHkJCT0gbWlwaV9kYmlf ZmJfZGlydHksCj4gPiArCS5kaXJ0eQkJPSB0aW55ZHJtX2ZiX2RpcnR5LAo+ID4gICB9Owo+ID4g ICAKPiA+ICAgLyoqCj4gPiBAQCAtMjc4LDEzICsyNjUsMTYgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBkcm1fZnJhbWVidWZmZXJfZnVuY3MgbWlwaV9kYmlfZmJfZnVuY3MgPSB7Cj4gPiAgICAqIGVu YWJsZXMgdGhlIGJhY2tsaWdodC4gRHJpdmVycyBjYW4gdXNlIHRoaXMgaW4gdGhlaXIKPiA+ICAg ICogJmRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzLT5lbmFibGUgY2FsbGJhY2suCj4gPiAg ICAqLwo+ID4gLXZvaWQgbWlwaV9kYmlfZW5hYmxlX2ZsdXNoKHN0cnVjdCBtaXBpX2RiaSAqbWlw aSkKPiA+ICt2b2lkIG1pcGlfZGJpX2VuYWJsZV9mbHVzaChzdHJ1Y3QgbWlwaV9kYmkgKm1pcGks Cj4gPiArCQkJICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4gKwkJCSAg IHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+ID4gICB7Cj4gPiAtCXN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiID0gbWlwaS0+dGlueWRybS5waXBlLnBsYW5lLmZiOwo+ID4g KwlzdHJ1Y3QgdGlueWRybV9kZXZpY2UgKnRkZXYgPSAmbWlwaS0+dGlueWRybTsKPiA+ICsJc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+ZmI7Cj4gPiAgIAo+ID4gICAJ bWlwaS0+ZW5hYmxlZCA9IHRydWU7Cj4gPiAgIAlpZiAoZmIpCj4gPiAtCQlmYi0+ZnVuY3MtPmRp cnR5KGZiLCBOVUxMLCAwLCAwLCBOVUxMLCAwKTsKPiA+ICsJCXRkZXYtPmZiX2RpcnR5KGZiLCBO VUxMLCAwLCAwLCBOVUxMLCAwKTsKPiA+ICAgCj4gPiAgIAliYWNrbGlnaHRfZW5hYmxlKG1pcGkt PmJhY2tsaWdodCk7Cj4gPiAgIH0KPiA+IEBAIC0zODEsNiArMzcxLDggQEAgaW50IG1pcGlfZGJp X2luaXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgbWlwaV9kYmkgKm1pcGksCj4gPiAgIAlp ZiAocmV0KQo+ID4gICAJCXJldHVybiByZXQ7Cj4gPiAgIAo+ID4gKwl0ZGV2LT5mYl9kaXJ0eSA9 IG1pcGlfZGJpX2ZiX2RpcnR5Owo+ID4gKwo+ID4gICAJLyogVE9ETzogTWF5YmUgYWRkIERSTV9N T0RFX0NPTk5FQ1RPUl9TUEkgKi8KPiA+ICAgCXJldCA9IHRpbnlkcm1fZGlzcGxheV9waXBlX2lu aXQodGRldiwgcGlwZV9mdW5jcywKPiA+ICAgCQkJCQlEUk1fTU9ERV9DT05ORUNUT1JfVklSVFVB TCwKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9yZXBhcGVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vdGlueWRybS9yZXBhcGVyLmMKPiA+IGluZGV4IDMzYjRhNzE5MTZlNC4u YmI2ZjgwYTgxODk5IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vcmVw YXBlci5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9yZXBhcGVyLmMKPiA+IEBA IC01NDAsMTQgKzU0MCw4IEBAIHN0YXRpYyBpbnQgcmVwYXBlcl9mYl9kaXJ0eShzdHJ1Y3QgZHJt X2ZyYW1lYnVmZmVyICpmYiwKPiA+ICAgCWNsaXAueTEgPSAwOwo+ID4gICAJY2xpcC55MiA9IGZi LT5oZWlnaHQ7Cj4gPiAgIAo+ID4gLQltdXRleF9sb2NrKCZ0ZGV2LT5kaXJ0eV9sb2NrKTsKPiA+ IC0KPiA+ICAgCWlmICghZXBkLT5lbmFibGVkKQo+ID4gLQkJZ290byBvdXRfdW5sb2NrOwo+ID4g LQo+ID4gLQkvKiBmYmRldiBjYW4gZmx1c2ggZXZlbiB3aGVuIHdlJ3JlIG5vdCBpbnRlcmVzdGVk ICovCj4gPiAtCWlmICh0ZGV2LT5waXBlLnBsYW5lLmZiICE9IGZiKQo+ID4gLQkJZ290byBvdXRf dW5sb2NrOwo+ID4gKwkJcmV0dXJuIDA7Cj4gPiAgIAo+ID4gICAJcmVwYXBlcl9nZXRfdGVtcGVy YXR1cmUoZXBkKTsKPiA+ICAgCj4gPiBAQCAtNTU1LDE2ICs1NDksMTQgQEAgc3RhdGljIGludCBy ZXBhcGVyX2ZiX2RpcnR5KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4gICAJCSAgZXBk LT5mYWN0b3JlZF9zdGFnZV90aW1lKTsKPiA+ICAgCj4gPiAgIAlidWYgPSBrbWFsbG9jKGZiLT53 aWR0aCAqIGZiLT5oZWlnaHQsIEdGUF9LRVJORUwpOwo+ID4gLQlpZiAoIWJ1Zikgewo+ID4gLQkJ cmV0ID0gLUVOT01FTTsKPiA+IC0JCWdvdG8gb3V0X3VubG9jazsKPiA+IC0JfQo+ID4gKwlpZiAo IWJ1ZikKPiA+ICsJCXJldHVybiAtRU5PTUVNOwo+ID4gICAKPiA+ICAgCWlmIChpbXBvcnRfYXR0 YWNoKSB7Cj4gPiAgIAkJcmV0ID0gZG1hX2J1Zl9iZWdpbl9jcHVfYWNjZXNzKGltcG9ydF9hdHRh Y2gtPmRtYWJ1ZiwKPiA+ICAgCQkJCQkgICAgICAgRE1BX0ZST01fREVWSUNFKTsKPiA+ICAgCQlp ZiAocmV0KQo+ID4gLQkJCWdvdG8gb3V0X3VubG9jazsKPiA+ICsJCQlnb3RvIG91dF9mcmVlOwo+ ID4gICAJfQo+ID4gICAKPiA+ICAgCXRpbnlkcm1feHJnYjg4ODhfdG9fZ3JheTgoYnVmLCBjbWFf b2JqLT52YWRkciwgZmIsICZjbGlwKTsKPiA+IEBAIC01NzMsNyArNTY1LDcgQEAgc3RhdGljIGlu dCByZXBhcGVyX2ZiX2RpcnR5KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4gICAJCXJl dCA9IGRtYV9idWZfZW5kX2NwdV9hY2Nlc3MoaW1wb3J0X2F0dGFjaC0+ZG1hYnVmLAo+ID4gICAJ CQkJCSAgICAgRE1BX0ZST01fREVWSUNFKTsKPiA+ICAgCQlpZiAocmV0KQo+ID4gLQkJCWdvdG8g b3V0X3VubG9jazsKPiA+ICsJCQlnb3RvIG91dF9mcmVlOwo+ID4gICAJfQo+ID4gICAKPiA+ICAg CXJlcGFwZXJfZ3JheThfdG9fbW9ub19yZXZlcnNlZChidWYsIGZiLT53aWR0aCwgZmItPmhlaWdo dCk7Cj4gPiBAQCAtNjI1LDExICs2MTcsNyBAQCBzdGF0aWMgaW50IHJlcGFwZXJfZmJfZGlydHko c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gPiAgIAkJCX0KPiA+ICAgCX0KPiA+ICAgCj4g PiAtb3V0X3VubG9jazoKPiA+IC0JbXV0ZXhfdW5sb2NrKCZ0ZGV2LT5kaXJ0eV9sb2NrKTsKPiA+ IC0KPiA+IC0JaWYgKHJldCkKPiA+IC0JCURSTV9ERVZfRVJST1IoZmItPmRldi0+ZGV2LCAiRmFp bGVkIHRvIHVwZGF0ZSBkaXNwbGF5ICglZClcbiIsIHJldCk7Cj4gPiArb3V0X2ZyZWU6Cj4gPiAg IAlrZnJlZShidWYpOwo+ID4gICAKPiA+ICAgCXJldHVybiByZXQ7Cj4gPiBAQCAtNjM4LDcgKzYy Niw3IEBAIHN0YXRpYyBpbnQgcmVwYXBlcl9mYl9kaXJ0eShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpmYiwKPiA+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3MgcmVw YXBlcl9mYl9mdW5jcyA9IHsKPiA+ICAgCS5kZXN0cm95CT0gZHJtX2dlbV9mYl9kZXN0cm95LAo+ ID4gICAJLmNyZWF0ZV9oYW5kbGUJPSBkcm1fZ2VtX2ZiX2NyZWF0ZV9oYW5kbGUsCj4gPiAtCS5k aXJ0eQkJPSByZXBhcGVyX2ZiX2RpcnR5LAo+ID4gKwkuZGlydHkJCT0gdGlueWRybV9mYl9kaXJ0 eSwKPiA+ICAgfTsKPiA+ICAgCj4gPiAgIHN0YXRpYyB2b2lkIHBvd2VyX29mZihzdHJ1Y3QgcmVw YXBlcl9lcGQgKmVwZCkKPiA+IEBAIC0xMDcwLDYgKzEwNTgsOCBAQCBzdGF0aWMgaW50IHJlcGFw ZXJfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKPiA+ICAgCWlmIChyZXQpCj4gPiAgIAkJ cmV0dXJuIHJldDsKPiA+ICAgCj4gPiArCXRkZXYtPmZiX2RpcnR5ID0gcmVwYXBlcl9mYl9kaXJ0 eTsKPiA+ICsKPiA+ICAgCXJldCA9IHRpbnlkcm1fZGlzcGxheV9waXBlX2luaXQodGRldiwgJnJl cGFwZXJfcGlwZV9mdW5jcywKPiA+ICAgCQkJCQlEUk1fTU9ERV9DT05ORUNUT1JfVklSVFVBTCwK PiA+ICAgCQkJCQlyZXBhcGVyX2Zvcm1hdHMsCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL3Rpbnlkcm0vc3Q3NTg2LmMgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9zdDc1ODYuYwo+ ID4gaW5kZXggYmIwOGIyOTNjOGNlLi4yMjY0NGI4ODE5OWEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vdGlueWRybS9zdDc1ODYuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Rp bnlkcm0vc3Q3NTg2LmMKPiA+IEBAIC0xMjAsMTQgKzEyMCw4IEBAIHN0YXRpYyBpbnQgc3Q3NTg2 X2ZiX2RpcnR5KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4gICAJaW50IHN0YXJ0LCBl bmQ7Cj4gPiAgIAlpbnQgcmV0ID0gMDsKPiA+ICAgCj4gPiAtCW11dGV4X2xvY2soJnRkZXYtPmRp cnR5X2xvY2spOwo+ID4gLQo+ID4gICAJaWYgKCFtaXBpLT5lbmFibGVkKQo+ID4gLQkJZ290byBv dXRfdW5sb2NrOwo+ID4gLQo+ID4gLQkvKiBmYmRldiBjYW4gZmx1c2ggZXZlbiB3aGVuIHdlJ3Jl IG5vdCBpbnRlcmVzdGVkICovCj4gPiAtCWlmICh0ZGV2LT5waXBlLnBsYW5lLmZiICE9IGZiKQo+ ID4gLQkJZ290byBvdXRfdW5sb2NrOwo+ID4gKwkJcmV0dXJuIDA7Cj4gPiAgIAo+ID4gICAJdGlu eWRybV9tZXJnZV9jbGlwcygmY2xpcCwgY2xpcHMsIG51bV9jbGlwcywgZmxhZ3MsIGZiLT53aWR0 aCwKPiA+ICAgCQkJICAgIGZiLT5oZWlnaHQpOwo+ID4gQEAgLTE0MSw3ICsxMzUsNyBAQCBzdGF0 aWMgaW50IHN0NzU4Nl9mYl9kaXJ0eShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+ICAg Cj4gPiAgIAlyZXQgPSBzdDc1ODZfYnVmX2NvcHkobWlwaS0+dHhfYnVmLCBmYiwgJmNsaXApOwo+ ID4gICAJaWYgKHJldCkKPiA+IC0JCWdvdG8gb3V0X3VubG9jazsKPiA+ICsJCXJldHVybiByZXQ7 Cj4gPiAgIAo+ID4gICAJLyogUGl4ZWxzIGFyZSBwYWNrZWQgMyBwZXIgYnl0ZSAqLwo+ID4gICAJ c3RhcnQgPSBjbGlwLngxIC8gMzsKPiA+IEBAIC0xNTgsMjAgKzE1MiwxMyBAQCBzdGF0aWMgaW50 IHN0NzU4Nl9mYl9kaXJ0eShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+ICAgCQkJCSAg ICh1OCAqKW1pcGktPnR4X2J1ZiwKPiA+ICAgCQkJCSAgIChlbmQgLSBzdGFydCkgKiAoY2xpcC55 MiAtIGNsaXAueTEpKTsKPiA+ICAgCj4gPiAtb3V0X3VubG9jazoKPiA+IC0JbXV0ZXhfdW5sb2Nr KCZ0ZGV2LT5kaXJ0eV9sb2NrKTsKPiA+IC0KPiA+IC0JaWYgKHJldCkKPiA+IC0JCWRldl9lcnJf b25jZShmYi0+ZGV2LT5kZXYsICJGYWlsZWQgdG8gdXBkYXRlIGRpc3BsYXkgJWRcbiIsCj4gPiAt CQkJICAgICByZXQpOwo+ID4gLQo+ID4gICAJcmV0dXJuIHJldDsKPiA+ICAgfQo+ID4gICAKPiA+ ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3Mgc3Q3NTg2X2ZiX2Z1 bmNzID0gewo+ID4gICAJLmRlc3Ryb3kJPSBkcm1fZ2VtX2ZiX2Rlc3Ryb3ksCj4gPiAgIAkuY3Jl YXRlX2hhbmRsZQk9IGRybV9nZW1fZmJfY3JlYXRlX2hhbmRsZSwKPiA+IC0JLmRpcnR5CQk9IHN0 NzU4Nl9mYl9kaXJ0eSwKPiA+ICsJLmRpcnR5CQk9IHRpbnlkcm1fZmJfZGlydHksCj4gPiAgIH07 Cj4gPiAgIAo+ID4gICBzdGF0aWMgdm9pZCBzdDc1ODZfcGlwZV9lbmFibGUoc3RydWN0IGRybV9z aW1wbGVfZGlzcGxheV9waXBlICpwaXBlLAo+ID4gQEAgLTIzOCw3ICsyMjUsNyBAQCBzdGF0aWMg dm9pZCBzdDc1ODZfcGlwZV9lbmFibGUoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpw aXBlLAo+ID4gICAKPiA+ICAgCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwgTUlQSV9EQ1NfU0VUX0RJ U1BMQVlfT04pOwo+ID4gICAKPiA+IC0JbWlwaV9kYmlfZW5hYmxlX2ZsdXNoKG1pcGkpOwo+ID4g KwltaXBpX2RiaV9lbmFibGVfZmx1c2gobWlwaSwgY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpOwo+ ID4gICB9Cj4gPiAgIAo+ID4gICBzdGF0aWMgdm9pZCBzdDc1ODZfcGlwZV9kaXNhYmxlKHN0cnVj dCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSkKPiA+IEBAIC0yNzgsNiArMjY1LDggQEAg c3RhdGljIGludCBzdDc1ODZfaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBtaXBpX2Ri aSAqbWlwaSwKPiA+ICAgCWlmIChyZXQpCj4gPiAgIAkJcmV0dXJuIHJldDsKPiA+ICAgCj4gPiAr CXRkZXYtPmZiX2RpcnR5ID0gc3Q3NTg2X2ZiX2RpcnR5Owo+ID4gKwo+ID4gICAJcmV0ID0gdGlu eWRybV9kaXNwbGF5X3BpcGVfaW5pdCh0ZGV2LCBwaXBlX2Z1bmNzLAo+ID4gICAJCQkJCURSTV9N T0RFX0NPTk5FQ1RPUl9WSVJUVUFMLAo+ID4gICAJCQkJCXN0NzU4Nl9mb3JtYXRzLAo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL3N0NzczNXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS90aW55ZHJtL3N0NzczNXIuYwo+ID4gaW5kZXggMTliMjhmOGM3OGRiLi4xODlhMDc4OTRk MzYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9zdDc3MzVyLmMKPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL3N0NzczNXIuYwo+ID4gQEAgLTk5LDcgKzk5 LDcgQEAgc3RhdGljIHZvaWQgamRfdDE4MDAzX3QwMV9waXBlX2VuYWJsZShzdHJ1Y3QgZHJtX3Np bXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCj4gPiAgIAo+ID4gICAJbXNsZWVwKDIwKTsKPiA+ICAg Cj4gPiAtCW1pcGlfZGJpX2VuYWJsZV9mbHVzaChtaXBpKTsKPiA+ICsJbWlwaV9kYmlfZW5hYmxl X2ZsdXNoKG1pcGksIGNydGNfc3RhdGUsIHBsYW5lX3N0YXRlKTsKPiA+ICAgfQo+ID4gICAKPiA+ ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9mdW5jcyBqZF90 MTgwMDNfdDAxX3BpcGVfZnVuY3MgPSB7Cj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdGlu eWRybS9taXBpLWRiaS5oIGIvaW5jbHVkZS9kcm0vdGlueWRybS9taXBpLWRiaS5oCj4gPiBpbmRl eCA0NGU4MjRhZjJlZjYuLmI4YmE1ODg2MTk4NiAxMDA2NDQKPiA+IC0tLSBhL2luY2x1ZGUvZHJt L3Rpbnlkcm0vbWlwaS1kYmkuaAo+ID4gKysrIGIvaW5jbHVkZS9kcm0vdGlueWRybS9taXBpLWRi aS5oCj4gPiBAQCAtNjcsNyArNjcsOSBAQCBpbnQgbWlwaV9kYmlfaW5pdChzdHJ1Y3QgZGV2aWNl ICpkZXYsIHN0cnVjdCBtaXBpX2RiaSAqbWlwaSwKPiA+ICAgCQkgIGNvbnN0IHN0cnVjdCBkcm1f c2ltcGxlX2Rpc3BsYXlfcGlwZV9mdW5jcyAqcGlwZV9mdW5jcywKPiA+ICAgCQkgIHN0cnVjdCBk cm1fZHJpdmVyICpkcml2ZXIsCj4gPiAgIAkJICBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqbW9kZSwgdW5zaWduZWQgaW50IHJvdGF0aW9uKTsKPiA+IC12b2lkIG1pcGlfZGJpX2VuYWJs ZV9mbHVzaChzdHJ1Y3QgbWlwaV9kYmkgKm1pcGkpOwo+ID4gK3ZvaWQgbWlwaV9kYmlfZW5hYmxl X2ZsdXNoKHN0cnVjdCBtaXBpX2RiaSAqbWlwaSwKPiA+ICsJCQkgICBzdHJ1Y3QgZHJtX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCj4gPiArCQkJICAgc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxh bl9zdGF0ZSk7Cj4gPiAgIHZvaWQgbWlwaV9kYmlfcGlwZV9kaXNhYmxlKHN0cnVjdCBkcm1fc2lt cGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSk7Cj4gPiAgIHZvaWQgbWlwaV9kYmlfaHdfcmVzZXQoc3Ry dWN0IG1pcGlfZGJpICptaXBpKTsKPiA+ICAgYm9vbCBtaXBpX2RiaV9kaXNwbGF5X2lzX29uKHN0 cnVjdCBtaXBpX2RiaSAqbWlwaSk7Cj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdGlueWRy bS90aW55ZHJtLWhlbHBlcnMuaCBiL2luY2x1ZGUvZHJtL3Rpbnlkcm0vdGlueWRybS1oZWxwZXJz LmgKPiA+IGluZGV4IDBhNGRkYmMwNGM2MC4uNWI5NmYwYjEyYzhjIDEwMDY0NAo+ID4gLS0tIGEv aW5jbHVkZS9kcm0vdGlueWRybS90aW55ZHJtLWhlbHBlcnMuaAo+ID4gKysrIGIvaW5jbHVkZS9k cm0vdGlueWRybS90aW55ZHJtLWhlbHBlcnMuaAo+ID4gQEAgLTM2LDYgKzM2LDExIEBAIHN0YXRp YyBpbmxpbmUgYm9vbCB0aW55ZHJtX21hY2hpbmVfbGl0dGxlX2VuZGlhbih2b2lkKQo+ID4gICBi b29sIHRpbnlkcm1fbWVyZ2VfY2xpcHMoc3RydWN0IGRybV9jbGlwX3JlY3QgKmRzdCwKPiA+ICAg CQkJIHN0cnVjdCBkcm1fY2xpcF9yZWN0ICpzcmMsIHVuc2lnbmVkIGludCBudW1fY2xpcHMsCj4g PiAgIAkJCSB1bnNpZ25lZCBpbnQgZmxhZ3MsIHUzMiBtYXhfd2lkdGgsIHUzMiBtYXhfaGVpZ2h0 KTsKPiA+ICtpbnQgdGlueWRybV9mYl9kaXJ0eShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwK PiA+ICsJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCj4gPiArCQkgICAgIHVuc2ln bmVkIGludCBmbGFncywgdW5zaWduZWQgaW50IGNvbG9yLAo+ID4gKwkJICAgICBzdHJ1Y3QgZHJt X2NsaXBfcmVjdCAqY2xpcHMsCj4gPiArCQkgICAgIHVuc2lnbmVkIGludCBudW1fY2xpcHMpOwo+ ID4gICB2b2lkIHRpbnlkcm1fbWVtY3B5KHZvaWQgKmRzdCwgdm9pZCAqdmFkZHIsIHN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmZiLAo+ID4gICAJCSAgICBzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqY2xp cCk7Cj4gPiAgIHZvaWQgdGlueWRybV9zd2FiMTYodTE2ICpkc3QsIHZvaWQgKnZhZGRyLCBzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90aW55 ZHJtL3Rpbnlkcm0uaCBiL2luY2x1ZGUvZHJtL3Rpbnlkcm0vdGlueWRybS5oCj4gPiBpbmRleCAw N2E5YTExZmUxOWQuLmVhMmM3MTA4MTE5MCAxMDA2NDQKPiA+IC0tLSBhL2luY2x1ZGUvZHJtL3Rp bnlkcm0vdGlueWRybS5oCj4gPiArKysgYi9pbmNsdWRlL2RybS90aW55ZHJtL3Rpbnlkcm0uaAo+ ID4gQEAgLTI2LDYgKzI2LDEwIEBAIHN0cnVjdCB0aW55ZHJtX2RldmljZSB7Cj4gPiAgIAlzdHJ1 Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgcGlwZTsKPiA+ICAgCXN0cnVjdCBtdXRleCBkaXJ0 eV9sb2NrOwo+ID4gICAJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlcl9mdW5jcyAqZmJfZnVu Y3M7Cj4gPiArCWludCAoKmZiX2RpcnR5KShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmcmFtZWJ1 ZmZlciwKPiA+ICsJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwgdW5zaWduZWQgZmxhZ3Ms Cj4gPiArCQkJdW5zaWduZWQgY29sb3IsIHN0cnVjdCBkcm1fY2xpcF9yZWN0ICpjbGlwcywKPiA+ ICsJCQl1bnNpZ25lZCBudW1fY2xpcHMpOwo+ID4gICB9Owo+ID4gICAKPiA+ICAgc3RhdGljIGlu bGluZSBzdHJ1Y3QgdGlueWRybV9kZXZpY2UgKgoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBP VEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==