From mboxrd@z Thu Jan 1 00:00:00 1970 From: Archit Taneja Subject: [PATCH v3 09/12] drm/msm/dsi: Don't use iommu for command TX buffer for DSIv2 Date: Tue, 1 Dec 2015 15:30:07 +0530 Message-ID: <1448964010-18207-10-git-send-email-architt@codeaurora.org> References: <1447844131-4182-1-git-send-email-architt@codeaurora.org> <1448964010-18207-1-git-send-email-architt@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1448964010-18207-1-git-send-email-architt@codeaurora.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, robdclark@gmail.com Cc: linux-arm-msm@vger.kernel.org List-Id: linux-arm-msm@vger.kernel.org V2UgY3VycmVudGx5IHVzZSBpb21tdSBhbGxvY2F0ZWQgRE1BIGJ1ZmZlcnMgZm9yIHNlbmRpbmcg RFNJIGNvbW1hbmRzLgpEU0l2MiBkb2Vzbid0IGhhdmUgYSBwb3J0IGNvbm5lY3RlZCB0byB0aGUg TURQIGlvbW11LiBUaGVyZWZvcmUsIGl0CmNhbid0IHVzZSBpb21tdSBhbGxvY2F0ZWQgYnVmZmVy cyB0byBmZXRjaCBEU0kgY29tbWFuZHMuCgpVc2UgYSByZWd1bGFyIGNvbnRpZ3VvdXMgRE1BIGJ1 ZmZlciBpZiB3ZSBhcmUgRFNJdjIuCgpTaWduZWQtb2ZmLWJ5OiBBcmNoaXQgVGFuZWphIDxhcmNo aXR0QGNvZGVhdXJvcmEub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaS5oICAg ICAgICAgfCAgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9ob3N0LmMgICAgfCAx MTAgKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL21z bS9kc2kvZHNpX21hbmFnZXIuYyB8ICAgNiArLQogMyBmaWxlcyBjaGFuZ2VkLCA3OSBpbnNlcnRp b25zKCspLCA0MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNt L2RzaS9kc2kuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaS5oCmluZGV4IDczMzZiNTUu Ljc0OWZiYjIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaS5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaS5oCkBAIC05MSw3ICs5MSw3IEBAIGludCBtc21f ZHNpX21hbmFnZXJfcGh5X2VuYWJsZShpbnQgaWQsCiAJCXUzMiAqY2xrX3ByZSwgdTMyICpjbGtf cG9zdCk7CiB2b2lkIG1zbV9kc2lfbWFuYWdlcl9waHlfZGlzYWJsZShpbnQgaWQpOwogaW50IG1z bV9kc2lfbWFuYWdlcl9jbWRfeGZlcihpbnQgaWQsIGNvbnN0IHN0cnVjdCBtaXBpX2RzaV9tc2cg Km1zZyk7Ci1ib29sIG1zbV9kc2lfbWFuYWdlcl9jbWRfeGZlcl90cmlnZ2VyKGludCBpZCwgdTMy IGlvdmEsIHUzMiBsZW4pOworYm9vbCBtc21fZHNpX21hbmFnZXJfY21kX3hmZXJfdHJpZ2dlcihp bnQgaWQsIHUzMiBkbWFfYmFzZSwgdTMyIGxlbik7CiBpbnQgbXNtX2RzaV9tYW5hZ2VyX3JlZ2lz dGVyKHN0cnVjdCBtc21fZHNpICptc21fZHNpKTsKIHZvaWQgbXNtX2RzaV9tYW5hZ2VyX3VucmVn aXN0ZXIoc3RydWN0IG1zbV9kc2kgKm1zbV9kc2kpOwogCkBAIC0xNDUsNyArMTQ1LDcgQEAgaW50 IG1zbV9kc2lfaG9zdF9jbWRfdHgoc3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsCiBpbnQgbXNt X2RzaV9ob3N0X2NtZF9yeChzdHJ1Y3QgbWlwaV9kc2lfaG9zdCAqaG9zdCwKIAkJCQkJY29uc3Qg c3RydWN0IG1pcGlfZHNpX21zZyAqbXNnKTsKIHZvaWQgbXNtX2RzaV9ob3N0X2NtZF94ZmVyX2Nv bW1pdChzdHJ1Y3QgbWlwaV9kc2lfaG9zdCAqaG9zdCwKLQkJCQkJdTMyIGlvdmEsIHUzMiBsZW4p OworCQkJCQl1MzIgZG1hX2Jhc2UsIHUzMiBsZW4pOwogaW50IG1zbV9kc2lfaG9zdF9lbmFibGUo c3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QpOwogaW50IG1zbV9kc2lfaG9zdF9kaXNhYmxlKHN0 cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0KTsKIGludCBtc21fZHNpX2hvc3RfcG93ZXJfb24oc3Ry dWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21z bS9kc2kvZHNpX2hvc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9ob3N0LmMKaW5k ZXggNmVjMjE3OC4uYmJmN2Y3MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kc2kv ZHNpX2hvc3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lfaG9zdC5jCkBAIC0x MzgsNyArMTM4LDE1IEBAIHN0cnVjdCBtc21fZHNpX2hvc3QgewogCXN0cnVjdCB3b3JrX3N0cnVj dCBlcnJfd29yazsKIAlzdHJ1Y3Qgd29ya3F1ZXVlX3N0cnVjdCAqd29ya3F1ZXVlOwogCisJLyog RFNJIDZHIFRYIGJ1ZmZlciovCiAJc3RydWN0IGRybV9nZW1fb2JqZWN0ICp0eF9nZW1fb2JqOwor CisJLyogRFNJIHYyIFRYIGJ1ZmZlciAqLworCXZvaWQgKnR4X2J1ZjsKKwlkbWFfYWRkcl90IHR4 X2J1Zl9wYWRkcjsKKworCWludCB0eF9zaXplOworCiAJdTggKnJ4X2J1ZjsKIAogCXN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICptb2RlOwpAQCAtOTgzLDI5ICs5OTEsNDYgQEAgc3RhdGljIHZvaWQg ZHNpX3dhaXQ0dmlkZW9fZW5nX2J1c3koc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3QpCiBz dGF0aWMgaW50IGRzaV90eF9idWZfYWxsb2Moc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3Qs IGludCBzaXplKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBtc21faG9zdC0+ZGV2Owor CWNvbnN0IHN0cnVjdCBtc21fZHNpX2NmZ19oYW5kbGVyICpjZmdfaG5kID0gbXNtX2hvc3QtPmNm Z19obmQ7CiAJaW50IHJldDsKIAl1MzIgaW92YTsKIAotCW11dGV4X2xvY2soJmRldi0+c3RydWN0 X211dGV4KTsKLQltc21faG9zdC0+dHhfZ2VtX29iaiA9IG1zbV9nZW1fbmV3KGRldiwgc2l6ZSwg TVNNX0JPX1VOQ0FDSEVEKTsKLQlpZiAoSVNfRVJSKG1zbV9ob3N0LT50eF9nZW1fb2JqKSkgewot CQlyZXQgPSBQVFJfRVJSKG1zbV9ob3N0LT50eF9nZW1fb2JqKTsKLQkJcHJfZXJyKCIlczogZmFp bGVkIHRvIGFsbG9jYXRlIGdlbSwgJWRcbiIsIF9fZnVuY19fLCByZXQpOwotCQltc21faG9zdC0+ dHhfZ2VtX29iaiA9IE5VTEw7CisJaWYgKGNmZ19obmQtPm1ham9yID09IE1TTV9EU0lfVkVSX01B Sk9SXzZHKSB7CisJCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKKwkJbXNtX2hvc3Qt PnR4X2dlbV9vYmogPSBtc21fZ2VtX25ldyhkZXYsIHNpemUsIE1TTV9CT19VTkNBQ0hFRCk7CisJ CWlmIChJU19FUlIobXNtX2hvc3QtPnR4X2dlbV9vYmopKSB7CisJCQlyZXQgPSBQVFJfRVJSKG1z bV9ob3N0LT50eF9nZW1fb2JqKTsKKwkJCXByX2VycigiJXM6IGZhaWxlZCB0byBhbGxvY2F0ZSBn ZW0sICVkXG4iLAorCQkJCV9fZnVuY19fLCByZXQpOworCQkJbXNtX2hvc3QtPnR4X2dlbV9vYmog PSBOVUxMOworCQkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisJCQlyZXR1cm4g cmV0OworCQl9CisKKwkJcmV0ID0gbXNtX2dlbV9nZXRfaW92YV9sb2NrZWQobXNtX2hvc3QtPnR4 X2dlbV9vYmosIDAsICZpb3ZhKTsKKwkJaWYgKHJldCkgeworCQkJcHJfZXJyKCIlczogZmFpbGVk IHRvIGdldCBpb3ZhLCAlZFxuIiwgX19mdW5jX18sIHJldCk7CisJCQlyZXR1cm4gcmV0OworCQl9 CiAJCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwotCQlyZXR1cm4gcmV0OwotCX0K IAotCXJldCA9IG1zbV9nZW1fZ2V0X2lvdmFfbG9ja2VkKG1zbV9ob3N0LT50eF9nZW1fb2JqLCAw LCAmaW92YSk7Ci0JaWYgKHJldCkgewotCQlwcl9lcnIoIiVzOiBmYWlsZWQgdG8gZ2V0IGlvdmEs ICVkXG4iLCBfX2Z1bmNfXywgcmV0KTsKLQkJcmV0dXJuIHJldDsKLQl9Ci0JbXV0ZXhfdW5sb2Nr KCZkZXYtPnN0cnVjdF9tdXRleCk7CisJCWlmIChpb3ZhICYgMHgwNykgeworCQkJcHJfZXJyKCIl czogYnVmIE5PVCA4IGJ5dGVzIGFsaWduZWRcbiIsIF9fZnVuY19fKTsKKwkJCXJldHVybiAtRUlO VkFMOworCQl9CiAKLQlpZiAoaW92YSAmIDB4MDcpIHsKLQkJcHJfZXJyKCIlczogYnVmIE5PVCA4 IGJ5dGVzIGFsaWduZWRcbiIsIF9fZnVuY19fKTsKLQkJcmV0dXJuIC1FSU5WQUw7CisJCW1zbV9o b3N0LT50eF9zaXplID0gbXNtX2hvc3QtPnR4X2dlbV9vYmotPnNpemU7CisJfSBlbHNlIHsKKwkJ bXNtX2hvc3QtPnR4X2J1ZiA9IGRtYV9hbGxvY19jb2hlcmVudChkZXYtPmRldiwgc2l6ZSwKKwkJ CQkJJm1zbV9ob3N0LT50eF9idWZfcGFkZHIsIEdGUF9LRVJORUwpOworCQlpZiAoIW1zbV9ob3N0 LT50eF9idWYpIHsKKwkJCXJldCA9IC1FTk9NRU07CisJCQlwcl9lcnIoIiVzOiBmYWlsZWQgdG8g YWxsb2NhdGUgdHggYnVmLCAlZFxuIiwKKwkJCQlfX2Z1bmNfXywgcmV0KTsKKwkJCXJldHVybiBy ZXQ7CisJCX0KKworCQltc21faG9zdC0+dHhfc2l6ZSA9IHNpemU7CiAJfQogCiAJcmV0dXJuIDA7 CkBAIC0xMDIyLDE0ICsxMDQ3LDE5IEBAIHN0YXRpYyB2b2lkIGRzaV90eF9idWZfZnJlZShzdHJ1 Y3QgbXNtX2RzaV9ob3N0ICptc21faG9zdCkKIAkJbXNtX2hvc3QtPnR4X2dlbV9vYmogPSBOVUxM OwogCQltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKIAl9CisKKwlpZiAobXNtX2hv c3QtPnR4X2J1ZikKKwkJZG1hX2ZyZWVfY29oZXJlbnQoZGV2LT5kZXYsIG1zbV9ob3N0LT50eF9z aXplLCBtc21faG9zdC0+dHhfYnVmLAorCQkJbXNtX2hvc3QtPnR4X2J1Zl9wYWRkcik7CiB9CiAK IC8qCiAgKiBwcmVwYXJlIGNtZCBidWZmZXIgdG8gYmUgdHhlZAogICovCi1zdGF0aWMgaW50IGRz aV9jbWRfZG1hX2FkZChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKnR4X2dlbSwKLQkJCWNvbnN0IHN0 cnVjdCBtaXBpX2RzaV9tc2cgKm1zZykKK3N0YXRpYyBpbnQgZHNpX2NtZF9kbWFfYWRkKHN0cnVj dCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0LAorCQkJICAgY29uc3Qgc3RydWN0IG1pcGlfZHNpX21z ZyAqbXNnKQogeworCWNvbnN0IHN0cnVjdCBtc21fZHNpX2NmZ19oYW5kbGVyICpjZmdfaG5kID0g bXNtX2hvc3QtPmNmZ19obmQ7CiAJc3RydWN0IG1pcGlfZHNpX3BhY2tldCBwYWNrZXQ7CiAJaW50 IGxlbjsKIAlpbnQgcmV0OwpAQCAtMTA0MiwxNyArMTA3MiwyMCBAQCBzdGF0aWMgaW50IGRzaV9j bWRfZG1hX2FkZChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKnR4X2dlbSwKIAl9CiAJbGVuID0gKHBh Y2tldC5zaXplICsgMykgJiAofjB4Myk7CiAKLQlpZiAobGVuID4gdHhfZ2VtLT5zaXplKSB7CisJ aWYgKGxlbiA+IG1zbV9ob3N0LT50eF9zaXplKSB7CiAJCXByX2VycigiJXM6IHBhY2tldCBzaXpl IGlzIHRvbyBiaWdcbiIsIF9fZnVuY19fKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCi0JZGF0 YSA9IG1zbV9nZW1fdmFkZHIodHhfZ2VtKTsKLQotCWlmIChJU19FUlIoZGF0YSkpIHsKLQkJcmV0 ID0gUFRSX0VSUihkYXRhKTsKLQkJcHJfZXJyKCIlczogZ2V0IHZhZGRyIGZhaWxlZCwgJWRcbiIs IF9fZnVuY19fLCByZXQpOwotCQlyZXR1cm4gcmV0OworCWlmIChjZmdfaG5kLT5tYWpvciA9PSBN U01fRFNJX1ZFUl9NQUpPUl82RykgeworCQlkYXRhID0gbXNtX2dlbV92YWRkcihtc21faG9zdC0+ dHhfZ2VtX29iaik7CisJCWlmIChJU19FUlIoZGF0YSkpIHsKKwkJCXJldCA9IFBUUl9FUlIoZGF0 YSk7CisJCQlwcl9lcnIoIiVzOiBnZXQgdmFkZHIgZmFpbGVkLCAlZFxuIiwgX19mdW5jX18sIHJl dCk7CisJCQlyZXR1cm4gcmV0OworCQl9CisJfSBlbHNlIHsKKwkJZGF0YSA9IG1zbV9ob3N0LT50 eF9idWY7CiAJfQogCiAJLyogTVNNIHNwZWNpZmljIGNvbW1hbmQgZm9ybWF0IGluIG1lbW9yeSAq LwpAQCAtMTExOCwxNyArMTE1MSwyMSBAQCBzdGF0aWMgaW50IGRzaV9sb25nX3JlYWRfcmVzcCh1 OCAqYnVmLCBjb25zdCBzdHJ1Y3QgbWlwaV9kc2lfbXNnICptc2cpCiAJcmV0dXJuIG1zZy0+cnhf bGVuOwogfQogCi0KIHN0YXRpYyBpbnQgZHNpX2NtZF9kbWFfdHgoc3RydWN0IG1zbV9kc2lfaG9z dCAqbXNtX2hvc3QsIGludCBsZW4pCiB7CisJY29uc3Qgc3RydWN0IG1zbV9kc2lfY2ZnX2hhbmRs ZXIgKmNmZ19obmQgPSBtc21faG9zdC0+Y2ZnX2huZDsKIAlpbnQgcmV0OwotCXUzMiBpb3ZhOwor CXUzMiBkbWFfYmFzZTsKIAlib29sIHRyaWdnZXJlZDsKIAotCXJldCA9IG1zbV9nZW1fZ2V0X2lv dmEobXNtX2hvc3QtPnR4X2dlbV9vYmosIDAsICZpb3ZhKTsKLQlpZiAocmV0KSB7Ci0JCXByX2Vy cigiJXM6IGZhaWxlZCB0byBnZXQgaW92YTogJWRcbiIsIF9fZnVuY19fLCByZXQpOwotCQlyZXR1 cm4gcmV0OworCWlmIChjZmdfaG5kLT5tYWpvciA9PSBNU01fRFNJX1ZFUl9NQUpPUl82Rykgewor CQlyZXQgPSBtc21fZ2VtX2dldF9pb3ZhKG1zbV9ob3N0LT50eF9nZW1fb2JqLCAwLCAmZG1hX2Jh c2UpOworCQlpZiAocmV0KSB7CisJCQlwcl9lcnIoIiVzOiBmYWlsZWQgdG8gZ2V0IGlvdmE6ICVk XG4iLCBfX2Z1bmNfXywgcmV0KTsKKwkJCXJldHVybiByZXQ7CisJCX0KKwl9IGVsc2UgeworCQlk bWFfYmFzZSA9IG1zbV9ob3N0LT50eF9idWZfcGFkZHI7CiAJfQogCiAJcmVpbml0X2NvbXBsZXRp b24oJm1zbV9ob3N0LT5kbWFfY29tcCk7CkBAIC0xMTM2LDcgKzExNzMsNyBAQCBzdGF0aWMgaW50 IGRzaV9jbWRfZG1hX3R4KHN0cnVjdCBtc21fZHNpX2hvc3QgKm1zbV9ob3N0LCBpbnQgbGVuKQog CWRzaV93YWl0NHZpZGVvX2VuZ19idXN5KG1zbV9ob3N0KTsKIAogCXRyaWdnZXJlZCA9IG1zbV9k c2lfbWFuYWdlcl9jbWRfeGZlcl90cmlnZ2VyKAotCQkJCQkJbXNtX2hvc3QtPmlkLCBpb3ZhLCBs ZW4pOworCQkJCQkJbXNtX2hvc3QtPmlkLCBkbWFfYmFzZSwgbGVuKTsKIAlpZiAodHJpZ2dlcmVk KSB7CiAJCXJldCA9IHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmbXNtX2hvc3QtPmRtYV9j b21wLAogCQkJCQltc2Vjc190b19qaWZmaWVzKDIwMCkpOwpAQCAtMTIwOCw3ICsxMjQ1LDcgQEAg c3RhdGljIGludCBkc2lfY21kczJidWZfdHgoc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hvc3Qs CiAJaW50IGJsbHBfbGVuID0gbXNtX2hvc3QtPm1vZGUtPmhkaXNwbGF5ICoKIAkJCWRzaV9nZXRf YnBwKG1zbV9ob3N0LT5mb3JtYXQpIC8gODsKIAotCWxlbiA9IGRzaV9jbWRfZG1hX2FkZChtc21f aG9zdC0+dHhfZ2VtX29iaiwgbXNnKTsKKwlsZW4gPSBkc2lfY21kX2RtYV9hZGQobXNtX2hvc3Qs IG1zZyk7CiAJaWYgKCFsZW4pIHsKIAkJcHJfZXJyKCIlczogZmFpbGVkIHRvIGFkZCBjbWQgdHlw ZSA9IDB4JXhcbiIsCiAJCQlfX2Z1bmNfXywgIG1zZy0+dHlwZSk7CkBAIC0xODk4LDExICsxOTM1 LDEyIEBAIGludCBtc21fZHNpX2hvc3RfY21kX3J4KHN0cnVjdCBtaXBpX2RzaV9ob3N0ICpob3N0 LAogCXJldHVybiByZXQ7CiB9CiAKLXZvaWQgbXNtX2RzaV9ob3N0X2NtZF94ZmVyX2NvbW1pdChz dHJ1Y3QgbWlwaV9kc2lfaG9zdCAqaG9zdCwgdTMyIGlvdmEsIHUzMiBsZW4pCit2b2lkIG1zbV9k c2lfaG9zdF9jbWRfeGZlcl9jb21taXQoc3RydWN0IG1pcGlfZHNpX2hvc3QgKmhvc3QsIHUzMiBk bWFfYmFzZSwKKwkJCQkgIHUzMiBsZW4pCiB7CiAJc3RydWN0IG1zbV9kc2lfaG9zdCAqbXNtX2hv c3QgPSB0b19tc21fZHNpX2hvc3QoaG9zdCk7CiAKLQlkc2lfd3JpdGUobXNtX2hvc3QsIFJFR19E U0lfRE1BX0JBU0UsIGlvdmEpOworCWRzaV93cml0ZShtc21faG9zdCwgUkVHX0RTSV9ETUFfQkFT RSwgZG1hX2Jhc2UpOwogCWRzaV93cml0ZShtc21faG9zdCwgUkVHX0RTSV9ETUFfTEVOLCBsZW4p OwogCWRzaV93cml0ZShtc21faG9zdCwgUkVHX0RTSV9UUklHX0RNQSwgMSk7CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9tYW5hZ2VyLmMgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL2RzaS9kc2lfbWFuYWdlci5jCmluZGV4IDA0NTVmZjcuLjU4YmE3ZWMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZHNpL2RzaV9tYW5hZ2VyLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL21zbS9kc2kvZHNpX21hbmFnZXIuYwpAQCAtNzc0LDcgKzc3NCw3IEBAIHJlc3RvcmVf aG9zdDA6CiAJcmV0dXJuIHJldDsKIH0KIAotYm9vbCBtc21fZHNpX21hbmFnZXJfY21kX3hmZXJf dHJpZ2dlcihpbnQgaWQsIHUzMiBpb3ZhLCB1MzIgbGVuKQorYm9vbCBtc21fZHNpX21hbmFnZXJf Y21kX3hmZXJfdHJpZ2dlcihpbnQgaWQsIHUzMiBkbWFfYmFzZSwgdTMyIGxlbikKIHsKIAlzdHJ1 Y3QgbXNtX2RzaSAqbXNtX2RzaSA9IGRzaV9tZ3JfZ2V0X2RzaShpZCk7CiAJc3RydWN0IG1zbV9k c2kgKm1zbV9kc2kwID0gZHNpX21ncl9nZXRfZHNpKERTSV8wKTsKQEAgLTc4NCw5ICs3ODQsOSBA QCBib29sIG1zbV9kc2lfbWFuYWdlcl9jbWRfeGZlcl90cmlnZ2VyKGludCBpZCwgdTMyIGlvdmEs IHUzMiBsZW4pCiAJCXJldHVybiBmYWxzZTsKIAogCWlmIChJU19TWU5DX05FRURFRCgpICYmIG1z bV9kc2kwKQotCQltc21fZHNpX2hvc3RfY21kX3hmZXJfY29tbWl0KG1zbV9kc2kwLT5ob3N0LCBp b3ZhLCBsZW4pOworCQltc21fZHNpX2hvc3RfY21kX3hmZXJfY29tbWl0KG1zbV9kc2kwLT5ob3N0 LCBkbWFfYmFzZSwgbGVuKTsKIAotCW1zbV9kc2lfaG9zdF9jbWRfeGZlcl9jb21taXQoaG9zdCwg aW92YSwgbGVuKTsKKwltc21fZHNpX2hvc3RfY21kX3hmZXJfY29tbWl0KGhvc3QsIGRtYV9iYXNl LCBsZW4pOwogCiAJcmV0dXJuIHRydWU7CiB9Ci0tIApUaGUgUXVhbGNvbW0gSW5ub3ZhdGlvbiBD ZW50ZXIsIEluYy4gaXMgYSBtZW1iZXIgb2YgdGhlIENvZGUgQXVyb3JhIEZvcnVtLApob3N0ZWQg YnkgVGhlIExpbnV4IEZvdW5kYXRpb24KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vZHJpLWRldmVsCg==