From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 2/2] drm/tinydrm: Make fb_dirty into a lower level hook Date: Fri, 23 Mar 2018 13:31:03 +0200 Message-ID: <20180323113103.GO5453@intel.com> References: <20180322202738.25817-1-ville.syrjala@linux.intel.com> <20180322202738.25817-2-ville.syrjala@linux.intel.com> <1bdf7ec9-9a21-fa7c-c76c-73e9301fcd2a@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: <1bdf7ec9-9a21-fa7c-c76c-73e9301fcd2a@tronnes.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" 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 T24gRnJpLCBNYXIgMjMsIDIwMTggYXQgMTI6NDM6NThBTSArMDEwMCwgTm9yYWxmIFRyw7hubmVz IHdyb3RlOgo+IAo+IAo+IERlbiAyMi4wMy4yMDE4IDIxLjI3LCBza3JldiBWaWxsZSBTeXJqYWxh Ogo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bT4KPiA+Cj4gPiBtaXBpX2RiaV9lbmFibGVfZmx1c2goKSB3YW50cyB0byBjYWxsIHRoZSBmYi0+ ZGlydHkoKSBob29rIGZyb20gdGhlCj4gPiBib3dlbHMgb2YgdGhlIC5hdG9taWNfZW5hYmxlKCkg aG9vay4gVGhhdCBwcmV2ZW50cyB1cyBmcm9tIHRha2luZyB0aGUKPiA+IHBsYW5lIG11dGV4IGlu IGZiLT5kaXJ0eSgpIHVubGVzcyB3ZSBhbHNvIHBsdW1iIGRvd24gdGhlIGFjcXVpcmUKPiA+IGNv bnRleHQuCj4gPgo+ID4gSW5zdGVhZCBpdCBzZWVtcyBzaW1wbGVyIHRvIHNwbGl0IHRoZSBmYi0+ ZGlydHkoKSBpbnRvIGEgdGlueWRybQo+ID4gc3BlY2lmaWMgbG93ZXIgbGV2ZWwgaG9vayB0aGF0 IGNhbiBiZSBjYWxsZWQgZnJvbQo+ID4gbWlwaV9kYmlfZW5hYmxlX2ZsdXNoKCkgYW5kIGZyb20g YSBnZW5lcmljIGhpZ2hlciBsZXZlbAo+ID4gdGlueWRybV9mYl9kaXJ0eSgpIGhlbHBlci4gQXMg d2UgZG9uJ3QgaGF2ZSBhIHRpbnlkcm0gc3BlY2lmaWMKPiA+IHZmdW5jcyB0YWJsZSB3ZSdsbCBq dXN0IHN0aWNrIGl0IGludG8gdGlueWRybV9kZXZpY2UgZGlyZWN0bHkKPiA+IGZvciBub3cuCj4g Cj4gVGhlIGxvbmcgdGVybSBnb2FsIGlzIHRvIHRyeSBhbmQgZ2V0IHJpZCBvZiB0aW55ZHJtLmtv IGJ5IG1vdmluZyBzdHVmZgo+IGVsc2V3aGVyZSBhcyBpdCdzIGtpbmQgb2YgYSBtaWRkbGUgbGF5 ZXIuIFNvIEknZCByZWFsbHkgbGlrZSB0byBhdm9pZAo+IGFkZGluZyBhIGNhbGxiYWNrIGxpa2Ug dGhpcy4KPiBIb3BlZnVsbHkgd2UgY2FuIHdvcmsgb3V0IGEgc29sdXRpb24gYmFzZWQgb24gbXkg c3VnZ2VzdGlvbiBpbiB0aGUKPiAnZHJtOiBFbGltaW5hdGUgcGxhbmUtPmZiL2NydGMgdXNhZ2Ug Zm9yIGF0b21pYyBkcml2ZXJzJyB0aHJlYWQuCgpJIGRvbid0IHdhbnQgdG8gc3RhcnQgcmVkZXNp Z25pbmcgdGhlIGVudGlyZSBhcmNoaXRlY3R1cmUgYXQKdGhpcyBwb2ludC4gVGhhdCB3b3VsZCBh bHNvIGNhdXNlIGEgYmlnZ2VyIHJpc2sgb2YgcmVncmVzc2lvbiBhbmQKdGhlbiB3ZSdkIHBvdGVu dGlhbGx5IGhhdmUgdG8gdHJ5IGFuZCByZXZlcnQgdGhlIGVudGlyZSBwbGFuZS0+ZmIKdGhpbmcs IHdoaWNoIHdvdWxkIG5vdCBiZSBmdW4gaWYgYW55IHNpZ25pZmljYW50IGNoYW5nZXMgaGF2ZQpv Y2N1cnJlZCBpbiB0aGUgbWVhbnRpbWUuCgo+IAo+IElmIHdlIGRvIG5lZWQgYSBob29rLCBJIHBy ZWZlciB0aGF0IHdlIGFkZCBpdCB0bwo+IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzLgoK SWYgeW91IGhhdmUgcGxhbnMgdG8gcmVkZXNpZ24gdGlueWRybSBhbnl3YXkgaXQgc2VlbXMgdG8g bWUgdGhhdAphIHRlbXBvcmFyeSBob29rIGluIHRpbnlkcm0gaXMgbWF5IGJlIGEgYml0IGxlc3Mg aW50cnVzaXZlIHRoYW4KaW5mbGljdGluZyBpdCBvbiB0aGUgc2ltcGxlX2ttc19oZWxwZXIuIEJ1 dCBpZiB5b3UgZG8gcHJlZmVyCmRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzIEkgY2FuIG1v dmUgaXQgdGhlcmUgb2YgY291cnNlLgoKPiAKPiBOb3JhbGYuCj4gCj4gPiBDYzogIk5vcmFsZiBU csO4bm5lcyIgPG5vcmFsZkB0cm9ubmVzLm9yZz4KPiA+IENjOiBEYXZpZCBMZWNobmVyIDxkYXZp ZEBsZWNobm9sb2d5LmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICAgZHJpdmVycy9ncHUvZHJt L3Rpbnlkcm0vY29yZS90aW55ZHJtLWhlbHBlcnMuYyB8IDMwICsrKysrKysrKysrKysrKysrKysr KysrKysrCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2lsaTkyMjUuYyAgICAgICAgICAg ICAgfCAyMyArKysrKystLS0tLS0tLS0tLS0tLQo+ID4gICBkcml2ZXJzL2dwdS9kcm0vdGlueWRy bS9taTAyODNxdC5jICAgICAgICAgICAgIHwgIDIgKy0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL3Rp bnlkcm0vbWlwaS1kYmkuYyAgICAgICAgICAgICB8IDMwICsrKysrKysrKystLS0tLS0tLS0tLS0t LS0tCj4gPiAgIGRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL3JlcGFwZXIuYyAgICAgICAgICAgICAg fCAyOCArKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KPiA+ICAgZHJpdmVycy9ncHUvZHJtL3Rpbnlk cm0vc3Q3NTg2LmMgICAgICAgICAgICAgICB8IDIzICsrKysrKy0tLS0tLS0tLS0tLS0tCj4gPiAg IGRyaXZlcnMvZ3B1L2RybS90aW55ZHJtL3N0NzczNXIuYyAgICAgICAgICAgICAgfCAgMiArLQo+ ID4gICBpbmNsdWRlL2RybS90aW55ZHJtL21pcGktZGJpLmggICAgICAgICAgICAgICAgIHwgIDQg KysrLQo+ID4gICBpbmNsdWRlL2RybS90aW55ZHJtL3Rpbnlkcm0taGVscGVycy5oICAgICAgICAg IHwgIDUgKysrKysKPiA+ICAgaW5jbHVkZS9kcm0vdGlueWRybS90aW55ZHJtLmggICAgICAgICAg ICAgICAgICB8ICA0ICsrKysKPiA+ICAgMTAgZmlsZXMgY2hhbmdlZCwgNzYgaW5zZXJ0aW9ucygr KSwgNzUgZGVsZXRpb25zKC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90 aW55ZHJtL2NvcmUvdGlueWRybS1oZWxwZXJzLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9j b3JlL3Rpbnlkcm0taGVscGVycy5jCj4gPiBpbmRleCBkMWMzY2U5YWIyOTQuLmRjZDM5MDE2M2E0 YSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2NvcmUvdGlueWRybS1o ZWxwZXJzLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL2NvcmUvdGlueWRybS1o ZWxwZXJzLmMKPiA+IEBAIC03OCw2ICs3OCwzNiBAQCBib29sIHRpbnlkcm1fbWVyZ2VfY2xpcHMo c3RydWN0IGRybV9jbGlwX3JlY3QgKmRzdCwKPiA+ICAgfQo+ID4gICBFWFBPUlRfU1lNQk9MKHRp bnlkcm1fbWVyZ2VfY2xpcHMpOwo+ID4gICAKPiA+ICtpbnQgdGlueWRybV9mYl9kaXJ0eShzdHJ1 Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+ICsJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxl X3ByaXYsCj4gPiArCQkgICAgIHVuc2lnbmVkIGludCBmbGFncywgdW5zaWduZWQgaW50IGNvbG9y LAo+ID4gKwkJICAgICBzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqY2xpcHMsCj4gPiArCQkgICAgIHVu c2lnbmVkIGludCBudW1fY2xpcHMpCj4gPiArewo+ID4gKwlzdHJ1Y3QgdGlueWRybV9kZXZpY2Ug KnRkZXYgPSBmYi0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ICsJc3RydWN0IGRybV9wbGFuZSAqcGxh bmUgPSAmdGRldi0+cGlwZS5wbGFuZTsKPiA+ICsJaW50IHJldCA9IDA7Cj4gPiArCj4gPiArCWRy bV9tb2Rlc2V0X2xvY2soJnBsYW5lLT5tdXRleCwgTlVMTCk7Cj4gPiArCj4gPiArCS8qIGZiZGV2 IGNhbiBmbHVzaCBldmVuIHdoZW4gd2UncmUgbm90IGludGVyZXN0ZWQgKi8KPiA+ICsJaWYgKHBs YW5lLT5zdGF0ZS0+ZmIgPT0gZmIpIHsKPiA+ICsJCW11dGV4X2xvY2soJnRkZXYtPmRpcnR5X2xv Y2spOwo+ID4gKwkJcmV0ID0gdGRldi0+ZmJfZGlydHkoZmIsIGZpbGVfcHJpdiwgZmxhZ3MsCj4g PiArCQkJCSAgICAgY29sb3IsIGNsaXBzLCBudW1fY2xpcHMpOwo+ID4gKwkJbXV0ZXhfdW5sb2Nr KCZ0ZGV2LT5kaXJ0eV9sb2NrKTsKPiA+ICsJfQo+ID4gKwo+ID4gKwlkcm1fbW9kZXNldF91bmxv Y2soJnBsYW5lLT5tdXRleCk7Cj4gPiArCj4gPiArCWlmIChyZXQpCj4gPiArCQlkZXZfZXJyX29u Y2UoZmItPmRldi0+ZGV2LAo+ID4gKwkJCSAgICAgIkZhaWxlZCB0byB1cGRhdGUgZGlzcGxheSAl ZFxuIiwgcmV0KTsKPiA+ICsKPiA+ICsJcmV0dXJuIHJldDsKPiA+ICt9Cj4gPiArRVhQT1JUX1NZ TUJPTCh0aW55ZHJtX2ZiX2RpcnR5KTsKPiA+ICsKPiA+ICAgLyoqCj4gPiAgICAqIHRpbnlkcm1f bWVtY3B5IC0gQ29weSBjbGlwIGJ1ZmZlcgo+ID4gICAgKiBAZHN0OiBEZXN0aW5hdGlvbiBidWZm ZXIKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9pbGk5MjI1LmMgYi9k cml2ZXJzL2dwdS9kcm0vdGlueWRybS9pbGk5MjI1LmMKPiA+IGluZGV4IDA4OWQyMjc5OGM4Yi4u MDg3NGU4NzdiMTExIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vaWxp OTIyNS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9pbGk5MjI1LmMKPiA+IEBA IC04OCwxNCArODgsOCBAQCBzdGF0aWMgaW50IGlsaTkyMjVfZmJfZGlydHkoc3RydWN0IGRybV9m cmFtZWJ1ZmZlciAqZmIsCj4gPiAgIAlib29sIGZ1bGw7Cj4gPiAgIAl2b2lkICp0cjsKPiA+ICAg Cj4gPiAtCW11dGV4X2xvY2soJnRkZXYtPmRpcnR5X2xvY2spOwo+ID4gLQo+ID4gICAJaWYgKCFt aXBpLT5lbmFibGVkKQo+ID4gLQkJZ290byBvdXRfdW5sb2NrOwo+ID4gLQo+ID4gLQkvKiBmYmRl diBjYW4gZmx1c2ggZXZlbiB3aGVuIHdlJ3JlIG5vdCBpbnRlcmVzdGVkICovCj4gPiAtCWlmICh0 ZGV2LT5waXBlLnBsYW5lLmZiICE9IGZiKQo+ID4gLQkJZ290byBvdXRfdW5sb2NrOwo+ID4gKwkJ cmV0dXJuIDA7Cj4gPiAgIAo+ID4gICAJZnVsbCA9IHRpbnlkcm1fbWVyZ2VfY2xpcHMoJmNsaXAs IGNsaXBzLCBudW1fY2xpcHMsIGZsYWdzLAo+ID4gICAJCQkJICAgZmItPndpZHRoLCBmYi0+aGVp Z2h0KTsKPiA+IEBAIC0xMDgsNyArMTAyLDcgQEAgc3RhdGljIGludCBpbGk5MjI1X2ZiX2RpcnR5 KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4gICAJCXRyID0gbWlwaS0+dHhfYnVmOwo+ ID4gICAJCXJldCA9IG1pcGlfZGJpX2J1Zl9jb3B5KG1pcGktPnR4X2J1ZiwgZmIsICZjbGlwLCBz d2FwKTsKPiA+ICAgCQlpZiAocmV0KQo+ID4gLQkJCWdvdG8gb3V0X3VubG9jazsKPiA+ICsJCQly ZXR1cm4gcmV0Owo+ID4gICAJfSBlbHNlIHsKPiA+ICAgCQl0ciA9IGNtYV9vYmotPnZhZGRyOwo+ ID4gICAJfQo+ID4gQEAgLTE1OSwyMCArMTUzLDEzIEBAIHN0YXRpYyBpbnQgaWxpOTIyNV9mYl9k aXJ0eShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+ICAgCXJldCA9IG1pcGlfZGJpX2Nv bW1hbmRfYnVmKG1pcGksIElMSTkyMjVfV1JJVEVfREFUQV9UT19HUkFNLCB0ciwKPiA+ICAgCQkJ CShjbGlwLngyIC0gY2xpcC54MSkgKiAoY2xpcC55MiAtIGNsaXAueTEpICogMik7Cj4gPiAgIAo+ ID4gLW91dF91bmxvY2s6Cj4gPiAtCW11dGV4X3VubG9jaygmdGRldi0+ZGlydHlfbG9jayk7Cj4g PiAtCj4gPiAtCWlmIChyZXQpCj4gPiAtCQlkZXZfZXJyX29uY2UoZmItPmRldi0+ZGV2LCAiRmFp bGVkIHRvIHVwZGF0ZSBkaXNwbGF5ICVkXG4iLAo+ID4gLQkJCSAgICAgcmV0KTsKPiA+IC0KPiA+ ICAgCXJldHVybiByZXQ7Cj4gPiAgIH0KPiA+ICAgCj4gPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyX2Z1bmNzIGlsaTkyMjVfZmJfZnVuY3MgPSB7Cj4gPiAgIAkuZGVzdHJv eQk9IGRybV9nZW1fZmJfZGVzdHJveSwKPiA+ICAgCS5jcmVhdGVfaGFuZGxlCT0gZHJtX2dlbV9m Yl9jcmVhdGVfaGFuZGxlLAo+ID4gLQkuZGlydHkJCT0gaWxpOTIyNV9mYl9kaXJ0eSwKPiA+ICsJ LmRpcnR5CQk9IHRpbnlkcm1fZmJfZGlydHksCj4gPiAgIH07Cj4gPiAgIAo+ID4gICBzdGF0aWMg dm9pZCBpbGk5MjI1X3BpcGVfZW5hYmxlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAq cGlwZSwKPiA+IEBAIC0yNjksNyArMjU2LDcgQEAgc3RhdGljIHZvaWQgaWxpOTIyNV9waXBlX2Vu YWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCj4gPiAgIAo+ID4gICAJ aWxpOTIyNV9jb21tYW5kKG1pcGksIElMSTkyMjVfRElTUExBWV9DT05UUk9MXzEsIDB4MTAxNyk7 Cj4gPiAgIAo+ID4gLQltaXBpX2RiaV9lbmFibGVfZmx1c2gobWlwaSk7Cj4gPiArCW1pcGlfZGJp X2VuYWJsZV9mbHVzaChtaXBpLCBjcnRjX3N0YXRlLCBwbGFuZV9zdGF0ZSk7Cj4gPiAgIH0KPiA+ ICAgCj4gPiAgIHN0YXRpYyB2b2lkIGlsaTkyMjVfcGlwZV9kaXNhYmxlKHN0cnVjdCBkcm1fc2lt cGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSkKPiA+IEBAIC0zNDIsNiArMzI5LDggQEAgc3RhdGljIGlu dCBpbGk5MjI1X2luaXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgbWlwaV9kYmkgKm1pcGks Cj4gPiAgIAlpZiAocmV0KQo+ID4gICAJCXJldHVybiByZXQ7Cj4gPiAgIAo+ID4gKwl0ZGV2LT5m Yl9kaXJ0eSA9IGlsaTkyMjVfZmJfZGlydHk7Cj4gPiArCj4gPiAgIAlyZXQgPSB0aW55ZHJtX2Rp c3BsYXlfcGlwZV9pbml0KHRkZXYsIHBpcGVfZnVuY3MsCj4gPiAgIAkJCQkJRFJNX01PREVfQ09O TkVDVE9SX1ZJUlRVQUwsCj4gPiAgIAkJCQkJaWxpOTIyNV9mb3JtYXRzLAo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL21pMDI4M3F0LmMgYi9kcml2ZXJzL2dwdS9kcm0v dGlueWRybS9taTAyODNxdC5jCj4gPiBpbmRleCA4MmFkOWI2MTg5OGUuLjRlNmQyZWU5NGU1NSAx MDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL21pMDI4M3F0LmMKPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL21pMDI4M3F0LmMKPiA+IEBAIC0xMjcsNyArMTI3 LDcgQEAgc3RhdGljIHZvaWQgbWkwMjgzcXRfZW5hYmxlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3Bs YXlfcGlwZSAqcGlwZSwKPiA+ICAgCW1zbGVlcCgxMDApOwo+ID4gICAKPiA+ICAgb3V0X2VuYWJs ZToKPiA+IC0JbWlwaV9kYmlfZW5hYmxlX2ZsdXNoKG1pcGkpOwo+ID4gKwltaXBpX2RiaV9lbmFi bGVfZmx1c2gobWlwaSwgY3J0Y19zdGF0ZSwgcGxhbmVfc3RhdGUpOwo+ID4gICB9Cj4gPiAgIAo+ ID4gICBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzIG1p MDI4M3F0X3BpcGVfZnVuY3MgPSB7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Rp bnlkcm0vbWlwaS1kYmkuYyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL21pcGktZGJpLmMKPiA+ IGluZGV4IDllOTAzODEyYjU3My4uNGQxZmIzMWE3ODFmIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3Rpbnlkcm0vbWlwaS1kYmkuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Rp bnlkcm0vbWlwaS1kYmkuYwo+ID4gQEAgLTIxOSwxNCArMjE5LDggQEAgc3RhdGljIGludCBtaXBp X2RiaV9mYl9kaXJ0eShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+ICAgCWJvb2wgZnVs bDsKPiA+ICAgCXZvaWQgKnRyOwo+ID4gICAKPiA+IC0JbXV0ZXhfbG9jaygmdGRldi0+ZGlydHlf bG9jayk7Cj4gPiAtCj4gPiAgIAlpZiAoIW1pcGktPmVuYWJsZWQpCj4gPiAtCQlnb3RvIG91dF91 bmxvY2s7Cj4gPiAtCj4gPiAtCS8qIGZiZGV2IGNhbiBmbHVzaCBldmVuIHdoZW4gd2UncmUgbm90 IGludGVyZXN0ZWQgKi8KPiA+IC0JaWYgKHRkZXYtPnBpcGUucGxhbmUuZmIgIT0gZmIpCj4gPiAt CQlnb3RvIG91dF91bmxvY2s7Cj4gPiArCQlyZXR1cm4gMDsKPiA+ICAgCj4gPiAgIAlmdWxsID0g dGlueWRybV9tZXJnZV9jbGlwcygmY2xpcCwgY2xpcHMsIG51bV9jbGlwcywgZmxhZ3MsCj4gPiAg IAkJCQkgICBmYi0+d2lkdGgsIGZiLT5oZWlnaHQpOwo+ID4gQEAgLTIzOSw3ICsyMzMsNyBAQCBz dGF0aWMgaW50IG1pcGlfZGJpX2ZiX2RpcnR5KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ ID4gICAJCXRyID0gbWlwaS0+dHhfYnVmOwo+ID4gICAJCXJldCA9IG1pcGlfZGJpX2J1Zl9jb3B5 KG1pcGktPnR4X2J1ZiwgZmIsICZjbGlwLCBzd2FwKTsKPiA+ICAgCQlpZiAocmV0KQo+ID4gLQkJ CWdvdG8gb3V0X3VubG9jazsKPiA+ICsJCQlyZXR1cm4gcmV0Owo+ID4gICAJfSBlbHNlIHsKPiA+ ICAgCQl0ciA9IGNtYV9vYmotPnZhZGRyOwo+ID4gICAJfQo+ID4gQEAgLTI1NCwyMCArMjQ4LDEz IEBAIHN0YXRpYyBpbnQgbWlwaV9kYmlfZmJfZGlydHkoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIsCj4gPiAgIAlyZXQgPSBtaXBpX2RiaV9jb21tYW5kX2J1ZihtaXBpLCBNSVBJX0RDU19XUklU RV9NRU1PUllfU1RBUlQsIHRyLAo+ID4gICAJCQkJKGNsaXAueDIgLSBjbGlwLngxKSAqIChjbGlw LnkyIC0gY2xpcC55MSkgKiAyKTsKPiA+ICAgCj4gPiAtb3V0X3VubG9jazoKPiA+IC0JbXV0ZXhf dW5sb2NrKCZ0ZGV2LT5kaXJ0eV9sb2NrKTsKPiA+IC0KPiA+IC0JaWYgKHJldCkKPiA+IC0JCWRl dl9lcnJfb25jZShmYi0+ZGV2LT5kZXYsICJGYWlsZWQgdG8gdXBkYXRlIGRpc3BsYXkgJWRcbiIs Cj4gPiAtCQkJICAgICByZXQpOwo+ID4gLQo+ID4gICAJcmV0dXJuIHJldDsKPiA+ICAgfQo+ID4g ICAKPiA+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3MgbWlwaV9k YmlfZmJfZnVuY3MgPSB7Cj4gPiAgIAkuZGVzdHJveQk9IGRybV9nZW1fZmJfZGVzdHJveSwKPiA+ ICAgCS5jcmVhdGVfaGFuZGxlCT0gZHJtX2dlbV9mYl9jcmVhdGVfaGFuZGxlLAo+ID4gLQkuZGly dHkJCT0gbWlwaV9kYmlfZmJfZGlydHksCj4gPiArCS5kaXJ0eQkJPSB0aW55ZHJtX2ZiX2RpcnR5 LAo+ID4gICB9Owo+ID4gICAKPiA+ICAgLyoqCj4gPiBAQCAtMjc4LDEzICsyNjUsMTYgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVuY3MgbWlwaV9kYmlfZmJfZnVuY3Mg PSB7Cj4gPiAgICAqIGVuYWJsZXMgdGhlIGJhY2tsaWdodC4gRHJpdmVycyBjYW4gdXNlIHRoaXMg aW4gdGhlaXIKPiA+ICAgICogJmRybV9zaW1wbGVfZGlzcGxheV9waXBlX2Z1bmNzLT5lbmFibGUg Y2FsbGJhY2suCj4gPiAgICAqLwo+ID4gLXZvaWQgbWlwaV9kYmlfZW5hYmxlX2ZsdXNoKHN0cnVj dCBtaXBpX2RiaSAqbWlwaSkKPiA+ICt2b2lkIG1pcGlfZGJpX2VuYWJsZV9mbHVzaChzdHJ1Y3Qg bWlwaV9kYmkgKm1pcGksCj4gPiArCQkJICAgc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAo+ID4gKwkJCSAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQo+ID4g ICB7Cj4gPiAtCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gbWlwaS0+dGlueWRybS5waXBl LnBsYW5lLmZiOwo+ID4gKwlzdHJ1Y3QgdGlueWRybV9kZXZpY2UgKnRkZXYgPSAmbWlwaS0+dGlu eWRybTsKPiA+ICsJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBwbGFuZV9zdGF0ZS0+ZmI7 Cj4gPiAgIAo+ID4gICAJbWlwaS0+ZW5hYmxlZCA9IHRydWU7Cj4gPiAgIAlpZiAoZmIpCj4gPiAt CQlmYi0+ZnVuY3MtPmRpcnR5KGZiLCBOVUxMLCAwLCAwLCBOVUxMLCAwKTsKPiA+ICsJCXRkZXYt PmZiX2RpcnR5KGZiLCBOVUxMLCAwLCAwLCBOVUxMLCAwKTsKPiA+ICAgCj4gPiAgIAliYWNrbGln aHRfZW5hYmxlKG1pcGktPmJhY2tsaWdodCk7Cj4gPiAgIH0KPiA+IEBAIC0zODEsNiArMzcxLDgg QEAgaW50IG1pcGlfZGJpX2luaXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgbWlwaV9kYmkg Km1pcGksCj4gPiAgIAlpZiAocmV0KQo+ID4gICAJCXJldHVybiByZXQ7Cj4gPiAgIAo+ID4gKwl0 ZGV2LT5mYl9kaXJ0eSA9IG1pcGlfZGJpX2ZiX2RpcnR5Owo+ID4gKwo+ID4gICAJLyogVE9ETzog TWF5YmUgYWRkIERSTV9NT0RFX0NPTk5FQ1RPUl9TUEkgKi8KPiA+ICAgCXJldCA9IHRpbnlkcm1f ZGlzcGxheV9waXBlX2luaXQodGRldiwgcGlwZV9mdW5jcywKPiA+ICAgCQkJCQlEUk1fTU9ERV9D T05ORUNUT1JfVklSVFVBTCwKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRy bS9yZXBhcGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9yZXBhcGVyLmMKPiA+IGluZGV4 IDMzYjRhNzE5MTZlNC4uYmI2ZjgwYTgxODk5IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3Rpbnlkcm0vcmVwYXBlci5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9y ZXBhcGVyLmMKPiA+IEBAIC01NDAsMTQgKzU0MCw4IEBAIHN0YXRpYyBpbnQgcmVwYXBlcl9mYl9k aXJ0eShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+ICAgCWNsaXAueTEgPSAwOwo+ID4g ICAJY2xpcC55MiA9IGZiLT5oZWlnaHQ7Cj4gPiAgIAo+ID4gLQltdXRleF9sb2NrKCZ0ZGV2LT5k aXJ0eV9sb2NrKTsKPiA+IC0KPiA+ICAgCWlmICghZXBkLT5lbmFibGVkKQo+ID4gLQkJZ290byBv dXRfdW5sb2NrOwo+ID4gLQo+ID4gLQkvKiBmYmRldiBjYW4gZmx1c2ggZXZlbiB3aGVuIHdlJ3Jl IG5vdCBpbnRlcmVzdGVkICovCj4gPiAtCWlmICh0ZGV2LT5waXBlLnBsYW5lLmZiICE9IGZiKQo+ ID4gLQkJZ290byBvdXRfdW5sb2NrOwo+ID4gKwkJcmV0dXJuIDA7Cj4gPiAgIAo+ID4gICAJcmVw YXBlcl9nZXRfdGVtcGVyYXR1cmUoZXBkKTsKPiA+ICAgCj4gPiBAQCAtNTU1LDE2ICs1NDksMTQg QEAgc3RhdGljIGludCByZXBhcGVyX2ZiX2RpcnR5KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZi LAo+ID4gICAJCSAgZXBkLT5mYWN0b3JlZF9zdGFnZV90aW1lKTsKPiA+ICAgCj4gPiAgIAlidWYg PSBrbWFsbG9jKGZiLT53aWR0aCAqIGZiLT5oZWlnaHQsIEdGUF9LRVJORUwpOwo+ID4gLQlpZiAo IWJ1Zikgewo+ID4gLQkJcmV0ID0gLUVOT01FTTsKPiA+IC0JCWdvdG8gb3V0X3VubG9jazsKPiA+ IC0JfQo+ID4gKwlpZiAoIWJ1ZikKPiA+ICsJCXJldHVybiAtRU5PTUVNOwo+ID4gICAKPiA+ICAg CWlmIChpbXBvcnRfYXR0YWNoKSB7Cj4gPiAgIAkJcmV0ID0gZG1hX2J1Zl9iZWdpbl9jcHVfYWNj ZXNzKGltcG9ydF9hdHRhY2gtPmRtYWJ1ZiwKPiA+ICAgCQkJCQkgICAgICAgRE1BX0ZST01fREVW SUNFKTsKPiA+ICAgCQlpZiAocmV0KQo+ID4gLQkJCWdvdG8gb3V0X3VubG9jazsKPiA+ICsJCQln b3RvIG91dF9mcmVlOwo+ID4gICAJfQo+ID4gICAKPiA+ICAgCXRpbnlkcm1feHJnYjg4ODhfdG9f Z3JheTgoYnVmLCBjbWFfb2JqLT52YWRkciwgZmIsICZjbGlwKTsKPiA+IEBAIC01NzMsNyArNTY1 LDcgQEAgc3RhdGljIGludCByZXBhcGVyX2ZiX2RpcnR5KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIg KmZiLAo+ID4gICAJCXJldCA9IGRtYV9idWZfZW5kX2NwdV9hY2Nlc3MoaW1wb3J0X2F0dGFjaC0+ ZG1hYnVmLAo+ID4gICAJCQkJCSAgICAgRE1BX0ZST01fREVWSUNFKTsKPiA+ICAgCQlpZiAocmV0 KQo+ID4gLQkJCWdvdG8gb3V0X3VubG9jazsKPiA+ICsJCQlnb3RvIG91dF9mcmVlOwo+ID4gICAJ fQo+ID4gICAKPiA+ICAgCXJlcGFwZXJfZ3JheThfdG9fbW9ub19yZXZlcnNlZChidWYsIGZiLT53 aWR0aCwgZmItPmhlaWdodCk7Cj4gPiBAQCAtNjI1LDExICs2MTcsNyBAQCBzdGF0aWMgaW50IHJl cGFwZXJfZmJfZGlydHkoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCj4gPiAgIAkJCX0KPiA+ ICAgCX0KPiA+ICAgCj4gPiAtb3V0X3VubG9jazoKPiA+IC0JbXV0ZXhfdW5sb2NrKCZ0ZGV2LT5k aXJ0eV9sb2NrKTsKPiA+IC0KPiA+IC0JaWYgKHJldCkKPiA+IC0JCURSTV9ERVZfRVJST1IoZmIt PmRldi0+ZGV2LCAiRmFpbGVkIHRvIHVwZGF0ZSBkaXNwbGF5ICglZClcbiIsIHJldCk7Cj4gPiAr b3V0X2ZyZWU6Cj4gPiAgIAlrZnJlZShidWYpOwo+ID4gICAKPiA+ICAgCXJldHVybiByZXQ7Cj4g PiBAQCAtNjM4LDcgKzYyNiw3IEBAIHN0YXRpYyBpbnQgcmVwYXBlcl9mYl9kaXJ0eShzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVi dWZmZXJfZnVuY3MgcmVwYXBlcl9mYl9mdW5jcyA9IHsKPiA+ICAgCS5kZXN0cm95CT0gZHJtX2dl bV9mYl9kZXN0cm95LAo+ID4gICAJLmNyZWF0ZV9oYW5kbGUJPSBkcm1fZ2VtX2ZiX2NyZWF0ZV9o YW5kbGUsCj4gPiAtCS5kaXJ0eQkJPSByZXBhcGVyX2ZiX2RpcnR5LAo+ID4gKwkuZGlydHkJCT0g dGlueWRybV9mYl9kaXJ0eSwKPiA+ICAgfTsKPiA+ICAgCj4gPiAgIHN0YXRpYyB2b2lkIHBvd2Vy X29mZihzdHJ1Y3QgcmVwYXBlcl9lcGQgKmVwZCkKPiA+IEBAIC0xMDcwLDYgKzEwNTgsOCBAQCBz dGF0aWMgaW50IHJlcGFwZXJfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKPiA+ICAgCWlm IChyZXQpCj4gPiAgIAkJcmV0dXJuIHJldDsKPiA+ICAgCj4gPiArCXRkZXYtPmZiX2RpcnR5ID0g cmVwYXBlcl9mYl9kaXJ0eTsKPiA+ICsKPiA+ICAgCXJldCA9IHRpbnlkcm1fZGlzcGxheV9waXBl X2luaXQodGRldiwgJnJlcGFwZXJfcGlwZV9mdW5jcywKPiA+ICAgCQkJCQlEUk1fTU9ERV9DT05O RUNUT1JfVklSVFVBTCwKPiA+ICAgCQkJCQlyZXBhcGVyX2Zvcm1hdHMsCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3Rpbnlkcm0vc3Q3NTg2LmMgYi9kcml2ZXJzL2dwdS9kcm0vdGlu eWRybS9zdDc1ODYuYwo+ID4gaW5kZXggYmIwOGIyOTNjOGNlLi4yMjY0NGI4ODE5OWEgMTAwNjQ0 Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRybS9zdDc1ODYuYwo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3Rpbnlkcm0vc3Q3NTg2LmMKPiA+IEBAIC0xMjAsMTQgKzEyMCw4IEBAIHN0 YXRpYyBpbnQgc3Q3NTg2X2ZiX2RpcnR5KHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4g ICAJaW50IHN0YXJ0LCBlbmQ7Cj4gPiAgIAlpbnQgcmV0ID0gMDsKPiA+ICAgCj4gPiAtCW11dGV4 X2xvY2soJnRkZXYtPmRpcnR5X2xvY2spOwo+ID4gLQo+ID4gICAJaWYgKCFtaXBpLT5lbmFibGVk KQo+ID4gLQkJZ290byBvdXRfdW5sb2NrOwo+ID4gLQo+ID4gLQkvKiBmYmRldiBjYW4gZmx1c2gg ZXZlbiB3aGVuIHdlJ3JlIG5vdCBpbnRlcmVzdGVkICovCj4gPiAtCWlmICh0ZGV2LT5waXBlLnBs YW5lLmZiICE9IGZiKQo+ID4gLQkJZ290byBvdXRfdW5sb2NrOwo+ID4gKwkJcmV0dXJuIDA7Cj4g PiAgIAo+ID4gICAJdGlueWRybV9tZXJnZV9jbGlwcygmY2xpcCwgY2xpcHMsIG51bV9jbGlwcywg ZmxhZ3MsIGZiLT53aWR0aCwKPiA+ICAgCQkJICAgIGZiLT5oZWlnaHQpOwo+ID4gQEAgLTE0MSw3 ICsxMzUsNyBAQCBzdGF0aWMgaW50IHN0NzU4Nl9mYl9kaXJ0eShzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYiwKPiA+ICAgCj4gPiAgIAlyZXQgPSBzdDc1ODZfYnVmX2NvcHkobWlwaS0+dHhfYnVm LCBmYiwgJmNsaXApOwo+ID4gICAJaWYgKHJldCkKPiA+IC0JCWdvdG8gb3V0X3VubG9jazsKPiA+ ICsJCXJldHVybiByZXQ7Cj4gPiAgIAo+ID4gICAJLyogUGl4ZWxzIGFyZSBwYWNrZWQgMyBwZXIg Ynl0ZSAqLwo+ID4gICAJc3RhcnQgPSBjbGlwLngxIC8gMzsKPiA+IEBAIC0xNTgsMjAgKzE1Miwx MyBAQCBzdGF0aWMgaW50IHN0NzU4Nl9mYl9kaXJ0eShzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YiwKPiA+ICAgCQkJCSAgICh1OCAqKW1pcGktPnR4X2J1ZiwKPiA+ICAgCQkJCSAgIChlbmQgLSBz dGFydCkgKiAoY2xpcC55MiAtIGNsaXAueTEpKTsKPiA+ICAgCj4gPiAtb3V0X3VubG9jazoKPiA+ IC0JbXV0ZXhfdW5sb2NrKCZ0ZGV2LT5kaXJ0eV9sb2NrKTsKPiA+IC0KPiA+IC0JaWYgKHJldCkK PiA+IC0JCWRldl9lcnJfb25jZShmYi0+ZGV2LT5kZXYsICJGYWlsZWQgdG8gdXBkYXRlIGRpc3Bs YXkgJWRcbiIsCj4gPiAtCQkJICAgICByZXQpOwo+ID4gLQo+ID4gICAJcmV0dXJuIHJldDsKPiA+ ICAgfQo+ID4gICAKPiA+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXJfZnVu Y3Mgc3Q3NTg2X2ZiX2Z1bmNzID0gewo+ID4gICAJLmRlc3Ryb3kJPSBkcm1fZ2VtX2ZiX2Rlc3Ry b3ksCj4gPiAgIAkuY3JlYXRlX2hhbmRsZQk9IGRybV9nZW1fZmJfY3JlYXRlX2hhbmRsZSwKPiA+ IC0JLmRpcnR5CQk9IHN0NzU4Nl9mYl9kaXJ0eSwKPiA+ICsJLmRpcnR5CQk9IHRpbnlkcm1fZmJf ZGlydHksCj4gPiAgIH07Cj4gPiAgIAo+ID4gICBzdGF0aWMgdm9pZCBzdDc1ODZfcGlwZV9lbmFi bGUoc3RydWN0IGRybV9zaW1wbGVfZGlzcGxheV9waXBlICpwaXBlLAo+ID4gQEAgLTIzOCw3ICsy MjUsNyBAQCBzdGF0aWMgdm9pZCBzdDc1ODZfcGlwZV9lbmFibGUoc3RydWN0IGRybV9zaW1wbGVf ZGlzcGxheV9waXBlICpwaXBlLAo+ID4gICAKPiA+ICAgCW1pcGlfZGJpX2NvbW1hbmQobWlwaSwg TUlQSV9EQ1NfU0VUX0RJU1BMQVlfT04pOwo+ID4gICAKPiA+IC0JbWlwaV9kYmlfZW5hYmxlX2Zs dXNoKG1pcGkpOwo+ID4gKwltaXBpX2RiaV9lbmFibGVfZmx1c2gobWlwaSwgY3J0Y19zdGF0ZSwg cGxhbmVfc3RhdGUpOwo+ID4gICB9Cj4gPiAgIAo+ID4gICBzdGF0aWMgdm9pZCBzdDc1ODZfcGlw ZV9kaXNhYmxlKHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSkKPiA+IEBAIC0y NzgsNiArMjY1LDggQEAgc3RhdGljIGludCBzdDc1ODZfaW5pdChzdHJ1Y3QgZGV2aWNlICpkZXYs IHN0cnVjdCBtaXBpX2RiaSAqbWlwaSwKPiA+ICAgCWlmIChyZXQpCj4gPiAgIAkJcmV0dXJuIHJl dDsKPiA+ICAgCj4gPiArCXRkZXYtPmZiX2RpcnR5ID0gc3Q3NTg2X2ZiX2RpcnR5Owo+ID4gKwo+ ID4gICAJcmV0ID0gdGlueWRybV9kaXNwbGF5X3BpcGVfaW5pdCh0ZGV2LCBwaXBlX2Z1bmNzLAo+ ID4gICAJCQkJCURSTV9NT0RFX0NPTk5FQ1RPUl9WSVJUVUFMLAo+ID4gICAJCQkJCXN0NzU4Nl9m b3JtYXRzLAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL3N0NzczNXIu YyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL3N0NzczNXIuYwo+ID4gaW5kZXggMTliMjhmOGM3 OGRiLi4xODlhMDc4OTRkMzYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGlueWRy bS9zdDc3MzVyLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90aW55ZHJtL3N0NzczNXIuYwo+ ID4gQEAgLTk5LDcgKzk5LDcgQEAgc3RhdGljIHZvaWQgamRfdDE4MDAzX3QwMV9waXBlX2VuYWJs ZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBpcGUsCj4gPiAgIAo+ID4gICAJbXNs ZWVwKDIwKTsKPiA+ICAgCj4gPiAtCW1pcGlfZGJpX2VuYWJsZV9mbHVzaChtaXBpKTsKPiA+ICsJ bWlwaV9kYmlfZW5hYmxlX2ZsdXNoKG1pcGksIGNydGNfc3RhdGUsIHBsYW5lX3N0YXRlKTsKPiA+ ICAgfQo+ID4gICAKPiA+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlf cGlwZV9mdW5jcyBqZF90MTgwMDNfdDAxX3BpcGVfZnVuY3MgPSB7Cj4gPiBkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kcm0vdGlueWRybS9taXBpLWRiaS5oIGIvaW5jbHVkZS9kcm0vdGlueWRybS9taXBp LWRiaS5oCj4gPiBpbmRleCA0NGU4MjRhZjJlZjYuLmI4YmE1ODg2MTk4NiAxMDA2NDQKPiA+IC0t LSBhL2luY2x1ZGUvZHJtL3Rpbnlkcm0vbWlwaS1kYmkuaAo+ID4gKysrIGIvaW5jbHVkZS9kcm0v dGlueWRybS9taXBpLWRiaS5oCj4gPiBAQCAtNjcsNyArNjcsOSBAQCBpbnQgbWlwaV9kYmlfaW5p dChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBtaXBpX2RiaSAqbWlwaSwKPiA+ICAgCQkgIGNv bnN0IHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZV9mdW5jcyAqcGlwZV9mdW5jcywKPiA+ ICAgCQkgIHN0cnVjdCBkcm1fZHJpdmVyICpkcml2ZXIsCj4gPiAgIAkJICBjb25zdCBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwgdW5zaWduZWQgaW50IHJvdGF0aW9uKTsKPiA+IC12b2lk IG1pcGlfZGJpX2VuYWJsZV9mbHVzaChzdHJ1Y3QgbWlwaV9kYmkgKm1pcGkpOwo+ID4gK3ZvaWQg bWlwaV9kYmlfZW5hYmxlX2ZsdXNoKHN0cnVjdCBtaXBpX2RiaSAqbWlwaSwKPiA+ICsJCQkgICBz dHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiArCQkJICAgc3RydWN0IGRybV9w bGFuZV9zdGF0ZSAqcGxhbl9zdGF0ZSk7Cj4gPiAgIHZvaWQgbWlwaV9kYmlfcGlwZV9kaXNhYmxl KHN0cnVjdCBkcm1fc2ltcGxlX2Rpc3BsYXlfcGlwZSAqcGlwZSk7Cj4gPiAgIHZvaWQgbWlwaV9k YmlfaHdfcmVzZXQoc3RydWN0IG1pcGlfZGJpICptaXBpKTsKPiA+ICAgYm9vbCBtaXBpX2RiaV9k aXNwbGF5X2lzX29uKHN0cnVjdCBtaXBpX2RiaSAqbWlwaSk7Cj4gPiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vdGlueWRybS90aW55ZHJtLWhlbHBlcnMuaCBiL2luY2x1ZGUvZHJtL3Rpbnlkcm0v dGlueWRybS1oZWxwZXJzLmgKPiA+IGluZGV4IDBhNGRkYmMwNGM2MC4uNWI5NmYwYjEyYzhjIDEw MDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9kcm0vdGlueWRybS90aW55ZHJtLWhlbHBlcnMuaAo+ID4g KysrIGIvaW5jbHVkZS9kcm0vdGlueWRybS90aW55ZHJtLWhlbHBlcnMuaAo+ID4gQEAgLTM2LDYg KzM2LDExIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCB0aW55ZHJtX21hY2hpbmVfbGl0dGxlX2VuZGlh bih2b2lkKQo+ID4gICBib29sIHRpbnlkcm1fbWVyZ2VfY2xpcHMoc3RydWN0IGRybV9jbGlwX3Jl Y3QgKmRzdCwKPiA+ICAgCQkJIHN0cnVjdCBkcm1fY2xpcF9yZWN0ICpzcmMsIHVuc2lnbmVkIGlu dCBudW1fY2xpcHMsCj4gPiAgIAkJCSB1bnNpZ25lZCBpbnQgZmxhZ3MsIHUzMiBtYXhfd2lkdGgs IHUzMiBtYXhfaGVpZ2h0KTsKPiA+ICtpbnQgdGlueWRybV9mYl9kaXJ0eShzdHJ1Y3QgZHJtX2Zy YW1lYnVmZmVyICpmYiwKPiA+ICsJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYsCj4g PiArCQkgICAgIHVuc2lnbmVkIGludCBmbGFncywgdW5zaWduZWQgaW50IGNvbG9yLAo+ID4gKwkJ ICAgICBzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqY2xpcHMsCj4gPiArCQkgICAgIHVuc2lnbmVkIGlu dCBudW1fY2xpcHMpOwo+ID4gICB2b2lkIHRpbnlkcm1fbWVtY3B5KHZvaWQgKmRzdCwgdm9pZCAq dmFkZHIsIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAo+ID4gICAJCSAgICBzdHJ1Y3QgZHJt X2NsaXBfcmVjdCAqY2xpcCk7Cj4gPiAgIHZvaWQgdGlueWRybV9zd2FiMTYodTE2ICpkc3QsIHZv aWQgKnZhZGRyLCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKPiA+IGRpZmYgLS1naXQgYS9p bmNsdWRlL2RybS90aW55ZHJtL3Rpbnlkcm0uaCBiL2luY2x1ZGUvZHJtL3Rpbnlkcm0vdGlueWRy bS5oCj4gPiBpbmRleCAwN2E5YTExZmUxOWQuLmVhMmM3MTA4MTE5MCAxMDA2NDQKPiA+IC0tLSBh L2luY2x1ZGUvZHJtL3Rpbnlkcm0vdGlueWRybS5oCj4gPiArKysgYi9pbmNsdWRlL2RybS90aW55 ZHJtL3Rpbnlkcm0uaAo+ID4gQEAgLTI2LDYgKzI2LDEwIEBAIHN0cnVjdCB0aW55ZHJtX2Rldmlj ZSB7Cj4gPiAgIAlzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgcGlwZTsKPiA+ICAgCXN0 cnVjdCBtdXRleCBkaXJ0eV9sb2NrOwo+ID4gICAJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZl cl9mdW5jcyAqZmJfZnVuY3M7Cj4gPiArCWludCAoKmZiX2RpcnR5KShzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmcmFtZWJ1ZmZlciwKPiA+ICsJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwg dW5zaWduZWQgZmxhZ3MsCj4gPiArCQkJdW5zaWduZWQgY29sb3IsIHN0cnVjdCBkcm1fY2xpcF9y ZWN0ICpjbGlwcywKPiA+ICsJCQl1bnNpZ25lZCBudW1fY2xpcHMpOwo+ID4gICB9Owo+ID4gICAK PiA+ICAgc3RhdGljIGlubGluZSBzdHJ1Y3QgdGlueWRybV9kZXZpY2UgKgoKLS0gClZpbGxlIFN5 cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg==