From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH v4 09/17] drm/i915/gen9: Compute DDB allocation at atomic check time (v4) Date: Mon, 9 May 2016 18:21:40 -0700 Message-ID: <1462843308-27639-10-git-send-email-matthew.d.roper@intel.com> References: <1462843308-27639-1-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 772306E40F for ; Tue, 10 May 2016 01:24:17 +0000 (UTC) In-Reply-To: <1462843308-27639-1-git-send-email-matthew.d.roper@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 Q2FsY3VsYXRlIHRoZSBEREIgYmxvY2tzIG5lZWRlZCB0byBzYXRpc2Z5IHRoZSBjdXJyZW50IGF0 b21pYwp0cmFuc2FjdGlvbiBhdCBhdG9taWMgY2hlY2sgdGltZS4gIFRoaXMgaXMgYSBwcmVyZXF1 aXNpdGUgdG8gY2FsY3VsYXRpbmcKU0tMIHdhdGVybWFya3MgZHVyaW5nIHRoZSAnY2hlY2snIHBo YXNlIGFuZCByZWplY3RpbmcgYW55IGNvbmZpZ3VyYXRpb25zCnRoYXQgd2UgY2FuJ3QgZmluZCB2 YWxpZCB3YXRlcm1hcmtzIGZvci4KCkR1ZSB0byB0aGUgbmF0dXJlIG9mIEREQiBhbGxvY2F0aW9u LCBpdCdzIHBvc3NpYmxlIGZvciB0aGUgYWRkaXRpb24gb2YgYQpuZXcgQ1JUQyB0byBtYWtlIHRo ZSB3YXRlcm1hcmsgY29uZmlndXJhdGlvbiBhbHJlYWR5IGluIHVzZSBvbiBhbm90aGVyLAp1bmNo YW5nZWQgQ1JUQyBiZWNvbWUgaW52YWxpZC4gIEEgY2hhbmdlIGluIHdoaWNoIENSVEMncyBhcmUg YWN0aXZlCnRyaWdnZXJzIGEgcmVjb21wdXRlIG9mIHRoZSBlbnRpcmUgRERCLCB3aGljaCB1bmZv cnR1bmF0ZWx5IG1lYW5zIHdlCm5lZWQgdG8gZGlzYWxsb3cgYW55IG90aGVyIGF0b21pYyBjb21t aXRzIGZyb20gcmFjaW5nIHdpdGggc3VjaCBhbgp1cGRhdGUuICBJZiB0aGUgYWN0aXZlIENSVEMn cyBjaGFuZ2UsIHdlIG5lZWQgdG8gZ3JhYiB0aGUgbG9jayBvbiBhbGwKQ1JUQydzIGFuZCBydW4g YWxsIENSVEMncyB0aHJvdWdoIHRoZWlyICdjaGVjaycgaGFuZGxlciB0byByZWNvbXB1dGUgYW5k CnJlLWNoZWNrIHRoZWlyIHBlci1DUlRDIEREQiBhbGxvY2F0aW9ucy4KCk5vdGUgdGhhdCB3aXRo IHRoaXMgcGF0Y2ggd2Ugb25seSBjb21wdXRlIHRoZSBEREIgYWxsb2NhdGlvbiBidXQgd2UKZG9u J3QgYWN0dWFsbHkgdXNlIHRoZSBjb21wdXRlZCB2YWx1ZXMgZHVyaW5nIHdhdGVybWFyayBwcm9n cmFtbWluZyB5ZXQuCkZvciBlYXNlIG9mIHJldmlldy90ZXN0aW5nL2Jpc2VjdGluZywgd2Ugc3Rp bGwgcmVjb21wdXRlIHRoZSBEREIgYXQKd2F0ZXJtYXJrIHByb2dyYW1taW5nIHRpbWUgYW5kIGp1 c3QgV0FSTigpIGlmIGl0IGRvZXNuJ3QgbWF0Y2ggdGhlCnByZWNvbXB1dGVkIHZhbHVlcy4gIEEg ZnV0dXJlIHBhdGNoIHdpbGwgc3dpdGNoIG92ZXIgdG8gdXNpbmcgdGhlCnByZWNvbXB1dGVkIHZh bHVlcyBvbmNlIHdlJ3JlIHN1cmUgdGhleSdyZSBiZWluZyBwcm9wZXJseSBjb21wdXRlZC4KCkFu b3RoZXIgY2xhcmlmeWluZyBub3RlOiAgRERCIGFsbG9jYXRpb24gaXRzZWxmIHNob3VsZG4ndCBl dmVyIGZhaWwgd2l0aAp0aGUgYWxnb3JpdGhtIHdlIHVzZSB0b2RheSAoaS5lLiwgd2UgaGF2ZSBl bm91Z2ggRERCIGJsb2NrcyBvbiBCWFQgdG8Kc3VwcG9ydCB0aGUgbWluaW11bSBuZWVkcyBvZiB0 aGUgd29yc3QtY2FzZSBzY2VuYXJpbyBvZiBldmVyeSBwaXBlL3BsYW5lCmVuYWJsZWQgYXQgZnVs bCBzaXplKS4gIEhvd2V2ZXIgdGhlIHdhdGVybWFya3MgY2FsY3VsYXRpb25zIGJhc2VkIG9uIHRo ZQpEREIgbWF5IGZhaWwgYW5kIHdlJ2xsIGJlIG1vdmluZyB0aG9zZSB0byB0aGUgYXRvbWljIGNo ZWNrIGFzIHdlbGwgaW4KZnV0dXJlIHBhdGNoZXMuCgp2MjoKIC0gU2tpcCBEREIgY2FsY3VsYXRp b25zIGluIHRoZSByYXJlIGNhc2Ugd2hlcmUgb3VyIHRyYW5zYWN0aW9uIGRvZXNuJ3QKICAgYWN0 dWFsbHkgdG91Y2ggYW55IENSVEMncyBhdCBhbGwuICBBc3N1bWluZyBhdCBsZWFzdCBvbmUgQ1JU QyBzdGF0ZQogICBpcyBwcmVzZW50IGluIG91ciB0cmFuc2FjdGlvbiwgdGhlbiBpdCBtZWFucyB3 ZSBjYW4ndCByYWNlIHdpdGggYW55CiAgIHRyYW5zYWN0aW9ucyB0aGF0IHdvdWxkIHVwZGF0ZSBk ZXZfcHJpdi0+YWN0aXZlX2NydGNzICh3aGljaCByZXF1aXJlcwogICBfYWxsXyBDUlRDIGxvY2tz KS4KCnYzOgogLSBBbHNvIGNhbGN1bGF0ZSBEREIgZHVyaW5nIGluaXRpYWwgaHcgcmVhZG91dCwg dG8gcHJldmVudCB1c2luZwogICBpbmNvcnJlY3QgYmlvcyB2YWx1ZXMuIChNYWFydGVuKQoKdjQ6 CiAtIFVzZSBuZXcgZGlzdHJ1c3RfYmlvc193bSBmbGFnIGluc3RlYWQgb2Ygc2tpcF9pbml0aWFs X3dtICh3aGljaCB3YXMKICAgbmV2ZXIgYWN0dWFsbHkgc2V0KS4KIC0gU2V0IGludGVsX3N0YXRl LT5hY3RpdmVfcGlwZV9jaGFuZ2VzIGluc3RlYWQgb2YganVzdCByZWFsbG9jX3BpcGVzCgpDYzog TWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KQ2M6 IEx5dWRlIFBhdWwgPGNwYXVsQHJlZGhhdC5jb20+CkNjOiBSYWRoYWtyaXNobmEgU3JpcGFkYSA8 cmFkaGFrcmlzaG5hLnNyaXBhZGFAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBNYXR0IFJvcGVy IDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmto b3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICB8ICA1ICsrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jIHwgMTggKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oICAgICB8ICAzICsrCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAg fCA3OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdl ZCwgMTA1IGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCAyN2FhYWNh Li4xMmZlNTc3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTMzOSw2ICszMzksMTAgQEAg c3RydWN0IGk5MTVfaG90cGx1ZyB7CiAjZGVmaW5lIGZvcl9lYWNoX2ludGVsX2NydGMoZGV2LCBp bnRlbF9jcnRjKSBcCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShpbnRlbF9jcnRjLCAmZGV2LT5tb2Rl X2NvbmZpZy5jcnRjX2xpc3QsIGJhc2UuaGVhZCkKIAorI2RlZmluZSBmb3JfZWFjaF9pbnRlbF9j cnRjX21hc2soZGV2LCBpbnRlbF9jcnRjLCBjcnRjX21hc2spIFwKKwlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KGludGVsX2NydGMsICZkZXYtPm1vZGVfY29uZmlnLmNydGNfbGlzdCwgYmFzZS5oZWFkKSBc CisJCWZvcl9lYWNoX2lmICgoY3J0Y19tYXNrKSAmICgxIDw8IGRybV9jcnRjX2luZGV4KCZpbnRl bF9jcnRjLT5iYXNlKSkpCisKICNkZWZpbmUgZm9yX2VhY2hfaW50ZWxfZW5jb2RlcihkZXYsIGlu dGVsX2VuY29kZXIpCQlcCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShpbnRlbF9lbmNvZGVyLAkJCVwK IAkJCSAgICAmKGRldiktPm1vZGVfY29uZmlnLmVuY29kZXJfbGlzdCwJXApAQCAtNTk0LDYgKzU5 OCw3IEBAIHN0cnVjdCBkcm1faTkxNV9kaXNwbGF5X2Z1bmNzIHsKIAkJCQkgICAgICAgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKm5ld3N0YXRlKTsKIAl2b2lkICgqaW5pdGlhbF93YXRlcm1hcmtz KShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKTsKIAl2b2lkICgqb3B0aW1pemVfd2F0 ZXJtYXJrcykoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSk7CisJaW50ICgqY29tcHV0 ZV9nbG9iYWxfd2F0ZXJtYXJrcykoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKIAl2 b2lkICgqdXBkYXRlX3dtKShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwogCWludCAoKm1vZGVzZXRf Y2FsY19jZGNsaykoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKIAl2b2lkICgqbW9k ZXNldF9jb21taXRfY2RjbGspKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggMzAyOGJmNC4uYzQ1MDJmYyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTMzMTMsNiArMTMzMTMsNyBAQCBzdGF0 aWMgaW50IGludGVsX21vZGVzZXRfY2hlY2tzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0 ZSkKIHN0YXRpYyB2b2lkIGNhbGNfd2F0ZXJtYXJrX2RhdGEoc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2OworCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9IHRvX2ludGVsX2F0b21pY19zdGF0ZShz dGF0ZSk7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjOwogCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAq Y3N0YXRlOwpAQCAtMTMzNDIsNiArMTMzNDMsMTAgQEAgc3RhdGljIHZvaWQgY2FsY193YXRlcm1h cmtfZGF0YShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCSAgICBwc3RhdGUtPmNy dGNfaCAhPSBwc3RhdGUtPnNyY19oID4+IDE2KQogCQkJaW50ZWxfc3RhdGUtPndtX2NvbmZpZy5z cHJpdGVzX3NjYWxlZCA9IHRydWU7CiAJfQorCisJLyogSXMgdGhlcmUgcGxhdGZvcm0tc3BlY2lm aWMgd2F0ZXJtYXJrIGluZm9ybWF0aW9uIHRvIGNhbGN1bGF0ZT8gKi8KKwlpZiAoZGV2X3ByaXYt PmRpc3BsYXkuY29tcHV0ZV9nbG9iYWxfd2F0ZXJtYXJrcykKKwkJZGV2X3ByaXYtPmRpc3BsYXku Y29tcHV0ZV9nbG9iYWxfd2F0ZXJtYXJrcyhzdGF0ZSk7CiB9CiAKIC8qKgpAQCAtMTM3MTksNiAr MTM3MjQsMTkgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCiAJCWludGVsX21vZGVzZXRfdmVyaWZ5X2NydGMoY3J0Yywgb2xkX2NydGNfc3Rh dGUsIGNydGMtPnN0YXRlKTsKIAl9CiAKKwkvKgorCSAqIFRlbXBvcmFyeSBzYW5pdHkgY2hlY2s6 IG1ha2Ugc3VyZSBvdXIgcHJlLWNvbXB1dGVkIEREQiBtYXRjaGVzIHRoZQorCSAqIG9uZSB3ZSBh Y3R1YWxseSB3aW5kIHVwIHByb2dyYW1taW5nLgorCSAqCisJICogTm90IGEgZ3JlYXQgcGxhY2Ug dG8gcHV0IHRoaXMsIGJ1dCB0aGUgZWFzaWVzdCBwbGFjZSB3ZSBoYXZlIGFjY2VzcworCSAqIHRv IGJvdGggdGhlIHByZS1jb21wdXRlZCBhbmQgZmluYWwgRERCJ3M7IHdlJ2xsIGJlIHJlbW92aW5n IHRoaXMKKwkgKiBjaGVjayBpbiB0aGUgbmV4dCBwYXRjaCBhbnl3YXkuCisJICovCisJV0FSTihJ U19HRU45KGRldikgJiYKKwkgICAgIG1lbWNtcCgmaW50ZWxfc3RhdGUtPmRkYiwgJmRldl9wcml2 LT53bS5za2xfcmVzdWx0cy5kZGIsCisJCSAgICBzaXplb2YoaW50ZWxfc3RhdGUtPmRkYikpLAor CSAgICAgIlByZS1jb21wdXRlZCBEREIgZG9lcyBub3QgbWF0Y2ggZmluYWwgRERCIVxuIik7CisK IAlpZiAoaW50ZWxfc3RhdGUtPm1vZGVzZXQpCiAJCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRl dl9wcml2LCBQT1dFUl9ET01BSU5fTU9ERVNFVCk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK aW5kZXggZDUyZGFjMi4uNTMyZjE0NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTMx Miw2ICszMTIsOSBAQCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlIHsKIAkgKiBkb24ndCBib3Ro ZXIgY2FsY3VsYXRpbmcgaW50ZXJtZWRpYXRlIHdhdGVybWFya3MuCiAJICovCiAJYm9vbCBza2lw X2ludGVybWVkaWF0ZV93bTsKKworCS8qIEdlbjkrIG9ubHkgKi8KKwlzdHJ1Y3Qgc2tsX2RkYl9h bGxvY2F0aW9uIGRkYjsKIH07CiAKIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSB7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcG0uYwppbmRleCBlMzg3N2RjLi5hZGUzZWUzIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMKQEAgLTM4MTIsNiArMzgxMiw4NCBAQCBzdGF0aWMgdm9pZCBza2xfY2xlYXJfd20oc3Ry dWN0IHNrbF93bV92YWx1ZXMgKndhdGVybWFya3MsIGVudW0gcGlwZSBwaXBlKQogCiB9CiAKK3N0 YXRpYyBpbnQKK3NrbF9jb21wdXRlX2RkYihzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUp Cit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5kZXY7CisJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKTsKKwlz dHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsKKwl1bnNpZ25lZCByZWFsbG9jX3BpcGVzID0g ZGV2X3ByaXYtPmFjdGl2ZV9jcnRjczsKKwlpbnQgcmV0OworCisJLyoKKwkgKiBJZiB0aGlzIGlz IG91ciBmaXJzdCBhdG9taWMgdXBkYXRlIGZvbGxvd2luZyBoYXJkd2FyZSByZWFkb3V0LAorCSAq IHdlIGNhbid0IHRydXN0IHRoZSBEREIgdGhhdCB0aGUgQklPUyBwcm9ncmFtbWVkIGZvciB1cy4g IExldCdzCisJICogcHJldGVuZCB0aGF0IGFsbCBwaXBlcyBzd2l0Y2hlZCBhY3RpdmUgc3RhdHVz IHNvIHRoYXQgd2UnbGwKKwkgKiBlbnN1cmUgYSBmdWxsIEREQiByZWNvbXB1dGUuCisJICovCisJ aWYgKGRldl9wcml2LT53bS5kaXN0cnVzdF9iaW9zX3dtKQorCQlpbnRlbF9zdGF0ZS0+YWN0aXZl X3BpcGVfY2hhbmdlcyA9IH4wOworCisJLyoKKwkgKiBJZiB0aGUgbW9kZXNldCBjaGFuZ2VzIHdo aWNoIENSVEMncyBhcmUgYWN0aXZlLCB3ZSBuZWVkIHRvCisJICogcmVjb21wdXRlIHRoZSBEREIg YWxsb2NhdGlvbiBmb3IgKmFsbCogYWN0aXZlIHBpcGVzLCBldmVuCisJICogdGhvc2UgdGhhdCB3 ZXJlbid0IG90aGVyd2lzZSBiZWluZyBtb2RpZmllZCBpbiBhbnkgd2F5IGJ5IHRoaXMKKwkgKiBh dG9taWMgY29tbWl0LiAgRHVlIHRvIHRoZSBzaHJpbmtpbmcgb2YgdGhlIHBlci1waXBlIGFsbG9j YXRpb25zCisJICogd2hlbiBuZXcgYWN0aXZlIENSVEMncyBhcmUgYWRkZWQsIGl0J3MgcG9zc2li bGUgZm9yIGEgcGlwZSB0aGF0CisJICogd2Ugd2VyZSBhbHJlYWR5IHVzaW5nIGFuZCBhcmVuJ3Qg Y2hhbmdpbmcgYXQgYWxsIGhlcmUgdG8gc3VkZGVubHkKKwkgKiBiZWNvbWUgaW52YWxpZCBpZiBp dHMgRERCIG5lZWRzIGV4Y2VlZHMgaXRzIG5ldyBhbGxvY2F0aW9uLgorCSAqCisJICogTm90ZSB0 aGF0IGlmIHdlIHdpbmQgdXAgZG9pbmcgYSBmdWxsIEREQiByZWNvbXB1dGUsIHdlIGNhbid0IGxl dAorCSAqIGFueSBvdGhlciBkaXNwbGF5IHVwZGF0ZXMgcmFjZSB3aXRoIHRoaXMgdHJhbnNhY3Rp b24sIHNvIHdlIG5lZWQKKwkgKiB0byBncmFiIHRoZSBsb2NrIG9uICphbGwqIENSVEMncy4KKwkg Ki8KKwlpZiAoaW50ZWxfc3RhdGUtPmFjdGl2ZV9waXBlX2NoYW5nZXMpCisJCXJlYWxsb2NfcGlw ZXMgPSB+MDsKKworCWZvcl9lYWNoX2ludGVsX2NydGNfbWFzayhkZXYsIGludGVsX2NydGMsIHJl YWxsb2NfcGlwZXMpIHsKKwkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZTsKKworCQlj c3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGludGVsX2NydGMpOwor CQlpZiAoSVNfRVJSKGNzdGF0ZSkpCisJCQlyZXR1cm4gUFRSX0VSUihjc3RhdGUpOworCisJCXJl dCA9IHNrbF9hbGxvY2F0ZV9waXBlX2RkYihjc3RhdGUsICZpbnRlbF9zdGF0ZS0+ZGRiKTsKKwkJ aWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBp bnQKK3NrbF9jb21wdXRlX3dtKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlz dHJ1Y3QgZHJtX2NydGMgKmNydGM7CisJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjc3RhdGU7CisJ aW50IHJldCwgaTsKKwlib29sIGNoYW5nZWQgPSBmYWxzZTsKKworCS8qCisJICogSWYgdGhpcyB0 cmFuc2FjdGlvbiBpc24ndCBhY3R1YWxseSB0b3VjaGluZyBhbnkgQ1JUQydzLCBkb24ndAorCSAq IGJvdGhlciB3aXRoIHdhdGVybWFyayBjYWxjdWxhdGlvbi4gIE5vdGUgdGhhdCBpZiB3ZSBwYXNz IHRoaXMKKwkgKiB0ZXN0LCB3ZSdyZSBndWFyYW50ZWVkIHRvIGhvbGQgYXQgbGVhc3Qgb25lIENS VEMgc3RhdGUgbXV0ZXgsCisJICogd2hpY2ggbWVhbnMgd2UgY2FuIHNhZmVseSB1c2UgdmFsdWVz IGxpa2UgZGV2X3ByaXYtPmFjdGl2ZV9jcnRjcworCSAqIHNpbmNlIGFueSByYWNpbmcgY29tbWl0 cyB0aGF0IHdhbnQgdG8gdXBkYXRlIHRoZW0gd291bGQgbmVlZCB0bworCSAqIGhvbGQgX2FsbF8g Q1JUQyBzdGF0ZSBtdXRleGVzLgorCSAqLworCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUs IGNydGMsIGNzdGF0ZSwgaSkKKwkJY2hhbmdlZCA9IHRydWU7CisJaWYgKCFjaGFuZ2VkKQorCQly ZXR1cm4gMDsKKworCXJldCA9IHNrbF9jb21wdXRlX2RkYihzdGF0ZSk7CisJaWYgKHJldCkKKwkJ cmV0dXJuIHJldDsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgdm9pZCBza2xfdXBkYXRlX3dt KHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0 YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CkBAIC03Mzk5LDYgKzc0NzcsNyBAQCB2b2lkIGludGVs X2luaXRfcG0oc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5n ZW4gPj0gOSkgewogCQlza2xfc2V0dXBfd21fbGF0ZW5jeShkZXYpOwogCQlkZXZfcHJpdi0+ZGlz cGxheS51cGRhdGVfd20gPSBza2xfdXBkYXRlX3dtOworCQlkZXZfcHJpdi0+ZGlzcGxheS5jb21w dXRlX2dsb2JhbF93YXRlcm1hcmtzID0gc2tsX2NvbXB1dGVfd207CiAJfSBlbHNlIGlmIChIQVNf UENIX1NQTElUKGRldikpIHsKIAkJaWxrX3NldHVwX3dtX2xhdGVuY3koZGV2KTsKIAotLSAKMi4x LjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=