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:25:33 -0400 Message-ID: <20180403202533.4419-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 IFRoaXMgd2lsbCBiZQp0aGUgbmV3IGRlZmF1bHQgZm9yIE1lc2EuCgp2MjogYnVtcCB0aGUgdmVy c2lvbgoKU2lnbmVkLW9mZi1ieTogTWFyZWsgT2zFocOhayA8bWFyZWsub2xzYWtAYW1kLmNvbT4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZHJ2LmMgICB8ICAzICsrLQog ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2ZlbmNlLmMgfCAgNSArKystLQogZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2liLmMgICAgfCAgOCArKysrKystLQogZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3JpbmcuaCAgfCAgNCArKystCiBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uYyAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9nZnhfdjlfMC5jICAgICB8IDExICsrKysrKystLS0tCiBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9zb2MxNWQuaCAgICAgICB8ICAxICsKIGluY2x1ZGUvdWFwaS9kcm0v YW1kZ3B1X2RybS5oICAgICAgICAgICAgIHwgIDQgKysrKwogOCBmaWxlcyBjaGFuZ2VkLCAyNyBp bnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfZHJ2LmMKaW5kZXggNDNkZjdkMmFlYmI0Li4wYTQ1ZjVjY2ViYTcgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kcnYuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZHJ2LmMKQEAgLTY4LDIzICs2OCwyNCBAQAogICogLSAz LjE2LjAgLSBBZGQgcmVzZXJ2ZWQgdm1pZCBzdXBwb3J0CiAgKiAtIDMuMTcuMCAtIEFkZCBBTURH UFVfTlVNX1ZSQU1fQ1BVX1BBR0VfRkFVTFRTLgogICogLSAzLjE4LjAgLSBFeHBvcnQgZ3B1IGFs d2F5cyBvbiBjdSBiaXRtYXAKICAqIC0gMy4xOS4wIC0gQWRkIHN1cHBvcnQgZm9yIFVWRCBNSlBF RyBkZWNvZGUKICAqIC0gMy4yMC4wIC0gQWRkIHN1cHBvcnQgZm9yIGxvY2FsIEJPcwogICogLSAz LjIxLjAgLSBBZGQgRFJNX0FNREdQVV9GRU5DRV9UT19IQU5ETEUgaW9jdGwKICAqIC0gMy4yMi4w IC0gQWRkIERSTV9BTURHUFVfU0NIRUQgaW9jdGwKICAqIC0gMy4yMy4wIC0gQWRkIHF1ZXJ5IGZv ciBWUkFNIGxvc3QgY291bnRlcgogICogLSAzLjI0LjAgLSBBZGQgaGlnaCBwcmlvcml0eSBjb21w dXRlIHN1cHBvcnQgZm9yIGdmeDkKICAqIC0gMy4yNS4wIC0gQWRkIHN1cHBvcnQgZm9yIHNlbnNv ciBxdWVyeSBpbmZvIChzdGFibGUgcHN0YXRlIHNjbGsvbWNsaykuCisgKiAtIDMuMjYuMCAtIEdG WDk6IFByb2Nlc3MgQU1ER1BVX0lCX0ZMQUdfVENfV0JfTk9UX0lOVkFMSURBVEUuCiAgKi8KICNk ZWZpbmUgS01TX0RSSVZFUl9NQUpPUgkzCi0jZGVmaW5lIEtNU19EUklWRVJfTUlOT1IJMjUKKyNk ZWZpbmUgS01TX0RSSVZFUl9NSU5PUgkyNgogI2RlZmluZSBLTVNfRFJJVkVSX1BBVENITEVWRUwJ MAogCiBpbnQgYW1kZ3B1X3ZyYW1fbGltaXQgPSAwOwogaW50IGFtZGdwdV92aXNfdnJhbV9saW1p dCA9IDA7CiBpbnQgYW1kZ3B1X2dhcnRfc2l6ZSA9IC0xOyAvKiBhdXRvICovCiBpbnQgYW1kZ3B1 X2d0dF9zaXplID0gLTE7IC8qIGF1dG8gKi8KIGludCBhbWRncHVfbW92ZXJhdGUgPSAtMTsgLyog YXV0byAqLwogaW50IGFtZGdwdV9iZW5jaG1hcmtpbmcgPSAwOwogaW50IGFtZGdwdV90ZXN0aW5n ID0gMDsKIGludCBhbWRncHVfYXVkaW8gPSAtMTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9mZW5jZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2ZlbmNlLmMKaW5kZXggOTc0NDllMDZhMjQyLi5kMDlmY2FiMjM5OGYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9mZW5jZS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9mZW5jZS5jCkBAIC0xMjQsMzkgKzEyNCw0MCBA QCBzdGF0aWMgdTMyIGFtZGdwdV9mZW5jZV9yZWFkKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykK IAogLyoqCiAgKiBhbWRncHVfZmVuY2VfZW1pdCAtIGVtaXQgYSBmZW5jZSBvbiB0aGUgcmVxdWVz dGVkIHJpbmcKICAqCiAgKiBAcmluZzogcmluZyB0aGUgZmVuY2UgaXMgYXNzb2NpYXRlZCB3aXRo CiAgKiBAZjogcmVzdWx0aW5nIGZlbmNlIG9iamVjdAogICoKICAqIEVtaXRzIGEgZmVuY2UgY29t bWFuZCBvbiB0aGUgcmVxdWVzdGVkIHJpbmcgKGFsbCBhc2ljcykuCiAgKiBSZXR1cm5zIDAgb24g c3VjY2VzcywgLUVOT01FTSBvbiBmYWlsdXJlLgogICovCi1pbnQgYW1kZ3B1X2ZlbmNlX2VtaXQo c3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgZG1hX2ZlbmNlICoqZikKK2ludCBhbWRn cHVfZmVuY2VfZW1pdChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHN0cnVjdCBkbWFfZmVuY2Ug KipmLAorCQkgICAgICB1bnNpZ25lZCBmbGFncykKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldiA9IHJpbmctPmFkZXY7CiAJc3RydWN0IGFtZGdwdV9mZW5jZSAqZmVuY2U7CiAJc3RydWN0 IGRtYV9mZW5jZSAqb2xkLCAqKnB0cjsKIAl1aW50MzJfdCBzZXE7CiAKIAlmZW5jZSA9IGttZW1f Y2FjaGVfYWxsb2MoYW1kZ3B1X2ZlbmNlX3NsYWIsIEdGUF9LRVJORUwpOwogCWlmIChmZW5jZSA9 PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKIAogCXNlcSA9ICsrcmluZy0+ZmVuY2VfZHJ2LnN5 bmNfc2VxOwogCWZlbmNlLT5yaW5nID0gcmluZzsKIAlkbWFfZmVuY2VfaW5pdCgmZmVuY2UtPmJh c2UsICZhbWRncHVfZmVuY2Vfb3BzLAogCQkgICAgICAgJnJpbmctPmZlbmNlX2Rydi5sb2NrLAog CQkgICAgICAgYWRldi0+ZmVuY2VfY29udGV4dCArIHJpbmctPmlkeCwKIAkJICAgICAgIHNlcSk7 CiAJYW1kZ3B1X3JpbmdfZW1pdF9mZW5jZShyaW5nLCByaW5nLT5mZW5jZV9kcnYuZ3B1X2FkZHIs Ci0JCQkgICAgICAgc2VxLCBBTURHUFVfRkVOQ0VfRkxBR19JTlQpOworCQkJICAgICAgIHNlcSwg ZmxhZ3MgfCBBTURHUFVfRkVOQ0VfRkxBR19JTlQpOwogCiAJcHRyID0gJnJpbmctPmZlbmNlX2Ry di5mZW5jZXNbc2VxICYgcmluZy0+ZmVuY2VfZHJ2Lm51bV9mZW5jZXNfbWFza107CiAJLyogVGhp cyBmdW5jdGlvbiBjYW4ndCBiZSBjYWxsZWQgY29uY3VycmVudGx5IGFueXdheSwgb3RoZXJ3aXNl CiAJICogZW1pdHRpbmcgdGhlIGZlbmNlIHdvdWxkIG1lc3MgdXAgdGhlIGhhcmR3YXJlIHJpbmcg YnVmZmVyLgogCSAqLwogCW9sZCA9IHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQoKnB0ciwgMSk7 CiAJaWYgKG9sZCAmJiAhZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKG9sZCkpIHsKIAkJRFJNX0lORk8o InJjdSBzbG90IGlzIGJ1c3lcbiIpOwogCQlkbWFfZmVuY2Vfd2FpdChvbGQsIGZhbHNlKTsKIAl9 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWIuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pYi5jCmluZGV4IDMxMTU4OWUwMmQxNy4u ZjcwZWVlZDllZDc2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfaWIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWIuYwpAQCAt MTIwLDIwICsxMjAsMjEgQEAgaW50IGFtZGdwdV9pYl9zY2hlZHVsZShzdHJ1Y3QgYW1kZ3B1X3Jp bmcgKnJpbmcsIHVuc2lnbmVkIG51bV9pYnMsCiAJCSAgICAgICBzdHJ1Y3QgZG1hX2ZlbmNlICoq ZikKIHsKIAlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IHJpbmctPmFkZXY7CiAJc3RydWN0 IGFtZGdwdV9pYiAqaWIgPSAmaWJzWzBdOwogCXN0cnVjdCBkbWFfZmVuY2UgKnRtcCA9IE5VTEw7 CiAJYm9vbCBza2lwX3ByZWFtYmxlLCBuZWVkX2N0eF9zd2l0Y2g7CiAJdW5zaWduZWQgcGF0Y2hf b2Zmc2V0ID0gfjA7CiAJc3RydWN0IGFtZGdwdV92bSAqdm07CiAJdWludDY0X3QgZmVuY2VfY3R4 OwogCXVpbnQzMl90IHN0YXR1cyA9IDAsIGFsbG9jX3NpemU7CisJdW5zaWduZWQgZmVuY2VfZmxh Z3MgPSAwOwogCiAJdW5zaWduZWQgaTsKIAlpbnQgciA9IDA7CiAJYm9vbCBuZWVkX3BpcGVfc3lu YyA9IGZhbHNlOwogCiAJaWYgKG51bV9pYnMgPT0gMCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAkv KiByaW5nIHRlc3RzIGRvbid0IHVzZSBhIGpvYiAqLwogCWlmIChqb2IpIHsKQEAgLTIyMCwzNiAr MjIxLDM5IEBAIGludCBhbWRncHVfaWJfc2NoZWR1bGUoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5n LCB1bnNpZ25lZCBudW1faWJzLAogCX0KIAogCWlmIChyaW5nLT5mdW5jcy0+ZW1pdF90bXopCiAJ CWFtZGdwdV9yaW5nX2VtaXRfdG16KHJpbmcsIGZhbHNlKTsKIAogI2lmZGVmIENPTkZJR19YODZf NjQKIAlpZiAoIShhZGV2LT5mbGFncyAmIEFNRF9JU19BUFUpKQogI2VuZGlmCiAJCWFtZGdwdV9h c2ljX2ludmFsaWRhdGVfaGRwKGFkZXYsIHJpbmcpOwogCi0JciA9IGFtZGdwdV9mZW5jZV9lbWl0 KHJpbmcsIGYpOworCWlmIChpYi0+ZmxhZ3MgJiBBTURHUFVfSUJfRkxBR19UQ19XQl9OT1RfSU5W QUxJREFURSkKKwkJZmVuY2VfZmxhZ3MgfD0gQU1ER1BVX0ZFTkNFX0ZMQUdfVENfV0JfT05MWTsK KworCXIgPSBhbWRncHVfZmVuY2VfZW1pdChyaW5nLCBmLCBmZW5jZV9mbGFncyk7CiAJaWYgKHIp IHsKIAkJZGV2X2VycihhZGV2LT5kZXYsICJmYWlsZWQgdG8gZW1pdCBmZW5jZSAoJWQpXG4iLCBy KTsKIAkJaWYgKGpvYiAmJiBqb2ItPnZtaWQpCiAJCQlhbWRncHVfdm1pZF9yZXNldChhZGV2LCBy aW5nLT5mdW5jcy0+dm1odWIsIGpvYi0+dm1pZCk7CiAJCWFtZGdwdV9yaW5nX3VuZG8ocmluZyk7 CiAJCXJldHVybiByOwogCX0KIAogCWlmIChyaW5nLT5mdW5jcy0+aW5zZXJ0X2VuZCkKIAkJcmlu Zy0+ZnVuY3MtPmluc2VydF9lbmQocmluZyk7CiAKIAkvKiB3cmFwIHRoZSBsYXN0IElCIHdpdGgg ZmVuY2UgKi8KIAlpZiAoam9iICYmIGpvYi0+dWZfYWRkcikgewogCQlhbWRncHVfcmluZ19lbWl0 X2ZlbmNlKHJpbmcsIGpvYi0+dWZfYWRkciwgam9iLT51Zl9zZXF1ZW5jZSwKLQkJCQkgICAgICAg QU1ER1BVX0ZFTkNFX0ZMQUdfNjRCSVQpOworCQkJCSAgICAgICBmZW5jZV9mbGFncyB8IEFNREdQ VV9GRU5DRV9GTEFHXzY0QklUKTsKIAl9CiAKIAlpZiAocGF0Y2hfb2Zmc2V0ICE9IH4wICYmIHJp bmctPmZ1bmNzLT5wYXRjaF9jb25kX2V4ZWMpCiAJCWFtZGdwdV9yaW5nX3BhdGNoX2NvbmRfZXhl YyhyaW5nLCBwYXRjaF9vZmZzZXQpOwogCiAJcmluZy0+Y3VycmVudF9jdHggPSBmZW5jZV9jdHg7 CiAJaWYgKHZtICYmIHJpbmctPmZ1bmNzLT5lbWl0X3N3aXRjaF9idWZmZXIpCiAJCWFtZGdwdV9y aW5nX2VtaXRfc3dpdGNoX2J1ZmZlcihyaW5nKTsKIAlhbWRncHVfcmluZ19jb21taXQocmluZyk7 CiAJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfcmluZy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3JpbmcuaAppbmRl eCAxZDBkMjUwY2JmZGYuLjIyMjA1MmRhZWRkMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X3JpbmcuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfcmluZy5oCkBAIC0zMywyMCArMzMsMjEgQEAKICNkZWZpbmUgQU1ER1BVX01BWF9D T01QVVRFX1JJTkdTCTgKICNkZWZpbmUgQU1ER1BVX01BWF9WQ0VfUklOR1MJCTMKICNkZWZpbmUg QU1ER1BVX01BWF9VVkRfRU5DX1JJTkdTCTIKIAogLyogc29tZSBzcGVjaWFsIHZhbHVlcyBmb3Ig dGhlIG93bmVyIGZpZWxkICovCiAjZGVmaW5lIEFNREdQVV9GRU5DRV9PV05FUl9VTkRFRklORUQJ KCh2b2lkKikwdWwpCiAjZGVmaW5lIEFNREdQVV9GRU5DRV9PV05FUl9WTQkJKCh2b2lkKikxdWwp CiAKICNkZWZpbmUgQU1ER1BVX0ZFTkNFX0ZMQUdfNjRCSVQgICAgICAgICAoMSA8PCAwKQogI2Rl ZmluZSBBTURHUFVfRkVOQ0VfRkxBR19JTlQgICAgICAgICAgICgxIDw8IDEpCisjZGVmaW5lIEFN REdQVV9GRU5DRV9GTEFHX1RDX1dCX09OTFkgICAgKDEgPDwgMikKIAogZW51bSBhbWRncHVfcmlu Z190eXBlIHsKIAlBTURHUFVfUklOR19UWVBFX0dGWCwKIAlBTURHUFVfUklOR19UWVBFX0NPTVBV VEUsCiAJQU1ER1BVX1JJTkdfVFlQRV9TRE1BLAogCUFNREdQVV9SSU5HX1RZUEVfVVZELAogCUFN REdQVV9SSU5HX1RZUEVfVkNFLAogCUFNREdQVV9SSU5HX1RZUEVfS0lRLAogCUFNREdQVV9SSU5H X1RZUEVfVVZEX0VOQywKIAlBTURHUFVfUklOR19UWVBFX1ZDTl9ERUMsCkBAIC04MSwyMSArODIs MjIgQEAgaW50IGFtZGdwdV9mZW5jZV9kcml2ZXJfaW5pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAq YWRldik7CiB2b2lkIGFtZGdwdV9mZW5jZV9kcml2ZXJfZmluaShzdHJ1Y3QgYW1kZ3B1X2Rldmlj ZSAqYWRldik7CiB2b2lkIGFtZGdwdV9mZW5jZV9kcml2ZXJfZm9yY2VfY29tcGxldGlvbihzdHJ1 Y3QgYW1kZ3B1X3JpbmcgKnJpbmcpOwogCiBpbnQgYW1kZ3B1X2ZlbmNlX2RyaXZlcl9pbml0X3Jp bmcoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAogCQkJCSAgdW5zaWduZWQgbnVtX2h3X3N1Ym1p c3Npb24pOwogaW50IGFtZGdwdV9mZW5jZV9kcml2ZXJfc3RhcnRfcmluZyhzdHJ1Y3QgYW1kZ3B1 X3JpbmcgKnJpbmcsCiAJCQkJICAgc3RydWN0IGFtZGdwdV9pcnFfc3JjICppcnFfc3JjLAogCQkJ CSAgIHVuc2lnbmVkIGlycV90eXBlKTsKIHZvaWQgYW1kZ3B1X2ZlbmNlX2RyaXZlcl9zdXNwZW5k KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KTsKIHZvaWQgYW1kZ3B1X2ZlbmNlX2RyaXZlcl9y ZXN1bWUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpOwotaW50IGFtZGdwdV9mZW5jZV9lbWl0 KHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgc3RydWN0IGRtYV9mZW5jZSAqKmZlbmNlKTsKK2lu dCBhbWRncHVfZmVuY2VfZW1pdChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHN0cnVjdCBkbWFf ZmVuY2UgKipmZW5jZSwKKwkJICAgICAgdW5zaWduZWQgZmxhZ3MpOwogaW50IGFtZGdwdV9mZW5j ZV9lbWl0X3BvbGxpbmcoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1aW50MzJfdCAqcyk7CiB2 b2lkIGFtZGdwdV9mZW5jZV9wcm9jZXNzKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZyk7CiBpbnQg YW1kZ3B1X2ZlbmNlX3dhaXRfZW1wdHkoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKTsKIHNpZ25l ZCBsb25nIGFtZGdwdV9mZW5jZV93YWl0X3BvbGxpbmcoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5n LAogCQkJCSAgICAgIHVpbnQzMl90IHdhaXRfc2VxLAogCQkJCSAgICAgIHNpZ25lZCBsb25nIHRp bWVvdXQpOwogdW5zaWduZWQgYW1kZ3B1X2ZlbmNlX2NvdW50X2VtaXR0ZWQoc3RydWN0IGFtZGdw dV9yaW5nICpyaW5nKTsKIAogLyoKICAqIFJpbmdzLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfdm0uYwppbmRleCAyNDQ3NDI5NGM5MmEuLmZlMDUzNTFlYTRkMiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKQEAgLTYyMCwyMSArNjIwLDIxIEBAIGludCBhbWRn cHVfdm1fZmx1c2goc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgYW1kZ3B1X2pvYiAq am9iLCBib29sIG5lZWRfCiAKIAlpZiAodm1fZmx1c2hfbmVlZGVkKSB7CiAJCXRyYWNlX2FtZGdw dV92bV9mbHVzaChyaW5nLCBqb2ItPnZtaWQsIGpvYi0+dm1fcGRfYWRkcik7CiAJCWFtZGdwdV9y aW5nX2VtaXRfdm1fZmx1c2gocmluZywgam9iLT52bWlkLCBqb2ItPnZtX3BkX2FkZHIpOwogCX0K IAogCWlmIChwYXNpZF9tYXBwaW5nX25lZWRlZCkKIAkJYW1kZ3B1X2dtY19lbWl0X3Bhc2lkX21h cHBpbmcocmluZywgam9iLT52bWlkLCBqb2ItPnBhc2lkKTsKIAogCWlmICh2bV9mbHVzaF9uZWVk ZWQgfHwgcGFzaWRfbWFwcGluZ19uZWVkZWQpIHsKLQkJciA9IGFtZGdwdV9mZW5jZV9lbWl0KHJp bmcsICZmZW5jZSk7CisJCXIgPSBhbWRncHVfZmVuY2VfZW1pdChyaW5nLCAmZmVuY2UsIDApOwog CQlpZiAocikKIAkJCXJldHVybiByOwogCX0KIAogCWlmICh2bV9mbHVzaF9uZWVkZWQpIHsKIAkJ bXV0ZXhfbG9jaygmaWRfbWdyLT5sb2NrKTsKIAkJZG1hX2ZlbmNlX3B1dChpZC0+bGFzdF9mbHVz aCk7CiAJCWlkLT5sYXN0X2ZsdXNoID0gZG1hX2ZlbmNlX2dldChmZW5jZSk7CiAJCWlkLT5jdXJy ZW50X2dwdV9yZXNldF9jb3VudCA9CiAJCQlhdG9taWNfcmVhZCgmYWRldi0+Z3B1X3Jlc2V0X2Nv dW50ZXIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y5XzAu YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OV8wLmMKaW5kZXggOWQzOWZkNWIx ODIyLi41ZGVhMGQ0YzBhZjQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2dmeF92OV8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y5XzAuYwpA QCAtMzc2NywyNyArMzc2NywzMCBAQCBzdGF0aWMgdm9pZCBnZnhfdjlfMF9yaW5nX2VtaXRfaWJf Y29tcHV0ZShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxvd2VyXzMyX2JpdHMoaWItPmdwdV9hZGRyKSk7CiAgICAgICAgIGFtZGdwdV9y aW5nX3dyaXRlKHJpbmcsIHVwcGVyXzMyX2JpdHMoaWItPmdwdV9hZGRyKSk7CiAgICAgICAgIGFt ZGdwdV9yaW5nX3dyaXRlKHJpbmcsIGNvbnRyb2wpOwogfQogCiBzdGF0aWMgdm9pZCBnZnhfdjlf MF9yaW5nX2VtaXRfZmVuY2Uoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLCB1NjQgYWRkciwKIAkJ CQkgICAgIHU2NCBzZXEsIHVuc2lnbmVkIGZsYWdzKQogewogCWJvb2wgd3JpdGU2NGJpdCA9IGZs YWdzICYgQU1ER1BVX0ZFTkNFX0ZMQUdfNjRCSVQ7CiAJYm9vbCBpbnRfc2VsID0gZmxhZ3MgJiBB TURHUFVfRkVOQ0VfRkxBR19JTlQ7CisJYm9vbCB3cml0ZWJhY2sgPSBmbGFncyAmIEFNREdQVV9G RU5DRV9GTEFHX1RDX1dCX09OTFk7CiAKIAkvKiBSRUxFQVNFX01FTSAtIGZsdXNoIGNhY2hlcywg c2VuZCBpbnQgKi8KIAlhbWRncHVfcmluZ193cml0ZShyaW5nLCBQQUNLRVQzKFBBQ0tFVDNfUkVM RUFTRV9NRU0sIDYpKTsKLQlhbWRncHVfcmluZ193cml0ZShyaW5nLCAoRU9QX1RDTDFfQUNUSU9O X0VOIHwKLQkJCQkgRU9QX1RDX0FDVElPTl9FTiB8Ci0JCQkJIEVPUF9UQ19XQl9BQ1RJT05fRU4g fAotCQkJCSBFT1BfVENfTURfQUNUSU9OX0VOIHwKKwlhbWRncHVfcmluZ193cml0ZShyaW5nLCAo KHdyaXRlYmFjayA/IChFT1BfVENfV0JfQUNUSU9OX0VOIHwKKwkJCQkJICAgICAgIEVPUF9UQ19O Q19BQ1RJT05fRU4pIDoKKwkJCQkJICAgICAgKEVPUF9UQ0wxX0FDVElPTl9FTiB8CisJCQkJCSAg ICAgICBFT1BfVENfQUNUSU9OX0VOIHwKKwkJCQkJICAgICAgIEVPUF9UQ19XQl9BQ1RJT05fRU4g fAorCQkJCQkgICAgICAgRU9QX1RDX01EX0FDVElPTl9FTikpIHwKIAkJCQkgRVZFTlRfVFlQRShD QUNIRV9GTFVTSF9BTkRfSU5WX1RTX0VWRU5UKSB8CiAJCQkJIEVWRU5UX0lOREVYKDUpKSk7CiAJ YW1kZ3B1X3Jpbmdfd3JpdGUocmluZywgREFUQV9TRUwod3JpdGU2NGJpdCA/IDIgOiAxKSB8IElO VF9TRUwoaW50X3NlbCA/IDIgOiAwKSk7CiAKIAkvKgogCSAqIHRoZSBhZGRyZXNzIHNob3VsZCBi ZSBRd29yZCBhbGlnbmVkIGlmIDY0Yml0IHdyaXRlLCBEd29yZAogCSAqIGFsaWduZWQgaWYgb25s eSBzZW5kIDMyYml0IGRhdGEgbG93IChkaXNjYXJkIGRhdGEgaGlnaCkKIAkgKi8KIAlpZiAod3Jp dGU2NGJpdCkKIAkJQlVHX09OKGFkZHIgJiAweDcpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvc29jMTVkLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zb2Mx NWQuaAppbmRleCA3ZjQwOGY4NWZkYjYuLjgzOWExNDRjMTY0NSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvc29jMTVkLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvc29jMTVkLmgKQEAgLTE1MiwyMCArMTUyLDIxIEBACiAJCSAqIDQgLSAqU19QQVJUSUFM X0ZMVVNICiAJCSAqLwogI2RlZmluZQlQQUNLRVQzX1JFTEVBU0VfTUVNCQkJCTB4NDkKICNkZWZp bmUJCUVWRU5UX1RZUEUoeCkgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHgpIDw8IDApCiAj ZGVmaW5lCQlFVkVOVF9JTkRFWCh4KSAgICAgICAgICAgICAgICAgICAgICAgICAgKCh4KSA8PCA4 KQogI2RlZmluZQkJRU9QX1RDTDFfVk9MX0FDVElPTl9FTiAgICAgICAgICAgICAgICAgICgxIDw8 IDEyKQogI2RlZmluZQkJRU9QX1RDX1ZPTF9BQ1RJT05fRU4gICAgICAgICAgICAgICAgICAgICgx IDw8IDEzKSAvKiBMMiAqLwogI2RlZmluZQkJRU9QX1RDX1dCX0FDVElPTl9FTiAgICAgICAgICAg ICAgICAgICAgICgxIDw8IDE1KSAvKiBMMiAqLwogI2RlZmluZQkJRU9QX1RDTDFfQUNUSU9OX0VO ICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE2KQogI2RlZmluZQkJRU9QX1RDX0FDVElPTl9F TiAgICAgICAgICAgICAgICAgICAgICAgICgxIDw8IDE3KSAvKiBMMiAqLworI2RlZmluZQkJRU9Q X1RDX05DX0FDVElPTl9FTgkJCSgxIDw8IDE5KQogI2RlZmluZQkJRU9QX1RDX01EX0FDVElPTl9F TgkJCSgxIDw8IDIxKSAvKiBMMiBtZXRhZGF0YSAqLwogCiAjZGVmaW5lCQlEQVRBX1NFTCh4KSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh4KSA8PCAyOSkKIAkJLyogMCAtIGRpc2NhcmQK IAkJICogMSAtIHNlbmQgbG93IDMyYml0IGRhdGEKIAkJICogMiAtIHNlbmQgNjRiaXQgZGF0YQog CQkgKiAzIC0gc2VuZCA2NGJpdCBHUFUgY291bnRlciB2YWx1ZQogCQkgKiA0IC0gc2VuZCA2NGJp dCBzeXMgY291bnRlciB2YWx1ZQogCQkgKi8KICNkZWZpbmUJCUlOVF9TRUwoeCkgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoKHgpIDw8IDI0KQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBp L2RybS9hbWRncHVfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2FtZGdwdV9kcm0uaAppbmRleCAw MDg3Nzk5OTYyY2YuLmY1OTAxYmQ5YzdkOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9h bWRncHVfZHJtLmgKKysrIGIvaW5jbHVkZS91YXBpL2RybS9hbWRncHVfZHJtLmgKQEAgLTUxNiwy MCArNTE2LDI0IEBAIHVuaW9uIGRybV9hbWRncHVfY3MgewogCiAvKiBUaGlzIElCIHNob3VsZCBi ZSBzdWJtaXR0ZWQgdG8gQ0UgKi8KICNkZWZpbmUgQU1ER1BVX0lCX0ZMQUdfQ0UJKDE8PDApCiAK IC8qIFByZWFtYmxlIGZsYWcsIHdoaWNoIG1lYW5zIHRoZSBJQiBjb3VsZCBiZSBkcm9wcGVkIGlm IG5vIGNvbnRleHQgc3dpdGNoICovCiAjZGVmaW5lIEFNREdQVV9JQl9GTEFHX1BSRUFNQkxFICgx PDwxKQogCiAvKiBQcmVlbXB0IGZsYWcsIElCIHNob3VsZCBzZXQgUHJlX2VuYiBiaXQgaWYgUFJF RU1QVCBmbGFnIGRldGVjdGVkICovCiAjZGVmaW5lIEFNREdQVV9JQl9GTEFHX1BSRUVNUFQgKDE8 PDIpCiAKKy8qIFRoZSBJQiBmZW5jZSBzaG91bGQgZG8gdGhlIEwyIHdyaXRlYmFjayBidXQgbm90 IGludmFsaWRhdGUgYW55IHNoYWRlcgorICogY2FjaGVzIChMMi92TDEvc0wxL0kkKS4gKi8KKyNk ZWZpbmUgQU1ER1BVX0lCX0ZMQUdfVENfV0JfTk9UX0lOVkFMSURBVEUgKDEgPDwgMykKKwogc3Ry dWN0IGRybV9hbWRncHVfY3NfY2h1bmtfaWIgewogCV9fdTMyIF9wYWQ7CiAJLyoqIEFNREdQVV9J Ql9GTEFHXyogKi8KIAlfX3UzMiBmbGFnczsKIAkvKiogVmlydHVhbCBhZGRyZXNzIHRvIGJlZ2lu IElCIGV4ZWN1dGlvbiAqLwogCV9fdTY0IHZhX3N0YXJ0OwogCS8qKiBTaXplIG9mIHN1Ym1pc3Np b24gKi8KIAlfX3UzMiBpYl9ieXRlczsKIAkvKiogSFcgSVAgdG8gc3VibWl0IHRvICovCiAJX191 MzIgaXBfdHlwZTsKLS0gCjIuMTUuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9h bWQtZ2Z4Cg==