From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Subject: [PATCH] drm/amdgpu: optionally do a writeback but don't invalidate TC for IB fences Date: Tue, 3 Apr 2018 16:09:38 -0400 Message-ID: <20180403200938.27851-1-maraeo@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org RnJvbTogTWFyZWsgT2zFocOhayA8bWFyZWsub2xzYWtAYW1kLmNvbT4KClRoZXJlIGlzIGEgbmV3 IElCIGZsYWcgdGhhdCBlbmFibGVzIHRoaXMgbmV3IGJlaGF2aW9yLgpGdWxsIGludmFsaWRhdGlv biBpcyB1bm5lY2Vzc2FyeSBmb3IgUkVMRUFTRV9NRU0gYW5kIGRvZXNuJ3QgbWFrZSBzZW5zZQp3 aGVuIGRyYXcgY2FsbHMgZnJvbSB0d28gYWRqYWNlbnQgZ2Z4IElCcyBydW4gaW4gcGFyYWxsZWwu IFRoaXMgd2lsbCBiZQp0aGUgbmV3IGRlZmF1bHQgZm9yIE1lc2EuCgpTaWduZWQtb2ZmLWJ5OiBN YXJlayBPbMWhw6FrIDxtYXJlay5vbHNha0BhbWQuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9mZW5jZS5jIHwgIDUgKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9pYi5jICAgIHwgIDggKysrKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9yaW5nLmggIHwgIDQgKysrLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X3ZtLmMgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4 X3Y5XzAuYyAgICAgfCAxMSArKysrKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv c29jMTVkLmggICAgICAgfCAgMSArCiBpbmNsdWRlL3VhcGkvZHJtL2FtZGdwdV9kcm0uaCAgICAg ICAgICAgICB8ICA0ICsrKysKIDcgZmlsZXMgY2hhbmdlZCwgMjUgaW5zZXJ0aW9ucygrKSwgMTAg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2ZlbmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZmVuY2UuYwpp bmRleCA5NzQ0OWUwNmEyNDIuLmQwOWZjYWIyMzk4ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ZlbmNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2ZlbmNlLmMKQEAgLTEyNCwzOSArMTI0LDQwIEBAIHN0YXRpYyB1MzIgYW1k Z3B1X2ZlbmNlX3JlYWQoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQogCiAvKioKICAqIGFtZGdw dV9mZW5jZV9lbWl0IC0gZW1pdCBhIGZlbmNlIG9uIHRoZSByZXF1ZXN0ZWQgcmluZwogICoKICAq IEByaW5nOiByaW5nIHRoZSBmZW5jZSBpcyBhc3NvY2lhdGVkIHdpdGgKICAqIEBmOiByZXN1bHRp bmcgZmVuY2Ugb2JqZWN0CiAgKgogICogRW1pdHMgYSBmZW5jZSBjb21tYW5kIG9uIHRoZSByZXF1 ZXN0ZWQgcmluZyAoYWxsIGFzaWNzKS4KICAqIFJldHVybnMgMCBvbiBzdWNjZXNzLCAtRU5PTUVN IG9uIGZhaWx1cmUuCiAgKi8KLWludCBhbWRncHVfZmVuY2VfZW1pdChzdHJ1Y3QgYW1kZ3B1X3Jp bmcgKnJpbmcsIHN0cnVjdCBkbWFfZmVuY2UgKipmKQoraW50IGFtZGdwdV9mZW5jZV9lbWl0KHN0 cnVjdCBhbWRncHVfcmluZyAqcmluZywgc3RydWN0IGRtYV9mZW5jZSAqKmYsCisJCSAgICAgIHVu c2lnbmVkIGZsYWdzKQogewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRl djsKIAlzdHJ1Y3QgYW1kZ3B1X2ZlbmNlICpmZW5jZTsKIAlzdHJ1Y3QgZG1hX2ZlbmNlICpvbGQs ICoqcHRyOwogCXVpbnQzMl90IHNlcTsKIAogCWZlbmNlID0ga21lbV9jYWNoZV9hbGxvYyhhbWRn cHVfZmVuY2Vfc2xhYiwgR0ZQX0tFUk5FTCk7CiAJaWYgKGZlbmNlID09IE5VTEwpCiAJCXJldHVy biAtRU5PTUVNOwogCiAJc2VxID0gKytyaW5nLT5mZW5jZV9kcnYuc3luY19zZXE7CiAJZmVuY2Ut PnJpbmcgPSByaW5nOwogCWRtYV9mZW5jZV9pbml0KCZmZW5jZS0+YmFzZSwgJmFtZGdwdV9mZW5j ZV9vcHMsCiAJCSAgICAgICAmcmluZy0+ZmVuY2VfZHJ2LmxvY2ssCiAJCSAgICAgICBhZGV2LT5m ZW5jZV9jb250ZXh0ICsgcmluZy0+aWR4LAogCQkgICAgICAgc2VxKTsKIAlhbWRncHVfcmluZ19l bWl0X2ZlbmNlKHJpbmcsIHJpbmctPmZlbmNlX2Rydi5ncHVfYWRkciwKLQkJCSAgICAgICBzZXEs IEFNREdQVV9GRU5DRV9GTEFHX0lOVCk7CisJCQkgICAgICAgc2VxLCBmbGFncyB8IEFNREdQVV9G RU5DRV9GTEFHX0lOVCk7CiAKIAlwdHIgPSAmcmluZy0+ZmVuY2VfZHJ2LmZlbmNlc1tzZXEgJiBy aW5nLT5mZW5jZV9kcnYubnVtX2ZlbmNlc19tYXNrXTsKIAkvKiBUaGlzIGZ1bmN0aW9uIGNhbid0 IGJlIGNhbGxlZCBjb25jdXJyZW50bHkgYW55d2F5LCBvdGhlcndpc2UKIAkgKiBlbWl0dGluZyB0 aGUgZmVuY2Ugd291bGQgbWVzcyB1cCB0aGUgaGFyZHdhcmUgcmluZyBidWZmZXIuCiAJICovCiAJ b2xkID0gcmN1X2RlcmVmZXJlbmNlX3Byb3RlY3RlZCgqcHRyLCAxKTsKIAlpZiAob2xkICYmICFk bWFfZmVuY2VfaXNfc2lnbmFsZWQob2xkKSkgewogCQlEUk1fSU5GTygicmN1IHNsb3QgaXMgYnVz eVxuIik7CiAJCWRtYV9mZW5jZV93YWl0KG9sZCwgZmFsc2UpOwogCX0KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pYi5jIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2liLmMKaW5kZXggMzExNTg5ZTAyZDE3Li5mNzBlZWVkOWVkNzYgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pYi5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pYi5jCkBAIC0xMjAsMjAgKzEyMCwyMSBA QCBpbnQgYW1kZ3B1X2liX3NjaGVkdWxlKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdW5zaWdu ZWQgbnVtX2licywKIAkJICAgICAgIHN0cnVjdCBkbWFfZmVuY2UgKipmKQogewogCXN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2ID0gcmluZy0+YWRldjsKIAlzdHJ1Y3QgYW1kZ3B1X2liICppYiA9 ICZpYnNbMF07CiAJc3RydWN0IGRtYV9mZW5jZSAqdG1wID0gTlVMTDsKIAlib29sIHNraXBfcHJl YW1ibGUsIG5lZWRfY3R4X3N3aXRjaDsKIAl1bnNpZ25lZCBwYXRjaF9vZmZzZXQgPSB+MDsKIAlz dHJ1Y3QgYW1kZ3B1X3ZtICp2bTsKIAl1aW50NjRfdCBmZW5jZV9jdHg7CiAJdWludDMyX3Qgc3Rh dHVzID0gMCwgYWxsb2Nfc2l6ZTsKKwl1bnNpZ25lZCBmZW5jZV9mbGFncyA9IDA7CiAKIAl1bnNp Z25lZCBpOwogCWludCByID0gMDsKIAlib29sIG5lZWRfcGlwZV9zeW5jID0gZmFsc2U7CiAKIAlp ZiAobnVtX2licyA9PSAwKQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCS8qIHJpbmcgdGVzdHMgZG9u J3QgdXNlIGEgam9iICovCiAJaWYgKGpvYikgewpAQCAtMjIwLDM2ICsyMjEsMzkgQEAgaW50IGFt ZGdwdV9pYl9zY2hlZHVsZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVuc2lnbmVkIG51bV9p YnMsCiAJfQogCiAJaWYgKHJpbmctPmZ1bmNzLT5lbWl0X3RteikKIAkJYW1kZ3B1X3JpbmdfZW1p dF90bXoocmluZywgZmFsc2UpOwogCiAjaWZkZWYgQ09ORklHX1g4Nl82NAogCWlmICghKGFkZXYt PmZsYWdzICYgQU1EX0lTX0FQVSkpCiAjZW5kaWYKIAkJYW1kZ3B1X2FzaWNfaW52YWxpZGF0ZV9o ZHAoYWRldiwgcmluZyk7CiAKLQlyID0gYW1kZ3B1X2ZlbmNlX2VtaXQocmluZywgZik7CisJaWYg KGliLT5mbGFncyAmIEFNREdQVV9JQl9GTEFHX1RDX1dCX05PVF9JTlZBTElEQVRFKQorCQlmZW5j ZV9mbGFncyB8PSBBTURHUFVfRkVOQ0VfRkxBR19UQ19XQl9PTkxZOworCisJciA9IGFtZGdwdV9m ZW5jZV9lbWl0KHJpbmcsIGYsIGZlbmNlX2ZsYWdzKTsKIAlpZiAocikgewogCQlkZXZfZXJyKGFk ZXYtPmRldiwgImZhaWxlZCB0byBlbWl0IGZlbmNlICglZClcbiIsIHIpOwogCQlpZiAoam9iICYm IGpvYi0+dm1pZCkKIAkJCWFtZGdwdV92bWlkX3Jlc2V0KGFkZXYsIHJpbmctPmZ1bmNzLT52bWh1 Yiwgam9iLT52bWlkKTsKIAkJYW1kZ3B1X3JpbmdfdW5kbyhyaW5nKTsKIAkJcmV0dXJuIHI7CiAJ fQogCiAJaWYgKHJpbmctPmZ1bmNzLT5pbnNlcnRfZW5kKQogCQlyaW5nLT5mdW5jcy0+aW5zZXJ0 X2VuZChyaW5nKTsKIAogCS8qIHdyYXAgdGhlIGxhc3QgSUIgd2l0aCBmZW5jZSAqLwogCWlmIChq b2IgJiYgam9iLT51Zl9hZGRyKSB7CiAJCWFtZGdwdV9yaW5nX2VtaXRfZmVuY2UocmluZywgam9i LT51Zl9hZGRyLCBqb2ItPnVmX3NlcXVlbmNlLAotCQkJCSAgICAgICBBTURHUFVfRkVOQ0VfRkxB R182NEJJVCk7CisJCQkJICAgICAgIGZlbmNlX2ZsYWdzIHwgQU1ER1BVX0ZFTkNFX0ZMQUdfNjRC SVQpOwogCX0KIAogCWlmIChwYXRjaF9vZmZzZXQgIT0gfjAgJiYgcmluZy0+ZnVuY3MtPnBhdGNo X2NvbmRfZXhlYykKIAkJYW1kZ3B1X3JpbmdfcGF0Y2hfY29uZF9leGVjKHJpbmcsIHBhdGNoX29m ZnNldCk7CiAKIAlyaW5nLT5jdXJyZW50X2N0eCA9IGZlbmNlX2N0eDsKIAlpZiAodm0gJiYgcmlu Zy0+ZnVuY3MtPmVtaXRfc3dpdGNoX2J1ZmZlcikKIAkJYW1kZ3B1X3JpbmdfZW1pdF9zd2l0Y2hf YnVmZmVyKHJpbmcpOwogCWFtZGdwdV9yaW5nX2NvbW1pdChyaW5nKTsKIAlyZXR1cm4gMDsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yaW5nLmggYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfcmluZy5oCmluZGV4IDFkMGQyNTBjYmZkZi4u MjIyMDUyZGFlZGQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfcmluZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9yaW5nLmgK QEAgLTMzLDIwICszMywyMSBAQAogI2RlZmluZSBBTURHUFVfTUFYX0NPTVBVVEVfUklOR1MJOAog I2RlZmluZSBBTURHUFVfTUFYX1ZDRV9SSU5HUwkJMwogI2RlZmluZSBBTURHUFVfTUFYX1VWRF9F TkNfUklOR1MJMgogCiAvKiBzb21lIHNwZWNpYWwgdmFsdWVzIGZvciB0aGUgb3duZXIgZmllbGQg Ki8KICNkZWZpbmUgQU1ER1BVX0ZFTkNFX09XTkVSX1VOREVGSU5FRAkoKHZvaWQqKTB1bCkKICNk ZWZpbmUgQU1ER1BVX0ZFTkNFX09XTkVSX1ZNCQkoKHZvaWQqKTF1bCkKIAogI2RlZmluZSBBTURH UFVfRkVOQ0VfRkxBR182NEJJVCAgICAgICAgICgxIDw8IDApCiAjZGVmaW5lIEFNREdQVV9GRU5D RV9GTEFHX0lOVCAgICAgICAgICAgKDEgPDwgMSkKKyNkZWZpbmUgQU1ER1BVX0ZFTkNFX0ZMQUdf VENfV0JfT05MWSAgICAoMSA8PCAyKQogCiBlbnVtIGFtZGdwdV9yaW5nX3R5cGUgewogCUFNREdQ VV9SSU5HX1RZUEVfR0ZYLAogCUFNREdQVV9SSU5HX1RZUEVfQ09NUFVURSwKIAlBTURHUFVfUklO R19UWVBFX1NETUEsCiAJQU1ER1BVX1JJTkdfVFlQRV9VVkQsCiAJQU1ER1BVX1JJTkdfVFlQRV9W Q0UsCiAJQU1ER1BVX1JJTkdfVFlQRV9LSVEsCiAJQU1ER1BVX1JJTkdfVFlQRV9VVkRfRU5DLAog CUFNREdQVV9SSU5HX1RZUEVfVkNOX0RFQywKQEAgLTgxLDIxICs4MiwyMiBAQCBpbnQgYW1kZ3B1 X2ZlbmNlX2RyaXZlcl9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKIHZvaWQgYW1k Z3B1X2ZlbmNlX2RyaXZlcl9maW5pKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKIHZvaWQg YW1kZ3B1X2ZlbmNlX2RyaXZlcl9mb3JjZV9jb21wbGV0aW9uKHN0cnVjdCBhbWRncHVfcmluZyAq cmluZyk7CiAKIGludCBhbWRncHVfZmVuY2VfZHJpdmVyX2luaXRfcmluZyhzdHJ1Y3QgYW1kZ3B1 X3JpbmcgKnJpbmcsCiAJCQkJICB1bnNpZ25lZCBudW1faHdfc3VibWlzc2lvbik7CiBpbnQgYW1k Z3B1X2ZlbmNlX2RyaXZlcl9zdGFydF9yaW5nKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywKIAkJ CQkgICBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmMgKmlycV9zcmMsCiAJCQkJICAgdW5zaWduZWQgaXJx X3R5cGUpOwogdm9pZCBhbWRncHVfZmVuY2VfZHJpdmVyX3N1c3BlbmQoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYpOwogdm9pZCBhbWRncHVfZmVuY2VfZHJpdmVyX3Jlc3VtZShzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldik7Ci1pbnQgYW1kZ3B1X2ZlbmNlX2VtaXQoc3RydWN0IGFtZGdwdV9y aW5nICpyaW5nLCBzdHJ1Y3QgZG1hX2ZlbmNlICoqZmVuY2UpOworaW50IGFtZGdwdV9mZW5jZV9l bWl0KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlLAor CQkgICAgICB1bnNpZ25lZCBmbGFncyk7CiBpbnQgYW1kZ3B1X2ZlbmNlX2VtaXRfcG9sbGluZyhz dHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVpbnQzMl90ICpzKTsKIHZvaWQgYW1kZ3B1X2ZlbmNl X3Byb2Nlc3Moc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKTsKIGludCBhbWRncHVfZmVuY2Vfd2Fp dF9lbXB0eShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpOwogc2lnbmVkIGxvbmcgYW1kZ3B1X2Zl bmNlX3dhaXRfcG9sbGluZyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiAJCQkJICAgICAgdWlu dDMyX3Qgd2FpdF9zZXEsCiAJCQkJICAgICAgc2lnbmVkIGxvbmcgdGltZW91dCk7CiB1bnNpZ25l ZCBhbWRncHVfZmVuY2VfY291bnRfZW1pdHRlZChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpOwog CiAvKgogICogUmluZ3MuCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfdm0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jCmluZGV4 IDI0NDc0Mjk0YzkyYS4uZmUwNTM1MWVhNGQyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfdm0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfdm0uYwpAQCAtNjIwLDIxICs2MjAsMjEgQEAgaW50IGFtZGdwdV92bV9mbHVzaChzdHJ1 Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHN0cnVjdCBhbWRncHVfam9iICpqb2IsIGJvb2wgbmVlZF8K IAogCWlmICh2bV9mbHVzaF9uZWVkZWQpIHsKIAkJdHJhY2VfYW1kZ3B1X3ZtX2ZsdXNoKHJpbmcs IGpvYi0+dm1pZCwgam9iLT52bV9wZF9hZGRyKTsKIAkJYW1kZ3B1X3JpbmdfZW1pdF92bV9mbHVz aChyaW5nLCBqb2ItPnZtaWQsIGpvYi0+dm1fcGRfYWRkcik7CiAJfQogCiAJaWYgKHBhc2lkX21h cHBpbmdfbmVlZGVkKQogCQlhbWRncHVfZ21jX2VtaXRfcGFzaWRfbWFwcGluZyhyaW5nLCBqb2It PnZtaWQsIGpvYi0+cGFzaWQpOwogCiAJaWYgKHZtX2ZsdXNoX25lZWRlZCB8fCBwYXNpZF9tYXBw aW5nX25lZWRlZCkgewotCQlyID0gYW1kZ3B1X2ZlbmNlX2VtaXQocmluZywgJmZlbmNlKTsKKwkJ ciA9IGFtZGdwdV9mZW5jZV9lbWl0KHJpbmcsICZmZW5jZSwgMCk7CiAJCWlmIChyKQogCQkJcmV0 dXJuIHI7CiAJfQogCiAJaWYgKHZtX2ZsdXNoX25lZWRlZCkgewogCQltdXRleF9sb2NrKCZpZF9t Z3ItPmxvY2spOwogCQlkbWFfZmVuY2VfcHV0KGlkLT5sYXN0X2ZsdXNoKTsKIAkJaWQtPmxhc3Rf Zmx1c2ggPSBkbWFfZmVuY2VfZ2V0KGZlbmNlKTsKIAkJaWQtPmN1cnJlbnRfZ3B1X3Jlc2V0X2Nv dW50ID0KIAkJCWF0b21pY19yZWFkKCZhZGV2LT5ncHVfcmVzZXRfY291bnRlcik7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjlfMC5jIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvZ2Z4X3Y5XzAuYwppbmRleCA5ZDM5ZmQ1YjE4MjIuLjVkZWEwZDRjMGFm NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y5XzAuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjlfMC5jCkBAIC0zNzY3LDI3ICszNzY3 LDMwIEBAIHN0YXRpYyB2b2lkIGdmeF92OV8wX3JpbmdfZW1pdF9pYl9jb21wdXRlKHN0cnVjdCBh bWRncHVfcmluZyAqcmluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG93ZXJf MzJfYml0cyhpYi0+Z3B1X2FkZHIpKTsKICAgICAgICAgYW1kZ3B1X3Jpbmdfd3JpdGUocmluZywg dXBwZXJfMzJfYml0cyhpYi0+Z3B1X2FkZHIpKTsKICAgICAgICAgYW1kZ3B1X3Jpbmdfd3JpdGUo cmluZywgY29udHJvbCk7CiB9CiAKIHN0YXRpYyB2b2lkIGdmeF92OV8wX3JpbmdfZW1pdF9mZW5j ZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHU2NCBhZGRyLAogCQkJCSAgICAgdTY0IHNlcSwg dW5zaWduZWQgZmxhZ3MpCiB7CiAJYm9vbCB3cml0ZTY0Yml0ID0gZmxhZ3MgJiBBTURHUFVfRkVO Q0VfRkxBR182NEJJVDsKIAlib29sIGludF9zZWwgPSBmbGFncyAmIEFNREdQVV9GRU5DRV9GTEFH X0lOVDsKKwlib29sIHdyaXRlYmFjayA9IGZsYWdzICYgQU1ER1BVX0ZFTkNFX0ZMQUdfVENfV0Jf T05MWTsKIAogCS8qIFJFTEVBU0VfTUVNIC0gZmx1c2ggY2FjaGVzLCBzZW5kIGludCAqLwogCWFt ZGdwdV9yaW5nX3dyaXRlKHJpbmcsIFBBQ0tFVDMoUEFDS0VUM19SRUxFQVNFX01FTSwgNikpOwot CWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsIChFT1BfVENMMV9BQ1RJT05fRU4gfAotCQkJCSBFT1Bf VENfQUNUSU9OX0VOIHwKLQkJCQkgRU9QX1RDX1dCX0FDVElPTl9FTiB8Ci0JCQkJIEVPUF9UQ19N RF9BQ1RJT05fRU4gfAorCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsICgod3JpdGViYWNrID8gKEVP UF9UQ19XQl9BQ1RJT05fRU4gfAorCQkJCQkgICAgICAgRU9QX1RDX05DX0FDVElPTl9FTikgOgor CQkJCQkgICAgICAoRU9QX1RDTDFfQUNUSU9OX0VOIHwKKwkJCQkJICAgICAgIEVPUF9UQ19BQ1RJ T05fRU4gfAorCQkJCQkgICAgICAgRU9QX1RDX1dCX0FDVElPTl9FTiB8CisJCQkJCSAgICAgICBF T1BfVENfTURfQUNUSU9OX0VOKSkgfAogCQkJCSBFVkVOVF9UWVBFKENBQ0hFX0ZMVVNIX0FORF9J TlZfVFNfRVZFTlQpIHwKIAkJCQkgRVZFTlRfSU5ERVgoNSkpKTsKIAlhbWRncHVfcmluZ193cml0 ZShyaW5nLCBEQVRBX1NFTCh3cml0ZTY0Yml0ID8gMiA6IDEpIHwgSU5UX1NFTChpbnRfc2VsID8g MiA6IDApKTsKIAogCS8qCiAJICogdGhlIGFkZHJlc3Mgc2hvdWxkIGJlIFF3b3JkIGFsaWduZWQg aWYgNjRiaXQgd3JpdGUsIER3b3JkCiAJICogYWxpZ25lZCBpZiBvbmx5IHNlbmQgMzJiaXQgZGF0 YSBsb3cgKGRpc2NhcmQgZGF0YSBoaWdoKQogCSAqLwogCWlmICh3cml0ZTY0Yml0KQogCQlCVUdf T04oYWRkciAmIDB4Nyk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9z b2MxNWQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NvYzE1ZC5oCmluZGV4IDdmNDA4 Zjg1ZmRiNi4uODM5YTE0NGMxNjQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9zb2MxNWQuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zb2MxNWQuaApA QCAtMTUyLDIwICsxNTIsMjEgQEAKIAkJICogNCAtICpTX1BBUlRJQUxfRkxVU0gKIAkJICovCiAj ZGVmaW5lCVBBQ0tFVDNfUkVMRUFTRV9NRU0JCQkJMHg0OQogI2RlZmluZQkJRVZFTlRfVFlQRSh4 KSAgICAgICAgICAgICAgICAgICAgICAgICAgICgoeCkgPDwgMCkKICNkZWZpbmUJCUVWRU5UX0lO REVYKHgpICAgICAgICAgICAgICAgICAgICAgICAgICAoKHgpIDw8IDgpCiAjZGVmaW5lCQlFT1Bf VENMMV9WT0xfQUNUSU9OX0VOICAgICAgICAgICAgICAgICAgKDEgPDwgMTIpCiAjZGVmaW5lCQlF T1BfVENfVk9MX0FDVElPTl9FTiAgICAgICAgICAgICAgICAgICAgKDEgPDwgMTMpIC8qIEwyICov CiAjZGVmaW5lCQlFT1BfVENfV0JfQUNUSU9OX0VOICAgICAgICAgICAgICAgICAgICAgKDEgPDwg MTUpIC8qIEwyICovCiAjZGVmaW5lCQlFT1BfVENMMV9BQ1RJT05fRU4gICAgICAgICAgICAgICAg ICAgICAgKDEgPDwgMTYpCiAjZGVmaW5lCQlFT1BfVENfQUNUSU9OX0VOICAgICAgICAgICAgICAg ICAgICAgICAgKDEgPDwgMTcpIC8qIEwyICovCisjZGVmaW5lCQlFT1BfVENfTkNfQUNUSU9OX0VO CQkJKDEgPDwgMTkpCiAjZGVmaW5lCQlFT1BfVENfTURfQUNUSU9OX0VOCQkJKDEgPDwgMjEpIC8q IEwyIG1ldGFkYXRhICovCiAKICNkZWZpbmUJCURBVEFfU0VMKHgpICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoKHgpIDw8IDI5KQogCQkvKiAwIC0gZGlzY2FyZAogCQkgKiAxIC0gc2VuZCBs b3cgMzJiaXQgZGF0YQogCQkgKiAyIC0gc2VuZCA2NGJpdCBkYXRhCiAJCSAqIDMgLSBzZW5kIDY0 Yml0IEdQVSBjb3VudGVyIHZhbHVlCiAJCSAqIDQgLSBzZW5kIDY0Yml0IHN5cyBjb3VudGVyIHZh bHVlCiAJCSAqLwogI2RlZmluZQkJSU5UX1NFTCh4KSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICgoeCkgPDwgMjQpCmRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJtL2FtZGdwdV9kcm0u aCBiL2luY2x1ZGUvdWFwaS9kcm0vYW1kZ3B1X2RybS5oCmluZGV4IDAwODc3OTk5NjJjZi4uZjU5 MDFiZDljN2Q4IDEwMDY0NAotLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2FtZGdwdV9kcm0uaAorKysg Yi9pbmNsdWRlL3VhcGkvZHJtL2FtZGdwdV9kcm0uaApAQCAtNTE2LDIwICs1MTYsMjQgQEAgdW5p b24gZHJtX2FtZGdwdV9jcyB7CiAKIC8qIFRoaXMgSUIgc2hvdWxkIGJlIHN1Ym1pdHRlZCB0byBD RSAqLwogI2RlZmluZSBBTURHUFVfSUJfRkxBR19DRQkoMTw8MCkKIAogLyogUHJlYW1ibGUgZmxh Zywgd2hpY2ggbWVhbnMgdGhlIElCIGNvdWxkIGJlIGRyb3BwZWQgaWYgbm8gY29udGV4dCBzd2l0 Y2ggKi8KICNkZWZpbmUgQU1ER1BVX0lCX0ZMQUdfUFJFQU1CTEUgKDE8PDEpCiAKIC8qIFByZWVt cHQgZmxhZywgSUIgc2hvdWxkIHNldCBQcmVfZW5iIGJpdCBpZiBQUkVFTVBUIGZsYWcgZGV0ZWN0 ZWQgKi8KICNkZWZpbmUgQU1ER1BVX0lCX0ZMQUdfUFJFRU1QVCAoMTw8MikKIAorLyogVGhlIElC IGZlbmNlIHNob3VsZCBkbyB0aGUgTDIgd3JpdGViYWNrIGJ1dCBub3QgaW52YWxpZGF0ZSBhbnkg c2hhZGVyCisgKiBjYWNoZXMgKEwyL3ZMMS9zTDEvSSQpLiAqLworI2RlZmluZSBBTURHUFVfSUJf RkxBR19UQ19XQl9OT1RfSU5WQUxJREFURSAoMSA8PCAzKQorCiBzdHJ1Y3QgZHJtX2FtZGdwdV9j c19jaHVua19pYiB7CiAJX191MzIgX3BhZDsKIAkvKiogQU1ER1BVX0lCX0ZMQUdfKiAqLwogCV9f dTMyIGZsYWdzOwogCS8qKiBWaXJ0dWFsIGFkZHJlc3MgdG8gYmVnaW4gSUIgZXhlY3V0aW9uICov CiAJX191NjQgdmFfc3RhcnQ7CiAJLyoqIFNpemUgb2Ygc3VibWlzc2lvbiAqLwogCV9fdTMyIGli X2J5dGVzOwogCS8qKiBIVyBJUCB0byBzdWJtaXQgdG8gKi8KIAlfX3UzMiBpcF90eXBlOwotLSAK Mi4xNS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwph bWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK