From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Daniel Subject: [PATCH 3/4] drm/i915/bdw: Pin the context backing objects to GGTT on-demand Date: Wed, 29 Oct 2014 09:52:52 +0000 Message-ID: <1414576373-25121-3-git-send-email-thomas.daniel@intel.com> References: <1414576373-25121-1-git-send-email-thomas.daniel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 677796E4F0 for ; Wed, 29 Oct 2014 02:53:01 -0700 (PDT) In-Reply-To: <1414576373-25121-1-git-send-email-thomas.daniel@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 Cc: shuang.he@linux.intel.com List-Id: intel-gfx@lists.freedesktop.org RnJvbTogT3NjYXIgTWF0ZW8gPG9zY2FyLm1hdGVvQGludGVsLmNvbT4KClVwIHVudGlsIG5vdywg d2UgaGF2ZSBwaW5uZWQgZXZlcnkgbG9naWNhbCByaW5nIGNvbnRleHQgYmFja2luZyBvYmplY3QK ZHVyaW5nIGNyZWF0aW9uLCBhbmQgbGVmdCBpdCBwaW5uZWQgdW50aWwgZGVzdHJ1Y3Rpb24uIFRo aXMgbWFkZSBteSBsaWZlCmVhc2llciwgYnV0IGl0J3MgYSBoYXJtZnVsIHRoaW5nIHRvIGRvLCBi ZWNhdXNlIHdlIGNhdXNlIGZyYWdtZW50YXRpb24Kb2YgdGhlIEdHVFQgKGFuZCwgZXZlbnR1YWxs eSwgd2Ugd291bGQgcnVuIG91dCBvZiBzcGFjZSkuCgpUaGlzIHBhdGNoIG1ha2VzIHRoZSBwaW5u aW5nIG9uLWRlbWFuZDogdGhlIGJhY2tpbmcgb2JqZWN0cyBvZiB0aGUgdHdvCmNvbnRleHRzIHRo YXQgYXJlIHdyaXR0ZW4gdG8gdGhlIEVMU1AgYXJlIHBpbm5lZCByaWdodCBiZWZvcmUgc3VibWlz c2lvbgphbmQgdW5waW5uZWQgb25jZSB0aGUgaGFyZHdhcmUgaXMgZG9uZSB3aXRoIHRoZW0uIFRo ZSBvbmx5IGNvbnRleHQgdGhhdAppcyBzdGlsbCBwaW5uZWQgcmVnYXJkbGVzcyBpcyB0aGUgZ2xv YmFsIGRlZmF1bHQgb25lLCBzbyB0aGF0IHRoZSBIV1MgY2FuCnN0aWxsIGJlIGFjY2Vzc2VkIGlu IHRoZSBzYW1lIHdheSAocmluZy0+c3RhdHVzX3BhZ2UpLgoKdjI6IEluIHRoZSBlYXJseSB2ZXJz aW9uIG9mIHRoaXMgcGF0Y2gsIHdlIHdlcmUgcGlubmluZyB0aGUgY29udGV4dCBhcwp3ZSBwdXQg aXQgaW50byB0aGUgRUxTUDogb24gdGhlIG9uZSBoYW5kLCB0aGlzIGlzIHZlcnkgZWZmaWNpZW50 IGJlY2F1c2UKb25seSBhIG1heGltdW0gdHdvIGNvbnRleHRzIGFyZSBwaW5uZWQgYXQgYW55IGdp dmVuIHRpbWUsIGJ1dCBvbiB0aGUgb3RoZXIKaGFuZCwgd2UgY2Fubm90IHJlYWxseSBwaW4gaW4g aW50ZXJydXB0IHRpbWUgOigKCnYzOiBVc2UgYSBtdXRleCByYXRoZXIgdGhhbiBhdG9taWNfdCB0 byBwcm90ZWN0IHBpbiBjb3VudCB0byBhdm9pZCByYWNlcy4KRG8gbm90IHVucGluIGRlZmF1bHQg Y29udGV4dCBpbiBmcmVlX3JlcXVlc3QuCgp2NDogQnJlYWsgb3V0IHBpbiBhbmQgdW5waW4gaW50 byBmdW5jdGlvbnMuICBGaXggc3R5bGUgcHJvYmxlbXMgcmVwb3J0ZWQKYnkgY2hlY2twYXRjaAoK SXNzdWU6IFZJWi00Mjc3ClNpZ25lZC1vZmYtYnk6IE9zY2FyIE1hdGVvIDxvc2Nhci5tYXRlb0Bp bnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFRob21hcyBEYW5pZWwgPHRob21hcy5kYW5pZWxAaW50 ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIHwgICAxMiAr KysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgIHwgICAgMiArCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICB8ICAgMzkgKysrKysrKysrKysrLS0tLS0t LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgfCAgIDczICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu aCAgICB8ICAgIDQgKysKIDUgZmlsZXMgY2hhbmdlZCwgMTAzIGluc2VydGlvbnMoKyksIDI3IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdm cy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKaW5kZXggZTYwZDVjMi4u NmVhZjgxMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKQEAgLTE3OTksMTAgKzE3 OTksMTYgQEAgc3RhdGljIGludCBpOTE1X2R1bXBfbHJjKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9p ZCAqdW51c2VkKQogCQkJCWNvbnRpbnVlOwogCiAJCQlpZiAoY3R4X29iaikgewotCQkJCXN0cnVj dCBwYWdlICpwYWdlID0gaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlKGN0eF9vYmosIDEpOwotCQkJ CXVpbnQzMl90ICpyZWdfc3RhdGUgPSBrbWFwX2F0b21pYyhwYWdlKTsKKwkJCQlzdHJ1Y3QgcGFn ZSAqcGFnZTsKKwkJCQl1aW50MzJfdCAqcmVnX3N0YXRlOwogCQkJCWludCBqOwogCisJCQkJaTkx NV9nZW1fb2JqX2dndHRfcGluKGN0eF9vYmosCisJCQkJCQlHRU44X0xSX0NPTlRFWFRfQUxJR04s IDApOworCisJCQkJcGFnZSA9IGk5MTVfZ2VtX29iamVjdF9nZXRfcGFnZShjdHhfb2JqLCAxKTsK KwkJCQlyZWdfc3RhdGUgPSBrbWFwX2F0b21pYyhwYWdlKTsKKwogCQkJCXNlcV9wcmludGYobSwg IkNPTlRFWFQ6ICVzICV1XG4iLCByaW5nLT5uYW1lLAogCQkJCQkJaW50ZWxfZXhlY2xpc3RzX2N0 eF9pZChjdHhfb2JqKSk7CiAKQEAgLTE4MTQsNiArMTgyMCw4IEBAIHN0YXRpYyBpbnQgaTkxNV9k dW1wX2xyYyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnVudXNlZCkKIAkJCQl9CiAJCQkJa3Vu bWFwX2F0b21pYyhyZWdfc3RhdGUpOwogCisJCQkJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4o Y3R4X29iaik7CisKIAkJCQlzZXFfcHV0YyhtLCAnXG4nKTsKIAkJCX0KIAkJfQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKaW5kZXggMDU5MzMwYy4uNjMyYjg4ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCkBAIC02NTUsNiArNjU1LDggQEAgc3RydWN0IGludGVsX2NvbnRleHQgewogCXN0cnVjdCB7 CiAJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpzdGF0ZTsKIAkJc3RydWN0IGludGVsX3Jp bmdidWZmZXIgKnJpbmdidWY7CisJCWludCB1bnBpbl9jb3VudDsKKwkJc3RydWN0IG11dGV4IHVu cGluX2xvY2s7CiAJfSBlbmdpbmVbSTkxNV9OVU1fUklOR1NdOwogCiAJc3RydWN0IGxpc3RfaGVh ZCBsaW5rOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggZGYyODIwMi4uOGEwMGRlYSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0yNDk0LDEyICsyNDk0LDE4IEBAIHN0YXRpYyB2b2lk IGk5MTVfc2V0X3Jlc2V0X3N0YXR1cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs CiAKIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX2ZyZWVfcmVxdWVzdChzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X3JlcXVlc3QgKnJlcXVlc3QpCiB7CisJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCA9IHJlcXVl c3QtPmN0eDsKKwogCWxpc3RfZGVsKCZyZXF1ZXN0LT5saXN0KTsKIAlpOTE1X2dlbV9yZXF1ZXN0 X3JlbW92ZV9mcm9tX2NsaWVudChyZXF1ZXN0KTsKIAotCWlmIChyZXF1ZXN0LT5jdHgpCi0JCWk5 MTVfZ2VtX2NvbnRleHRfdW5yZWZlcmVuY2UocmVxdWVzdC0+Y3R4KTsKKwlpZiAoaTkxNS5lbmFi bGVfZXhlY2xpc3RzICYmIGN0eCkgeworCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0g cmVxdWVzdC0+cmluZzsKIAorCQlpZiAoY3R4ICE9IHJpbmctPmRlZmF1bHRfY29udGV4dCkKKwkJ CWludGVsX2xyX2NvbnRleHRfdW5waW4ocmluZywgY3R4KTsKKwkJaTkxNV9nZW1fY29udGV4dF91 bnJlZmVyZW5jZShjdHgpOworCX0KIAlrZnJlZShyZXF1ZXN0KTsKIH0KIApAQCAtMjU1NCw2ICsy NTYwLDIzIEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3Jlc2V0X3JpbmdfY2xlYW51cChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJfQogCiAJLyoKKwkgKiBDbGVhciB0aGUgZXhl Y2xpc3RzIHF1ZXVlIHVwIGJlZm9yZSBmcmVlaW5nIHRoZSByZXF1ZXN0cywgYXMgdGhvc2UKKwkg KiBhcmUgdGhlIG9uZXMgdGhhdCBrZWVwIHRoZSBjb250ZXh0IGFuZCByaW5nYnVmZmVyIGJhY2tp bmcgb2JqZWN0cworCSAqIHBpbm5lZCBpbiBwbGFjZS4KKwkgKi8KKwl3aGlsZSAoIWxpc3RfZW1w dHkoJnJpbmctPmV4ZWNsaXN0X3F1ZXVlKSkgeworCQlzdHJ1Y3QgaW50ZWxfY3R4X3N1Ym1pdF9y ZXF1ZXN0ICpzdWJtaXRfcmVxOworCisJCXN1Ym1pdF9yZXEgPSBsaXN0X2ZpcnN0X2VudHJ5KCZy aW5nLT5leGVjbGlzdF9xdWV1ZSwKKwkJCQlzdHJ1Y3QgaW50ZWxfY3R4X3N1Ym1pdF9yZXF1ZXN0 LAorCQkJCWV4ZWNsaXN0X2xpbmspOworCQlsaXN0X2RlbCgmc3VibWl0X3JlcS0+ZXhlY2xpc3Rf bGluayk7CisJCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKKwkJaTkxNV9nZW1fY29u dGV4dF91bnJlZmVyZW5jZShzdWJtaXRfcmVxLT5jdHgpOworCQlrZnJlZShzdWJtaXRfcmVxKTsK Kwl9CisKKwkvKgogCSAqIFdlIG11c3QgZnJlZSB0aGUgcmVxdWVzdHMgYWZ0ZXIgYWxsIHRoZSBj b3JyZXNwb25kaW5nIG9iamVjdHMgaGF2ZQogCSAqIGJlZW4gbW92ZWQgb2ZmIGFjdGl2ZSBsaXN0 cy4gV2hpY2ggaXMgdGhlIHNhbWUgb3JkZXIgYXMgdGhlIG5vcm1hbAogCSAqIHJldGlyZV9yZXF1 ZXN0cyBmdW5jdGlvbiBkb2VzLiBUaGlzIGlzIGltcG9ydGFudCBpZiBvYmplY3QgaG9sZApAQCAt MjU3MCwxOCArMjU5Myw2IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3Jlc2V0X3JpbmdfY2xlYW51 cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCWk5MTVfZ2VtX2ZyZWVfcmVx dWVzdChyZXF1ZXN0KTsKIAl9CiAKLQl3aGlsZSAoIWxpc3RfZW1wdHkoJnJpbmctPmV4ZWNsaXN0 X3F1ZXVlKSkgewotCQlzdHJ1Y3QgaW50ZWxfY3R4X3N1Ym1pdF9yZXF1ZXN0ICpzdWJtaXRfcmVx OwotCi0JCXN1Ym1pdF9yZXEgPSBsaXN0X2ZpcnN0X2VudHJ5KCZyaW5nLT5leGVjbGlzdF9xdWV1 ZSwKLQkJCQlzdHJ1Y3QgaW50ZWxfY3R4X3N1Ym1pdF9yZXF1ZXN0LAotCQkJCWV4ZWNsaXN0X2xp bmspOwotCQlsaXN0X2RlbCgmc3VibWl0X3JlcS0+ZXhlY2xpc3RfbGluayk7Ci0JCWludGVsX3J1 bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKLQkJaTkxNV9nZW1fY29udGV4dF91bnJlZmVyZW5jZShz dWJtaXRfcmVxLT5jdHgpOwotCQlrZnJlZShzdWJtaXRfcmVxKTsKLQl9Ci0KIAkvKiBUaGVzZSBt YXkgbm90IGhhdmUgYmVlbiBmbHVzaCBiZWZvcmUgdGhlIHJlc2V0LCBkbyBzbyBub3cgKi8KIAlr ZnJlZShyaW5nLT5wcmVhbGxvY2F0ZWRfbGF6eV9yZXF1ZXN0KTsKIAlyaW5nLT5wcmVhbGxvY2F0 ZWRfbGF6eV9yZXF1ZXN0ID0gTlVMTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKaW5kZXggNmI4 YmYwZC4uNzk1MDM1NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAgLTEzOSw4ICsxMzks NiBAQAogI2RlZmluZSBHRU44X0xSX0NPTlRFWFRfUkVOREVSX1NJWkUgKDIwICogUEFHRV9TSVpF KQogI2RlZmluZSBHRU44X0xSX0NPTlRFWFRfT1RIRVJfU0laRSAoMiAqIFBBR0VfU0laRSkKIAot I2RlZmluZSBHRU44X0xSX0NPTlRFWFRfQUxJR04gNDA5NgotCiAjZGVmaW5lIFJJTkdfRVhFQ0xJ U1RfUUZVTEwJCSgxIDw8IDB4MikKICNkZWZpbmUgUklOR19FWEVDTElTVDFfVkFMSUQJCSgxIDw8 IDB4MykKICNkZWZpbmUgUklOR19FWEVDTElTVDBfVkFMSUQJCSgxIDw8IDB4NCkKQEAgLTgwMCw5 ICs3OTgsNDIgQEAgdm9pZCBpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZV9hbmRfc3VibWl0KHN0 cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQogCWV4ZWNsaXN0c19jb250ZXh0X3F1ZXVl KHJpbmcsIGN0eCwgcmluZ2J1Zi0+dGFpbCk7CiB9CiAKK3N0YXRpYyBpbnQgaW50ZWxfbHJfY29u dGV4dF9waW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKKwkJc3RydWN0IGludGVsX2Nv bnRleHQgKmN0eCkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9IGN0 eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZTsKKwlpbnQgcmV0ID0gMDsKKworCW11dGV4X2xvY2so JmN0eC0+ZW5naW5lW3JpbmctPmlkXS51bnBpbl9sb2NrKTsKKwlpZiAoY3R4LT5lbmdpbmVbcmlu Zy0+aWRdLnVucGluX2NvdW50KysgPT0gMCkgeworCQlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9w aW4oY3R4X29iaiwKKwkJCQlHRU44X0xSX0NPTlRFWFRfQUxJR04sIDApOworCQlpZiAocmV0KQor CQkJY3R4LT5lbmdpbmVbcmluZy0+aWRdLnVucGluX2NvdW50ID0gMDsKKwl9CisJbXV0ZXhfdW5s b2NrKCZjdHgtPmVuZ2luZVtyaW5nLT5pZF0udW5waW5fbG9jayk7CisKKwlyZXR1cm4gcmV0Owor fQorCit2b2lkIGludGVsX2xyX2NvbnRleHRfdW5waW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZywKKwkJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqY3R4X29iaiA9IGN0eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZTsKKworCWlm IChjdHhfb2JqKSB7CisJCW11dGV4X2xvY2soJmN0eC0+ZW5naW5lW3JpbmctPmlkXS51bnBpbl9s b2NrKTsKKwkJaWYgKC0tY3R4LT5lbmdpbmVbcmluZy0+aWRdLnVucGluX2NvdW50ID09IDApCisJ CQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsKKwkJbXV0ZXhfdW5sb2NrKCZj dHgtPmVuZ2luZVtyaW5nLT5pZF0udW5waW5fbG9jayk7CisJfQorfQorCiBzdGF0aWMgaW50IGxv Z2ljYWxfcmluZ19hbGxvY19zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQkJ CSAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KQogeworCWludCByZXQ7CisKIAlpZiAocmlu Zy0+b3V0c3RhbmRpbmdfbGF6eV9zZXFubykKIAkJcmV0dXJuIDA7CiAKQEAgLTgxMyw2ICs4NDQs MTQgQEAgc3RhdGljIGludCBsb2dpY2FsX3JpbmdfYWxsb2Nfc2Vxbm8oc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZywKIAkJaWYgKHJlcXVlc3QgPT0gTlVMTCkKIAkJCXJldHVybiAtRU5PTUVN OwogCisJCWlmIChjdHggIT0gcmluZy0+ZGVmYXVsdF9jb250ZXh0KSB7CisJCQlyZXQgPSBpbnRl bF9scl9jb250ZXh0X3BpbihyaW5nLCBjdHgpOworCQkJaWYgKHJldCkgeworCQkJCWtmcmVlKHJl cXVlc3QpOworCQkJCXJldHVybiByZXQ7CisJCQl9CisJCX0KKwogCQkvKiBIb2xkIGEgcmVmZXJl bmNlIHRvIHRoZSBjb250ZXh0IHRoaXMgcmVxdWVzdCBiZWxvbmdzIHRvCiAJCSAqICh3ZSB3aWxs IG5lZWQgaXQgd2hlbiB0aGUgdGltZSBjb21lcyB0byBlbWl0L3JldGlyZSB0aGUKIAkJICogcmVx dWVzdCkuCkBAIC0xNjI1LDEzICsxNjY0LDE4IEBAIHZvaWQgaW50ZWxfbHJfY29udGV4dF9mcmVl KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCiAKIAlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1f UklOR1M7IGkrKykgewogCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9IGN0 eC0+ZW5naW5lW2ldLnN0YXRlOwotCQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9 IGN0eC0+ZW5naW5lW2ldLnJpbmdidWY7CiAKIAkJaWYgKGN0eF9vYmopIHsKKwkJCXN0cnVjdCBp bnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0KKwkJCQkJY3R4LT5lbmdpbmVbaV0ucmluZ2J1ZjsK KwkJCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcgPSByaW5nYnVmLT5yaW5nOworCiAJCQlp bnRlbF9kZXN0cm95X3JpbmdidWZmZXJfb2JqKHJpbmdidWYpOwogCQkJa2ZyZWUocmluZ2J1Zik7 Ci0JCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsKKwkJCWlmIChjdHggPT0g cmluZy0+ZGVmYXVsdF9jb250ZXh0KQorCQkJCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGN0 eF9vYmopOwogCQkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJmN0eF9vYmotPmJhc2UpOwor CQkJbXV0ZXhfZGVzdHJveSgmY3R4LT5lbmdpbmVbaV0udW5waW5fbG9jayk7CiAJCX0KIAl9CiB9 CkBAIC0xNjk0LDYgKzE3MzgsNyBAQCBzdGF0aWMgaW50IGxyY19zZXR1cF9oYXJkd2FyZV9zdGF0 dXNfcGFnZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogaW50IGludGVsX2xyX2NvbnRl eHRfZGVmZXJyZWRfY3JlYXRlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCiAJCQkJICAgICBz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogeworCWNvbnN0IGJvb2wgaXNfZ2xvYmFsX2Rl ZmF1bHRfY3R4ID0gKGN0eCA9PSByaW5nLT5kZWZhdWx0X2NvbnRleHQpOwogCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSByaW5nLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0 eF9vYmo7CiAJdWludDMyX3QgY29udGV4dF9zaXplOwpAQCAtMTcxMywxOCArMTc1OCwyMiBAQCBp bnQgaW50ZWxfbHJfY29udGV4dF9kZWZlcnJlZF9jcmVhdGUoc3RydWN0IGludGVsX2NvbnRleHQg KmN0eCwKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4o Y3R4X29iaiwgR0VOOF9MUl9DT05URVhUX0FMSUdOLCAwKTsKLQlpZiAocmV0KSB7Ci0JCURSTV9E RUJVR19EUklWRVIoIlBpbiBMUkMgYmFja2luZyBvYmogZmFpbGVkOiAlZFxuIiwgcmV0KTsKLQkJ ZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJmN0eF9vYmotPmJhc2UpOwotCQlyZXR1cm4gcmV0 OworCWlmIChpc19nbG9iYWxfZGVmYXVsdF9jdHgpIHsKKwkJcmV0ID0gaTkxNV9nZW1fb2JqX2dn dHRfcGluKGN0eF9vYmosIEdFTjhfTFJfQ09OVEVYVF9BTElHTiwgMCk7CisJCWlmIChyZXQpIHsK KwkJCURSTV9ERUJVR19EUklWRVIoIlBpbiBMUkMgYmFja2luZyBvYmogZmFpbGVkOiAlZFxuIiwK KwkJCQkJcmV0KTsKKwkJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZjdHhfb2JqLT5iYXNl KTsKKwkJCXJldHVybiByZXQ7CisJCX0KIAl9CiAKIAlyaW5nYnVmID0ga3phbGxvYyhzaXplb2Yo KnJpbmdidWYpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIXJpbmdidWYpIHsKIAkJRFJNX0RFQlVHX0RS SVZFUigiRmFpbGVkIHRvIGFsbG9jYXRlIHJpbmdidWZmZXIgJXNcbiIsCiAJCQkJcmluZy0+bmFt ZSk7Ci0JCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGN0eF9vYmopOworCQlpZiAoaXNfZ2xv YmFsX2RlZmF1bHRfY3R4KQorCQkJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4oY3R4X29iaik7 CiAJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZjdHhfb2JqLT5iYXNlKTsKIAkJcmV0ID0g LUVOT01FTTsKIAkJcmV0dXJuIHJldDsKQEAgLTE3NjEsNiArMTgxMCw3IEBAIGludCBpbnRlbF9s cl9jb250ZXh0X2RlZmVycmVkX2NyZWF0ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAogCiAJ Y3R4LT5lbmdpbmVbcmluZy0+aWRdLnJpbmdidWYgPSByaW5nYnVmOwogCWN0eC0+ZW5naW5lW3Jp bmctPmlkXS5zdGF0ZSA9IGN0eF9vYmo7CisJbXV0ZXhfaW5pdCgmY3R4LT5lbmdpbmVbcmluZy0+ aWRdLnVucGluX2xvY2spOwogCiAJaWYgKGN0eCA9PSByaW5nLT5kZWZhdWx0X2NvbnRleHQpIHsK IAkJcmV0ID0gbHJjX3NldHVwX2hhcmR3YXJlX3N0YXR1c19wYWdlKHJpbmcsIGN0eF9vYmopOwpA QCAtMTc4Niw3ICsxODM2LDggQEAgaW50IGludGVsX2xyX2NvbnRleHRfZGVmZXJyZWRfY3JlYXRl KHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCiAKIGVycm9yOgogCWtmcmVlKHJpbmdidWYpOwot CWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGN0eF9vYmopOworCWlmIChpc19nbG9iYWxfZGVm YXVsdF9jdHgpCisJCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGN0eF9vYmopOwogCWRybV9n ZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZjdHhfb2JqLT5iYXNlKTsKIAlyZXR1cm4gcmV0OwogfQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9scmMuaAppbmRleCA4NGJiZjE5Li4xNGIyMTZiIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuaApAQCAtMjQsNiArMjQsOCBAQAogI2lmbmRlZiBfSU5URUxfTFJDX0hf CiAjZGVmaW5lIF9JTlRFTF9MUkNfSF8KIAorI2RlZmluZSBHRU44X0xSX0NPTlRFWFRfQUxJR04g NDA5NgorCiAvKiBFeGVjbGlzdHMgcmVncyAqLwogI2RlZmluZSBSSU5HX0VMU1AocmluZykJCQko KHJpbmcpLT5tbWlvX2Jhc2UrMHgyMzApCiAjZGVmaW5lIFJJTkdfRVhFQ0xJU1RfU1RBVFVTKHJp bmcpCSgocmluZyktPm1taW9fYmFzZSsweDIzNCkKQEAgLTY3LDYgKzY5LDggQEAgaW50IGludGVs X2xyX2NvbnRleHRfcmVuZGVyX3N0YXRlX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZywKIHZvaWQgaW50ZWxfbHJfY29udGV4dF9mcmVlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgp OwogaW50IGludGVsX2xyX2NvbnRleHRfZGVmZXJyZWRfY3JlYXRlKHN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjdHgsCiAJCQkJICAgICBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKK3ZvaWQg aW50ZWxfbHJfY29udGV4dF91bnBpbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAorCQlz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KTsKIAogLyogRXhlY2xpc3RzICovCiBpbnQgaW50ZWxf c2FuaXRpemVfZW5hYmxlX2V4ZWNsaXN0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQgZW5h YmxlX2V4ZWNsaXN0cyk7Ci0tIAoxLjcuOS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=