From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrzej Hajda Subject: [PATCH v2 RESEND 03/24] drm/exynos: drop exynos_drm_plane_config structure Date: Wed, 20 Mar 2019 14:06:46 +0100 Message-ID: <20190320130707.25161-4-a.hajda@samsung.com> References: <20190320130707.25161-1-a.hajda@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8247589D4B for ; Wed, 20 Mar 2019 13:07:15 +0000 (UTC) In-reply-to: <20190320130707.25161-1-a.hajda@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Inki Dae Cc: linux-samsung-soc@vger.kernel.org, Bartlomiej Zolnierkiewicz , Krzysztof Kozlowski , dri-devel@lists.freedesktop.org, Marek Szyprowski List-Id: dri-devel@lists.freedesktop.org ZXh5bm9zX2RybV9wbGFuZV9jb25maWcgbXVzdCBiZSBwcmVzZW50IGZvciBldmVyeSBwbGFuZSwg YW5kIG1vc3QgZmllbGRzCmFyZSByZWR1bmRhbnQgd2l0aCBleHlub3NfZHJtX3BsYW5lOgotIHBp eGVsX2Zvcm1hdHMsIG51bV9waXhlbF9mb3JtYXRzIGFyZSBzdG9yZWQgaW4gcGxhbmUuYmFzZS5m b3JtYXRfKiwKLSB0eXBlIGlzIHN0b3JlZCBpbiBwbGFuZS5iYXNlLnR5cGUsCi0genBvcyBpcyBh bHdheXMgZXF1YWwgdG8gcGxhbmUuaW5kZXguClRoZSBvbmx5IG5vbi1yZWR1bmRhbnQgZmllbGQg Y2FwYWJpbGl0aWVzIGNhbiBiZSBtb3ZlZCB0byBleHlub3NfZHJtX3BsYW5lLgpBcyBjb25zZXF1 ZW5jZSBvZiByZW1vdmluZyB0aGUgc3RydWN0dXJlIHNvbWUgY29kZSBzaG91bGQgYmUgcmVmYWN0 b3JlZC4KVGhlIHBhdGNoIHNob3VsZCBub3QgaGF2ZSBmdW5jdGlvbmFsIGNoYW5nZXMuCgpTaWdu ZWQtb2ZmLWJ5OiBBbmRyemVqIEhhamRhIDxhLmhhamRhQHNhbXN1bmcuY29tPgotLS0KIGRyaXZl cnMvZ3B1L2RybS9leHlub3MvZXh5bm9zNTQzM19kcm1fZGVjb24uYyB8IDE4ICsrKy0tLQogZHJp dmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3M3X2RybV9kZWNvbi5jICAgIHwgMTEgKy0tLQogZHJp dmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2Rydi5oICAgICAgIHwgMzkgKysrKy0tLS0t LS0tLQogZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2ZpbWQuYyAgICAgIHwgMTcg KystLS0tCiBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fcGxhbmUuYyAgICAgfCA1 NiArKysrKysrKystLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV92 aWRpLmMgICAgICB8IDExICstLS0KIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX21peGVy LmMgICAgICAgICB8IDU4ICsrKysrKystLS0tLS0tLS0tLS0KIDcgZmlsZXMgY2hhbmdlZCwgNzYg aW5zZXJ0aW9ucygrKSwgMTM0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9leHlub3MvZXh5bm9zNTQzM19kcm1fZGVjb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlu b3MvZXh5bm9zNTQzM19kcm1fZGVjb24uYwppbmRleCAyNGRmMGIzMDdiMmYuLmFlMGY0NzVlYjYz MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3M1NDMzX2RybV9kZWNv bi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zNTQzM19kcm1fZGVjb24uYwpA QCAtNTYsNyArNTYsNiBAQCBzdHJ1Y3QgZGVjb25fY29udGV4dCB7CiAJc3RydWN0IGRybV9kZXZp Y2UJCSpkcm1fZGV2OwogCXN0cnVjdCBleHlub3NfZHJtX2NydGMJCSpjcnRjOwogCXN0cnVjdCBl eHlub3NfZHJtX3BsYW5lCQlwbGFuZXNbV0lORE9XU19OUl07Ci0Jc3RydWN0IGV4eW5vc19kcm1f cGxhbmVfY29uZmlnCWNvbmZpZ3NbV0lORE9XU19OUl07CiAJdm9pZCBfX2lvbWVtCQkJKmFkZHI7 CiAJc3RydWN0IHJlZ21hcAkJCSpzeXNyZWc7CiAJc3RydWN0IGNsawkJCSpjbGtzW0FSUkFZX1NJ WkUoZGVjb25fY2xrc19uYW1lKV07CkBAIC02MDgsMjIgKzYwNywxOSBAQCBzdGF0aWMgaW50IGRl Y29uX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQg KmRhdGEpCiAJc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYgPSBkYXRhOwogCXN0cnVjdCBleHlu b3NfZHJtX3BsYW5lICpleHlub3NfcGxhbmU7CiAJZW51bSBleHlub3NfZHJtX291dHB1dF90eXBl IG91dF90eXBlOwotCXVuc2lnbmVkIGludCB3aW47CisJdW5zaWduZWQgaW50IGk7CiAJaW50IHJl dDsKIAogCWN0eC0+ZHJtX2RldiA9IGRybV9kZXY7CiAKLQlmb3IgKHdpbiA9IGN0eC0+Zmlyc3Rf d2luOyB3aW4gPCBXSU5ET1dTX05SOyB3aW4rKykgewotCQljdHgtPmNvbmZpZ3Nbd2luXS5waXhl bF9mb3JtYXRzID0gZGVjb25fZm9ybWF0czsKLQkJY3R4LT5jb25maWdzW3dpbl0ubnVtX3BpeGVs X2Zvcm1hdHMgPSBBUlJBWV9TSVpFKGRlY29uX2Zvcm1hdHMpOwotCQljdHgtPmNvbmZpZ3Nbd2lu XS56cG9zID0gd2luIC0gY3R4LT5maXJzdF93aW47Ci0JCWN0eC0+Y29uZmlnc1t3aW5dLnR5cGUg PSBkZWNvbl93aW5fdHlwZXNbd2luXTsKLQkJY3R4LT5jb25maWdzW3dpbl0uY2FwYWJpbGl0aWVz ID0gRVhZTk9TX0RSTV9QTEFORV9DQVBfWlBPUworCWZvciAoaSA9IGN0eC0+Zmlyc3Rfd2luOyBp IDwgV0lORE9XU19OUjsgaSsrKSB7CisJCWN0eC0+cGxhbmVzW2ldLmluZGV4ID0gaSAtIGN0eC0+ Zmlyc3Rfd2luOworCQljdHgtPnBsYW5lc1tpXS5jYXBhYmlsaXRpZXMgPSBFWFlOT1NfRFJNX1BM QU5FX0NBUF9aUE9TCiAJCQkJCXwgRVhZTk9TX0RSTV9QTEFORV9DQVBfV0lOX0JMRU5ECiAJCQkJ CXwgRVhZTk9TX0RSTV9QTEFORV9DQVBfUElYX0JMRU5EOwotCi0JCXJldCA9IGV4eW5vc19wbGFu ZV9pbml0KGRybV9kZXYsICZjdHgtPnBsYW5lc1t3aW5dLCB3aW4sCi0JCQkJCSZjdHgtPmNvbmZp Z3Nbd2luXSk7CisJCXJldCA9IGV4eW5vc19wbGFuZV9pbml0KGRybV9kZXYsICZjdHgtPnBsYW5l c1tpXSwKKwkJCWRlY29uX2Zvcm1hdHMsIEFSUkFZX1NJWkUoZGVjb25fZm9ybWF0cyksCisJCQlk ZWNvbl93aW5fdHlwZXNbaV0pOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAl9CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vczdfZHJtX2RlY29uLmMgYi9kcml2 ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vczdfZHJtX2RlY29uLmMKaW5kZXggODEyOTQxYjg0Mjg3 Li42ZDQ2MmYwNTc1MzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9z N19kcm1fZGVjb24uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vczdfZHJtX2Rl Y29uLmMKQEAgLTQ0LDcgKzQ0LDYgQEAgc3RydWN0IGRlY29uX2NvbnRleHQgewogCXN0cnVjdCBk cm1fZGV2aWNlCQkqZHJtX2RldjsKIAlzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjCQkqY3J0YzsKIAlz dHJ1Y3QgZXh5bm9zX2RybV9wbGFuZQkJcGxhbmVzW1dJTkRPV1NfTlJdOwotCXN0cnVjdCBleHlu b3NfZHJtX3BsYW5lX2NvbmZpZwljb25maWdzW1dJTkRPV1NfTlJdOwogCXN0cnVjdCBjbGsJCQkq cGNsazsKIAlzdHJ1Y3QgY2xrCQkJKmFjbGs7CiAJc3RydWN0IGNsawkJCSplY2xrOwpAQCAtNjI2 LDEzICs2MjUsOSBAQCBzdGF0aWMgaW50IGRlY29uX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBz dHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRhdGEpCiAJfQogCiAJZm9yIChpID0gMDsgaSA8 IFdJTkRPV1NfTlI7IGkrKykgewotCQljdHgtPmNvbmZpZ3NbaV0ucGl4ZWxfZm9ybWF0cyA9IGRl Y29uX2Zvcm1hdHM7Ci0JCWN0eC0+Y29uZmlnc1tpXS5udW1fcGl4ZWxfZm9ybWF0cyA9IEFSUkFZ X1NJWkUoZGVjb25fZm9ybWF0cyk7Ci0JCWN0eC0+Y29uZmlnc1tpXS56cG9zID0gaTsKLQkJY3R4 LT5jb25maWdzW2ldLnR5cGUgPSBkZWNvbl93aW5fdHlwZXNbaV07Ci0KLQkJcmV0ID0gZXh5bm9z X3BsYW5lX2luaXQoZHJtX2RldiwgJmN0eC0+cGxhbmVzW2ldLCBpLAotCQkJCQkmY3R4LT5jb25m aWdzW2ldKTsKKwkJY3R4LT5wbGFuZXNbaV0uaW5kZXggPSBpOworCQlyZXQgPSBleHlub3NfcGxh bmVfaW5pdChkcm1fZGV2LCAmY3R4LT5wbGFuZXNbaV0sIGRlY29uX2Zvcm1hdHMsCisJCQlBUlJB WV9TSVpFKGRlY29uX2Zvcm1hdHMpLCBkZWNvbl93aW5fdHlwZXNbaV0pOwogCQlpZiAocmV0KQog CQkJcmV0dXJuIHJldDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4 eW5vc19kcm1fZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHJ2LmgK aW5kZXggMWY2YmI1NTE2MTcwLi4xZDRlZjAyNDU5NTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9leHlub3MvZXh5bm9zX2RybV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9z L2V4eW5vc19kcm1fZHJ2LmgKQEAgLTcxLDExICs3MSwxOSBAQCB0b19leHlub3NfcGxhbmVfc3Rh dGUoc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUpCiAJcmV0dXJuIGNvbnRhaW5lcl9vZihz dGF0ZSwgc3RydWN0IGV4eW5vc19kcm1fcGxhbmVfc3RhdGUsIGJhc2UpOwogfQogCisjZGVmaW5l IEVYWU5PU19EUk1fUExBTkVfQ0FQX0RPVUJMRQkoMSA8PCAwKQorI2RlZmluZSBFWFlOT1NfRFJN X1BMQU5FX0NBUF9TQ0FMRQkoMSA8PCAxKQorI2RlZmluZSBFWFlOT1NfRFJNX1BMQU5FX0NBUF9a UE9TCSgxIDw8IDIpCisjZGVmaW5lIEVYWU5PU19EUk1fUExBTkVfQ0FQX1RJTEUJKDEgPDwgMykK KyNkZWZpbmUgRVhZTk9TX0RSTV9QTEFORV9DQVBfUElYX0JMRU5ECSgxIDw8IDQpCisjZGVmaW5l IEVYWU5PU19EUk1fUExBTkVfQ0FQX1dJTl9CTEVORAkoMSA8PCA1KQorCiAvKgogICogRXh5bm9z IGRybSBjb21tb24gb3ZlcmxheSBzdHJ1Y3R1cmUuCiAgKgogICogQGJhc2U6IHBsYW5lIG9iamVj dAogICogQGluZGV4OiBoYXJkd2FyZSBpbmRleCBvZiB0aGUgb3ZlcmxheSBsYXllcgorICogQGNh cGFiaWxpdGllczogc3VwcG9ydGVkIGZlYXR1cmVzIChzZWUgRVhZTk9TX0RSTV9QTEFORV9DQVBf KikKICAqCiAgKiB0aGlzIHN0cnVjdHVyZSBpcyBjb21tb24gdG8gZXh5bm9zIFNvQyBhbmQgaXRz IGNvbnRlbnRzIHdvdWxkIGJlIGNvcGllZAogICogdG8gaGFyZHdhcmUgc3BlY2lmaWMgb3Zlcmxh eSBpbmZvLgpAQCAtODMsMzggKzkxLDEzIEBAIHRvX2V4eW5vc19wbGFuZV9zdGF0ZShzdHJ1Y3Qg ZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKIAogc3RydWN0IGV4eW5vc19kcm1fcGxhbmUgewogCXN0 cnVjdCBkcm1fcGxhbmUgYmFzZTsKLQljb25zdCBzdHJ1Y3QgZXh5bm9zX2RybV9wbGFuZV9jb25m aWcgKmNvbmZpZzsKIAl1bnNpZ25lZCBpbnQgaW5kZXg7Ci19OwotCi0jZGVmaW5lIEVYWU5PU19E Uk1fUExBTkVfQ0FQX0RPVUJMRQkoMSA8PCAwKQotI2RlZmluZSBFWFlOT1NfRFJNX1BMQU5FX0NB UF9TQ0FMRQkoMSA8PCAxKQotI2RlZmluZSBFWFlOT1NfRFJNX1BMQU5FX0NBUF9aUE9TCSgxIDw8 IDIpCi0jZGVmaW5lIEVYWU5PU19EUk1fUExBTkVfQ0FQX1RJTEUJKDEgPDwgMykKLSNkZWZpbmUg RVhZTk9TX0RSTV9QTEFORV9DQVBfUElYX0JMRU5ECSgxIDw8IDQpCi0jZGVmaW5lIEVYWU5PU19E Uk1fUExBTkVfQ0FQX1dJTl9CTEVORAkoMSA8PCA1KQotCi0vKgotICogRXh5bm9zIERSTSBwbGFu ZSBjb25maWd1cmF0aW9uIHN0cnVjdHVyZS4KLSAqCi0gKiBAenBvczogaW5pdGlhbCB6LXBvc2l0 aW9uIG9mIHRoZSBwbGFuZS4KLSAqIEB0eXBlOiB0eXBlIG9mIHRoZSBwbGFuZSAocHJpbWFyeSwg Y3Vyc29yIG9yIG92ZXJsYXkpLgotICogQHBpeGVsX2Zvcm1hdHM6IHN1cHBvcnRlZCBwaXhlbCBm b3JtYXRzLgotICogQG51bV9waXhlbF9mb3JtYXRzOiBudW1iZXIgb2YgZWxlbWVudHMgaW4gJ3Bp eGVsX2Zvcm1hdHMnLgotICogQGNhcGFiaWxpdGllczogc3VwcG9ydGVkIGZlYXR1cmVzIChzZWUg RVhZTk9TX0RSTV9QTEFORV9DQVBfKikKLSAqLwotCi1zdHJ1Y3QgZXh5bm9zX2RybV9wbGFuZV9j b25maWcgewotCXVuc2lnbmVkIGludCB6cG9zOwotCWVudW0gZHJtX3BsYW5lX3R5cGUgdHlwZTsK LQljb25zdCB1aW50MzJfdCAqcGl4ZWxfZm9ybWF0czsKLQl1bnNpZ25lZCBpbnQgbnVtX3BpeGVs X2Zvcm1hdHM7CiAJdW5zaWduZWQgaW50IGNhcGFiaWxpdGllczsKIH07CiAKLWludCBleHlub3Nf cGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkgICAgICBzdHJ1Y3QgZXh5bm9z X2RybV9wbGFuZSAqZXh5bm9zX3BsYW5lLCB1bnNpZ25lZCBpbnQgaW5kZXgsCi0JCSAgICAgIGNv bnN0IHN0cnVjdCBleHlub3NfZHJtX3BsYW5lX2NvbmZpZyAqY29uZmlnKTsKK2ludCBleHlub3Nf cGxhbmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZXh5bm9zX2RybV9wbGFu ZSAqcGxhbmUsCisJCSAgICAgIGNvbnN0IHVpbnQzMl90ICpwaXhlbF9mb3JtYXRzLCBpbnQgbnVt X3BpeGVsX2Zvcm1hdHMsCisJCSAgICAgIGVudW0gZHJtX3BsYW5lX3R5cGUgdHlwZSk7CiAKIC8q CiAgKiBFeHlub3MgZHJtIGNydGMgb3BzCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5 bm9zL2V4eW5vc19kcm1fZmltZC5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJt X2ZpbWQuYwppbmRleCBiMWE5NTAyYTQxNDAuLjJkMzRjYTM3NWVlMSAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2ZpbWQuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vZXh5bm9zL2V4eW5vc19kcm1fZmltZC5jCkBAIC0xNzEsNyArMTcxLDYgQEAgc3RydWN0IGZp bWRfY29udGV4dCB7CiAJc3RydWN0IGRybV9kZXZpY2UJCSpkcm1fZGV2OwogCXN0cnVjdCBleHlu b3NfZHJtX2NydGMJCSpjcnRjOwogCXN0cnVjdCBleHlub3NfZHJtX3BsYW5lCQlwbGFuZXNbV0lO RE9XU19OUl07Ci0Jc3RydWN0IGV4eW5vc19kcm1fcGxhbmVfY29uZmlnCWNvbmZpZ3NbV0lORE9X U19OUl07CiAJc3RydWN0IGNsawkJCSpidXNfY2xrOwogCXN0cnVjdCBjbGsJCQkqbGNkX2NsazsK IAl2b2lkIF9faW9tZW0JCQkqcmVnczsKQEAgLTEwNDQsMTYgKzEwNDMsMTIgQEAgc3RhdGljIGlu dCBmaW1kX2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZv aWQgKmRhdGEpCiAJY3R4LT5kcm1fZGV2ID0gZHJtX2RldjsKIAogCWZvciAoaSA9IDA7IGkgPCBX SU5ET1dTX05SOyBpKyspIHsKLQkJY3R4LT5jb25maWdzW2ldLnBpeGVsX2Zvcm1hdHMgPSBmaW1k X2Zvcm1hdHM7Ci0JCWN0eC0+Y29uZmlnc1tpXS5udW1fcGl4ZWxfZm9ybWF0cyA9IEFSUkFZX1NJ WkUoZmltZF9mb3JtYXRzKTsKLQkJY3R4LT5jb25maWdzW2ldLnpwb3MgPSBpOwotCQljdHgtPmNv bmZpZ3NbaV0udHlwZSA9IGZpbWRfd2luX3R5cGVzW2ldOwotCQljdHgtPmNvbmZpZ3NbaV0uY2Fw YWJpbGl0aWVzID0gRVhZTk9TX0RSTV9QTEFORV9DQVBfWlBPUwotCQkJCQkgICAgIHwgRVhZTk9T X0RSTV9QTEFORV9DQVBfV0lOX0JMRU5ECi0JCQkJCSAgICAgfCBFWFlOT1NfRFJNX1BMQU5FX0NB UF9QSVhfQkxFTkQ7Ci0KLQkJcmV0ID0gZXh5bm9zX3BsYW5lX2luaXQoZHJtX2RldiwgJmN0eC0+ cGxhbmVzW2ldLCBpLAotCQkJCQkmY3R4LT5jb25maWdzW2ldKTsKKwkJY3R4LT5wbGFuZXNbaV0u aW5kZXggPSBpOworCQljdHgtPnBsYW5lc1tpXS5jYXBhYmlsaXRpZXMgPSBFWFlOT1NfRFJNX1BM QU5FX0NBUF9aUE9TCisJCQkJCSAgICB8IEVYWU5PU19EUk1fUExBTkVfQ0FQX1dJTl9CTEVORAor CQkJCQkgICAgfCBFWFlOT1NfRFJNX1BMQU5FX0NBUF9QSVhfQkxFTkQ7CisJCXJldCA9IGV4eW5v c19wbGFuZV9pbml0KGRybV9kZXYsICZjdHgtPnBsYW5lc1tpXSwgZmltZF9mb3JtYXRzLAorCQkJ CUFSUkFZX1NJWkUoZmltZF9mb3JtYXRzKSwgZmltZF93aW5fdHlwZXNbaV0pOwogCQlpZiAocmV0 KQogCQkJcmV0dXJuIHJldDsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9z L2V4eW5vc19kcm1fcGxhbmUuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9w bGFuZS5jCmluZGV4IDhhZjBlYmEzZjM2Mi4uZTFhYTUwNDUzOWZhIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fcGxhbmUuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vZXh5bm9zL2V4eW5vc19kcm1fcGxhbmUuYwpAQCAtMTM4LDcgKzEzOCw3IEBAIHN0YXRpYyB2 b2lkIGV4eW5vc19kcm1fcGxhbmVfcmVzZXQoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCiAJZXh5 bm9zX3N0YXRlID0ga3phbGxvYyhzaXplb2YoKmV4eW5vc19zdGF0ZSksIEdGUF9LRVJORUwpOwog CWlmIChleHlub3Nfc3RhdGUpIHsKIAkJX19kcm1fYXRvbWljX2hlbHBlcl9wbGFuZV9yZXNldChw bGFuZSwgJmV4eW5vc19zdGF0ZS0+YmFzZSk7Ci0JCXBsYW5lLT5zdGF0ZS0+enBvcyA9IGV4eW5v c19wbGFuZS0+Y29uZmlnLT56cG9zOworCQlwbGFuZS0+c3RhdGUtPnpwb3MgPSBleHlub3NfcGxh bmUtPmluZGV4OwogCX0KIH0KIApAQCAtMTc2LDE0ICsxNzYsMTQgQEAgc3RhdGljIHN0cnVjdCBk cm1fcGxhbmVfZnVuY3MgZXh5bm9zX3BsYW5lX2Z1bmNzID0gewogfTsKIAogc3RhdGljIGludAot ZXh5bm9zX2RybV9wbGFuZV9jaGVja19mb3JtYXQoY29uc3Qgc3RydWN0IGV4eW5vc19kcm1fcGxh bmVfY29uZmlnICpjb25maWcsCi0JCQkgICAgICBzdHJ1Y3QgZXh5bm9zX2RybV9wbGFuZV9zdGF0 ZSAqc3RhdGUpCitleHlub3NfZHJtX3BsYW5lX2NoZWNrX2Zvcm1hdChzdHJ1Y3QgZXh5bm9zX2Ry bV9wbGFuZV9zdGF0ZSAqc3RhdGUpCiB7CisJc3RydWN0IGV4eW5vc19kcm1fcGxhbmUgKnBsYW5l ID0gdG9fZXh5bm9zX3BsYW5lKHN0YXRlLT5iYXNlLnBsYW5lKTsKIAlzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiA9IHN0YXRlLT5iYXNlLmZiOwogCiAJc3dpdGNoIChmYi0+bW9kaWZpZXIpIHsK IAljYXNlIERSTV9GT1JNQVRfTU9EX1NBTVNVTkdfNjRfMzJfVElMRToKLQkJaWYgKCEoY29uZmln LT5jYXBhYmlsaXRpZXMgJiBFWFlOT1NfRFJNX1BMQU5FX0NBUF9USUxFKSkKKwkJaWYgKCEocGxh bmUtPmNhcGFiaWxpdGllcyAmIEVYWU5PU19EUk1fUExBTkVfQ0FQX1RJTEUpKQogCQkJcmV0dXJu IC1FTk9UU1VQUDsKIAkJYnJlYWs7CiAKQEAgLTE5OSwxMiArMTk5LDEyIEBAIGV4eW5vc19kcm1f cGxhbmVfY2hlY2tfZm9ybWF0KGNvbnN0IHN0cnVjdCBleHlub3NfZHJtX3BsYW5lX2NvbmZpZyAq Y29uZmlnLAogfQogCiBzdGF0aWMgaW50Ci1leHlub3NfZHJtX3BsYW5lX2NoZWNrX3NpemUoY29u c3Qgc3RydWN0IGV4eW5vc19kcm1fcGxhbmVfY29uZmlnICpjb25maWcsCi0JCQkgICAgc3RydWN0 IGV4eW5vc19kcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQorZXh5bm9zX2RybV9wbGFuZV9jaGVja19z aXplKHN0cnVjdCBleHlub3NfZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSkKIHsKKwlzdHJ1Y3QgZXh5 bm9zX2RybV9wbGFuZSAqcGxhbmUgPSB0b19leHlub3NfcGxhbmUoc3RhdGUtPmJhc2UucGxhbmUp OwogCWJvb2wgd2lkdGhfb2sgPSBmYWxzZSwgaGVpZ2h0X29rID0gZmFsc2U7CiAKLQlpZiAoY29u ZmlnLT5jYXBhYmlsaXRpZXMgJiBFWFlOT1NfRFJNX1BMQU5FX0NBUF9TQ0FMRSkKKwlpZiAocGxh bmUtPmNhcGFiaWxpdGllcyAmIEVYWU5PU19EUk1fUExBTkVfQ0FQX1NDQUxFKQogCQlyZXR1cm4g MDsKIAogCWlmIChzdGF0ZS0+c3JjLncgPT0gc3RhdGUtPmNydGMudykKQEAgLTIxMywxMSArMjEz LDExIEBAIGV4eW5vc19kcm1fcGxhbmVfY2hlY2tfc2l6ZShjb25zdCBzdHJ1Y3QgZXh5bm9zX2Ry bV9wbGFuZV9jb25maWcgKmNvbmZpZywKIAlpZiAoc3RhdGUtPnNyYy5oID09IHN0YXRlLT5jcnRj LmgpCiAJCWhlaWdodF9vayA9IHRydWU7CiAKLQlpZiAoKGNvbmZpZy0+Y2FwYWJpbGl0aWVzICYg RVhZTk9TX0RSTV9QTEFORV9DQVBfRE9VQkxFKSAmJgorCWlmICgocGxhbmUtPmNhcGFiaWxpdGll cyAmIEVYWU5PU19EUk1fUExBTkVfQ0FQX0RPVUJMRSkgJiYKIAkgICAgc3RhdGUtPmhfcmF0aW8g PT0gKDEgPDwgMTUpKQogCQl3aWR0aF9vayA9IHRydWU7CiAKLQlpZiAoKGNvbmZpZy0+Y2FwYWJp bGl0aWVzICYgRVhZTk9TX0RSTV9QTEFORV9DQVBfRE9VQkxFKSAmJgorCWlmICgocGxhbmUtPmNh cGFiaWxpdGllcyAmIEVYWU5PU19EUk1fUExBTkVfQ0FQX0RPVUJMRSkgJiYKIAkgICAgc3RhdGUt PnZfcmF0aW8gPT0gKDEgPDwgMTUpKQogCQloZWlnaHRfb2sgPSB0cnVlOwogCkBAIC0yMzEsNyAr MjMxLDYgQEAgZXh5bm9zX2RybV9wbGFuZV9jaGVja19zaXplKGNvbnN0IHN0cnVjdCBleHlub3Nf ZHJtX3BsYW5lX2NvbmZpZyAqY29uZmlnLAogc3RhdGljIGludCBleHlub3NfcGxhbmVfYXRvbWlj X2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCQkJCSAgICAgc3RydWN0IGRybV9wbGFu ZV9zdGF0ZSAqc3RhdGUpCiB7Ci0Jc3RydWN0IGV4eW5vc19kcm1fcGxhbmUgKmV4eW5vc19wbGFu ZSA9IHRvX2V4eW5vc19wbGFuZShwbGFuZSk7CiAJc3RydWN0IGV4eW5vc19kcm1fcGxhbmVfc3Rh dGUgKmV4eW5vc19zdGF0ZSA9CiAJCQkJCQl0b19leHlub3NfcGxhbmVfc3RhdGUoc3RhdGUpOwog CWludCByZXQgPSAwOwpAQCAtMjQyLDExICsyNDEsMTEgQEAgc3RhdGljIGludCBleHlub3NfcGxh bmVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCS8qIHRyYW5zbGF0ZSBz dGF0ZSBpbnRvIGV4eW5vc19zdGF0ZSAqLwogCWV4eW5vc19wbGFuZV9tb2RlX3NldChleHlub3Nf c3RhdGUpOwogCi0JcmV0ID0gZXh5bm9zX2RybV9wbGFuZV9jaGVja19mb3JtYXQoZXh5bm9zX3Bs YW5lLT5jb25maWcsIGV4eW5vc19zdGF0ZSk7CisJcmV0ID0gZXh5bm9zX2RybV9wbGFuZV9jaGVj a19mb3JtYXQoZXh5bm9zX3N0YXRlKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JcmV0 ID0gZXh5bm9zX2RybV9wbGFuZV9jaGVja19zaXplKGV4eW5vc19wbGFuZS0+Y29uZmlnLCBleHlu b3Nfc3RhdGUpOworCXJldCA9IGV4eW5vc19kcm1fcGxhbmVfY2hlY2tfc2l6ZShleHlub3Nfc3Rh dGUpOwogCXJldHVybiByZXQ7CiB9CiAKQEAgLTI5Miw0MCArMjkxLDM3IEBAIHN0YXRpYyB2b2lk IGV4eW5vc19wbGFuZV9hdHRhY2hfenBvc19wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwKIAkJZHJtX3BsYW5lX2NyZWF0ZV96cG9zX3Byb3BlcnR5KHBsYW5lLCB6cG9zLCAwLCBNQVhf UExBTkUgLSAxKTsKIH0KIAotaW50IGV4eW5vc19wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCi0JCSAgICAgIHN0cnVjdCBleHlub3NfZHJtX3BsYW5lICpleHlub3NfcGxhbmUsIHVu c2lnbmVkIGludCBpbmRleCwKLQkJICAgICAgY29uc3Qgc3RydWN0IGV4eW5vc19kcm1fcGxhbmVf Y29uZmlnICpjb25maWcpCitpbnQgZXh5bm9zX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgc3RydWN0IGV4eW5vc19kcm1fcGxhbmUgKnBsYW5lLAorCQkgICAgICBjb25zdCB1aW50 MzJfdCAqcGl4ZWxfZm9ybWF0cywgaW50IG51bV9waXhlbF9mb3JtYXRzLAorCQkgICAgICBlbnVt IGRybV9wbGFuZV90eXBlIHR5cGUpCiB7CiAJaW50IGVycjsKIAl1bnNpZ25lZCBpbnQgc3VwcG9y dGVkX21vZGVzID0gQklUKERSTV9NT0RFX0JMRU5EX1BJWEVMX05PTkUpIHwKIAkJCQkgICAgICAg QklUKERSTV9NT0RFX0JMRU5EX1BSRU1VTFRJKSB8CiAJCQkJICAgICAgIEJJVChEUk1fTU9ERV9C TEVORF9DT1ZFUkFHRSk7Ci0Jc3RydWN0IGRybV9wbGFuZSAqcGxhbmUgPSAmZXh5bm9zX3BsYW5l LT5iYXNlOworCXN0cnVjdCBkcm1fcGxhbmUgKmJwbGFuZSA9ICZwbGFuZS0+YmFzZTsKIAotCWVy ciA9IGRybV91bml2ZXJzYWxfcGxhbmVfaW5pdChkZXYsICZleHlub3NfcGxhbmUtPmJhc2UsCisJ ZXJyID0gZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KGRldiwgYnBsYW5lLAogCQkJCSAgICAgICAx IDw8IGRldi0+bW9kZV9jb25maWcubnVtX2NydGMsCiAJCQkJICAgICAgICZleHlub3NfcGxhbmVf ZnVuY3MsCi0JCQkJICAgICAgIGNvbmZpZy0+cGl4ZWxfZm9ybWF0cywKLQkJCQkgICAgICAgY29u ZmlnLT5udW1fcGl4ZWxfZm9ybWF0cywKLQkJCQkgICAgICAgTlVMTCwgY29uZmlnLT50eXBlLCBO VUxMKTsKKwkJCQkgICAgICAgcGl4ZWxfZm9ybWF0cywKKwkJCQkgICAgICAgbnVtX3BpeGVsX2Zv cm1hdHMsCisJCQkJICAgICAgIE5VTEwsIHR5cGUsIE5VTEwpOwogCWlmIChlcnIpIHsKIAkJRFJN X0VSUk9SKCJmYWlsZWQgdG8gaW5pdGlhbGl6ZSBwbGFuZVxuIik7CiAJCXJldHVybiBlcnI7CiAJ fQogCi0JZHJtX3BsYW5lX2hlbHBlcl9hZGQoJmV4eW5vc19wbGFuZS0+YmFzZSwgJnBsYW5lX2hl bHBlcl9mdW5jcyk7Ci0KLQlleHlub3NfcGxhbmUtPmluZGV4ID0gaW5kZXg7Ci0JZXh5bm9zX3Bs YW5lLT5jb25maWcgPSBjb25maWc7CisJZHJtX3BsYW5lX2hlbHBlcl9hZGQoYnBsYW5lLCAmcGxh bmVfaGVscGVyX2Z1bmNzKTsKIAotCWV4eW5vc19wbGFuZV9hdHRhY2hfenBvc19wcm9wZXJ0eSgm ZXh5bm9zX3BsYW5lLT5iYXNlLCBjb25maWctPnpwb3MsCi0JCQkgICAhKGNvbmZpZy0+Y2FwYWJp bGl0aWVzICYgRVhZTk9TX0RSTV9QTEFORV9DQVBfWlBPUykpOworCWV4eW5vc19wbGFuZV9hdHRh Y2hfenBvc19wcm9wZXJ0eShicGxhbmUsIHBsYW5lLT5pbmRleCwKKwkJCSAgICEocGxhbmUtPmNh cGFiaWxpdGllcyAmIEVYWU5PU19EUk1fUExBTkVfQ0FQX1pQT1MpKTsKIAotCWlmIChjb25maWct PmNhcGFiaWxpdGllcyAmIEVYWU5PU19EUk1fUExBTkVfQ0FQX1BJWF9CTEVORCkKLQkJZHJtX3Bs YW5lX2NyZWF0ZV9ibGVuZF9tb2RlX3Byb3BlcnR5KHBsYW5lLCBzdXBwb3J0ZWRfbW9kZXMpOwor CWlmIChwbGFuZS0+Y2FwYWJpbGl0aWVzICYgRVhZTk9TX0RSTV9QTEFORV9DQVBfUElYX0JMRU5E KQorCQlkcm1fcGxhbmVfY3JlYXRlX2JsZW5kX21vZGVfcHJvcGVydHkoYnBsYW5lLCBzdXBwb3J0 ZWRfbW9kZXMpOwogCi0JaWYgKGNvbmZpZy0+Y2FwYWJpbGl0aWVzICYgRVhZTk9TX0RSTV9QTEFO RV9DQVBfV0lOX0JMRU5EKQotCQlkcm1fcGxhbmVfY3JlYXRlX2FscGhhX3Byb3BlcnR5KHBsYW5l KTsKKwlpZiAocGxhbmUtPmNhcGFiaWxpdGllcyAmIEVYWU5PU19EUk1fUExBTkVfQ0FQX1dJTl9C TEVORCkKKwkJZHJtX3BsYW5lX2NyZWF0ZV9hbHBoYV9wcm9wZXJ0eShicGxhbmUpOwogCiAJcmV0 dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1f dmlkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX3ZpZGkuYwppbmRleCBl YzMwZDVhY2E5YWEuLmI2MWFlMzQxNWI4YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4 eW5vcy9leHlub3NfZHJtX3ZpZGkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5v c19kcm1fdmlkaS5jCkBAIC0zNzgsMjEgKzM3OCwxNCBAQCBzdGF0aWMgaW50IHZpZGlfYmluZChz dHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAqZGF0YSkKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IGRhdGE7CiAJc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyID0gJmN0eC0+ZW5jb2RlcjsKIAlzdHJ1Y3QgZXh5bm9zX2RybV9wbGFuZSAqZXh5bm9z X3BsYW5lOwotCXN0cnVjdCBleHlub3NfZHJtX3BsYW5lX2NvbmZpZyBwbGFuZV9jb25maWcgPSB7 IDAgfTsKIAl1bnNpZ25lZCBpbnQgaTsKIAlpbnQgcmV0OwogCiAJY3R4LT5kcm1fZGV2ID0gZHJt X2RldjsKIAotCXBsYW5lX2NvbmZpZy5waXhlbF9mb3JtYXRzID0gZm9ybWF0czsKLQlwbGFuZV9j b25maWcubnVtX3BpeGVsX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKGZvcm1hdHMpOwotCiAJZm9yIChp ID0gMDsgaSA8IFdJTkRPV1NfTlI7IGkrKykgewotCQlwbGFuZV9jb25maWcuenBvcyA9IGk7Ci0J CXBsYW5lX2NvbmZpZy50eXBlID0gdmlkaV93aW5fdHlwZXNbaV07Ci0KLQkJcmV0ID0gZXh5bm9z X3BsYW5lX2luaXQoZHJtX2RldiwgJmN0eC0+cGxhbmVzW2ldLCBpLAotCQkJCQkmcGxhbmVfY29u ZmlnKTsKKwkJcmV0ID0gZXh5bm9zX3BsYW5lX2luaXQoZHJtX2RldiwgJmN0eC0+cGxhbmVzW2ld LCBmb3JtYXRzLAorCQkJCSAgICAgICAgQVJSQVlfU0laRShmb3JtYXRzKSwgdmlkaV93aW5fdHlw ZXNbaV0pOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAl9CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19taXhlci5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5v cy9leHlub3NfbWl4ZXIuYwppbmRleCAxZmFhNjdmYTdlNWMuLjc1MGY2ODJlOWMzMSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfbWl4ZXIuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19taXhlci5jCkBAIC0xMjIsMzcgKzEyMiw2IEBAIHN0cnVj dCBtaXhlcl9kcnZfZGF0YSB7CiAJYm9vbAkJCQkJaGFzX3NjbGs7CiB9OwogCi1zdGF0aWMgY29u c3Qgc3RydWN0IGV4eW5vc19kcm1fcGxhbmVfY29uZmlnIHBsYW5lX2NvbmZpZ3NbTUlYRVJfV0lO X05SXSA9IHsKLQl7Ci0JCS56cG9zID0gMCwKLQkJLnR5cGUgPSBEUk1fUExBTkVfVFlQRV9QUklN QVJZLAotCQkucGl4ZWxfZm9ybWF0cyA9IG1peGVyX2Zvcm1hdHMsCi0JCS5udW1fcGl4ZWxfZm9y bWF0cyA9IEFSUkFZX1NJWkUobWl4ZXJfZm9ybWF0cyksCi0JCS5jYXBhYmlsaXRpZXMgPSBFWFlO T1NfRFJNX1BMQU5FX0NBUF9ET1VCTEUgfAotCQkJCUVYWU5PU19EUk1fUExBTkVfQ0FQX1pQT1Mg fAotCQkJCUVYWU5PU19EUk1fUExBTkVfQ0FQX1BJWF9CTEVORCB8Ci0JCQkJRVhZTk9TX0RSTV9Q TEFORV9DQVBfV0lOX0JMRU5ELAotCX0sIHsKLQkJLnpwb3MgPSAxLAotCQkudHlwZSA9IERSTV9Q TEFORV9UWVBFX0NVUlNPUiwKLQkJLnBpeGVsX2Zvcm1hdHMgPSBtaXhlcl9mb3JtYXRzLAotCQku bnVtX3BpeGVsX2Zvcm1hdHMgPSBBUlJBWV9TSVpFKG1peGVyX2Zvcm1hdHMpLAotCQkuY2FwYWJp bGl0aWVzID0gRVhZTk9TX0RSTV9QTEFORV9DQVBfRE9VQkxFIHwKLQkJCQlFWFlOT1NfRFJNX1BM QU5FX0NBUF9aUE9TIHwKLQkJCQlFWFlOT1NfRFJNX1BMQU5FX0NBUF9QSVhfQkxFTkQgfAotCQkJ CUVYWU5PU19EUk1fUExBTkVfQ0FQX1dJTl9CTEVORCwKLQl9LCB7Ci0JCS56cG9zID0gMiwKLQkJ LnR5cGUgPSBEUk1fUExBTkVfVFlQRV9PVkVSTEFZLAotCQkucGl4ZWxfZm9ybWF0cyA9IHZwX2Zv cm1hdHMsCi0JCS5udW1fcGl4ZWxfZm9ybWF0cyA9IEFSUkFZX1NJWkUodnBfZm9ybWF0cyksCi0J CS5jYXBhYmlsaXRpZXMgPSBFWFlOT1NfRFJNX1BMQU5FX0NBUF9TQ0FMRSB8Ci0JCQkJRVhZTk9T X0RSTV9QTEFORV9DQVBfWlBPUyB8Ci0JCQkJRVhZTk9TX0RSTV9QTEFORV9DQVBfVElMRSB8Ci0J CQkJRVhZTk9TX0RSTV9QTEFORV9DQVBfV0lOX0JMRU5ELAotCX0sCi19OwotCiBzdGF0aWMgY29u c3QgdTggZmlsdGVyX3lfaG9yaXpfdGFwOFtdID0gewogCTAsCS0xLAktMSwJLTEsCS0xLAktMSwJ LTEsCS0xLAogCS0xLAktMSwJLTEsCS0xLAktMSwJMCwJMCwJMCwKQEAgLTExNTEsMTggKzExMjAs MzMgQEAgc3RhdGljIGludCBtaXhlcl9iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRl dmljZSAqbWFuYWdlciwgdm9pZCAqZGF0YSkKIAlzdHJ1Y3QgZXh5bm9zX2RybV9wbGFuZSAqZXh5 bm9zX3BsYW5lOwogCXVuc2lnbmVkIGludCBpOwogCWludCByZXQ7CisJc3RhdGljIGVudW0gZHJt X3BsYW5lX3R5cGUgdHlwZXNbXSA9IHsgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSwKKwkJRFJNX1BM QU5FX1RZUEVfQ1VSU09SLCBEUk1fUExBTkVfVFlQRV9PVkVSTEFZIH07CiAKIAlyZXQgPSBtaXhl cl9pbml0aWFsaXplKGN0eCwgZHJtX2Rldik7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIAot CWZvciAoaSA9IDA7IGkgPCBNSVhFUl9XSU5fTlI7IGkrKykgewotCQlpZiAoaSA9PSBWUF9ERUZB VUxUX1dJTiAmJiAhdGVzdF9iaXQoTVhSX0JJVF9WUF9FTkFCTEVELAotCQkJCQkJICAgICAmY3R4 LT5mbGFncykpCi0JCQljb250aW51ZTsKKwlmb3IgKGkgPSAwOyBpIDwgVlBfREVGQVVMVF9XSU47 IGkrKykgeworCQljdHgtPnBsYW5lc1tpXS5pbmRleCA9IGk7CisJCWN0eC0+cGxhbmVzW2ldLmNh cGFiaWxpdGllcyA9IEVYWU5PU19EUk1fUExBTkVfQ0FQX0RPVUJMRSB8CisJCQkJCSAgICAgIEVY WU5PU19EUk1fUExBTkVfQ0FQX1pQT1MgfAorCQkJCQkgICAgICBFWFlOT1NfRFJNX1BMQU5FX0NB UF9QSVhfQkxFTkQgfAorCQkJCQkgICAgICBFWFlOT1NfRFJNX1BMQU5FX0NBUF9XSU5fQkxFTkQ7 CisJCXJldCA9IGV4eW5vc19wbGFuZV9pbml0KGRybV9kZXYsICZjdHgtPnBsYW5lc1tpXSwgbWl4 ZXJfZm9ybWF0cywKKwkJCUFSUkFZX1NJWkUobWl4ZXJfZm9ybWF0cyksIHR5cGVzW2ldKTsKKwkJ aWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJfQogCi0JCXJldCA9IGV4eW5vc19wbGFuZV9pbml0 KGRybV9kZXYsICZjdHgtPnBsYW5lc1tpXSwgaSwKLQkJCQkJJnBsYW5lX2NvbmZpZ3NbaV0pOwor CWlmICh0ZXN0X2JpdChNWFJfQklUX1ZQX0VOQUJMRUQsICZjdHgtPmZsYWdzKSkgeworCQljdHgt PnBsYW5lc1tpXS5pbmRleCA9IGk7CisJCWN0eC0+cGxhbmVzW2ldLmNhcGFiaWxpdGllcyA9IEVY WU5PU19EUk1fUExBTkVfQ0FQX1NDQUxFIHwKKwkJCQkJICAgICAgRVhZTk9TX0RSTV9QTEFORV9D QVBfWlBPUyB8CisJCQkJCSAgICAgIEVYWU5PU19EUk1fUExBTkVfQ0FQX1RJTEUgfAorCQkJCQkg ICAgICBFWFlOT1NfRFJNX1BMQU5FX0NBUF9XSU5fQkxFTkQ7CisJCXJldCA9IGV4eW5vc19wbGFu ZV9pbml0KGRybV9kZXYsICZjdHgtPnBsYW5lc1tpXSwgdnBfZm9ybWF0cywKKwkJCUFSUkFZX1NJ WkUodnBfZm9ybWF0cyksIHR5cGVzW2ldKTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAJ fQotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWw=