From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Clark Subject: [PATCH 09/11] drm/msm: introduce msm_fence_context Date: Fri, 18 Mar 2016 19:15:02 -0400 Message-ID: <1458342904-23326-10-git-send-email-robdclark@gmail.com> References: <1458342904-23326-1-git-send-email-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1458342904-23326-1-git-send-email-robdclark@gmail.com> 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: maarten.lankhorst@canonical.com, linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org List-Id: linux-arm-msm@vger.kernel.org QmV0dGVyIGVuY2Fwc3VsYXRlIHRoZSBwZXItdGltZWxpbmUgc3R1ZmYgaW50byBmZW5jZS1jb250 ZXh0LiAgRm9yIG5vdwp0aGVyZSBpcyBqdXN0IGEgc2luZ2xlIGZlbmNlLWNvbnRleHQsIGJ1dCBl dmVudHVhbGx5IHdlJ2xsIGFsc28gaGF2ZSBvbmUKcGVyLUNSVEMgdG8gZW5hYmxlIGZ1bGx5IGV4 cGxpY2l0IGZlbmNpbmcuCgpTaWduZWQtb2ZmLWJ5OiBSb2IgQ2xhcmsgPHJvYmRjbGFya0BnbWFp bC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5jIHwgIDYg Ky0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYyAgICAgICAgfCAgOSArKy0tCiBk cml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYyAgICAgICAgICAgfCAgOCArLS0KIGRyaXZlcnMv Z3B1L2RybS9tc20vbXNtX2Rydi5oICAgICAgICAgICB8ICA3ICstLQogZHJpdmVycy9ncHUvZHJt L21zbS9tc21fZmVuY2UuYyAgICAgICAgIHwgODcgKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mZW5jZS5oICAgICAgICAgfCAyMSArKysr KystLQogZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmMgICAgICAgICAgIHwgIDQgKy0KIGRy aXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5jICAgICAgICAgICB8IDIzICsrKysrLS0tLQogZHJp dmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmggICAgICAgICAgIHwgIDcgKystCiA5IGZpbGVzIGNo YW5nZWQsIDEwOCBpbnNlcnRpb25zKCspLCA2NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMgYi9kcml2ZXJzL2dwdS9kcm0v bXNtL2FkcmVuby9hZHJlbm9fZ3B1LmMKaW5kZXggNDk1MTE3Mi4uOWFhYjg3MSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19ncHUuYwpAQCAtMTIxLDcgKzEyMSw3IEBAIHZvaWQg YWRyZW5vX3JlY292ZXIoc3RydWN0IG1zbV9ncHUgKmdwdSkKIAlncHUtPnJiLT5jdXIgPSBncHUt PnJiLT5zdGFydDsKIAogCS8qIHJlc2V0IGNvbXBsZXRlZCBmZW5jZSBzZXFubywganVzdCBkaXNj YXJkIGFueXRoaW5nIHBlbmRpbmc6ICovCi0JYWRyZW5vX2dwdS0+bWVtcHRycy0+ZmVuY2UgPSBn cHUtPnN1Ym1pdHRlZF9mZW5jZTsKKwlhZHJlbm9fZ3B1LT5tZW1wdHJzLT5mZW5jZSA9IGdwdS0+ ZmN0eC0+bGFzdF9mZW5jZTsKIAlhZHJlbm9fZ3B1LT5tZW1wdHJzLT5ycHRyICA9IDA7CiAJYWRy ZW5vX2dwdS0+bWVtcHRycy0+d3B0ciAgPSAwOwogCkBAIC0yNTQsNyArMjU0LDcgQEAgdm9pZCBh ZHJlbm9fc2hvdyhzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCiAJCQlh ZHJlbm9fZ3B1LT5yZXYucGF0Y2hpZCk7CiAKIAlzZXFfcHJpbnRmKG0sICJmZW5jZTogICAgJWQv JWRcbiIsIGFkcmVub19ncHUtPm1lbXB0cnMtPmZlbmNlLAotCQkJZ3B1LT5zdWJtaXR0ZWRfZmVu Y2UpOworCQkJZ3B1LT5mY3R4LT5sYXN0X2ZlbmNlKTsKIAlzZXFfcHJpbnRmKG0sICJycHRyOiAg ICAgJWRcbiIsIGdldF9ycHRyKGFkcmVub19ncHUpKTsKIAlzZXFfcHJpbnRmKG0sICJ3cHRyOiAg ICAgJWRcbiIsIGFkcmVub19ncHUtPm1lbXB0cnMtPndwdHIpOwogCXNlcV9wcmludGYobSwgInJi IHdwdHI6ICAlZFxuIiwgZ2V0X3dwdHIoZ3B1LT5yYikpOwpAQCAtMjk1LDcgKzI5NSw3IEBAIHZv aWQgYWRyZW5vX2R1bXBfaW5mbyhzdHJ1Y3QgbXNtX2dwdSAqZ3B1KQogCQkJYWRyZW5vX2dwdS0+ cmV2LnBhdGNoaWQpOwogCiAJcHJpbnRrKCJmZW5jZTogICAgJWQvJWRcbiIsIGFkcmVub19ncHUt Pm1lbXB0cnMtPmZlbmNlLAotCQkJZ3B1LT5zdWJtaXR0ZWRfZmVuY2UpOworCQkJZ3B1LT5mY3R4 LT5sYXN0X2ZlbmNlKTsKIAlwcmludGsoInJwdHI6ICAgICAlZFxuIiwgZ2V0X3JwdHIoYWRyZW5v X2dwdSkpOwogCXByaW50aygid3B0cjogICAgICVkXG4iLCBhZHJlbm9fZ3B1LT5tZW1wdHJzLT53 cHRyKTsKIAlwcmludGsoInJiIHdwdHI6ICAlZFxuIiwgZ2V0X3dwdHIoZ3B1LT5yYikpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL21zbV9hdG9taWMuYwppbmRleCAzYzBmN2E4Li42MWY1OWRiIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vbXNtL21zbV9hdG9taWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNt L21zbV9hdG9taWMuYwpAQCAtMTgsNiArMTgsNyBAQAogI2luY2x1ZGUgIm1zbV9kcnYuaCIKICNp bmNsdWRlICJtc21fa21zLmgiCiAjaW5jbHVkZSAibXNtX2dlbS5oIgorI2luY2x1ZGUgIm1zbV9n cHUuaCIgICAvKiB0ZW1wb3JhcnkgKi8KICNpbmNsdWRlICJtc21fZmVuY2UuaCIKIAogc3RydWN0 IG1zbV9jb21taXQgewpAQCAtMjAzLDYgKzIwNCw3IEBAIGludCBtc21fYXRvbWljX2NoZWNrKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCiBpbnQgbXNtX2F0b21pY19jb21taXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKIAkJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLCBib29sIGFzeW5j KQogeworCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYtPmRldl9wcml2YXRlOwog CWludCBucGxhbmVzID0gZGV2LT5tb2RlX2NvbmZpZy5udW1fdG90YWxfcGxhbmU7CiAJaW50IG5j cnRjcyA9IGRldi0+bW9kZV9jb25maWcubnVtX2NydGM7CiAJa3RpbWVfdCB0aW1lb3V0OwpAQCAt Mjc3LDE1ICsyNzksMTYgQEAgaW50IG1zbV9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAJICogY3VycmVudCBsYXlvdXQuCiAJICovCiAKLQlpZiAoYXN5bmMpIHsKLQkJbXNt X3F1ZXVlX2ZlbmNlX2NiKGRldiwgJmMtPmZlbmNlX2NiLCBjLT5mZW5jZSk7CisJaWYgKGFzeW5j ICYmIHByaXYtPmdwdSkgeworCQltc21fcXVldWVfZmVuY2VfY2IocHJpdi0+Z3B1LT5mY3R4LCAm Yy0+ZmVuY2VfY2IsIGMtPmZlbmNlKTsKIAkJcmV0dXJuIDA7CiAJfQogCiAJdGltZW91dCA9IGt0 aW1lX2FkZF9tcyhrdGltZV9nZXQoKSwgMTAwMCk7CiAKIAkvKiB1bmludGVycnVwdGlibGUgd2Fp dCAqLwotCW1zbV93YWl0X2ZlbmNlKGRldiwgYy0+ZmVuY2UsICZ0aW1lb3V0LCBmYWxzZSk7CisJ aWYgKHByaXYtPmdwdSkKKwkJbXNtX3dhaXRfZmVuY2UocHJpdi0+Z3B1LT5mY3R4LCBjLT5mZW5j ZSwgJnRpbWVvdXQsIGZhbHNlKTsKIAogCWNvbXBsZXRlX2NvbW1pdChjKTsKIApkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21z bV9kcnYuYwppbmRleCA2OTg4Mjg1Li5iNjIzMzk3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vbXNtL21zbV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwpAQCAt MzM5LDExICszMzksOSBAQCBzdGF0aWMgaW50IG1zbV9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiAJZGV2LT5kZXZfcHJpdmF0ZSA9IHByaXY7CiAKIAlw cml2LT53cSA9IGFsbG9jX29yZGVyZWRfd29ya3F1ZXVlKCJtc20iLCAwKTsKLQlpbml0X3dhaXRx dWV1ZV9oZWFkKCZwcml2LT5mZW5jZV9ldmVudCk7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmcHJp di0+cGVuZGluZ19jcnRjc19ldmVudCk7CiAKIAlJTklUX0xJU1RfSEVBRCgmcHJpdi0+aW5hY3Rp dmVfbGlzdCk7Ci0JSU5JVF9MSVNUX0hFQUQoJnByaXYtPmZlbmNlX2Nicyk7CiAJSU5JVF9MSVNU X0hFQUQoJnByaXYtPnZibGFua19jdHJsLmV2ZW50X2xpc3QpOwogCUlOSVRfV09SSygmcHJpdi0+ dmJsYW5rX2N0cmwud29yaywgdmJsYW5rX2N0cmxfd29ya2VyKTsKIAlzcGluX2xvY2tfaW5pdCgm cHJpdi0+dmJsYW5rX2N0cmwubG9jayk7CkBAIC02NTAsNiArNjQ4LDcgQEAgc3RhdGljIGludCBt c21faW9jdGxfZ2VtX2luZm8oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIHN0 YXRpYyBpbnQgbXNtX2lvY3RsX3dhaXRfZmVuY2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9p ZCAqZGF0YSwKIAkJc3RydWN0IGRybV9maWxlICpmaWxlKQogeworCXN0cnVjdCBtc21fZHJtX3By aXZhdGUgKnByaXYgPSBkZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBkcm1fbXNtX3dhaXRfZmVu Y2UgKmFyZ3MgPSBkYXRhOwogCWt0aW1lX3QgdGltZW91dCA9IHRvX2t0aW1lKGFyZ3MtPnRpbWVv dXQpOwogCkBAIC02NTgsNyArNjU3LDEwIEBAIHN0YXRpYyBpbnQgbXNtX2lvY3RsX3dhaXRfZmVu Y2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAkJcmV0dXJuIC1FSU5WQUw7 CiAJfQogCi0JcmV0dXJuIG1zbV93YWl0X2ZlbmNlKGRldiwgYXJncy0+ZmVuY2UsICZ0aW1lb3V0 LCB0cnVlKTsKKwlpZiAoIXByaXYtPmdwdSkKKwkJcmV0dXJuIDA7CisKKwlyZXR1cm4gbXNtX3dh aXRfZmVuY2UocHJpdi0+Z3B1LT5mY3R4LCBhcmdzLT5mZW5jZSwgJnRpbWVvdXQsIHRydWUpOwog fQogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9pb2N0bF9kZXNjIG1zbV9pb2N0bHNbXSA9IHsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oIGIvZHJpdmVycy9ncHUv ZHJtL21zbS9tc21fZHJ2LmgKaW5kZXggNjEwN2EzOS4uM2RmNzQ3ZiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21f ZHJ2LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgc3RydWN0IG1zbV9tbXU7CiBzdHJ1Y3QgbXNtX3JkX3N0 YXRlOwogc3RydWN0IG1zbV9wZXJmX3N0YXRlOwogc3RydWN0IG1zbV9nZW1fc3VibWl0Oworc3Ry dWN0IG1zbV9mZW5jZV9jb250ZXh0Owogc3RydWN0IG1zbV9mZW5jZV9jYjsKIAogI2RlZmluZSBO VU1fRE9NQUlOUyAyICAgIC8qIG9uZSBmb3IgS01TLCB0aGVuIG9uZSBwZXIgZ3B1IGNvcmUgKD8p ICovCkBAIC0xMDEsOSArMTAyLDYgQEAgc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSB7CiAKIAlzdHJ1 Y3QgZHJtX2ZiX2hlbHBlciAqZmJkZXY7CiAKLQl1aW50MzJfdCBuZXh0X2ZlbmNlLCBjb21wbGV0 ZWRfZmVuY2U7Ci0Jd2FpdF9xdWV1ZV9oZWFkX3QgZmVuY2VfZXZlbnQ7Ci0KIAlzdHJ1Y3QgbXNt X3JkX3N0YXRlICpyZDsKIAlzdHJ1Y3QgbXNtX3BlcmZfc3RhdGUgKnBlcmY7CiAKQEAgLTExMiw5 ICsxMTAsNiBAQCBzdHJ1Y3QgbXNtX2RybV9wcml2YXRlIHsKIAogCXN0cnVjdCB3b3JrcXVldWVf c3RydWN0ICp3cTsKIAotCS8qIGNhbGxiYWNrcyBkZWZlcnJlZCB1bnRpbCBibyBpcyBpbmFjdGl2 ZTogKi8KLQlzdHJ1Y3QgbGlzdF9oZWFkIGZlbmNlX2NiczsKLQogCS8qIGNydGNzIHBlbmRpbmcg YXN5bmMgYXRvbWljIHVwZGF0ZXM6ICovCiAJdWludDMyX3QgcGVuZGluZ19jcnRjczsKIAl3YWl0 X3F1ZXVlX2hlYWRfdCBwZW5kaW5nX2NydGNzX2V2ZW50OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21zbS9tc21fZmVuY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZlbmNlLmMK aW5kZXggMDAyZWVjYi4uZjBlZDZhNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9t c21fZmVuY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mZW5jZS5jCkBAIC0xNSw0 OSArMTUsNjggQEAKICAqIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KICAqLwogCisjaW5jbHVkZSA8bGludXgvZmVuY2UuaD4KKwogI2lu Y2x1ZGUgIm1zbV9kcnYuaCIKICNpbmNsdWRlICJtc21fZmVuY2UuaCIKLSNpbmNsdWRlICJtc21f Z3B1LmgiCiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBmZW5jZV9jb21wbGV0ZWQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdWludDMyX3QgZmVuY2UpCisKK3N0cnVjdCBtc21fZmVuY2VfY29udGV4dCAq Cittc21fZmVuY2VfY29udGV4dF9hbGxvYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBjb25zdCBj aGFyICpuYW1lKQogewotCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYgPSBkZXYtPmRldl9w cml2YXRlOwotCXJldHVybiAoaW50MzJfdCkocHJpdi0+Y29tcGxldGVkX2ZlbmNlIC0gZmVuY2Up ID49IDA7CisJc3RydWN0IG1zbV9mZW5jZV9jb250ZXh0ICpmY3R4OworCisJZmN0eCA9IGt6YWxs b2Moc2l6ZW9mKCpmY3R4KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFmY3R4KQorCQlyZXR1cm4gRVJS X1BUUigtRU5PTUVNKTsKKworCWZjdHgtPmRldiA9IGRldjsKKwlmY3R4LT5uYW1lID0gbmFtZTsK Kwlpbml0X3dhaXRxdWV1ZV9oZWFkKCZmY3R4LT5ldmVudCk7CisJSU5JVF9MSVNUX0hFQUQoJmZj dHgtPmZlbmNlX2Nicyk7CisKKwlyZXR1cm4gZmN0eDsKIH0KIAotaW50IG1zbV93YWl0X2ZlbmNl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVpbnQzMl90IGZlbmNlLAotCQlrdGltZV90ICp0aW1l b3V0ICwgYm9vbCBpbnRlcnJ1cHRpYmxlKQordm9pZCBtc21fZmVuY2VfY29udGV4dF9mcmVlKHN0 cnVjdCBtc21fZmVuY2VfY29udGV4dCAqZmN0eCkKIHsKLQlzdHJ1Y3QgbXNtX2RybV9wcml2YXRl ICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlpbnQgcmV0OworCWtmcmVlKGZjdHgpOworfQor CitzdGF0aWMgaW5saW5lIGJvb2wgZmVuY2VfY29tcGxldGVkKHN0cnVjdCBtc21fZmVuY2VfY29u dGV4dCAqZmN0eCwgdWludDMyX3QgZmVuY2UpCit7CisJcmV0dXJuIChpbnQzMl90KShmY3R4LT5j b21wbGV0ZWRfZmVuY2UgLSBmZW5jZSkgPj0gMDsKK30KIAotCWlmICghcHJpdi0+Z3B1KQotCQly ZXR1cm4gMDsKK2ludCBtc21fd2FpdF9mZW5jZShzdHJ1Y3QgbXNtX2ZlbmNlX2NvbnRleHQgKmZj dHgsIHVpbnQzMl90IGZlbmNlLAorCQlrdGltZV90ICp0aW1lb3V0LCBib29sIGludGVycnVwdGli bGUpCit7CisJaW50IHJldDsKIAotCWlmIChmZW5jZSA+IHByaXYtPmdwdS0+c3VibWl0dGVkX2Zl bmNlKSB7Ci0JCURSTV9FUlJPUigid2FpdGluZyBvbiBpbnZhbGlkIGZlbmNlOiAldSAob2YgJXUp XG4iLAotCQkJCWZlbmNlLCBwcml2LT5ncHUtPnN1Ym1pdHRlZF9mZW5jZSk7CisJaWYgKGZlbmNl ID4gZmN0eC0+bGFzdF9mZW5jZSkgeworCQlEUk1fRVJST1IoIiVzOiB3YWl0aW5nIG9uIGludmFs aWQgZmVuY2U6ICV1IChvZiAldSlcbiIsCisJCQkJZmN0eC0+bmFtZSwgZmVuY2UsIGZjdHgtPmxh c3RfZmVuY2UpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKIAlpZiAoIXRpbWVvdXQpIHsKIAkJ Lyogbm8td2FpdDogKi8KLQkJcmV0ID0gZmVuY2VfY29tcGxldGVkKGRldiwgZmVuY2UpID8gMCA6 IC1FQlVTWTsKKwkJcmV0ID0gZmVuY2VfY29tcGxldGVkKGZjdHgsIGZlbmNlKSA/IDAgOiAtRUJV U1k7CiAJfSBlbHNlIHsKIAkJdW5zaWduZWQgbG9uZyByZW1haW5pbmdfamlmZmllcyA9IHRpbWVv dXRfdG9famlmZmllcyh0aW1lb3V0KTsKIAogCQlpZiAoaW50ZXJydXB0aWJsZSkKLQkJCXJldCA9 IHdhaXRfZXZlbnRfaW50ZXJydXB0aWJsZV90aW1lb3V0KHByaXYtPmZlbmNlX2V2ZW50LAotCQkJ CWZlbmNlX2NvbXBsZXRlZChkZXYsIGZlbmNlKSwKKwkJCXJldCA9IHdhaXRfZXZlbnRfaW50ZXJy dXB0aWJsZV90aW1lb3V0KGZjdHgtPmV2ZW50LAorCQkJCWZlbmNlX2NvbXBsZXRlZChmY3R4LCBm ZW5jZSksCiAJCQkJcmVtYWluaW5nX2ppZmZpZXMpOwogCQllbHNlCi0JCQlyZXQgPSB3YWl0X2V2 ZW50X3RpbWVvdXQocHJpdi0+ZmVuY2VfZXZlbnQsCi0JCQkJZmVuY2VfY29tcGxldGVkKGRldiwg ZmVuY2UpLAorCQkJcmV0ID0gd2FpdF9ldmVudF90aW1lb3V0KGZjdHgtPmV2ZW50LAorCQkJCWZl bmNlX2NvbXBsZXRlZChmY3R4LCBmZW5jZSksCiAJCQkJcmVtYWluaW5nX2ppZmZpZXMpOwogCiAJ CWlmIChyZXQgPT0gMCkgewogCQkJREJHKCJ0aW1lb3V0IHdhaXRpbmcgZm9yIGZlbmNlOiAldSAo Y29tcGxldGVkOiAldSkiLAotCQkJCQlmZW5jZSwgcHJpdi0+Y29tcGxldGVkX2ZlbmNlKTsKKwkJ CQkJZmVuY2UsIGZjdHgtPmNvbXBsZXRlZF9mZW5jZSk7CiAJCQlyZXQgPSAtRVRJTUVET1VUOwog CQl9IGVsc2UgaWYgKHJldCAhPSAtRVJFU1RBUlRTWVMpIHsKIAkJCXJldCA9IDA7CkBAIC02Nyw1 MCArODYsNTAgQEAgaW50IG1zbV93YWl0X2ZlbmNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVp bnQzMl90IGZlbmNlLAogCXJldHVybiByZXQ7CiB9CiAKLWludCBtc21fcXVldWVfZmVuY2VfY2Io c3RydWN0IGRybV9kZXZpY2UgKmRldiwKK2ludCBtc21fcXVldWVfZmVuY2VfY2Ioc3RydWN0IG1z bV9mZW5jZV9jb250ZXh0ICpmY3R4LAogCQlzdHJ1Y3QgbXNtX2ZlbmNlX2NiICpjYiwgdWludDMy X3QgZmVuY2UpCiB7Ci0Jc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7CisJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiA9IGZjdHgtPmRldi0+ZGV2X3By aXZhdGU7CiAJaW50IHJldCA9IDA7CiAKLQltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7 CisJbXV0ZXhfbG9jaygmZmN0eC0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCWlmICghbGlzdF9lbXB0 eSgmY2ItPndvcmsuZW50cnkpKSB7CiAJCXJldCA9IC1FSU5WQUw7Ci0JfSBlbHNlIGlmIChmZW5j ZSA+IHByaXYtPmNvbXBsZXRlZF9mZW5jZSkgeworCX0gZWxzZSBpZiAoZmVuY2UgPiBmY3R4LT5j b21wbGV0ZWRfZmVuY2UpIHsKIAkJY2ItPmZlbmNlID0gZmVuY2U7Ci0JCWxpc3RfYWRkX3RhaWwo JmNiLT53b3JrLmVudHJ5LCAmcHJpdi0+ZmVuY2VfY2JzKTsKKwkJbGlzdF9hZGRfdGFpbCgmY2It PndvcmsuZW50cnksICZmY3R4LT5mZW5jZV9jYnMpOwogCX0gZWxzZSB7CiAJCXF1ZXVlX3dvcmso cHJpdi0+d3EsICZjYi0+d29yayk7CiAJfQotCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0 ZXgpOworCW11dGV4X3VubG9jaygmZmN0eC0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwogCiAJcmV0dXJu IHJldDsKIH0KIAogLyogY2FsbGVkIGZyb20gd29ya3F1ZXVlICovCi12b2lkIG1zbV91cGRhdGVf ZmVuY2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdWludDMyX3QgZmVuY2UpCit2b2lkIG1zbV91 cGRhdGVfZmVuY2Uoc3RydWN0IG1zbV9mZW5jZV9jb250ZXh0ICpmY3R4LCB1aW50MzJfdCBmZW5j ZSkKIHsKLQlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsK KwlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZmN0eC0+ZGV2LT5kZXZfcHJpdmF0ZTsK IAotCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKLQlwcml2LT5jb21wbGV0ZWRfZmVu Y2UgPSBtYXgoZmVuY2UsIHByaXYtPmNvbXBsZXRlZF9mZW5jZSk7CisJbXV0ZXhfbG9jaygmZmN0 eC0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCWZjdHgtPmNvbXBsZXRlZF9mZW5jZSA9IG1heChmZW5j ZSwgZmN0eC0+Y29tcGxldGVkX2ZlbmNlKTsKIAotCXdoaWxlICghbGlzdF9lbXB0eSgmcHJpdi0+ ZmVuY2VfY2JzKSkgeworCXdoaWxlICghbGlzdF9lbXB0eSgmZmN0eC0+ZmVuY2VfY2JzKSkgewog CQlzdHJ1Y3QgbXNtX2ZlbmNlX2NiICpjYjsKIAotCQljYiA9IGxpc3RfZmlyc3RfZW50cnkoJnBy aXYtPmZlbmNlX2NicywKKwkJY2IgPSBsaXN0X2ZpcnN0X2VudHJ5KCZmY3R4LT5mZW5jZV9jYnMs CiAJCQkJc3RydWN0IG1zbV9mZW5jZV9jYiwgd29yay5lbnRyeSk7CiAKLQkJaWYgKGNiLT5mZW5j ZSA+IHByaXYtPmNvbXBsZXRlZF9mZW5jZSkKKwkJaWYgKGNiLT5mZW5jZSA+IGZjdHgtPmNvbXBs ZXRlZF9mZW5jZSkKIAkJCWJyZWFrOwogCiAJCWxpc3RfZGVsX2luaXQoJmNiLT53b3JrLmVudHJ5 KTsKIAkJcXVldWVfd29yayhwcml2LT53cSwgJmNiLT53b3JrKTsKIAl9CiAKLQltdXRleF91bmxv Y2soJmRldi0+c3RydWN0X211dGV4KTsKKwltdXRleF91bmxvY2soJmZjdHgtPmRldi0+c3RydWN0 X211dGV4KTsKIAotCXdha2VfdXBfYWxsKCZwcml2LT5mZW5jZV9ldmVudCk7CisJd2FrZV91cF9h bGwoJmZjdHgtPmV2ZW50KTsKIH0KIAogdm9pZCBfX21zbV9mZW5jZV93b3JrZXIoc3RydWN0IHdv cmtfc3RydWN0ICp3b3JrKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmVu Y2UuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2ZlbmNlLmgKaW5kZXggNmRkYjgxYy4uM2Vk MjA5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZmVuY2UuaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vbXNtL21zbV9mZW5jZS5oCkBAIC0yMCw2ICsyMCwyMSBAQAogCiAjaW5j bHVkZSAibXNtX2Rydi5oIgogCitzdHJ1Y3QgbXNtX2ZlbmNlX2NvbnRleHQgeworCXN0cnVjdCBk cm1fZGV2aWNlICpkZXY7CisJY29uc3QgY2hhciAqbmFtZTsKKwkvKiBsYXN0X2ZlbmNlID09IGNv bXBsZXRlZF9mZW5jZSAtLT4gbm8gcGVuZGluZyB3b3JrICovCisJdWludDMyX3QgbGFzdF9mZW5j ZTsgICAgICAgICAgLyogbGFzdCBhc3NpZ25lZCBmZW5jZSAqLworCXVpbnQzMl90IGNvbXBsZXRl ZF9mZW5jZTsgICAgIC8qIGxhc3QgY29tcGxldGVkIGZlbmNlICovCisJd2FpdF9xdWV1ZV9oZWFk X3QgZXZlbnQ7CisJLyogY2FsbGJhY2tzIGRlZmVycmVkIHVudGlsIGJvIGlzIGluYWN0aXZlOiAq LworCXN0cnVjdCBsaXN0X2hlYWQgZmVuY2VfY2JzOworfTsKKworc3RydWN0IG1zbV9mZW5jZV9j b250ZXh0ICogbXNtX2ZlbmNlX2NvbnRleHRfYWxsb2Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwK KwkJY29uc3QgY2hhciAqbmFtZSk7Cit2b2lkIG1zbV9mZW5jZV9jb250ZXh0X2ZyZWUoc3RydWN0 IG1zbV9mZW5jZV9jb250ZXh0ICpmY3R4KTsKKwogLyogY2FsbGJhY2sgZnJvbSB3cSBvbmNlIGZl bmNlIGhhcyBwYXNzZWQ6ICovCiBzdHJ1Y3QgbXNtX2ZlbmNlX2NiIHsKIAlzdHJ1Y3Qgd29ya19z dHJ1Y3Qgd29yazsKQEAgLTM0LDEwICs0OSwxMCBAQCB2b2lkIF9fbXNtX2ZlbmNlX3dvcmtlcihz dHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspOwogCQkoX2NiKS0+ZnVuYyA9IF9mdW5jOyAgICAgICAg ICAgICAgICAgICAgICAgICBcCiAJfSB3aGlsZSAoMCkKIAotaW50IG1zbV93YWl0X2ZlbmNlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHVpbnQzMl90IGZlbmNlLAoraW50IG1zbV93YWl0X2ZlbmNl KHN0cnVjdCBtc21fZmVuY2VfY29udGV4dCAqZmN0eCwgdWludDMyX3QgZmVuY2UsCiAJCWt0aW1l X3QgKnRpbWVvdXQsIGJvb2wgaW50ZXJydXB0aWJsZSk7Ci1pbnQgbXNtX3F1ZXVlX2ZlbmNlX2Ni KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCitpbnQgbXNtX3F1ZXVlX2ZlbmNlX2NiKHN0cnVjdCBt c21fZmVuY2VfY29udGV4dCAqZmN0eCwKIAkJc3RydWN0IG1zbV9mZW5jZV9jYiAqY2IsIHVpbnQz Ml90IGZlbmNlKTsKLXZvaWQgbXNtX3VwZGF0ZV9mZW5jZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB1aW50MzJfdCBmZW5jZSk7Cit2b2lkIG1zbV91cGRhdGVfZmVuY2Uoc3RydWN0IG1zbV9mZW5j ZV9jb250ZXh0ICpmY3R4LCB1aW50MzJfdCBmZW5jZSk7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9n ZW0uYwppbmRleCAwOWUyMTkwLi44MGJiNmUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v bXNtL21zbV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uYwpAQCAtNDU0 LDYgKzQ1NCw3IEBAIHZvaWQgbXNtX2dlbV9tb3ZlX3RvX2luYWN0aXZlKHN0cnVjdCBkcm1fZ2Vt X29iamVjdCAqb2JqKQogaW50IG1zbV9nZW1fY3B1X3ByZXAoc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvYmosIHVpbnQzMl90IG9wLCBrdGltZV90ICp0aW1lb3V0KQogewogCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBvYmotPmRldjsKKwlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgbXNtX2dlbV9vYmplY3QgKm1zbV9vYmogPSB0b19tc21f Ym8ob2JqKTsKIAlpbnQgcmV0ID0gMDsKIApAQCAtNDYzLDcgKzQ2NCw4IEBAIGludCBtc21fZ2Vt X2NwdV9wcmVwKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLCB1aW50MzJfdCBvcCwga3RpbWVf dCAqdGltZW91dCkKIAkJaWYgKG9wICYgTVNNX1BSRVBfTk9TWU5DKQogCQkJdGltZW91dCA9IE5V TEw7CiAKLQkJcmV0ID0gbXNtX3dhaXRfZmVuY2UoZGV2LCBmZW5jZSwgdGltZW91dCwgdHJ1ZSk7 CisJCWlmIChwcml2LT5ncHUpCisJCQlyZXQgPSBtc21fd2FpdF9mZW5jZShwcml2LT5ncHUtPmZj dHgsIGZlbmNlLCB0aW1lb3V0LCB0cnVlKTsKIAl9CiAKIAkvKiBUT0RPIGNhY2hlIG1haW50ZW5h bmNlICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHUuYyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vbXNtX2dwdS5jCmluZGV4IGRmYTcyYjguLmUwNGJkMmYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9t c20vbXNtX2dwdS5jCkBAIC0zMTMsNyArMzEzLDcgQEAgc3RhdGljIHZvaWQgaGFuZ2NoZWNrX2hh bmRsZXIodW5zaWduZWQgbG9uZyBkYXRhKQogCWlmIChmZW5jZSAhPSBncHUtPmhhbmdjaGVja19m ZW5jZSkgewogCQkvKiBzb21lIHByb2dyZXNzIGhhcyBiZWVuIG1hZGUuLiB5YSEgKi8KIAkJZ3B1 LT5oYW5nY2hlY2tfZmVuY2UgPSBmZW5jZTsKLQl9IGVsc2UgaWYgKGZlbmNlIDwgZ3B1LT5zdWJt aXR0ZWRfZmVuY2UpIHsKKwl9IGVsc2UgaWYgKGZlbmNlIDwgZ3B1LT5mY3R4LT5sYXN0X2ZlbmNl KSB7CiAJCS8qIG5vIHByb2dyZXNzIGFuZCBub3QgZG9uZS4uIGh1bmchICovCiAJCWdwdS0+aGFu Z2NoZWNrX2ZlbmNlID0gZmVuY2U7CiAJCWRldl9lcnIoZGV2LT5kZXYsICIlczogaGFuZ2NoZWNr IGRldGVjdGVkIGdwdSBsb2NrdXAhXG4iLApAQCAtMzIxLDEyICszMjEsMTIgQEAgc3RhdGljIHZv aWQgaGFuZ2NoZWNrX2hhbmRsZXIodW5zaWduZWQgbG9uZyBkYXRhKQogCQlkZXZfZXJyKGRldi0+ ZGV2LCAiJXM6ICAgICBjb21wbGV0ZWQgZmVuY2U6ICV1XG4iLAogCQkJCWdwdS0+bmFtZSwgZmVu Y2UpOwogCQlkZXZfZXJyKGRldi0+ZGV2LCAiJXM6ICAgICBzdWJtaXR0ZWQgZmVuY2U6ICV1XG4i LAotCQkJCWdwdS0+bmFtZSwgZ3B1LT5zdWJtaXR0ZWRfZmVuY2UpOworCQkJCWdwdS0+bmFtZSwg Z3B1LT5mY3R4LT5sYXN0X2ZlbmNlKTsKIAkJcXVldWVfd29yayhwcml2LT53cSwgJmdwdS0+cmVj b3Zlcl93b3JrKTsKIAl9CiAKIAkvKiBpZiBzdGlsbCBtb3JlIHBlbmRpbmcgd29yaywgcmVzZXQg dGhlIGhhbmdjaGVjayB0aW1lcjogKi8KLQlpZiAoZ3B1LT5zdWJtaXR0ZWRfZmVuY2UgPiBncHUt PmhhbmdjaGVja19mZW5jZSkKKwlpZiAoZ3B1LT5mY3R4LT5sYXN0X2ZlbmNlID4gZ3B1LT5oYW5n Y2hlY2tfZmVuY2UpCiAJCWhhbmdjaGVja190aW1lcl9yZXNldChncHUpOwogCiAJLyogd29ya2Fy b3VuZCBmb3IgbWlzc2luZyBpcnE6ICovCkBAIC00NzQsNyArNDc0LDcgQEAgc3RhdGljIHZvaWQg cmV0aXJlX3dvcmtlcihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGdwdS0+ZGV2OwogCXVpbnQzMl90IGZlbmNlID0gZ3B1LT5mdW5jcy0+bGFzdF9m ZW5jZShncHUpOwogCi0JbXNtX3VwZGF0ZV9mZW5jZShncHUtPmRldiwgZmVuY2UpOworCW1zbV91 cGRhdGVfZmVuY2UoZ3B1LT5mY3R4LCBmZW5jZSk7CiAKIAltdXRleF9sb2NrKCZkZXYtPnN0cnVj dF9tdXRleCk7CiAJcmV0aXJlX3N1Ym1pdHMoZ3B1LCBmZW5jZSk7CkBAIC01MDIsOSArNTAyLDcg QEAgaW50IG1zbV9ncHVfc3VibWl0KHN0cnVjdCBtc21fZ3B1ICpncHUsIHN0cnVjdCBtc21fZ2Vt X3N1Ym1pdCAqc3VibWl0LAogCiAJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZkZXYtPnN0cnVj dF9tdXRleCkpOwogCi0Jc3VibWl0LT5mZW5jZSA9ICsrcHJpdi0+bmV4dF9mZW5jZTsKLQotCWdw dS0+c3VibWl0dGVkX2ZlbmNlID0gc3VibWl0LT5mZW5jZTsKKwlzdWJtaXQtPmZlbmNlID0gKytn cHUtPmZjdHgtPmxhc3RfZmVuY2U7CiAKIAlpbmFjdGl2ZV9jYW5jZWwoZ3B1KTsKIApAQCAtNTEy LDggKzUxMCw2IEBAIGludCBtc21fZ3B1X3N1Ym1pdChzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBzdHJ1 Y3QgbXNtX2dlbV9zdWJtaXQgKnN1Ym1pdCwKIAogCW1zbV9yZF9kdW1wX3N1Ym1pdChzdWJtaXQp OwogCi0JZ3B1LT5zdWJtaXR0ZWRfZmVuY2UgPSBzdWJtaXQtPmZlbmNlOwotCiAJdXBkYXRlX3N3 X2NudHJzKGdwdSk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgc3VibWl0LT5ucl9ib3M7IGkrKykgewpA QCAtNTc0LDYgKzU3MCwxMiBAQCBpbnQgbXNtX2dwdV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpk cm0sIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsCiAJZ3B1LT5mdW5jcyA9IGZ1bmNzOwog CWdwdS0+bmFtZSA9IG5hbWU7CiAJZ3B1LT5pbmFjdGl2ZSA9IHRydWU7CisJZ3B1LT5mY3R4ID0g bXNtX2ZlbmNlX2NvbnRleHRfYWxsb2MoZHJtLCBuYW1lKTsKKwlpZiAoSVNfRVJSKGdwdS0+ZmN0 eCkpIHsKKwkJcmV0ID0gUFRSX0VSUihncHUtPmZjdHgpOworCQlncHUtPmZjdHggPSBOVUxMOwor CQlnb3RvIGZhaWw7CisJfQogCiAJSU5JVF9MSVNUX0hFQUQoJmdwdS0+YWN0aXZlX2xpc3QpOwog CUlOSVRfV09SSygmZ3B1LT5yZXRpcmVfd29yaywgcmV0aXJlX3dvcmtlcik7CkBAIC03MDIsNCAr NzA0LDcgQEAgdm9pZCBtc21fZ3B1X2NsZWFudXAoc3RydWN0IG1zbV9ncHUgKmdwdSkKIAogCWlm IChncHUtPm1tdSkKIAkJZ3B1LT5tbXUtPmZ1bmNzLT5kZXN0cm95KGdwdS0+bW11KTsKKworCWlm IChncHUtPmZjdHgpCisJCW1zbV9mZW5jZV9jb250ZXh0X2ZyZWUoZ3B1LT5mY3R4KTsKIH0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5oIGIvZHJpdmVycy9ncHUvZHJt L21zbS9tc21fZ3B1LmgKaW5kZXggMmJiZTg1YS4uMDI1ZTI1YiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL21zbS9tc21fZ3B1LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1 LmgKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9yZWd1bGF0b3IvY29uc3VtZXIu aD4KIAogI2luY2x1ZGUgIm1zbV9kcnYuaCIKKyNpbmNsdWRlICJtc21fZmVuY2UuaCIKICNpbmNs dWRlICJtc21fcmluZ2J1ZmZlci5oIgogCiBzdHJ1Y3QgbXNtX2dlbV9zdWJtaXQ7CkBAIC03Nywx MyArNzgsMTUgQEAgc3RydWN0IG1zbV9ncHUgewogCWNvbnN0IHN0cnVjdCBtc21fZ3B1X3BlcmZj bnRyICpwZXJmY250cnM7CiAJdWludDMyX3QgbnVtX3BlcmZjbnRyczsKIAorCS8qIHJpbmdidWZm ZXI6ICovCiAJc3RydWN0IG1zbV9yaW5nYnVmZmVyICpyYjsKIAl1aW50MzJfdCByYl9pb3ZhOwog CiAJLyogbGlzdCBvZiBHRU0gYWN0aXZlIG9iamVjdHM6ICovCiAJc3RydWN0IGxpc3RfaGVhZCBh Y3RpdmVfbGlzdDsKIAotCXVpbnQzMl90IHN1Ym1pdHRlZF9mZW5jZTsKKwkvKiBmZW5jaW5nOiAq LworCXN0cnVjdCBtc21fZmVuY2VfY29udGV4dCAqZmN0eDsKIAogCS8qIGlzIGdwdSBwb3dlcmVk L2FjdGl2ZT8gKi8KIAlpbnQgYWN0aXZlX2NudDsKQEAgLTEyNSw3ICsxMjgsNyBAQCBzdHJ1Y3Qg bXNtX2dwdSB7CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBtc21fZ3B1X2FjdGl2ZShzdHJ1Y3QgbXNt X2dwdSAqZ3B1KQogewotCXJldHVybiBncHUtPnN1Ym1pdHRlZF9mZW5jZSA+IGdwdS0+ZnVuY3Mt Pmxhc3RfZmVuY2UoZ3B1KTsKKwlyZXR1cm4gZ3B1LT5mY3R4LT5sYXN0X2ZlbmNlID4gZ3B1LT5m dW5jcy0+bGFzdF9mZW5jZShncHUpOwogfQogCiAvKiBQZXJmLUNvdW50ZXJzOgotLSAKMi41LjAK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=