From mboxrd@z Thu Jan 1 00:00:00 1970 From: "=?UTF-8?q?Christian=20K=C3=B6nig?=" Subject: [PATCH 2/3] drm/ttm: always keep BOs on the LRU Date: Wed, 25 Sep 2019 12:55:29 +0200 Message-ID: <20190925105530.2261-2-christian.koenig@amd.com> References: <20190925105530.2261-1-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com [IPv6:2a00:1450:4864:20::342]) by gabe.freedesktop.org (Postfix) with ESMTPS id B5A458997A for ; Wed, 25 Sep 2019 10:55:34 +0000 (UTC) Received: by mail-wm1-x342.google.com with SMTP id 5so4849359wmg.0 for ; Wed, 25 Sep 2019 03:55:34 -0700 (PDT) In-Reply-To: <20190925105530.2261-1-christian.koenig@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: kraxel@redhat.com, daniel@ffwll.ch, thomas_os@shipmail.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org VGhpcyBhbGxvd3MgYmxvY2tpbmcgZm9yIEJPcyB0byBiZWNvbWUgYXZhaWxhYmxlCmluIHRoZSBt ZW1vcnkgbWFuYWdlbWVudC4KCkFtZGdwdSBpcyBkb2luZyB0aGlzIGZvciBxdWl0ZSBhIHdoaWxl IG5vdyBkdXJpbmcgQ1MuIE5vdwphcHBseSB0aGUgbmV3IGJlaGF2aW9yIHRvIGFsbCBkcml2ZXJz IHVzaW5nIFRUTS4KClNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5r b2VuaWdAYW1kLmNvbT4KLS0tCiAuLi4vZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRf Z3B1dm0uYyAgfCAgOSArKy0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3Mu YyAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzYS5j ICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZW0uYyAg ICAgICB8ICA0ICstCiAuLi4vZ3B1L2RybS9hbWQvZGlzcGxheS9hbWRncHVfZG0vYW1kZ3B1X2Rt LmMgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfcmVsZWFzZS5jICAgICAgICAgICAg IHwgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jICAgICAgICAgICB8 ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYyAgICAgICAgfCAg MiArLQogZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYyAgICAgICAgICAgICAgICAgIHwgNDgg KysrKystLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGls LmMgICAgICAgIHwgMjUgKystLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf cmVzb3VyY2UuYyAgICAgIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Zh bGlkYXRpb24uaCAgICB8ICAyICstCiBpbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oICAgICAg ICAgICAgICAgICAgfCAyNCAtLS0tLS0tLS0tCiBpbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZl ci5oICAgICAgICAgICAgICAgfCAyMCArKy0tLS0tLQogaW5jbHVkZS9kcm0vdHRtL3R0bV9leGVj YnVmX3V0aWwuaCAgICAgICAgICAgIHwgIDIgKy0KIDE1IGZpbGVzIGNoYW5nZWQsIDMzIGluc2Vy dGlvbnMoKyksIDExOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dwdXZtLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfYW1ka2ZkX2dwdXZtLmMKaW5kZXggYjliYjM1ZDE2OTllLi5hZDAxYzc0MWNh YWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRf Z3B1dm0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dw dXZtLmMKQEAgLTU4Niw3ICs1ODYsNyBAQCBzdGF0aWMgaW50IHJlc2VydmVfYm9fYW5kX3ZtKHN0 cnVjdCBrZ2RfbWVtICptZW0sCiAJYW1kZ3B1X3ZtX2dldF9wZF9ibyh2bSwgJmN0eC0+bGlzdCwg JmN0eC0+dm1fcGRbMF0pOwogCiAJcmV0ID0gdHRtX2V1X3Jlc2VydmVfYnVmZmVycygmY3R4LT50 aWNrZXQsICZjdHgtPmxpc3QsCi0JCQkJICAgICBmYWxzZSwgJmN0eC0+ZHVwbGljYXRlcywgdHJ1 ZSk7CisJCQkJICAgICBmYWxzZSwgJmN0eC0+ZHVwbGljYXRlcyk7CiAJaWYgKCFyZXQpCiAJCWN0 eC0+cmVzZXJ2ZWQgPSB0cnVlOwogCWVsc2UgewpAQCAtNjU5LDcgKzY1OSw3IEBAIHN0YXRpYyBp bnQgcmVzZXJ2ZV9ib19hbmRfY29uZF92bXMoc3RydWN0IGtnZF9tZW0gKm1lbSwKIAl9CiAKIAly ZXQgPSB0dG1fZXVfcmVzZXJ2ZV9idWZmZXJzKCZjdHgtPnRpY2tldCwgJmN0eC0+bGlzdCwKLQkJ CQkgICAgIGZhbHNlLCAmY3R4LT5kdXBsaWNhdGVzLCB0cnVlKTsKKwkJCQkgICAgIGZhbHNlLCAm Y3R4LT5kdXBsaWNhdGVzKTsKIAlpZiAoIXJldCkKIAkJY3R4LT5yZXNlcnZlZCA9IHRydWU7CiAJ ZWxzZQpAQCAtMTc5Niw4ICsxNzk2LDcgQEAgc3RhdGljIGludCB2YWxpZGF0ZV9pbnZhbGlkX3Vz ZXJfcGFnZXMoc3RydWN0IGFtZGtmZF9wcm9jZXNzX2luZm8gKnByb2Nlc3NfaW5mbykKIAl9CiAK IAkvKiBSZXNlcnZlIGFsbCBCT3MgYW5kIHBhZ2UgdGFibGVzIGZvciB2YWxpZGF0aW9uICovCi0J cmV0ID0gdHRtX2V1X3Jlc2VydmVfYnVmZmVycygmdGlja2V0LCAmcmVzdl9saXN0LCBmYWxzZSwg JmR1cGxpY2F0ZXMsCi0JCQkJICAgICB0cnVlKTsKKwlyZXQgPSB0dG1fZXVfcmVzZXJ2ZV9idWZm ZXJzKCZ0aWNrZXQsICZyZXN2X2xpc3QsIGZhbHNlLCAmZHVwbGljYXRlcyk7CiAJV0FSTighbGlz dF9lbXB0eSgmZHVwbGljYXRlcyksICJEdXBsaWNhdGVzIHNob3VsZCBiZSBlbXB0eSIpOwogCWlm IChyZXQpCiAJCWdvdG8gb3V0X2ZyZWU7CkBAIC0xOTk1LDcgKzE5OTQsNyBAQCBpbnQgYW1kZ3B1 X2FtZGtmZF9ncHV2bV9yZXN0b3JlX3Byb2Nlc3NfYm9zKHZvaWQgKmluZm8sIHN0cnVjdCBkbWFf ZmVuY2UgKiplZikKIAl9CiAKIAlyZXQgPSB0dG1fZXVfcmVzZXJ2ZV9idWZmZXJzKCZjdHgudGlj a2V0LCAmY3R4Lmxpc3QsCi0JCQkJICAgICBmYWxzZSwgJmR1cGxpY2F0ZV9zYXZlLCB0cnVlKTsK KwkJCQkgICAgIGZhbHNlLCAmZHVwbGljYXRlX3NhdmUpOwogCWlmIChyZXQpIHsKIAkJcHJfZGVi dWcoIk1lbW9yeSBldmljdGlvbjogVFRNIFJlc2VydmUgRmFpbGVkLiBUcnkgYWdhaW5cbiIpOwog CQlnb3RvIHR0bV9yZXNlcnZlX2ZhaWw7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfY3MuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9j cy5jCmluZGV4IDk1ZWM5NjVmY2MyZC4uODJmMjM5YWM0MDUwIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3MuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfY3MuYwpAQCAtNjUwLDcgKzY1MCw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1 X2NzX3BhcnNlcl9ib3Moc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnAsCiAJfQogCiAJciA9IHR0 bV9ldV9yZXNlcnZlX2J1ZmZlcnMoJnAtPnRpY2tldCwgJnAtPnZhbGlkYXRlZCwgdHJ1ZSwKLQkJ CQkgICAmZHVwbGljYXRlcywgZmFsc2UpOworCQkJCSAgICZkdXBsaWNhdGVzKTsKIAlpZiAodW5s aWtlbHkociAhPSAwKSkgewogCQlpZiAociAhPSAtRVJFU1RBUlRTWVMpCiAJCQlEUk1fRVJST1Io InR0bV9ldV9yZXNlcnZlX2J1ZmZlcnMgZmFpbGVkLlxuIik7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3NhLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfY3NhLmMKaW5kZXggNjA1ZjgzMDQ2MDM5Li5iMTYwOGQ0NzUwOGYgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jc2EuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3NhLmMKQEAgLTgwLDcgKzgwLDcgQEAgaW50 IGFtZGdwdV9tYXBfc3RhdGljX2NzYShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgc3RydWN0 IGFtZGdwdV92bSAqdm0sCiAJbGlzdF9hZGQoJmNzYV90di5oZWFkLCAmbGlzdCk7CiAJYW1kZ3B1 X3ZtX2dldF9wZF9ibyh2bSwgJmxpc3QsICZwZCk7CiAKLQlyID0gdHRtX2V1X3Jlc2VydmVfYnVm ZmVycygmdGlja2V0LCAmbGlzdCwgdHJ1ZSwgTlVMTCwgZmFsc2UpOworCXIgPSB0dG1fZXVfcmVz ZXJ2ZV9idWZmZXJzKCZ0aWNrZXQsICZsaXN0LCB0cnVlLCBOVUxMKTsKIAlpZiAocikgewogCQlE Uk1fRVJST1IoImZhaWxlZCB0byByZXNlcnZlIENTQSxQRCBCT3M6IGVycj0lZFxuIiwgcik7CiAJ CXJldHVybiByOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dlbS5jCmluZGV4IGIy NWE1OWM0YmVjNi4uY2JmYjNlODRmMzUyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfZ2VtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2dlbS5jCkBAIC0xNzUsNyArMTc1LDcgQEAgdm9pZCBhbWRncHVfZ2VtX29iamVjdF9jbG9z ZShzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKIAogCWFtZGdwdV92bV9nZXRfcGRfYm8odm0s ICZsaXN0LCAmdm1fcGQpOwogCi0JciA9IHR0bV9ldV9yZXNlcnZlX2J1ZmZlcnMoJnRpY2tldCwg Jmxpc3QsIGZhbHNlLCAmZHVwbGljYXRlcywgZmFsc2UpOworCXIgPSB0dG1fZXVfcmVzZXJ2ZV9i dWZmZXJzKCZ0aWNrZXQsICZsaXN0LCBmYWxzZSwgJmR1cGxpY2F0ZXMpOwogCWlmIChyKSB7CiAJ CWRldl9lcnIoYWRldi0+ZGV2LCAibGVha2luZyBibyB2YSBiZWNhdXNlICIKIAkJCSJ3ZSBmYWls IHRvIHJlc2VydmUgYm8gKCVkKVxuIiwgcik7CkBAIC02MTEsNyArNjExLDcgQEAgaW50IGFtZGdw dV9nZW1fdmFfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAogCWFt ZGdwdV92bV9nZXRfcGRfYm8oJmZwcml2LT52bSwgJmxpc3QsICZ2bV9wZCk7CiAKLQlyID0gdHRt X2V1X3Jlc2VydmVfYnVmZmVycygmdGlja2V0LCAmbGlzdCwgdHJ1ZSwgJmR1cGxpY2F0ZXMsIGZh bHNlKTsKKwlyID0gdHRtX2V1X3Jlc2VydmVfYnVmZmVycygmdGlja2V0LCAmbGlzdCwgdHJ1ZSwg JmR1cGxpY2F0ZXMpOwogCWlmIChyKQogCQlnb3RvIGVycm9yX3VucmVmOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rpc3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9kaXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYwppbmRleCA1ZGYy ZWUxZTEwZDguLjc2MDA3OGI5OTI1YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9k aXNwbGF5L2FtZGdwdV9kbS9hbWRncHVfZG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Rp c3BsYXkvYW1kZ3B1X2RtL2FtZGdwdV9kbS5jCkBAIC00NDM5LDcgKzQ0MzksNyBAQCBzdGF0aWMg aW50IGRtX3BsYW5lX2hlbHBlcl9wcmVwYXJlX2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAog CXR2Lm51bV9zaGFyZWQgPSAxOwogCWxpc3RfYWRkKCZ0di5oZWFkLCAmbGlzdCk7CiAKLQlyID0g dHRtX2V1X3Jlc2VydmVfYnVmZmVycygmdGlja2V0LCAmbGlzdCwgZmFsc2UsIE5VTEwsIHRydWUp OworCXIgPSB0dG1fZXVfcmVzZXJ2ZV9idWZmZXJzKCZ0aWNrZXQsICZsaXN0LCBmYWxzZSwgTlVM TCk7CiAJaWYgKHIpIHsKIAkJZGV2X2VycihhZGV2LT5kZXYsICJmYWlsIHRvIHJlc2VydmUgYm8g KCVkKVxuIiwgcik7CiAJCXJldHVybiByOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3F4 bC9xeGxfcmVsZWFzZS5jIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfcmVsZWFzZS5jCmluZGV4 IGFhN2EyODc5NTY0NS4uNzFmMWI1MWExMzUwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v cXhsL3F4bF9yZWxlYXNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfcmVsZWFzZS5j CkBAIC0yNjAsNyArMjYwLDcgQEAgaW50IHF4bF9yZWxlYXNlX3Jlc2VydmVfbGlzdChzdHJ1Y3Qg cXhsX3JlbGVhc2UgKnJlbGVhc2UsIGJvb2wgbm9faW50cikKIAkJcmV0dXJuIDA7CiAKIAlyZXQg PSB0dG1fZXVfcmVzZXJ2ZV9idWZmZXJzKCZyZWxlYXNlLT50aWNrZXQsICZyZWxlYXNlLT5ib3Ms Ci0JCQkJICAgICAhbm9faW50ciwgTlVMTCwgdHJ1ZSk7CisJCQkJICAgICAhbm9faW50ciwgTlVM TCk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJldDsKIApAQCAtNDU5LDcgKzQ1OSw3IEBAIHZvaWQg cXhsX3JlbGVhc2VfZmVuY2VfYnVmZmVyX29iamVjdHMoc3RydWN0IHF4bF9yZWxlYXNlICpyZWxl YXNlKQogCQlibyA9IGVudHJ5LT5ibzsKIAogCQlkbWFfcmVzdl9hZGRfc2hhcmVkX2ZlbmNlKGJv LT5iYXNlLnJlc3YsICZyZWxlYXNlLT5iYXNlKTsKLQkJdHRtX2JvX2FkZF90b19scnUoYm8pOwor CQl0dG1fYm9fbW92ZV90b19scnVfdGFpbChibywgTlVMTCk7CiAJCWRtYV9yZXN2X3VubG9jayhi by0+YmFzZS5yZXN2KTsKIAl9CiAJc3Bpbl91bmxvY2soJmdsb2ItPmxydV9sb2NrKTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jIGIvZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yYWRlb25fZ2VtLmMKaW5kZXggYzQ4YzJmYjM1NDU2Li44NzllYWM2N2NkZDcg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2dlbS5jCkBAIC01NjQsNyArNTY0LDcgQEAgc3Rh dGljIHZvaWQgcmFkZW9uX2dlbV92YV91cGRhdGVfdm0oc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJk ZXYsCiAJaWYgKCF2bV9ib3MpCiAJCXJldHVybjsKIAotCXIgPSB0dG1fZXVfcmVzZXJ2ZV9idWZm ZXJzKCZ0aWNrZXQsICZsaXN0LCB0cnVlLCBOVUxMLCB0cnVlKTsKKwlyID0gdHRtX2V1X3Jlc2Vy dmVfYnVmZmVycygmdGlja2V0LCAmbGlzdCwgdHJ1ZSwgTlVMTCk7CiAJaWYgKHIpCiAJCWdvdG8g ZXJyb3JfZnJlZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f b2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3QuYwppbmRleCA2 NTNmZDc5MzdiMzkuLmE5NGQ4MjdiYTk3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9yYWRlb25fb2JqZWN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f b2JqZWN0LmMKQEAgLTU0Miw3ICs1NDIsNyBAQCBpbnQgcmFkZW9uX2JvX2xpc3RfdmFsaWRhdGUo c3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJdTY0IGJ5dGVzX21vdmVkX3RocmVzaG9sZCA9 IHJhZGVvbl9ib19nZXRfdGhyZXNob2xkX2Zvcl9tb3ZlcyhyZGV2KTsKIAogCUlOSVRfTElTVF9I RUFEKCZkdXBsaWNhdGVzKTsKLQlyID0gdHRtX2V1X3Jlc2VydmVfYnVmZmVycyh0aWNrZXQsIGhl YWQsIHRydWUsICZkdXBsaWNhdGVzLCB0cnVlKTsKKwlyID0gdHRtX2V1X3Jlc2VydmVfYnVmZmVy cyh0aWNrZXQsIGhlYWQsIHRydWUsICZkdXBsaWNhdGVzKTsKIAlpZiAodW5saWtlbHkociAhPSAw KSkgewogCQlyZXR1cm4gcjsKIAl9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV9iby5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwppbmRleCAwMmYzMDFlMWZmMjku LmFiOTk2N2I4NGUwYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCkBAIC0xOTIsMTggKzE5MiwxMiBAQCBz dGF0aWMgdm9pZCB0dG1fYm9fYWRkX21lbV90b19scnUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibywKIAl9CiB9CiAKLXZvaWQgdHRtX2JvX2FkZF90b19scnUoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibykKLXsKLQl0dG1fYm9fYWRkX21lbV90b19scnUoYm8sICZiby0+bWVtKTsKLX0K LUVYUE9SVF9TWU1CT0wodHRtX2JvX2FkZF90b19scnUpOwotCiBzdGF0aWMgdm9pZCB0dG1fYm9f cmVmX2J1ZyhzdHJ1Y3Qga3JlZiAqbGlzdF9rcmVmKQogewogCUJVRygpOwogfQogCi12b2lkIHR0 bV9ib19kZWxfZnJvbV9scnUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKK3N0YXRpYyB2 b2lkIHR0bV9ib19kZWxfZnJvbV9scnUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKIHsK IAlzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiA9IGJvLT5iZGV2OwogCWJvb2wgbm90aWZ5ID0g ZmFsc2U7CkBAIC0yMjMsMTYgKzIxNyw2IEBAIHZvaWQgdHRtX2JvX2RlbF9mcm9tX2xydShzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQogCQliZGV2LT5kcml2ZXItPmRlbF9mcm9tX2xydV9u b3RpZnkoYm8pOwogfQogCi12b2lkIHR0bV9ib19kZWxfc3ViX2Zyb21fbHJ1KHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqYm8pCi17Ci0Jc3RydWN0IHR0bV9ib19nbG9iYWwgKmdsb2IgPSBiby0+ YmRldi0+Z2xvYjsKLQotCXNwaW5fbG9jaygmZ2xvYi0+bHJ1X2xvY2spOwotCXR0bV9ib19kZWxf ZnJvbV9scnUoYm8pOwotCXNwaW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7Ci19Ci1FWFBPUlRf U1lNQk9MKHR0bV9ib19kZWxfc3ViX2Zyb21fbHJ1KTsKLQogc3RhdGljIHZvaWQgdHRtX2JvX2J1 bGtfbW92ZV9zZXRfcG9zKHN0cnVjdCB0dG1fbHJ1X2J1bGtfbW92ZV9wb3MgKnBvcywKIAkJCQkg ICAgIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCiB7CkBAIC0yNDcsNyArMjMxLDcgQEAg dm9pZCB0dG1fYm9fbW92ZV90b19scnVfdGFpbChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv LAogCWRtYV9yZXN2X2Fzc2VydF9oZWxkKGJvLT5iYXNlLnJlc3YpOwogCiAJdHRtX2JvX2RlbF9m cm9tX2xydShibyk7Ci0JdHRtX2JvX2FkZF90b19scnUoYm8pOworCXR0bV9ib19hZGRfbWVtX3Rv X2xydShibywgJmJvLT5tZW0pOwogCiAJaWYgKGJ1bGsgJiYgIShiby0+bWVtLnBsYWNlbWVudCAm IFRUTV9QTF9GTEFHX05PX0VWSUNUKSkgewogCQlzd2l0Y2ggKGJvLT5tZW0ubWVtX3R5cGUpIHsK QEAgLTUxMSw3ICs0OTUsNyBAQCBzdGF0aWMgdm9pZCB0dG1fYm9fY2xlYW51cF9yZWZzX29yX3F1 ZXVlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCiAJCSAqLwogCQlpZiAoYm8tPm1lbS5w bGFjZW1lbnQgJiBUVE1fUExfRkxBR19OT19FVklDVCkgewogCQkJYm8tPm1lbS5wbGFjZW1lbnQg Jj0gflRUTV9QTF9GTEFHX05PX0VWSUNUOwotCQkJdHRtX2JvX2FkZF90b19scnUoYm8pOworCQkJ dHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoYm8sIE5VTEwpOwogCQl9CiAKIAkJZG1hX3Jlc3ZfdW5s b2NrKGJvLT5iYXNlLnJlc3YpOwpAQCAtODkyLDE3ICs4NzYsMTEgQEAgc3RhdGljIGludCB0dG1f bWVtX2V2aWN0X2ZpcnN0KHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAogCQlyZXR1cm4gcmV0 OwogCX0KIAotCXR0bV9ib19kZWxfZnJvbV9scnUoYm8pOwogCXNwaW5fdW5sb2NrKCZnbG9iLT5s cnVfbG9jayk7CiAKIAlyZXQgPSB0dG1fYm9fZXZpY3QoYm8sIGN0eCk7Ci0JaWYgKGxvY2tlZCkg eworCWlmIChsb2NrZWQpCiAJCXR0bV9ib191bnJlc2VydmUoYm8pOwotCX0gZWxzZSB7Ci0JCXNw aW5fbG9jaygmZ2xvYi0+bHJ1X2xvY2spOwotCQl0dG1fYm9fYWRkX3RvX2xydShibyk7Ci0JCXNw aW5fdW5sb2NrKCZnbG9iLT5scnVfbG9jayk7Ci0JfQogCiAJa3JlZl9wdXQoJmJvLT5saXN0X2ty ZWYsIHR0bV9ib19yZWxlYXNlX2xpc3QpOwogCXJldHVybiByZXQ7CkBAIC0xMDY0LDEyICsxMDQy LDEwIEBAIHN0YXRpYyBpbnQgdHRtX2JvX21lbV9wbGFjZW1lbnQoc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibywKIAltZW0tPm1lbV90eXBlID0gbWVtX3R5cGU7CiAJbWVtLT5wbGFjZW1lbnQg PSBjdXJfZmxhZ3M7CiAKLQlpZiAoYm8tPm1lbS5tZW1fdHlwZSA8IG1lbV90eXBlICYmICFsaXN0 X2VtcHR5KCZiby0+bHJ1KSkgewotCQlzcGluX2xvY2soJmJvLT5iZGV2LT5nbG9iLT5scnVfbG9j ayk7Ci0JCXR0bV9ib19kZWxfZnJvbV9scnUoYm8pOwotCQl0dG1fYm9fYWRkX21lbV90b19scnUo Ym8sIG1lbSk7Ci0JCXNwaW5fdW5sb2NrKCZiby0+YmRldi0+Z2xvYi0+bHJ1X2xvY2spOwotCX0K KwlzcGluX2xvY2soJmJvLT5iZGV2LT5nbG9iLT5scnVfbG9jayk7CisJdHRtX2JvX2RlbF9mcm9t X2xydShibyk7CisJdHRtX2JvX2FkZF9tZW1fdG9fbHJ1KGJvLCBtZW0pOworCXNwaW5fdW5sb2Nr KCZiby0+YmRldi0+Z2xvYi0+bHJ1X2xvY2spOwogCiAJcmV0dXJuIDA7CiB9CkBAIC0xMzc1LDEx ICsxMzUxLDkgQEAgaW50IHR0bV9ib19pbml0X3Jlc2VydmVkKHN0cnVjdCB0dG1fYm9fZGV2aWNl ICpiZGV2LAogCQlyZXR1cm4gcmV0OwogCX0KIAotCWlmIChyZXN2ICYmICEoYm8tPm1lbS5wbGFj ZW1lbnQgJiBUVE1fUExfRkxBR19OT19FVklDVCkpIHsKLQkJc3Bpbl9sb2NrKCZiZGV2LT5nbG9i LT5scnVfbG9jayk7Ci0JCXR0bV9ib19hZGRfdG9fbHJ1KGJvKTsKLQkJc3Bpbl91bmxvY2soJmJk ZXYtPmdsb2ItPmxydV9sb2NrKTsKLQl9CisJc3Bpbl9sb2NrKCZiZGV2LT5nbG9iLT5scnVfbG9j ayk7CisJdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoYm8sIE5VTEwpOworCXNwaW5fdW5sb2NrKCZi ZGV2LT5nbG9iLT5scnVfbG9jayk7CiAKIAlyZXR1cm4gcmV0OwogfQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGlsLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9leGVjYnVmX3V0aWwuYwppbmRleCA3MTE0OGM4M2NjNGYuLmIwOWMyYzhjYWYxMyAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGlsLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGlsLmMKQEAgLTMzLDE2ICszMyw2IEBACiAj aW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KIAotc3Rh dGljIHZvaWQgdHRtX2V1X2RlbF9mcm9tX2xydV9sb2NrZWQoc3RydWN0IGxpc3RfaGVhZCAqbGlz dCkKLXsKLQlzdHJ1Y3QgdHRtX3ZhbGlkYXRlX2J1ZmZlciAqZW50cnk7Ci0KLQlsaXN0X2Zvcl9l YWNoX2VudHJ5KGVudHJ5LCBsaXN0LCBoZWFkKSB7Ci0JCXN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8gPSBlbnRyeS0+Ym87Ci0JCXR0bV9ib19kZWxfZnJvbV9scnUoYm8pOwotCX0KLX0KLQog dm9pZCB0dG1fZXVfYmFja29mZl9yZXNlcnZhdGlvbihzdHJ1Y3QgZG1hX3Jlc3ZfY3R4ICp0aWNr ZXQsCiAJCQkJc3RydWN0IGxpc3RfaGVhZCAqbGlzdCkKIHsKQEAgLTU5LDggKzQ5LDcgQEAgdm9p ZCB0dG1fZXVfYmFja29mZl9yZXNlcnZhdGlvbihzdHJ1Y3QgZG1hX3Jlc3ZfY3R4ICp0aWNrZXQs CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShlbnRyeSwgbGlzdCwgaGVhZCkgewogCQlzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvID0gZW50cnktPmJvOwogCi0JCWlmIChsaXN0X2VtcHR5KCZiby0+ bHJ1KSkKLQkJCXR0bV9ib19hZGRfdG9fbHJ1KGJvKTsKKwkJdHRtX2JvX21vdmVfdG9fbHJ1X3Rh aWwoYm8sIE5VTEwpOwogCQlpZiAoIXRpY2tldCkKIAkJCWRtYV9yZXN2X3VubG9jayhiby0+YmFz ZS5yZXN2KTsKIAl9CkBAIC04Nyw3ICs3Niw3IEBAIEVYUE9SVF9TWU1CT0wodHRtX2V1X2JhY2tv ZmZfcmVzZXJ2YXRpb24pOwogCiBpbnQgdHRtX2V1X3Jlc2VydmVfYnVmZmVycyhzdHJ1Y3QgZG1h X3Jlc3ZfY3R4ICp0aWNrZXQsCiAJCQkgICBzdHJ1Y3QgbGlzdF9oZWFkICpsaXN0LCBib29sIGlu dHIsCi0JCQkgICBzdHJ1Y3QgbGlzdF9oZWFkICpkdXBzLCBib29sIGRlbF9scnUpCisJCQkgICBz dHJ1Y3QgbGlzdF9oZWFkICpkdXBzKQogewogCXN0cnVjdCB0dG1fdmFsaWRhdGVfYnVmZmVyICpl bnRyeTsKIAlzdHJ1Y3QgdHRtX2JvX2dsb2JhbCAqZ2xvYjsKQEAgLTE0MiwxMSArMTMxLDYgQEAg aW50IHR0bV9ldV9yZXNlcnZlX2J1ZmZlcnMoc3RydWN0IGRtYV9yZXN2X2N0eCAqdGlja2V0LAog CQl9CiAJfQogCi0JaWYgKGRlbF9scnUpIHsKLQkJc3Bpbl9sb2NrKCZnbG9iLT5scnVfbG9jayk7 Ci0JCXR0bV9ldV9kZWxfZnJvbV9scnVfbG9ja2VkKGxpc3QpOwotCQlzcGluX3VubG9jaygmZ2xv Yi0+bHJ1X2xvY2spOwotCX0KIAlyZXR1cm4gMDsKIAogZXJyb3I6CkBAIC0xODYsMTAgKzE3MCw3 IEBAIHZvaWQgdHRtX2V1X2ZlbmNlX2J1ZmZlcl9vYmplY3RzKHN0cnVjdCBkbWFfcmVzdl9jdHgg KnRpY2tldCwKIAkJCWRtYV9yZXN2X2FkZF9zaGFyZWRfZmVuY2UoYm8tPmJhc2UucmVzdiwgZmVu Y2UpOwogCQllbHNlCiAJCQlkbWFfcmVzdl9hZGRfZXhjbF9mZW5jZShiby0+YmFzZS5yZXN2LCBm ZW5jZSk7Ci0JCWlmIChsaXN0X2VtcHR5KCZiby0+bHJ1KSkKLQkJCXR0bV9ib19hZGRfdG9fbHJ1 KGJvKTsKLQkJZWxzZQotCQkJdHRtX2JvX21vdmVfdG9fbHJ1X3RhaWwoYm8sIE5VTEwpOworCQl0 dG1fYm9fbW92ZV90b19scnVfdGFpbChibywgTlVMTCk7CiAJCWlmICghdGlja2V0KQogCQkJZG1h X3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF9yZXNvdXJjZS5jCmluZGV4IDJkN2M1YWQyNTM1OS4uMWQ1M2E2OTgxOWU1IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMKQEAgLTQ2NCw4ICs0NjQsNyBAQCB2 bXdfcmVzb3VyY2VfY2hlY2tfYnVmZmVyKHN0cnVjdCBkbWFfcmVzdl9jdHggKnRpY2tldCwKIAl2 YWxfYnVmLT5ibyA9ICZyZXMtPmJhY2t1cC0+YmFzZTsKIAl2YWxfYnVmLT5udW1fc2hhcmVkID0g MDsKIAlsaXN0X2FkZF90YWlsKCZ2YWxfYnVmLT5oZWFkLCAmdmFsX2xpc3QpOwotCXJldCA9IHR0 bV9ldV9yZXNlcnZlX2J1ZmZlcnModGlja2V0LCAmdmFsX2xpc3QsIGludGVycnVwdGlibGUsIE5V TEwsCi0JCQkJICAgICB0cnVlKTsKKwlyZXQgPSB0dG1fZXVfcmVzZXJ2ZV9idWZmZXJzKHRpY2tl dCwgJnZhbF9saXN0LCBpbnRlcnJ1cHRpYmxlLCBOVUxMKTsKIAlpZiAodW5saWtlbHkocmV0ICE9 IDApKQogCQlnb3RvIG91dF9ub19yZXNlcnZlOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF92YWxpZGF0aW9uLmggYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF92YWxpZGF0aW9uLmgKaW5kZXggNDNmNDhkZjM4NDRmLi5lYmI1YjY4YjVjMWYgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3ZhbGlkYXRpb24uaAorKysgYi9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF92YWxpZGF0aW9uLmgKQEAgLTE2OSw3ICsxNjks NyBAQCB2bXdfdmFsaWRhdGlvbl9ib19yZXNlcnZlKHN0cnVjdCB2bXdfdmFsaWRhdGlvbl9jb250 ZXh0ICpjdHgsCiAJCQkgIGJvb2wgaW50cikKIHsKIAlyZXR1cm4gdHRtX2V1X3Jlc2VydmVfYnVm ZmVycygmY3R4LT50aWNrZXQsICZjdHgtPmJvX2xpc3QsIGludHIsCi0JCQkJICAgICAgTlVMTCwg dHJ1ZSk7CisJCQkJICAgICAgTlVMTCk7CiB9CiAKIC8qKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k cm0vdHRtL3R0bV9ib19hcGkuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmgKaW5kZXgg NDNjNDkyOWEyMTcxLi4yODhmZDY0YjcyMTkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL3R0bS90 dG1fYm9fYXBpLmgKKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaApAQCAtMzY3LDMw ICszNjcsNiBAQCBpbnQgdHRtX2JvX3ZhbGlkYXRlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAq Ym8sCiAgKi8KIHZvaWQgdHRtX2JvX3B1dChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKTsK IAotLyoqCi0gKiB0dG1fYm9fYWRkX3RvX2xydQotICoKLSAqIEBibzogVGhlIGJ1ZmZlciBvYmpl Y3QuCi0gKgotICogQWRkIHRoaXMgYm8gdG8gdGhlIHJlbGV2YW50IG1lbSB0eXBlIGxydSBhbmQs IGlmIGl0J3MgYmFja2VkIGJ5Ci0gKiBzeXN0ZW0gcGFnZXMgKHR0bXMpIHRvIHRoZSBzd2FwIGxp c3QuCi0gKiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIHdpdGggc3RydWN0IHR0bV9ib19n bG9iYWw6OmxydV9sb2NrIGhlbGQsIGFuZAotICogaXMgdHlwaWNhbGx5IGNhbGxlZCBpbW1lZGlh dGVseSBwcmlvciB0byB1bnJlc2VydmluZyBhIGJvLgotICovCi12b2lkIHR0bV9ib19hZGRfdG9f bHJ1KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pOwotCi0vKioKLSAqIHR0bV9ib19kZWxf ZnJvbV9scnUKLSAqCi0gKiBAYm86IFRoZSBidWZmZXIgb2JqZWN0LgotICoKLSAqIFJlbW92ZSB0 aGlzIGJvIGZyb20gYWxsIGxydSBsaXN0cyB1c2VkIHRvIGxvb2t1cCBhbmQgcmVzZXJ2ZSBhbiBv YmplY3QuCi0gKiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIHdpdGggc3RydWN0IHR0bV9i b19nbG9iYWw6OmxydV9sb2NrIGhlbGQsCi0gKiBhbmQgaXMgdXN1YWxseSBjYWxsZWQganVzdCBp bW1lZGlhdGVseSBhZnRlciB0aGUgYm8gaGFzIGJlZW4gcmVzZXJ2ZWQgdG8KLSAqIGF2b2lkIHJl Y3Vyc2l2ZSByZXNlcnZhdGlvbiBmcm9tIGxydSBsaXN0cy4KLSAqLwotdm9pZCB0dG1fYm9fZGVs X2Zyb21fbHJ1KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pOwotCiAvKioKICAqIHR0bV9i b19tb3ZlX3RvX2xydV90YWlsCiAgKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9i b19kcml2ZXIuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKaW5kZXggNGUzMDdm NjVmNDk3Li40MzMyY2MwMzY0ODMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9f ZHJpdmVyLmgKKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaApAQCAtNjIxLDkg KzYyMSw2IEBAIHZvaWQgdHRtX21lbV9pb19mcmVlX3ZtKHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8pOwogaW50IHR0bV9tZW1faW9fbG9jayhzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIg Km1hbiwgYm9vbCBpbnRlcnJ1cHRpYmxlKTsKIHZvaWQgdHRtX21lbV9pb191bmxvY2soc3RydWN0 IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4pOwogCi12b2lkIHR0bV9ib19kZWxfc3ViX2Zyb21f bHJ1KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pOwotdm9pZCB0dG1fYm9fYWRkX3RvX2xy dShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKTsKLQogLyoqCiAgKiBfX3R0bV9ib19yZXNl cnZlOgogICoKQEAgLTcxNywxNSArNzE0LDkgQEAgc3RhdGljIGlubGluZSBpbnQgdHRtX2JvX3Jl c2VydmUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJCQkgYm9vbCBpbnRlcnJ1cHRp YmxlLCBib29sIG5vX3dhaXQsCiAJCQkJIHN0cnVjdCB3d19hY3F1aXJlX2N0eCAqdGlja2V0KQog ewotCWludCByZXQ7Ci0KIAlXQVJOX09OKCFrcmVmX3JlYWQoJmJvLT5rcmVmKSk7CiAKLQlyZXQg PSBfX3R0bV9ib19yZXNlcnZlKGJvLCBpbnRlcnJ1cHRpYmxlLCBub193YWl0LCB0aWNrZXQpOwot CWlmIChsaWtlbHkocmV0ID09IDApKQotCQl0dG1fYm9fZGVsX3N1Yl9mcm9tX2xydShibyk7Ci0K LQlyZXR1cm4gcmV0OworCXJldHVybiBfX3R0bV9ib19yZXNlcnZlKGJvLCBpbnRlcnJ1cHRpYmxl LCBub193YWl0LCB0aWNrZXQpOwogfQogCiAvKioKQEAgLTc1Miw5ICs3NDMsNyBAQCBzdGF0aWMg aW5saW5lIGludCB0dG1fYm9fcmVzZXJ2ZV9zbG93cGF0aChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmpl Y3QgKmJvLAogCWVsc2UKIAkJZG1hX3Jlc3ZfbG9ja19zbG93KGJvLT5iYXNlLnJlc3YsIHRpY2tl dCk7CiAKLQlpZiAobGlrZWx5KHJldCA9PSAwKSkKLQkJdHRtX2JvX2RlbF9zdWJfZnJvbV9scnUo Ym8pOwotCWVsc2UgaWYgKHJldCA9PSAtRUlOVFIpCisJaWYgKHJldCA9PSAtRUlOVFIpCiAJCXJl dCA9IC1FUkVTVEFSVFNZUzsKIAogCXJldHVybiByZXQ7CkBAIC03NzAsMTAgKzc1OSw3IEBAIHN0 YXRpYyBpbmxpbmUgaW50IHR0bV9ib19yZXNlcnZlX3Nsb3dwYXRoKHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8sCiBzdGF0aWMgaW5saW5lIHZvaWQgdHRtX2JvX3VucmVzZXJ2ZShzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QgKmJvKQogewogCXNwaW5fbG9jaygmYm8tPmJkZXYtPmdsb2ItPmxy dV9sb2NrKTsKLQlpZiAobGlzdF9lbXB0eSgmYm8tPmxydSkpCi0JCXR0bV9ib19hZGRfdG9fbHJ1 KGJvKTsKLQllbHNlCi0JCXR0bV9ib19tb3ZlX3RvX2xydV90YWlsKGJvLCBOVUxMKTsKKwl0dG1f Ym9fbW92ZV90b19scnVfdGFpbChibywgTlVMTCk7CiAJc3Bpbl91bmxvY2soJmJvLT5iZGV2LT5n bG9iLT5scnVfbG9jayk7CiAJZG1hX3Jlc3ZfdW5sb2NrKGJvLT5iYXNlLnJlc3YpOwogfQpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuaCBiL2luY2x1ZGUvZHJt L3R0bS90dG1fZXhlY2J1Zl91dGlsLmgKaW5kZXggNGU4NmI2ZmQ2YzU3Li4xYTM1NTNhYzUzYjEg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL3R0bS90dG1fZXhlY2J1Zl91dGlsLmgKKysrIGIvaW5j bHVkZS9kcm0vdHRtL3R0bV9leGVjYnVmX3V0aWwuaApAQCAtMTAwLDcgKzEwMCw3IEBAIGV4dGVy biB2b2lkIHR0bV9ldV9iYWNrb2ZmX3Jlc2VydmF0aW9uKHN0cnVjdCBkbWFfcmVzdl9jdHggKnRp Y2tldCwKIAogZXh0ZXJuIGludCB0dG1fZXVfcmVzZXJ2ZV9idWZmZXJzKHN0cnVjdCBkbWFfcmVz dl9jdHggKnRpY2tldCwKIAkJCQkgIHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QsIGJvb2wgaW50ciwK LQkJCQkgIHN0cnVjdCBsaXN0X2hlYWQgKmR1cHMsIGJvb2wgZGVsX2xydSk7CisJCQkJICBzdHJ1 Y3QgbGlzdF9oZWFkICpkdXBzKTsKIAogLyoqCiAgKiBmdW5jdGlvbiB0dG1fZXVfZmVuY2VfYnVm ZmVyX29iamVjdHMuCi0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2RyaS1kZXZlbA==