From: Jonathan Marek Subject: [PATCH v2 7/9] drm/msm: implement a2xx mmu Date: Wed, 21 Nov 2018 20:52:33 -0500 Message-ID: <20181122015237.14534-7-jonathan@marek.ca> References: <20181122015237.14534-1-jonathan@marek.ca> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181122015237.14534-1-jonathan-eSc4qw6YbEQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Kees Cook , Arnd Bergmann , David Airlie , Daniel Vetter , Jordan Crouse , "open list:DRM DRIVER FOR MSM ADRENO GPU" , Bjorn Andersson , Rob Clark , Chris.Healy-c8ZVq/bFV1I@public.gmane.org, "open list:DRM DRIVER FOR MSM ADRENO GPU" , Nicolas Dechesne , festevam-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, open list List-Id: dri-devel@lists.freedesktop.org QTJYWCBoYXMgaXRzIG93biB2ZXJ5IHNpbXBsZSBNTVUuCgpBZGRlZCBhIG1zbV91c2VfbW11KCkg ZnVuY3Rpb24gYmVjYXVzZSB3ZSBjYW4ndCByZWx5IG9uIGlvbW11X3ByZXNlbnQgdG8KZGVjaWRl IHRvIHVzZSBNTVUgb3Igbm90LgoKU2lnbmVkLW9mZi1ieTogSm9uYXRoYW4gTWFyZWsgPGpvbmF0 aGFuQG1hcmVrLmNhPgotLS0KdjI6IAotdGxiIGZsdXNoIGZyb20gY3B1IGV2ZXJ5IHRpbWUgdGhl IHBhZ2UgdGFibGUgaXMgdXBkYXRlZAota2VlcCBtaXNzaW5nIE1NVSBlcnJvciBwYXRoLCBpbiBj YXNlIE1NVSBpbml0IGZhaWxzCi1zbWFsbCBjbGVhbnVwIGluIG1zbV9ncHVfY3JlYXRlX2FkZHJl c3Nfc3BhY2UgY2hhbmdlcwotZml4ZWQgd2hpdGVzcGFjZSBpc3N1ZQoKIGRyaXZlcnMvZ3B1L2Ry bS9tc20vTWFrZWZpbGUgICAgICAgICAgICAgICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL21z bS9hZHJlbm8vYTJ4eF9ncHUuYyAgICAgIHwgIDUwICsrKysrKysrLQogZHJpdmVycy9ncHUvZHJt L21zbS9hZHJlbm8vYWRyZW5vX2RldmljZS5jIHwgICAzICsKIGRyaXZlcnMvZ3B1L2RybS9tc20v YWRyZW5vL2FkcmVub19ncHUuYyAgICB8ICAgMyArCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9k cnYuYyAgICAgICAgICAgICAgfCAgMTEgKy0KIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5o ICAgICAgICAgICAgICB8ICAgOCArKwogZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ2VtLmMgICAg ICAgICAgICAgIHwgICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW1fdm1hLmMgICAg ICAgICAgfCAgMjMgKysrKwogZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1LmMgICAgICAgICAg ICAgIHwgIDMxICsrKystLQogZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZ3B1bW11LmMgICAgICAg ICAgIHwgMTIyICsrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL21zbS9tc21f bW11LmggICAgICAgICAgICAgIHwgICAzICsKIDExIGZpbGVzIGNoYW5nZWQsIDI0MSBpbnNlcnRp b25zKCspLCAyMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9k cm0vbXNtL21zbV9ncHVtbXUuYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vTWFr ZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL01ha2VmaWxlCmluZGV4IDAxNzA3NjYzOTNlYS4u MDA0NTc0YmM5YmQzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL01ha2VmaWxlCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vTWFrZWZpbGUKQEAgLTkxLDcgKzkxLDggQEAgbXNtLXkg Oj0gXAogCW1zbV9wZXJmLm8gXAogCW1zbV9yZC5vIFwKIAltc21fcmluZ2J1ZmZlci5vIFwKLQlt c21fc3VibWl0cXVldWUubworCW1zbV9zdWJtaXRxdWV1ZS5vIFwKKwltc21fZ3B1bW11Lm8KIAog bXNtLSQoQ09ORklHX0RFQlVHX0ZTKSArPSBhZHJlbm8vYTV4eF9kZWJ1Z2ZzLm8gXAogCQkJICBk aXNwL2RwdTEvZHB1X2RiZy5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVu by9hMnh4X2dwdS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYTJ4eF9ncHUuYwppbmRl eCA5MzYyNDJmNjlmMDguLjk2M2RkNjk5Y2RkZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L21zbS9hZHJlbm8vYTJ4eF9ncHUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9h Mnh4X2dwdS5jCkBAIC0yLDYgKzIsOCBAQAogLyogQ29weXJpZ2h0IChjKSAyMDE4IFRoZSBMaW51 eCBGb3VuZGF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAqLwogCiAjaW5jbHVkZSAiYTJ4eF9n cHUuaCIKKyNpbmNsdWRlICJtc21fZ2VtLmgiCisjaW5jbHVkZSAibXNtX21tdS5oIgogCiBleHRl cm4gYm9vbCBoYW5nX2RlYnVnOwogCkBAIC01OCw5ICs2MCwxMiBAQCBzdGF0aWMgYm9vbCBhMnh4 X21lX2luaXQoc3RydWN0IG1zbV9ncHUgKmdwdSkKIHN0YXRpYyBpbnQgYTJ4eF9od19pbml0KHN0 cnVjdCBtc21fZ3B1ICpncHUpCiB7CiAJc3RydWN0IGFkcmVub19ncHUgKmFkcmVub19ncHUgPSB0 b19hZHJlbm9fZ3B1KGdwdSk7CisJZG1hX2FkZHJfdCBwdF9iYXNlLCB0cmFuX2Vycm9yOwogCXVp bnQzMl90ICpwdHIsIGxlbjsKIAlpbnQgaSwgcmV0OwogCisJbXNtX2dwdW1tdV9wYXJhbXMoZ3B1 LT5hc3BhY2UtPm1tdSwgJnB0X2Jhc2UsICZ0cmFuX2Vycm9yKTsKKwogCURCRygiJXMiLCBncHUt Pm5hbWUpOwogCiAJZ3B1X3dyaXRlKGdwdSwgUkVHX0EyWFhfUkJCTV9QTV9PVkVSUklERTEsIDB4 ZmZmZmZmZmUpOwpAQCAtNzcsOSArODIsMzQgQEAgc3RhdGljIGludCBhMnh4X2h3X2luaXQoc3Ry dWN0IG1zbV9ncHUgKmdwdSkKIAkvKiBub3RlOiBrZ3NsIHVzZXMgMHgwMDAwZmZmZiBmb3IgYTIw eCAqLwogCWdwdV93cml0ZShncHUsIFJFR19BMlhYX1JCQk1fQ05UTCwgMHgwMDAwNDQ0Mik7CiAK LQlncHVfd3JpdGUoZ3B1LCBSRUdfQTJYWF9NSF9NTVVfQ09ORklHLCAwKTsKLQlncHVfd3JpdGUo Z3B1LCBSRUdfQTJYWF9NSF9NTVVfTVBVX0JBU0UsIDApOworCS8qIE1QVTogcGh5c2ljYWwgcmFu Z2UgKi8KKwlncHVfd3JpdGUoZ3B1LCBSRUdfQTJYWF9NSF9NTVVfTVBVX0JBU0UsIDB4MDAwMDAw MDApOwogCWdwdV93cml0ZShncHUsIFJFR19BMlhYX01IX01NVV9NUFVfRU5ELCAweGZmZmZmMDAw KTsKKworCWdwdV93cml0ZShncHUsIFJFR19BMlhYX01IX01NVV9DT05GSUcsIEEyWFhfTUhfTU1V X0NPTkZJR19NTVVfRU5BQkxFIHwKKwkJQTJYWF9NSF9NTVVfQ09ORklHX1JCX1dfQ0xOVF9CRUhB VklPUihCRUhfVFJBTl9STkcpIHwKKwkJQTJYWF9NSF9NTVVfQ09ORklHX0NQX1dfQ0xOVF9CRUhB VklPUihCRUhfVFJBTl9STkcpIHwKKwkJQTJYWF9NSF9NTVVfQ09ORklHX0NQX1IwX0NMTlRfQkVI QVZJT1IoQkVIX1RSQU5fUk5HKSB8CisJCUEyWFhfTUhfTU1VX0NPTkZJR19DUF9SMV9DTE5UX0JF SEFWSU9SKEJFSF9UUkFOX1JORykgfAorCQlBMlhYX01IX01NVV9DT05GSUdfQ1BfUjJfQ0xOVF9C RUhBVklPUihCRUhfVFJBTl9STkcpIHwKKwkJQTJYWF9NSF9NTVVfQ09ORklHX0NQX1IzX0NMTlRf QkVIQVZJT1IoQkVIX1RSQU5fUk5HKSB8CisJCUEyWFhfTUhfTU1VX0NPTkZJR19DUF9SNF9DTE5U X0JFSEFWSU9SKEJFSF9UUkFOX1JORykgfAorCQlBMlhYX01IX01NVV9DT05GSUdfVkdUX1IwX0NM TlRfQkVIQVZJT1IoQkVIX1RSQU5fUk5HKSB8CisJCUEyWFhfTUhfTU1VX0NPTkZJR19WR1RfUjFf Q0xOVF9CRUhBVklPUihCRUhfVFJBTl9STkcpIHwKKwkJQTJYWF9NSF9NTVVfQ09ORklHX1RDX1Jf Q0xOVF9CRUhBVklPUihCRUhfVFJBTl9STkcpIHwKKwkJQTJYWF9NSF9NTVVfQ09ORklHX1BBX1df Q0xOVF9CRUhBVklPUihCRUhfVFJBTl9STkcpKTsKKworCS8qIHNhbWUgYXMgcGFyYW1ldGVycyBp biBhZHJlbm9fZ3B1ICovCisJZ3B1X3dyaXRlKGdwdSwgUkVHX0EyWFhfTUhfTU1VX1ZBX1JBTkdF LCBTWl8xNk0gfAorCQlBMlhYX01IX01NVV9WQV9SQU5HRV9OVU1fNjRLQl9SRUdJT05TKDB4ZmZm KSk7CisKKwlncHVfd3JpdGUoZ3B1LCBSRUdfQTJYWF9NSF9NTVVfUFRfQkFTRSwgcHRfYmFzZSk7 CisJZ3B1X3dyaXRlKGdwdSwgUkVHX0EyWFhfTUhfTU1VX1RSQU5fRVJST1IsIHRyYW5fZXJyb3Ip OworCisJZ3B1X3dyaXRlKGdwdSwgUkVHX0EyWFhfTUhfTU1VX0lOVkFMSURBVEUsCisJCUEyWFhf TUhfTU1VX0lOVkFMSURBVEVfSU5WQUxJREFURV9BTEwgfAorCQlBMlhYX01IX01NVV9JTlZBTElE QVRFX0lOVkFMSURBVEVfVEMpOworCiAJZ3B1X3dyaXRlKGdwdSwgUkVHX0EyWFhfTUhfQVJCSVRF Ul9DT05GSUcsCiAJCUEyWFhfTUhfQVJCSVRFUl9DT05GSUdfU0FNRV9QQUdFX0xJTUlUKDE2KSB8 CiAJCUEyWFhfTUhfQVJCSVRFUl9DT05GSUdfTDFfQVJCX0VOQUJMRSB8CkBAIC0xMDYsOSArMTM2 LDIxIEBAIHN0YXRpYyBpbnQgYTJ4eF9od19pbml0KHN0cnVjdCBtc21fZ3B1ICpncHUpCiAJLyog bm90ZTogZ3NsIGRvZXNuJ3Qgc2V0IHRoaXMgKi8KIAlncHVfd3JpdGUoZ3B1LCBSRUdfQTJYWF9S QkJNX0RFQlVHLCAweDAwMDgwMDAwKTsKIAotCWdwdV93cml0ZShncHUsIFJFR19BMlhYX1JCQk1f SU5UX0NOVEwsIDApOwotCWdwdV93cml0ZShncHUsIFJFR19BWFhYX0NQX0lOVF9DTlRMLCAweDgw MDAwMDAwKTsgLyogUkIgSU5UICovCisJZ3B1X3dyaXRlKGdwdSwgUkVHX0EyWFhfUkJCTV9JTlRf Q05UTCwKKwkJQTJYWF9SQkJNX0lOVF9DTlRMX1JERVJSX0lOVF9NQVNLKTsKKwlncHVfd3JpdGUo Z3B1LCBSRUdfQVhYWF9DUF9JTlRfQ05UTCwKKwkJQVhYWF9DUF9JTlRfQ05UTF9UMF9QQUNLRVRf SU5fSUJfTUFTSyB8CisJCUFYWFhfQ1BfSU5UX0NOVExfT1BDT0RFX0VSUk9SX01BU0sgfAorCQlB WFhYX0NQX0lOVF9DTlRMX1BST1RFQ1RFRF9NT0RFX0VSUk9SX01BU0sgfAorCQlBWFhYX0NQX0lO VF9DTlRMX1JFU0VSVkVEX0JJVF9FUlJPUl9NQVNLIHwKKwkJQVhYWF9DUF9JTlRfQ05UTF9JQl9F UlJPUl9NQVNLIHwKKwkJQVhYWF9DUF9JTlRfQ05UTF9JQjFfSU5UX01BU0sgfAorCQlBWFhYX0NQ X0lOVF9DTlRMX1JCX0lOVF9NQVNLKTsKIAlncHVfd3JpdGUoZ3B1LCBSRUdfQTJYWF9TUV9JTlRf Q05UTCwgMCk7CisJZ3B1X3dyaXRlKGdwdSwgUkVHX0EyWFhfTUhfSU5URVJSVVBUX01BU0ssCisJ CUEyWFhfTUhfSU5URVJSVVBUX01BU0tfQVhJX1JFQURfRVJST1IgfAorCQlBMlhYX01IX0lOVEVS UlVQVF9NQVNLX0FYSV9XUklURV9FUlJPUiB8CisJCUEyWFhfTUhfSU5URVJSVVBUX01BU0tfTU1V X1BBR0VfRkFVTFQpOwogCiAJZm9yIChpID0gMzsgaSA8PSA1OyBpKyspCiAJCWlmICgoU1pfMTZL IDw8IGkpID09IGFkcmVub19ncHUtPmdtZW0pCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v bXNtL2FkcmVuby9hZHJlbm9fZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9h ZHJlbm9fZGV2aWNlLmMKaW5kZXggNmUzZjc4ZDRkYTVkLi5mNjUxY2Q1MTQ0OWIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19kZXZpY2UuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vbXNtL2FkcmVuby9hZHJlbm9fZGV2aWNlLmMKQEAgLTMwNyw2ICszMDcsNyBA QCBzdGF0aWMgaW50IGFkcmVub19iaW5kKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmlj ZSAqbWFzdGVyLCB2b2lkICpkYXRhKQogCXN0YXRpYyBzdHJ1Y3QgYWRyZW5vX3BsYXRmb3JtX2Nv bmZpZyBjb25maWcgPSB7fTsKIAljb25zdCBzdHJ1Y3QgYWRyZW5vX2luZm8gKmluZm87CiAJc3Ry dWN0IGRybV9kZXZpY2UgKmRybSA9IGRldl9nZXRfZHJ2ZGF0YShtYXN0ZXIpOworCXN0cnVjdCBt c21fZHJtX3ByaXZhdGUgKnByaXYgPSBkcm0tPmRldl9wcml2YXRlOwogCXN0cnVjdCBtc21fZ3B1 ICpncHU7CiAJaW50IHJldDsKIApAQCAtMzM3LDYgKzMzOCw4IEBAIHN0YXRpYyBpbnQgYWRyZW5v X2JpbmQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgZGV2aWNlICptYXN0ZXIsIHZvaWQgKmRh dGEpCiAKIAlkZXZfc2V0X2RydmRhdGEoZGV2LCBncHUpOwogCisJcHJpdi0+aXNfYTJ4eCA9IGNv bmZpZy5yZXYuY29yZSA9PSAyOworCiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19ncHUuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v YWRyZW5vL2FkcmVub19ncHUuYwppbmRleCBlMDk2NzEzMjRiMDUuLmU3ODQ4YWIzNjViYyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9hZHJlbm8vYWRyZW5vX2dwdS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vYWRyZW5vL2FkcmVub19ncHUuYwpAQCAtNzI4LDYgKzcyOCw5IEBA IGludCBhZHJlbm9fZ3B1X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRybSwgc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldiwKIAogCWFkcmVub19ncHVfY29uZmlnLnZhX3N0YXJ0ID0gU1pfMTZN OwogCWFkcmVub19ncHVfY29uZmlnLnZhX2VuZCA9IDB4ZmZmZmZmZmY7CisJLyogbWF4aW11bSBy YW5nZSBvZiBhMnh4IG1tdSAqLworCWlmIChhZHJlbm9faXNfYTJ4eChhZHJlbm9fZ3B1KSkKKwkJ YWRyZW5vX2dwdV9jb25maWcudmFfZW5kID0gU1pfMTZNICsgMHhmZmYgKiBTWl82NEs7CiAKIAlh ZHJlbm9fZ3B1X2NvbmZpZy5ucl9yaW5ncyA9IG5yX3JpbmdzOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5j CmluZGV4IDNmMzVlNTcyMDJlZi4uNWQ3MzA0YjVmMzk5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vbXNtL21zbV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwpA QCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIm1zbV9mZW5jZS5oIgogI2luY2x1ZGUgIm1zbV9n cHUuaCIKICNpbmNsdWRlICJtc21fa21zLmgiCisjaW5jbHVkZSAiYWRyZW5vL2FkcmVub19ncHUu aCIKIAogCiAvKgpAQCAtMzU4LDYgKzM1OSwxNCBAQCBzdGF0aWMgaW50IGdldF9tZHBfdmVyKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAKICNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNz Lmg+CiAKK2Jvb2wgbXNtX3VzZV9tbXUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKK3sKKwlzdHJ1 Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKworCS8qIGEyeHgg Y29tZXMgd2l0aCBpdHMgb3duIE1NVSAqLworCXJldHVybiBwcml2LT5pc19hMnh4IHx8IGlvbW11 X3ByZXNlbnQoJnBsYXRmb3JtX2J1c190eXBlKTsKK30KKwogc3RhdGljIGludCBtc21faW5pdF92 cmFtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAq cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CkBAIC0zOTYsNyArNDA1LDcgQEAgc3RhdGljIGludCBt c21faW5pdF92cmFtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCSAqIEdyYWIgdGhlIGVudGly ZSBDTUEgY2h1bmsgY2FydmVkIG91dCBpbiBlYXJseSBzdGFydHVwIGluCiAJCSAqIG1hY2gtbXNt OgogCQkgKi8KLQl9IGVsc2UgaWYgKCFpb21tdV9wcmVzZW50KCZwbGF0Zm9ybV9idXNfdHlwZSkp IHsKKwl9IGVsc2UgaWYgKCFtc21fdXNlX21tdShkZXYpKSB7CiAJCURSTV9JTkZPKCJ1c2luZyAl cyBWUkFNIGNhcnZlb3V0XG4iLCB2cmFtKTsKIAkJc2l6ZSA9IG1lbXBhcnNlKHZyYW0sIE5VTEwp OwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9tc21fZHJ2LmgKaW5kZXggOWQxMWYzMjFmNWE5Li45OWEzNzk2MmU5MmIg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9tc20vbXNtX2Rydi5oCkBAIC0xNzksNiArMTc5LDggQEAgc3RydWN0IG1zbV9kcm1f cHJpdmF0ZSB7CiAJLyogd2hlbiB3ZSBoYXZlIG1vcmUgdGhhbiBvbmUgJ21zbV9ncHUnIHRoZXNl IG5lZWQgdG8gYmUgYW4gYXJyYXk6ICovCiAJc3RydWN0IG1zbV9ncHUgKmdwdTsKIAlzdHJ1Y3Qg bXNtX2ZpbGVfcHJpdmF0ZSAqbGFzdGN0eDsKKwkvKiBncHUgaXMgb25seSBzZXQgb24gb3Blbigp LCBidXQgd2UgbmVlZCB0aGlzIGluZm8gZWFybGllciAqLworCWJvb2wgaXNfYTJ4eDsKIAogCXN0 cnVjdCBkcm1fZmJfaGVscGVyICpmYmRldjsKIApAQCAtMjUyLDkgKzI1NCwxNSBAQCBzdHJ1Y3Qg bXNtX2dlbV9hZGRyZXNzX3NwYWNlICoKIG1zbV9nZW1fYWRkcmVzc19zcGFjZV9jcmVhdGUoc3Ry dWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb21haW4sCiAJCWNvbnN0IGNo YXIgKm5hbWUpOwogCitzdHJ1Y3QgbXNtX2dlbV9hZGRyZXNzX3NwYWNlICoKK21zbV9nZW1fYWRk cmVzc19zcGFjZV9jcmVhdGVfYTJ4eChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBtc21fZ3B1 ICpncHUsCisJCWNvbnN0IGNoYXIgKm5hbWUsIHVpbnQ2NF90IHZhX3N0YXJ0LCB1aW50NjRfdCB2 YV9lbmQpOworCiBpbnQgbXNtX3JlZ2lzdGVyX21tdShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBz dHJ1Y3QgbXNtX21tdSAqbW11KTsKIHZvaWQgbXNtX3VucmVnaXN0ZXJfbW11KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHN0cnVjdCBtc21fbW11ICptbXUpOwogCitib29sIG1zbV91c2VfbW11KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpOworCiB2b2lkIG1zbV9nZW1fc3VibWl0X2ZyZWUoc3RydWN0 IG1zbV9nZW1fc3VibWl0ICpzdWJtaXQpOwogaW50IG1zbV9pb2N0bF9nZW1fc3VibWl0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCXN0cnVjdCBkcm1fZmlsZSAqZmlsZSk7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9tc20vbXNtX2dlbS5jCmluZGV4IDY2NTc0NTNhM2E1OC4uYzFlZjg3ODBmNjg2IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9k cm0vbXNtL21zbV9nZW0uYwpAQCAtOTEyLDcgKzkxMiw3IEBAIHN0YXRpYyBzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKl9tc21fZ2VtX25ldyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCiAJc2l6ZSA9 IFBBR0VfQUxJR04oc2l6ZSk7CiAKLQlpZiAoIWlvbW11X3ByZXNlbnQoJnBsYXRmb3JtX2J1c190 eXBlKSkKKwlpZiAoIW1zbV91c2VfbW11KGRldikpCiAJCXVzZV92cmFtID0gdHJ1ZTsKIAllbHNl IGlmICgoZmxhZ3MgJiAoTVNNX0JPX1NUT0xFTiB8IE1TTV9CT19TQ0FOT1VUKSkgJiYgcHJpdi0+ dnJhbS5zaXplKQogCQl1c2VfdnJhbSA9IHRydWU7CkBAIC05OTEsNyArOTkxLDcgQEAgc3RydWN0 IGRybV9nZW1fb2JqZWN0ICptc21fZ2VtX2ltcG9ydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAog CWludCByZXQsIG5wYWdlczsKIAogCS8qIGlmIHdlIGRvbid0IGhhdmUgSU9NTVUsIGRvbid0IGJv dGhlciBwcmV0ZW5kaW5nIHdlIGNhbiBpbXBvcnQ6ICovCi0JaWYgKCFpb21tdV9wcmVzZW50KCZw bGF0Zm9ybV9idXNfdHlwZSkpIHsKKwlpZiAoIW1zbV91c2VfbW11KGRldikpIHsKIAkJZGV2X2Vy cihkZXYtPmRldiwgImNhbm5vdCBpbXBvcnQgd2l0aG91dCBJT01NVVxuIik7CiAJCXJldHVybiBF UlJfUFRSKC1FSU5WQUwpOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNt X2dlbV92bWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbV92bWEuYwppbmRleCBmZmJl YzIyNDU1MWIuLjgwNzVmZDY5OTgwMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9t c21fZ2VtX3ZtYS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dlbV92bWEuYwpAQCAt MTE0LDMgKzExNCwyNiBAQCBtc21fZ2VtX2FkZHJlc3Nfc3BhY2VfY3JlYXRlKHN0cnVjdCBkZXZp Y2UgKmRldiwgc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluLAogCiAJcmV0dXJuIGFzcGFjZTsK IH0KKworc3RydWN0IG1zbV9nZW1fYWRkcmVzc19zcGFjZSAqCittc21fZ2VtX2FkZHJlc3Nfc3Bh Y2VfY3JlYXRlX2EyeHgoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgbXNtX2dwdSAqZ3B1LAor CQljb25zdCBjaGFyICpuYW1lLCB1aW50NjRfdCB2YV9zdGFydCwgdWludDY0X3QgdmFfZW5kKQor eworCXN0cnVjdCBtc21fZ2VtX2FkZHJlc3Nfc3BhY2UgKmFzcGFjZTsKKwl1NjQgc2l6ZSA9IHZh X2VuZCAtIHZhX3N0YXJ0OworCisJYXNwYWNlID0ga3phbGxvYyhzaXplb2YoKmFzcGFjZSksIEdG UF9LRVJORUwpOworCWlmICghYXNwYWNlKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKwor CXNwaW5fbG9ja19pbml0KCZhc3BhY2UtPmxvY2spOworCWFzcGFjZS0+bmFtZSA9IG5hbWU7CisJ YXNwYWNlLT5tbXUgPSBtc21fZ3B1bW11X25ldyhkZXYsIGdwdSk7CisKKwlkcm1fbW1faW5pdCgm YXNwYWNlLT5tbSwgKHZhX3N0YXJ0ID4+IFBBR0VfU0hJRlQpLAorCQlzaXplID4+IFBBR0VfU0hJ RlQpOworCisJa3JlZl9pbml0KCZhc3BhY2UtPmtyZWYpOworCisJcmV0dXJuIGFzcGFjZTsKK30K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5jIGIvZHJpdmVycy9ncHUv ZHJtL21zbS9tc21fZ3B1LmMKaW5kZXggMTFhYWM4MzM3MDY2Li4wZTA4YWM4MTYwZDIgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9tc20vbXNtX2dwdS5jCkBAIC0xOSw2ICsxOSw3IEBACiAjaW5jbHVkZSAibXNtX2dlbS5oIgog I2luY2x1ZGUgIm1zbV9tbXUuaCIKICNpbmNsdWRlICJtc21fZmVuY2UuaCIKKyNpbmNsdWRlICJh ZHJlbm8vYWRyZW5vX2dwdS5oIgogCiAjaW5jbHVkZSA8Z2VuZXJhdGVkL3V0c3JlbGVhc2UuaD4K ICNpbmNsdWRlIDxsaW51eC9zdHJpbmdfaGVscGVycy5oPgpAQCAtODAwLDcgKzgwMSw2IEBAIHN0 YXRpYyBzdHJ1Y3QgbXNtX2dlbV9hZGRyZXNzX3NwYWNlICoKIG1zbV9ncHVfY3JlYXRlX2FkZHJl c3Nfc3BhY2Uoc3RydWN0IG1zbV9ncHUgKmdwdSwgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl diwKIAkJdWludDY0X3QgdmFfc3RhcnQsIHVpbnQ2NF90IHZhX2VuZCkKIHsKLQlzdHJ1Y3QgaW9t bXVfZG9tYWluICppb21tdTsKIAlzdHJ1Y3QgbXNtX2dlbV9hZGRyZXNzX3NwYWNlICphc3BhY2U7 CiAJaW50IHJldDsKIApAQCAtODA5LDIwICs4MDksMjcgQEAgbXNtX2dwdV9jcmVhdGVfYWRkcmVz c19zcGFjZShzdHJ1Y3QgbXNtX2dwdSAqZ3B1LCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 LAogCSAqIGFuZCBoYXZlIHNlcGFyYXRlIHBhZ2UgdGFibGVzIHBlciBjb250ZXh0LiAgRm9yIG5v dywgdG8ga2VlcCB0aGluZ3MKIAkgKiBzaW1wbGUgYW5kIHRvIGdldCBzb21ldGhpbmcgd29ya2lu ZywganVzdCB1c2UgYSBzaW5nbGUgYWRkcmVzcyBzcGFjZToKIAkgKi8KLQlpb21tdSA9IGlvbW11 X2RvbWFpbl9hbGxvYygmcGxhdGZvcm1fYnVzX3R5cGUpOwotCWlmICghaW9tbXUpCi0JCXJldHVy biBOVUxMOwotCi0JaW9tbXUtPmdlb21ldHJ5LmFwZXJ0dXJlX3N0YXJ0ID0gdmFfc3RhcnQ7Ci0J aW9tbXUtPmdlb21ldHJ5LmFwZXJ0dXJlX2VuZCA9IHZhX2VuZDsKLQotCWRldl9pbmZvKGdwdS0+ ZGV2LT5kZXYsICIlczogdXNpbmcgSU9NTVVcbiIsIGdwdS0+bmFtZSk7CisJaWYgKCFhZHJlbm9f aXNfYTJ4eCh0b19hZHJlbm9fZ3B1KGdwdSkpKSB7CisJCXN0cnVjdCBpb21tdV9kb21haW4gKmlv bW11ID0gaW9tbXVfZG9tYWluX2FsbG9jKCZwbGF0Zm9ybV9idXNfdHlwZSk7CisJCWlmICghaW9t bXUpCisJCQlyZXR1cm4gTlVMTDsKKworCQlpb21tdS0+Z2VvbWV0cnkuYXBlcnR1cmVfc3RhcnQg PSB2YV9zdGFydDsKKwkJaW9tbXUtPmdlb21ldHJ5LmFwZXJ0dXJlX2VuZCA9IHZhX2VuZDsKKwor CQlkZXZfaW5mbyhncHUtPmRldi0+ZGV2LCAiJXM6IHVzaW5nIElPTU1VXG4iLCBncHUtPm5hbWUp OworCisJCWFzcGFjZSA9IG1zbV9nZW1fYWRkcmVzc19zcGFjZV9jcmVhdGUoJnBkZXYtPmRldiwg aW9tbXUsICJncHUiKTsKKwkJaWYgKElTX0VSUihhc3BhY2UpKQorCQkJaW9tbXVfZG9tYWluX2Zy ZWUoaW9tbXUpOworCX0gZWxzZSB7CisJCWFzcGFjZSA9IG1zbV9nZW1fYWRkcmVzc19zcGFjZV9j cmVhdGVfYTJ4eCgmcGRldi0+ZGV2LCBncHUsICJncHUiLAorCQkJdmFfc3RhcnQsIHZhX2VuZCk7 CisJfQogCi0JYXNwYWNlID0gbXNtX2dlbV9hZGRyZXNzX3NwYWNlX2NyZWF0ZSgmcGRldi0+ZGV2 LCBpb21tdSwgImdwdSIpOwogCWlmIChJU19FUlIoYXNwYWNlKSkgewotCQlkZXZfZXJyKGdwdS0+ ZGV2LT5kZXYsICJmYWlsZWQgdG8gaW5pdCBpb21tdTogJWxkXG4iLAorCQlkZXZfZXJyKGdwdS0+ ZGV2LT5kZXYsICJmYWlsZWQgdG8gaW5pdCBtbXU6ICVsZFxuIiwKIAkJCVBUUl9FUlIoYXNwYWNl KSk7Ci0JCWlvbW11X2RvbWFpbl9mcmVlKGlvbW11KTsKIAkJcmV0dXJuIEVSUl9DQVNUKGFzcGFj ZSk7CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9ncHVtbXUuYyBi L2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2dwdW1tdS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uYTA0YTY0ZmFhOGExCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9tc21fZ3B1bW11LmMKQEAgLTAsMCArMSwxMjIgQEAKKy8vIFNQRFgtTGlj ZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKiBDb3B5cmlnaHQgKGMpIDIwMTggVGhlIExpbnV4 IEZvdW5kYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuICovCisKKyNpbmNsdWRlICJtc21fZHJ2 LmgiCisjaW5jbHVkZSAibXNtX21tdS5oIgorI2luY2x1ZGUgImFkcmVuby9hZHJlbm9fZ3B1Lmgi CisjaW5jbHVkZSAiYWRyZW5vL2EyeHgueG1sLmgiCisKK3N0cnVjdCBtc21fZ3B1bW11IHsKKwlz dHJ1Y3QgbXNtX21tdSBiYXNlOworCXN0cnVjdCBtc21fZ3B1ICpncHU7CisJZG1hX2FkZHJfdCBw dF9iYXNlOworCXVpbnQzMl90ICp0YWJsZTsKK307CisjZGVmaW5lIHRvX21zbV9ncHVtbXUoeCkg Y29udGFpbmVyX29mKHgsIHN0cnVjdCBtc21fZ3B1bW11LCBiYXNlKQorCisjZGVmaW5lIFZBX1NU QVJUIFNaXzE2TQorI2RlZmluZSBWQV9SQU5HRSAoMHhmZmYgKiBTWl82NEspCisjZGVmaW5lIE1N VV9QQUdFX1NJWkUgU1pfNEsKKyNkZWZpbmUgVEFCTEVfU0laRSAoc2l6ZW9mKHVpbnQzMl90KSAq IFZBX1JBTkdFIC8gTU1VX1BBR0VfU0laRSkKKworc3RhdGljIGludCBtc21fZ3B1bW11X2F0dGFj aChzdHJ1Y3QgbXNtX21tdSAqbW11LCBjb25zdCBjaGFyICogY29uc3QgKm5hbWVzLAorCQlpbnQg Y250KQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgdm9pZCBtc21fZ3B1bW11X2RldGFjaChz dHJ1Y3QgbXNtX21tdSAqbW11LCBjb25zdCBjaGFyICogY29uc3QgKm5hbWVzLAorCQlpbnQgY250 KQoreworfQorCitzdGF0aWMgdm9pZCB1cGRhdGVfcHQoc3RydWN0IG1zbV9tbXUgKm1tdSwgdWlu dDY0X3QgaW92YSwKKwkJc3RydWN0IHNnX3RhYmxlICpzZ3QsIHVuc2lnbmVkIGxlbiwgdW5zaWdu ZWQgcHJvdCkKK3sKKwlzdHJ1Y3QgbXNtX2dwdW1tdSAqZ3B1bW11ID0gdG9fbXNtX2dwdW1tdSht bXUpOworCXVuc2lnbmVkIGlkeCA9IChpb3ZhIC0gVkFfU1RBUlQpIC8gTU1VX1BBR0VfU0laRTsK KwlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOworCXVuc2lnbmVkIGksIGo7CisKKwlmb3JfZWFjaF9z ZyhzZ3QtPnNnbCwgc2csIHNndC0+bmVudHMsIGkpIHsKKwkJZG1hX2FkZHJfdCBhZGRyID0gc2ct PmRtYV9hZGRyZXNzOworCQlmb3IgKGogPSAwOyBqIDwgc2ctPmxlbmd0aCAvIE1NVV9QQUdFX1NJ WkU7IGorKywgaWR4KyspIHsKKwkJCWdwdW1tdS0+dGFibGVbaWR4XSA9IHByb3QgPyBhZGRyIHwg cHJvdCA6IDA7CisJCQlhZGRyICs9IE1NVV9QQUdFX1NJWkU7CisJCX0KKwl9CisKKwkvKiBmbHVz aCB0aGUgdGxiIGV2ZXJ5dGltZSB0aGUgcGFnZSB0YWJsZSBpcyB1cGRhdGVkCisJICogd2UgY2Fu IHByb2JhYmx5IGRvIHNvbWV0aGluZyBzbWFydGVyCisJICovCisJZ3B1X3dyaXRlKGdwdW1tdS0+ Z3B1LCBSRUdfQTJYWF9NSF9NTVVfSU5WQUxJREFURSwKKwkJQTJYWF9NSF9NTVVfSU5WQUxJREFU RV9JTlZBTElEQVRFX0FMTCB8CisJCUEyWFhfTUhfTU1VX0lOVkFMSURBVEVfSU5WQUxJREFURV9U Qyk7Cit9CisKK3N0YXRpYyBpbnQgbXNtX2dwdW1tdV9tYXAoc3RydWN0IG1zbV9tbXUgKm1tdSwg dWludDY0X3QgaW92YSwKKwkJc3RydWN0IHNnX3RhYmxlICpzZ3QsIHVuc2lnbmVkIGxlbiwgaW50 IHByb3QpCit7CisJdW5zaWduZWQgcHJvdF9iaXRzID0gMDsKKwlpZiAocHJvdCAmIElPTU1VX1dS SVRFKQorCQlwcm90X2JpdHMgfD0gMTsKKwlpZiAocHJvdCAmIElPTU1VX1JFQUQpCisJCXByb3Rf Yml0cyB8PSAyOworCXVwZGF0ZV9wdChtbXUsIGlvdmEsIHNndCwgbGVuLCBwcm90X2JpdHMpOwor CXJldHVybiAwOworfQorCitzdGF0aWMgaW50IG1zbV9ncHVtbXVfdW5tYXAoc3RydWN0IG1zbV9t bXUgKm1tdSwgdWludDY0X3QgaW92YSwKKwkJc3RydWN0IHNnX3RhYmxlICpzZ3QsIHVuc2lnbmVk IGxlbikKK3sKKwl1cGRhdGVfcHQobW11LCBpb3ZhLCBzZ3QsIGxlbiwgMCk7CisJcmV0dXJuIDA7 Cit9CisKK3N0YXRpYyB2b2lkIG1zbV9ncHVtbXVfZGVzdHJveShzdHJ1Y3QgbXNtX21tdSAqbW11 KQoreworCXN0cnVjdCBtc21fZ3B1bW11ICpncHVtbXUgPSB0b19tc21fZ3B1bW11KG1tdSk7CisK KwlkbWFfZnJlZV9hdHRycyhtbXUtPmRldiwgVEFCTEVfU0laRSwgZ3B1bW11LT50YWJsZSwgZ3B1 bW11LT5wdF9iYXNlLAorCQlETUFfQVRUUl9GT1JDRV9DT05USUdVT1VTKTsKKworCWtmcmVlKGdw dW1tdSk7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXNtX21tdV9mdW5jcyBmdW5jcyA9IHsK KwkJLmF0dGFjaCA9IG1zbV9ncHVtbXVfYXR0YWNoLAorCQkuZGV0YWNoID0gbXNtX2dwdW1tdV9k ZXRhY2gsCisJCS5tYXAgPSBtc21fZ3B1bW11X21hcCwKKwkJLnVubWFwID0gbXNtX2dwdW1tdV91 bm1hcCwKKwkJLmRlc3Ryb3kgPSBtc21fZ3B1bW11X2Rlc3Ryb3ksCit9OworCitzdHJ1Y3QgbXNt X21tdSAqbXNtX2dwdW1tdV9uZXcoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgbXNtX2dwdSAq Z3B1KQoreworCXN0cnVjdCBtc21fZ3B1bW11ICpncHVtbXU7CisKKwlncHVtbXUgPSBremFsbG9j KHNpemVvZigqZ3B1bW11KSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFncHVtbXUpCisJCXJldHVybiBF UlJfUFRSKC1FTk9NRU0pOworCisJZ3B1bW11LT50YWJsZSA9IGRtYV9hbGxvY19hdHRycyhkZXYs IFRBQkxFX1NJWkUgKyAzMiwgJmdwdW1tdS0+cHRfYmFzZSwKKwkJR0ZQX0tFUk5FTCB8IF9fR0ZQ X1pFUk8sIERNQV9BVFRSX0ZPUkNFX0NPTlRJR1VPVVMpOworCWlmICghZ3B1bW11LT50YWJsZSkg eworCQlrZnJlZShncHVtbXUpOworCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKKwl9CisKKwln cHVtbXUtPmdwdSA9IGdwdTsKKwltc21fbW11X2luaXQoJmdwdW1tdS0+YmFzZSwgZGV2LCAmZnVu Y3MpOworCisJcmV0dXJuICZncHVtbXUtPmJhc2U7Cit9CisKK3ZvaWQgbXNtX2dwdW1tdV9wYXJh bXMoc3RydWN0IG1zbV9tbXUgKm1tdSwgZG1hX2FkZHJfdCAqcHRfYmFzZSwKKwkJZG1hX2FkZHJf dCAqdHJhbl9lcnJvcikKK3sKKwlkbWFfYWRkcl90IGJhc2UgPSB0b19tc21fZ3B1bW11KG1tdSkt PnB0X2Jhc2U7CisKKwkqcHRfYmFzZSA9IGJhc2U7CisJKnRyYW5fZXJyb3IgPSBiYXNlICsgVEFC TEVfU0laRTsgLyogMzItYnl0ZSBhbGlnbmVkICovCit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vbXNtL21zbV9tbXUuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX21tdS5oCmluZGV4 IGFhMmM1ZDQ1ODBjOC4uYzViYmI0OWRjMWJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v bXNtL21zbV9tbXUuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9tbXUuaApAQCAtNTQs NCArNTQsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgbXNtX21tdV9zZXRfZmF1bHRfaGFuZGxlcihz dHJ1Y3QgbXNtX21tdSAqbW11LCB2b2lkICphcmcsCiAJbW11LT5oYW5kbGVyID0gaGFuZGxlcjsK IH0KIAordm9pZCBtc21fZ3B1bW11X3BhcmFtcyhzdHJ1Y3QgbXNtX21tdSAqbW11LCBkbWFfYWRk cl90ICpwdF9iYXNlLAorCQlkbWFfYWRkcl90ICp0cmFuX2Vycm9yKTsKKwogI2VuZGlmIC8qIF9f TVNNX01NVV9IX18gKi8KLS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZnJlZWRyZW5vCg==