From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [RFC v4 16/25] drm: Make ioctls available for in-kernel clients Date: Thu, 12 Apr 2018 18:12:28 +0200 Message-ID: <20180412161237.9314-5-noralf@tronnes.org> References: <20180412161237.9314-1-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180412161237.9314-1-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: dri-devel@lists.freedesktop.org Cc: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= , laurent.pinchart@ideasonboard.com, mstaudt@suse.de, dh.herrmann@gmail.com List-Id: dri-devel@lists.freedesktop.org TWFrZSBpb2N0bCB3cmFwcGVycyBmb3IgZnVuY3Rpb25zIHRoYXQgd2lsbCBiZSB1c2VkIGJ5IHRo ZSBpbi1rZXJuZWwgQVBJLgpUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhcmUgdG91Y2hlZDoKLSBk cm1fbW9kZV9jcmVhdGVfZHVtYl9pb2N0bCgpCi0gZHJtX21vZGVfZGVzdHJveV9kdW1iX2lvY3Rs KCkKLSBkcm1fbW9kZV9hZGRmYjIoKQotIGRybV9tb2RlX3JtZmIoKQotIGRybV9wcmltZV9oYW5k bGVfdG9fZmRfaW9jdGwoKQoKZHJtX21vZGVfYWRkZmIyKCkgYWxzbyBnZXRzIHRoZSBhYmlsaXR5 IHRvIG92ZXJyaWRlIHRoZSBkZWJ1ZyBuYW1lLgoKU2lnbmVkLW9mZi1ieTogTm9yYWxmIFRyw7hu bmVzIDxub3JhbGZAdHJvbm5lcy5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjX2lu dGVybmFsLmggfCAxOCArKysrKysrKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2R1bWJfYnVm ZmVycy5jICB8IDMzICsrKysrKysrKysrKysrKystLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2Ry bV9mcmFtZWJ1ZmZlci5jICAgfCA1MCArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2ludGVybmFsLmggICAgICB8ICAzICsrKwogZHJpdmVy cy9ncHUvZHJtL2RybV9pb2MzMi5jICAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2Ry bV9pb2N0bC5jICAgICAgICAgfCAgNCArLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYyAg ICAgICAgIHwgMTMgKysrKysrKy0tLQogNyBmaWxlcyBjaGFuZ2VkLCA4NCBpbnNlcnRpb25zKCsp LCAzOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNf aW50ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Y19pbnRlcm5hbC5oCmluZGV4IDNj MmI4Mjg2NWFkMi4uOGY4ODg2YWMwZTRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2NydGNfaW50ZXJuYWwuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGNfaW50ZXJuYWwu aApAQCAtNjIsNiArNjIsMTIgQEAgaW50IGRybV9tb2RlX2dldHJlc291cmNlcyhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAogCiAKIC8qIGRybV9kdW1iX2J1ZmZlcnMuYyAqLworaW50IGRybV9tb2Rl X2NyZWF0ZV9kdW1iKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkgc3RydWN0IGRybV9tb2Rl X2NyZWF0ZV9kdW1iICphcmdzLAorCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2lu dCBkcm1fbW9kZV9kZXN0cm95X2R1bWIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIGhhbmRs ZSwKKwkJCSAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOworCiAvKiBJT0NUTHMgKi8KIGlu dCBkcm1fbW9kZV9jcmVhdGVfZHVtYl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJ ICAgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKQEAgLTE2Mywx NCArMTY5LDE4IEBAIGludCBkcm1fZnJhbWVidWZmZXJfY2hlY2tfc3JjX2Nvb3Jkcyh1aW50MzJf dCBzcmNfeCwgdWludDMyX3Qgc3JjX3ksCiAJCQkJICAgICBjb25zdCBzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYik7CiB2b2lkIGRybV9mYl9yZWxlYXNlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9w cml2KTsKIAoraW50IGRybV9tb2RlX2FkZGZiMihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1 Y3QgZHJtX21vZGVfZmJfY21kMiAqciwKKwkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2 LCBjb25zdCBjaGFyICpjb21tKTsKK2ludCBkcm1fbW9kZV9ybWZiKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHUzMiBmYl9pZCwKKwkJICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CiAKIC8q IElPQ1RMICovCiBpbnQgZHJtX21vZGVfYWRkZmIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJ ICAgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwotaW50IGRybV9tb2Rl X2FkZGZiMihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkgICAgdm9pZCAqZGF0YSwgc3RydWN0 IGRybV9maWxlICpmaWxlX3ByaXYpOwotaW50IGRybV9tb2RlX3JtZmIoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKLQkJICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7Citp bnQgZHJtX21vZGVfYWRkZmIyX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQkgIHZv aWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKK2ludCBkcm1fbW9kZV9ybWZi X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJCQl2b2lkICpkYXRhLCBzdHJ1Y3QgZHJt X2ZpbGUgKmZpbGVfcHJpdik7CiBpbnQgZHJtX21vZGVfZ2V0ZmIoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKIAkJICAgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpOwogaW50 IGRybV9tb2RlX2RpcnR5ZmJfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHVtYl9idWZmZXJzLmMgYi9kcml2ZXJzL2dwdS9kcm0v ZHJtX2R1bWJfYnVmZmVycy5jCmluZGV4IDM5YWMxNWNlNDcwMi4uZWVkOTY4N2I4Njk4IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2R1bWJfYnVmZmVycy5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fZHVtYl9idWZmZXJzLmMKQEAgLTUzLDEwICs1MywxMCBAQAogICogYSBoYXJk d2FyZS1zcGVjaWZpYyBpb2N0bCB0byBhbGxvY2F0ZSBzdWl0YWJsZSBidWZmZXIgb2JqZWN0cy4K ICAqLwogCi1pbnQgZHJtX21vZGVfY3JlYXRlX2R1bWJfaW9jdGwoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKLQkJCSAgICAgICB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikK K2ludCBkcm1fbW9kZV9jcmVhdGVfZHVtYihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJIHN0 cnVjdCBkcm1fbW9kZV9jcmVhdGVfZHVtYiAqYXJncywKKwkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGVfcHJpdikKIHsKLQlzdHJ1Y3QgZHJtX21vZGVfY3JlYXRlX2R1bWIgKmFyZ3MgPSBkYXRhOwog CXUzMiBjcHAsIHN0cmlkZSwgc2l6ZTsKIAogCWlmICghZGV2LT5kcml2ZXItPmR1bWJfY3JlYXRl KQpAQCAtOTEsNiArOTEsMTIgQEAgaW50IGRybV9tb2RlX2NyZWF0ZV9kdW1iX2lvY3RsKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCiAJcmV0dXJuIGRldi0+ZHJpdmVyLT5kdW1iX2NyZWF0ZShmaWxl X3ByaXYsIGRldiwgYXJncyk7CiB9CiAKK2ludCBkcm1fbW9kZV9jcmVhdGVfZHVtYl9pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJICAgICAgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1f ZmlsZSAqZmlsZV9wcml2KQoreworCXJldHVybiBkcm1fbW9kZV9jcmVhdGVfZHVtYihkZXYsIGRh dGEsIGZpbGVfcHJpdik7Cit9CisKIC8qKgogICogZHJtX21vZGVfbW1hcF9kdW1iX2lvY3RsIC0g Y3JlYXRlIGFuIG1tYXAgb2Zmc2V0IGZvciBhIGR1bWIgYmFja2luZyBzdG9yYWdlIGJ1ZmZlcgog ICogQGRldjogRFJNIGRldmljZQpAQCAtMTIyLDE3ICsxMjgsMjIgQEAgaW50IGRybV9tb2RlX21t YXBfZHVtYl9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkgICAgICAgJmFyZ3Mt Pm9mZnNldCk7CiB9CiAKK2ludCBkcm1fbW9kZV9kZXN0cm95X2R1bWIoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgdTMyIGhhbmRsZSwKKwkJCSAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCit7 CisJaWYgKCFkZXYtPmRyaXZlci0+ZHVtYl9jcmVhdGUpCisJCXJldHVybiAtRU5PU1lTOworCisJ aWYgKGRldi0+ZHJpdmVyLT5kdW1iX2Rlc3Ryb3kpCisJCXJldHVybiBkZXYtPmRyaXZlci0+ZHVt Yl9kZXN0cm95KGZpbGVfcHJpdiwgZGV2LCBoYW5kbGUpOworCWVsc2UKKwkJcmV0dXJuIGRybV9n ZW1fZHVtYl9kZXN0cm95KGZpbGVfcHJpdiwgZGV2LCBoYW5kbGUpOworfQorCiBpbnQgZHJtX21v ZGVfZGVzdHJveV9kdW1iX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJdm9pZCAq ZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCiB7CiAJc3RydWN0IGRybV9tb2RlX2Rl c3Ryb3lfZHVtYiAqYXJncyA9IGRhdGE7CiAKLQlpZiAoIWRldi0+ZHJpdmVyLT5kdW1iX2NyZWF0 ZSkKLQkJcmV0dXJuIC1FTk9TWVM7Ci0KLQlpZiAoZGV2LT5kcml2ZXItPmR1bWJfZGVzdHJveSkK LQkJcmV0dXJuIGRldi0+ZHJpdmVyLT5kdW1iX2Rlc3Ryb3koZmlsZV9wcml2LCBkZXYsIGFyZ3Mt PmhhbmRsZSk7Ci0JZWxzZQotCQlyZXR1cm4gZHJtX2dlbV9kdW1iX2Rlc3Ryb3koZmlsZV9wcml2 LCBkZXYsIGFyZ3MtPmhhbmRsZSk7CisJcmV0dXJuIGRybV9tb2RlX2Rlc3Ryb3lfZHVtYihkZXYs IGFyZ3MtPmhhbmRsZSwgZmlsZV9wcml2KTsKIH0KLQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9mcmFtZWJ1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mcmFtZWJ1ZmZlci5j CmluZGV4IDhjNGQzMmFkY2MxNy4uMTY3NjllNGRiNWMwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mcmFtZWJ1 ZmZlci5jCkBAIC0xMjUsNyArMTI1LDcgQEAgaW50IGRybV9tb2RlX2FkZGZiKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCiAJICAgIGRldi0+ZHJpdmVyLT5kcml2ZXJfZmVhdHVyZXMgJiBEUklWRVJf UFJFRkVSX1hCR1JfMzBCUFApCiAJCXIucGl4ZWxfZm9ybWF0ID0gRFJNX0ZPUk1BVF9YQkdSMjEw MTAxMDsKIAotCXJldCA9IGRybV9tb2RlX2FkZGZiMihkZXYsICZyLCBmaWxlX3ByaXYpOworCXJl dCA9IGRybV9tb2RlX2FkZGZiMl9pb2N0bChkZXYsICZyLCBmaWxlX3ByaXYpOwogCWlmIChyZXQp CiAJCXJldHVybiByZXQ7CiAKQEAgLTMxMCwyMyArMzEwLDIzIEBAIGRybV9pbnRlcm5hbF9mcmFt ZWJ1ZmZlcl9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAogLyoqCiAgKiBkcm1fbW9k ZV9hZGRmYjIgLSBhZGQgYW4gRkIgdG8gdGhlIGdyYXBoaWNzIGNvbmZpZ3VyYXRpb24KLSAqIEBk ZXY6IGRybSBkZXZpY2UgZm9yIHRoZSBpb2N0bAotICogQGRhdGE6IGRhdGEgcG9pbnRlciBmb3Ig dGhlIGlvY3RsCi0gKiBAZmlsZV9wcml2OiBkcm0gZmlsZSBmb3IgdGhlIGlvY3RsIGNhbGwKKyAq IEBkZXY6IGRybSBkZXZpY2UKKyAqIEByOiBwb2ludGVyIHRvIHJlcXVlc3Qgc3RydWN0dXJlCisg KiBAZmlsZV9wcml2OiBkcm0gZmlsZQorICogQGNvbW06IG9wdGlvbmFsbHkgb3ZlcnJpZGUgdGhl IGFsbG9jYXRvciBuYW1lIHVzZWQgZm9yIGRlYnVnIG91dHB1dAogICoKICAqIEFkZCBhIG5ldyBG QiB0byB0aGUgc3BlY2lmaWVkIENSVEMsIGdpdmVuIGEgdXNlciByZXF1ZXN0IHdpdGggZm9ybWF0 LiBUaGlzIGlzCiAgKiB0aGUgMm5kIHZlcnNpb24gb2YgdGhlIGFkZGZiIGlvY3RsLCB3aGljaCBz dXBwb3J0cyBtdWx0aS1wbGFuYXIgZnJhbWVidWZmZXJzCiAgKiBhbmQgdXNlcyBmb3VyY2MgY29k ZXMgYXMgcGl4ZWwgZm9ybWF0IHNwZWNpZmllcnMuCiAgKgotICogQ2FsbGVkIGJ5IHRoZSB1c2Vy IHZpYSBpb2N0bC4KKyAqIENhbGxlZCBieSB0aGUgdXNlciB2aWEgaW9jdGwsIG9yIGJ5IGFuIGlu LWtlcm5lbCBjbGllbnQuCiAgKgogICogUmV0dXJuczoKICAqIFplcm8gb24gc3VjY2VzcywgbmVn YXRpdmUgZXJybm8gb24gZmFpbHVyZS4KICAqLwotaW50IGRybV9tb2RlX2FkZGZiMihzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAotCQkgICAgdm9pZCAqZGF0YSwgc3RydWN0IGRybV9maWxlICpmaWxl X3ByaXYpCitpbnQgZHJtX21vZGVfYWRkZmIyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVj dCBkcm1fbW9kZV9mYl9jbWQyICpyLAorCQkgICAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYs IGNvbnN0IGNoYXIgKmNvbW0pCiB7Ci0Jc3RydWN0IGRybV9tb2RlX2ZiX2NtZDIgKnIgPSBkYXRh OwogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiOwogCiAJaWYgKCFkcm1fY29yZV9jaGVja19m ZWF0dXJlKGRldiwgRFJJVkVSX01PREVTRVQpKQpAQCAtMzM2LDYgKzMzNiw5IEBAIGludCBkcm1f bW9kZV9hZGRmYjIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAoSVNfRVJSKGZiKSkKIAkJ cmV0dXJuIFBUUl9FUlIoZmIpOwogCisJaWYgKGNvbW0pCisJCXN0cnNjcHkoZmItPmNvbW0sIGNv bW0sIFRBU0tfQ09NTV9MRU4pOworCiAJRFJNX0RFQlVHX0tNUygiW0ZCOiVkXVxuIiwgZmItPmJh c2UuaWQpOwogCXItPmZiX2lkID0gZmItPmJhc2UuaWQ7CiAKQEAgLTM0Nyw2ICszNTAsMTIgQEAg aW50IGRybV9tb2RlX2FkZGZiMihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCXJldHVybiAwOwog fQogCitpbnQgZHJtX21vZGVfYWRkZmIyX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCisJ CQkgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCXJldHVybiBk cm1fbW9kZV9hZGRmYjIoZGV2LCBkYXRhLCBmaWxlX3ByaXYsIE5VTEwpOworfQorCiBzdHJ1Y3Qg ZHJtX21vZGVfcm1mYl93b3JrIHsKIAlzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsKIAlzdHJ1Y3Qg bGlzdF9oZWFkIGZiczsKQEAgLTM2NywyOSArMzc2LDI4IEBAIHN0YXRpYyB2b2lkIGRybV9tb2Rl X3JtZmJfd29ya19mbihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKncpCiAKIC8qKgogICogZHJtX21vZGVf cm1mYiAtIHJlbW92ZSBhbiBGQiBmcm9tIHRoZSBjb25maWd1cmF0aW9uCi0gKiBAZGV2OiBkcm0g ZGV2aWNlIGZvciB0aGUgaW9jdGwKLSAqIEBkYXRhOiBkYXRhIHBvaW50ZXIgZm9yIHRoZSBpb2N0 bAotICogQGZpbGVfcHJpdjogZHJtIGZpbGUgZm9yIHRoZSBpb2N0bCBjYWxsCisgKiBAZGV2OiBk cm0gZGV2aWNlCisgKiBAZmJfaWQ6IGlkIG9mIGZyYW1lYnVmZmVyIHRvIHJlbW92ZQorICogQGZp bGVfcHJpdjogZHJtIGZpbGUKICAqCi0gKiBSZW1vdmUgdGhlIEZCIHNwZWNpZmllZCBieSB0aGUg dXNlci4KKyAqIFJlbW92ZSB0aGUgc3BlY2lmaWVkIEZCLgogICoKLSAqIENhbGxlZCBieSB0aGUg dXNlciB2aWEgaW9jdGwuCisgKiBDYWxsZWQgYnkgdGhlIHVzZXIgdmlhIGlvY3RsLCBvciBieSBh biBpbi1rZXJuZWwgY2xpZW50LgogICoKICAqIFJldHVybnM6CiAgKiBaZXJvIG9uIHN1Y2Nlc3Ms IG5lZ2F0aXZlIGVycm5vIG9uIGZhaWx1cmUuCiAgKi8KLWludCBkcm1fbW9kZV9ybWZiKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCi0JCSAgIHZvaWQgKmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmls ZV9wcml2KQoraW50IGRybV9tb2RlX3JtZmIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIGZi X2lkLAorCQkgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQogewogCXN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiID0gTlVMTDsKIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYmwgPSBOVUxM OwotCXVpbnQzMl90ICppZCA9IGRhdGE7CiAJaW50IGZvdW5kID0gMDsKIAogCWlmICghZHJtX2Nv cmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9NT0RFU0VUKSkKIAkJcmV0dXJuIC1FSU5WQUw7 CiAKLQlmYiA9IGRybV9mcmFtZWJ1ZmZlcl9sb29rdXAoZGV2LCBmaWxlX3ByaXYsICppZCk7CisJ ZmIgPSBkcm1fZnJhbWVidWZmZXJfbG9va3VwKGRldiwgZmlsZV9wcml2LCBmYl9pZCk7CiAJaWYg KCFmYikKIAkJcmV0dXJuIC1FTk9FTlQ7CiAKQEAgLTQzNSw2ICs0NDMsMTQgQEAgaW50IGRybV9t b2RlX3JtZmIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlyZXR1cm4gLUVOT0VOVDsKIH0KIAor aW50IGRybV9tb2RlX3JtZmJfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCXZvaWQg KmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQoreworCXVpbnQzMl90ICpmYl9pZCA9 IGRhdGE7CisKKwlyZXR1cm4gZHJtX21vZGVfcm1mYihkZXYsICpmYl9pZCwgZmlsZV9wcml2KTsK K30KKwogLyoqCiAgKiBkcm1fbW9kZV9nZXRmYiAtIGdldCBGQiBpbmZvCiAgKiBAZGV2OiBkcm0g ZGV2aWNlIGZvciB0aGUgaW9jdGwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50 ZXJuYWwuaCBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaAppbmRleCA0MDE3OWM1ZmM2 YjguLjNmNWQ3NzA2YmNjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5h bC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW50ZXJuYWwuaApAQCAtMzcsNiArMzcsOSBA QCB2b2lkIGRybV9wY2lfYWdwX2Rlc3Ryb3koc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiBpbnQg ZHJtX3BjaV9zZXRfYnVzaWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9tYXN0 ZXIgKm1hc3Rlcik7CiAKIC8qIGRybV9wcmltZS5jICovCitpbnQgZHJtX3ByaW1lX2hhbmRsZV90 b19mZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJICAgc3RydWN0IGRybV9wcmltZV9oYW5k bGUgKmFyZ3MsCisJCQkgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CiBpbnQgZHJtX3By aW1lX2hhbmRsZV90b19mZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRh LAogCQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7CiBpbnQgZHJtX3ByaW1lX2ZkX3Rv X2hhbmRsZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pb2MzMi5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9p b2MzMi5jCmluZGV4IGY4ZTk2ZTY0OGFjZi4uNTc2ZDAwYjdkYWQ1IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2lvYzMyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pb2MzMi5j CkBAIC04ODQsNyArODg0LDcgQEAgc3RhdGljIGludCBjb21wYXRfZHJtX21vZGVfYWRkZmIyKHN0 cnVjdCBmaWxlICpmaWxlLCB1bnNpZ25lZCBpbnQgY21kLAogCQkJICAgc2l6ZW9mKHJlcTY0Lm1v ZGlmaWVyKSkpCiAJCXJldHVybiAtRUZBVUxUOwogCi0JZXJyID0gZHJtX2lvY3RsX2tlcm5lbChm aWxlLCBkcm1fbW9kZV9hZGRmYjIsICZyZXE2NCwKKwllcnIgPSBkcm1faW9jdGxfa2VybmVsKGZp bGUsIGRybV9tb2RlX2FkZGZiMl9pb2N0bCwgJnJlcTY0LAogCQkJCURSTV9DT05UUk9MX0FMTE9X fERSTV9VTkxPQ0tFRCk7CiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwpp bmRleCBhZjc4MjkxMWM1MDUuLmM2OWZkYTVkMzg3NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9pb2N0bC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwpAQCAtNjM1 LDggKzYzNSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2lvY3RsX2Rlc2MgZHJtX2lvY3Rs c1tdID0gewogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfR0VUUFJPUEJMT0IsIGRybV9t b2RlX2dldGJsb2JfaW9jdGwsIERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxPQ0tFRCksCiAJRFJN X0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9HRVRGQiwgZHJtX21vZGVfZ2V0ZmIsIERSTV9DT05U Uk9MX0FMTE9XfERSTV9VTkxPQ0tFRCksCiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9B RERGQiwgZHJtX21vZGVfYWRkZmIsIERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxPQ0tFRCksCi0J RFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9BRERGQjIsIGRybV9tb2RlX2FkZGZiMiwgRFJN X0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKLQlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9N T0RFX1JNRkIsIGRybV9tb2RlX3JtZmIsIERSTV9DT05UUk9MX0FMTE9XfERSTV9VTkxPQ0tFRCks CisJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9BRERGQjIsIGRybV9tb2RlX2FkZGZiMl9p b2N0bCwgRFJNX0NPTlRST0xfQUxMT1d8RFJNX1VOTE9DS0VEKSwKKwlEUk1fSU9DVExfREVGKERS TV9JT0NUTF9NT0RFX1JNRkIsIGRybV9tb2RlX3JtZmJfaW9jdGwsIERSTV9DT05UUk9MX0FMTE9X fERSTV9VTkxPQ0tFRCksCiAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfTU9ERV9QQUdFX0ZMSVAs IGRybV9tb2RlX3BhZ2VfZmxpcF9pb2N0bCwgRFJNX01BU1RFUnxEUk1fQ09OVFJPTF9BTExPV3xE Uk1fVU5MT0NLRUQpLAogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfRElSVFlGQiwgZHJt X21vZGVfZGlydHlmYl9pb2N0bCwgRFJNX01BU1RFUnxEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5M T0NLRUQpLAogCURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX01PREVfQ1JFQVRFX0RVTUIsIGRybV9t b2RlX2NyZWF0ZV9kdW1iX2lvY3RsLCBEUk1fQ09OVFJPTF9BTExPV3xEUk1fVU5MT0NLRUQpLApk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jIGIvZHJpdmVycy9ncHUvZHJt L2RybV9wcmltZS5jCmluZGV4IGNhZjY3NWUzZTY5Mi4uZTYwNTJhYjJiZWM0IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1lLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9w cmltZS5jCkBAIC04NjYsMTEgKzg2NiwxMCBAQCBpbnQgZHJtX2dlbV9wcmltZV9mZF90b19oYW5k bGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIH0KIEVYUE9SVF9TWU1CT0woZHJtX2dlbV9wcmlt ZV9mZF90b19oYW5kbGUpOwogCi1pbnQgZHJtX3ByaW1lX2hhbmRsZV90b19mZF9pb2N0bChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAotCQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZp bGVfcHJpdikKK2ludCBkcm1fcHJpbWVfaGFuZGxlX3RvX2ZkKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCisJCQkgICBzdHJ1Y3QgZHJtX3ByaW1lX2hhbmRsZSAqYXJncywKKwkJCSAgIHN0cnVjdCBk cm1fZmlsZSAqZmlsZV9wcml2KQogewotCXN0cnVjdCBkcm1fcHJpbWVfaGFuZGxlICphcmdzID0g ZGF0YTsKLQogCWlmICghZHJtX2NvcmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9QUklNRSkp CiAJCXJldHVybiAtRUlOVkFMOwogCkBAIC04ODUsNiArODg0LDEyIEBAIGludCBkcm1fcHJpbWVf aGFuZGxlX3RvX2ZkX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJ CQlhcmdzLT5oYW5kbGUsIGFyZ3MtPmZsYWdzLCAmYXJncy0+ZmQpOwogfQogCitpbnQgZHJtX3By aW1lX2hhbmRsZV90b19mZF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRh LAorCQkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKK3sKKwlyZXR1cm4gZHJtX3ByaW1l X2hhbmRsZV90b19mZChkZXYsIGRhdGEsIGZpbGVfcHJpdik7Cit9CisKIGludCBkcm1fcHJpbWVf ZmRfdG9faGFuZGxlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJ CQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQogewotLSAKMi4xNS4xCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBs aXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK