From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v4 30/38] drm: Compute tight evictions for drm_mm_scan Date: Thu, 22 Dec 2016 08:36:33 +0000 Message-ID: <20161222083641.2691-31-chris@chris-wilson.co.uk> References: <20161222083641.2691-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20161222083641.2691-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org Q29tcHV0ZSB0aGUgbWluaW1hbCByZXF1aXJlZCBob2xlIGR1cmluZyBzY2FuIGFuZCBvbmx5IGV2 aWN0IHRob3NlIG5vZGVzCnRoYXQgb3ZlcmxhcC4gVGhpcyBlbmFibGVzIHVzIHRvIHJlZHVjZSB0 aGUgbnVtYmVyIG9mIG5vZGVzIHdlIG5lZWQgdG8KZXZpY3QgdG8gdGhlIGJhcmUgbWluaW11bS4K ClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpS ZXZpZXdlZC1ieTogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwu Y29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fbW0uYyAgICAgICAgICAgICAgICB8IDYwICsr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2V0bmF2aXYv ZXRuYXZpdl9tbXUuYyAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2 aWN0LmMgICB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJtX21tLmMg fCAxMCArKystLS0KIGluY2x1ZGUvZHJtL2RybV9tbS5oICAgICAgICAgICAgICAgICAgICB8IDIy ICsrKysrKy0tLS0tLQogNSBmaWxlcyBjaGFuZ2VkLCA3MSBpbnNlcnRpb25zKCspLCAyNiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX21tLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX21tLmMKaW5kZXggMWI1NjEzYmNiMzVlLi4xODlhYjg0YzVhNTkgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fbW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X21tLmMKQEAgLTcxOCwxMCArNzE4LDEwIEBAIEVYUE9SVF9TWU1CT0woZHJtX21tX3JlcGxhY2Vf bm9kZSk7CiAgKiBAY29sb3I6IG9wYXF1ZSB0YWcgdmFsdWUgdG8gdXNlIGZvciB0aGUgYWxsb2Nh dGlvbgogICogQHN0YXJ0OiBzdGFydCBvZiB0aGUgYWxsb3dlZCByYW5nZSBmb3IgdGhlIGFsbG9j YXRpb24KICAqIEBlbmQ6IGVuZCBvZiB0aGUgYWxsb3dlZCByYW5nZSBmb3IgdGhlIGFsbG9jYXRp b24KKyAqIEBmbGFnczogZmxhZ3MgdG8gc3BlY2lmeSBob3cgdGhlIGFsbG9jYXRpb24gd2lsbCBi ZSBwZXJmb3JtZWQgYWZ0ZXJ3YXJkcwogICoKICAqIFRoaXMgc2ltcGx5IHNldHMgdXAgdGhlIHNj YW5uaW5nIHJvdXRpbmVzIHdpdGggdGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBkZXNpcmVkCi0gKiBo b2xlLiBOb3RlIHRoYXQgdGhlcmUncyBubyBuZWVkIHRvIHNwZWNpZnkgYWxsb2NhdGlvbiBmbGFn cywgc2luY2UgdGhleSBvbmx5Ci0gKiBjaGFuZ2UgdGhlIHBsYWNlIGEgbm9kZSBpcyBhbGxvY2F0 ZWQgZnJvbSB3aXRoaW4gYSBzdWl0YWJsZSBob2xlLgorICogaG9sZS4KICAqCiAgKiBXYXJuaW5n OgogICogQXMgbG9uZyBhcyB0aGUgc2NhbiBsaXN0IGlzIG5vbi1lbXB0eSwgbm8gb3RoZXIgb3Bl cmF0aW9ucyB0aGFuCkBAIC03MzMsNyArNzMzLDggQEAgdm9pZCBkcm1fbW1fc2Nhbl9pbml0X3dp dGhfcmFuZ2Uoc3RydWN0IGRybV9tbV9zY2FuICpzY2FuLAogCQkJCSB1NjQgYWxpZ25tZW50LAog CQkJCSB1bnNpZ25lZCBsb25nIGNvbG9yLAogCQkJCSB1NjQgc3RhcnQsCi0JCQkJIHU2NCBlbmQp CisJCQkJIHU2NCBlbmQsCisJCQkJIHVuc2lnbmVkIGludCBmbGFncykKIHsKIAlEUk1fTU1fQlVH X09OKHN0YXJ0ID49IGVuZCk7CiAJRFJNX01NX0JVR19PTighc2l6ZSB8fCBzaXplID4gZW5kIC0g c3RhcnQpOwpAQCAtNzQ0LDYgKzc0NSw3IEBAIHZvaWQgZHJtX21tX3NjYW5faW5pdF93aXRoX3Jh bmdlKHN0cnVjdCBkcm1fbW1fc2NhbiAqc2NhbiwKIAlzY2FuLT5jb2xvciA9IGNvbG9yOwogCXNj YW4tPmFsaWdubWVudCA9IGFsaWdubWVudDsKIAlzY2FuLT5zaXplID0gc2l6ZTsKKwlzY2FuLT5m bGFncyA9IGZsYWdzOwogCiAJRFJNX01NX0JVR19PTihlbmQgPD0gc3RhcnQpOwogCXNjYW4tPnJh bmdlX3N0YXJ0ID0gc3RhcnQ7CkBAIC03NzgsNyArNzgwLDcgQEAgYm9vbCBkcm1fbW1fc2Nhbl9h ZGRfYmxvY2soc3RydWN0IGRybV9tbV9zY2FuICpzY2FuLAogCURSTV9NTV9CVUdfT04obm9kZS0+ bW0gIT0gbW0pOwogCURSTV9NTV9CVUdfT04oIW5vZGUtPmFsbG9jYXRlZCk7CiAJRFJNX01NX0JV R19PTihub2RlLT5zY2FubmVkX2Jsb2NrKTsKLQlub2RlLT5zY2FubmVkX2Jsb2NrID0gMTsKKwlu b2RlLT5zY2FubmVkX2Jsb2NrID0gdHJ1ZTsKIAltbS0+c2Nhbl9hY3RpdmUrKzsKIAogCWhvbGUg PSBsaXN0X3ByZXZfZW50cnkobm9kZSwgbm9kZV9saXN0KTsKQEAgLTgwMCwxNSArODAyLDUzIEBA IGJvb2wgZHJtX21tX3NjYW5fYWRkX2Jsb2NrKHN0cnVjdCBkcm1fbW1fc2NhbiAqc2NhbiwKIAog CWFkal9zdGFydCA9IG1heChjb2xfc3RhcnQsIHNjYW4tPnJhbmdlX3N0YXJ0KTsKIAlhZGpfZW5k ID0gbWluKGNvbF9lbmQsIHNjYW4tPnJhbmdlX2VuZCk7CisJaWYgKGFkal9lbmQgPD0gYWRqX3N0 YXJ0IHx8IGFkal9lbmQgLSBhZGpfc3RhcnQgPCBzY2FuLT5zaXplKQorCQlyZXR1cm4gZmFsc2U7 CisKKwlpZiAoc2Nhbi0+ZmxhZ3MgPT0gRFJNX01NX0NSRUFURV9UT1ApCisJCWFkal9zdGFydCA9 IGFkal9lbmQgLSBzY2FuLT5zaXplOworCisJaWYgKHNjYW4tPmFsaWdubWVudCkgeworCQl1NjQg cmVtOworCisJCWRpdjY0X3U2NF9yZW0oYWRqX3N0YXJ0LCBzY2FuLT5hbGlnbm1lbnQsICZyZW0p OworCQlpZiAocmVtKSB7CisJCQlhZGpfc3RhcnQgLT0gcmVtOworCQkJaWYgKHNjYW4tPmZsYWdz ICE9IERSTV9NTV9DUkVBVEVfVE9QKQorCQkJCWFkal9zdGFydCArPSBzY2FuLT5hbGlnbm1lbnQ7 CisJCQlpZiAoYWRqX3N0YXJ0IDwgbWF4KGNvbF9zdGFydCwgc2Nhbi0+cmFuZ2Vfc3RhcnQpIHx8 CisJCQkgICAgbWluKGNvbF9lbmQsIHNjYW4tPnJhbmdlX2VuZCkgLSBhZGpfc3RhcnQgPCBzY2Fu LT5zaXplKQorCQkJCXJldHVybiBmYWxzZTsKKworCQkJaWYgKGFkal9lbmQgPD0gYWRqX3N0YXJ0 IHx8CisJCQkgICAgYWRqX2VuZCAtIGFkal9zdGFydCA8IHNjYW4tPnNpemUpCisJCQkJcmV0dXJu IGZhbHNlOworCQl9CisJfQogCi0JaWYgKGNoZWNrX2ZyZWVfaG9sZShhZGpfc3RhcnQsIGFkal9l bmQsCi0JCQkgICAgc2Nhbi0+c2l6ZSwgc2Nhbi0+YWxpZ25tZW50KSkgeworCWlmIChtbS0+Y29s b3JfYWRqdXN0KSB7CisJCS8qIElmIGFsbG9jYXRpb25zIG5lZWQgYWRqdXN0aW5nIGR1ZSB0byBu ZWlnaGJvdXJpbmcgY29sb3VycywKKwkJICogd2UgZG8gbm90IGhhdmUgZW5vdWdoIGluZm9ybWF0 aW9uIHRvIGRlY2lkZSBpZiB3ZSBuZWVkCisJCSAqIHRvIGV2aWN0IG5vZGVzIG9uIGVpdGhlciBz aWRlIG9mIFthZGpfc3RhcnQsIGFkal9lbmRdLgorCQkgKiBXaGF0IGFsbW9zdCB3b3JrcyBpcwor CQkgKiBoaXRfc3RhcnQgPSBhZGpfc3RhcnQgKyAoaG9sZV9zdGFydCAtIGNvbF9zdGFydCk7CisJ CSAqIGhpdF9lbmQgPSBhZGpfc3RhcnQgKyBzY2FuLT5zaXplICsgKGhvbGVfZW5kIC0gY29sX2Vu ZCk7CisJCSAqIGJ1dCBiZWNhdXNlIHRoZSBkZWNpc2lvbiBpcyBvbmx5IG1hZGUgb24gdGhlIGZp bmFsIGhvbGUsCisJCSAqIHdlIG1heSB1bmRlcmVzdGltYXRlIHRoZSByZXF1aXJlZCBhZGp1c3Rt ZW50cyBmb3IgYW4KKwkJICogaW50ZXJpb3IgYWxsb2NhdGlvbi4KKwkJICovCiAJCXNjYW4tPmhp dF9zdGFydCA9IGhvbGVfc3RhcnQ7CiAJCXNjYW4tPmhpdF9lbmQgPSBob2xlX2VuZDsKLQkJcmV0 dXJuIHRydWU7CisJfSBlbHNlIHsKKwkJc2Nhbi0+aGl0X3N0YXJ0ID0gYWRqX3N0YXJ0OworCQlz Y2FuLT5oaXRfZW5kID0gYWRqX3N0YXJ0ICsgc2Nhbi0+c2l6ZTsKIAl9CiAKLQlyZXR1cm4gZmFs c2U7CisJRFJNX01NX0JVR19PTihzY2FuLT5oaXRfc3RhcnQgPj0gc2Nhbi0+aGl0X2VuZCk7CisJ RFJNX01NX0JVR19PTihzY2FuLT5oaXRfc3RhcnQgPCBob2xlX3N0YXJ0KTsKKwlEUk1fTU1fQlVH X09OKHNjYW4tPmhpdF9lbmQgPiBob2xlX2VuZCk7CisKKwlyZXR1cm4gdHJ1ZTsKIH0KIEVYUE9S VF9TWU1CT0woZHJtX21tX3NjYW5fYWRkX2Jsb2NrKTsKIApAQCAtODM2LDcgKzg3Niw3IEBAIGJv b2wgZHJtX21tX3NjYW5fcmVtb3ZlX2Jsb2NrKHN0cnVjdCBkcm1fbW1fc2NhbiAqc2NhbiwKIAog CURSTV9NTV9CVUdfT04obm9kZS0+bW0gIT0gc2Nhbi0+bW0pOwogCURSTV9NTV9CVUdfT04oIW5v ZGUtPnNjYW5uZWRfYmxvY2spOwotCW5vZGUtPnNjYW5uZWRfYmxvY2sgPSAwOworCW5vZGUtPnNj YW5uZWRfYmxvY2sgPSBmYWxzZTsKIAogCURSTV9NTV9CVUdfT04oIW5vZGUtPm1tLT5zY2FuX2Fj dGl2ZSk7CiAJbm9kZS0+bW0tPnNjYW5fYWN0aXZlLS07CkBAIC04NDYsNyArODg2LDcgQEAgYm9v bCBkcm1fbW1fc2Nhbl9yZW1vdmVfYmxvY2soc3RydWN0IGRybV9tbV9zY2FuICpzY2FuLAogCXBy ZXZfbm9kZS0+aG9sZV9mb2xsb3dzID0gbm9kZS0+c2Nhbm5lZF9wcmVjZWVkc19ob2xlOwogCWxp c3RfYWRkKCZub2RlLT5ub2RlX2xpc3QsICZwcmV2X25vZGUtPm5vZGVfbGlzdCk7CiAKLQlyZXR1 cm4gKGRybV9tbV9ob2xlX25vZGVfZW5kKG5vZGUpID4gc2Nhbi0+aGl0X3N0YXJ0ICYmCisJcmV0 dXJuIChub2RlLT5zdGFydCArIG5vZGUtPnNpemUgPiBzY2FuLT5oaXRfc3RhcnQgJiYKIAkJbm9k ZS0+c3RhcnQgPCBzY2FuLT5oaXRfZW5kKTsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX21tX3NjYW5f cmVtb3ZlX2Jsb2NrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2 aXZfbW11LmMgYi9kcml2ZXJzL2dwdS9kcm0vZXRuYXZpdi9ldG5hdml2X21tdS5jCmluZGV4IGZl MWU4ODZkY2FiYi4uMmRhZTMxNjljZTQ4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXRu YXZpdi9ldG5hdml2X21tdS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ldG5hdml2L2V0bmF2aXZf bW11LmMKQEAgLTEzNSw3ICsxMzUsNyBAQCBzdGF0aWMgaW50IGV0bmF2aXZfaW9tbXVfZmluZF9p b3ZhKHN0cnVjdCBldG5hdml2X2lvbW11ICptbXUsCiAJCX0KIAogCQkvKiBUcnkgdG8gcmV0aXJl IHNvbWUgZW50cmllcyAqLwotCQlkcm1fbW1fc2Nhbl9pbml0KCZzY2FuLCAmbW11LT5tbSwgc2l6 ZSwgMCwgMCk7CisJCWRybV9tbV9zY2FuX2luaXQoJnNjYW4sICZtbXUtPm1tLCBzaXplLCAwLCAw LCAwKTsKIAogCQlmb3VuZCA9IDA7CiAJCUlOSVRfTElTVF9IRUFEKCZsaXN0KTsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jCmluZGV4IDc3ZGVkMjg4NTM0Yi4uMjc0MTQ5OGNkZjJi IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMKQEAgLTEyOCw3ICsxMjgsOCBA QCBpOTE1X2dlbV9ldmljdF9zb21ldGhpbmcoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0s CiAJICovCiAJZHJtX21tX3NjYW5faW5pdF93aXRoX3JhbmdlKCZzY2FuLCAmdm0tPm1tLAogCQkJ CSAgICBtaW5fc2l6ZSwgYWxpZ25tZW50LCBjYWNoZV9sZXZlbCwKLQkJCQkgICAgc3RhcnQsIGVu ZCk7CisJCQkJICAgIHN0YXJ0LCBlbmQsCisJCQkJICAgIGZsYWdzICYgUElOX0hJR0ggPyBEUk1f TU1fQ1JFQVRFX1RPUCA6IDApOwogCiAJLyogUmV0aXJlIGJlZm9yZSB3ZSBzZWFyY2ggdGhlIGFj dGl2ZSBsaXN0LiBBbHRob3VnaCB3ZSBoYXZlCiAJICogcmVhc29uYWJsZSBhY2N1cmFjeSBpbiBv dXIgcmV0aXJlbWVudCBsaXN0cywgd2UgbWF5IGhhdmUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9zZWxmdGVzdHMvdGVzdC1kcm1fbW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMv dGVzdC1kcm1fbW0uYwppbmRleCA5OTdmMmJjOTNiOWIuLjFiYmZjMjQzNDJjNSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybV9tbS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9zZWxmdGVzdHMvdGVzdC1kcm1fbW0uYwpAQCAtMTE5OSw3ICsxMTk5LDcgQEAgc3Rh dGljIGJvb2wgZXZpY3Rfbm90aGluZyhzdHJ1Y3QgZHJtX21tICptbSwKIAlzdHJ1Y3QgZHJtX21t X25vZGUgKm5vZGU7CiAJdW5zaWduZWQgaW50IG47CiAKLQlkcm1fbW1fc2Nhbl9pbml0KCZzY2Fu LCBtbSwgMSwgMCwgMCk7CisJZHJtX21tX3NjYW5faW5pdCgmc2NhbiwgbW0sIDEsIDAsIDAsIDAp OwogCWZvciAobiA9IDA7IG4gPCB0b3RhbF9zaXplOyBuKyspIHsKIAkJZSA9ICZub2Rlc1tuXTsK IAkJbGlzdF9hZGQoJmUtPmxpbmssICZldmljdF9saXN0KTsKQEAgLTEyNDYsNyArMTI0Niw3IEBA IHN0YXRpYyBib29sIGV2aWN0X2V2ZXJ5dGhpbmcoc3RydWN0IGRybV9tbSAqbW0sCiAJdW5zaWdu ZWQgaW50IG47CiAJaW50IGVycjsKIAotCWRybV9tbV9zY2FuX2luaXQoJnNjYW4sIG1tLCB0b3Rh bF9zaXplLCAwLCAwKTsKKwlkcm1fbW1fc2Nhbl9pbml0KCZzY2FuLCBtbSwgdG90YWxfc2l6ZSwg MCwgMCwgMCk7CiAJZm9yIChuID0gMDsgbiA8IHRvdGFsX3NpemU7IG4rKykgewogCQllID0gJm5v ZGVzW25dOwogCQlsaXN0X2FkZCgmZS0+bGluaywgJmV2aWN0X2xpc3QpOwpAQCAtMTI5Niw3ICsx Mjk2LDggQEAgc3RhdGljIGludCBldmljdF9zb21ldGhpbmcoc3RydWN0IGRybV9tbSAqbW0sCiAK IAlkcm1fbW1fc2Nhbl9pbml0X3dpdGhfcmFuZ2UoJnNjYW4sIG1tLAogCQkJCSAgICBzaXplLCBh bGlnbm1lbnQsIDAsCi0JCQkJICAgIHJhbmdlX3N0YXJ0LCByYW5nZV9lbmQpOworCQkJCSAgICBy YW5nZV9zdGFydCwgcmFuZ2VfZW5kLAorCQkJCSAgICBtb2RlLT5jcmVhdGVfZmxhZ3MpOwogCWlm ICghZXZpY3Rfbm9kZXMoJnNjYW4sCiAJCQkgbm9kZXMsIG9yZGVyLCBjb3VudCwKIAkJCSAmZXZp Y3RfbGlzdCkpCkBAIC0xODc0LDcgKzE4NzUsOCBAQCBzdGF0aWMgaW50IGV2aWN0X2NvbG9yKHN0 cnVjdCBkcm1fbW0gKm1tLAogCiAJZHJtX21tX3NjYW5faW5pdF93aXRoX3JhbmdlKCZzY2FuLCBt bSwKIAkJCQkgICAgc2l6ZSwgYWxpZ25tZW50LCBjb2xvciwKLQkJCQkgICAgcmFuZ2Vfc3RhcnQs IHJhbmdlX2VuZCk7CisJCQkJICAgIHJhbmdlX3N0YXJ0LCByYW5nZV9lbmQsCisJCQkJICAgIG1v ZGUtPmNyZWF0ZV9mbGFncyk7CiAJaWYgKCFldmljdF9ub2Rlcygmc2NhbiwKIAkJCSBub2Rlcywg b3JkZXIsIGNvdW50LAogCQkJICZldmljdF9saXN0KSkKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJt L2RybV9tbS5oIGIvaW5jbHVkZS9kcm0vZHJtX21tLmgKaW5kZXggYmFlMGYxMGRhOGUzLi42MDYz MzZmYzIyOWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV9tbS5oCisrKyBiL2luY2x1ZGUv ZHJtL2RybV9tbS5oCkBAIC0xMjAsNiArMTIwLDcgQEAgc3RydWN0IGRybV9tbV9zY2FuIHsKIAlz dHJ1Y3QgZHJtX21tX25vZGUgKnByZXZfc2Nhbm5lZF9ub2RlOwogCiAJdW5zaWduZWQgbG9uZyBj b2xvcjsKKwl1bnNpZ25lZCBpbnQgZmxhZ3M7CiB9OwogCiAvKioKQEAgLTM4OCwxMSArMzg5LDkg QEAgX19kcm1fbW1faW50ZXJ2YWxfZmlyc3QoY29uc3Qgc3RydWN0IGRybV9tbSAqbW0sIHU2NCBz dGFydCwgdTY0IGxhc3QpOwogCiB2b2lkIGRybV9tbV9zY2FuX2luaXRfd2l0aF9yYW5nZShzdHJ1 Y3QgZHJtX21tX3NjYW4gKnNjYW4sCiAJCQkJIHN0cnVjdCBkcm1fbW0gKm1tLAotCQkJCSB1NjQg c2l6ZSwKLQkJCQkgdTY0IGFsaWdubWVudCwKLQkJCQkgdW5zaWduZWQgbG9uZyBjb2xvciwKLQkJ CQkgdTY0IHN0YXJ0LAotCQkJCSB1NjQgZW5kKTsKKwkJCQkgdTY0IHNpemUsIHU2NCBhbGlnbm1l bnQsIHVuc2lnbmVkIGxvbmcgY29sb3IsCisJCQkJIHU2NCBzdGFydCwgdTY0IGVuZCwKKwkJCQkg dW5zaWduZWQgaW50IGZsYWdzKTsKIAogLyoqCiAgKiBkcm1fbW1fc2Nhbl9pbml0IC0gaW5pdGlh bGl6ZSBscnUgc2Nhbm5pbmcKQEAgLTQwMSwxMCArNDAwLDEwIEBAIHZvaWQgZHJtX21tX3NjYW5f aW5pdF93aXRoX3JhbmdlKHN0cnVjdCBkcm1fbW1fc2NhbiAqc2NhbiwKICAqIEBzaXplOiBzaXpl IG9mIHRoZSBhbGxvY2F0aW9uCiAgKiBAYWxpZ25tZW50OiBhbGlnbm1lbnQgb2YgdGhlIGFsbG9j YXRpb24KICAqIEBjb2xvcjogb3BhcXVlIHRhZyB2YWx1ZSB0byB1c2UgZm9yIHRoZSBhbGxvY2F0 aW9uCisgKiBAZmxhZ3M6IGZsYWdzIHRvIHNwZWNpZnkgaG93IHRoZSBhbGxvY2F0aW9uIHdpbGwg YmUgcGVyZm9ybWVkIGFmdGVyd2FyZHMKICAqCiAgKiBUaGlzIHNpbXBseSBzZXRzIHVwIHRoZSBz Y2FubmluZyByb3V0aW5lcyB3aXRoIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgZGVzaXJlZAotICog aG9sZS4gTm90ZSB0aGF0IHRoZXJlJ3Mgbm8gbmVlZCB0byBzcGVjaWZ5IGFsbG9jYXRpb24gZmxh Z3MsIHNpbmNlIHRoZXkgb25seQotICogY2hhbmdlIHRoZSBwbGFjZSBhIG5vZGUgaXMgYWxsb2Nh dGVkIGZyb20gd2l0aGluIGEgc3VpdGFibGUgaG9sZS4KKyAqIGhvbGUuCiAgKgogICogV2Fybmlu ZzoKICAqIEFzIGxvbmcgYXMgdGhlIHNjYW4gbGlzdCBpcyBub24tZW1wdHksIG5vIG90aGVyIG9w ZXJhdGlvbnMgdGhhbgpAQCAtNDE0LDEwICs0MTMsMTMgQEAgc3RhdGljIGlubGluZSB2b2lkIGRy bV9tbV9zY2FuX2luaXQoc3RydWN0IGRybV9tbV9zY2FuICpzY2FuLAogCQkJCSAgICBzdHJ1Y3Qg ZHJtX21tICptbSwKIAkJCQkgICAgdTY0IHNpemUsCiAJCQkJICAgIHU2NCBhbGlnbm1lbnQsCi0J CQkJICAgIHVuc2lnbmVkIGxvbmcgY29sb3IpCisJCQkJICAgIHVuc2lnbmVkIGxvbmcgY29sb3Is CisJCQkJICAgIHVuc2lnbmVkIGludCBmbGFncykKIHsKLQlkcm1fbW1fc2Nhbl9pbml0X3dpdGhf cmFuZ2Uoc2NhbiwgbW0sIHNpemUsIGFsaWdubWVudCwgY29sb3IsCi0JCQkJICAgIDAsIFU2NF9N QVgpOworCWRybV9tbV9zY2FuX2luaXRfd2l0aF9yYW5nZShzY2FuLCBtbSwKKwkJCQkgICAgc2l6 ZSwgYWxpZ25tZW50LCBjb2xvciwKKwkJCQkgICAgMCwgVTY0X01BWCwKKwkJCQkgICAgZmxhZ3Mp OwogfQogCiBib29sIGRybV9tbV9zY2FuX2FkZF9ibG9jayhzdHJ1Y3QgZHJtX21tX3NjYW4gKnNj YW4sCi0tIAoyLjExLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=