From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [CI 09/17] drm/i915/gen9: Compute DDB allocation at atomic check time (v4) Date: Thu, 12 May 2016 07:06:03 -0700 Message-ID: <1463061971-19638-10-git-send-email-matthew.d.roper@intel.com> References: <1463061971-19638-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id BD23C6E8C7 for ; Thu, 12 May 2016 14:07:15 +0000 (UTC) In-Reply-To: <1463061971-19638-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 b3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogTWFh cnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAgNSArKysKIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDE4ICsrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMyArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYyAgICAgIHwgNzkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiA0IGZp bGVzIGNoYW5nZWQsIDEwNSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5k ZXggYjcwMzcwNTEuLmZkYmFmMTggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMzM5LDYg KzMzOSwxMCBAQCBzdHJ1Y3QgaTkxNV9ob3RwbHVnIHsKICNkZWZpbmUgZm9yX2VhY2hfaW50ZWxf Y3J0YyhkZXYsIGludGVsX2NydGMpIFwKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGludGVsX2NydGMs ICZkZXYtPm1vZGVfY29uZmlnLmNydGNfbGlzdCwgYmFzZS5oZWFkKQogCisjZGVmaW5lIGZvcl9l YWNoX2ludGVsX2NydGNfbWFzayhkZXYsIGludGVsX2NydGMsIGNydGNfbWFzaykgXAorCWxpc3Rf Zm9yX2VhY2hfZW50cnkoaW50ZWxfY3J0YywgJmRldi0+bW9kZV9jb25maWcuY3J0Y19saXN0LCBi YXNlLmhlYWQpIFwKKwkJZm9yX2VhY2hfaWYgKChjcnRjX21hc2spICYgKDEgPDwgZHJtX2NydGNf aW5kZXgoJmludGVsX2NydGMtPmJhc2UpKSkKKwogI2RlZmluZSBmb3JfZWFjaF9pbnRlbF9lbmNv ZGVyKGRldiwgaW50ZWxfZW5jb2RlcikJCVwKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGludGVsX2Vu Y29kZXIsCQkJXAogCQkJICAgICYoZGV2KS0+bW9kZV9jb25maWcuZW5jb2Rlcl9saXN0LAlcCkBA IC01OTQsNiArNTk4LDcgQEAgc3RydWN0IGRybV9pOTE1X2Rpc3BsYXlfZnVuY3MgewogCQkJCSAg ICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3c3RhdGUpOwogCXZvaWQgKCppbml0aWFs X3dhdGVybWFya3MpKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpOwogCXZvaWQgKCpv cHRpbWl6ZV93YXRlcm1hcmtzKShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKTsKKwlp bnQgKCpjb21wdXRlX2dsb2JhbF93YXRlcm1hcmtzKShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGUpOwogCXZvaWQgKCp1cGRhdGVfd20pKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yyk7CiAJaW50 ICgqbW9kZXNldF9jYWxjX2NkY2xrKShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwog CXZvaWQgKCptb2Rlc2V0X2NvbW1pdF9jZGNsaykoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBiY2YxMDVhLi5lYmJi ODg1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTMzMTMsNiArMTMz MTMsNyBAQCBzdGF0aWMgaW50IGludGVsX21vZGVzZXRfY2hlY2tzKHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSkKIHN0YXRpYyB2b2lkIGNhbGNfd2F0ZXJtYXJrX2RhdGEoc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0 ZS0+ZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2 KTsKIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9IHRvX2ludGVsX2F0 b21pY19zdGF0ZShzdGF0ZSk7CiAJc3RydWN0IGRybV9jcnRjICpjcnRjOwogCXN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSAqY3N0YXRlOwpAQCAtMTMzNDIsNiArMTMzNDMsMTAgQEAgc3RhdGljIHZvaWQg Y2FsY193YXRlcm1hcmtfZGF0YShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCSAg ICBwc3RhdGUtPmNydGNfaCAhPSBwc3RhdGUtPnNyY19oID4+IDE2KQogCQkJaW50ZWxfc3RhdGUt PndtX2NvbmZpZy5zcHJpdGVzX3NjYWxlZCA9IHRydWU7CiAJfQorCisJLyogSXMgdGhlcmUgcGxh dGZvcm0tc3BlY2lmaWMgd2F0ZXJtYXJrIGluZm9ybWF0aW9uIHRvIGNhbGN1bGF0ZT8gKi8KKwlp ZiAoZGV2X3ByaXYtPmRpc3BsYXkuY29tcHV0ZV9nbG9iYWxfd2F0ZXJtYXJrcykKKwkJZGV2X3By aXYtPmRpc3BsYXkuY29tcHV0ZV9nbG9iYWxfd2F0ZXJtYXJrcyhzdGF0ZSk7CiB9CiAKIC8qKgpA QCAtMTM3MTMsNiArMTM3MTgsMTkgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCWludGVsX21vZGVzZXRfdmVyaWZ5X2NydGMoY3J0Yywg b2xkX2NydGNfc3RhdGUsIGNydGMtPnN0YXRlKTsKIAl9CiAKKwkvKgorCSAqIFRlbXBvcmFyeSBz YW5pdHkgY2hlY2s6IG1ha2Ugc3VyZSBvdXIgcHJlLWNvbXB1dGVkIEREQiBtYXRjaGVzIHRoZQor CSAqIG9uZSB3ZSBhY3R1YWxseSB3aW5kIHVwIHByb2dyYW1taW5nLgorCSAqCisJICogTm90IGEg Z3JlYXQgcGxhY2UgdG8gcHV0IHRoaXMsIGJ1dCB0aGUgZWFzaWVzdCBwbGFjZSB3ZSBoYXZlIGFj Y2VzcworCSAqIHRvIGJvdGggdGhlIHByZS1jb21wdXRlZCBhbmQgZmluYWwgRERCJ3M7IHdlJ2xs IGJlIHJlbW92aW5nIHRoaXMKKwkgKiBjaGVjayBpbiB0aGUgbmV4dCBwYXRjaCBhbnl3YXkuCisJ ICovCisJV0FSTihJU19HRU45KGRldikgJiYKKwkgICAgIG1lbWNtcCgmaW50ZWxfc3RhdGUtPmRk YiwgJmRldl9wcml2LT53bS5za2xfcmVzdWx0cy5kZGIsCisJCSAgICBzaXplb2YoaW50ZWxfc3Rh dGUtPmRkYikpLAorCSAgICAgIlByZS1jb21wdXRlZCBEREIgZG9lcyBub3QgbWF0Y2ggZmluYWwg RERCIVxuIik7CisKIAlpZiAoaW50ZWxfc3RhdGUtPm1vZGVzZXQpCiAJCWludGVsX2Rpc3BsYXlf cG93ZXJfcHV0KGRldl9wcml2LCBQT1dFUl9ET01BSU5fTU9ERVNFVCk7CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKaW5kZXggNjliNDExOS4uYzlhNGM0MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmgKQEAgLTMxMiw2ICszMTIsOSBAQCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlIHsKIAkg KiBkb24ndCBib3RoZXIgY2FsY3VsYXRpbmcgaW50ZXJtZWRpYXRlIHdhdGVybWFya3MuCiAJICov CiAJYm9vbCBza2lwX2ludGVybWVkaWF0ZV93bTsKKworCS8qIEdlbjkrIG9ubHkgKi8KKwlzdHJ1 Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uIGRkYjsKIH07CiAKIHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0 ZSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwppbmRleCA4N2ZhZTJlLi43YjI1NDVjIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMKQEAgLTM4MTIsNiArMzgxMiw4NCBAQCBzdGF0aWMgdm9pZCBza2xf Y2xlYXJfd20oc3RydWN0IHNrbF93bV92YWx1ZXMgKndhdGVybWFya3MsIGVudW0gcGlwZSBwaXBl KQogCiB9CiAKK3N0YXRpYyBpbnQKK3NrbF9jb21wdXRlX2RkYihzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5kZXY7CisJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOworCXN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRl KHN0YXRlKTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsKKwl1bnNpZ25lZCByZWFs bG9jX3BpcGVzID0gZGV2X3ByaXYtPmFjdGl2ZV9jcnRjczsKKwlpbnQgcmV0OworCisJLyoKKwkg KiBJZiB0aGlzIGlzIG91ciBmaXJzdCBhdG9taWMgdXBkYXRlIGZvbGxvd2luZyBoYXJkd2FyZSBy ZWFkb3V0LAorCSAqIHdlIGNhbid0IHRydXN0IHRoZSBEREIgdGhhdCB0aGUgQklPUyBwcm9ncmFt bWVkIGZvciB1cy4gIExldCdzCisJICogcHJldGVuZCB0aGF0IGFsbCBwaXBlcyBzd2l0Y2hlZCBh Y3RpdmUgc3RhdHVzIHNvIHRoYXQgd2UnbGwKKwkgKiBlbnN1cmUgYSBmdWxsIEREQiByZWNvbXB1 dGUuCisJICovCisJaWYgKGRldl9wcml2LT53bS5kaXN0cnVzdF9iaW9zX3dtKQorCQlpbnRlbF9z dGF0ZS0+YWN0aXZlX3BpcGVfY2hhbmdlcyA9IH4wOworCisJLyoKKwkgKiBJZiB0aGUgbW9kZXNl dCBjaGFuZ2VzIHdoaWNoIENSVEMncyBhcmUgYWN0aXZlLCB3ZSBuZWVkIHRvCisJICogcmVjb21w dXRlIHRoZSBEREIgYWxsb2NhdGlvbiBmb3IgKmFsbCogYWN0aXZlIHBpcGVzLCBldmVuCisJICog dGhvc2UgdGhhdCB3ZXJlbid0IG90aGVyd2lzZSBiZWluZyBtb2RpZmllZCBpbiBhbnkgd2F5IGJ5 IHRoaXMKKwkgKiBhdG9taWMgY29tbWl0LiAgRHVlIHRvIHRoZSBzaHJpbmtpbmcgb2YgdGhlIHBl ci1waXBlIGFsbG9jYXRpb25zCisJICogd2hlbiBuZXcgYWN0aXZlIENSVEMncyBhcmUgYWRkZWQs IGl0J3MgcG9zc2libGUgZm9yIGEgcGlwZSB0aGF0CisJICogd2Ugd2VyZSBhbHJlYWR5IHVzaW5n IGFuZCBhcmVuJ3QgY2hhbmdpbmcgYXQgYWxsIGhlcmUgdG8gc3VkZGVubHkKKwkgKiBiZWNvbWUg aW52YWxpZCBpZiBpdHMgRERCIG5lZWRzIGV4Y2VlZHMgaXRzIG5ldyBhbGxvY2F0aW9uLgorCSAq CisJICogTm90ZSB0aGF0IGlmIHdlIHdpbmQgdXAgZG9pbmcgYSBmdWxsIEREQiByZWNvbXB1dGUs IHdlIGNhbid0IGxldAorCSAqIGFueSBvdGhlciBkaXNwbGF5IHVwZGF0ZXMgcmFjZSB3aXRoIHRo aXMgdHJhbnNhY3Rpb24sIHNvIHdlIG5lZWQKKwkgKiB0byBncmFiIHRoZSBsb2NrIG9uICphbGwq IENSVEMncy4KKwkgKi8KKwlpZiAoaW50ZWxfc3RhdGUtPmFjdGl2ZV9waXBlX2NoYW5nZXMpCisJ CXJlYWxsb2NfcGlwZXMgPSB+MDsKKworCWZvcl9lYWNoX2ludGVsX2NydGNfbWFzayhkZXYsIGlu dGVsX2NydGMsIHJlYWxsb2NfcGlwZXMpIHsKKwkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNz dGF0ZTsKKworCQljc3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGlu dGVsX2NydGMpOworCQlpZiAoSVNfRVJSKGNzdGF0ZSkpCisJCQlyZXR1cm4gUFRSX0VSUihjc3Rh dGUpOworCisJCXJldCA9IHNrbF9hbGxvY2F0ZV9waXBlX2RkYihjc3RhdGUsICZpbnRlbF9zdGF0 ZS0+ZGRiKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJcmV0dXJuIDA7Cit9 CisKK3N0YXRpYyBpbnQKK3NrbF9jb21wdXRlX3dtKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CisJc3RydWN0IGRybV9jcnRjX3N0YXRl ICpjc3RhdGU7CisJaW50IHJldCwgaTsKKwlib29sIGNoYW5nZWQgPSBmYWxzZTsKKworCS8qCisJ ICogSWYgdGhpcyB0cmFuc2FjdGlvbiBpc24ndCBhY3R1YWxseSB0b3VjaGluZyBhbnkgQ1JUQydz LCBkb24ndAorCSAqIGJvdGhlciB3aXRoIHdhdGVybWFyayBjYWxjdWxhdGlvbi4gIE5vdGUgdGhh dCBpZiB3ZSBwYXNzIHRoaXMKKwkgKiB0ZXN0LCB3ZSdyZSBndWFyYW50ZWVkIHRvIGhvbGQgYXQg bGVhc3Qgb25lIENSVEMgc3RhdGUgbXV0ZXgsCisJICogd2hpY2ggbWVhbnMgd2UgY2FuIHNhZmVs eSB1c2UgdmFsdWVzIGxpa2UgZGV2X3ByaXYtPmFjdGl2ZV9jcnRjcworCSAqIHNpbmNlIGFueSBy YWNpbmcgY29tbWl0cyB0aGF0IHdhbnQgdG8gdXBkYXRlIHRoZW0gd291bGQgbmVlZCB0bworCSAq IGhvbGQgX2FsbF8gQ1JUQyBzdGF0ZSBtdXRleGVzLgorCSAqLworCWZvcl9lYWNoX2NydGNfaW5f c3RhdGUoc3RhdGUsIGNydGMsIGNzdGF0ZSwgaSkKKwkJY2hhbmdlZCA9IHRydWU7CisJaWYgKCFj aGFuZ2VkKQorCQlyZXR1cm4gMDsKKworCXJldCA9IHNrbF9jb21wdXRlX2RkYihzdGF0ZSk7CisJ aWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiAwOworfQorCiBzdGF0aWMgdm9pZCBz a2xfdXBkYXRlX3dtKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CkBAIC03MzM0LDYgKzc0MTIsNyBA QCB2b2lkIGludGVsX2luaXRfcG0oc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlpZiAoSU5URUxf SU5GTyhkZXYpLT5nZW4gPj0gOSkgewogCQlza2xfc2V0dXBfd21fbGF0ZW5jeShkZXYpOwogCQlk ZXZfcHJpdi0+ZGlzcGxheS51cGRhdGVfd20gPSBza2xfdXBkYXRlX3dtOworCQlkZXZfcHJpdi0+ ZGlzcGxheS5jb21wdXRlX2dsb2JhbF93YXRlcm1hcmtzID0gc2tsX2NvbXB1dGVfd207CiAJfSBl bHNlIGlmIChIQVNfUENIX1NQTElUKGRldikpIHsKIAkJaWxrX3NldHVwX3dtX2xhdGVuY3koZGV2 KTsKIAotLSAKMi4xLjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=