From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [RFC v4 06/25] drm/atomic: Move __drm_atomic_helper_disable_plane/set_config() Date: Thu, 12 Apr 2018 15:17:08 +0200 Message-ID: <20180412131727.8914-7-noralf@tronnes.org> References: <20180412131727.8914-1-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180412131727.8914-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, mstaudt@suse.de List-Id: dri-devel@lists.freedesktop.org UHJlcGFyZSBmb3IgbW92aW5nIGRybV9mYl9oZWxwZXIgbW9kZXNldHRpbmcgY29kZSB0byBkcm1f Y2xpZW50Lgpkcm1fY2xpZW50IHdpbGwgYmUgbGlua2VkIHRvIGRybS5rbywgc28gbW92ZQpfX2Ry bV9hdG9taWNfaGVscGVyX2Rpc2FibGVfcGxhbmUoKSBhbmQgX19kcm1fYXRvbWljX2hlbHBlcl9z ZXRfY29uZmlnKCkKb3V0IG9mIGRybV9rbXNfaGVscGVyLmtvLgoKU2lnbmVkLW9mZi1ieTogTm9y YWxmIFRyw7hubmVzIDxub3JhbGZAdHJvbm5lcy5vcmc+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWMuYyAgICAgICAgfCAxNjggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyB8IDE2OCArLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVy LmMgICAgIHwgICA4ICstCiBpbmNsdWRlL2RybS9kcm1fYXRvbWljLmggICAgICAgICAgICB8ICAg NSArKwogaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaCAgICAgfCAgIDQgLQogNSBmaWxl cyBjaGFuZ2VkLCAxNzkgaW5zZXJ0aW9ucygrKSwgMTc0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pYy5jCmluZGV4IDdkMjVjNDJmMjJkYi4uMWZiNjAyYjZjOGIxIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj LmMKQEAgLTIwNjAsNiArMjA2MCwxNzQgQEAgdm9pZCBkcm1fYXRvbWljX2NsZWFuX29sZF9mYihz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogfQogRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2NsZWFu X29sZF9mYik7CiAKKy8qIGp1c3QgdXNlZCBmcm9tIGRybV9jbGllbnQgYW5kIGF0b21pYy1oZWxw ZXI6ICovCitpbnQgZHJtX2F0b21pY19kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lLAorCQkJICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKK3sKKwlp bnQgcmV0OworCisJcmV0ID0gZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfcGxhbmUocGxhbmVfc3Rh dGUsIE5VTEwpOworCWlmIChyZXQgIT0gMCkKKwkJcmV0dXJuIHJldDsKKworCWRybV9hdG9taWNf c2V0X2ZiX2Zvcl9wbGFuZShwbGFuZV9zdGF0ZSwgTlVMTCk7CisJcGxhbmVfc3RhdGUtPmNydGNf eCA9IDA7CisJcGxhbmVfc3RhdGUtPmNydGNfeSA9IDA7CisJcGxhbmVfc3RhdGUtPmNydGNfdyA9 IDA7CisJcGxhbmVfc3RhdGUtPmNydGNfaCA9IDA7CisJcGxhbmVfc3RhdGUtPnNyY194ID0gMDsK KwlwbGFuZV9zdGF0ZS0+c3JjX3kgPSAwOworCXBsYW5lX3N0YXRlLT5zcmNfdyA9IDA7CisJcGxh bmVfc3RhdGUtPnNyY19oID0gMDsKKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChkcm1f YXRvbWljX2Rpc2FibGVfcGxhbmUpOworCitzdGF0aWMgaW50IHVwZGF0ZV9vdXRwdXRfc3RhdGUo c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJICAgICAgIHN0cnVjdCBkcm1fbW9k ZV9zZXQgKnNldCkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc2V0LT5jcnRjLT5kZXY7 CisJc3RydWN0IGRybV9jcnRjICpjcnRjOworCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3X2Ny dGNfc3RhdGU7CisJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X2Nvbm5fc3RhdGU7CisJaW50IHJldCwgaTsKKworCXJldCA9 IGRybV9tb2Rlc2V0X2xvY2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCwKKwkJ CSAgICAgICBzdGF0ZS0+YWNxdWlyZV9jdHgpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisK KwkvKiBGaXJzdCBkaXNhYmxlIGFsbCBjb25uZWN0b3JzIG9uIHRoZSB0YXJnZXQgY3J0Yy4gKi8K KwlyZXQgPSBkcm1fYXRvbWljX2FkZF9hZmZlY3RlZF9jb25uZWN0b3JzKHN0YXRlLCBzZXQtPmNy dGMpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlmb3JfZWFjaF9uZXdfY29ubmVjdG9y X2luX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IsIG5ld19jb25uX3N0YXRlLCBpKSB7CisJCWlmIChu ZXdfY29ubl9zdGF0ZS0+Y3J0YyA9PSBzZXQtPmNydGMpIHsKKwkJCXJldCA9IGRybV9hdG9taWNf c2V0X2NydGNfZm9yX2Nvbm5lY3RvcihuZXdfY29ubl9zdGF0ZSwKKwkJCQkJCQkJTlVMTCk7CisJ CQlpZiAocmV0KQorCQkJCXJldHVybiByZXQ7CisKKwkJCS8qIE1ha2Ugc3VyZSBsZWdhY3kgc2V0 Q3J0YyBhbHdheXMgcmUtdHJhaW5zICovCisJCQluZXdfY29ubl9zdGF0ZS0+bGlua19zdGF0dXMg PSBEUk1fTElOS19TVEFUVVNfR09PRDsKKwkJfQorCX0KKworCS8qIFRoZW4gc2V0IGFsbCBjb25u ZWN0b3JzIGZyb20gc2V0LT5jb25uZWN0b3JzIG9uIHRoZSB0YXJnZXQgY3J0YyAqLworCWZvciAo aSA9IDA7IGkgPCBzZXQtPm51bV9jb25uZWN0b3JzOyBpKyspIHsKKwkJbmV3X2Nvbm5fc3RhdGUg PSBkcm1fYXRvbWljX2dldF9jb25uZWN0b3Jfc3RhdGUoc3RhdGUsCisJCQkJCQkJICAgIHNldC0+ Y29ubmVjdG9yc1tpXSk7CisJCWlmIChJU19FUlIobmV3X2Nvbm5fc3RhdGUpKQorCQkJcmV0dXJu IFBUUl9FUlIobmV3X2Nvbm5fc3RhdGUpOworCisJCXJldCA9IGRybV9hdG9taWNfc2V0X2NydGNf Zm9yX2Nvbm5lY3RvcihuZXdfY29ubl9zdGF0ZSwKKwkJCQkJCQlzZXQtPmNydGMpOworCQlpZiAo cmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlmb3JfZWFjaF9uZXdfY3J0Y19pbl9zdGF0ZShz dGF0ZSwgY3J0YywgbmV3X2NydGNfc3RhdGUsIGkpIHsKKwkJLyoKKwkJICogRG9uJ3QgdXBkYXRl IC0+ZW5hYmxlIGZvciB0aGUgQ1JUQyBpbiB0aGUgc2V0X2NvbmZpZyByZXF1ZXN0LAorCQkgKiBz aW5jZSBhIG1pc21hdGNoIHdvdWxkIGluZGljYXRlIGEgYnVnIGluIHRoZSB1cHBlciBsYXllcnMu CisJCSAqIFRoZSBhY3R1YWwgbW9kZXNldCBjb2RlIGxhdGVyIG9uIHdpbGwgY2F0Y2ggYW55CisJ CSAqIGluY29uc2lzdGVuY2llcyBoZXJlLgorCQkgKi8KKwkJaWYgKGNydGMgPT0gc2V0LT5jcnRj KQorCQkJY29udGludWU7CisKKwkJaWYgKCFuZXdfY3J0Y19zdGF0ZS0+Y29ubmVjdG9yX21hc2sp IHsKKwkJCXJldCA9IGRybV9hdG9taWNfc2V0X21vZGVfcHJvcF9mb3JfY3J0YyhuZXdfY3J0Y19z dGF0ZSwKKwkJCQkJCQkJTlVMTCk7CisJCQlpZiAocmV0IDwgMCkKKwkJCQlyZXR1cm4gcmV0Owor CisJCQluZXdfY3J0Y19zdGF0ZS0+YWN0aXZlID0gZmFsc2U7CisJCX0KKwl9CisKKwlyZXR1cm4g MDsKK30KKworLyoganVzdCB1c2VkIGZyb20gZHJtX2NsaWVudCBhbmQgYXRvbWljLWhlbHBlcjog Ki8KK2ludCBkcm1fYXRvbWljX3NldF9jb25maWcoc3RydWN0IGRybV9tb2RlX3NldCAqc2V0LAor CQkJICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCit7CisJc3RydWN0IGRybV9jcnRj X3N0YXRlICpjcnRjX3N0YXRlOworCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnByaW1hcnlfc3Rh dGU7CisJc3RydWN0IGRybV9jcnRjICpjcnRjID0gc2V0LT5jcnRjOworCWludCBoZGlzcGxheSwg dmRpc3BsYXk7CisJaW50IHJldDsKKworCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jcnRj X3N0YXRlKHN0YXRlLCBjcnRjKTsKKwlpZiAoSVNfRVJSKGNydGNfc3RhdGUpKQorCQlyZXR1cm4g UFRSX0VSUihjcnRjX3N0YXRlKTsKKworCXByaW1hcnlfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9w bGFuZV9zdGF0ZShzdGF0ZSwgY3J0Yy0+cHJpbWFyeSk7CisJaWYgKElTX0VSUihwcmltYXJ5X3N0 YXRlKSkKKwkJcmV0dXJuIFBUUl9FUlIocHJpbWFyeV9zdGF0ZSk7CisKKwlpZiAoIXNldC0+bW9k ZSkgeworCQlXQVJOX09OKHNldC0+ZmIpOworCQlXQVJOX09OKHNldC0+bnVtX2Nvbm5lY3RvcnMp OworCisJCXJldCA9IGRybV9hdG9taWNfc2V0X21vZGVfZm9yX2NydGMoY3J0Y19zdGF0ZSwgTlVM TCk7CisJCWlmIChyZXQgIT0gMCkKKwkJCXJldHVybiByZXQ7CisKKwkJY3J0Y19zdGF0ZS0+YWN0 aXZlID0gZmFsc2U7CisKKwkJcmV0ID0gZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfcGxhbmUocHJp bWFyeV9zdGF0ZSwgTlVMTCk7CisJCWlmIChyZXQgIT0gMCkKKwkJCXJldHVybiByZXQ7CisKKwkJ ZHJtX2F0b21pY19zZXRfZmJfZm9yX3BsYW5lKHByaW1hcnlfc3RhdGUsIE5VTEwpOworCisJCWdv dG8gY29tbWl0OworCX0KKworCVdBUk5fT04oIXNldC0+ZmIpOworCVdBUk5fT04oIXNldC0+bnVt X2Nvbm5lY3RvcnMpOworCisJcmV0ID0gZHJtX2F0b21pY19zZXRfbW9kZV9mb3JfY3J0YyhjcnRj X3N0YXRlLCBzZXQtPm1vZGUpOworCWlmIChyZXQgIT0gMCkKKwkJcmV0dXJuIHJldDsKKworCWNy dGNfc3RhdGUtPmFjdGl2ZSA9IHRydWU7CisKKwlyZXQgPSBkcm1fYXRvbWljX3NldF9jcnRjX2Zv cl9wbGFuZShwcmltYXJ5X3N0YXRlLCBjcnRjKTsKKwlpZiAocmV0ICE9IDApCisJCXJldHVybiBy ZXQ7CisKKwlkcm1fbW9kZV9nZXRfaHZfdGltaW5nKHNldC0+bW9kZSwgJmhkaXNwbGF5LCAmdmRp c3BsYXkpOworCisJZHJtX2F0b21pY19zZXRfZmJfZm9yX3BsYW5lKHByaW1hcnlfc3RhdGUsIHNl dC0+ZmIpOworCXByaW1hcnlfc3RhdGUtPmNydGNfeCA9IDA7CisJcHJpbWFyeV9zdGF0ZS0+Y3J0 Y195ID0gMDsKKwlwcmltYXJ5X3N0YXRlLT5jcnRjX3cgPSBoZGlzcGxheTsKKwlwcmltYXJ5X3N0 YXRlLT5jcnRjX2ggPSB2ZGlzcGxheTsKKwlwcmltYXJ5X3N0YXRlLT5zcmNfeCA9IHNldC0+eCA8 PCAxNjsKKwlwcmltYXJ5X3N0YXRlLT5zcmNfeSA9IHNldC0+eSA8PCAxNjsKKwlpZiAoZHJtX3Jv dGF0aW9uXzkwX29yXzI3MChwcmltYXJ5X3N0YXRlLT5yb3RhdGlvbikpIHsKKwkJcHJpbWFyeV9z dGF0ZS0+c3JjX3cgPSB2ZGlzcGxheSA8PCAxNjsKKwkJcHJpbWFyeV9zdGF0ZS0+c3JjX2ggPSBo ZGlzcGxheSA8PCAxNjsKKwl9IGVsc2UgeworCQlwcmltYXJ5X3N0YXRlLT5zcmNfdyA9IGhkaXNw bGF5IDw8IDE2OworCQlwcmltYXJ5X3N0YXRlLT5zcmNfaCA9IHZkaXNwbGF5IDw8IDE2OworCX0K KworY29tbWl0OgorCXJldCA9IHVwZGF0ZV9vdXRwdXRfc3RhdGUoc3RhdGUsIHNldCk7CisJaWYg KHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiAwOworfQorRVhQT1JUX1NZTUJPTChkcm1f YXRvbWljX3NldF9jb25maWcpOworCiAvKioKICAqIERPQzogZXhwbGljaXQgZmVuY2luZyBwcm9w ZXJ0aWVzCiAgKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVy LmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwppbmRleCBlZTAzYzFlZDI1 MjEuLjRmMjBlYjU4ZGQ0ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNf aGVscGVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKQEAgLTI2 NzMsNyArMjY3Myw3IEBAIGludCBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lKHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAogCWlmIChwbGFuZV9zdGF0ZS0+Y3J0YyAmJiBwbGFuZV9zdGF0 ZS0+Y3J0Yy0+Y3Vyc29yID09IHBsYW5lKQogCQlwbGFuZV9zdGF0ZS0+c3RhdGUtPmxlZ2FjeV9j dXJzb3JfdXBkYXRlID0gdHJ1ZTsKIAotCXJldCA9IF9fZHJtX2F0b21pY19oZWxwZXJfZGlzYWJs ZV9wbGFuZShwbGFuZSwgcGxhbmVfc3RhdGUpOworCXJldCA9IGRybV9hdG9taWNfZGlzYWJsZV9w bGFuZShwbGFuZSwgcGxhbmVfc3RhdGUpOwogCWlmIChyZXQgIT0gMCkKIAkJZ290byBmYWlsOwog CkBAIC0yNjg0LDk1ICsyNjg0LDYgQEAgaW50IGRybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfcGxh bmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiB9CiBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNf aGVscGVyX2Rpc2FibGVfcGxhbmUpOwogCi0vKiBqdXN0IHVzZWQgZnJvbSBmYi1oZWxwZXIgYW5k IGF0b21pYy1oZWxwZXI6ICovCi1pbnQgX19kcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5l KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAotCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFu ZV9zdGF0ZSkKLXsKLQlpbnQgcmV0OwotCi0JcmV0ID0gZHJtX2F0b21pY19zZXRfY3J0Y19mb3Jf cGxhbmUocGxhbmVfc3RhdGUsIE5VTEwpOwotCWlmIChyZXQgIT0gMCkKLQkJcmV0dXJuIHJldDsK LQotCWRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZShwbGFuZV9zdGF0ZSwgTlVMTCk7Ci0JcGxh bmVfc3RhdGUtPmNydGNfeCA9IDA7Ci0JcGxhbmVfc3RhdGUtPmNydGNfeSA9IDA7Ci0JcGxhbmVf c3RhdGUtPmNydGNfdyA9IDA7Ci0JcGxhbmVfc3RhdGUtPmNydGNfaCA9IDA7Ci0JcGxhbmVfc3Rh dGUtPnNyY194ID0gMDsKLQlwbGFuZV9zdGF0ZS0+c3JjX3kgPSAwOwotCXBsYW5lX3N0YXRlLT5z cmNfdyA9IDA7Ci0JcGxhbmVfc3RhdGUtPnNyY19oID0gMDsKLQotCXJldHVybiAwOwotfQotCi1z dGF0aWMgaW50IHVwZGF0ZV9vdXRwdXRfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlLAotCQkJICAgICAgIHN0cnVjdCBkcm1fbW9kZV9zZXQgKnNldCkKLXsKLQlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gc2V0LT5jcnRjLT5kZXY7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjOwot CXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGU7Ci0Jc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvcjsKLQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X2Nvbm5f c3RhdGU7Ci0JaW50IHJldCwgaTsKLQotCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmRldi0+bW9k ZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCwKLQkJCSAgICAgICBzdGF0ZS0+YWNxdWlyZV9jdHgp OwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQkvKiBGaXJzdCBkaXNhYmxlIGFsbCBjb25u ZWN0b3JzIG9uIHRoZSB0YXJnZXQgY3J0Yy4gKi8KLQlyZXQgPSBkcm1fYXRvbWljX2FkZF9hZmZl Y3RlZF9jb25uZWN0b3JzKHN0YXRlLCBzZXQtPmNydGMpOwotCWlmIChyZXQpCi0JCXJldHVybiBy ZXQ7Ci0KLQlmb3JfZWFjaF9uZXdfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25uZWN0b3Is IG5ld19jb25uX3N0YXRlLCBpKSB7Ci0JCWlmIChuZXdfY29ubl9zdGF0ZS0+Y3J0YyA9PSBzZXQt PmNydGMpIHsKLQkJCXJldCA9IGRybV9hdG9taWNfc2V0X2NydGNfZm9yX2Nvbm5lY3RvcihuZXdf Y29ubl9zdGF0ZSwKLQkJCQkJCQkJTlVMTCk7Ci0JCQlpZiAocmV0KQotCQkJCXJldHVybiByZXQ7 Ci0KLQkJCS8qIE1ha2Ugc3VyZSBsZWdhY3kgc2V0Q3J0YyBhbHdheXMgcmUtdHJhaW5zICovCi0J CQluZXdfY29ubl9zdGF0ZS0+bGlua19zdGF0dXMgPSBEUk1fTElOS19TVEFUVVNfR09PRDsKLQkJ fQotCX0KLQotCS8qIFRoZW4gc2V0IGFsbCBjb25uZWN0b3JzIGZyb20gc2V0LT5jb25uZWN0b3Jz IG9uIHRoZSB0YXJnZXQgY3J0YyAqLwotCWZvciAoaSA9IDA7IGkgPCBzZXQtPm51bV9jb25uZWN0 b3JzOyBpKyspIHsKLQkJbmV3X2Nvbm5fc3RhdGUgPSBkcm1fYXRvbWljX2dldF9jb25uZWN0b3Jf c3RhdGUoc3RhdGUsCi0JCQkJCQkJICAgIHNldC0+Y29ubmVjdG9yc1tpXSk7Ci0JCWlmIChJU19F UlIobmV3X2Nvbm5fc3RhdGUpKQotCQkJcmV0dXJuIFBUUl9FUlIobmV3X2Nvbm5fc3RhdGUpOwot Ci0JCXJldCA9IGRybV9hdG9taWNfc2V0X2NydGNfZm9yX2Nvbm5lY3RvcihuZXdfY29ubl9zdGF0 ZSwKLQkJCQkJCQlzZXQtPmNydGMpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQl9Ci0K LQlmb3JfZWFjaF9uZXdfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgbmV3X2NydGNfc3RhdGUs IGkpIHsKLQkJLyogRG9uJ3QgdXBkYXRlIC0+ZW5hYmxlIGZvciB0aGUgQ1JUQyBpbiB0aGUgc2V0 X2NvbmZpZyByZXF1ZXN0LAotCQkgKiBzaW5jZSBhIG1pc21hdGNoIHdvdWxkIGluZGljYXRlIGEg YnVnIGluIHRoZSB1cHBlciBsYXllcnMuCi0JCSAqIFRoZSBhY3R1YWwgbW9kZXNldCBjb2RlIGxh dGVyIG9uIHdpbGwgY2F0Y2ggYW55Ci0JCSAqIGluY29uc2lzdGVuY2llcyBoZXJlLiAqLwotCQlp ZiAoY3J0YyA9PSBzZXQtPmNydGMpCi0JCQljb250aW51ZTsKLQotCQlpZiAoIW5ld19jcnRjX3N0 YXRlLT5jb25uZWN0b3JfbWFzaykgewotCQkJcmV0ID0gZHJtX2F0b21pY19zZXRfbW9kZV9wcm9w X2Zvcl9jcnRjKG5ld19jcnRjX3N0YXRlLAotCQkJCQkJCQlOVUxMKTsKLQkJCWlmIChyZXQgPCAw KQotCQkJCXJldHVybiByZXQ7Ci0KLQkJCW5ld19jcnRjX3N0YXRlLT5hY3RpdmUgPSBmYWxzZTsK LQkJfQotCX0KLQotCXJldHVybiAwOwotfQotCiAvKioKICAqIGRybV9hdG9taWNfaGVscGVyX3Nl dF9jb25maWcgLSBzZXQgYSBuZXcgY29uZmlnIGZyb20gdXNlcnNwYWNlCiAgKiBAc2V0OiBtb2Rl IHNldCBjb25maWd1cmF0aW9uCkBAIC0yODAxLDcgKzI3MTIsNyBAQCBpbnQgZHJtX2F0b21pY19o ZWxwZXJfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQsCiAJCXJldHVybiAtRU5P TUVNOwogCiAJc3RhdGUtPmFjcXVpcmVfY3R4ID0gY3R4OwotCXJldCA9IF9fZHJtX2F0b21pY19o ZWxwZXJfc2V0X2NvbmZpZyhzZXQsIHN0YXRlKTsKKwlyZXQgPSBkcm1fYXRvbWljX3NldF9jb25m aWcoc2V0LCBzdGF0ZSk7CiAJaWYgKHJldCAhPSAwKQogCQlnb3RvIGZhaWw7CiAKQEAgLTI4MTcs ODEgKzI3MjgsNiBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJt X21vZGVfc2V0ICpzZXQsCiB9CiBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfaGVscGVyX3NldF9j b25maWcpOwogCi0vKiBqdXN0IHVzZWQgZnJvbSBmYi1oZWxwZXIgYW5kIGF0b21pYy1oZWxwZXI6 ICovCi1pbnQgX19kcm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmlnKHN0cnVjdCBkcm1fbW9kZV9z ZXQgKnNldCwKLQkJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQotewotCXN0cnVjdCBk cm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKLQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwcmlt YXJ5X3N0YXRlOwotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHNldC0+Y3J0YzsKLQlpbnQgaGRp c3BsYXksIHZkaXNwbGF5OwotCWludCByZXQ7Ci0KLQljcnRjX3N0YXRlID0gZHJtX2F0b21pY19n ZXRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7Ci0JaWYgKElTX0VSUihjcnRjX3N0YXRlKSkKLQkJ cmV0dXJuIFBUUl9FUlIoY3J0Y19zdGF0ZSk7Ci0KLQlwcmltYXJ5X3N0YXRlID0gZHJtX2F0b21p Y19nZXRfcGxhbmVfc3RhdGUoc3RhdGUsIGNydGMtPnByaW1hcnkpOwotCWlmIChJU19FUlIocHJp bWFyeV9zdGF0ZSkpCi0JCXJldHVybiBQVFJfRVJSKHByaW1hcnlfc3RhdGUpOwotCi0JaWYgKCFz ZXQtPm1vZGUpIHsKLQkJV0FSTl9PTihzZXQtPmZiKTsKLQkJV0FSTl9PTihzZXQtPm51bV9jb25u ZWN0b3JzKTsKLQotCQlyZXQgPSBkcm1fYXRvbWljX3NldF9tb2RlX2Zvcl9jcnRjKGNydGNfc3Rh dGUsIE5VTEwpOwotCQlpZiAocmV0ICE9IDApCi0JCQlyZXR1cm4gcmV0OwotCi0JCWNydGNfc3Rh dGUtPmFjdGl2ZSA9IGZhbHNlOwotCi0JCXJldCA9IGRybV9hdG9taWNfc2V0X2NydGNfZm9yX3Bs YW5lKHByaW1hcnlfc3RhdGUsIE5VTEwpOwotCQlpZiAocmV0ICE9IDApCi0JCQlyZXR1cm4gcmV0 OwotCi0JCWRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZShwcmltYXJ5X3N0YXRlLCBOVUxMKTsK LQotCQlnb3RvIGNvbW1pdDsKLQl9Ci0KLQlXQVJOX09OKCFzZXQtPmZiKTsKLQlXQVJOX09OKCFz ZXQtPm51bV9jb25uZWN0b3JzKTsKLQotCXJldCA9IGRybV9hdG9taWNfc2V0X21vZGVfZm9yX2Ny dGMoY3J0Y19zdGF0ZSwgc2V0LT5tb2RlKTsKLQlpZiAocmV0ICE9IDApCi0JCXJldHVybiByZXQ7 Ci0KLQljcnRjX3N0YXRlLT5hY3RpdmUgPSB0cnVlOwotCi0JcmV0ID0gZHJtX2F0b21pY19zZXRf Y3J0Y19mb3JfcGxhbmUocHJpbWFyeV9zdGF0ZSwgY3J0Yyk7Ci0JaWYgKHJldCAhPSAwKQotCQly ZXR1cm4gcmV0OwotCi0JZHJtX21vZGVfZ2V0X2h2X3RpbWluZyhzZXQtPm1vZGUsICZoZGlzcGxh eSwgJnZkaXNwbGF5KTsKLQotCWRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZShwcmltYXJ5X3N0 YXRlLCBzZXQtPmZiKTsKLQlwcmltYXJ5X3N0YXRlLT5jcnRjX3ggPSAwOwotCXByaW1hcnlfc3Rh dGUtPmNydGNfeSA9IDA7Ci0JcHJpbWFyeV9zdGF0ZS0+Y3J0Y193ID0gaGRpc3BsYXk7Ci0JcHJp bWFyeV9zdGF0ZS0+Y3J0Y19oID0gdmRpc3BsYXk7Ci0JcHJpbWFyeV9zdGF0ZS0+c3JjX3ggPSBz ZXQtPnggPDwgMTY7Ci0JcHJpbWFyeV9zdGF0ZS0+c3JjX3kgPSBzZXQtPnkgPDwgMTY7Ci0JaWYg KGRybV9yb3RhdGlvbl85MF9vcl8yNzAocHJpbWFyeV9zdGF0ZS0+cm90YXRpb24pKSB7Ci0JCXBy aW1hcnlfc3RhdGUtPnNyY193ID0gdmRpc3BsYXkgPDwgMTY7Ci0JCXByaW1hcnlfc3RhdGUtPnNy Y19oID0gaGRpc3BsYXkgPDwgMTY7Ci0JfSBlbHNlIHsKLQkJcHJpbWFyeV9zdGF0ZS0+c3JjX3cg PSBoZGlzcGxheSA8PCAxNjsKLQkJcHJpbWFyeV9zdGF0ZS0+c3JjX2ggPSB2ZGlzcGxheSA8PCAx NjsKLQl9Ci0KLWNvbW1pdDoKLQlyZXQgPSB1cGRhdGVfb3V0cHV0X3N0YXRlKHN0YXRlLCBzZXQp OwotCWlmIChyZXQpCi0JCXJldHVybiByZXQ7Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIGlu dCBfX2RybV9hdG9taWNfaGVscGVyX2Rpc2FibGVfYWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs CiAJCQkJCSAgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4LAogCQkJCQkgICBi b29sIGNsZWFuX29sZF9mYnMpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hl bHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwppbmRleCBkMDkzNjY3MWE5 YTYuLjJlZWYyNGRiMjFmOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxw ZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5jCkBAIC0zNTgsNyArMzU4 LDcgQEAgc3RhdGljIGludCByZXN0b3JlX2ZiZGV2X21vZGVfYXRvbWljKHN0cnVjdCBkcm1fZmJf aGVscGVyICpmYl9oZWxwZXIsIGJvb2wgYWN0aXYKIAkJaWYgKHBsYW5lLT50eXBlID09IERSTV9Q TEFORV9UWVBFX1BSSU1BUlkpCiAJCQljb250aW51ZTsKIAotCQlyZXQgPSBfX2RybV9hdG9taWNf aGVscGVyX2Rpc2FibGVfcGxhbmUocGxhbmUsIHBsYW5lX3N0YXRlKTsKKwkJcmV0ID0gZHJtX2F0 b21pY19kaXNhYmxlX3BsYW5lKHBsYW5lLCBwbGFuZV9zdGF0ZSk7CiAJCWlmIChyZXQgIT0gMCkK IAkJCWdvdG8gb3V0X3N0YXRlOwogCX0KQEAgLTM3NCwxMyArMzc0LDEzIEBAIHN0YXRpYyBpbnQg cmVzdG9yZV9mYmRldl9tb2RlX2F0b21pYyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVy LCBib29sIGFjdGl2CiAJCQlwbGFuZV9zdGF0ZS0+cm90YXRpb24gPSByb3RhdGlvbjsKIAkJfQog Ci0JCXJldCA9IF9fZHJtX2F0b21pY19oZWxwZXJfc2V0X2NvbmZpZyhtb2RlX3NldCwgc3RhdGUp OworCQlyZXQgPSBkcm1fYXRvbWljX3NldF9jb25maWcobW9kZV9zZXQsIHN0YXRlKTsKIAkJaWYg KHJldCAhPSAwKQogCQkJZ290byBvdXRfc3RhdGU7CiAKIAkJLyoKLQkJICogX19kcm1fYXRvbWlj X2hlbHBlcl9zZXRfY29uZmlnKCkgc2V0cyBhY3RpdmUgd2hlbiBhCi0JCSAqIG1vZGUgaXMgc2V0 LCB1bmNvbmRpdGlvbmFsbHkgY2xlYXIgaXQgaWYgd2UgZm9yY2UgRFBNUyBvZmYKKwkJICogZHJt X2F0b21pY19zZXRfY29uZmlnKCkgc2V0cyBhY3RpdmUgd2hlbiBhIG1vZGUgaXMgc2V0LAorCQkg KiB1bmNvbmRpdGlvbmFsbHkgY2xlYXIgaXQgaWYgd2UgZm9yY2UgRFBNUyBvZmYKIAkJICovCiAJ CWlmICghYWN0aXZlKSB7CiAJCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBtb2RlX3NldC0+Y3J0 YzsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaCBiL2luY2x1ZGUvZHJtL2Ry bV9hdG9taWMuaAppbmRleCBhNTdhOGFhOTBmZmIuLjBiMDgyN2ZmMjE2OSAxMDA2NDQKLS0tIGEv aW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaApA QCAtNjA0LDYgKzYwNCwxMSBAQCBkcm1fYXRvbWljX2FkZF9hZmZlY3RlZF9wbGFuZXMoc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAogdm9pZAogZHJtX2F0b21pY19jbGVhbl9vbGRfZmIo c3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgcGxhbmVfbWFzaywgaW50IHJldCk7CiAK K2ludCBkcm1fYXRvbWljX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJ CQkgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsKK2ludCBkcm1fYXRv bWljX3NldF9jb25maWcoc3RydWN0IGRybV9tb2RlX3NldCAqc2V0LAorCQkJICBzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUpOworCiBpbnQgX19tdXN0X2NoZWNrIGRybV9hdG9taWNfY2hl Y2tfb25seShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwogaW50IF9fbXVzdF9jaGVj ayBkcm1fYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwogaW50 IF9fbXVzdF9jaGVjayBkcm1fYXRvbWljX25vbmJsb2NraW5nX2NvbW1pdChzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19o ZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmgKaW5kZXggMjZhYWJhNThk NmNlLi44ZDg4YThiMmFkNTIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVs cGVyLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaApAQCAtMTE0LDEyICsx MTQsOCBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxh bmUgKnBsYW5lLAogCQkJCSAgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KTsK IGludCBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lLAogCQkJCSAgICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCk7Ci1pbnQg X19kcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5l LAotCQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSk7CiBpbnQgZHJtX2F0b21p Y19oZWxwZXJfc2V0X2NvbmZpZyhzdHJ1Y3QgZHJtX21vZGVfc2V0ICpzZXQsCiAJCQkJIHN0cnVj dCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqY3R4KTsKLWludCBfX2RybV9hdG9taWNfaGVscGVy X3NldF9jb25maWcoc3RydWN0IGRybV9tb2RlX3NldCAqc2V0LAotCQlzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUpOwogCiBpbnQgZHJtX2F0b21pY19oZWxwZXJfZGlzYWJsZV9hbGwoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkgIHN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0 eCAqY3R4KTsKLS0gCjIuMTUuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==