From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: [PATCH 5/9] drm/i915/gtt: Generalize alloc_pd Date: Tue, 11 Jun 2019 20:27:27 +0300 Message-ID: <20190611172731.19174-5-mika.kuoppala@linux.intel.com> References: <20190611172731.19174-1-mika.kuoppala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 934C4891D2 for ; Tue, 11 Jun 2019 17:27:35 +0000 (UTC) In-Reply-To: <20190611172731.19174-1-mika.kuoppala@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-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org QWxsb2NhdGUgYWxsIHBhZ2UgZGlyZWN0b3J5IHZhcmlhbnRzIHdpdGggYWxsb2NfcGQuIEFzCnRo ZSBsdmwzIGFuZCBsdmw0IHZhcmlhbnRzIGRpZmZlciBpbiBtYW5pcHVsYXRpb24sIHdlCm5lZWQg dG8gY2hlY2sgZm9yIGV4aXN0ZW5jZSBvZiBiYWNraW5nIHBoeXMgcGFnZSBiZWZvcmUgYWNjZXNz aW5nCml0LgoKU2lnbmVkLW9mZi1ieTogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBsaW51 eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMgfCAx MDAgKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQyIGluc2Vy dGlvbnMoKyksIDU4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMK aW5kZXggNzNhYWY5NDgxZGFiLi5iYmNmM2JlMjhlMTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2d0dC5jCkBAIC03MTcsMTAgKzcxNywxNyBAQCBzdGF0aWMgc3RydWN0IGk5MTVfcGFnZV9k aXJlY3RvcnkgKmFsbG9jX3BkKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtKQogCXJldHVy biBwZDsKIH0KIAorc3RhdGljIGlubGluZSBib29sIHBkX2hhc19waHlzX3BhZ2UoY29uc3Qgc3Ry dWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKiBjb25zdCBwZCkKK3sKKwlyZXR1cm4gcGQtPmJhc2Uu cGFnZTsKK30KKwogc3RhdGljIHZvaWQgZnJlZV9wZChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNl ICp2bSwKIAkJICAgIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZCkKIHsKLQljbGVhbnVw X3B4KHZtLCBwZCk7CisJaWYgKGxpa2VseShwZF9oYXNfcGh5c19wYWdlKHBkKSkpCisJCWNsZWFu dXBfcHgodm0sIHBkKTsKKwogCWtmcmVlKHBkKTsKIH0KIApAQCAtNzMyLDM3ICs3MzksMTIgQEAg c3RhdGljIHZvaWQgaW5pdF9wZF93aXRoX3BhZ2Uoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAq dm0sCiAJbWVtc2V0X3AocGQtPmVudHJ5LCBwdCwgNTEyKTsKIH0KIAotc3RhdGljIHN0cnVjdCBp OTE1X3BhZ2VfZGlyZWN0b3J5ICphbGxvY19wZHAoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAq dm0pCi17Ci0Jc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkcDsKLQotCXBkcCA9IF9fYWxs b2NfcGQoaTkxNV9wZHBlc19wZXJfcGRwKHZtKSk7Ci0JaWYgKCFwZHApCi0JCXJldHVybiBFUlJf UFRSKC1FTk9NRU0pOwotCi0JaWYgKGk5MTVfdm1faXNfNGx2bCh2bSkpIHsKLQkJaWYgKHVubGlr ZWx5KHNldHVwX3B4KHZtLCBwZHApKSkgewotCQkJa2ZyZWUocGRwKTsKLQkJCXJldHVybiBFUlJf UFRSKC1FTk9NRU0pOwotCQl9Ci0JfQotCi0JcmV0dXJuIHBkcDsKLX0KLQotc3RhdGljIHZvaWQg ZnJlZV9wZHAoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCi0JCSAgICAgc3RydWN0IGk5 MTVfcGFnZV9kaXJlY3RvcnkgKnBkcCkKLXsKLQlpZiAoaTkxNV92bV9pc180bHZsKHZtKSkKLQkJ Y2xlYW51cF9weCh2bSwgcGRwKTsKLQotCWtmcmVlKHBkcCk7Ci19Ci0KIHN0YXRpYyB2b2lkIGlu aXRfcGQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJCSAgICBzdHJ1Y3QgaTkxNV9w YWdlX2RpcmVjdG9yeSAqIGNvbnN0IHBkLAogCQkgICAgc3RydWN0IGk5MTVfcGFnZV9kaXJlY3Rv cnkgKiBjb25zdCB0bykKIHsKKwlHRU1fREVCVUdfQlVHX09OKCFwZF9oYXNfcGh5c19wYWdlKHBk KSk7CisKIAlmaWxsX3B4KHZtLCBwZCwgZ2VuOF9wZHBlX2VuY29kZShweF9kbWEodG8pLCBJOTE1 X0NBQ0hFX0xMQykpOwogCW1lbXNldF9wKHBkLT5lbnRyeSwgdG8sIDUxMik7CiB9CkBAIC04NDAs MTQgKzgyMiwxMyBAQCBzdGF0aWMgYm9vbCBnZW44X3BwZ3R0X2NsZWFyX3BkKHN0cnVjdCBpOTE1 X2FkZHJlc3Nfc3BhY2UgKnZtLAogCXJldHVybiAhYXRvbWljX3JlYWQoJnBkLT51c2VkKTsKIH0K IAotc3RhdGljIHZvaWQgZ2VuOF9wcGd0dF9zZXRfcGRwZShzdHJ1Y3QgaTkxNV9hZGRyZXNzX3Nw YWNlICp2bSwKLQkJCQlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGRwLAorc3RhdGljIHZv aWQgZ2VuOF9wcGd0dF9zZXRfcGRwZShzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGRwLAog CQkJCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZCwKIAkJCQl1bnNpZ25lZCBpbnQgcGRw ZSkKIHsKIAlnZW44X3BwZ3R0X3BkcGVfdCAqdmFkZHI7CiAKLQlpZiAoIWk5MTVfdm1faXNfNGx2 bCh2bSkpCisJaWYgKCFwZF9oYXNfcGh5c19wYWdlKHBkcCkpCiAJCXJldHVybjsKIAogCXZhZGRy ID0ga21hcF9hdG9taWNfcHgocGRwKTsKQEAgLTg3NSw3ICs4NTYsNyBAQCBzdGF0aWMgYm9vbCBn ZW44X3BwZ3R0X2NsZWFyX3BkcChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKIAogCQlz cGluX2xvY2soJnBkcC0+bG9jayk7CiAJCWlmICghYXRvbWljX3JlYWQoJnBkLT51c2VkKSkgewot CQkJZ2VuOF9wcGd0dF9zZXRfcGRwZSh2bSwgcGRwLCB2bS0+c2NyYXRjaF9wZCwgcGRwZSk7CisJ CQlnZW44X3BwZ3R0X3NldF9wZHBlKHBkcCwgdm0tPnNjcmF0Y2hfcGQsIHBkcGUpOwogCQkJcGRw LT5lbnRyeVtwZHBlXSA9IHZtLT5zY3JhdGNoX3BkOwogCiAJCQlHRU1fQlVHX09OKCFhdG9taWNf cmVhZCgmcGRwLT51c2VkKSk7CkBAIC05MzYsNyArOTE3LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9w cGd0dF9jbGVhcl80bHZsKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCQl9CiAJCXNw aW5fdW5sb2NrKCZwbWw0LT5sb2NrKTsKIAkJaWYgKGZyZWUpCi0JCQlmcmVlX3BkcCh2bSwgcGRw KTsKKwkJCWZyZWVfcGQodm0sIHBkcCk7CiAJfQogfQogCkBAIC0xMjQwLDcgKzEyMjEsNyBAQCBz dGF0aWMgaW50IGdlbjhfaW5pdF9zY3JhdGNoKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZt KQogCX0KIAogCWlmIChpOTE1X3ZtX2lzXzRsdmwodm0pKSB7Ci0JCXZtLT5zY3JhdGNoX3BkcCA9 IGFsbG9jX3BkcCh2bSk7CisJCXZtLT5zY3JhdGNoX3BkcCA9IGFsbG9jX3BkKHZtKTsKIAkJaWYg KElTX0VSUih2bS0+c2NyYXRjaF9wZHApKSB7CiAJCQlyZXQgPSBQVFJfRVJSKHZtLT5zY3JhdGNo X3BkcCk7CiAJCQlnb3RvIGZyZWVfcGQ7CkBAIC0xMzAyLDcgKzEyODMsNyBAQCBzdGF0aWMgdm9p ZCBnZW44X2ZyZWVfc2NyYXRjaChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSkKIAkJcmV0 dXJuOwogCiAJaWYgKGk5MTVfdm1faXNfNGx2bCh2bSkpCi0JCWZyZWVfcGRwKHZtLCB2bS0+c2Ny YXRjaF9wZHApOworCQlmcmVlX3BkKHZtLCB2bS0+c2NyYXRjaF9wZHApOwogCWZyZWVfcGQodm0s IHZtLT5zY3JhdGNoX3BkKTsKIAlmcmVlX3B0KHZtLCB2bS0+c2NyYXRjaF9wdCk7CiAJY2xlYW51 cF9zY3JhdGNoX3BhZ2Uodm0pOwpAQCAtMTMyMiw3ICsxMzAzLDcgQEAgc3RhdGljIHZvaWQgZ2Vu OF9wcGd0dF9jbGVhbnVwXzNsdmwoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAJCWZy ZWVfcGQodm0sIHBkcC0+ZW50cnlbaV0pOwogCX0KIAotCWZyZWVfcGRwKHZtLCBwZHApOworCWZy ZWVfcGQodm0sIHBkcCk7CiB9CiAKIHN0YXRpYyB2b2lkIGdlbjhfcHBndHRfY2xlYW51cF80bHZs KHN0cnVjdCBpOTE1X3BwZ3R0ICpwcGd0dCkKQEAgLTE0MjksNyArMTQxMCw3IEBAIHN0YXRpYyBp bnQgZ2VuOF9wcGd0dF9hbGxvY19wZHAoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCiAK IAkJCW9sZCA9IGNtcHhjaGcoJnBkcC0+ZW50cnlbcGRwZV0sIHZtLT5zY3JhdGNoX3BkLCBwZCk7 CiAJCQlpZiAob2xkID09IHZtLT5zY3JhdGNoX3BkKSB7Ci0JCQkJZ2VuOF9wcGd0dF9zZXRfcGRw ZSh2bSwgcGRwLCBwZCwgcGRwZSk7CisJCQkJZ2VuOF9wcGd0dF9zZXRfcGRwZShwZHAsIHBkLCBw ZHBlKTsKIAkJCQlhdG9taWNfaW5jKCZwZHAtPnVzZWQpOwogCQkJfSBlbHNlIHsKIAkJCQlmcmVl X3BkKHZtLCBwZCk7CkBAIC0xNDU1LDcgKzE0MzYsNyBAQCBzdGF0aWMgaW50IGdlbjhfcHBndHRf YWxsb2NfcGRwKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogdW53aW5kX3BkOgogCXNw aW5fbG9jaygmcGRwLT5sb2NrKTsKIAlpZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmcGQtPnVzZWQp KSB7Ci0JCWdlbjhfcHBndHRfc2V0X3BkcGUodm0sIHBkcCwgdm0tPnNjcmF0Y2hfcGQsIHBkcGUp OworCQlnZW44X3BwZ3R0X3NldF9wZHBlKHBkcCwgdm0tPnNjcmF0Y2hfcGQsIHBkcGUpOwogCQlH RU1fQlVHX09OKCFhdG9taWNfcmVhZCgmcGRwLT51c2VkKSk7CiAJCWF0b21pY19kZWMoJnBkcC0+ dXNlZCk7CiAJCWZyZWVfcGQodm0sIHBkKTsKQEAgLTE0ODUsMTMgKzE0NjYsMTIgQEAgc3RhdGlj IGludCBnZW44X3BwZ3R0X2FsbG9jXzRsdmwoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0s CiAKIAlzcGluX2xvY2soJnBtbDQtPmxvY2spOwogCWdlbjhfZm9yX2VhY2hfcG1sNGUocGRwLCBw bWw0LCBzdGFydCwgbGVuZ3RoLCBwbWw0ZSkgewotCiAJCWlmIChwZHAgPT0gdm0tPnNjcmF0Y2hf cGRwKSB7CiAJCQlzdHJ1Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqb2xkOwogCiAJCQlzcGluX3Vu bG9jaygmcG1sNC0+bG9jayk7CiAKLQkJCXBkcCA9IGFsbG9jX3BkcCh2bSk7CisJCQlwZHAgPSBh bGxvY19wZCh2bSk7CiAJCQlpZiAoSVNfRVJSKHBkcCkpCiAJCQkJZ290byB1bndpbmQ7CiAKQEAg LTE1MDEsNyArMTQ4MSw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9wcGd0dF9hbGxvY180bHZsKHN0cnVj dCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCQkJaWYgKG9sZCA9PSB2bS0+c2NyYXRjaF9wZHAp IHsKIAkJCQlnZW44X3BwZ3R0X3NldF9wbWw0ZShwbWw0LCBwZHAsIHBtbDRlKTsKIAkJCX0gZWxz ZSB7Ci0JCQkJZnJlZV9wZHAodm0sIHBkcCk7CisJCQkJZnJlZV9wZCh2bSwgcGRwKTsKIAkJCQlw ZHAgPSBvbGQ7CiAJCQl9CiAKQEAgLTE1MjUsNyArMTUwNSw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9w cGd0dF9hbGxvY180bHZsKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAogCXNwaW5fbG9j aygmcG1sNC0+bG9jayk7CiAJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJnBkcC0+dXNlZCkpIHsK IAkJZ2VuOF9wcGd0dF9zZXRfcG1sNGUocG1sNCwgdm0tPnNjcmF0Y2hfcGRwLCBwbWw0ZSk7Ci0J CWZyZWVfcGRwKHZtLCBwZHApOworCQlmcmVlX3BkKHZtLCBwZHApOwogCX0KIAlzcGluX3VubG9j aygmcG1sNC0+bG9jayk7CiB1bndpbmQ6CkBAIC0xNTQ4LDcgKzE1MjgsNyBAQCBzdGF0aWMgaW50 IGdlbjhfcHJlYWxsb2NhdGVfdG9wX2xldmVsX3BkcChzdHJ1Y3QgaTkxNV9wcGd0dCAqcHBndHQp CiAJCQlnb3RvIHVud2luZDsKIAogCQlpbml0X3BkX3dpdGhfcGFnZSh2bSwgcGQsIHZtLT5zY3Jh dGNoX3B0KTsKLQkJZ2VuOF9wcGd0dF9zZXRfcGRwZSh2bSwgcGRwLCBwZCwgcGRwZSk7CisJCWdl bjhfcHBndHRfc2V0X3BkcGUocGRwLCBwZCwgcGRwZSk7CiAKIAkJYXRvbWljX2luYygmcGRwLT51 c2VkKTsKIAl9CkBAIC0xNTYwLDcgKzE1NDAsNyBAQCBzdGF0aWMgaW50IGdlbjhfcHJlYWxsb2Nh dGVfdG9wX2xldmVsX3BkcChzdHJ1Y3QgaTkxNV9wcGd0dCAqcHBndHQpCiB1bndpbmQ6CiAJc3Rh cnQgLT0gZnJvbTsKIAlnZW44X2Zvcl9lYWNoX3BkcGUocGQsIHBkcCwgZnJvbSwgc3RhcnQsIHBk cGUpIHsKLQkJZ2VuOF9wcGd0dF9zZXRfcGRwZSh2bSwgcGRwLCB2bS0+c2NyYXRjaF9wZCwgcGRw ZSk7CisJCWdlbjhfcHBndHRfc2V0X3BkcGUocGRwLCB2bS0+c2NyYXRjaF9wZCwgcGRwZSk7CiAJ CWZyZWVfcGQodm0sIHBkKTsKIAl9CiAJYXRvbWljX3NldCgmcGRwLT51c2VkLCAwKTsKQEAgLTE1 OTIsNyArMTU3Miw3IEBAIHN0YXRpYyB2b2lkIHBwZ3R0X2luaXQoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmk5MTUsCiBzdGF0aWMgc3RydWN0IGk5MTVfcHBndHQgKmdlbjhfcHBndHRfY3JlYXRl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewogCXN0cnVjdCBpOTE1X3BwZ3R0ICpw cGd0dDsKLQlpbnQgZXJyOworCWludCByZXQ7CiAKIAlwcGd0dCA9IGt6YWxsb2Moc2l6ZW9mKCpw cGd0dCksIEdGUF9LRVJORUwpOwogCWlmICghcHBndHQpCkBAIC0xNjE0LDE3ICsxNTk0LDIxIEBA IHN0YXRpYyBzdHJ1Y3QgaTkxNV9wcGd0dCAqZ2VuOF9wcGd0dF9jcmVhdGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUpCiAJaWYgKElTX0NIRVJSWVZJRVcoaTkxNSkgfHwgSVNfQlJPWFRP TihpOTE1KSkKIAkJcHBndHQtPnZtLnB0X2ttYXBfd2MgPSB0cnVlOwogCi0JZXJyID0gZ2VuOF9p bml0X3NjcmF0Y2goJnBwZ3R0LT52bSk7Ci0JaWYgKGVycikKKwlyZXQgPSBnZW44X2luaXRfc2Ny YXRjaCgmcHBndHQtPnZtKTsKKwlpZiAocmV0KQogCQlnb3RvIGVycl9mcmVlOwogCi0JcHBndHQt PnBkID0gYWxsb2NfcGRwKCZwcGd0dC0+dm0pOwotCWlmIChJU19FUlIocHBndHQtPnBkKSkgewot CQllcnIgPSBQVFJfRVJSKHBwZ3R0LT5wZCk7Ci0JCWdvdG8gZXJyX3NjcmF0Y2g7CisJcHBndHQt PnBkID0gX19hbGxvY19wZChpOTE1X3BkcGVzX3Blcl9wZHAoJnBwZ3R0LT52bSkpOworCWlmICgh cHBndHQtPnBkKSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gZXJyX2ZyZWVfc2NyYXRjaDsK IAl9CiAKIAlpZiAoaTkxNV92bV9pc180bHZsKCZwcGd0dC0+dm0pKSB7CisJCXJldCA9IHNldHVw X3B4KCZwcGd0dC0+dm0sIHBwZ3R0LT5wZCk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycl9mcmVl X3BkcDsKKwogCQlpbml0X3BkKCZwcGd0dC0+dm0sIHBwZ3R0LT5wZCwgcHBndHQtPnZtLnNjcmF0 Y2hfcGRwKTsKIAogCQlwcGd0dC0+dm0uYWxsb2NhdGVfdmFfcmFuZ2UgPSBnZW44X3BwZ3R0X2Fs bG9jXzRsdmw7CkBAIC0xNjM5LDkgKzE2MjMsOSBAQCBzdGF0aWMgc3RydWN0IGk5MTVfcHBndHQg KmdlbjhfcHBndHRfY3JlYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogCQkJIEdF TjhfM0xWTF9QRFBFUyk7CiAKIAkJaWYgKGludGVsX3ZncHVfYWN0aXZlKGk5MTUpKSB7Ci0JCQll cnIgPSBnZW44X3ByZWFsbG9jYXRlX3RvcF9sZXZlbF9wZHAocHBndHQpOwotCQkJaWYgKGVycikK LQkJCQlnb3RvIGVycl9wZHA7CisJCQlyZXQgPSBnZW44X3ByZWFsbG9jYXRlX3RvcF9sZXZlbF9w ZHAocHBndHQpOworCQkJaWYgKHJldCkKKwkJCQlnb3RvIGVycl9mcmVlX3BkcDsKIAkJfQogCiAJ CXBwZ3R0LT52bS5hbGxvY2F0ZV92YV9yYW5nZSA9IGdlbjhfcHBndHRfYWxsb2NfM2x2bDsKQEAg LTE2NTYsMTMgKzE2NDAsMTMgQEAgc3RhdGljIHN0cnVjdCBpOTE1X3BwZ3R0ICpnZW44X3BwZ3R0 X2NyZWF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAogCXJldHVybiBwcGd0dDsK IAotZXJyX3BkcDoKLQlmcmVlX3BkcCgmcHBndHQtPnZtLCBwcGd0dC0+cGQpOwotZXJyX3NjcmF0 Y2g6CitlcnJfZnJlZV9wZHA6CisJZnJlZV9wZCgmcHBndHQtPnZtLCBwcGd0dC0+cGQpOworZXJy X2ZyZWVfc2NyYXRjaDoKIAlnZW44X2ZyZWVfc2NyYXRjaCgmcHBndHQtPnZtKTsKIGVycl9mcmVl OgogCWtmcmVlKHBwZ3R0KTsKLQlyZXR1cm4gRVJSX1BUUihlcnIpOworCXJldHVybiBFUlJfUFRS KHJldCk7CiB9CiAKIC8qIFdyaXRlIHBkZSAoaW5kZXgpIGZyb20gdGhlIHBhZ2UgZGlyZWN0b3J5 IEBwZCB0byB0aGUgcGFnZSB0YWJsZSBAcHQgKi8KLS0gCjIuMTcuMQoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4