From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH 4/6] drm/cma-helper: Support DRM_MODE_DUMB_KERNEL_MAP flag Date: Tue, 22 Oct 2019 14:30:01 +0300 Message-ID: <20191022113001.GG4756@pendragon.ideasonboard.com> References: <20191021214550.1461-1-robh@kernel.org> <20191021214550.1461-5-robh@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20191021214550.1461-5-robh@kernel.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Rob Herring Cc: Neil Armstrong , David Airlie , Liviu Dudau , dri-devel@lists.freedesktop.org, linux-amlogic@lists.infradead.org, linux-stm32@st-md-mailman.stormreply.com, Yannick Fertre , Kevin Hilman , Xinwei Kong , Xinliang Liu , linux-rockchip@lists.infradead.org, Chen-Yu Tsai , Kieran Bingham , "James (Qian) Wang" , Alexandre Torgue , Chen Feng , linux-renesas-soc@vger.kernel.org, linux-mediatek@lists.infradead.org, Matthias Brugger , Sean Paul , linux-arm-kernel@lists.infradead.org, Philippe Cornu , Vincent Abriou List-Id: linux-rockchip.vger.kernel.org SGkgUm9iLAoKVGhhbmsgeW91IGZvciB0aGUgcGF0Y2guCgpPbiBNb24sIE9jdCAyMSwgMjAxOSBh dCAwNDo0NTo0OFBNIC0wNTAwLCBSb2IgSGVycmluZyB3cm90ZToKPiBBZGQgc3VwcG9ydCBpbiBD TUEgaGVscGVycyB0byBoYW5kbGUgY2FsbGVycyBzcGVjaWZ5aW5nCj4gRFJNX01PREVfRFVNQl9L RVJORUxfTUFQIGZsYWcuIEV4aXN0aW5nIGJlaGF2aW9yIGlzIG1haW50YWluZWQgd2l0aCB0aGlz Cj4gY2hhbmdlLiBkcm1fZ2VtX2NtYV9kdW1iX2NyZWF0ZSgpIGFsd2F5cyBjcmVhdGVzIGEga2Vy bmVsIG1hcHBpbmcgYXMKPiBiZWZvcmUuIGRybV9nZW1fY21hX2R1bWJfY3JlYXRlX2ludGVybmFs KCkgbGV0cyB0aGUgY2FsbGVyIHNldCB0aGUgZmxhZ3MKPiBhcyBkZXNpcmVkLiBUaGVyZWZvcmUs IHVwZGF0ZSBhbGwgdGhlIGV4aXN0aW5nIGNhbGxlcnMgb2YKPiBkcm1fZ2VtX2NtYV9kdW1iX2Ny ZWF0ZV9pbnRlcm5hbCgpIHRvIGFsc28gc2V0IHRoZQo+IERSTV9NT0RFX0RVTUJfS0VSTkVMX01B UCBmbGFnLgo+IAo+IENjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGlu dXguaW50ZWwuY29tPgo+IENjOiBNYXhpbWUgUmlwYXJkIDxtcmlwYXJkQGtlcm5lbC5vcmc+Cj4g Q2M6IFNlYW4gUGF1bCA8c2VhbkBwb29ybHkucnVuPgo+IENjOiBEYXZpZCBBaXJsaWUgPGFpcmxp ZWRAbGludXguaWU+Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4KPiBDYzog IkphbWVzIChRaWFuKSBXYW5nIiA8amFtZXMucWlhbi53YW5nQGFybS5jb20+Cj4gQ2M6IExpdml1 IER1ZGF1IDxsaXZpdS5kdWRhdUBhcm0uY29tPgo+IENjOiBCcmlhbiBTdGFya2V5IDxicmlhbi5z dGFya2V5QGFybS5jb20+Cj4gQ2M6IE5laWwgQXJtc3Ryb25nIDxuYXJtc3Ryb25nQGJheWxpYnJl LmNvbT4KPiBDYzogS2V2aW4gSGlsbWFuIDxraGlsbWFuQGJheWxpYnJlLmNvbT4KPiBDYzogTGF1 cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29tPgo+IENjOiBL aWVyYW4gQmluZ2hhbSA8a2llcmFuLmJpbmdoYW0rcmVuZXNhc0BpZGVhc29uYm9hcmQuY29tPgo+ IENjOiBTYW5keSBIdWFuZyA8aGpjQHJvY2stY2hpcHMuY29tPgo+IENjOiAiSGVpa28gU3TDvGJu ZXIiIDxoZWlrb0BzbnRlY2guZGU+Cj4gQ2M6IFlhbm5pY2sgRmVydHJlIDx5YW5uaWNrLmZlcnRy ZUBzdC5jb20+Cj4gQ2M6IFBoaWxpcHBlIENvcm51IDxwaGlsaXBwZS5jb3JudUBzdC5jb20+Cj4g Q2M6IEJlbmphbWluIEdhaWduYXJkIDxiZW5qYW1pbi5nYWlnbmFyZEBsaW5hcm8ub3JnPgo+IENj OiBWaW5jZW50IEFicmlvdSA8dmluY2VudC5hYnJpb3VAc3QuY29tPgo+IENjOiBNYXhpbWUgQ29x dWVsaW4gPG1jb3F1ZWxpbi5zdG0zMkBnbWFpbC5jb20+Cj4gQ2M6IEFsZXhhbmRyZSBUb3JndWUg PGFsZXhhbmRyZS50b3JndWVAc3QuY29tPgo+IENjOiBDaGVuLVl1IFRzYWkgPHdlbnNAY3NpZS5v cmc+Cj4gQ2M6IGxpbnV4LWFtbG9naWNAbGlzdHMuaW5mcmFkZWFkLm9yZwo+IENjOiBsaW51eC1h cm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKPiBDYzogbGludXgtcmVuZXNhcy1zb2NAdmdl ci5rZXJuZWwub3JnCj4gQ2M6IGxpbnV4LXJvY2tjaGlwQGxpc3RzLmluZnJhZGVhZC5vcmcKPiBD YzogbGludXgtc3RtMzJAc3QtbWQtbWFpbG1hbi5zdG9ybXJlcGx5LmNvbQo+IFNpZ25lZC1vZmYt Ynk6IFJvYiBIZXJyaW5nIDxyb2JoQGtlcm5lbC5vcmc+Cj4gLS0tCj4gIC4uLi9ncHUvZHJtL2Fy bS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfa21zLmMgICB8ICAxICsKPiAgZHJpdmVycy9ncHUvZHJt L2FybS9tYWxpZHBfZHJ2LmMgICAgICAgICAgICAgIHwgIDEgKwo+ICBkcml2ZXJzL2dwdS9kcm0v ZHJtX2dlbV9jbWFfaGVscGVyLmMgICAgICAgICAgfCA0OCArKysrKysrKysrKy0tLS0tLS0tCj4g IGRyaXZlcnMvZ3B1L2RybS9tZXNvbi9tZXNvbl9kcnYuYyAgICAgICAgICAgICB8ICAxICsKPiAg ZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9rbXMuYyAgICAgICAgIHwgIDEgKwo+ICBk cml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2dlbS5jICAgfCAgMSArCj4gIGRy aXZlcnMvZ3B1L2RybS9zdG0vZHJ2LmMgICAgICAgICAgICAgICAgICAgICB8ICAxICsKPiAgZHJp dmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2Rydi5jICAgICAgICAgICAgIHwgIDEgKwo+ICA4IGZp bGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9rbXMuYyBi L2RyaXZlcnMvZ3B1L2RybS9hcm0vZGlzcGxheS9rb21lZGEva29tZWRhX2ttcy5jCj4gaW5kZXgg ZDQ5NzcyZGU5M2UwLi43Y2YwZGM0Y2JmYzEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FybS9kaXNwbGF5L2tvbWVkYS9rb21lZGFfa21zLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v YXJtL2Rpc3BsYXkva29tZWRhL2tvbWVkYV9rbXMuYwo+IEBAIC0zMSw2ICszMSw3IEBAIHN0YXRp YyBpbnQga29tZWRhX2dlbV9jbWFfZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlLAo+ ICAJdTMyIHBpdGNoID0gRElWX1JPVU5EX1VQKGFyZ3MtPndpZHRoICogYXJncy0+YnBwLCA4KTsK PiAgCj4gIAlhcmdzLT5waXRjaCA9IEFMSUdOKHBpdGNoLCBtZGV2LT5jaGlwLmJ1c193aWR0aCk7 Cj4gKwlhcmdzLT5mbGFncyA9IERSTV9NT0RFX0RVTUJfS0VSTkVMX01BUDsKPiAgCj4gIAlyZXR1 cm4gZHJtX2dlbV9jbWFfZHVtYl9jcmVhdGVfaW50ZXJuYWwoZmlsZSwgZGV2LCBhcmdzKTsKPiAg fQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9kcnYuYyBiL2RyaXZl cnMvZ3B1L2RybS9hcm0vbWFsaWRwX2Rydi5jCj4gaW5kZXggOGE3NjMxNWFhYTBmLi5hZWIxYTc3 OWVjYzEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FybS9tYWxpZHBfZHJ2LmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9kcnYuYwo+IEBAIC00NjUsNiArNDY1LDcg QEAgc3RhdGljIGludCBtYWxpZHBfZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYsCj4gIAl1OCBhbGlnbm1lbnQgPSBtYWxpZHBfaHdfZ2V0X3BpdGNoX2FsaWduKG1hbGlkcC0+ ZGV2LCAxKTsKPiAgCj4gIAlhcmdzLT5waXRjaCA9IEFMSUdOKERJVl9ST1VORF9VUChhcmdzLT53 aWR0aCAqIGFyZ3MtPmJwcCwgOCksIGFsaWdubWVudCk7Cj4gKwlhcmdzLT5mbGFncyA9IERSTV9N T0RFX0RVTUJfS0VSTkVMX01BUDsKPiAgCj4gIAlyZXR1cm4gZHJtX2dlbV9jbWFfZHVtYl9jcmVh dGVfaW50ZXJuYWwoZmlsZV9wcml2LCBkcm0sIGFyZ3MpOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZ2VtX2NtYV9oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f Z2VtX2NtYV9oZWxwZXIuYwo+IGluZGV4IDRjZWJmZTAxZTZlYS4uZjkxZTllOGFkZWFmIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtX2NtYV9oZWxwZXIuYwo+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZ2VtX2NtYV9oZWxwZXIuYwo+IEBAIC03OCwyMSArNzgsOCBAQCBf X2RybV9nZW1fY21hX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBzaXplX3Qgc2l6ZSkK PiAgCXJldHVybiBFUlJfUFRSKHJldCk7Cj4gIH0KPiAgCj4gLS8qKgo+IC0gKiBkcm1fZ2VtX2Nt YV9jcmVhdGUgLSBhbGxvY2F0ZSBhbiBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gc2l6ZQo+IC0gKiBA ZHJtOiBEUk0gZGV2aWNlCj4gLSAqIEBzaXplOiBzaXplIG9mIHRoZSBvYmplY3QgdG8gYWxsb2Nh dGUKPiAtICoKPiAtICogVGhpcyBmdW5jdGlvbiBjcmVhdGVzIGEgQ01BIEdFTSBvYmplY3QgYW5k IGFsbG9jYXRlcyBhIGNvbnRpZ3VvdXMgY2h1bmsgb2YKPiAtICogbWVtb3J5IGFzIGJhY2tpbmcg c3RvcmUuIFRoZSBiYWNraW5nIG1lbW9yeSBoYXMgdGhlIHdyaXRlY29tYmluZSBhdHRyaWJ1dGUK PiAtICogc2V0Lgo+IC0gKgo+IC0gKiBSZXR1cm5zOgo+IC0gKiBBIHN0cnVjdCBkcm1fZ2VtX2Nt YV9vYmplY3QgKiBvbiBzdWNjZXNzIG9yIGFuIEVSUl9QVFIoKS1lbmNvZGVkIG5lZ2F0aXZlCj4g LSAqIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KPiAtICovCj4gLXN0cnVjdCBkcm1fZ2VtX2NtYV9v YmplY3QgKmRybV9nZW1fY21hX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLAo+IC0JCQkJ CSAgICAgIHNpemVfdCBzaXplKQo+ICtzdGF0aWMgc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAq Cj4gK2RybV9nZW1fY21hX2NyZWF0ZV9mbGFncyhzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBzaXpl X3Qgc2l6ZSwgdTMyIGZsYWdzKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICpj bWFfb2JqOwo+ICAJaW50IHJldDsKPiBAQCAtMTAzLDYgKzkwLDkgQEAgc3RydWN0IGRybV9nZW1f Y21hX29iamVjdCAqZHJtX2dlbV9jbWFfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sCj4g IAlpZiAoSVNfRVJSKGNtYV9vYmopKQo+ICAJCXJldHVybiBjbWFfb2JqOwo+ICAKPiArCWlmICgh KGZsYWdzICYgRFJNX01PREVfRFVNQl9LRVJORUxfTUFQKSkKPiArCQljbWFfb2JqLT5kbWFfYXR0 cnMgfD0gRE1BX0FUVFJfTk9fS0VSTkVMX01BUFBJTkc7Cj4gKwo+ICAJY21hX29iai0+dmFkZHIg PSBkbWFfYWxsb2NfYXR0cnMoZHJtLT5kZXYsIHNpemUsICZjbWFfb2JqLT5wYWRkciwKPiAgCQkJ CQkgR0ZQX0tFUk5FTCB8IF9fR0ZQX05PV0FSTiwKPiAgCQkJCQkgY21hX29iai0+ZG1hX2F0dHJz KTsKPiBAQCAtMTE5LDYgKzEwOSwyNSBAQCBzdHJ1Y3QgZHJtX2dlbV9jbWFfb2JqZWN0ICpkcm1f Z2VtX2NtYV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKPiAgCWRybV9nZW1fb2JqZWN0 X3B1dF91bmxvY2tlZCgmY21hX29iai0+YmFzZSk7Cj4gIAlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ ICB9Cj4gKwo+ICsvKioKPiArICogZHJtX2dlbV9jbWFfY3JlYXRlIC0gYWxsb2NhdGUgYW4gb2Jq ZWN0IHdpdGggdGhlIGdpdmVuIHNpemUKPiArICogQGRybTogRFJNIGRldmljZQo+ICsgKiBAc2l6 ZTogc2l6ZSBvZiB0aGUgb2JqZWN0IHRvIGFsbG9jYXRlCj4gKyAqCj4gKyAqIFRoaXMgZnVuY3Rp b24gY3JlYXRlcyBhIENNQSBHRU0gb2JqZWN0IGFuZCBhbGxvY2F0ZXMgYSBjb250aWd1b3VzIGNo dW5rIG9mCj4gKyAqIG1lbW9yeSBhcyBiYWNraW5nIHN0b3JlLiBUaGUgYmFja2luZyBtZW1vcnkg aGFzIHRoZSB3cml0ZWNvbWJpbmUgYXR0cmlidXRlCj4gKyAqIHNldC4KPiArICoKClNob3VsZG4n dCB5b3UgbWVudGlvbiBoZXJlIHRoYXQgdGhlIGZ1bmN0aW9uIGFsd2F5cyBjcmVhdGVzIGEga2Vy bmVsCm1hcHBpbmcsIGFuZCB0aGF0IGNhbGxlcnMgdGhhdCBkb24ndCBuZWVkIHRoZSBtYXBwaW5n IHNob3VsZCB1c2UKZHJtX2dlbV9jbWFfZHVtYl9jcmVhdGVfaW50ZXJuYWwoKSBpbnN0ZWFkID8K ZHJtX2dlbV9jbWFfZHVtYl9jcmVhdGVfaW50ZXJuYWwoKSBvcGVyYXRlcyBhdCBhIGRpZmZlcmVu dCBsZXZlbCB0aG91Z2gsCmFuZCBkcm1fZ2VtX2NtYV9jcmVhdGUoKSBpcyBvbmx5IGV4cG9ydGVk IGZvciBhIHNpbmdsZSBkcml2ZXIuIFRoZXJlJ3MKbm8gZXF1aXZhbGVudCB0byBkcm1fZ2VtX2Nt YV9jcmVhdGUoKSB0aGF0IGNhbiBza2lwIHRoZSBrZXJuZWwgbWFwcGluZy4KCkFwYXJ0IGZyb20g dGhpcywKClJldmlld2VkLWJ5OiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVyZW50LnBpbmNoYXJ0QGlk ZWFzb25ib2FyZC5jb20+Cgo+ICsgKiBSZXR1cm5zOgo+ICsgKiBBIHN0cnVjdCBkcm1fZ2VtX2Nt YV9vYmplY3QgKiBvbiBzdWNjZXNzIG9yIGFuIEVSUl9QVFIoKS1lbmNvZGVkIG5lZ2F0aXZlCj4g KyAqIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KPiArICovCj4gK3N0cnVjdCBkcm1fZ2VtX2NtYV9v YmplY3QgKmRybV9nZW1fY21hX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLAo+ICsJCQkJ CSAgICAgIHNpemVfdCBzaXplKQo+ICt7Cj4gKwlyZXR1cm4gZHJtX2dlbV9jbWFfY3JlYXRlX2Zs YWdzKGRybSwgc2l6ZSwgRFJNX01PREVfRFVNQl9LRVJORUxfTUFQKTsKPiArfQo+ICBFWFBPUlRf U1lNQk9MX0dQTChkcm1fZ2VtX2NtYV9jcmVhdGUpOwo+ICAKPiAgLyoqCj4gQEAgLTEzOSwxNCAr MTQ4LDE0IEBAIEVYUE9SVF9TWU1CT0xfR1BMKGRybV9nZW1fY21hX2NyZWF0ZSk7Cj4gICAqLwo+ ICBzdGF0aWMgc3RydWN0IGRybV9nZW1fY21hX29iamVjdCAqCj4gIGRybV9nZW1fY21hX2NyZWF0 ZV93aXRoX2hhbmRsZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwKPiAtCQkJICAgICAgIHN0 cnVjdCBkcm1fZGV2aWNlICpkcm0sIHNpemVfdCBzaXplLAo+ICsJCQkgICAgICAgc3RydWN0IGRy bV9kZXZpY2UgKmRybSwgc2l6ZV90IHNpemUsIHUzMiBmbGFncywKPiAgCQkJICAgICAgIHVpbnQz Ml90ICpoYW5kbGUpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZ2VtX2NtYV9vYmplY3QgKmNtYV9vYmo7 Cj4gIAlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbV9vYmo7Cj4gIAlpbnQgcmV0Owo+ICAKPiAt CWNtYV9vYmogPSBkcm1fZ2VtX2NtYV9jcmVhdGUoZHJtLCBzaXplKTsKPiArCWNtYV9vYmogPSBk cm1fZ2VtX2NtYV9jcmVhdGVfZmxhZ3MoZHJtLCBzaXplLCBmbGFncyk7Cj4gIAlpZiAoSVNfRVJS KGNtYV9vYmopKQo+ICAJCXJldHVybiBjbWFfb2JqOwo+ICAKPiBAQCAtMjI1LDcgKzIzNCw3IEBA IGludCBkcm1fZ2VtX2NtYV9kdW1iX2NyZWF0ZV9pbnRlcm5hbChzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGVfcHJpdiwKPiAgCQlhcmdzLT5zaXplID0gYXJncy0+cGl0Y2ggKiBhcmdzLT5oZWlnaHQ7Cj4g IAo+ICAJY21hX29iaiA9IGRybV9nZW1fY21hX2NyZWF0ZV93aXRoX2hhbmRsZShmaWxlX3ByaXYs IGRybSwgYXJncy0+c2l6ZSwKPiAtCQkJCQkJICZhcmdzLT5oYW5kbGUpOwo+ICsJCQkJCQkgYXJn cy0+ZmxhZ3MsICZhcmdzLT5oYW5kbGUpOwo+ICAJcmV0dXJuIFBUUl9FUlJfT1JfWkVSTyhjbWFf b2JqKTsKPiAgfQo+ICBFWFBPUlRfU1lNQk9MX0dQTChkcm1fZ2VtX2NtYV9kdW1iX2NyZWF0ZV9p bnRlcm5hbCk7Cj4gQEAgLTI1Niw5ICsyNjUsMTAgQEAgaW50IGRybV9nZW1fY21hX2R1bWJfY3Jl YXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAo+ICAKPiAgCWFyZ3MtPnBpdGNoID0gRElW X1JPVU5EX1VQKGFyZ3MtPndpZHRoICogYXJncy0+YnBwLCA4KTsKPiAgCWFyZ3MtPnNpemUgPSBh cmdzLT5waXRjaCAqIGFyZ3MtPmhlaWdodDsKPiArCWFyZ3MtPmZsYWdzID0gRFJNX01PREVfRFVN Ql9LRVJORUxfTUFQOwo+ICAKPiAgCWNtYV9vYmogPSBkcm1fZ2VtX2NtYV9jcmVhdGVfd2l0aF9o YW5kbGUoZmlsZV9wcml2LCBkcm0sIGFyZ3MtPnNpemUsCj4gLQkJCQkJCSAmYXJncy0+aGFuZGxl KTsKPiArCQkJCQkJIGFyZ3MtPmZsYWdzLCAmYXJncy0+aGFuZGxlKTsKPiAgCXJldHVybiBQVFJf RVJSX09SX1pFUk8oY21hX29iaik7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTF9HUEwoZHJtX2dlbV9j bWFfZHVtYl9jcmVhdGUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVz b25fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fZHJ2LmMKPiBpbmRleCAzOTdj MzMxODJmNGYuLjE1OTM1MThkY2JlNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVz b24vbWVzb25fZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVzb24vbWVzb25fZHJ2LmMK PiBAQCAtODEsNiArODEsNyBAQCBzdGF0aWMgaW50IG1lc29uX2R1bWJfY3JlYXRlKHN0cnVjdCBk cm1fZmlsZSAqZmlsZSwgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCSAqLwo+ICAJYXJncy0+ cGl0Y2ggPSBBTElHTihESVZfUk9VTkRfVVAoYXJncy0+d2lkdGggKiBhcmdzLT5icHAsIDgpLCBT Wl82NCk7Cj4gIAlhcmdzLT5zaXplID0gUEFHRV9BTElHTihhcmdzLT5waXRjaCAqIGFyZ3MtPmhl aWdodCk7Cj4gKwlhcmdzLT5mbGFncyA9IERSTV9NT0RFX0RVTUJfS0VSTkVMX01BUDsKPiAgCj4g IAlyZXR1cm4gZHJtX2dlbV9jbWFfZHVtYl9jcmVhdGVfaW50ZXJuYWwoZmlsZSwgZGV2LCBhcmdz KTsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1X2tt cy5jIGIvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9rbXMuYwo+IGluZGV4IDJkYzlj YWVlODc2Ny4uYzliMWYyOThjZTdlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yY2Fy LWR1L3JjYXJfZHVfa21zLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmNhci1kdS9yY2FyX2R1 X2ttcy5jCj4gQEAgLTI5OSw2ICsyOTksNyBAQCBpbnQgcmNhcl9kdV9kdW1iX2NyZWF0ZShzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGUsIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJYWxpZ24gPSAx NiAqIGFyZ3MtPmJwcCAvIDg7Cj4gIAo+ICAJYXJncy0+cGl0Y2ggPSByb3VuZHVwKG1pbl9waXRj aCwgYWxpZ24pOwo+ICsJYXJncy0+ZmxhZ3MgPSBEUk1fTU9ERV9EVU1CX0tFUk5FTF9NQVA7Cj4g IAo+ICAJcmV0dXJuIGRybV9nZW1fY21hX2R1bWJfY3JlYXRlX2ludGVybmFsKGZpbGUsIGRldiwg YXJncyk7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tj aGlwX2RybV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZ2Vt LmMKPiBpbmRleCA3NTgyZDBlNmE2MGEuLmYwOWI5YTAzNTM3NiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2dlbS5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9nZW0uYwo+IEBAIC00MTksNiArNDE5LDcgQEAg aW50IHJvY2tjaGlwX2dlbV9kdW1iX2NyZWF0ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwK PiAgCSAqIGFsaWduIHRvIDY0IGJ5dGVzIHNpbmNlIE1hbGkgcmVxdWlyZXMgaXQuCj4gIAkgKi8K PiAgCWFyZ3MtPnBpdGNoID0gQUxJR04obWluX3BpdGNoLCA2NCk7Cj4gKwlhcmdzLT5mbGFncyA9 IERSTV9NT0RFX0RVTUJfS0VSTkVMX01BUDsKPiAgCWFyZ3MtPnNpemUgPSBhcmdzLT5waXRjaCAq IGFyZ3MtPmhlaWdodDsKCk15IE9DRCBnZXRzIHRyaWdnZXJlZCBieSBmbGFncyBhcHBlYXJpbmcg aW4gdGhlIG1pZGRsZSBoZXJlIHdoaWxlIGl0IGlzCmF0IHRoZSBlbmQgaW4gb3RoZXIgZHJpdmVy cyA6LSkKCj4gIAo+ICAJcmtfb2JqID0gcm9ja2NoaXBfZ2VtX2NyZWF0ZV93aXRoX2hhbmRsZShm aWxlX3ByaXYsIGRldiwgYXJncy0+c2l6ZSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3N0bS9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9zdG0vZHJ2LmMKPiBpbmRleCA1YTlmOWFjYThi YzIuLjBmNzZhNGFjOTViMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vc3RtL2Rydi5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3N0bS9kcnYuYwo+IEBAIC00Nyw2ICs0Nyw3IEBAIHN0 YXRpYyBpbnQgc3RtX2dlbV9jbWFfZHVtYl9jcmVhdGUoc3RydWN0IGRybV9maWxlICpmaWxlLAo+ ICAJICovCj4gIAlhcmdzLT5waXRjaCA9IHJvdW5kdXAobWluX3BpdGNoLCAxMjgpOwo+ICAJYXJn cy0+aGVpZ2h0ID0gcm91bmR1cChhcmdzLT5oZWlnaHQsIDQpOwo+ICsJYXJncy0+ZmxhZ3MgPSBE Uk1fTU9ERV9EVU1CX0tFUk5FTF9NQVA7Cj4gIAo+ICAJcmV0dXJuIGRybV9nZW1fY21hX2R1bWJf Y3JlYXRlX2ludGVybmFsKGZpbGUsIGRldiwgYXJncyk7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1 bjRpX2Rydi5jCj4gaW5kZXggYTU3NTdiMTFiNzMwLi5mNjUzYTVkMWUyZDYgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL3N1bjRpL3N1bjRpX2Rydi5jCj4gQEAgLTM0LDYgKzM0LDcgQEAgc3RhdGljIGludCBkcm1f c3VuNGlfZ2VtX2R1bWJfY3JlYXRlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAo+ICB7Cj4g IAkvKiBUaGUgaGFyZHdhcmUgb25seSBhbGxvd3MgZXZlbiBwaXRjaGVzIGZvciBZVVYgYnVmZmVy cy4gKi8KPiAgCWFyZ3MtPnBpdGNoID0gQUxJR04oRElWX1JPVU5EX1VQKGFyZ3MtPndpZHRoICog YXJncy0+YnBwLCA4KSwgMik7Cj4gKwlhcmdzLT5mbGFncyA9IERSTV9NT0RFX0RVTUJfS0VSTkVM X01BUDsKPiAgCj4gIAlyZXR1cm4gZHJtX2dlbV9jbWFfZHVtYl9jcmVhdGVfaW50ZXJuYWwoZmls ZV9wcml2LCBkcm0sIGFyZ3MpOwo+ICB9CgotLSAKUmVnYXJkcywKCkxhdXJlbnQgUGluY2hhcnQK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs