From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Christian=20K=C3=B6nig?= Subject: [PATCH 4/6] drm/ttm: add the infrastructur for pipelined evictions Date: Wed, 15 Jun 2016 13:44:03 +0200 Message-ID: <1465991045-2328-4-git-send-email-deathsimple@vodafone.de> References: <1465991045-2328-1-git-send-email-deathsimple@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from pegasos-out.vodafone.de (pegasos-out.vodafone.de [80.84.1.38]) by gabe.freedesktop.org (Postfix) with ESMTP id DA11B6E8DF for ; Wed, 15 Jun 2016 11:44:12 +0000 (UTC) Received: from localhost (localhost.localdomain [127.0.0.1]) by pegasos-out.vodafone.de (Rohrpostix2 Daemon) with ESMTP id 466345E04C0 for ; Wed, 15 Jun 2016 13:44:12 +0200 (CEST) Received: from pegasos-out.vodafone.de ([127.0.0.1]) by localhost (rohrpostix2.prod.vfnet.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id eqG54ICeUjWv for ; Wed, 15 Jun 2016 13:44:09 +0200 (CEST) Received: from smtp-04.vodafone.de (xsmail-dmz10.prod.vfnet.de [10.215.254.41]) by pegasos-out.vodafone.de (Rohrpostix2 Daemon) with ESMTP id 45FB65E04D5 for ; Wed, 15 Jun 2016 13:44:08 +0200 (CEST) Received: from smtp-04.vodafone.de ([127.0.0.1]) by localhost (xsmail-dmz10.prod.vfnet.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id q6iL+Sqt3MJE for ; Wed, 15 Jun 2016 13:44:07 +0200 (CEST) In-Reply-To: <1465991045-2328-1-git-send-email-deathsimple@vodafone.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgoKRnJlZSB1 cCB0aGUgbWVtb3J5IGltbWVkaWF0ZWx5LCByZW1lbWJlciB0aGUgbGFzdCBldmljdGlvbiBmb3Ig ZWFjaCBkb21haW4gYW5kCm1ha2UgbmV3IGFsbG9jYXRpb25zIGRlcGVuZCBvbiB0aGUgbGFzdCBl dmljdGlvbiB0byBiZSBjb21wbGV0ZWQuCgpTaWduZWQtb2ZmLWJ5OiBDaHJpc3RpYW4gS8O2bmln IDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f Ym8uYyAgICAgIHwgNDkgKysrKysrKysrKysrKysrKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9ib191dGlsLmMgfCA5MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKIGluY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmggICB8IDI0ICsrKysrKysrKysKIDMg ZmlsZXMgY2hhbmdlZCwgMTYwIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0v dHRtX2JvLmMKaW5kZXggMjhjZDUzNS4uNWQ5MzE2OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3R0bS90dG1fYm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCkBAIC03 ODgsNiArNzg4LDM0IEBAIHZvaWQgdHRtX2JvX21lbV9wdXQoc3RydWN0IHR0bV9idWZmZXJfb2Jq ZWN0ICpibywgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCiBFWFBPUlRfU1lNQk9MKHR0bV9ib19t ZW1fcHV0KTsKIAogLyoqCisgKiBBZGQgdGhlIGxhc3QgbW92ZSBmZW5jZSB0byB0aGUgQk8gYW5k IHJlc2VydmUgYSBuZXcgc2hhcmVkIHNsb3QuCisgKi8KK3N0YXRpYyBpbnQgdHRtX2JvX2FkZF9t b3ZlX2ZlbmNlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCisJCQkJIHN0cnVjdCB0dG1f bWVtX3R5cGVfbWFuYWdlciAqbWFuLAorCQkJCSBzdHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSkKK3sK KwlzdHJ1Y3QgZmVuY2UgKmZlbmNlOworCWludCByZXQ7CisKKwlzcGluX2xvY2soJm1hbi0+bW92 ZV9sb2NrKTsKKwlmZW5jZSA9IGZlbmNlX2dldChtYW4tPm1vdmUpOworCXNwaW5fdW5sb2NrKCZt YW4tPm1vdmVfbG9jayk7CisKKwlpZiAoZmVuY2UpIHsKKwkJcmVzZXJ2YXRpb25fb2JqZWN0X2Fk ZF9zaGFyZWRfZmVuY2UoYm8tPnJlc3YsIGZlbmNlKTsKKworCQlyZXQgPSByZXNlcnZhdGlvbl9v YmplY3RfcmVzZXJ2ZV9zaGFyZWQoYm8tPnJlc3YpOworCQlpZiAodW5saWtlbHkocmV0KSkKKwkJ CXJldHVybiByZXQ7CisKKwkJZmVuY2VfcHV0KGJvLT5tb3ZpbmcpOworCQliby0+bW92aW5nID0g ZmVuY2U7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qKgogICogUmVwZWF0ZWRseSBldmljdCBt ZW1vcnkgZnJvbSB0aGUgTFJVIGZvciBAbWVtX3R5cGUgdW50aWwgd2UgY3JlYXRlIGVub3VnaAog ICogc3BhY2UsIG9yIHdlJ3ZlIGV2aWN0ZWQgZXZlcnl0aGluZyBhbmQgdGhlcmUgaXNuJ3QgZW5v dWdoIHNwYWNlLgogICovCkBAIC04MTMsMTAgKzg0MSw4IEBAIHN0YXRpYyBpbnQgdHRtX2JvX21l bV9mb3JjZV9zcGFjZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQlpZiAodW5saWtl bHkocmV0ICE9IDApKQogCQkJcmV0dXJuIHJldDsKIAl9IHdoaWxlICgxKTsKLQlpZiAobWVtLT5t bV9ub2RlID09IE5VTEwpCi0JCXJldHVybiAtRU5PTUVNOwogCW1lbS0+bWVtX3R5cGUgPSBtZW1f dHlwZTsKLQlyZXR1cm4gMDsKKwlyZXR1cm4gdHRtX2JvX2FkZF9tb3ZlX2ZlbmNlKGJvLCBtYW4s IG1lbSk7CiB9CiAKIHN0YXRpYyB1aW50MzJfdCB0dG1fYm9fc2VsZWN0X2NhY2hpbmcoc3RydWN0 IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCkBAIC04ODYsNiArOTEyLDEwIEBAIGludCB0dG1f Ym9fbWVtX3NwYWNlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJYm9vbCBoYXNfZXJl c3RhcnRzeXMgPSBmYWxzZTsKIAlpbnQgaSwgcmV0OwogCisJcmV0ID0gcmVzZXJ2YXRpb25fb2Jq ZWN0X3Jlc2VydmVfc2hhcmVkKGJvLT5yZXN2KTsKKwlpZiAodW5saWtlbHkocmV0KSkKKwkJcmV0 dXJuIHJldDsKKwogCW1lbS0+bW1fbm9kZSA9IE5VTEw7CiAJZm9yIChpID0gMDsgaSA8IHBsYWNl bWVudC0+bnVtX3BsYWNlbWVudDsgKytpKSB7CiAJCWNvbnN0IHN0cnVjdCB0dG1fcGxhY2UgKnBs YWNlID0gJnBsYWNlbWVudC0+cGxhY2VtZW50W2ldOwpAQCAtOTE5LDkgKzk0OSwxNSBAQCBpbnQg dHRtX2JvX21lbV9zcGFjZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQlyZXQgPSAo Km1hbi0+ZnVuYy0+Z2V0X25vZGUpKG1hbiwgYm8sIHBsYWNlLCBtZW0pOwogCQlpZiAodW5saWtl bHkocmV0KSkKIAkJCXJldHVybiByZXQ7Ci0JCQotCQlpZiAobWVtLT5tbV9ub2RlKQorCisJCWlm IChtZW0tPm1tX25vZGUpIHsKKwkJCXJldCA9IHR0bV9ib19hZGRfbW92ZV9mZW5jZShibywgbWFu LCBtZW0pOworCQkJaWYgKHVubGlrZWx5KHJldCkpIHsKKwkJCQkoKm1hbi0+ZnVuYy0+cHV0X25v ZGUpKG1hbiwgbWVtKTsKKwkJCQlyZXR1cm4gcmV0OworCQkJfQogCQkJYnJlYWs7CisJCX0KIAl9 CiAKIAlpZiAoKHR5cGVfb2sgJiYgKG1lbV90eXBlID09IFRUTV9QTF9TWVNURU0pKSB8fCBtZW0t Pm1tX25vZGUpIHsKQEAgLTEyOTAsNiArMTMyNiw3IEBAIGludCB0dG1fYm9fY2xlYW5fbW0oc3Ry dWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHVuc2lnbmVkIG1lbV90eXBlKQogCQkgICAgICAgbWVt X3R5cGUpOwogCQlyZXR1cm4gcmV0OwogCX0KKwlmZW5jZV9wdXQobWFuLT5tb3ZlKTsKIAogCW1h bi0+dXNlX3R5cGUgPSBmYWxzZTsKIAltYW4tPmhhc190eXBlID0gZmFsc2U7CkBAIC0xMzM1LDYg KzEzNzIsNyBAQCBpbnQgdHRtX2JvX2luaXRfbW0oc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYs IHVuc2lnbmVkIHR5cGUsCiAJbWFuLT5pb19yZXNlcnZlX2Zhc3RwYXRoID0gdHJ1ZTsKIAltYW4t PnVzZV9pb19yZXNlcnZlX2xydSA9IGZhbHNlOwogCW11dGV4X2luaXQoJm1hbi0+aW9fcmVzZXJ2 ZV9tdXRleCk7CisJc3Bpbl9sb2NrX2luaXQoJm1hbi0+bW92ZV9sb2NrKTsKIAlJTklUX0xJU1Rf SEVBRCgmbWFuLT5pb19yZXNlcnZlX2xydSk7CiAKIAlyZXQgPSBiZGV2LT5kcml2ZXItPmluaXRf bWVtX3R5cGUoYmRldiwgdHlwZSwgbWFuKTsKQEAgLTEzNTMsNiArMTM5MSw3IEBAIGludCB0dG1f Ym9faW5pdF9tbShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgdW5zaWduZWQgdHlwZSwKIAlt YW4tPnNpemUgPSBwX3NpemU7CiAKIAlJTklUX0xJU1RfSEVBRCgmbWFuLT5scnUpOworCW1hbi0+ bW92ZSA9IE5VTEw7CiAKIAlyZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS90dG0vdHRtX2JvX3V0aWwuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYwpp bmRleCA5ZWE4ZDAyLi4wYzM4OWE1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV9ib191dGlsLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jCkBAIC02 OTYsMyArNjk2LDk1IEBAIGludCB0dG1fYm9fbW92ZV9hY2NlbF9jbGVhbnVwKHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqYm8sCiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MKHR0bV9ib19t b3ZlX2FjY2VsX2NsZWFudXApOworCitpbnQgdHRtX2JvX3BpcGVsaW5lX21vdmUoc3RydWN0IHR0 bV9idWZmZXJfb2JqZWN0ICpibywKKwkJCSBzdHJ1Y3QgZmVuY2UgKmZlbmNlLCBib29sIGV2aWN0 LAorCQkJIHN0cnVjdCB0dG1fbWVtX3JlZyAqbmV3X21lbSkKK3sKKwlzdHJ1Y3QgdHRtX2JvX2Rl dmljZSAqYmRldiA9IGJvLT5iZGV2OworCXN0cnVjdCB0dG1fbWVtX3JlZyAqb2xkX21lbSA9ICZi by0+bWVtOworCisJc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICpmcm9tID0gJmJkZXYtPm1h bltvbGRfbWVtLT5tZW1fdHlwZV07CisJc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICp0byA9 ICZiZGV2LT5tYW5bbmV3X21lbS0+bWVtX3R5cGVdOworCisJaW50IHJldDsKKworCXJlc2VydmF0 aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShiby0+cmVzdiwgZmVuY2UpOworCisJaWYgKCFldmlj dCkgeworCQlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmdob3N0X29iajsKKworCQkvKioKKwkJ ICogVGhpcyBzaG91bGQgaGVscCBwaXBlbGluZSBvcmRpbmFyeSBidWZmZXIgbW92ZXMuCisJCSAq CisJCSAqIEhhbmcgb2xkIGJ1ZmZlciBtZW1vcnkgb24gYSBuZXcgYnVmZmVyIG9iamVjdCwKKwkJ ICogYW5kIGxlYXZlIGl0IHRvIGJlIHJlbGVhc2VkIHdoZW4gdGhlIEdQVQorCQkgKiBvcGVyYXRp b24gaGFzIGNvbXBsZXRlZC4KKwkJICovCisKKwkJZmVuY2VfcHV0KGJvLT5tb3ZpbmcpOworCQli by0+bW92aW5nID0gZmVuY2VfZ2V0KGZlbmNlKTsKKworCQlyZXQgPSB0dG1fYnVmZmVyX29iamVj dF90cmFuc2ZlcihibywgJmdob3N0X29iaik7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0Owor CisJCXJlc2VydmF0aW9uX29iamVjdF9hZGRfZXhjbF9mZW5jZShnaG9zdF9vYmotPnJlc3YsIGZl bmNlKTsKKworCQkvKioKKwkJICogSWYgd2UncmUgbm90IG1vdmluZyB0byBmaXhlZCBtZW1vcnks IHRoZSBUVE0gb2JqZWN0CisJCSAqIG5lZWRzIHRvIHN0YXkgYWxpdmUuIE90aGVyd2hpc2UgaGFu ZyBpdCBvbiB0aGUgZ2hvc3QKKwkJICogYm8gdG8gYmUgdW5ib3VuZCBhbmQgZGVzdHJveWVkLgor CQkgKi8KKworCQlpZiAoISh0by0+ZmxhZ3MgJiBUVE1fTUVNVFlQRV9GTEFHX0ZJWEVEKSkKKwkJ CWdob3N0X29iai0+dHRtID0gTlVMTDsKKwkJZWxzZQorCQkJYm8tPnR0bSA9IE5VTEw7CisKKwkJ dHRtX2JvX3VucmVzZXJ2ZShnaG9zdF9vYmopOworCQl0dG1fYm9fdW5yZWYoJmdob3N0X29iaik7 CisKKwl9IGVsc2UgaWYgKGZyb20tPmZsYWdzICYgVFRNX01FTVRZUEVfRkxBR19GSVhFRCkgewor CisJCS8qKgorCQkgKiBCTyBkb2Vzbid0IGhhdmUgYSBUVE0gd2UgbmVlZCB0byBiaW5kL3VuYmlu ZC4gSnVzdCByZW1lbWJlcgorCQkgKiB0aGlzIGV2aWN0aW9uIGFuZCBmcmVlIHVwIHRoZSBhbGxv Y2F0aW9uCisJCSAqLworCisJCXNwaW5fbG9jaygmZnJvbS0+bW92ZV9sb2NrKTsKKwkJaWYgKCFm cm9tLT5tb3ZlIHx8IGZlbmNlX2lzX2xhdGVyKGZyb20tPm1vdmUsIGZlbmNlKSkgeworCQkJZmVu Y2VfcHV0KGZyb20tPm1vdmUpOworCQkJZnJvbS0+bW92ZSA9IGZlbmNlX2dldChmZW5jZSk7CisJ CX0KKwkJc3Bpbl91bmxvY2soJmZyb20tPm1vdmVfbG9jayk7CisKKwkJdHRtX2JvX2ZyZWVfb2xk X25vZGUoYm8pOworCisJCWZlbmNlX3B1dChiby0+bW92aW5nKTsKKwkJYm8tPm1vdmluZyA9IGZl bmNlX2dldChmZW5jZSk7CisKKwl9IGVsc2UgeworCQkvKioKKwkJICogTGFzdCByZXNvcnQsIHdh aXQgZm9yIHRoZSBtb3ZlIHRvIGJlIGNvbXBsZXRlZC4KKwkJICoKKwkJICogU2hvdWxkIG5ldmVy IGhhcHBlbiBpbiBwcmF0aWNlLgorCQkgKi8KKworCQlyZXQgPSB0dG1fYm9fd2FpdChibywgZmFs c2UsIGZhbHNlKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisKKwkJaWYgKHRvLT5mbGFn cyAmIFRUTV9NRU1UWVBFX0ZMQUdfRklYRUQpIHsKKwkJCXR0bV90dF9kZXN0cm95KGJvLT50dG0p OworCQkJYm8tPnR0bSA9IE5VTEw7CisJCX0KKwkJdHRtX2JvX2ZyZWVfb2xkX25vZGUoYm8pOwor CX0KKworCSpvbGRfbWVtID0gKm5ld19tZW07CisJbmV3X21lbS0+bW1fbm9kZSA9IE5VTEw7CisK KwlyZXR1cm4gMDsKK30KK0VYUE9SVF9TWU1CT0wodHRtX2JvX3BpcGVsaW5lX21vdmUpOwpkaWZm IC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaCBiL2luY2x1ZGUvZHJtL3R0 bS90dG1fYm9fZHJpdmVyLmgKaW5kZXggNDRkZWEyMi4uZTJlYmU2NiAxMDA2NDQKLS0tIGEvaW5j bHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaAorKysgYi9pbmNsdWRlL2RybS90dG0vdHRtX2Jv X2RyaXZlci5oCkBAIC0yNTgsOCArMjU4LDEwIEBAIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdl cl9mdW5jIHsKICAqIHJlc2VydmVkIGJ5IHRoZSBUVE0gdm0gc3lzdGVtLgogICogQGlvX3Jlc2Vy dmVfbHJ1OiBPcHRpb25hbCBscnUgbGlzdCBmb3IgdW5yZXNlcnZpbmcgaW8gbWVtIHJlZ2lvbnMu CiAgKiBAaW9fcmVzZXJ2ZV9mYXN0cGF0aDogT25seSB1c2UgYmRldjo6ZHJpdmVyOjppb19tZW1f cmVzZXJ2ZSB0byBvYnRhaW4KKyAqIEBtb3ZlX2xvY2s6IGxvY2sgZm9yIG1vdmUgZmVuY2UKICAq IHN0YXRpYyBpbmZvcm1hdGlvbi4gYmRldjo6ZHJpdmVyOjppb19tZW1fZnJlZSBpcyBuZXZlciB1 c2VkLgogICogQGxydTogVGhlIGxydSBsaXN0IGZvciB0aGlzIG1lbW9yeSB0eXBlLgorICogQG1v dmU6IFRoZSBmZW5jZSBvZiB0aGUgbGFzdCBwaXBlbGluZWQgbW92ZSBvcGVyYXRpb24uCiAgKgog ICogVGhpcyBzdHJ1Y3R1cmUgaXMgdXNlZCB0byBpZGVudGlmeSBhbmQgbWFuYWdlIG1lbW9yeSB0 eXBlcyBmb3IgYSBkZXZpY2UuCiAgKiBJdCdzIHNldCB1cCBieSB0aGUgdHRtX2JvX2RyaXZlcjo6 aW5pdF9tZW1fdHlwZSBtZXRob2QuCkBAIC0yODYsNiArMjg4LDcgQEAgc3RydWN0IHR0bV9tZW1f dHlwZV9tYW5hZ2VyIHsKIAlzdHJ1Y3QgbXV0ZXggaW9fcmVzZXJ2ZV9tdXRleDsKIAlib29sIHVz ZV9pb19yZXNlcnZlX2xydTsKIAlib29sIGlvX3Jlc2VydmVfZmFzdHBhdGg7CisJc3BpbmxvY2tf dCBtb3ZlX2xvY2s7CiAKIAkvKgogCSAqIFByb3RlY3RlZCBieSBAaW9fcmVzZXJ2ZV9tdXRleDoK QEAgLTI5OCw2ICszMDEsMTEgQEAgc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyIHsKIAkgKi8K IAogCXN0cnVjdCBsaXN0X2hlYWQgbHJ1OworCisJLyoKKwkgKiBQcm90ZWN0ZWQgYnkgQG1vdmVf bG9jay4KKwkgKi8KKwlzdHJ1Y3QgZmVuY2UgKm1vdmU7CiB9OwogCiAvKioKQEAgLTEwMTQsNiAr MTAyMiwyMiBAQCBleHRlcm4gdm9pZCB0dG1fYm9fZnJlZV9vbGRfbm9kZShzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvKTsKIGV4dGVybiBpbnQgdHRtX2JvX21vdmVfYWNjZWxfY2xlYW51cChz dHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQkJCSAgICAgc3RydWN0IGZlbmNlICpmZW5j ZSwgYm9vbCBldmljdCwKIAkJCQkgICAgIHN0cnVjdCB0dG1fbWVtX3JlZyAqbmV3X21lbSk7CisK Ky8qKgorICogdHRtX2JvX3BpcGVsaW5lX21vdmUuCisgKgorICogQGJvOiBBIHBvaW50ZXIgdG8g YSBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QuCisgKiBAZmVuY2U6IEEgZmVuY2Ugb2JqZWN0IHRo YXQgc2lnbmFscyB3aGVuIG1vdmluZyBpcyBjb21wbGV0ZS4KKyAqIEBldmljdDogVGhpcyBpcyBh biBldmljdCBtb3ZlLiBEb24ndCByZXR1cm4gdW50aWwgdGhlIGJ1ZmZlciBpcyBpZGxlLgorICog QG5ld19tZW06IHN0cnVjdCB0dG1fbWVtX3JlZyBpbmRpY2F0aW5nIHdoZXJlIHRvIG1vdmUuCisg KgorICogRnVuY3Rpb24gZm9yIHBpcGVsaW5pbmcgYWNjZWxlcmF0ZWQgbW92ZXMuIEVpdGhlciBm cmVlIHRoZSBtZW1vcnkKKyAqIGltbWVkaWF0ZWx5IG9yIGhhbmcgaXQgb24gYSB0ZW1wb3Jhcnkg YnVmZmVyIG9iamVjdC4KKyAqLworaW50IHR0bV9ib19waXBlbGluZV9tb3ZlKHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqYm8sCisJCQkgc3RydWN0IGZlbmNlICpmZW5jZSwgYm9vbCBldmljdCwK KwkJCSBzdHJ1Y3QgdHRtX21lbV9yZWcgKm5ld19tZW0pOworCiAvKioKICAqIHR0bV9pb19wcm90 CiAgKgotLSAKMi41LjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1k ZXZlbAo=