From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: [PATCH 3/3] drm/i915/gtt: Clean up GGTT probing code Date: Fri, 18 Mar 2016 09:53:10 +0200 Message-ID: <1458287590-23680-3-git-send-email-joonas.lahtinen@linux.intel.com> References: <1458287590-23680-1-git-send-email-joonas.lahtinen@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id E93736EB5D for ; Fri, 18 Mar 2016 07:53:08 +0000 (UTC) In-Reply-To: <1458287590-23680-1-git-send-email-joonas.lahtinen@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel graphics driver community testing & development List-Id: intel-gfx@lists.freedesktop.org VXNlIGxlc3MgcG9pbnRlcnMgd2l0aCB0aGUgcHJvYmluZyBjb2RlLCBtYWtpbmcgaXQgbXVjaCBs ZXNzIGNvbmZ1c2luZwp0byByZWFkLgoKQ2M6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFA bGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBKb29uYXMgTGFodGluZW4gPGpvb25hcy5s YWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fZ3R0LmMgfCAxMDAgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuaCB8ICAgNSArLQogMiBmaWxlcyBjaGFuZ2Vk LCA0NiBpbnNlcnRpb25zKCspLCA1OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2d0dC5jCmluZGV4IDFhMGYwYjIuLjhhOWZhMDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2d0dC5jCkBAIC0zMDM0LDIwICszMDM0LDE2IEBAIHN0YXRpYyB2b2lkIGNodl9zZXR1cF9w cml2YXRlX3BwYXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCUk5MTVfV1JJ VEUoR0VOOF9QUklWQVRFX1BBVF9ISSwgcGF0ID4+IDMyKTsKIH0KIAotc3RhdGljIGludCBnZW44 X2dtY2hfcHJvYmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKLQkJCSAgIHU2NCAqZ3R0X3RvdGFs LAotCQkJICAgc2l6ZV90ICpzdG9sZW4sCi0JCQkgICBwaHlzX2FkZHJfdCAqbWFwcGFibGVfYmFz ZSwKLQkJCSAgIHU2NCAqbWFwcGFibGVfZW5kKQorc3RhdGljIGludCBnZW44X2dtY2hfcHJvYmUo c3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCkKIHsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZ2d0 dC0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKLQl1NjQgZ3R0X3NpemU7CiAJdTE2IHNuYl9nbWNoX2N0bDsKIAlpbnQgcmV0 OwogCiAJLyogVE9ETzogV2UncmUgbm90IGF3YXJlIG9mIG1hcHBhYmxlIGNvbnN0cmFpbnRzIG9u IGdlbjggeWV0ICovCi0JKm1hcHBhYmxlX2Jhc2UgPSBwY2lfcmVzb3VyY2Vfc3RhcnQoZGV2LT5w ZGV2LCAyKTsKLQkqbWFwcGFibGVfZW5kID0gcGNpX3Jlc291cmNlX2xlbihkZXYtPnBkZXYsIDIp OworCWdndHQtPm1hcHBhYmxlX2Jhc2UgPSBwY2lfcmVzb3VyY2Vfc3RhcnQoZGV2LT5wZGV2LCAy KTsKKwlnZ3R0LT5tYXBwYWJsZV9lbmQgPSBwY2lfcmVzb3VyY2VfbGVuKGRldi0+cGRldiwgMik7 CiAKIAlpZiAoIXBjaV9zZXRfZG1hX21hc2soZGV2LT5wZGV2LCBETUFfQklUX01BU0soMzkpKSkK IAkJcGNpX3NldF9jb25zaXN0ZW50X2RtYV9tYXNrKGRldi0+cGRldiwgRE1BX0JJVF9NQVNLKDM5 KSk7CkBAIC0zMDU1LDU1ICszMDUxLDUxIEBAIHN0YXRpYyBpbnQgZ2VuOF9nbWNoX3Byb2JlKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJcGNpX3JlYWRfY29uZmlnX3dvcmQoZGV2LT5wZGV2LCBT TkJfR01DSF9DVFJMLCAmc25iX2dtY2hfY3RsKTsKIAogCWlmIChJTlRFTF9JTkZPKGRldiktPmdl biA+PSA5KSB7Ci0JCSpzdG9sZW4gPSBnZW45X2dldF9zdG9sZW5fc2l6ZShzbmJfZ21jaF9jdGwp OwotCQlndHRfc2l6ZSA9IGdlbjhfZ2V0X3RvdGFsX2d0dF9zaXplKHNuYl9nbWNoX2N0bCk7CisJ CWdndHQtPnN0b2xlbl9zaXplID0gZ2VuOV9nZXRfc3RvbGVuX3NpemUoc25iX2dtY2hfY3RsKTsK KwkJZ2d0dC0+c2l6ZSA9IGdlbjhfZ2V0X3RvdGFsX2d0dF9zaXplKHNuYl9nbWNoX2N0bCk7CiAJ fSBlbHNlIGlmIChJU19DSEVSUllWSUVXKGRldikpIHsKLQkJKnN0b2xlbiA9IGNodl9nZXRfc3Rv bGVuX3NpemUoc25iX2dtY2hfY3RsKTsKLQkJZ3R0X3NpemUgPSBjaHZfZ2V0X3RvdGFsX2d0dF9z aXplKHNuYl9nbWNoX2N0bCk7CisJCWdndHQtPnN0b2xlbl9zaXplID0gY2h2X2dldF9zdG9sZW5f c2l6ZShzbmJfZ21jaF9jdGwpOworCQlnZ3R0LT5zaXplID0gY2h2X2dldF90b3RhbF9ndHRfc2l6 ZShzbmJfZ21jaF9jdGwpOwogCX0gZWxzZSB7Ci0JCSpzdG9sZW4gPSBnZW44X2dldF9zdG9sZW5f c2l6ZShzbmJfZ21jaF9jdGwpOwotCQlndHRfc2l6ZSA9IGdlbjhfZ2V0X3RvdGFsX2d0dF9zaXpl KHNuYl9nbWNoX2N0bCk7CisJCWdndHQtPnN0b2xlbl9zaXplID0gZ2VuOF9nZXRfc3RvbGVuX3Np emUoc25iX2dtY2hfY3RsKTsKKwkJZ2d0dC0+c2l6ZSA9IGdlbjhfZ2V0X3RvdGFsX2d0dF9zaXpl KHNuYl9nbWNoX2N0bCk7CiAJfQogCi0JKmd0dF90b3RhbCA9IChndHRfc2l6ZSAvIHNpemVvZihn ZW44X3B0ZV90KSkgPDwgUEFHRV9TSElGVDsKKwlnZ3R0LT5iYXNlLnRvdGFsID0gKGdndHQtPnNp emUgLyBzaXplb2YoZ2VuOF9wdGVfdCkpIDw8IFBBR0VfU0hJRlQ7CiAKIAlpZiAoSVNfQ0hFUlJZ VklFVyhkZXYpIHx8IElTX0JST1hUT04oZGV2KSkKIAkJY2h2X3NldHVwX3ByaXZhdGVfcHBhdChk ZXZfcHJpdik7CiAJZWxzZQogCQliZHdfc2V0dXBfcHJpdmF0ZV9wcGF0KGRldl9wcml2KTsKIAot CXJldCA9IGdndHRfcHJvYmVfY29tbW9uKGRldiwgZ3R0X3NpemUpOwotCi0JZGV2X3ByaXYtPmdn dHQuYmFzZS5jbGVhcl9yYW5nZSA9IGdlbjhfZ2d0dF9jbGVhcl9yYW5nZTsKLQlkZXZfcHJpdi0+ Z2d0dC5iYXNlLmluc2VydF9lbnRyaWVzID0gZ2VuOF9nZ3R0X2luc2VydF9lbnRyaWVzOwotCWRl dl9wcml2LT5nZ3R0LmJhc2UuYmluZF92bWEgPSBnZ3R0X2JpbmRfdm1hOwotCWRldl9wcml2LT5n Z3R0LmJhc2UudW5iaW5kX3ZtYSA9IGdndHRfdW5iaW5kX3ZtYTsKKwlyZXQgPSBnZ3R0X3Byb2Jl X2NvbW1vbihkZXYsIGdndHQtPnNpemUpOwogCisJZ2d0dC0+YmFzZS5jbGVhcl9yYW5nZSA9IGdl bjhfZ2d0dF9jbGVhcl9yYW5nZTsKIAlpZiAoSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCi0JCWRl dl9wcml2LT5nZ3R0LmJhc2UuaW5zZXJ0X2VudHJpZXMgPSBnZW44X2dndHRfaW5zZXJ0X2VudHJp ZXNfX0JLTDsKKwkJZ2d0dC0+YmFzZS5pbnNlcnRfZW50cmllcyA9IGdlbjhfZ2d0dF9pbnNlcnRf ZW50cmllc19fQktMOworCWVsc2UKKwkJZ2d0dC0+YmFzZS5pbnNlcnRfZW50cmllcyA9IGdlbjhf Z2d0dF9pbnNlcnRfZW50cmllczsKKwlnZ3R0LT5iYXNlLmJpbmRfdm1hID0gZ2d0dF9iaW5kX3Zt YTsKKwlnZ3R0LT5iYXNlLnVuYmluZF92bWEgPSBnZ3R0X3VuYmluZF92bWE7CisKIAogCXJldHVy biByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgZ2VuNl9nbWNoX3Byb2JlKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCi0JCQkgICB1NjQgKmd0dF90b3RhbCwKLQkJCSAgIHNpemVfdCAqc3RvbGVuLAotCQkJ ICAgcGh5c19hZGRyX3QgKm1hcHBhYmxlX2Jhc2UsCi0JCQkgICB1NjQgKm1hcHBhYmxlX2VuZCkK K3N0YXRpYyBpbnQgZ2VuNl9nbWNoX3Byb2JlKHN0cnVjdCBpOTE1X2dndHQgKmdndHQpCiB7Ci0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQl1 bnNpZ25lZCBpbnQgZ3R0X3NpemU7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGdndHQtPmJh c2UuZGV2OwogCXUxNiBzbmJfZ21jaF9jdGw7CiAJaW50IHJldDsKIAotCSptYXBwYWJsZV9iYXNl ID0gcGNpX3Jlc291cmNlX3N0YXJ0KGRldi0+cGRldiwgMik7Ci0JKm1hcHBhYmxlX2VuZCA9IHBj aV9yZXNvdXJjZV9sZW4oZGV2LT5wZGV2LCAyKTsKKwlnZ3R0LT5tYXBwYWJsZV9iYXNlID0gcGNp X3Jlc291cmNlX3N0YXJ0KGRldi0+cGRldiwgMik7CisJZ2d0dC0+bWFwcGFibGVfZW5kID0gcGNp X3Jlc291cmNlX2xlbihkZXYtPnBkZXYsIDIpOwogCiAJLyogNjQvNTEyTUIgaXMgdGhlIGN1cnJl bnQgbWluL21heCB3ZSBhY3R1YWxseSBrbm93IG9mLCBidXQgdGhpcyBpcyBqdXN0CiAJICogYSBj b2Fyc2Ugc2FuaXR5IGNoZWNrLgogCSAqLwotCWlmICgoKm1hcHBhYmxlX2VuZCA8ICg2NDw8MjAp IHx8ICgqbWFwcGFibGVfZW5kID4gKDUxMjw8MjApKSkpIHsKLQkJRFJNX0VSUk9SKCJVbmtub3du IEdNQURSIHNpemUgKCVsbHgpXG4iLCAqbWFwcGFibGVfZW5kKTsKKwlpZiAoKGdndHQtPm1hcHBh YmxlX2VuZCA8ICg2NDw8MjApIHx8IChnZ3R0LT5tYXBwYWJsZV9lbmQgPiAoNTEyPDwyMCkpKSkg eworCQlEUk1fRVJST1IoIlVua25vd24gR01BRFIgc2l6ZSAoJWxseClcbiIsIGdndHQtPm1hcHBh YmxlX2VuZCk7CiAJCXJldHVybiAtRU5YSU87CiAJfQogCkBAIC0zMTExLDE3ICszMTAzLDE2IEBA IHN0YXRpYyBpbnQgZ2VuNl9nbWNoX3Byb2JlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCXBj aV9zZXRfY29uc2lzdGVudF9kbWFfbWFzayhkZXYtPnBkZXYsIERNQV9CSVRfTUFTSyg0MCkpOwog CXBjaV9yZWFkX2NvbmZpZ193b3JkKGRldi0+cGRldiwgU05CX0dNQ0hfQ1RSTCwgJnNuYl9nbWNo X2N0bCk7CiAKLQkqc3RvbGVuID0gZ2VuNl9nZXRfc3RvbGVuX3NpemUoc25iX2dtY2hfY3RsKTsK LQotCWd0dF9zaXplID0gZ2VuNl9nZXRfdG90YWxfZ3R0X3NpemUoc25iX2dtY2hfY3RsKTsKLQkq Z3R0X3RvdGFsID0gKGd0dF9zaXplIC8gc2l6ZW9mKGdlbjZfcHRlX3QpKSA8PCBQQUdFX1NISUZU OworCWdndHQtPnN0b2xlbl9zaXplID0gZ2VuNl9nZXRfc3RvbGVuX3NpemUoc25iX2dtY2hfY3Rs KTsKKwlnZ3R0LT5zaXplID0gZ2VuNl9nZXRfdG90YWxfZ3R0X3NpemUoc25iX2dtY2hfY3RsKTsK KwlnZ3R0LT5iYXNlLnRvdGFsID0gKGdndHQtPnNpemUgLyBzaXplb2YoZ2VuNl9wdGVfdCkpIDw8 IFBBR0VfU0hJRlQ7CiAKLQlyZXQgPSBnZ3R0X3Byb2JlX2NvbW1vbihkZXYsIGd0dF9zaXplKTsK KwlyZXQgPSBnZ3R0X3Byb2JlX2NvbW1vbihkZXYsIGdndHQtPnNpemUpOwogCi0JZGV2X3ByaXYt PmdndHQuYmFzZS5jbGVhcl9yYW5nZSA9IGdlbjZfZ2d0dF9jbGVhcl9yYW5nZTsKLQlkZXZfcHJp di0+Z2d0dC5iYXNlLmluc2VydF9lbnRyaWVzID0gZ2VuNl9nZ3R0X2luc2VydF9lbnRyaWVzOwot CWRldl9wcml2LT5nZ3R0LmJhc2UuYmluZF92bWEgPSBnZ3R0X2JpbmRfdm1hOwotCWRldl9wcml2 LT5nZ3R0LmJhc2UudW5iaW5kX3ZtYSA9IGdndHRfdW5iaW5kX3ZtYTsKKwlnZ3R0LT5iYXNlLmNs ZWFyX3JhbmdlID0gZ2VuNl9nZ3R0X2NsZWFyX3JhbmdlOworCWdndHQtPmJhc2UuaW5zZXJ0X2Vu dHJpZXMgPSBnZW42X2dndHRfaW5zZXJ0X2VudHJpZXM7CisJZ2d0dC0+YmFzZS5iaW5kX3ZtYSA9 IGdndHRfYmluZF92bWE7CisJZ2d0dC0+YmFzZS51bmJpbmRfdm1hID0gZ2d0dF91bmJpbmRfdm1h OwogCiAJcmV0dXJuIHJldDsKIH0KQEAgLTMxMzQsMTIgKzMxMjUsOSBAQCBzdGF0aWMgdm9pZCBn ZW42X2dtY2hfcmVtb3ZlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQogCWZyZWVfc2Ny YXRjaF9wYWdlKHZtLT5kZXYsIHZtLT5zY3JhdGNoX3BhZ2UpOwogfQogCi1zdGF0aWMgaW50IGk5 MTVfZ21jaF9wcm9iZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAotCQkJICAgdTY0ICpndHRfdG90 YWwsCi0JCQkgICBzaXplX3QgKnN0b2xlbiwKLQkJCSAgIHBoeXNfYWRkcl90ICptYXBwYWJsZV9i YXNlLAotCQkJICAgdTY0ICptYXBwYWJsZV9lbmQpCitzdGF0aWMgaW50IGk5MTVfZ21jaF9wcm9i ZShzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0KQogeworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBn Z3R0LT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwogCWludCByZXQ7CiAKQEAgLTMxNDksMTUgKzMxMzcsMTYgQEAgc3RhdGlj IGludCBpOTE1X2dtY2hfcHJvYmUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJcmV0dXJuIC1F SU87CiAJfQogCi0JaW50ZWxfZ3R0X2dldChndHRfdG90YWwsIHN0b2xlbiwgbWFwcGFibGVfYmFz ZSwgbWFwcGFibGVfZW5kKTsKKwlpbnRlbF9ndHRfZ2V0KCZnZ3R0LT5iYXNlLnRvdGFsLCAmZ2d0 dC0+c3RvbGVuX3NpemUsCisJCSAgICAgICZnZ3R0LT5tYXBwYWJsZV9iYXNlLCAmZ2d0dC0+bWFw cGFibGVfZW5kKTsKIAotCWRldl9wcml2LT5nZ3R0LmRvX2lkbGVfbWFwcyA9IG5lZWRzX2lkbGVf bWFwcyhkZXZfcHJpdi0+ZGV2KTsKLQlkZXZfcHJpdi0+Z2d0dC5iYXNlLmluc2VydF9lbnRyaWVz ID0gaTkxNV9nZ3R0X2luc2VydF9lbnRyaWVzOwotCWRldl9wcml2LT5nZ3R0LmJhc2UuY2xlYXJf cmFuZ2UgPSBpOTE1X2dndHRfY2xlYXJfcmFuZ2U7Ci0JZGV2X3ByaXYtPmdndHQuYmFzZS5iaW5k X3ZtYSA9IGdndHRfYmluZF92bWE7Ci0JZGV2X3ByaXYtPmdndHQuYmFzZS51bmJpbmRfdm1hID0g Z2d0dF91bmJpbmRfdm1hOworCWdndHQtPmRvX2lkbGVfbWFwcyA9IG5lZWRzX2lkbGVfbWFwcyhk ZXZfcHJpdi0+ZGV2KTsKKwlnZ3R0LT5iYXNlLmluc2VydF9lbnRyaWVzID0gaTkxNV9nZ3R0X2lu c2VydF9lbnRyaWVzOworCWdndHQtPmJhc2UuY2xlYXJfcmFuZ2UgPSBpOTE1X2dndHRfY2xlYXJf cmFuZ2U7CisJZ2d0dC0+YmFzZS5iaW5kX3ZtYSA9IGdndHRfYmluZF92bWE7CisJZ2d0dC0+YmFz ZS51bmJpbmRfdm1hID0gZ2d0dF91bmJpbmRfdm1hOwogCi0JaWYgKHVubGlrZWx5KGRldl9wcml2 LT5nZ3R0LmRvX2lkbGVfbWFwcykpCisJaWYgKHVubGlrZWx5KGdndHQtPmRvX2lkbGVfbWFwcykp CiAJCURSTV9JTkZPKCJhcHBseWluZyBJcm9ubGFrZSBxdWlya3MgZm9yIGludGVsX2lvbW11XG4i KTsKIAogCXJldHVybiAwOwpAQCAtMzE5OCw4ICszMTg3LDcgQEAgaW50IGk5MTVfZ2VtX2d0dF9p bml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJZ2d0dC0+YmFzZS5kZXYgPSBkZXY7CiAJZ2d0 dC0+YmFzZS5pc19nZ3R0ID0gdHJ1ZTsKIAotCXJldCA9IGdndHQtPnByb2JlKGRldiwgJmdndHQt PmJhc2UudG90YWwsICZnZ3R0LT5zdG9sZW5fc2l6ZSwKLQkJCSAgJmdndHQtPm1hcHBhYmxlX2Jh c2UsICZnZ3R0LT5tYXBwYWJsZV9lbmQpOworCXJldCA9IGdndHQtPnByb2JlKGdndHQpOwogCWlm IChyZXQpCiAJCXJldHVybiByZXQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2d0dC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKaW5k ZXggMjkwNmJiMS4uZDgwNGJlMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZ3R0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmgKQEAg LTM0Niw2ICszNDYsNyBAQCBzdHJ1Y3QgaTkxNV9nZ3R0IHsKIAlzaXplX3Qgc3RvbGVuX3VzYWJs ZV9zaXplOwkvKiBUb3RhbCBzaXplIG1pbnVzIEJJT1MgcmVzZXJ2ZWQgKi8KIAlzaXplX3Qgc3Rv bGVuX3Jlc2VydmVkX2Jhc2U7CiAJc2l6ZV90IHN0b2xlbl9yZXNlcnZlZF9zaXplOworCXNpemVf dCBzaXplOwkJCS8qIFRvdGFsIHNpemUgb2YgR2xvYmFsIEdUVCAqLwogCXU2NCBtYXBwYWJsZV9l bmQ7CQkvKiBFbmQgb2Zmc2V0IHRoYXQgd2UgY2FuIENQVSBtYXAgKi8KIAlzdHJ1Y3QgaW9fbWFw cGluZyAqbWFwcGFibGU7CS8qIE1hcHBpbmcgdG8gb3VyIENQVSBtYXBwYWJsZSByZWdpb24gKi8K IAlwaHlzX2FkZHJfdCBtYXBwYWJsZV9iYXNlOwkvKiBQQSBvZiBvdXIgR01BRFIgKi8KQEAgLTM1 Nyw5ICszNTgsNyBAQCBzdHJ1Y3QgaTkxNV9nZ3R0IHsKIAogCWludCBtdHJyOwogCi0JaW50ICgq cHJvYmUpKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHU2NCAqZ3R0X3RvdGFsLAotCQkgICAgIHNp emVfdCAqc3RvbGVuLCBwaHlzX2FkZHJfdCAqbWFwcGFibGVfYmFzZSwKLQkJICAgICB1NjQgKm1h cHBhYmxlX2VuZCk7CisJaW50ICgqcHJvYmUpKHN0cnVjdCBpOTE1X2dndHQgKmdndHQpOwogfTsK IAogc3RydWN0IGk5MTVfaHdfcHBndHQgewotLSAKMi41LjAKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=