From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC v4 16/25] drm: Make ioctls available for in-kernel clients Date: Mon, 16 Apr 2018 11:04:28 +0200 Message-ID: <20180416090428.GR31310@phenom.ffwll.local> References: <20180414115318.14500-1-noralf@tronnes.org> <20180414115318.14500-17-noralf@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: <20180414115318.14500-17-noralf@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, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gU2F0LCBBcHIgMTQsIDIwMTggYXQgMDE6NTM6MDlQTSArMDIwMCwgTm9yYWxmIFRyw7hubmVz IHdyb3RlOgo+IE1ha2UgaW9jdGwgd3JhcHBlcnMgZm9yIGZ1bmN0aW9ucyB0aGF0IHdpbGwgYmUg dXNlZCBieSB0aGUgaW4ta2VybmVsIEFQSS4KPiBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhcmUg dG91Y2hlZDoKPiAtIGRybV9tb2RlX2NyZWF0ZV9kdW1iX2lvY3RsKCkKPiAtIGRybV9tb2RlX2Rl c3Ryb3lfZHVtYl9pb2N0bCgpCj4gLSBkcm1fbW9kZV9hZGRmYjIoKQo+IC0gZHJtX21vZGVfcm1m YigpCj4gLSBkcm1fcHJpbWVfaGFuZGxlX3RvX2ZkX2lvY3RsKCkKPiAKPiBkcm1fbW9kZV9hZGRm YjIoKSBhbHNvIGdldHMgdGhlIGFiaWxpdHkgdG8gb3ZlcnJpZGUgdGhlIGRlYnVnIG5hbWUuCj4g Cj4gU2lnbmVkLW9mZi1ieTogTm9yYWxmIFRyw7hubmVzIDxub3JhbGZAdHJvbm5lcy5vcmc+Cj4g LS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19pbnRlcm5hbC5oIHwgMTggKysrKysrKysr Ky0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2R1bWJfYnVmZmVycy5jICB8IDMzICsrKysrKysr KysrKysrKystLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMgICB8 IDUwICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUv ZHJtL2RybV9pbnRlcm5hbC5oICAgICAgfCAgMyArKysKPiAgZHJpdmVycy9ncHUvZHJtL2RybV9p b2MzMi5jICAgICAgICAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMgICAg ICAgICB8ICA0ICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1lLmMgICAgICAgICB8IDEz ICsrKysrKystLS0KPiAgNyBmaWxlcyBjaGFuZ2VkLCA4NCBpbnNlcnRpb25zKCspLCAzOSBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2ludGVy bmFsLmggYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaW50ZXJuYWwuaAo+IGluZGV4IDNjMmI4 Mjg2NWFkMi4uOGY4ODg2YWMwZTRkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f Y3J0Y19pbnRlcm5hbC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2ludGVybmFs LmgKPiBAQCAtNjIsNiArNjIsMTIgQEAgaW50IGRybV9tb2RlX2dldHJlc291cmNlcyhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAo+ICAKPiAgCj4gIC8qIGRybV9kdW1iX2J1ZmZlcnMuYyAqLwo+ICtp bnQgZHJtX21vZGVfY3JlYXRlX2R1bWIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkJIHN0 cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiAqYXJncywKPiArCQkJIHN0cnVjdCBkcm1fZmlsZSAq ZmlsZV9wcml2KTsKPiAraW50IGRybV9tb2RlX2Rlc3Ryb3lfZHVtYihzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB1MzIgaGFuZGxlLAo+ICsJCQkgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsK PiArCj4gIC8qIElPQ1RMcyAqLwo+ICBpbnQgZHJtX21vZGVfY3JlYXRlX2R1bWJfaW9jdGwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCQkJICAgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1f ZmlsZSAqZmlsZV9wcml2KTsKPiBAQCAtMTYzLDE0ICsxNjksMTggQEAgaW50IGRybV9mcmFtZWJ1 ZmZlcl9jaGVja19zcmNfY29vcmRzKHVpbnQzMl90IHNyY194LCB1aW50MzJfdCBzcmNfeSwKPiAg CQkJCSAgICAgY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpOwo+ICB2b2lkIGRybV9m Yl9yZWxlYXNlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKPiAgCj4gK2ludCBkcm1fbW9k ZV9hZGRmYjIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIg KnIsCj4gKwkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LCBjb25zdCBjaGFyICpjb21t KTsKPiAraW50IGRybV9tb2RlX3JtZmIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIGZiX2lk LAo+ICsJCSAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwo+ICAKPiAgLyogSU9DVEwgKi8K PiAgaW50IGRybV9tb2RlX2FkZGZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkJICAgdm9p ZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwo+IC1pbnQgZHJtX21vZGVfYWRk ZmIyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gLQkJICAgIHZvaWQgKmRhdGEsIHN0cnVjdCBk cm1fZmlsZSAqZmlsZV9wcml2KTsKPiAtaW50IGRybV9tb2RlX3JtZmIoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKPiAtCQkgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsK PiAraW50IGRybV9tb2RlX2FkZGZiMl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJ CQkgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKPiAraW50IGRybV9t b2RlX3JtZmJfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkJdm9pZCAqZGF0YSwg c3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwo+ICBpbnQgZHJtX21vZGVfZ2V0ZmIoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKPiAgCQkgICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGVfcHJpdik7Cj4gIGludCBkcm1fbW9kZV9kaXJ0eWZiX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHVtYl9idWZmZXJzLmMg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2R1bWJfYnVmZmVycy5jCj4gaW5kZXggMzlhYzE1Y2U0NzAy Li5lZWQ5Njg3Yjg2OTggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9kdW1iX2J1 ZmZlcnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHVtYl9idWZmZXJzLmMKPiBAQCAt NTMsMTAgKzUzLDEwIEBACj4gICAqIGEgaGFyZHdhcmUtc3BlY2lmaWMgaW9jdGwgdG8gYWxsb2Nh dGUgc3VpdGFibGUgYnVmZmVyIG9iamVjdHMuCj4gICAqLwo+ICAKPiAtaW50IGRybV9tb2RlX2Ny ZWF0ZV9kdW1iX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gLQkJCSAgICAgICB2b2lk ICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKPiAraW50IGRybV9tb2RlX2NyZWF0 ZV9kdW1iKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJCSBzdHJ1Y3QgZHJtX21vZGVfY3Jl YXRlX2R1bWIgKmFyZ3MsCj4gKwkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKPiAgewo+ IC0Jc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iICphcmdzID0gZGF0YTsKPiAgCXUzMiBjcHAs IHN0cmlkZSwgc2l6ZTsKPiAgCj4gIAlpZiAoIWRldi0+ZHJpdmVyLT5kdW1iX2NyZWF0ZSkKPiBA QCAtOTEsNiArOTEsMTIgQEAgaW50IGRybV9tb2RlX2NyZWF0ZV9kdW1iX2lvY3RsKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gIAlyZXR1cm4gZGV2LT5kcml2ZXItPmR1bWJfY3JlYXRlKGZpbGVf cHJpdiwgZGV2LCBhcmdzKTsKPiAgfQo+ICAKPiAraW50IGRybV9tb2RlX2NyZWF0ZV9kdW1iX2lv Y3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJCSAgICAgICB2b2lkICpkYXRhLCBzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKPiArewo+ICsJcmV0dXJuIGRybV9tb2RlX2NyZWF0ZV9k dW1iKGRldiwgZGF0YSwgZmlsZV9wcml2KTsKPiArfQo+ICsKPiAgLyoqCj4gICAqIGRybV9tb2Rl X21tYXBfZHVtYl9pb2N0bCAtIGNyZWF0ZSBhbiBtbWFwIG9mZnNldCBmb3IgYSBkdW1iIGJhY2tp bmcgc3RvcmFnZSBidWZmZXIKPiAgICogQGRldjogRFJNIGRldmljZQo+IEBAIC0xMjIsMTcgKzEy OCwyMiBAQCBpbnQgZHJtX21vZGVfbW1hcF9kdW1iX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4gIAkJCQkJICAgICAgICZhcmdzLT5vZmZzZXQpOwo+ICB9Cj4gIAo+ICtpbnQgZHJtX21v ZGVfZGVzdHJveV9kdW1iKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBoYW5kbGUsCj4gKwkJ CSAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4gK3sKPiArCWlmICghZGV2LT5kcml2ZXIt PmR1bWJfY3JlYXRlKQo+ICsJCXJldHVybiAtRU5PU1lTOwo+ICsKPiArCWlmIChkZXYtPmRyaXZl ci0+ZHVtYl9kZXN0cm95KQo+ICsJCXJldHVybiBkZXYtPmRyaXZlci0+ZHVtYl9kZXN0cm95KGZp bGVfcHJpdiwgZGV2LCBoYW5kbGUpOwo+ICsJZWxzZQo+ICsJCXJldHVybiBkcm1fZ2VtX2R1bWJf ZGVzdHJveShmaWxlX3ByaXYsIGRldiwgaGFuZGxlKTsKPiArfQo+ICsKPiAgaW50IGRybV9tb2Rl X2Rlc3Ryb3lfZHVtYl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQkJdm9pZCAq ZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4gIHsKPiAgCXN0cnVjdCBkcm1fbW9k ZV9kZXN0cm95X2R1bWIgKmFyZ3MgPSBkYXRhOwo+ICAKPiAtCWlmICghZGV2LT5kcml2ZXItPmR1 bWJfY3JlYXRlKQo+IC0JCXJldHVybiAtRU5PU1lTOwo+IC0KPiAtCWlmIChkZXYtPmRyaXZlci0+ ZHVtYl9kZXN0cm95KQo+IC0JCXJldHVybiBkZXYtPmRyaXZlci0+ZHVtYl9kZXN0cm95KGZpbGVf cHJpdiwgZGV2LCBhcmdzLT5oYW5kbGUpOwo+IC0JZWxzZQo+IC0JCXJldHVybiBkcm1fZ2VtX2R1 bWJfZGVzdHJveShmaWxlX3ByaXYsIGRldiwgYXJncy0+aGFuZGxlKTsKPiArCXJldHVybiBkcm1f bW9kZV9kZXN0cm95X2R1bWIoZGV2LCBhcmdzLT5oYW5kbGUsIGZpbGVfcHJpdik7Cj4gIH0KPiAt Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwo+IGluZGV4IDhjNGQzMmFkY2MxNy4uMTY3Njll NGRiNWMwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYwo+IEBAIC0xMjUsNyArMTI1 LDcgQEAgaW50IGRybV9tb2RlX2FkZGZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAkgICAg ZGV2LT5kcml2ZXItPmRyaXZlcl9mZWF0dXJlcyAmIERSSVZFUl9QUkVGRVJfWEJHUl8zMEJQUCkK PiAgCQlyLnBpeGVsX2Zvcm1hdCA9IERSTV9GT1JNQVRfWEJHUjIxMDEwMTA7Cj4gIAo+IC0JcmV0 ID0gZHJtX21vZGVfYWRkZmIyKGRldiwgJnIsIGZpbGVfcHJpdik7Cj4gKwlyZXQgPSBkcm1fbW9k ZV9hZGRmYjJfaW9jdGwoZGV2LCAmciwgZmlsZV9wcml2KTsKPiAgCWlmIChyZXQpCj4gIAkJcmV0 dXJuIHJldDsKPiAgCj4gQEAgLTMxMCwyMyArMzEwLDIzIEBAIGRybV9pbnRlcm5hbF9mcmFtZWJ1 ZmZlcl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCj4gIC8qKgo+ICAgKiBkcm1f bW9kZV9hZGRmYjIgLSBhZGQgYW4gRkIgdG8gdGhlIGdyYXBoaWNzIGNvbmZpZ3VyYXRpb24KPiAt ICogQGRldjogZHJtIGRldmljZSBmb3IgdGhlIGlvY3RsCj4gLSAqIEBkYXRhOiBkYXRhIHBvaW50 ZXIgZm9yIHRoZSBpb2N0bAo+IC0gKiBAZmlsZV9wcml2OiBkcm0gZmlsZSBmb3IgdGhlIGlvY3Rs IGNhbGwKPiArICogQGRldjogZHJtIGRldmljZQo+ICsgKiBAcjogcG9pbnRlciB0byByZXF1ZXN0 IHN0cnVjdHVyZQo+ICsgKiBAZmlsZV9wcml2OiBkcm0gZmlsZQo+ICsgKiBAY29tbTogb3B0aW9u YWxseSBvdmVycmlkZSB0aGUgYWxsb2NhdG9yIG5hbWUgdXNlZCBmb3IgZGVidWcgb3V0cHV0Cj4g ICAqCj4gICAqIEFkZCBhIG5ldyBGQiB0byB0aGUgc3BlY2lmaWVkIENSVEMsIGdpdmVuIGEgdXNl ciByZXF1ZXN0IHdpdGggZm9ybWF0LiBUaGlzIGlzCj4gICAqIHRoZSAybmQgdmVyc2lvbiBvZiB0 aGUgYWRkZmIgaW9jdGwsIHdoaWNoIHN1cHBvcnRzIG11bHRpLXBsYW5hciBmcmFtZWJ1ZmZlcnMK PiAgICogYW5kIHVzZXMgZm91cmNjIGNvZGVzIGFzIHBpeGVsIGZvcm1hdCBzcGVjaWZpZXJzLgo+ ICAgKgo+IC0gKiBDYWxsZWQgYnkgdGhlIHVzZXIgdmlhIGlvY3RsLgo+ICsgKiBDYWxsZWQgYnkg dGhlIHVzZXIgdmlhIGlvY3RsLCBvciBieSBhbiBpbi1rZXJuZWwgY2xpZW50Lgo+ICAgKgo+ICAg KiBSZXR1cm5zOgo+ICAgKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm5vIG9uIGZhaWx1 cmUuCj4gICAqLwo+IC1pbnQgZHJtX21vZGVfYWRkZmIyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gLQkJICAgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQo+ICtpbnQg ZHJtX21vZGVfYWRkZmIyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fbW9kZV9m Yl9jbWQyICpyLAo+ICsJCSAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwgY29uc3QgY2hh ciAqY29tbSkKCkFQSSBiaWtlc2hlZDogSSdkIGRyb3AgdGhlIDIgKGl0J3Mgbm90IHJlbGV2YW50 IGZvciBpbi1rZXJuZWwgdXNlcnMpLCBhbmQKbWF5YmUgcmV0dXJuIHRoZSBoYW5kbGUgcmlnaHQg YXdheSB0byBhdm9pZCBjYWxsZXJzIGhhdmluZyB0byBkbyBzaWxseQpzdHVmZj8gSWYgdGhlIHJl dHVybiB2YWx1ZSBpcyAwLCB0aGVuIHNvbWV0aGluZyBmYWlsZWQuCgpDb3VsZCBldmVuIG1ha2Ug QHIgY29uc3QsIGlmIHdlIGRvIGEgcXVpY2sgb24tc3RhY2sgY29weSB0byByZWluZm9yY2UgdGhh dAppZGVhLgoKQnV0IGZlZWwgZnJlZSB0byBpZ25vcmUsIHByb2JhYmx5IG5vdCBtYWtpbmcgdGhp bmdzIGJldHRlciBoZXJlIDotKQoKPiAgewo+IC0Jc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKnIg PSBkYXRhOwo+ICAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmI7Cj4gIAo+ICAJaWYgKCFkcm1f Y29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX01PREVTRVQpKQo+IEBAIC0zMzYsNiArMzM2 LDkgQEAgaW50IGRybV9tb2RlX2FkZGZiMihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJaWYg KElTX0VSUihmYikpCj4gIAkJcmV0dXJuIFBUUl9FUlIoZmIpOwo+ICAKPiArCWlmIChjb21tKQo+ ICsJCXN0cnNjcHkoZmItPmNvbW0sIGNvbW0sIFRBU0tfQ09NTV9MRU4pOwo+ICsKPiAgCURSTV9E RUJVR19LTVMoIltGQjolZF1cbiIsIGZiLT5iYXNlLmlkKTsKPiAgCXItPmZiX2lkID0gZmItPmJh c2UuaWQ7Cj4gIAo+IEBAIC0zNDcsNiArMzUwLDEyIEBAIGludCBkcm1fbW9kZV9hZGRmYjIoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+ICtpbnQgZHJtX21v ZGVfYWRkZmIyX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJCSAgdm9pZCAqZGF0 YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4gK3sKPiArCXJldHVybiBkcm1fbW9kZV9h ZGRmYjIoZGV2LCBkYXRhLCBmaWxlX3ByaXYsIE5VTEwpOwo+ICt9Cj4gKwo+ICBzdHJ1Y3QgZHJt X21vZGVfcm1mYl93b3JrIHsKPiAgCXN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOwo+ICAJc3RydWN0 IGxpc3RfaGVhZCBmYnM7Cj4gQEAgLTM2NywyOSArMzc2LDI4IEBAIHN0YXRpYyB2b2lkIGRybV9t b2RlX3JtZmJfd29ya19mbihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKncpCj4gIAo+ICAvKioKPiAgICog ZHJtX21vZGVfcm1mYiAtIHJlbW92ZSBhbiBGQiBmcm9tIHRoZSBjb25maWd1cmF0aW9uCj4gLSAq IEBkZXY6IGRybSBkZXZpY2UgZm9yIHRoZSBpb2N0bAo+IC0gKiBAZGF0YTogZGF0YSBwb2ludGVy IGZvciB0aGUgaW9jdGwKPiAtICogQGZpbGVfcHJpdjogZHJtIGZpbGUgZm9yIHRoZSBpb2N0bCBj YWxsCj4gKyAqIEBkZXY6IGRybSBkZXZpY2UKPiArICogQGZiX2lkOiBpZCBvZiBmcmFtZWJ1ZmZl ciB0byByZW1vdmUKPiArICogQGZpbGVfcHJpdjogZHJtIGZpbGUKPiAgICoKPiAtICogUmVtb3Zl IHRoZSBGQiBzcGVjaWZpZWQgYnkgdGhlIHVzZXIuCj4gKyAqIFJlbW92ZSB0aGUgc3BlY2lmaWVk IEZCLgo+ICAgKgo+IC0gKiBDYWxsZWQgYnkgdGhlIHVzZXIgdmlhIGlvY3RsLgo+ICsgKiBDYWxs ZWQgYnkgdGhlIHVzZXIgdmlhIGlvY3RsLCBvciBieSBhbiBpbi1rZXJuZWwgY2xpZW50Lgo+ICAg Kgo+ICAgKiBSZXR1cm5zOgo+ICAgKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm5vIG9u IGZhaWx1cmUuCj4gICAqLwo+IC1pbnQgZHJtX21vZGVfcm1mYihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAo+IC0JCSAgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQo+ICtp bnQgZHJtX21vZGVfcm1mYihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgZmJfaWQsCj4gKwkJ ICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKPiAgewo+ICAJc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIgPSBOVUxMOwo+ICAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmJsID0gTlVMTDsK PiAtCXVpbnQzMl90ICppZCA9IGRhdGE7Cj4gIAlpbnQgZm91bmQgPSAwOwo+ICAKPiAgCWlmICgh ZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9NT0RFU0VUKSkKPiAgCQlyZXR1cm4g LUVJTlZBTDsKPiAgCj4gLQlmYiA9IGRybV9mcmFtZWJ1ZmZlcl9sb29rdXAoZGV2LCBmaWxlX3By aXYsICppZCk7Cj4gKwlmYiA9IGRybV9mcmFtZWJ1ZmZlcl9sb29rdXAoZGV2LCBmaWxlX3ByaXYs IGZiX2lkKTsKPiAgCWlmICghZmIpCj4gIAkJcmV0dXJuIC1FTk9FTlQ7Cj4gIAo+IEBAIC00MzUs NiArNDQzLDE0IEBAIGludCBkcm1fbW9kZV9ybWZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g IAlyZXR1cm4gLUVOT0VOVDsKPiAgfQo+ICAKPiAraW50IGRybV9tb2RlX3JtZmJfaW9jdGwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkJdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpm aWxlX3ByaXYpCj4gK3sKPiArCXVpbnQzMl90ICpmYl9pZCA9IGRhdGE7Cj4gKwo+ICsJcmV0dXJu IGRybV9tb2RlX3JtZmIoZGV2LCAqZmJfaWQsIGZpbGVfcHJpdik7Cj4gK30KPiArCj4gIC8qKgo+ ICAgKiBkcm1fbW9kZV9nZXRmYiAtIGdldCBGQiBpbmZvCj4gICAqIEBkZXY6IGRybSBkZXZpY2Ug Zm9yIHRoZSBpb2N0bAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFs LmggYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKPiBpbmRleCA0MDE3OWM1ZmM2Yjgu LjNmNWQ3NzA2YmNjOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFs LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmgKPiBAQCAtMzcsNiArMzcs OSBAQCB2b2lkIGRybV9wY2lfYWdwX2Rlc3Ryb3koc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4g IGludCBkcm1fcGNpX3NldF9idXNpZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJt X21hc3RlciAqbWFzdGVyKTsKPiAgCj4gIC8qIGRybV9wcmltZS5jICovCj4gK2ludCBkcm1fcHJp bWVfaGFuZGxlX3RvX2ZkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJCSAgIHN0cnVjdCBk cm1fcHJpbWVfaGFuZGxlICphcmdzLAo+ICsJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJp dik7Cj4gIGludCBkcm1fcHJpbWVfaGFuZGxlX3RvX2ZkX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHZvaWQgKmRhdGEsCj4gIAkJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwo+ ICBpbnQgZHJtX3ByaW1lX2ZkX3RvX2hhbmRsZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvYzMyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvYzMyLmMKPiBpbmRleCBmOGU5NmU2NDhhY2YuLjU3NmQw MGI3ZGFkNSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvYzMyLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvYzMyLmMKPiBAQCAtODg0LDcgKzg4NCw3IEBAIHN0YXRp YyBpbnQgY29tcGF0X2RybV9tb2RlX2FkZGZiMihzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQg aW50IGNtZCwKPiAgCQkJICAgc2l6ZW9mKHJlcTY0Lm1vZGlmaWVyKSkpCj4gIAkJcmV0dXJuIC1F RkFVTFQ7Cj4gIAo+IC0JZXJyID0gZHJtX2lvY3RsX2tlcm5lbChmaWxlLCBkcm1fbW9kZV9hZGRm YjIsICZyZXE2NCwKPiArCWVyciA9IGRybV9pb2N0bF9rZXJuZWwoZmlsZSwgZHJtX21vZGVfYWRk ZmIyX2lvY3RsLCAmcmVxNjQsCj4gIAkJCQlEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQp Owo+ICAJaWYgKGVycikKPiAgCQlyZXR1cm4gZXJyOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2lvY3RsLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKPiBpbmRleCBh Zjc4MjkxMWM1MDUuLmM2OWZkYTVkMzg3NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v ZHJtX2lvY3RsLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKPiBAQCAtNjM1 LDggKzYzNSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgZHJtX2lvY3Rs c1tdID0gewo+ICAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9HRVRQUk9QQkxPQiwgZHJt X21vZGVfZ2V0YmxvYl9pb2N0bCwgRFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKPiAg CURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfR0VURkIsIGRybV9tb2RlX2dldGZiLCBEUk1f Q09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAo+ICAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExf TU9ERV9BRERGQiwgZHJtX21vZGVfYWRkZmIsIERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxPQ0tF RCksCj4gLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0FEREZCMiwgZHJtX21vZGVfYWRk ZmIyLCBEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAo+IC0JRFJNX0lPQ1RMX0RFRihE Uk1fSU9DVExfTU9ERV9STUZCLCBkcm1fbW9kZV9ybWZiLCBEUk1fQ09OVFJPTF9BTExPV3xEUk1f VU5MT0NLRUQpLAo+ICsJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9BRERGQjIsIGRybV9t b2RlX2FkZGZiMl9pb2N0bCwgRFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKPiArCURS TV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfUk1GQiwgZHJtX21vZGVfcm1mYl9pb2N0bCwgRFJN X0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKPiAgCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RM X01PREVfUEFHRV9GTElQLCBkcm1fbW9kZV9wYWdlX2ZsaXBfaW9jdGwsIERSTV9NQVNURVJ8RFJN X0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKPiAgCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RM X01PREVfRElSVFlGQiwgZHJtX21vZGVfZGlydHlmYl9pb2N0bCwgRFJNX01BU1RFUnxEUk1fQ09O VFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAo+ICAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9E RV9DUkVBVEVfRFVNQiwgZHJtX21vZGVfY3JlYXRlX2R1bWJfaW9jdGwsIERSTV9DT05UUk9MX0FM TE9XfERSTV9VTkxPQ0tFRCksCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJp bWUuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYwo+IGluZGV4IGNhZjY3NWUzZTY5Mi4u ZTYwNTJhYjJiZWM0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYwo+IEBAIC04NjYsMTEgKzg2NiwxMCBA QCBpbnQgZHJtX2dlbV9wcmltZV9mZF90b19oYW5kbGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK Ckxpa2Ugd2l0aCB0aGUgZHVtYiBpb2N0bHMgeW91IHByb2JhYmx5IHdhbnQgdG8gdW53cmFwIHRo aXMgc29tZSBtb3JlIGhlcmUKZm9yIHRoZSBwcmltZSBzdHVmZi4gSSBkb24ndCB0aGluayB5b3Ug d2FudCB0aGUgYWN0dWFsIGZkLCBidXQganVzdCB0aGUKdW5kZXJseWluZyBzdHJ1Y3QgZG1hX2J1 Zi4KClVuZm9ydHVuYXRlbHkgdGhpcyBtZWFucyBhIGJpdCBvZiByZXdvcmssIHNpbmNlIGF0bSB0 aGUKZHJtX2RyaXZlci0+aGFuZGxlX3RvX2ZkIGFsc28gZ2l2ZXMgdXMgdGhlIGZkLCBub3QgdGhl IGRtYV9idWYuIEhlcmUncwp3aGF0IHdlIG5lZWQgKGFzc3VtaW5nIHdlIHJlYWxseSBuZWVkIHN0 cnVjdCBkbWFfYnVmLCBhbmQgbm90IGp1c3QgYSBnZW0KYm8sIHdoaWNoIGlzIG11Y2ggZWFzaWVy IHRvIGdldCBhdCk6CgotIENoYW5nZSB0aGUgZHJtX2RyaXZlci0+aGFuZGxlX3RvX2ZkIGludGVy ZmFjZSB0byBoYW5kbGVfdG9fZG1hX2J1ZiwgYW5kCiAgcHV0IHRoZSBmaW5hbCBkbWFfYnVmX2Zk IGludG8gZHJtX3ByaW1lX2hhbmRsZV90b19mZF9pb2N0bC4gU2luY2UKICBkbWFfYnVmX2ZkIHNo b3VsZCBhbHJlYWR5IGJlIHRoZSB2ZXJ5IGxhc3Qgc3RlcCAob3RoZXJ3aXNlIGFuCiAgaW1wbGVt ZW50YXRpb24gaXMgbW9zdCBsaWtlbHkgYnVnZ3kpIHRoaXMgc2hvdWxkbid0IGJlIGEgaHVnZSBz dGVwLgoKICBJZiBkbWFfYnVmX2ZkIGZhaWxzLCB0aGVuIHdlIGp1c3QgZG8gYSBkbWFfYnV0X3B1 dCAoYWthIHRoZQogIC0+aGFuZGxlX3RvX2RtYV9idWYgY2FsbGJhY2sgbmVlZHMgdG8gZ2l2ZSB1 cyBhIHJlZmVyZW5jZSB3ZSBjYW4gdXNlKS4KCi0gRm9yIHRoZSBpbnRlcm5hbCBmdW5jdGlvbiBq dXN0IGNhbGwgLT5oYW5kbGVfdG9fZG1hYnVmIGRpcmVjdGx5LCBidXQKICBkb24ndCBjb252ZXJ0 IHRvIGFuIGZkLgoKLSBTaW1pbGFyIGZvciB0aGUgb3RoZXIgZGlyZWN0aW9uLiBCdXQgSSB0aGlu ayB3ZSBkb24ndCByZWFsbHkgbmVlZCB0aGF0OgogIFdlIHN0YXJ0IHdpdGggdGhlIGhhbmRsZSBm cm9tIHRoZSBkdW1iIGFwaSwgZ29pbmcgYmFjayB0byB0aGUgaGFuZGxlCiAgc2hvdWxkbid0IGV2 ZXIgYmUgbmVlZGVkLiBQcm9iYWJseSBiZXN0IHRvIGp1c3QgcmVtb3ZlIHRoYXQuCgpXZSBjYW4n dCBqdXN0IGNyZWF0ZSBmaWxlLWRlc2NyaXB0b3JzIGluIHJhbmRvbSBjYWxsaW5nIGNvbnRleHQg KHVzZXJzcGFjZQptaWdodCBnZXQgdXBzZXQsIG5vIGlkZWEgd2hhdCBoYXBwZW5zIGZyb20ga2Vy bmVsIHRocmVhZHMpLgoKVGhlIGR1bWIgYnVmZmVyIGludGVybmFsIGludGVyZmFjZXMgbGd0bS4K LURhbmllbAoKCj4gIH0KPiAgRVhQT1JUX1NZTUJPTChkcm1fZ2VtX3ByaW1lX2ZkX3RvX2hhbmRs ZSk7Cj4gIAo+IC1pbnQgZHJtX3ByaW1lX2hhbmRsZV90b19mZF9pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAo+IC0JCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2 KQo+ICtpbnQgZHJtX3ByaW1lX2hhbmRsZV90b19mZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ICsJCQkgICBzdHJ1Y3QgZHJtX3ByaW1lX2hhbmRsZSAqYXJncywKPiArCQkJICAgc3RydWN0IGRy bV9maWxlICpmaWxlX3ByaXYpCj4gIHsKPiAtCXN0cnVjdCBkcm1fcHJpbWVfaGFuZGxlICphcmdz ID0gZGF0YTsKPiAtCj4gIAlpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJf UFJJTUUpKQo+ICAJCXJldHVybiAtRUlOVkFMOwo+ICAKPiBAQCAtODg1LDYgKzg4NCwxMiBAQCBp bnQgZHJtX3ByaW1lX2hhbmRsZV90b19mZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLAo+ICAJCQlhcmdzLT5oYW5kbGUsIGFyZ3MtPmZsYWdzLCAmYXJncy0+ZmQpOwo+ ICB9Cj4gIAo+ICtpbnQgZHJtX3ByaW1lX2hhbmRsZV90b19mZF9pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICsJCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2 KQo+ICt7Cj4gKwlyZXR1cm4gZHJtX3ByaW1lX2hhbmRsZV90b19mZChkZXYsIGRhdGEsIGZpbGVf cHJpdik7Cj4gK30KPiArCj4gIGludCBkcm1fcHJpbWVfZmRfdG9faGFuZGxlX2lvY3RsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gIAkJCQkgc3RydWN0IGRybV9maWxlICpm aWxlX3ByaXYpCj4gIHsKPiAtLSAKPiAyLjE1LjEKPiAKPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiBkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJl IEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK