From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: [PATCH 02/25] drm/msm/dpu: avoid tracking reservations in RM Date: Mon, 8 Oct 2018 21:27:19 -0700 Message-ID: <1539059262-8326-3-git-send-email-jsanka@codeaurora.org> References: <1539059262-8326-1-git-send-email-jsanka@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1539059262-8326-1-git-send-email-jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, Jeykumar Sankaran , jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org Uk0gd2FzIGVxdWlwcGVkIHdpdGggcmVzZXJ2YXRpb24gdHJhY2tpbmcgc3RydWN0dXJlIFJTVlAK dG8gY2FjaGUgSFcgcmVzZXJ2YXRpb24gb2YgZGlzcGxheXMgZm9yIGNlcnRhaW4gY2xpZW50cwp3 aGVyZSBhdG9taWNfY2hlY2tzIChhdG9taWMgY29tbWl0IHdpdGggVEVTVF9PTkxZKSBmb3IgYWxs CnRoZSBkaXNwbGF5cyBhcmUgY2FsbGVkIGJlZm9yZSB0aGVpciByZXNwZWN0aXZlIGF0b21pY19j b21taXRzLgpTaW5jZSBEUFUgZG9lc24ndCBzdXBwb3J0IHRoZSBzZXF1ZW5jZSBhbnltb3JlLCBj bGVhbiB1cAp0aGUgc3VwcG9ydCBmcm9tIFJNLiBSZXBsYWNlIHJzdnAgd2l0aCB0aGUgY29ycmVz cG9uZGluZwplbmNvZGVyIGlkIHRvIHRhZyB0aGUgSFcgYmxvY2tzIHJlc2VydmVkLgoKU2lnbmVk LW9mZi1ieTogSmV5a3VtYXIgU2Fua2FyYW4gPGpzYW5rYUBjb2RlYXVyb3JhLm9yZz4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfcm0uYyB8IDI4NCArKysrKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9y bS5oIHwgICA0IC0KIDIgZmlsZXMgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwgMjQ1IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9y bS5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3JtLmMKaW5kZXggYmRiMTE3 Ny4uMzZhOTI5YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1 X3JtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3JtLmMKQEAgLTIx LDggKzIxLDggQEAKICNpbmNsdWRlICJkcHVfZW5jb2Rlci5oIgogI2luY2x1ZGUgImRwdV90cmFj ZS5oIgogCi0jZGVmaW5lIFJFU0VSVkVEX0JZX09USEVSKGgsIHIpIFwKLQkoKGgpLT5yc3ZwICYm ICgoaCktPnJzdnAtPmVuY19pZCAhPSAociktPmVuY19pZCkpCisjZGVmaW5lIFJFU0VSVkVEX0JZ X09USEVSKGgsIHIpICBcCisJCSgoaCktPmVuY19pZCAmJiAoaCktPmVuY19pZCAhPSByKQogCiAv KioKICAqIHN0cnVjdCBkcHVfcm1fcmVxdWlyZW1lbnRzIC0gUmVzZXJ2YXRpb24gcmVxdWlyZW1l bnRzIHBhcmFtZXRlciBidW5kbGUKQEAgLTM0LDg1ICszNCwyMyBAQCBzdHJ1Y3QgZHB1X3JtX3Jl cXVpcmVtZW50cyB7CiAJc3RydWN0IGRwdV9lbmNvZGVyX2h3X3Jlc291cmNlcyBod19yZXM7CiB9 OwogCi0vKioKLSAqIHN0cnVjdCBkcHVfcm1fcnN2cCAtIFVzZSBDYXNlIFJlc2VydmF0aW9uIHRh Z2dpbmcgc3RydWN0dXJlCi0gKglVc2VkIHRvIHRhZyBIVyBibG9ja3MgYXMgcmVzZXJ2ZWQgYnkg YSBDUlRDLT5FbmNvZGVyLT5Db25uZWN0b3IgY2hhaW4KLSAqCUJ5IHVzaW5nIGFzIGEgdGFnLCBy YXRoZXIgdGhhbiBsaXN0cyBvZiBwb2ludGVycyB0byBIVyBibG9ja3MgdXNlZAotICoJd2UgY2Fu IGF2b2lkIHNvbWUgbGlzdCBtYW5hZ2VtZW50IHNpbmNlIHdlIGRvbid0IGtub3cgaG93IG1hbnkg YmxvY2tzCi0gKglvZiBlYWNoIHR5cGUgYSBnaXZlbiB1c2UgY2FzZSBtYXkgcmVxdWlyZS4KLSAq IEBsaXN0OglMaXN0IGhlYWQgZm9yIGxpc3Qgb2YgYWxsIHJlc2VydmF0aW9ucwotICogQHNlcToJ R2xvYmFsIFJTVlAgc2VxdWVuY2UgbnVtYmVyIGZvciBkZWJ1Z2dpbmcsIGVzcGVjaWFsbHkgZm9y Ci0gKgkJZGlmZmVyZW50aWF0aW5nIGRpZmZlcmVuY3QgYWxsb2NhdGlvbnMgZm9yIHNhbWUgZW5j b2Rlci4KLSAqIEBlbmNfaWQ6CVJlc2VydmF0aW9ucyBhcmUgdHJhY2tlZCBieSBFbmNvZGVyIERS TSBvYmplY3QgSUQuCi0gKgkJQ1JUQ3MgbWF5IGJlIGNvbm5lY3RlZCB0byBtdWx0aXBsZSBFbmNv ZGVycy4KLSAqCQlBbiBlbmNvZGVyIG9yIGNvbm5lY3RvciBpZCBpZGVudGlmaWVzIHRoZSBkaXNw bGF5IHBhdGguCi0gKi8KLXN0cnVjdCBkcHVfcm1fcnN2cCB7Ci0Jc3RydWN0IGxpc3RfaGVhZCBs aXN0OwotCXVpbnQzMl90IHNlcTsKLQl1aW50MzJfdCBlbmNfaWQ7Ci19OwogCiAvKioKICAqIHN0 cnVjdCBkcHVfcm1faHdfYmxrIC0gaGFyZHdhcmUgYmxvY2sgdHJhY2tpbmcgbGlzdCBtZW1iZXIK ICAqIEBsaXN0OglMaXN0IGhlYWQgZm9yIGxpc3Qgb2YgYWxsIGhhcmR3YXJlIGJsb2NrcyB0cmFj a2luZyBpdGVtcwotICogQHJzdnA6CVBvaW50ZXIgdG8gdXNlIGNhc2UgcmVzZXJ2YXRpb24gaWYg cmVzZXJ2ZWQgYnkgYSBjbGllbnQKLSAqIEByc3ZwX254dDoJVGVtcG9yYXJ5IHBvaW50ZXIgdXNl ZCBkdXJpbmcgcmVzZXJ2YXRpb24gdG8gdGhlIGluY29taW5nCi0gKgkJcmVxdWVzdC4gV2lsbCBi ZSBzd2FwcGVkIGludG8gcnN2cCBpZiBwcm9wb3NhbCBpcyBhY2NlcHRlZAogICogQHR5cGU6CVR5 cGUgb2YgaGFyZHdhcmUgYmxvY2sgdGhpcyBzdHJ1Y3R1cmUgdHJhY2tzCiAgKiBAaWQ6CQlIYXJk d2FyZSBJRCBudW1iZXIsIHdpdGhpbiBpdCdzIG93biBzcGFjZSwgaWUuIExNX1gKLSAqIEBjYXRh bG9nOglQb2ludGVyIHRvIHRoZSBoYXJkd2FyZSBjYXRhbG9nIGVudHJ5IGZvciB0aGlzIGJsb2Nr CisgKiBAZW5jX2lkOglFbmNvZGVyIGlkIHRvIHdoaWNoIHRoaXMgYmxrIGlzIGJpbmRlZAogICog QGh3OgkJUG9pbnRlciB0byB0aGUgaGFyZHdhcmUgcmVnaXN0ZXIgYWNjZXNzIG9iamVjdCBmb3Ig dGhpcyBibG9jawogICovCiBzdHJ1Y3QgZHB1X3JtX2h3X2JsayB7CiAJc3RydWN0IGxpc3RfaGVh ZCBsaXN0OwotCXN0cnVjdCBkcHVfcm1fcnN2cCAqcnN2cDsKLQlzdHJ1Y3QgZHB1X3JtX3JzdnAg KnJzdnBfbnh0OwogCWVudW0gZHB1X2h3X2Jsa190eXBlIHR5cGU7CiAJdWludDMyX3QgaWQ7CisJ dWludDMyX3QgZW5jX2lkOwogCXN0cnVjdCBkcHVfaHdfYmxrICpodzsKIH07CiAKLS8qKgotICog ZHB1X3JtX2RiZ19yc3ZwX3N0YWdlIC0gZW51bSBvZiBzdGVwcyBpbiBtYWtpbmcgcmVzZXJ2YXRp b24gZm9yIGV2ZW50IGxvZ2dpbmcKLSAqLwotZW51bSBkcHVfcm1fZGJnX3JzdnBfc3RhZ2Ugewot CURQVV9STV9TVEFHRV9CRUdJTiwKLQlEUFVfUk1fU1RBR0VfQUZURVJfQ0xFQVIsCi0JRFBVX1JN X1NUQUdFX0FGVEVSX1JTVlBORVhULAotCURQVV9STV9TVEFHRV9GSU5BTAotfTsKLQotc3RhdGlj IHZvaWQgX2RwdV9ybV9wcmludF9yc3ZwcygKLQkJc3RydWN0IGRwdV9ybSAqcm0sCi0JCWVudW0g ZHB1X3JtX2RiZ19yc3ZwX3N0YWdlIHN0YWdlKQotewotCXN0cnVjdCBkcHVfcm1fcnN2cCAqcnN2 cDsKLQlzdHJ1Y3QgZHB1X3JtX2h3X2JsayAqYmxrOwotCWVudW0gZHB1X2h3X2Jsa190eXBlIHR5 cGU7Ci0KLQlEUFVfREVCVUcoIiVkXG4iLCBzdGFnZSk7Ci0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5 KHJzdnAsICZybS0+cnN2cHMsIGxpc3QpIHsKLQkJRFJNX0RFQlVHX0tNUygiJWQgcnN2cFtzJXVl JXVdXG4iLCBzdGFnZSwgcnN2cC0+c2VxLAotCQkJICAgICAgcnN2cC0+ZW5jX2lkKTsKLQl9Ci0K LQlmb3IgKHR5cGUgPSAwOyB0eXBlIDwgRFBVX0hXX0JMS19NQVg7IHR5cGUrKykgewotCQlsaXN0 X2Zvcl9lYWNoX2VudHJ5KGJsaywgJnJtLT5od19ibGtzW3R5cGVdLCBsaXN0KSB7Ci0JCQlpZiAo IWJsay0+cnN2cCAmJiAhYmxrLT5yc3ZwX254dCkKLQkJCQljb250aW51ZTsKLQotCQkJRFJNX0RF QlVHX0tNUygiJWQgcnN2cFtzJXVlJXUtPnMldWUldV0gJWQgJWRcbiIsIHN0YWdlLAotCQkJCShi bGstPnJzdnApID8gYmxrLT5yc3ZwLT5zZXEgOiAwLAotCQkJCShibGstPnJzdnApID8gYmxrLT5y c3ZwLT5lbmNfaWQgOiAwLAotCQkJCShibGstPnJzdnBfbnh0KSA/IGJsay0+cnN2cF9ueHQtPnNl cSA6IDAsCi0JCQkJKGJsay0+cnN2cF9ueHQpID8gYmxrLT5yc3ZwX254dC0+ZW5jX2lkIDogMCwK LQkJCQlibGstPnR5cGUsIGJsay0+aWQpOwotCQl9Ci0JfQotfQotCiBzdHJ1Y3QgZHB1X2h3X21k cCAqZHB1X3JtX2dldF9tZHAoc3RydWN0IGRwdV9ybSAqcm0pCiB7CiAJcmV0dXJuIHJtLT5od19t ZHA7CkBAIC0xNDgsMTUgKzg2LDEzIEBAIHN0YXRpYyBib29sIF9kcHVfcm1fZ2V0X2h3X2xvY2tl ZChzdHJ1Y3QgZHB1X3JtICpybSwgc3RydWN0IGRwdV9ybV9od19pdGVyICppKQogCWktPmJsayA9 IGxpc3RfcHJlcGFyZV9lbnRyeShpLT5ibGssIGJsa19saXN0LCBsaXN0KTsKIAogCWxpc3RfZm9y X2VhY2hfZW50cnlfY29udGludWUoaS0+YmxrLCBibGtfbGlzdCwgbGlzdCkgewotCQlzdHJ1Y3Qg ZHB1X3JtX3JzdnAgKnJzdnAgPSBpLT5ibGstPnJzdnA7Ci0KIAkJaWYgKGktPmJsay0+dHlwZSAh PSBpLT50eXBlKSB7CiAJCQlEUFVfRVJST1IoImZvdW5kIGluY29ycmVjdCBibG9jayB0eXBlICVk IG9uICVkIGxpc3RcbiIsCiAJCQkJCWktPmJsay0+dHlwZSwgaS0+dHlwZSk7CiAJCQlyZXR1cm4g ZmFsc2U7CiAJCX0KIAotCQlpZiAoKGktPmVuY19pZCA9PSAwKSB8fCAocnN2cCAmJiByc3ZwLT5l bmNfaWQgPT0gaS0+ZW5jX2lkKSkgeworCQlpZiAoaS0+ZW5jX2lkID09IGktPmJsay0+ZW5jX2lk KSB7CiAJCQlpLT5odyA9IGktPmJsay0+aHc7CiAJCQlEUFVfREVCVUcoImZvdW5kIHR5cGUgJWQg aWQgJWQgZm9yIGVuYyAlZFxuIiwKIAkJCQkJaS0+dHlwZSwgaS0+YmxrLT5pZCwgaS0+ZW5jX2lk KTsKQEAgLTIwOCwyMiArMTQ0LDkgQEAgc3RhdGljIHZvaWQgX2RwdV9ybV9od19kZXN0cm95KGVu dW0gZHB1X2h3X2Jsa190eXBlIHR5cGUsIHZvaWQgKmh3KQogCiBpbnQgZHB1X3JtX2Rlc3Ryb3ko c3RydWN0IGRwdV9ybSAqcm0pCiB7Ci0KLQlzdHJ1Y3QgZHB1X3JtX3JzdnAgKnJzdnBfY3VyLCAq cnN2cF9ueHQ7CiAJc3RydWN0IGRwdV9ybV9od19ibGsgKmh3X2N1ciwgKmh3X254dDsKIAllbnVt IGRwdV9od19ibGtfdHlwZSB0eXBlOwogCi0JaWYgKCFybSkgewotCQlEUFVfRVJST1IoImludmFs aWQgcm1cbiIpOwotCQlyZXR1cm4gLUVJTlZBTDsKLQl9Ci0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5 X3NhZmUocnN2cF9jdXIsIHJzdnBfbnh0LCAmcm0tPnJzdnBzLCBsaXN0KSB7Ci0JCWxpc3RfZGVs KCZyc3ZwX2N1ci0+bGlzdCk7Ci0JCWtmcmVlKHJzdnBfY3VyKTsKLQl9Ci0KLQogCWZvciAodHlw ZSA9IDA7IHR5cGUgPCBEUFVfSFdfQkxLX01BWDsgdHlwZSsrKSB7CiAJCWxpc3RfZm9yX2VhY2hf ZW50cnlfc2FmZShod19jdXIsIGh3X254dCwgJnJtLT5od19ibGtzW3R5cGVdLAogCQkJCWxpc3Qp IHsKQEAgLTI5Myw2ICsyMTYsNyBAQCBzdGF0aWMgaW50IF9kcHVfcm1faHdfYmxrX2NyZWF0ZSgK IAlibGstPnR5cGUgPSB0eXBlOwogCWJsay0+aWQgPSBpZDsKIAlibGstPmh3ID0gaHc7CisJYmxr LT5lbmNfaWQgPSAwOwogCWxpc3RfYWRkX3RhaWwoJmJsay0+bGlzdCwgJnJtLT5od19ibGtzW3R5 cGVdKTsKIAogCXJldHVybiAwOwpAQCAtMzE2LDcgKzI0MCw2IEBAIGludCBkcHVfcm1faW5pdChz dHJ1Y3QgZHB1X3JtICpybSwKIAogCW11dGV4X2luaXQoJnJtLT5ybV9sb2NrKTsKIAotCUlOSVRf TElTVF9IRUFEKCZybS0+cnN2cHMpOwogCWZvciAodHlwZSA9IDA7IHR5cGUgPCBEUFVfSFdfQkxL X01BWDsgdHlwZSsrKQogCQlJTklUX0xJU1RfSEVBRCgmcm0tPmh3X2Jsa3NbdHlwZV0pOwogCkBA IC00MTAsNyArMzMzLDcgQEAgc3RhdGljIGJvb2wgX2RwdV9ybV9uZWVkc19zcGxpdF9kaXNwbGF5 KGNvbnN0IHN0cnVjdCBtc21fZGlzcGxheV90b3BvbG9neSAqdG9wKQogICoJcHJvcG9zZWQgdXNl IGNhc2UgcmVxdWlyZW1lbnRzLCBpbmNsLiBoYXJkd2lyZWQgZGVwZW5kZW50IGJsb2NrcyBsaWtl CiAgKglwaW5ncG9uZwogICogQHJtOiBkcHUgcmVzb3VyY2UgbWFuYWdlciBoYW5kbGUKLSAqIEBy c3ZwOiByZXNlcnZhdGlvbiBjdXJyZW50bHkgYmVpbmcgY3JlYXRlZAorICogQGVuY19pZDogZW5j b2RlciBpZCByZXF1ZXN0aW5nIGZvciBhbGxvY2F0aW9uCiAgKiBAcmVxczogcHJvcG9zZWQgdXNl IGNhc2UgcmVxdWlyZW1lbnRzCiAgKiBAbG06IHByb3Bvc2VkIGxheWVyIG1peGVyLCBmdW5jdGlv biBjaGVja3MgaWYgbG0sIGFuZCBhbGwgb3RoZXIgaGFyZHdpcmVkCiAgKiAgICAgIGJsb2NrcyBj b25uZWN0ZWQgdG8gdGhlIGxtIChwcCkgaXMgYXZhaWxhYmxlIGFuZCBhcHByb3ByaWF0ZQpAQCAt NDIyLDcgKzM0NSw3IEBAIHN0YXRpYyBib29sIF9kcHVfcm1fbmVlZHNfc3BsaXRfZGlzcGxheShj b25zdCBzdHJ1Y3QgbXNtX2Rpc3BsYXlfdG9wb2xvZ3kgKnRvcCkKICAqLwogc3RhdGljIGJvb2wg X2RwdV9ybV9jaGVja19sbV9hbmRfZ2V0X2Nvbm5lY3RlZF9ibGtzKAogCQlzdHJ1Y3QgZHB1X3Jt ICpybSwKLQkJc3RydWN0IGRwdV9ybV9yc3ZwICpyc3ZwLAorCQl1aW50MzJfdCBlbmNfaWQsCiAJ CXN0cnVjdCBkcHVfcm1fcmVxdWlyZW1lbnRzICpyZXFzLAogCQlzdHJ1Y3QgZHB1X3JtX2h3X2Js ayAqbG0sCiAJCXN0cnVjdCBkcHVfcm1faHdfYmxrICoqcHAsCkBAIC00NDksNyArMzcyLDcgQEAg c3RhdGljIGJvb2wgX2RwdV9ybV9jaGVja19sbV9hbmRfZ2V0X2Nvbm5lY3RlZF9ibGtzKAogCX0K IAogCS8qIEFscmVhZHkgcmVzZXJ2ZWQ/ICovCi0JaWYgKFJFU0VSVkVEX0JZX09USEVSKGxtLCBy c3ZwKSkgeworCWlmIChSRVNFUlZFRF9CWV9PVEhFUihsbSwgZW5jX2lkKSkgewogCQlEUFVfREVC VUcoImxtICVkIGFscmVhZHkgcmVzZXJ2ZWRcbiIsIGxtX2NmZy0+aWQpOwogCQlyZXR1cm4gZmFs c2U7CiAJfQpAQCAtNDY3LDcgKzM5MCw3IEBAIHN0YXRpYyBib29sIF9kcHVfcm1fY2hlY2tfbG1f YW5kX2dldF9jb25uZWN0ZWRfYmxrcygKIAkJcmV0dXJuIGZhbHNlOwogCX0KIAotCWlmIChSRVNF UlZFRF9CWV9PVEhFUigqcHAsIHJzdnApKSB7CisJaWYgKFJFU0VSVkVEX0JZX09USEVSKCpwcCwg ZW5jX2lkKSkgewogCQlEUFVfREVCVUcoImxtICVkIHBwICVkIGFscmVhZHkgcmVzZXJ2ZWRcbiIs IGxtLT5pZCwKIAkJCQkoKnBwKS0+aWQpOwogCQlyZXR1cm4gZmFsc2U7CkBAIC00NzYsMTAgKzM5 OSw4IEBAIHN0YXRpYyBib29sIF9kcHVfcm1fY2hlY2tfbG1fYW5kX2dldF9jb25uZWN0ZWRfYmxr cygKIAlyZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGludCBfZHB1X3JtX3Jlc2VydmVfbG1zKAot CQlzdHJ1Y3QgZHB1X3JtICpybSwKLQkJc3RydWN0IGRwdV9ybV9yc3ZwICpyc3ZwLAotCQlzdHJ1 Y3QgZHB1X3JtX3JlcXVpcmVtZW50cyAqcmVxcykKK3N0YXRpYyBpbnQgX2RwdV9ybV9yZXNlcnZl X2xtcyhzdHJ1Y3QgZHB1X3JtICpybSwgdWludDMyX3QgZW5jX2lkLAorCQkJICAgICAgIHN0cnVj dCBkcHVfcm1fcmVxdWlyZW1lbnRzICpyZXFzKQogCiB7CiAJc3RydWN0IGRwdV9ybV9od19ibGsg KmxtW01BWF9CTE9DS1NdOwpAQCAtNTA0LDcgKzQyNSw3IEBAIHN0YXRpYyBpbnQgX2RwdV9ybV9y ZXNlcnZlX2xtcygKIAkJbG1bbG1fY291bnRdID0gaXRlcl9pLmJsazsKIAogCQlpZiAoIV9kcHVf cm1fY2hlY2tfbG1fYW5kX2dldF9jb25uZWN0ZWRfYmxrcygKLQkJCQlybSwgcnN2cCwgcmVxcywg bG1bbG1fY291bnRdLAorCQkJCXJtLCBlbmNfaWQsIHJlcXMsIGxtW2xtX2NvdW50XSwKIAkJCQkm cHBbbG1fY291bnRdLCBOVUxMKSkKIAkJCWNvbnRpbnVlOwogCkBAIC01MTksNyArNDQwLDcgQEAg c3RhdGljIGludCBfZHB1X3JtX3Jlc2VydmVfbG1zKAogCQkJCWNvbnRpbnVlOwogCiAJCQlpZiAo IV9kcHVfcm1fY2hlY2tfbG1fYW5kX2dldF9jb25uZWN0ZWRfYmxrcygKLQkJCQkJcm0sIHJzdnAs IHJlcXMsIGl0ZXJfai5ibGssCisJCQkJCXJtLCBlbmNfaWQsIHJlcXMsIGl0ZXJfai5ibGssCiAJ CQkJCSZwcFtsbV9jb3VudF0sIGl0ZXJfaS5ibGspKQogCQkJCWNvbnRpbnVlOwogCkBAIC01Mzcs MTAgKzQ1OCwxMCBAQCBzdGF0aWMgaW50IF9kcHVfcm1fcmVzZXJ2ZV9sbXMoCiAJCWlmICghbG1b aV0pCiAJCQlicmVhazsKIAotCQlsbVtpXS0+cnN2cF9ueHQgPSByc3ZwOwotCQlwcFtpXS0+cnN2 cF9ueHQgPSByc3ZwOworCQlsbVtpXS0+ZW5jX2lkID0gZW5jX2lkOworCQlwcFtpXS0+ZW5jX2lk ID0gZW5jX2lkOwogCi0JCXRyYWNlX2RwdV9ybV9yZXNlcnZlX2xtcyhsbVtpXS0+aWQsIGxtW2ld LT50eXBlLCByc3ZwLT5lbmNfaWQsCisJCXRyYWNlX2RwdV9ybV9yZXNlcnZlX2xtcyhsbVtpXS0+ aWQsIGxtW2ldLT50eXBlLCBlbmNfaWQsCiAJCQkJCSBwcFtpXS0+aWQpOwogCX0KIApAQCAtNTQ5 LDcgKzQ3MCw3IEBAIHN0YXRpYyBpbnQgX2RwdV9ybV9yZXNlcnZlX2xtcygKIAogc3RhdGljIGlu dCBfZHB1X3JtX3Jlc2VydmVfY3RscygKIAkJc3RydWN0IGRwdV9ybSAqcm0sCi0JCXN0cnVjdCBk cHVfcm1fcnN2cCAqcnN2cCwKKwkJdWludDMyX3QgZW5jX2lkLAogCQljb25zdCBzdHJ1Y3QgbXNt X2Rpc3BsYXlfdG9wb2xvZ3kgKnRvcCkKIHsKIAlzdHJ1Y3QgZHB1X3JtX2h3X2JsayAqY3Rsc1tN QVhfQkxPQ0tTXTsKQEAgLTU3MCw3ICs0OTEsNyBAQCBzdGF0aWMgaW50IF9kcHVfcm1fcmVzZXJ2 ZV9jdGxzKAogCQl1bnNpZ25lZCBsb25nIGZlYXR1cmVzID0gY3RsLT5jYXBzLT5mZWF0dXJlczsK IAkJYm9vbCBoYXNfc3BsaXRfZGlzcGxheTsKIAotCQlpZiAoUkVTRVJWRURfQllfT1RIRVIoaXRl ci5ibGssIHJzdnApKQorCQlpZiAoUkVTRVJWRURfQllfT1RIRVIoaXRlci5ibGssIGVuY19pZCkp CiAJCQljb250aW51ZTsKIAogCQloYXNfc3BsaXRfZGlzcGxheSA9IEJJVChEUFVfQ1RMX1NQTElU X0RJU1BMQVkpICYgZmVhdHVyZXM7CkBAIC01OTEsOSArNTEyLDkgQEAgc3RhdGljIGludCBfZHB1 X3JtX3Jlc2VydmVfY3RscygKIAkJcmV0dXJuIC1FTkFWQUlMOwogCiAJZm9yIChpID0gMDsgaSA8 IEFSUkFZX1NJWkUoY3RscykgJiYgaSA8IG51bV9jdGxzOyBpKyspIHsKLQkJY3Rsc1tpXS0+cnN2 cF9ueHQgPSByc3ZwOworCQljdGxzW2ldLT5lbmNfaWQgPSBlbmNfaWQ7CiAJCXRyYWNlX2RwdV9y bV9yZXNlcnZlX2N0bHMoY3Rsc1tpXS0+aWQsIGN0bHNbaV0tPnR5cGUsCi0JCQkJCSAgcnN2cC0+ ZW5jX2lkKTsKKwkJCQkJICBlbmNfaWQpOwogCX0KIAogCXJldHVybiAwOwpAQCAtNjAxLDcgKzUy Miw3IEBAIHN0YXRpYyBpbnQgX2RwdV9ybV9yZXNlcnZlX2N0bHMoCiAKIHN0YXRpYyBpbnQgX2Rw dV9ybV9yZXNlcnZlX2ludGYoCiAJCXN0cnVjdCBkcHVfcm0gKnJtLAotCQlzdHJ1Y3QgZHB1X3Jt X3JzdnAgKnJzdnAsCisJCXVpbnQzMl90IGVuY19pZCwKIAkJdWludDMyX3QgaWQsCiAJCWVudW0g ZHB1X2h3X2Jsa190eXBlIHR5cGUpCiB7CkBAIC02MTQsMTQgKzUzNSwxNCBAQCBzdGF0aWMgaW50 IF9kcHVfcm1fcmVzZXJ2ZV9pbnRmKAogCQlpZiAoaXRlci5ibGstPmlkICE9IGlkKQogCQkJY29u dGludWU7CiAKLQkJaWYgKFJFU0VSVkVEX0JZX09USEVSKGl0ZXIuYmxrLCByc3ZwKSkgeworCQlp ZiAoUkVTRVJWRURfQllfT1RIRVIoaXRlci5ibGssIGVuY19pZCkpIHsKIAkJCURQVV9FUlJPUigi dHlwZSAlZCBpZCAlZCBhbHJlYWR5IHJlc2VydmVkXG4iLCB0eXBlLCBpZCk7CiAJCQlyZXR1cm4g LUVOQVZBSUw7CiAJCX0KIAotCQlpdGVyLmJsay0+cnN2cF9ueHQgPSByc3ZwOworCQlpdGVyLmJs ay0+ZW5jX2lkID0gZW5jX2lkOwogCQl0cmFjZV9kcHVfcm1fcmVzZXJ2ZV9pbnRmKGl0ZXIuYmxr LT5pZCwgaXRlci5ibGstPnR5cGUsCi0JCQkJCSAgcnN2cC0+ZW5jX2lkKTsKKwkJCQkJICBlbmNf aWQpOwogCQlicmVhazsKIAl9CiAKQEAgLTYzNiw3ICs1NTcsNyBAQCBzdGF0aWMgaW50IF9kcHVf cm1fcmVzZXJ2ZV9pbnRmKAogCiBzdGF0aWMgaW50IF9kcHVfcm1fcmVzZXJ2ZV9pbnRmX3JlbGF0 ZWRfaHcoCiAJCXN0cnVjdCBkcHVfcm0gKnJtLAotCQlzdHJ1Y3QgZHB1X3JtX3JzdnAgKnJzdnAs CisJCXVpbnQzMl90IGVuY19pZCwKIAkJc3RydWN0IGRwdV9lbmNvZGVyX2h3X3Jlc291cmNlcyAq aHdfcmVzKQogewogCWludCBpLCByZXQgPSAwOwpAQCAtNjQ2LDcgKzU2Nyw3IEBAIHN0YXRpYyBp bnQgX2RwdV9ybV9yZXNlcnZlX2ludGZfcmVsYXRlZF9odygKIAkJaWYgKGh3X3Jlcy0+aW50ZnNb aV0gPT0gSU5URl9NT0RFX05PTkUpCiAJCQljb250aW51ZTsKIAkJaWQgPSBpICsgSU5URl8wOwot CQlyZXQgPSBfZHB1X3JtX3Jlc2VydmVfaW50ZihybSwgcnN2cCwgaWQsCisJCXJldCA9IF9kcHVf cm1fcmVzZXJ2ZV9pbnRmKHJtLCBlbmNfaWQsIGlkLAogCQkJCURQVV9IV19CTEtfSU5URik7CiAJ CWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwpAQCAtNjU1LDMzICs1NzYsMjcgQEAgc3RhdGljIGlu dCBfZHB1X3JtX3Jlc2VydmVfaW50Zl9yZWxhdGVkX2h3KAogCXJldHVybiByZXQ7CiB9CiAKLXN0 YXRpYyBpbnQgX2RwdV9ybV9tYWtlX25leHRfcnN2cCgKK3N0YXRpYyBpbnQgX2RwdV9ybV9tYWtl X3Jlc2VydmF0aW9uKAogCQlzdHJ1Y3QgZHB1X3JtICpybSwKIAkJc3RydWN0IGRybV9lbmNvZGVy ICplbmMsCiAJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKLQkJc3RydWN0IGRw dV9ybV9yc3ZwICpyc3ZwLAogCQlzdHJ1Y3QgZHB1X3JtX3JlcXVpcmVtZW50cyAqcmVxcykKIHsK IAlpbnQgcmV0OwogCi0JLyogQ3JlYXRlIHJlc2VydmF0aW9uIGluZm8sIHRhZyByZXNlcnZlZCBi bG9ja3Mgd2l0aCBpdCBhcyB3ZSBnbyAqLwotCXJzdnAtPnNlcSA9ICsrcm0tPnJzdnBfbmV4dF9z ZXE7Ci0JcnN2cC0+ZW5jX2lkID0gZW5jLT5iYXNlLmlkOwotCWxpc3RfYWRkX3RhaWwoJnJzdnAt Pmxpc3QsICZybS0+cnN2cHMpOwotCi0JcmV0ID0gX2RwdV9ybV9yZXNlcnZlX2xtcyhybSwgcnN2 cCwgcmVxcyk7CisJcmV0ID0gX2RwdV9ybV9yZXNlcnZlX2xtcyhybSwgZW5jLT5iYXNlLmlkLCBy ZXFzKTsKIAlpZiAocmV0KSB7CiAJCURQVV9FUlJPUigidW5hYmxlIHRvIGZpbmQgYXBwcm9wcmlh dGUgbWl4ZXJzXG4iKTsKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQlyZXQgPSBfZHB1X3JtX3Jlc2Vy dmVfY3RscyhybSwgcnN2cCwgJnJlcXMtPnRvcG9sb2d5KTsKKwlyZXQgPSBfZHB1X3JtX3Jlc2Vy dmVfY3RscyhybSwgZW5jLT5iYXNlLmlkLCAmcmVxcy0+dG9wb2xvZ3kpOwogCWlmIChyZXQpIHsK IAkJRFBVX0VSUk9SKCJ1bmFibGUgdG8gZmluZCBhcHByb3ByaWF0ZSBDVExcbiIpOwogCQlyZXR1 cm4gcmV0OwogCX0KIAotCXJldCA9IF9kcHVfcm1fcmVzZXJ2ZV9pbnRmX3JlbGF0ZWRfaHcocm0s IHJzdnAsICZyZXFzLT5od19yZXMpOworCXJldCA9IF9kcHVfcm1fcmVzZXJ2ZV9pbnRmX3JlbGF0 ZWRfaHcocm0sIGVuYy0+YmFzZS5pZCwgJnJlcXMtPmh3X3Jlcyk7CiAJaWYgKHJldCkKIAkJcmV0 dXJuIHJldDsKIApAQCAtNzA2LDEwOCArNjIxLDMxIEBAIHN0YXRpYyBpbnQgX2RwdV9ybV9wb3B1 bGF0ZV9yZXF1aXJlbWVudHMoCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgZHB1X3Jt X3JzdnAgKl9kcHVfcm1fZ2V0X3JzdnAoCi0JCXN0cnVjdCBkcHVfcm0gKnJtLAotCQlzdHJ1Y3Qg ZHJtX2VuY29kZXIgKmVuYykKK3N0YXRpYyB2b2lkIF9kcHVfcm1fcmVsZWFzZV9yZXNlcnZhdGlv bihzdHJ1Y3QgZHB1X3JtICpybSwgdWludDMyX3QgZW5jX2lkKQogewotCXN0cnVjdCBkcHVfcm1f cnN2cCAqaTsKLQotCWlmICghcm0gfHwgIWVuYykgewotCQlEUFVfRVJST1IoImludmFsaWQgcGFy YW1zXG4iKTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotCi0JaWYgKGxpc3RfZW1wdHkoJnJtLT5yc3Zw cykpCi0JCXJldHVybiBOVUxMOwotCi0JbGlzdF9mb3JfZWFjaF9lbnRyeShpLCAmcm0tPnJzdnBz LCBsaXN0KQotCQlpZiAoaS0+ZW5jX2lkID09IGVuYy0+YmFzZS5pZCkKLQkJCXJldHVybiBpOwot Ci0JcmV0dXJuIE5VTEw7Ci19Ci0KLS8qKgotICogX2RwdV9ybV9yZWxlYXNlX3JzdnAgLSByZWxl YXNlIHJlc291cmNlcyBhbmQgcmVsZWFzZSBhIHJlc2VydmF0aW9uCi0gKiBAcm06CUtNUyBoYW5k bGUKLSAqIEByc3ZwOglSU1ZQIHBvaW50ZXIgdG8gcmVsZWFzZSBhbmQgcmVsZWFzZSByZXNvdXJj ZXMgZm9yCi0gKi8KLXN0YXRpYyB2b2lkIF9kcHVfcm1fcmVsZWFzZV9yc3ZwKHN0cnVjdCBkcHVf cm0gKnJtLCBzdHJ1Y3QgZHB1X3JtX3JzdnAgKnJzdnApCi17Ci0Jc3RydWN0IGRwdV9ybV9yc3Zw ICpyc3ZwX2MsICpyc3ZwX247CiAJc3RydWN0IGRwdV9ybV9od19ibGsgKmJsazsKIAllbnVtIGRw dV9od19ibGtfdHlwZSB0eXBlOwogCi0JaWYgKCFyc3ZwKQotCQlyZXR1cm47Ci0KLQlEUFVfREVC VUcoInJlbCByc3ZwICVkIGVuYyAlZFxuIiwgcnN2cC0+c2VxLCByc3ZwLT5lbmNfaWQpOwotCi0J bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHJzdnBfYywgcnN2cF9uLCAmcm0tPnJzdnBzLCBsaXN0 KSB7Ci0JCWlmIChyc3ZwID09IHJzdnBfYykgewotCQkJbGlzdF9kZWwoJnJzdnBfYy0+bGlzdCk7 Ci0JCQlicmVhazsKLQkJfQotCX0KLQogCWZvciAodHlwZSA9IDA7IHR5cGUgPCBEUFVfSFdfQkxL X01BWDsgdHlwZSsrKSB7CiAJCWxpc3RfZm9yX2VhY2hfZW50cnkoYmxrLCAmcm0tPmh3X2Jsa3Nb dHlwZV0sIGxpc3QpIHsKLQkJCWlmIChibGstPnJzdnAgPT0gcnN2cCkgewotCQkJCWJsay0+cnN2 cCA9IE5VTEw7Ci0JCQkJRFBVX0RFQlVHKCJyZWwgcnN2cCAlZCBlbmMgJWQgJWQgJWRcbiIsCi0J CQkJCQlyc3ZwLT5zZXEsIHJzdnAtPmVuY19pZCwKLQkJCQkJCWJsay0+dHlwZSwgYmxrLT5pZCk7 Ci0JCQl9Ci0JCQlpZiAoYmxrLT5yc3ZwX254dCA9PSByc3ZwKSB7Ci0JCQkJYmxrLT5yc3ZwX254 dCA9IE5VTEw7Ci0JCQkJRFBVX0RFQlVHKCJyZWwgcnN2cF9ueHQgJWQgZW5jICVkICVkICVkXG4i LAotCQkJCQkJcnN2cC0+c2VxLCByc3ZwLT5lbmNfaWQsCi0JCQkJCQlibGstPnR5cGUsIGJsay0+ aWQpOworCQkJaWYgKGJsay0+ZW5jX2lkID09IGVuY19pZCkgeworCQkJCWJsay0+ZW5jX2lkID0g MDsKKwkJCQlEUFVfREVCVUcoInJlbCBlbmMgJWQgJWQgJWRcbiIsIGVuY19pZCwKKwkJCQkJICBi bGstPnR5cGUsIGJsay0+aWQpOwogCQkJfQogCQl9CiAJfQotCi0Ja2ZyZWUocnN2cCk7CiB9CiAK IHZvaWQgZHB1X3JtX3JlbGVhc2Uoc3RydWN0IGRwdV9ybSAqcm0sIHN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jKQogewotCXN0cnVjdCBkcHVfcm1fcnN2cCAqcnN2cDsKLQotCWlmICghcm0gfHwgIWVu YykgewotCQlEUFVfRVJST1IoImludmFsaWQgcGFyYW1zXG4iKTsKLQkJcmV0dXJuOwotCX0KLQog CW11dGV4X2xvY2soJnJtLT5ybV9sb2NrKTsKIAotCXJzdnAgPSBfZHB1X3JtX2dldF9yc3ZwKHJt LCBlbmMpOwotCWlmICghcnN2cCkgewotCQlEUFVfRVJST1IoImZhaWxlZCB0byBmaW5kIHJzdnAg Zm9yIGVuYyAlZFxuIiwgZW5jLT5iYXNlLmlkKTsKLQkJZ290byBlbmQ7Ci0JfQorCV9kcHVfcm1f cmVsZWFzZV9yZXNlcnZhdGlvbihybSwgZW5jLT5iYXNlLmlkKTsKIAotCV9kcHVfcm1fcmVsZWFz ZV9yc3ZwKHJtLCByc3ZwKTsKLWVuZDoKIAltdXRleF91bmxvY2soJnJtLT5ybV9sb2NrKTsKIH0K IAotc3RhdGljIHZvaWQgX2RwdV9ybV9jb21taXRfcnN2cChzdHJ1Y3QgZHB1X3JtICpybSwgc3Ry dWN0IGRwdV9ybV9yc3ZwICpyc3ZwKQotewotCXN0cnVjdCBkcHVfcm1faHdfYmxrICpibGs7Ci0J ZW51bSBkcHVfaHdfYmxrX3R5cGUgdHlwZTsKLQotCS8qIFN3YXAgbmV4dCByc3ZwIHRvIGJlIHRo ZSBhY3RpdmUgKi8KLQlmb3IgKHR5cGUgPSAwOyB0eXBlIDwgRFBVX0hXX0JMS19NQVg7IHR5cGUr KykgewotCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGJsaywgJnJtLT5od19ibGtzW3R5cGVdLCBsaXN0 KSB7Ci0JCQlpZiAoYmxrLT5yc3ZwX254dCkgewotCQkJCWJsay0+cnN2cCA9IGJsay0+cnN2cF9u eHQ7Ci0JCQkJYmxrLT5yc3ZwX254dCA9IE5VTEw7Ci0JCQl9Ci0JCX0KLQl9Ci19Ci0KIGludCBk cHVfcm1fcmVzZXJ2ZSgKIAkJc3RydWN0IGRwdV9ybSAqcm0sCiAJCXN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jLApAQCAtODE1LDcgKzY1Myw2IEBAIGludCBkcHVfcm1fcmVzZXJ2ZSgKIAkJc3RydWN0 IG1zbV9kaXNwbGF5X3RvcG9sb2d5IHRvcG9sb2d5LAogCQlib29sIHRlc3Rfb25seSkKIHsKLQlz dHJ1Y3QgZHB1X3JtX3JzdnAgKnJzdnBfY3VyLCAqcnN2cF9ueHQ7CiAJc3RydWN0IGRwdV9ybV9y ZXF1aXJlbWVudHMgcmVxczsKIAlpbnQgcmV0OwogCkBAIC04MjgsOCArNjY1LDYgQEAgaW50IGRw dV9ybV9yZXNlcnZlKAogCiAJbXV0ZXhfbG9jaygmcm0tPnJtX2xvY2spOwogCi0JX2RwdV9ybV9w cmludF9yc3ZwcyhybSwgRFBVX1JNX1NUQUdFX0JFR0lOKTsKLQogCXJldCA9IF9kcHVfcm1fcG9w dWxhdGVfcmVxdWlyZW1lbnRzKHJtLCBlbmMsIGNydGNfc3RhdGUsICZyZXFzLAogCQkJCQkgICAg dG9wb2xvZ3kpOwogCWlmIChyZXQpIHsKQEAgLTgzNyw1MCArNjcyLDE3IEBAIGludCBkcHVfcm1f cmVzZXJ2ZSgKIAkJZ290byBlbmQ7CiAJfQogCi0JLyoKLQkgKiBXZSBvbmx5IHN1cHBvcnQgb25l IGFjdGl2ZSByZXNlcnZhdGlvbiBwZXItaHctYmxvY2suIEJ1dCB0byBpbXBsZW1lbnQKLQkgKiB0 cmFuc2FjdGlvbmFsIHNlbWFudGljcyBmb3IgdGVzdC1vbmx5LCBhbmQgZm9yIGFsbG93aW5nIGZh aWx1cmUgd2hpbGUKLQkgKiBtb2RpZnlpbmcgeW91ciBleGlzdGluZyByZXNlcnZhdGlvbiwgb3Zl ciB0aGUgY291cnNlIG9mIHRoaXMKLQkgKiBmdW5jdGlvbiB3ZSBjYW4gaGF2ZSB0d28gcmVzZXJ2 YXRpb25zOgotCSAqIEN1cnJlbnQ6IEV4aXN0aW5nIHJlc2VydmF0aW9uCi0JICogTmV4dDogUHJv cG9zZWQgcmVzZXJ2YXRpb24uIFRoZSBwcm9wb3NlZCByZXNlcnZhdGlvbiBtYXkgZmFpbCwgb3Ig bWF5Ci0JICogICAgICAgYmUgZGlzY2FyZGVkIGlmIGluIHRlc3Qtb25seSBtb2RlLgotCSAqIElm IHJlc2VydmF0aW9uIGlzIHN1Y2Nlc3NmdWwsIGFuZCB3ZSdyZSBub3QgaW4gdGVzdC1vbmx5LCB0 aGVuIHdlCi0JICogcmVwbGFjZSB0aGUgY3VycmVudCB3aXRoIHRoZSBuZXh0LgotCSAqLwotCXJz dnBfbnh0ID0ga3phbGxvYyhzaXplb2YoKnJzdnBfbnh0KSwgR0ZQX0tFUk5FTCk7Ci0JaWYgKCFy c3ZwX254dCkgewotCQlyZXQgPSAtRU5PTUVNOwotCQlnb3RvIGVuZDsKLQl9Ci0KLQlyc3ZwX2N1 ciA9IF9kcHVfcm1fZ2V0X3JzdnAocm0sIGVuYyk7Ci0KLQkvKiBDaGVjayB0aGUgcHJvcG9zZWQg cmVzZXJ2YXRpb24sIHN0b3JlIGl0IGluIGh3J3MgIm5leHQiIGZpZWxkICovCi0JcmV0ID0gX2Rw dV9ybV9tYWtlX25leHRfcnN2cChybSwgZW5jLCBjcnRjX3N0YXRlLCByc3ZwX254dCwgJnJlcXMp OwotCi0JX2RwdV9ybV9wcmludF9yc3ZwcyhybSwgRFBVX1JNX1NUQUdFX0FGVEVSX1JTVlBORVhU KTsKLQorCXJldCA9IF9kcHVfcm1fbWFrZV9yZXNlcnZhdGlvbihybSwgZW5jLCBjcnRjX3N0YXRl LCAmcmVxcyk7CiAJaWYgKHJldCkgewogCQlEUFVfRVJST1IoImZhaWxlZCB0byByZXNlcnZlIGh3 IHJlc291cmNlczogJWRcbiIsIHJldCk7Ci0JCV9kcHVfcm1fcmVsZWFzZV9yc3ZwKHJtLCByc3Zw X254dCk7CisJCV9kcHVfcm1fcmVsZWFzZV9yZXNlcnZhdGlvbihybSwgZW5jLT5iYXNlLmlkKTsK IAl9IGVsc2UgaWYgKHRlc3Rfb25seSkgewotCQkvKgotCQkgKiBOb3JtYWxseSwgaWYgdGVzdF9v bmx5LCB0ZXN0IHRoZSByZXNlcnZhdGlvbiBhbmQgdGhlbiB1bmRvCi0JCSAqIEhvd2V2ZXIsIGlm IHRoZSB1c2VyIHJlcXVlc3RzIExPQ0ssIHRoZW4ga2VlcCB0aGUgcmVzZXJ2YXRpb24KLQkJICog bWFkZSBkdXJpbmcgdGhlIGF0b21pY19jaGVjayBwaGFzZS4KLQkJICovCi0JCURQVV9ERUJVRygi dGVzdF9vbmx5OiBkaXNjYXJkIHRlc3QgcnN2cFtzJWRlJWRdXG4iLAotCQkJCXJzdnBfbnh0LT5z ZXEsIHJzdnBfbnh0LT5lbmNfaWQpOwotCQlfZHB1X3JtX3JlbGVhc2VfcnN2cChybSwgcnN2cF9u eHQpOwotCX0gZWxzZSB7Ci0JCV9kcHVfcm1fcmVsZWFzZV9yc3ZwKHJtLCByc3ZwX2N1cik7Ci0K LQkJX2RwdV9ybV9jb21taXRfcnN2cChybSwgcnN2cF9ueHQpOworCQkgLyogdGVzdF9vbmx5OiB0 ZXN0IHRoZSByZXNlcnZhdGlvbiBhbmQgdGhlbiB1bmRvICovCisJCURQVV9ERUJVRygidGVzdF9v bmx5OiBkaXNjYXJkIHRlc3QgW2VuYzogJWRdXG4iLAorCQkJCWVuYy0+YmFzZS5pZCk7CisJCV9k cHVfcm1fcmVsZWFzZV9yZXNlcnZhdGlvbihybSwgZW5jLT5iYXNlLmlkKTsKIAl9CiAKLQlfZHB1 X3JtX3ByaW50X3JzdnBzKHJtLCBEUFVfUk1fU1RBR0VfRklOQUwpOwotCiBlbmQ6CiAJbXV0ZXhf dW5sb2NrKCZybS0+cm1fbG9jayk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9ybS5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X3Jt LmgKaW5kZXggYjgyNzNiZC4uMGRkM2MyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X3JtLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X3JtLmgKQEAgLTIzLDIxICsyMywxNyBAQAogLyoqCiAgKiBzdHJ1Y3QgZHB1X3JtIC0gRFBV IGR5bmFtaWMgaGFyZHdhcmUgcmVzb3VyY2UgbWFuYWdlcgogICogQGRldjogZGV2aWNlIGhhbmRs ZSBmb3IgZXZlbnQgbG9nZ2luZyBwdXJwb3NlcwotICogQHJzdnBzOiBsaXN0IG9mIGhhcmR3YXJl IHJlc2VydmF0aW9ucyBieSBlYWNoIGNydGMtPmVuY29kZXItPmNvbm5lY3RvcgogICogQGh3X2Js a3M6IGFycmF5IG9mIGxpc3RzIG9mIGhhcmR3YXJlIHJlc291cmNlcyBwcmVzZW50IGluIHRoZSBz eXN0ZW0sIG9uZQogICoJbGlzdCBwZXIgdHlwZSBvZiBoYXJkd2FyZSBibG9jawogICogQGh3X21k cDogaGFyZHdhcmUgb2JqZWN0IGZvciBtZHBfdG9wCiAgKiBAbG1fbWF4X3dpZHRoOiBjYWNoZWQg bGF5ZXIgbWl4ZXIgbWF4aW11bSB3aWR0aAotICogQHJzdnBfbmV4dF9zZXE6IHNlcXVlbmNlIG51 bWJlciBmb3IgbmV4dCByZXNlcnZhdGlvbiBmb3IgZGVidWdnaW5nIHB1cnBvc2VzCiAgKiBAcm1f bG9jazogcmVzb3VyY2UgbWFuYWdlciBtdXRleAogICovCiBzdHJ1Y3QgZHB1X3JtIHsKIAlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2OwotCXN0cnVjdCBsaXN0X2hlYWQgcnN2cHM7CiAJc3RydWN0IGxp c3RfaGVhZCBod19ibGtzW0RQVV9IV19CTEtfTUFYXTsKIAlzdHJ1Y3QgZHB1X2h3X21kcCAqaHdf bWRwOwogCXVpbnQzMl90IGxtX21heF93aWR0aDsKLQl1aW50MzJfdCByc3ZwX25leHRfc2VxOwog CXN0cnVjdCBtdXRleCBybV9sb2NrOwogfTsKIAotLSAKVGhlIFF1YWxjb21tIElubm92YXRpb24g Q2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYSBGb3J1bSwKYSBMaW51 eCBGb3VuZGF0aW9uIENvbGxhYm9yYXRpdmUgUHJvamVjdAoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1haWxpbmcgbGlzdApGcmVlZHJl bm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==