From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chunming Zhou Subject: [PATCH] drm/ttm: fix busy memory to fail other user v5 Date: Tue, 30 Apr 2019 15:01:51 +0800 Message-ID: <20190430070151.16674-1-david1.zhou@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-eopbgr760074.outbound.protection.outlook.com [40.107.76.74]) by gabe.freedesktop.org (Postfix) with ESMTPS id EA3E3893CD for ; Tue, 30 Apr 2019 07:02:05 +0000 (UTC) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Christian.Koenig@amd.com, Prike.Liang@amd.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org aGVhdnkgZ3B1IGpvYiBjb3VsZCBvY2N1cHkgbWVtb3J5IGxvbmcgdGltZSwgd2hpY2ggbGVhZCBv dGhlciB1c2VyIGZhaWwgdG8gZ2V0IG1lbW9yeS4KCmJhc2ljYWxseSBwaWNrIHVwIENocmlzdGlh biBpZGVhOgoKMS4gUmVzZXJ2ZSB0aGUgQk8gaW4gREMgdXNpbmcgYSB3d19tdXRleCB0aWNrZXQg KHRyaXZpYWwpLgoyLiBJZiB3ZSB0aGVuIHJ1biBpbnRvIHRoaXMgRUJVU1kgY29uZGl0aW9uIGlu IFRUTSBjaGVjayBpZiB0aGUgQk8gd2UgbmVlZCBtZW1vcnkgZm9yIChvciByYXRoZXIgdGhlIHd3 X211dGV4IG9mIGl0cyByZXNlcnZhdGlvbiBvYmplY3QpIGhhcyBhIHRpY2tldCBhc3NpZ25lZC4K My4gSWYgd2UgaGF2ZSBhIHRpY2tldCB3ZSBncmFiIGEgcmVmZXJlbmNlIHRvIHRoZSBmaXJzdCBC TyBvbiB0aGUgTFJVLCBkcm9wIHRoZSBMUlUgbG9jayBhbmQgdHJ5IHRvIGdyYWIgdGhlIHJlc2Vy dmF0aW9uIGxvY2sgd2l0aCB0aGUgdGlja2V0Lgo0LiBJZiBnZXR0aW5nIHRoZSByZXNlcnZhdGlv biBsb2NrIHdpdGggdGhlIHRpY2tldCBzdWNjZWVkZWQgd2UgY2hlY2sgaWYgdGhlIEJPIGlzIHN0 aWxsIHRoZSBmaXJzdCBvbmUgb24gdGhlIExSVSBpbiBxdWVzdGlvbiAodGhlIEJPIGNvdWxkIGhh dmUgbW92ZWQpLgo1LiBJZiB0aGUgQk8gaXMgc3RpbGwgdGhlIGZpcnN0IG9uZSBvbiB0aGUgTFJV IGluIHF1ZXN0aW9uIHdlIHRyeSB0byBldmljdCBpdCBhcyB3ZSB3b3VsZCBldmljdCBhbnkgb3Ro ZXIgQk8uCjYuIElmIGFueSBvZiB0aGUgIklmJ3MiIGFib3ZlIGZhaWwgd2UganVzdCBiYWNrIG9m ZiBhbmQgcmV0dXJuIC1FQlVTWS4KCnYyOiBmaXggc29tZSBtaW5vciBjaGVjawp2MzogYWRkcmVz cyBDaHJpc3RpYW4gdjIgY29tbWVudHMuCnY0OiBmaXggc29tZSBtaXNzaW5nCnY1OiBoYW5kbGUg Zmlyc3RfYm8gdW5sb2NrIGFuZCBib19nZXQvcHV0CgpDaGFuZ2UtSWQ6IEkyMTQyM2ZiOTIyZjg4 NTQ2NWYxMzgzM2M0MWRmMWUxMzQzNjRhOGU3ClNpZ25lZC1vZmYtYnk6IENodW5taW5nIFpob3Ug PGRhdmlkMS56aG91QGFtZC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X29iamVjdC5jICAgIHwgIDcgKy0KIC4uLi9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9k bS9hbWRncHVfZG0uYyB8IDIyICsrKy0tCiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jICAg ICAgICAgICAgICAgICAgfCA4MSArKysrKysrKysrKysrKysrKy0tCiAzIGZpbGVzIGNoYW5nZWQs IDk5IGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9vYmplY3QuYwppbmRleCBhZmZkZTcyYjQ0ZGIuLjUyMzc3M2U4NTI4NCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYwpAQCAtODExLDcg KzgxMSwxMiBAQCBpbnQgYW1kZ3B1X2JvX3Bpbl9yZXN0cmljdGVkKHN0cnVjdCBhbWRncHVfYm8g KmJvLCB1MzIgZG9tYWluLAogCQkJICAgICB1NjQgbWluX29mZnNldCwgdTY0IG1heF9vZmZzZXQp CiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBhbWRncHVfdHRtX2FkZXYoYm8tPnRi by5iZGV2KTsKLQlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0geyBmYWxzZSwgZmFsc2Ug fTsKKwlzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggY3R4ID0geworCQkuaW50ZXJydXB0aWJsZSA9 IGZhbHNlLAorCQkubm9fd2FpdF9ncHUgPSBmYWxzZSwKKwkJLnJlc3YgPSBiby0+dGJvLnJlc3Ys CisJCS5mbGFncyA9IDAKKwl9OwogCWludCByLCBpOwogCiAJaWYgKGFtZGdwdV90dG1fdHRfZ2V0 X3VzZXJtbShiby0+dGJvLnR0bSkpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rp c3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5 L2FtZGdwdV9kbS9hbWRncHVfZG0uYwppbmRleCBhNWNhY2Y4NDZlMWIuLmNjMzY3N2M0YTRjMiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVf ZG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9k bS5jCkBAIC00MTAxLDYgKzQxMDEsOSBAQCBzdGF0aWMgaW50IGRtX3BsYW5lX2hlbHBlcl9wcmVw YXJlX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2OwogCXN0cnVjdCBhbWRncHVfYm8gKnJibzsKIAlzdHJ1Y3QgZG1fcGxhbmVfc3RhdGUgKmRt X3BsYW5lX3N0YXRlX25ldywgKmRtX3BsYW5lX3N0YXRlX29sZDsKKwlzdHJ1Y3QgbGlzdF9oZWFk IGxpc3QsIGR1cGxpY2F0ZXM7CisJc3RydWN0IHR0bV92YWxpZGF0ZV9idWZmZXIgdHY7CisJc3Ry dWN0IHd3X2FjcXVpcmVfY3R4IHRpY2tldDsKIAl1aW50NjRfdCB0aWxpbmdfZmxhZ3M7CiAJdWlu dDMyX3QgZG9tYWluOwogCWludCByOwpAQCAtNDExNyw5ICs0MTIwLDE4IEBAIHN0YXRpYyBpbnQg ZG1fcGxhbmVfaGVscGVyX3ByZXBhcmVfZmIoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJb2Jq ID0gbmV3X3N0YXRlLT5mYi0+b2JqWzBdOwogCXJibyA9IGdlbV90b19hbWRncHVfYm8ob2JqKTsK IAlhZGV2ID0gYW1kZ3B1X3R0bV9hZGV2KHJiby0+dGJvLmJkZXYpOwotCXIgPSBhbWRncHVfYm9f cmVzZXJ2ZShyYm8sIGZhbHNlKTsKLQlpZiAodW5saWtlbHkociAhPSAwKSkKKwlJTklUX0xJU1Rf SEVBRCgmbGlzdCk7CisJSU5JVF9MSVNUX0hFQUQoJmR1cGxpY2F0ZXMpOworCisJdHYuYm8gPSAm cmJvLT50Ym87CisJdHYubnVtX3NoYXJlZCA9IDE7CisJbGlzdF9hZGQoJnR2LmhlYWQsICZsaXN0 KTsKKworCXIgPSB0dG1fZXVfcmVzZXJ2ZV9idWZmZXJzKCZ0aWNrZXQsICZsaXN0LCBmYWxzZSwg JmR1cGxpY2F0ZXMpOworCWlmIChyKSB7CisJCWRldl9lcnIoYWRldi0+ZGV2LCAiZmFpbCB0byBy ZXNlcnZlIGJvICglZClcbiIsIHIpOwogCQlyZXR1cm4gcjsKKwl9CiAKIAlpZiAocGxhbmUtPnR5 cGUgIT0gRFJNX1BMQU5FX1RZUEVfQ1VSU09SKQogCQlkb21haW4gPSBhbWRncHVfZGlzcGxheV9z dXBwb3J0ZWRfZG9tYWlucyhhZGV2KTsKQEAgLTQxMzAsMjEgKzQxNDIsMjEgQEAgc3RhdGljIGlu dCBkbV9wbGFuZV9oZWxwZXJfcHJlcGFyZV9mYihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlp ZiAodW5saWtlbHkociAhPSAwKSkgewogCQlpZiAociAhPSAtRVJFU1RBUlRTWVMpCiAJCQlEUk1f RVJST1IoIkZhaWxlZCB0byBwaW4gZnJhbWVidWZmZXIgd2l0aCBlcnJvciAlZFxuIiwgcik7Ci0J CWFtZGdwdV9ib191bnJlc2VydmUocmJvKTsKKwkJdHRtX2V1X2JhY2tvZmZfcmVzZXJ2YXRpb24o JnRpY2tldCwgJmxpc3QpOwogCQlyZXR1cm4gcjsKIAl9CiAKIAlyID0gYW1kZ3B1X3R0bV9hbGxv Y19nYXJ0KCZyYm8tPnRibyk7CiAJaWYgKHVubGlrZWx5KHIgIT0gMCkpIHsKIAkJYW1kZ3B1X2Jv X3VucGluKHJibyk7Ci0JCWFtZGdwdV9ib191bnJlc2VydmUocmJvKTsKKwkJdHRtX2V1X2JhY2tv ZmZfcmVzZXJ2YXRpb24oJnRpY2tldCwgJmxpc3QpOwogCQlEUk1fRVJST1IoIiVwIGJpbmQgZmFp bGVkXG4iLCByYm8pOwogCQlyZXR1cm4gcjsKIAl9CiAKIAlhbWRncHVfYm9fZ2V0X3RpbGluZ19m bGFncyhyYm8sICZ0aWxpbmdfZmxhZ3MpOwogCi0JYW1kZ3B1X2JvX3VucmVzZXJ2ZShyYm8pOwor CXR0bV9ldV9iYWNrb2ZmX3Jlc2VydmF0aW9uKCZ0aWNrZXQsICZsaXN0KTsKIAogCWFmYi0+YWRk cmVzcyA9IGFtZGdwdV9ib19ncHVfb2Zmc2V0KHJibyk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS90dG0vdHRtX2JvLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCmluZGV4 IDg1MDJiM2VkMmQ4OC4uMmM0OTYzZTEwNWQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v dHRtL3R0bV9iby5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKQEAgLTc2Niwx MSArNzY2LDEzIEBAIEVYUE9SVF9TWU1CT0wodHRtX2JvX2V2aWN0aW9uX3ZhbHVhYmxlKTsKICAq IGIuIE90aGVyd2lzZSwgdHJ5bG9jayBpdC4KICAqLwogc3RhdGljIGJvb2wgdHRtX2JvX2V2aWN0 X3N3YXBvdXRfYWxsb3dhYmxlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCi0JCQlzdHJ1 Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCwgYm9vbCAqbG9ja2VkKQorCQkJc3RydWN0IHR0bV9v cGVyYXRpb25fY3R4ICpjdHgsIGJvb2wgKmxvY2tlZCwgYm9vbCAqYnVzeSkKIHsKIAlib29sIHJl dCA9IGZhbHNlOwogCiAJKmxvY2tlZCA9IGZhbHNlOworCWlmIChidXN5KQorCQkqYnVzeSA9IGZh bHNlOwogCWlmIChiby0+cmVzdiA9PSBjdHgtPnJlc3YpIHsKIAkJcmVzZXJ2YXRpb25fb2JqZWN0 X2Fzc2VydF9oZWxkKGJvLT5yZXN2KTsKIAkJaWYgKGN0eC0+ZmxhZ3MgJiBUVE1fT1BUX0ZMQUdf QUxMT1dfUkVTX0VWSUNUCkBAIC03NzksNiArNzgxLDggQEAgc3RhdGljIGJvb2wgdHRtX2JvX2V2 aWN0X3N3YXBvdXRfYWxsb3dhYmxlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJfSBl bHNlIHsKIAkJKmxvY2tlZCA9IHJlc2VydmF0aW9uX29iamVjdF90cnlsb2NrKGJvLT5yZXN2KTsK IAkJcmV0ID0gKmxvY2tlZDsKKwkJaWYgKCFyZXQgJiYgYnVzeSkKKwkJCSpidXN5ID0gdHJ1ZTsK IAl9CiAKIAlyZXR1cm4gcmV0OwpAQCAtNzkxLDcgKzc5NSw3IEBAIHN0YXRpYyBpbnQgdHRtX21l bV9ldmljdF9maXJzdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwKIHsKIAlzdHJ1Y3QgdHRt X2JvX2dsb2JhbCAqZ2xvYiA9IGJkZXYtPmdsb2I7CiAJc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5h Z2VyICptYW4gPSAmYmRldi0+bWFuW21lbV90eXBlXTsKLQlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvID0gTlVMTDsKKwlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0gTlVMTCwgKmZp cnN0X2JvID0gTlVMTDsKIAlib29sIGxvY2tlZCA9IGZhbHNlOwogCXVuc2lnbmVkIGk7CiAJaW50 IHJldDsKQEAgLTc5OSw4ICs4MDMsMTUgQEAgc3RhdGljIGludCB0dG1fbWVtX2V2aWN0X2ZpcnN0 KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAogCXNwaW5fbG9jaygmZ2xvYi0+bHJ1X2xvY2sp OwogCWZvciAoaSA9IDA7IGkgPCBUVE1fTUFYX0JPX1BSSU9SSVRZOyArK2kpIHsKIAkJbGlzdF9m b3JfZWFjaF9lbnRyeShibywgJm1hbi0+bHJ1W2ldLCBscnUpIHsKLQkJCWlmICghdHRtX2JvX2V2 aWN0X3N3YXBvdXRfYWxsb3dhYmxlKGJvLCBjdHgsICZsb2NrZWQpKQorCQkJYm9vbCBidXN5ID0g ZmFsc2U7CisJCQlpZiAoIXR0bV9ib19ldmljdF9zd2Fwb3V0X2FsbG93YWJsZShibywgY3R4LCAm bG9ja2VkLAorCQkJCQkJCSAgICAmYnVzeSkpIHsKKwkJCQlpZiAoIWZpcnN0X2JvICYmIGJ1c3kp IHsKKwkJCQkJdHRtX2JvX2dldChibyk7CisJCQkJCWZpcnN0X2JvID0gYm87CisJCQkJfQogCQkJ CWNvbnRpbnVlOworCQkJfQogCiAJCQlpZiAocGxhY2UgJiYgIWJkZXYtPmRyaXZlci0+ZXZpY3Rp b25fdmFsdWFibGUoYm8sCiAJCQkJCQkJCSAgICAgIHBsYWNlKSkgewpAQCAtODA4LDYgKzgxOSw3 IEBAIHN0YXRpYyBpbnQgdHRtX21lbV9ldmljdF9maXJzdChzdHJ1Y3QgdHRtX2JvX2RldmljZSAq YmRldiwKIAkJCQkJcmVzZXJ2YXRpb25fb2JqZWN0X3VubG9jayhiby0+cmVzdik7CiAJCQkJY29u dGludWU7CiAJCQl9CisKIAkJCWJyZWFrOwogCQl9CiAKQEAgLTgyMCw3ICs4MzIsNjUgQEAgc3Rh dGljIGludCB0dG1fbWVtX2V2aWN0X2ZpcnN0KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAog CiAJaWYgKCFibykgewogCQlzcGluX3VubG9jaygmZ2xvYi0+bHJ1X2xvY2spOwotCQlyZXR1cm4g LUVCVVNZOworCQkvKiBjaGVjayBpZiBvdGhlciB1c2VyIG9jY3VweSBtZW1vcnkgdG9vIGxvbmcg dGltZSAqLworCQlpZiAoIWZpcnN0X2JvIHx8ICFjdHggfHwgIWN0eC0+cmVzdiB8fCAhY3R4LT5y ZXN2LT5sb2NrLmN0eCkgeworCQkJaWYgKGZpcnN0X2JvKQorCQkJCXR0bV9ib19wdXQoZmlyc3Rf Ym8pOworCQkJcmV0dXJuIC1FQlVTWTsKKwkJfQorCQlpZiAoY3R4LT5pbnRlcnJ1cHRpYmxlKQor CQkJcmV0ID0gd3dfbXV0ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZmaXJzdF9iby0+cmVzdi0+bG9j aywKKwkJCQkJCQkgIGN0eC0+cmVzdi0+bG9jay5jdHgpOworCQllbHNlCisJCQlyZXQgPSB3d19t dXRleF9sb2NrKCZmaXJzdF9iby0+cmVzdi0+bG9jaywgY3R4LT5yZXN2LT5sb2NrLmN0eCk7CisJ CWlmIChyZXQpIHsKKwkJCXR0bV9ib19wdXQoZmlyc3RfYm8pOworCQkJcmV0dXJuIHJldDsKKwkJ fQorCQlzcGluX2xvY2soJmdsb2ItPmxydV9sb2NrKTsKKwkJZm9yIChpID0gMDsgaSA8IFRUTV9N QVhfQk9fUFJJT1JJVFk7ICsraSkgeworCQkJLyogcHJldmlvdXMgYnVzeSByZXN2IGxvY2sgaXMg aGVsZCBieSBhYm92ZSwgaWRsZSBub3csCisJCQkgKiBzbyBsZXQgdGhlbSBldmljdGFibGUuCisJ CQkgKi8KKwkJCXN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCBidXN5X2N0eCA9IHsKKwkJCQkuaW50 ZXJydXB0aWJsZSA9IGN0eC0+aW50ZXJydXB0aWJsZSwKKwkJCQkubm9fd2FpdF9ncHUgICA9IGN0 eC0+bm9fd2FpdF9ncHUsCisJCQkJLnJlc3YJICAgICAgID0gZmlyc3RfYm8tPnJlc3YsCisJCQkJ LmZsYWdzCSAgICAgICA9IFRUTV9PUFRfRkxBR19BTExPV19SRVNfRVZJQ1QKKwkJCX07CisJCQls aXN0X2Zvcl9lYWNoX2VudHJ5KGJvLCAmbWFuLT5scnVbaV0sIGxydSkgeworCQkJCWlmICghdHRt X2JvX2V2aWN0X3N3YXBvdXRfYWxsb3dhYmxlKGJvLAorCQkJCQkJCQkgICAgJmJ1c3lfY3R4LAor CQkJCQkJCQkgICAgJmxvY2tlZCwKKwkJCQkJCQkJICAgIE5VTEwpKQorCQkJCQljb250aW51ZTsK KworCQkJCWlmIChwbGFjZSAmJiAhYmRldi0+ZHJpdmVyLT5ldmljdGlvbl92YWx1YWJsZShibywK KwkJCQkJCQkJICAgICAgcGxhY2UpKSB7CisJCQkJCWlmIChsb2NrZWQpCisJCQkJCQlyZXNlcnZh dGlvbl9vYmplY3RfdW5sb2NrKGJvLT5yZXN2KTsKKwkJCQkJY29udGludWU7CisJCQkJfQorCQkJ CWJyZWFrOworCQkJfQorCQkJLyogSWYgdGhlIGlubmVyIGxvb3AgdGVybWluYXRlZCBlYXJseSwg d2UgaGF2ZSBvdXIgY2FuZGlkYXRlICovCisJCQlpZiAoJmJvLT5scnUgIT0gJm1hbi0+bHJ1W2ld KQorCQkJCWJyZWFrOworCQkJYm8gPSBOVUxMOworCQl9CisJCWlmIChibyAmJiAoYm8tPnJlc3Yg PT0gZmlyc3RfYm8tPnJlc3YpKQorCQkJbG9ja2VkID0gdHJ1ZTsKKwkJZWxzZSBpZiAoYm8pCisJ CQl3d19tdXRleF91bmxvY2soJmZpcnN0X2JvLT5yZXN2LT5sb2NrKTsKKwkJdHRtX2JvX3B1dChm aXJzdF9ibyk7CisJCWZpcnN0X2JvID0gTlVMTDsKKwkJaWYgKCFibykgeworCQkJc3Bpbl91bmxv Y2soJmdsb2ItPmxydV9sb2NrKTsKKwkJCXJldHVybiAtRUJVU1k7CisJCX0KKwl9IGVsc2Ugewor CQlpZiAoZmlyc3RfYm8pCisJCQl0dG1fYm9fcHV0KGZpcnN0X2JvKTsKIAl9CiAKIAlrcmVmX2dl dCgmYm8tPmxpc3Rfa3JlZik7CkBAIC0xNzg0LDcgKzE4NTQsOCBAQCBpbnQgdHRtX2JvX3N3YXBv dXQoc3RydWN0IHR0bV9ib19nbG9iYWwgKmdsb2IsIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAq Y3R4KQogCXNwaW5fbG9jaygmZ2xvYi0+bHJ1X2xvY2spOwogCWZvciAoaSA9IDA7IGkgPCBUVE1f TUFYX0JPX1BSSU9SSVRZOyArK2kpIHsKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeShibywgJmdsb2It PnN3YXBfbHJ1W2ldLCBzd2FwKSB7Ci0JCQlpZiAodHRtX2JvX2V2aWN0X3N3YXBvdXRfYWxsb3dh YmxlKGJvLCBjdHgsICZsb2NrZWQpKSB7CisJCQlpZiAodHRtX2JvX2V2aWN0X3N3YXBvdXRfYWxs b3dhYmxlKGJvLCBjdHgsICZsb2NrZWQsCisJCQkJCQkJICAgTlVMTCkpIHsKIAkJCQlyZXQgPSAw OwogCQkJCWJyZWFrOwogCQkJfQotLSAKMi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWw=