From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [RFC v3 04/12] drm: Make ioctls available for in-kernel clients part 2 Date: Thu, 22 Feb 2018 21:06:45 +0100 Message-ID: <20180222200653.19453-5-noralf@tronnes.org> References: <20180222200653.19453-1-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180222200653.19453-1-noralf@tronnes.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, laurent.pinchart@ideasonboard.com List-Id: intel-gfx@lists.freedesktop.org VGhpcyBpcyBwYXJ0IDIgb2YgbWFraW5nIGlvY3RscyB1c2VhYmxlIGZvciBpbi1rZXJuZWwgY2xp ZW50cy4KTWFrZSBhbiBpb2N0bCB3cmFwcGVyIGZ1bmN0aW9uIHRoYXQgY2FsbHMgYSBmdW5jdGlv biB0aGF0IGNhbiBiZSB1c2VkIGJ5CmluLWtlcm5lbCBjbGllbnRzLgoKSXQgYWRqdXN0cyB0aGUg c2lnbmF0dXJlIG9mIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zOgotIGRybV9tb2RlX2dldGNydGMo KQotIGRybV9tb2RlX2NyZWF0ZV9kdW1iX2lvY3RsKCkKLSBkcm1fbW9kZV9kZXN0cm95X2R1bWJf aW9jdGwoKQotIGRybV9tb2RlX2dldGVuY29kZXIoKQotIGRybV9tb2RlX2FkZGZiMigpCi0gZHJt X21vZGVfcm1mYigpCi0gZHJtX21vZGVfb2JqX3NldF9wcm9wZXJ0eV9pb2N0bCgpCi0gZHJtX21v ZGVfcGFnZV9mbGlwX2lvY3RsKCkKLSBkcm1fcHJpbWVfaGFuZGxlX3RvX2ZkX2lvY3RsKCkKLSBk cm1fd2FpdF92YmxhbmtfaW9jdGwoKQoKZHJtX21vZGVfYWRkZmIyKCkgYWxzbyBnZXRzIHRoZSBh YmlsaXR5IHRvIG92ZXJyaWRlIHRoZSBkZWJ1ZyBuYW1lLgoKVGhlcmUgaXMgbm8gZnVuY3Rpb25h bCBjaGFuZ2UgZnJvbSB0aGUgdXNlcnNwYWNlIHNpZGUuCgpTaWduZWQtb2ZmLWJ5OiBOb3JhbGYg VHLDuG5uZXMgPG5vcmFsZkB0cm9ubmVzLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2Ny dGMuYyAgICAgICAgICB8IDE1ICsrKysrKystLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNf aW50ZXJuYWwuaCB8IDM3ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogZHJpdmVycy9ncHUv ZHJtL2RybV9kdW1iX2J1ZmZlcnMuYyAgfCAzMyArKysrKysrKysrKysrKysrLS0tLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS9kcm1fZW5jb2Rlci5jICAgICAgIHwgMTAgKysrKysrLS0KIGRyaXZlcnMv Z3B1L2RybS9kcm1fZnJhbWVidWZmZXIuYyAgIHwgNTAgKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oICAgICAgfCAgNSAr KysrCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2lvYzMyLmMgICAgICAgICB8ICAyICstCiBkcml2ZXJz L2dwdS9kcm0vZHJtX2lvY3RsLmMgICAgICAgICB8ICA4ICsrKy0tLQogZHJpdmVycy9ncHUvZHJt L2RybV9tb2RlX29iamVjdC5jICAgfCAxMiArKysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1f cGxhbmUuYyAgICAgICAgIHwgMTIgKysrKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1l LmMgICAgICAgICB8IDEzICsrKysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMg ICAgICAgIHwgMTEgKysrKystLS0KIDEyIGZpbGVzIGNoYW5nZWQsIDE0NyBpbnNlcnRpb25zKCsp LCA2MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMu YyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCmluZGV4IGM5YWIxY2M2YjQxMi4uNjFhNmE5 MGZhZTdlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwpAQCAtMzg3LDggKzM4Nyw4IEBAIEVYUE9SVF9TWU1CT0wo ZHJtX2NydGNfY2xlYW51cCk7CiAvKioKICAqIGRybV9tb2RlX2dldGNydGMgLSBnZXQgQ1JUQyBj b25maWd1cmF0aW9uCiAgKiBAZGV2OiBkcm0gZGV2aWNlIGZvciB0aGUgaW9jdGwKLSAqIEBkYXRh OiBkYXRhIHBvaW50ZXIgZm9yIHRoZSBpb2N0bAotICogQGZpbGVfcHJpdjogZHJtIGZpbGUgZm9y IHRoZSBpb2N0bCBjYWxsCisgKiBAY3J0Y19yZXNwOiBwb2ludGVyIHRvIGNydGMgcmVxdWVzdCBz dHJ1Y3R1cmUKKyAqIEBmaWxlX3ByaXY6IGRybSBmaWxlCiAgKgogICogQ29uc3RydWN0IGEgQ1JU QyBjb25maWd1cmF0aW9uIHN0cnVjdHVyZSB0byByZXR1cm4gdG8gdGhlIHVzZXIuCiAgKgpAQCAt Mzk3LDEwICszOTcsOSBAQCBFWFBPUlRfU1lNQk9MKGRybV9jcnRjX2NsZWFudXApOwogICogUmV0 dXJuczoKICAqIFplcm8gb24gc3VjY2VzcywgbmVnYXRpdmUgZXJybm8gb24gZmFpbHVyZS4KICAq LwotaW50IGRybV9tb2RlX2dldGNydGMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJICAgICB2 b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK2ludCBkcm1fbW9kZV9nZXRj cnRjKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fbW9kZV9jcnRjICpjcnRjX3Jl c3AsCisJCSAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCiB7Ci0Jc3RydWN0IGRybV9t b2RlX2NydGMgKmNydGNfcmVzcCA9IGRhdGE7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjOwogCiAJ aWYgKCFkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX01PREVTRVQpKQpAQCAtNDUx LDYgKzQ1MCwxMiBAQCBpbnQgZHJtX21vZGVfZ2V0Y3J0YyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCXJldHVybiAwOwogfQogCitpbnQgZHJtX21vZGVfZ2V0Y3J0Y19pb2N0bChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAorCQkJICAgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYpCit7CisJcmV0dXJuIGRybV9tb2RlX2dldGNydGMoZGV2LCBkYXRhLCBmaWxlX3ByaXYpOwor fQorCiBzdGF0aWMgaW50IF9fZHJtX21vZGVfc2V0X2NvbmZpZ19pbnRlcm5hbChzdHJ1Y3QgZHJt X21vZGVfc2V0ICpzZXQsCiAJCQkJCSAgc3RydWN0IGRybV9tb2Rlc2V0X2FjcXVpcmVfY3R4ICpj dHgpCiB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaW50ZXJuYWwuaCBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19pbnRlcm5hbC5oCmluZGV4IDI5YzU5Y2U3ZTU2ZS4u NDU3MTNhZjVhMDE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaW50ZXJu YWwuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaW50ZXJuYWwuaApAQCAtNDUsMTIg KzQ1LDE0IEBAIHZvaWQgZHJtX2NydGNfdW5yZWdpc3Rlcl9hbGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldik7CiAKIHN0cnVjdCBkbWFfZmVuY2UgKmRybV9jcnRjX2NyZWF0ZV9mZW5jZShzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpOwogCitpbnQgZHJtX21vZGVfZ2V0Y3J0YyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBzdHJ1Y3QgZHJtX21vZGVfY3J0YyAqY3J0Y19yZXNwLAorCQkgICAgIHN0cnVjdCBk cm1fZmlsZSAqZmlsZV9wcml2KTsKIGludCBkcm1fbW9kZV9zZXRjcnRjKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsIHN0cnVjdCBkcm1fbW9kZV9jcnRjICpjcnRjX3JlcSwKIAkJICAgICBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGVfcHJpdiwgYm9vbCB1c2VyKTsKIAogLyogSU9DVExzICovCi1pbnQgZHJt X21vZGVfZ2V0Y3J0YyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkgICAgIHZvaWQgKmRhdGEs IHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2ludCBkcm1fbW9kZV9nZXRjcnRjX2lvY3Rs KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkgICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGVfcHJpdik7CiBpbnQgZHJtX21vZGVfc2V0Y3J0Y19pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCQkJICAgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYp OwogCkBAIC02OCw2ICs3MCwxMiBAQCBpbnQgZHJtX21vZGVfZ2V0cmVzb3VyY2VzX2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAKIAogLyogZHJtX2R1bWJfYnVmZmVy cy5jICovCitpbnQgZHJtX21vZGVfY3JlYXRlX2R1bWIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK KwkJCSBzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIgKmFyZ3MsCisJCQkgc3RydWN0IGRybV9m aWxlICpmaWxlX3ByaXYpOworaW50IGRybV9tb2RlX2Rlc3Ryb3lfZHVtYihzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB1MzIgaGFuZGxlLAorCQkJICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7 CisKIC8qIElPQ1RMcyAqLwogaW50IGRybV9tb2RlX2NyZWF0ZV9kdW1iX2lvY3RsKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCiAJCQkgICAgICAgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpm aWxlX3ByaXYpOwpAQCAtMTIyLDYgKzEzMCw5IEBAIGludCBkcm1fbW9kZV9vYmplY3RfZ2V0X3By b3BlcnRpZXMoc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqLCBib29sIGF0b21pYywKIAkJCQkg ICB1aW50MzJfdCAqYXJnX2NvdW50X3Byb3BzKTsKIHN0cnVjdCBkcm1fcHJvcGVydHkgKmRybV9t b2RlX29ial9maW5kX3Byb3BfaWQoc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqLAogCQkJCQkg ICAgICAgdWludDMyX3QgcHJvcF9pZCk7CitpbnQgZHJtX21vZGVfb2JqX3NldF9wcm9wZXJ0eShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJICAgICAgc3RydWN0IGRybV9tb2RlX29ial9zZXRf cHJvcGVydHkgKmFyZywKKwkJCSAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKIAog LyogSU9DVEwgKi8KIApAQCAtMTMzLDEwICsxNDQsMTMgQEAgaW50IGRybV9tb2RlX29ial9zZXRf cHJvcGVydHlfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIC8qIGRy bV9lbmNvZGVyLmMgKi8KIGludCBkcm1fZW5jb2Rlcl9yZWdpc3Rlcl9hbGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldik7CiB2b2lkIGRybV9lbmNvZGVyX3VucmVnaXN0ZXJfYWxsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpOworaW50IGRybV9tb2RlX2dldGVuY29kZXIoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKKwkJCXN0cnVjdCBkcm1fbW9kZV9nZXRfZW5jb2RlciAqZW5jX3Jlc3AsCisJCQlzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CiAKIC8qIElPQ1RMICovCi1pbnQgZHJtX21vZGVfZ2V0 ZW5jb2RlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJdm9pZCAqZGF0YSwgc3RydWN0IGRy bV9maWxlICpmaWxlX3ByaXYpOworaW50IGRybV9tb2RlX2dldGVuY29kZXJfaW9jdGwoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwKKwkJCSAgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAq ZmlsZV9wcml2KTsKIAogLyogZHJtX2Nvbm5lY3Rvci5jICovCiB2b2lkIGRybV9jb25uZWN0b3Jf aWRhX2luaXQodm9pZCk7CkBAIC0xNzAsMTYgKzE4NCwyMCBAQCBpbnQgZHJtX2ZyYW1lYnVmZmVy X2NoZWNrX3NyY19jb29yZHModWludDMyX3Qgc3JjX3gsIHVpbnQzMl90IHNyY195LAogCQkJCSAg ICAgY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIpOwogdm9pZCBkcm1fZmJfcmVsZWFz ZShzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CiAKK2ludCBkcm1fbW9kZV9hZGRmYjIoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKnIsCisJCSAgICBz dHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdiwgY29uc3QgY2hhciAqY29tbSk7CitpbnQgZHJtX21v ZGVfcm1mYihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgZmJfaWQsCisJCSAgc3RydWN0IGRy bV9maWxlICpmaWxlX3ByaXYpOwogaW50IGRybV9tb2RlX2RpcnR5ZmIoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgc3RydWN0IGRybV9tb2RlX2ZiX2RpcnR5X2NtZCAqcmVxLAogCQkgICAgIHN0cnVj dCBkcm1fZmlsZSAqZmlsZV9wcml2LCBib29sIHVzZXIpOwogCiAvKiBJT0NUTCAqLwogaW50IGRy bV9tb2RlX2FkZGZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCSAgIHZvaWQgKmRhdGEsIHN0 cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKLWludCBkcm1fbW9kZV9hZGRmYjIoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKLQkJICAgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9w cml2KTsKLWludCBkcm1fbW9kZV9ybWZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCSAgdm9p ZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworaW50IGRybV9tb2RlX2FkZGZi Ml9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJICB2b2lkICpkYXRhLCBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGVfcHJpdik7CitpbnQgZHJtX21vZGVfcm1mYl9pb2N0bChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAorCQkJdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYp OwogaW50IGRybV9tb2RlX2dldGZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCSAgIHZvaWQg KmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKIGludCBkcm1fbW9kZV9kaXJ0eWZi X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCkBAIC0yMDksNiArMjI3LDkgQEAgaW50IGRy bV9wbGFuZV9yZWdpc3Rlcl9hbGwoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIGRybV9w bGFuZV91bnJlZ2lzdGVyX2FsbChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIGludCBkcm1fcGxh bmVfY2hlY2tfcGl4ZWxfZm9ybWF0KGNvbnN0IHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJ CSB1MzIgZm9ybWF0KTsKK2ludCBkcm1fbW9kZV9wYWdlX2ZsaXAoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKKwkJICAgICAgIHN0cnVjdCBkcm1fbW9kZV9jcnRjX3BhZ2VfZmxpcF90YXJnZXQgKnBh Z2VfZmxpcCwKKwkJICAgICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKIAogLyogZHJt X2JyaWRnZS5jICovCiB2b2lkIGRybV9icmlkZ2VfZGV0YWNoKHN0cnVjdCBkcm1fYnJpZGdlICpi cmlkZ2UpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9kdW1iX2J1ZmZlcnMuYyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fZHVtYl9idWZmZXJzLmMKaW5kZXggMzlhYzE1Y2U0NzAyLi5l ZWQ5Njg3Yjg2OTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHVtYl9idWZmZXJz LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kdW1iX2J1ZmZlcnMuYwpAQCAtNTMsMTAgKzUz LDEwIEBACiAgKiBhIGhhcmR3YXJlLXNwZWNpZmljIGlvY3RsIHRvIGFsbG9jYXRlIHN1aXRhYmxl IGJ1ZmZlciBvYmplY3RzLgogICovCiAKLWludCBkcm1fbW9kZV9jcmVhdGVfZHVtYl9pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJICAgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1f ZmlsZSAqZmlsZV9wcml2KQoraW50IGRybV9tb2RlX2NyZWF0ZV9kdW1iKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCisJCQkgc3RydWN0IGRybV9tb2RlX2NyZWF0ZV9kdW1iICphcmdzLAorCQkJIHN0 cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQogewotCXN0cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVt YiAqYXJncyA9IGRhdGE7CiAJdTMyIGNwcCwgc3RyaWRlLCBzaXplOwogCiAJaWYgKCFkZXYtPmRy aXZlci0+ZHVtYl9jcmVhdGUpCkBAIC05MSw2ICs5MSwxMiBAQCBpbnQgZHJtX21vZGVfY3JlYXRl X2R1bWJfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlyZXR1cm4gZGV2LT5kcml2ZXIt PmR1bWJfY3JlYXRlKGZpbGVfcHJpdiwgZGV2LCBhcmdzKTsKIH0KIAoraW50IGRybV9tb2RlX2Ny ZWF0ZV9kdW1iX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkgICAgICAgdm9pZCAq ZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJcmV0dXJuIGRybV9tb2RlX2Ny ZWF0ZV9kdW1iKGRldiwgZGF0YSwgZmlsZV9wcml2KTsKK30KKwogLyoqCiAgKiBkcm1fbW9kZV9t bWFwX2R1bWJfaW9jdGwgLSBjcmVhdGUgYW4gbW1hcCBvZmZzZXQgZm9yIGEgZHVtYiBiYWNraW5n IHN0b3JhZ2UgYnVmZmVyCiAgKiBAZGV2OiBEUk0gZGV2aWNlCkBAIC0xMjIsMTcgKzEyOCwyMiBA QCBpbnQgZHJtX21vZGVfbW1hcF9kdW1iX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ CQkJCSAgICAgICAmYXJncy0+b2Zmc2V0KTsKIH0KIAoraW50IGRybV9tb2RlX2Rlc3Ryb3lfZHVt YihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgaGFuZGxlLAorCQkJICBzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGVfcHJpdikKK3sKKwlpZiAoIWRldi0+ZHJpdmVyLT5kdW1iX2NyZWF0ZSkKKwkJcmV0 dXJuIC1FTk9TWVM7CisKKwlpZiAoZGV2LT5kcml2ZXItPmR1bWJfZGVzdHJveSkKKwkJcmV0dXJu IGRldi0+ZHJpdmVyLT5kdW1iX2Rlc3Ryb3koZmlsZV9wcml2LCBkZXYsIGhhbmRsZSk7CisJZWxz ZQorCQlyZXR1cm4gZHJtX2dlbV9kdW1iX2Rlc3Ryb3koZmlsZV9wcml2LCBkZXYsIGhhbmRsZSk7 Cit9CisKIGludCBkcm1fbW9kZV9kZXN0cm95X2R1bWJfaW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIAkJCQl2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKIHsKIAlz dHJ1Y3QgZHJtX21vZGVfZGVzdHJveV9kdW1iICphcmdzID0gZGF0YTsKIAotCWlmICghZGV2LT5k cml2ZXItPmR1bWJfY3JlYXRlKQotCQlyZXR1cm4gLUVOT1NZUzsKLQotCWlmIChkZXYtPmRyaXZl ci0+ZHVtYl9kZXN0cm95KQotCQlyZXR1cm4gZGV2LT5kcml2ZXItPmR1bWJfZGVzdHJveShmaWxl X3ByaXYsIGRldiwgYXJncy0+aGFuZGxlKTsKLQllbHNlCi0JCXJldHVybiBkcm1fZ2VtX2R1bWJf ZGVzdHJveShmaWxlX3ByaXYsIGRldiwgYXJncy0+aGFuZGxlKTsKKwlyZXR1cm4gZHJtX21vZGVf ZGVzdHJveV9kdW1iKGRldiwgYXJncy0+aGFuZGxlLCBmaWxlX3ByaXYpOwogfQotCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VuY29kZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f ZW5jb2Rlci5jCmluZGV4IDI3M2UxYzU5YzU0YS4uNDY2ZjNlMjhiM2U5IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2VuY29kZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Vu Y29kZXIuYwpAQCAtMjE0LDEwICsyMTQsMTAgQEAgc3RhdGljIHN0cnVjdCBkcm1fY3J0YyAqZHJt X2VuY29kZXJfZ2V0X2NydGMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogCXJldHVybiBl bmNvZGVyLT5jcnRjOwogfQogCi1pbnQgZHJtX21vZGVfZ2V0ZW5jb2RlcihzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAoraW50IGRybV9tb2RlX2dldGVuY29kZXIoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKKwkJCXN0cnVjdCBkcm1fbW9kZV9nZXRfZW5jb2RlciAqZW5jX3Jlc3As CiAJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX21vZGVfZ2V0 X2VuY29kZXIgKmVuY19yZXNwID0gZGF0YTsKIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7 CiAJc3RydWN0IGRybV9jcnRjICpjcnRjOwogCkBAIC0yNDQsMyArMjQ0LDkgQEAgaW50IGRybV9t b2RlX2dldGVuY29kZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAogCXJl dHVybiAwOwogfQorCitpbnQgZHJtX21vZGVfZ2V0ZW5jb2Rlcl9pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAorCQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYpCit7CisJcmV0dXJuIGRybV9tb2RlX2dldGVuY29kZXIoZGV2LCBkYXRhLCBmaWxlX3ByaXYp OworfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9mcmFtZWJ1ZmZlci5jIGIvZHJp dmVycy9ncHUvZHJtL2RybV9mcmFtZWJ1ZmZlci5jCmluZGV4IGU5MThjNzEyNGRjZC4uYjQxNzcw ZDI5ZTZjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2RybV9mcmFtZWJ1ZmZlci5jCkBAIC0xMjEsNyArMTIxLDcgQEAg aW50IGRybV9tb2RlX2FkZGZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJci5waXhlbF9mb3Jt YXQgPSBkcm1fbW9kZV9sZWdhY3lfZmJfZm9ybWF0KG9yLT5icHAsIG9yLT5kZXB0aCk7CiAJci5o YW5kbGVzWzBdID0gb3ItPmhhbmRsZTsKIAotCXJldCA9IGRybV9tb2RlX2FkZGZiMihkZXYsICZy LCBmaWxlX3ByaXYpOworCXJldCA9IGRybV9tb2RlX2FkZGZiMl9pb2N0bChkZXYsICZyLCBmaWxl X3ByaXYpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKQEAgLTMwNSwyMyArMzA1LDIzIEBA IGRybV9pbnRlcm5hbF9mcmFtZWJ1ZmZlcl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK IAogLyoqCiAgKiBkcm1fbW9kZV9hZGRmYjIgLSBhZGQgYW4gRkIgdG8gdGhlIGdyYXBoaWNzIGNv bmZpZ3VyYXRpb24KLSAqIEBkZXY6IGRybSBkZXZpY2UgZm9yIHRoZSBpb2N0bAotICogQGRhdGE6 IGRhdGEgcG9pbnRlciBmb3IgdGhlIGlvY3RsCi0gKiBAZmlsZV9wcml2OiBkcm0gZmlsZSBmb3Ig dGhlIGlvY3RsIGNhbGwKKyAqIEBkZXY6IGRybSBkZXZpY2UKKyAqIEByOiBwb2ludGVyIHRvIHJl cXVlc3Qgc3RydWN0dXJlCisgKiBAZmlsZV9wcml2OiBkcm0gZmlsZQorICogQGNvbW06IG9wdGlv bmFsbHkgb3ZlcnJpZGUgdGhlIGFsbG9jYXRvciBuYW1lIHVzZWQgZm9yIGRlYnVnIG91dHB1dAog ICoKICAqIEFkZCBhIG5ldyBGQiB0byB0aGUgc3BlY2lmaWVkIENSVEMsIGdpdmVuIGEgdXNlciBy ZXF1ZXN0IHdpdGggZm9ybWF0LiBUaGlzIGlzCiAgKiB0aGUgMm5kIHZlcnNpb24gb2YgdGhlIGFk ZGZiIGlvY3RsLCB3aGljaCBzdXBwb3J0cyBtdWx0aS1wbGFuYXIgZnJhbWVidWZmZXJzCiAgKiBh bmQgdXNlcyBmb3VyY2MgY29kZXMgYXMgcGl4ZWwgZm9ybWF0IHNwZWNpZmllcnMuCiAgKgotICog Q2FsbGVkIGJ5IHRoZSB1c2VyIHZpYSBpb2N0bC4KKyAqIENhbGxlZCBieSB0aGUgdXNlciB2aWEg aW9jdGwsIG9yIGJ5IGFuIGluLWtlcm5lbCBjbGllbnQuCiAgKgogICogUmV0dXJuczoKICAqIFpl cm8gb24gc3VjY2VzcywgbmVnYXRpdmUgZXJybm8gb24gZmFpbHVyZS4KICAqLwotaW50IGRybV9t b2RlX2FkZGZiMihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkgICAgdm9pZCAqZGF0YSwgc3Ry dWN0IGRybV9maWxlICpmaWxlX3ByaXYpCitpbnQgZHJtX21vZGVfYWRkZmIyKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fbW9kZV9mYl9jbWQyICpyLAorCQkgICAgc3RydWN0IGRy bV9maWxlICpmaWxlX3ByaXYsIGNvbnN0IGNoYXIgKmNvbW0pCiB7Ci0Jc3RydWN0IGRybV9tb2Rl X2ZiX2NtZDIgKnIgPSBkYXRhOwogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOwogCiAJaWYg KCFkcm1fY29yZV9jaGVja19mZWF0dXJlKGRldiwgRFJJVkVSX01PREVTRVQpKQpAQCAtMzMxLDYg KzMzMSw5IEBAIGludCBkcm1fbW9kZV9hZGRmYjIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlp ZiAoSVNfRVJSKGZiKSkKIAkJcmV0dXJuIFBUUl9FUlIoZmIpOwogCisJaWYgKGNvbW0pCisJCXN0 cnNjcHkoZmItPmNvbW0sIGNvbW0sIFRBU0tfQ09NTV9MRU4pOworCiAJRFJNX0RFQlVHX0tNUygi W0ZCOiVkXVxuIiwgZmItPmJhc2UuaWQpOwogCXItPmZiX2lkID0gZmItPmJhc2UuaWQ7CiAKQEAg LTM0Miw2ICszNDUsMTIgQEAgaW50IGRybV9tb2RlX2FkZGZiMihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogCXJldHVybiAwOwogfQogCitpbnQgZHJtX21vZGVfYWRkZmIyX2lvY3RsKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCisJCQkgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9w cml2KQoreworCXJldHVybiBkcm1fbW9kZV9hZGRmYjIoZGV2LCBkYXRhLCBmaWxlX3ByaXYsIE5V TEwpOworfQorCiBzdHJ1Y3QgZHJtX21vZGVfcm1mYl93b3JrIHsKIAlzdHJ1Y3Qgd29ya19zdHJ1 Y3Qgd29yazsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGZiczsKQEAgLTM2MiwyOSArMzcxLDI4IEBAIHN0 YXRpYyB2b2lkIGRybV9tb2RlX3JtZmJfd29ya19mbihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKncpCiAK IC8qKgogICogZHJtX21vZGVfcm1mYiAtIHJlbW92ZSBhbiBGQiBmcm9tIHRoZSBjb25maWd1cmF0 aW9uCi0gKiBAZGV2OiBkcm0gZGV2aWNlIGZvciB0aGUgaW9jdGwKLSAqIEBkYXRhOiBkYXRhIHBv aW50ZXIgZm9yIHRoZSBpb2N0bAotICogQGZpbGVfcHJpdjogZHJtIGZpbGUgZm9yIHRoZSBpb2N0 bCBjYWxsCisgKiBAZGV2OiBkcm0gZGV2aWNlCisgKiBAZmJfaWQ6IGlkIG9mIGZyYW1lYnVmZmVy IHRvIHJlbW92ZQorICogQGZpbGVfcHJpdjogZHJtIGZpbGUKICAqCi0gKiBSZW1vdmUgdGhlIEZC IHNwZWNpZmllZCBieSB0aGUgdXNlci4KKyAqIFJlbW92ZSB0aGUgc3BlY2lmaWVkIEZCLgogICoK LSAqIENhbGxlZCBieSB0aGUgdXNlciB2aWEgaW9jdGwuCisgKiBDYWxsZWQgYnkgdGhlIHVzZXIg dmlhIGlvY3RsLCBvciBieSBhbiBpbi1rZXJuZWwgY2xpZW50LgogICoKICAqIFJldHVybnM6CiAg KiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm5vIG9uIGZhaWx1cmUuCiAgKi8KLWludCBk cm1fbW9kZV9ybWZiKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCi0JCSAgIHZvaWQgKmRhdGEsIHN0 cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoraW50IGRybV9tb2RlX3JtZmIoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdTMyIGZiX2lkLAorCQkgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQog ewogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gTlVMTDsKIAlzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYmwgPSBOVUxMOwotCXVpbnQzMl90ICppZCA9IGRhdGE7CiAJaW50IGZvdW5kID0g MDsKIAogCWlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9NT0RFU0VUKSkK IAkJcmV0dXJuIC1FSU5WQUw7CiAKLQlmYiA9IGRybV9mcmFtZWJ1ZmZlcl9sb29rdXAoZGV2LCBm aWxlX3ByaXYsICppZCk7CisJZmIgPSBkcm1fZnJhbWVidWZmZXJfbG9va3VwKGRldiwgZmlsZV9w cml2LCBmYl9pZCk7CiAJaWYgKCFmYikKIAkJcmV0dXJuIC1FTk9FTlQ7CiAKQEAgLTQzMCw2ICs0 MzgsMTQgQEAgaW50IGRybV9tb2RlX3JtZmIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlyZXR1 cm4gLUVOT0VOVDsKIH0KIAoraW50IGRybV9tb2RlX3JtZmJfaW9jdGwoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKKwkJCXZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQorewor CXVpbnQzMl90ICpmYl9pZCA9IGRhdGE7CisKKwlyZXR1cm4gZHJtX21vZGVfcm1mYihkZXYsICpm Yl9pZCwgZmlsZV9wcml2KTsKK30KKwogLyoqCiAgKiBkcm1fbW9kZV9nZXRmYiAtIGdldCBGQiBp bmZvCiAgKiBAZGV2OiBkcm0gZGV2aWNlIGZvciB0aGUgaW9jdGwKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwu aAppbmRleCA0MDE3OWM1ZmM2YjguLjA0MzgxNGNiZDI4NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2RybV9pbnRlcm5hbC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwu aApAQCAtMzcsNiArMzcsOSBAQCB2b2lkIGRybV9wY2lfYWdwX2Rlc3Ryb3koc3RydWN0IGRybV9k ZXZpY2UgKmRldik7CiBpbnQgZHJtX3BjaV9zZXRfYnVzaWQoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgc3RydWN0IGRybV9tYXN0ZXIgKm1hc3Rlcik7CiAKIC8qIGRybV9wcmltZS5jICovCitpbnQg ZHJtX3ByaW1lX2hhbmRsZV90b19mZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJICAgc3Ry dWN0IGRybV9wcmltZV9oYW5kbGUgKmFyZ3MsCisJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVf cHJpdik7CiBpbnQgZHJtX3ByaW1lX2hhbmRsZV90b19mZF9pb2N0bChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CiBp bnQgZHJtX3ByaW1lX2ZkX3RvX2hhbmRsZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLApAQCAtNTksNiArNjIsOCBAQCBpbnQgZHJtX2dlbV9uYW1lX2luZm8oc3RydWN0 IHNlcV9maWxlICptLCB2b2lkICpkYXRhKTsKIC8qIGRybV92YmxhbmsuYyAqLwogdm9pZCBkcm1f dmJsYW5rX2Rpc2FibGVfYW5kX3NhdmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQg aW50IHBpcGUpOwogdm9pZCBkcm1fdmJsYW5rX2NsZWFudXAoc3RydWN0IGRybV9kZXZpY2UgKmRl dik7CitpbnQgZHJtX3dhaXRfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuaW9uIGRy bV93YWl0X3ZibGFuayAqdmJsd2FpdCwKKwkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2 KTsKIAogLyogSU9DVExTICovCiBpbnQgZHJtX3dhaXRfdmJsYW5rX2lvY3RsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2lvYzMyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvYzMyLmMKaW5kZXggZjhlOTZlNjQ4YWNm Li41NzZkMDBiN2RhZDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jMzIuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvYzMyLmMKQEAgLTg4NCw3ICs4ODQsNyBAQCBzdGF0 aWMgaW50IGNvbXBhdF9kcm1fbW9kZV9hZGRmYjIoc3RydWN0IGZpbGUgKmZpbGUsIHVuc2lnbmVk IGludCBjbWQsCiAJCQkgICBzaXplb2YocmVxNjQubW9kaWZpZXIpKSkKIAkJcmV0dXJuIC1FRkFV TFQ7CiAKLQllcnIgPSBkcm1faW9jdGxfa2VybmVsKGZpbGUsIGRybV9tb2RlX2FkZGZiMiwgJnJl cTY0LAorCWVyciA9IGRybV9pb2N0bF9rZXJuZWwoZmlsZSwgZHJtX21vZGVfYWRkZmIyX2lvY3Rs LCAmcmVxNjQsCiAJCQkJRFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKTsKIAlpZiAoZXJy KQogCQlyZXR1cm4gZXJyOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5j IGIvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCmluZGV4IDM0NmI4MDYwZGY3Yy4uNzI2ZmJk YjhhNGIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2RybV9pb2N0bC5jCkBAIC02MTksMTQgKzYxOSwxNCBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IGRybV9pb2N0bF9kZXNjIGRybV9pb2N0bHNbXSA9IHsKIAlEUk1fSU9DVExfREVG KERSTV9JT0NUTF9QUklNRV9GRF9UT19IQU5ETEUsIGRybV9wcmltZV9mZF90b19oYW5kbGVfaW9j dGwsIERSTV9BVVRIfERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKIAogCURSTV9JT0NU TF9ERUYoRFJNX0lPQ1RMX01PREVfR0VUUExBTkVSRVNPVVJDRVMsIGRybV9tb2RlX2dldHBsYW5l X3JlcywgRFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKLQlEUk1fSU9DVExfREVGKERS TV9JT0NUTF9NT0RFX0dFVENSVEMsIGRybV9tb2RlX2dldGNydGMsIERSTV9DT05UUk9MX0FMTE9X fERSTV9VTkxPQ0tFRCksCisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9HRVRDUlRDLCBk cm1fbW9kZV9nZXRjcnRjX2lvY3RsLCBEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAog CURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfU0VUQ1JUQywgZHJtX21vZGVfc2V0Y3J0Y19p b2N0bCwgRFJNX01BU1RFUnxEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAogCURSTV9J T0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfR0VUUExBTkUsIGRybV9tb2RlX2dldHBsYW5lLCBEUk1f Q09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01P REVfU0VUUExBTkUsIGRybV9tb2RlX3NldHBsYW5lLCBEUk1fTUFTVEVSfERSTV9DT05UUk9MX0FM TE9XfERSTV9VTkxPQ0tFRCksCiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9DVVJTT1Is IGRybV9tb2RlX2N1cnNvcl9pb2N0bCwgRFJNX01BU1RFUnxEUk1fQ09OVFJPTF9BTExPV3xEUk1f VU5MT0NLRUQpLAogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfR0VUR0FNTUEsIGRybV9t b2RlX2dhbW1hX2dldF9pb2N0bCwgRFJNX1VOTE9DS0VEKSwKIAlEUk1fSU9DVExfREVGKERSTV9J T0NUTF9NT0RFX1NFVEdBTU1BLCBkcm1fbW9kZV9nYW1tYV9zZXRfaW9jdGwsIERSTV9NQVNURVJ8 RFJNX1VOTE9DS0VEKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0dFVEVOQ09ERVIs IGRybV9tb2RlX2dldGVuY29kZXIsIERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxPQ0tFRCksCisJ RFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9HRVRFTkNPREVSLCBkcm1fbW9kZV9nZXRlbmNv ZGVyX2lvY3RsLCBEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAogCURSTV9JT0NUTF9E RUYoRFJNX0lPQ1RMX01PREVfR0VUQ09OTkVDVE9SLCBkcm1fbW9kZV9nZXRjb25uZWN0b3JfaW9j dGwsIERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxPQ0tFRCksCiAJRFJNX0lPQ1RMX0RFRihEUk1f SU9DVExfTU9ERV9BVFRBQ0hNT0RFLCBkcm1fbm9vcCwgRFJNX01BU1RFUnxEUk1fQ09OVFJPTF9B TExPV3xEUk1fVU5MT0NLRUQpLAogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfREVUQUNI TU9ERSwgZHJtX25vb3AsIERSTV9NQVNURVJ8RFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VE KSwKQEAgLTYzNSw4ICs2MzUsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9pb2N0bF9kZXNj IGRybV9pb2N0bHNbXSA9IHsKIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0dFVFBST1BC TE9CLCBkcm1fbW9kZV9nZXRibG9iX2lvY3RsLCBEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NL RUQpLAogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfR0VURkIsIGRybV9tb2RlX2dldGZi LCBEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAogCURSTV9JT0NUTF9ERUYoRFJNX0lP Q1RMX01PREVfQURERkIsIGRybV9tb2RlX2FkZGZiLCBEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5M T0NLRUQpLAotCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfQURERkIyLCBkcm1fbW9kZV9h ZGRmYjIsIERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxPQ0tFRCksCi0JRFJNX0lPQ1RMX0RFRihE Uk1fSU9DVExfTU9ERV9STUZCLCBkcm1fbW9kZV9ybWZiLCBEUk1fQ09OVFJPTF9BTExPV3xEUk1f VU5MT0NLRUQpLAorCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfQURERkIyLCBkcm1fbW9k ZV9hZGRmYjJfaW9jdGwsIERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxPQ0tFRCksCisJRFJNX0lP Q1RMX0RFRihEUk1fSU9DVExfTU9ERV9STUZCLCBkcm1fbW9kZV9ybWZiX2lvY3RsLCBEUk1fQ09O VFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLAogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVf UEFHRV9GTElQLCBkcm1fbW9kZV9wYWdlX2ZsaXBfaW9jdGwsIERSTV9NQVNURVJ8RFJNX0NPTlRS T0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0RJ UlRZRkIsIGRybV9tb2RlX2RpcnR5ZmJfaW9jdGwsIERSTV9NQVNURVJ8RFJNX0NPTlRST0xfQUxM T1d8RFJNX1VOTE9DS0VEKSwKIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9NT0RFX0NSRUFURV9E VU1CLCBkcm1fbW9kZV9jcmVhdGVfZHVtYl9pb2N0bCwgRFJNX0NPTlRST0xfQUxMT1d8RFJNX1VO TE9DS0VEKSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9vYmplY3QuYyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9vYmplY3QuYwppbmRleCBjZTRkMmZiMzI4MTAuLjJi ZjdhOWU4YWMwOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX29iamVjdC5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW9kZV9vYmplY3QuYwpAQCAtNDk2LDEwICs0OTYs MTAgQEAgc3RhdGljIGludCBzZXRfcHJvcGVydHlfYXRvbWljKHN0cnVjdCBkcm1fbW9kZV9vYmpl Y3QgKm9iaiwKIAlyZXR1cm4gcmV0OwogfQogCi1pbnQgZHJtX21vZGVfb2JqX3NldF9wcm9wZXJ0 eV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJCSAgICBzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK2ludCBkcm1fbW9kZV9vYmpfc2V0X3Byb3BlcnR5KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkgICAgICBzdHJ1Y3QgZHJtX21vZGVfb2JqX3NldF9w cm9wZXJ0eSAqYXJnLAorCQkJICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCiB7Ci0J c3RydWN0IGRybV9tb2RlX29ial9zZXRfcHJvcGVydHkgKmFyZyA9IGRhdGE7CiAJc3RydWN0IGRy bV9tb2RlX29iamVjdCAqYXJnX29iajsKIAlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eTsK IAlpbnQgcmV0ID0gLUVJTlZBTDsKQEAgLTUyNywzICs1MjcsOSBAQCBpbnQgZHJtX21vZGVfb2Jq X3NldF9wcm9wZXJ0eV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAog CWRybV9tb2RlX29iamVjdF9wdXQoYXJnX29iaik7CiAJcmV0dXJuIHJldDsKIH0KKworaW50IGRy bV9tb2RlX29ial9zZXRfcHJvcGVydHlfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9p ZCAqZGF0YSwKKwkJCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJcmV0dXJu IGRybV9tb2RlX29ial9zZXRfcHJvcGVydHkoZGV2LCBkYXRhLCBmaWxlX3ByaXYpOworfQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFuZS5jIGIvZHJpdmVycy9ncHUvZHJtL2Ry bV9wbGFuZS5jCmluZGV4IDIyYjU0NjYzYjZlNy4uYjFmNTU1NTZlMTk2IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vZHJtX3BsYW5lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wbGFu ZS5jCkBAIC05MDcsMTAgKzkwNywxMCBAQCBpbnQgZHJtX21vZGVfY3Vyc29yMl9pb2N0bChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAogCXJldHVybiBkcm1fbW9kZV9jdXJzb3JfY29tbW9uKGRldiwg cmVxLCBmaWxlX3ByaXYpOwogfQogCi1pbnQgZHJtX21vZGVfcGFnZV9mbGlwX2lvY3RsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCi0JCQkgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAq ZmlsZV9wcml2KQoraW50IGRybV9tb2RlX3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAorCQkgICAgICAgc3RydWN0IGRybV9tb2RlX2NydGNfcGFnZV9mbGlwX3RhcmdldCAqcGFnZV9m bGlwLAorCQkgICAgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCiB7Ci0Jc3RydWN0IGRy bV9tb2RlX2NydGNfcGFnZV9mbGlwX3RhcmdldCAqcGFnZV9mbGlwID0gZGF0YTsKIAlzdHJ1Y3Qg ZHJtX2NydGMgKmNydGM7CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBOVUxMOwogCXN0 cnVjdCBkcm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKmUgPSBOVUxMOwpAQCAtMTA4MiwzICsxMDgy LDkgQEAgaW50IGRybV9tb2RlX3BhZ2VfZmxpcF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCiAJcmV0dXJuIHJldDsKIH0KKworaW50IGRybV9tb2RlX3BhZ2VfZmxpcF9pb2N0bChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJICAgICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUg KmZpbGVfcHJpdikKK3sKKwlyZXR1cm4gZHJtX21vZGVfcGFnZV9mbGlwKGRldiwgZGF0YSwgZmls ZV9wcml2KTsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYwppbmRleCBlODJhOTc2ZjBmYmEuLmVhZjgzOTJlZjgx NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fcHJpbWUuYwpAQCAtODUzLDExICs4NTMsMTAgQEAgaW50IGRybV9nZW1fcHJp bWVfZmRfdG9faGFuZGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiB9CiBFWFBPUlRfU1lNQk9M KGRybV9nZW1fcHJpbWVfZmRfdG9faGFuZGxlKTsKIAotaW50IGRybV9wcmltZV9oYW5kbGVfdG9f ZmRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKLQkJCQkgc3RydWN0 IGRybV9maWxlICpmaWxlX3ByaXYpCitpbnQgZHJtX3ByaW1lX2hhbmRsZV90b19mZChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAorCQkJICAgc3RydWN0IGRybV9wcmltZV9oYW5kbGUgKmFyZ3MsCisJ CQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX3ByaW1lX2hh bmRsZSAqYXJncyA9IGRhdGE7Ci0KIAlpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBE UklWRVJfUFJJTUUpKQogCQlyZXR1cm4gLUVJTlZBTDsKIApAQCAtODcyLDYgKzg3MSwxMiBAQCBp bnQgZHJtX3ByaW1lX2hhbmRsZV90b19mZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLAogCQkJYXJncy0+aGFuZGxlLCBhcmdzLT5mbGFncywgJmFyZ3MtPmZkKTsKIH0K IAoraW50IGRybV9wcmltZV9oYW5kbGVfdG9fZmRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKKwkJCQkgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7CisJcmV0 dXJuIGRybV9wcmltZV9oYW5kbGVfdG9fZmQoZGV2LCBkYXRhLCBmaWxlX3ByaXYpOworfQorCiBp bnQgZHJtX3ByaW1lX2ZkX3RvX2hhbmRsZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2 b2lkICpkYXRhLAogCQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKIHsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5rLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3Zi bGFuay5jCmluZGV4IDMyZDliY2Y1YmU3Zi4uZWY0MTUwOGJjNTM5IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX3ZibGFuay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fdmJsYW5r LmMKQEAgLTE0NDUsMTIgKzE0NDUsMTEgQEAgc3RhdGljIHZvaWQgZHJtX3dhaXRfdmJsYW5rX3Jl cGx5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlLAogCXJlcGx5LT50 dmFsX3VzZWMgPSB0cy50dl9uc2VjIC8gMTAwMDsKIH0KIAotaW50IGRybV93YWl0X3ZibGFua19p b2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJICBzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGVfcHJpdikKK2ludCBkcm1fd2FpdF92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdW5pb24gZHJtX3dhaXRfdmJsYW5rICp2Ymx3YWl0LAorCQkgICAgc3RydWN0IGRybV9m aWxlICpmaWxlX3ByaXYpCiB7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjOwogCXN0cnVjdCBkcm1f dmJsYW5rX2NydGMgKnZibGFuazsKLQl1bmlvbiBkcm1fd2FpdF92YmxhbmsgKnZibHdhaXQgPSBk YXRhOwogCWludCByZXQ7CiAJdTY0IHJlcV9zZXEsIHNlcTsKIAl1bnNpZ25lZCBpbnQgcGlwZV9p bmRleDsKQEAgLTE1NjcsNiArMTU2NiwxMiBAQCBpbnQgZHJtX3dhaXRfdmJsYW5rX2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJcmV0dXJuIHJldDsKIH0KIAoraW50 IGRybV93YWl0X3ZibGFua19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRh LAorCQkJICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlyZXR1cm4gZHJtX3dhaXRf dmJsYW5rX2lvY3RsKGRldiwgZGF0YSwgZmlsZV9wcml2KTsKK30KKwogc3RhdGljIHZvaWQgZHJt X2hhbmRsZV92YmxhbmtfZXZlbnRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGlu dCBwaXBlKQogewogCXN0cnVjdCBkcm1fcGVuZGluZ192YmxhbmtfZXZlbnQgKmUsICp0OwotLSAK Mi4xNS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK