From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Daniel Subject: [PATCH v5 4/4] drm/i915/bdw: Pin the ringbuffer backing object to GGTT on-demand Date: Thu, 13 Nov 2014 10:28:56 +0000 Message-ID: <1415874536-459-1-git-send-email-thomas.daniel@intel.com> References: <1414576373-25121-4-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 92EE96E694 for ; Thu, 13 Nov 2014 02:28:58 -0800 (PST) In-Reply-To: <1414576373-25121-4-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 List-Id: intel-gfx@lists.freedesktop.org U2FtZSBhcyB3aXRoIHRoZSBjb250ZXh0LCBwaW5uaW5nIHRvIEdHVFQgcmVnYXJkbGVzcyBpcyBo YXJtZnVsIChpdApiYWRseSBmcmFnbWVudHMgdGhlIEdHVFQgYW5kIGNhbiBldmVuIGV4aGF1c3Qg aXQpLgoKVW5mb3J0dW5hdGVseSwgdGhpcyBjYXNlIGlzIGFsc28gbW9yZSBjb21wbGV4IHRoYW4g dGhlIHByZXZpb3VzIG9uZQpiZWNhdXNlIHdlIG5lZWQgdG8gbWFwIGFuZCBhY2Nlc3MgdGhlIHJp bmdidWZmZXIgaW4gc2V2ZXJhbCBwbGFjZXMKYWxvbmcgdGhlIGV4ZWNidWZmZXIgcGF0aCAoYW5k IHdlIGNhbm5vdCBtYWtlIGRvIGJ5IGxlYXZpbmcgdGhlCmRlZmF1bHQgcmluZ2J1ZmZlciBwaW5u ZWQsIGFzIGJlZm9yZSkuIEFsc28sIHRoZSBjb250ZXh0IG9iamVjdAppdHNlbGYgY29udGFpbnMg YSBwb2ludGVyIHRvIHRoZSByaW5nYnVmZmVyIGFkZHJlc3MgdGhhdCB3ZSBoYXZlIHRvCmtlZXAg dXBkYXRlZCBpZiB3ZSBhcmUgZ29pbmcgdG8gYWxsb3cgdGhlIHJpbmdidWZmZXIgdG8gbW92ZSBh cm91bmQuCgp2MjogU2FtZSBhcyB3aXRoIHRoZSBjb250ZXh0IHBpbm5pbmcsIHdlIGNhbm5vdCBy ZWFsbHkgZG8gaXQgZHVyaW5nCmFuIGludGVycnVwdC4gQWxzbywgcGluIHRoZSBkZWZhdWx0IHJp bmdidWZmZXJzIG9iamVjdHMgcmVnYXJkbGVzcwoobWFrZXMgZXJyb3IgY2FwdHVyZSBhIGxvdCBl YXNpZXIpLgoKdjM6IFJlYmFzZWQuIFRha2UgYSBwaW4gcmVmZXJlbmNlIG9mIHRoZSByaW5nYnVm ZmVyIGZvciBlYWNoIGl0ZW0KaW4gdGhlIGV4ZWNsaXN0IHJlcXVlc3QgcXVldWUgYmVjYXVzZSB0 aGUgaGFyZHdhcmUgbWF5IHN0aWxsIGJlIHVzaW5nCnRoZSByaW5nYnVmZmVyIGFmdGVyIHRoZSBN SV9VU0VSX0lOVEVSUlVQVCB0byBub3RpZnkgdGhlIHNlcW5vIHVwZGF0ZQppcyBleGVjdXRlZC4g IFRoZSByaW5nYnVmZmVyIG11c3QgcmVtYWluIHBpbm5lZCB1bnRpbCB0aGUgY29udGV4dCBzYXZl CmlzIGNvbXBsZXRlLiAgTm8gbG9uZ2VyIHBpbiBhbmQgdW5waW4gcmluZ2J1ZmZlciBpbgpwb3B1 bGF0ZV9scl9jb250ZXh0KCkgLSB0aGlzIHRyYW5zaWVudCBhZGRyZXNzIGlzIG1lYW5pbmdsZXNz IGFuZCB0aGUKcGlubmluZyBjYW4gY2F1c2UgYSBzbGVlcCB3aGlsZSBhdG9taWMuCgp2NDogTW92 ZWQgcmluZ2J1ZmZlciBwaW4gYW5kIHVucGluIGludG8gdGhlIGxyX2NvbnRleHRfcGluIGZ1bmN0 aW9ucy4KRG93bmdyYWRlZCBwaW5uaW5nIGNoZWNrIEJVR19PTnMgdG8gV0FSTl9PTnMuCgp2NTog UmVpbnN0YXRlZCBXQVJOX09OcyBmb3IgdW5leHBlY3RlZCBleGVjbGlzdCBzdGF0ZXMuICBSZW1v dmVkIHVudXNlZAp2YXJpYWJsZS4KCklzc3VlOiBWSVotNDI3NwpTaWduZWQtb2ZmLWJ5OiBPc2Nh ciBNYXRlbyA8b3NjYXIubWF0ZW9AaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgRGFu aWVsIDx0aG9tYXMuZGFuaWVsQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYyAgICAgICAgfCAgMTAyICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8ICAgODUgKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu aCB8ICAgIDMgKwogMyBmaWxlcyBjaGFuZ2VkLCAxMjggaW5zZXJ0aW9ucygrKSwgNjIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCBmN2ZhMGY3Li5jYTIwZjkxIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwpAQCAtMjAyLDYgKzIwMiw5IEBAIGVudW0gewogfTsK ICNkZWZpbmUgR0VOOF9DVFhfSURfU0hJRlQgMzIKIAorc3RhdGljIGludCBpbnRlbF9scl9jb250 ZXh0X3BpbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAorCQlzdHJ1Y3QgaW50ZWxfY29u dGV4dCAqY3R4KTsKKwogLyoqCiAgKiBpbnRlbF9zYW5pdGl6ZV9lbmFibGVfZXhlY2xpc3RzKCkg LSBzYW5pdGl6ZSBpOTE1LmVuYWJsZV9leGVjbGlzdHMKICAqIEBkZXY6IERSTSBkZXZpY2UuCkBA IC0zMzksNyArMzQyLDkgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2Vsc3Bfd3JpdGUoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZywKIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJp di0+dW5jb3JlLmxvY2ssIGZsYWdzKTsKIH0KIAotc3RhdGljIGludCBleGVjbGlzdHNfY3R4X3dy aXRlX3RhaWwoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmosIHUzMiB0YWlsKQor c3RhdGljIGludCBleGVjbGlzdHNfdXBkYXRlX2NvbnRleHQoc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKmN0eF9vYmosCisJCQkJICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpyaW5n X29iaiwKKwkJCQkgICAgdTMyIHRhaWwpCiB7CiAJc3RydWN0IHBhZ2UgKnBhZ2U7CiAJdWludDMy X3QgKnJlZ19zdGF0ZTsKQEAgLTM0OCw2ICszNTMsNyBAQCBzdGF0aWMgaW50IGV4ZWNsaXN0c19j dHhfd3JpdGVfdGFpbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiwgdTMyIHRh aQogCXJlZ19zdGF0ZSA9IGttYXBfYXRvbWljKHBhZ2UpOwogCiAJcmVnX3N0YXRlW0NUWF9SSU5H X1RBSUwrMV0gPSB0YWlsOworCXJlZ19zdGF0ZVtDVFhfUklOR19CVUZGRVJfU1RBUlQrMV0gPSBp OTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQocmluZ19vYmopOwogCiAJa3VubWFwX2F0b21pYyhyZWdf c3RhdGUpOwogCkBAIC0zNTgsMjEgKzM2NCwyNSBAQCBzdGF0aWMgaW50IGV4ZWNsaXN0c19zdWJt aXRfY29udGV4dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQkJCSAgICBzdHJ1Y3Qg aW50ZWxfY29udGV4dCAqdG8wLCB1MzIgdGFpbDAsCiAJCQkJICAgIHN0cnVjdCBpbnRlbF9jb250 ZXh0ICp0bzEsIHUzMiB0YWlsMSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4 X29iajA7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmowID0gdG8wLT5lbmdp bmVbcmluZy0+aWRdLnN0YXRlOworCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmMCA9 IHRvMC0+ZW5naW5lW3JpbmctPmlkXS5yaW5nYnVmOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpjdHhfb2JqMSA9IE5VTEw7CisJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYx ID0gTlVMTDsKIAotCWN0eF9vYmowID0gdG8wLT5lbmdpbmVbcmluZy0+aWRdLnN0YXRlOwogCUJV R19PTighY3R4X29iajApOwogCVdBUk5fT04oIWk5MTVfZ2VtX29ial9pc19waW5uZWQoY3R4X29i ajApKTsKKwlXQVJOX09OKCFpOTE1X2dlbV9vYmpfaXNfcGlubmVkKHJpbmdidWYwLT5vYmopKTsK IAotCWV4ZWNsaXN0c19jdHhfd3JpdGVfdGFpbChjdHhfb2JqMCwgdGFpbDApOworCWV4ZWNsaXN0 c191cGRhdGVfY29udGV4dChjdHhfb2JqMCwgcmluZ2J1ZjAtPm9iaiwgdGFpbDApOwogCiAJaWYg KHRvMSkgeworCQlyaW5nYnVmMSA9IHRvMS0+ZW5naW5lW3JpbmctPmlkXS5yaW5nYnVmOwogCQlj dHhfb2JqMSA9IHRvMS0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZTsKIAkJQlVHX09OKCFjdHhfb2Jq MSk7CiAJCVdBUk5fT04oIWk5MTVfZ2VtX29ial9pc19waW5uZWQoY3R4X29iajEpKTsKKwkJV0FS Tl9PTighaTkxNV9nZW1fb2JqX2lzX3Bpbm5lZChyaW5nYnVmMS0+b2JqKSk7CiAKLQkJZXhlY2xp c3RzX2N0eF93cml0ZV90YWlsKGN0eF9vYmoxLCB0YWlsMSk7CisJCWV4ZWNsaXN0c191cGRhdGVf Y29udGV4dChjdHhfb2JqMSwgcmluZ2J1ZjEtPm9iaiwgdGFpbDEpOwogCX0KIAogCWV4ZWNsaXN0 c19lbHNwX3dyaXRlKHJpbmcsIGN0eF9vYmowLCBjdHhfb2JqMSk7CkBAIC01MjQsNiArNTM0LDEw IEBAIHN0YXRpYyBpbnQgZXhlY2xpc3RzX2NvbnRleHRfcXVldWUoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZywKIAkJcmV0dXJuIC1FTk9NRU07CiAJcmVxLT5jdHggPSB0bzsKIAlpOTE1X2dl bV9jb250ZXh0X3JlZmVyZW5jZShyZXEtPmN0eCk7CisKKwlpZiAodG8gIT0gcmluZy0+ZGVmYXVs dF9jb250ZXh0KQorCQlpbnRlbF9scl9jb250ZXh0X3BpbihyaW5nLCB0byk7CisKIAlyZXEtPnJp bmcgPSByaW5nOwogCXJlcS0+dGFpbCA9IHRhaWw7CiAKQEAgLTU0NCw3ICs1NTgsNyBAQCBzdGF0 aWMgaW50IGV4ZWNsaXN0c19jb250ZXh0X3F1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcsCiAKIAkJaWYgKHRvID09IHRhaWxfcmVxLT5jdHgpIHsKIAkJCVdBUk4odGFpbF9yZXEtPmVs c3Bfc3VibWl0dGVkICE9IDAsCi0JCQkgICAgICJNb3JlIHRoYW4gMiBhbHJlYWR5LXN1Ym1pdHRl ZCByZXFzIHF1ZXVlZFxuIik7CisJCQkJIk1vcmUgdGhhbiAyIGFscmVhZHktc3VibWl0dGVkIHJl cXMgcXVldWVkXG4iKTsKIAkJCWxpc3RfZGVsKCZ0YWlsX3JlcS0+ZXhlY2xpc3RfbGluayk7CiAJ CQlsaXN0X2FkZF90YWlsKCZ0YWlsX3JlcS0+ZXhlY2xpc3RfbGluaywKIAkJCQkmcmluZy0+ZXhl Y2xpc3RfcmV0aXJlZF9yZXFfbGlzdCk7CkBAIC03MzIsNiArNzQ2LDEyIEBAIHZvaWQgaW50ZWxf ZXhlY2xpc3RzX3JldGlyZV9yZXF1ZXN0cyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQog CXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnJpbmctPmV4ZWNsaXN0X2xvY2ssIGZsYWdzKTsKIAog CWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShyZXEsIHRtcCwgJnJldGlyZWRfbGlzdCwgZXhlY2xp c3RfbGluaykgeworCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4ID0gcmVxLT5jdHg7CisJCXN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0KKwkJCQljdHgtPmVuZ2luZVtyaW5n LT5pZF0uc3RhdGU7CisKKwkJaWYgKGN0eF9vYmogJiYgKGN0eCAhPSByaW5nLT5kZWZhdWx0X2Nv bnRleHQpKQorCQkJaW50ZWxfbHJfY29udGV4dF91bnBpbihyaW5nLCBjdHgpOwogCQlpbnRlbF9y dW50aW1lX3BtX3B1dChkZXZfcHJpdik7CiAJCWk5MTVfZ2VtX2NvbnRleHRfdW5yZWZlcmVuY2Uo cmVxLT5jdHgpOwogCQlsaXN0X2RlbCgmcmVxLT5leGVjbGlzdF9saW5rKTsKQEAgLTgwMyw2ICs4 MjMsNyBAQCBzdGF0aWMgaW50IGludGVsX2xyX2NvbnRleHRfcGluKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKnJpbmcsCiAJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCiB7CiAJc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPSBjdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7 CisJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSBjdHgtPmVuZ2luZVtyaW5nLT5p ZF0ucmluZ2J1ZjsKIAlpbnQgcmV0ID0gMDsKIAogCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgm cmluZy0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKQEAgLTgxMCwyMSArODMxLDM1IEBAIHN0YXRpYyBp bnQgaW50ZWxfbHJfY29udGV4dF9waW4oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKIAkJ cmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKGN0eF9vYmosCiAJCQkJR0VOOF9MUl9DT05URVhU X0FMSUdOLCAwKTsKIAkJaWYgKHJldCkKLQkJCWN0eC0+ZW5naW5lW3JpbmctPmlkXS51bnBpbl9j b3VudCA9IDA7CisJCQlnb3RvIHJlc2V0X3VucGluX2NvdW50OworCisJCXJldCA9IGludGVsX3Bp bl9hbmRfbWFwX3JpbmdidWZmZXJfb2JqKHJpbmctPmRldiwgcmluZ2J1Zik7CisJCWlmIChyZXQp CisJCQlnb3RvIHVucGluX2N0eF9vYmo7CiAJfQogCiAJcmV0dXJuIHJldDsKKwordW5waW5fY3R4 X29iajoKKwlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsKK3Jlc2V0X3VucGlu X2NvdW50OgorCWN0eC0+ZW5naW5lW3JpbmctPmlkXS51bnBpbl9jb3VudCA9IDA7CisKKwlyZXR1 cm4gcmV0OwogfQogCiB2b2lkIGludGVsX2xyX2NvbnRleHRfdW5waW4oc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZywKIAkJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCkKIHsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiA9IGN0eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0 ZTsKKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IGN0eC0+ZW5naW5lW3Jpbmct PmlkXS5yaW5nYnVmOwogCiAJaWYgKGN0eF9vYmopIHsKIAkJV0FSTl9PTighbXV0ZXhfaXNfbG9j a2VkKCZyaW5nLT5kZXYtPnN0cnVjdF9tdXRleCkpOwotCQlpZiAoLS1jdHgtPmVuZ2luZVtyaW5n LT5pZF0udW5waW5fY291bnQgPT0gMCkKKwkJaWYgKC0tY3R4LT5lbmdpbmVbcmluZy0+aWRdLnVu cGluX2NvdW50ID09IDApIHsKKwkJCWludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKHJpbmdidWYp OwogCQkJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4oY3R4X29iaik7CisJCX0KIAl9CiB9CiAK QEAgLTE1NDEsNyArMTU3Niw2IEBAIHBvcHVsYXRlX2xyX2NvbnRleHQoc3RydWN0IGludGVsX2Nv bnRleHQgKmN0eCwgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vCiB7CiAJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IHJpbmctPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpyaW5nX29iaiA9IHJpbmdidWYtPm9iajsKIAlzdHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQg PSBjdHgtPnBwZ3R0OwogCXN0cnVjdCBwYWdlICpwYWdlOwogCXVpbnQzMl90ICpyZWdfc3RhdGU7 CkBAIC0xNTg3LDcgKzE2MjEsOSBAQCBwb3B1bGF0ZV9scl9jb250ZXh0KHN0cnVjdCBpbnRlbF9j b250ZXh0ICpjdHgsIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfbwogCXJlZ19zdGF0 ZVtDVFhfUklOR19UQUlMXSA9IFJJTkdfVEFJTChyaW5nLT5tbWlvX2Jhc2UpOwogCXJlZ19zdGF0 ZVtDVFhfUklOR19UQUlMKzFdID0gMDsKIAlyZWdfc3RhdGVbQ1RYX1JJTkdfQlVGRkVSX1NUQVJU XSA9IFJJTkdfU1RBUlQocmluZy0+bW1pb19iYXNlKTsKLQlyZWdfc3RhdGVbQ1RYX1JJTkdfQlVG RkVSX1NUQVJUKzFdID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KHJpbmdfb2JqKTsKKwkvKiBS aW5nIGJ1ZmZlciBzdGFydCBhZGRyZXNzIGlzIG5vdCBrbm93biB1bnRpbCB0aGUgYnVmZmVyIGlz IHBpbm5lZC4KKwkgKiBJdCBpcyB3cml0dGVuIHRvIHRoZSBjb250ZXh0IGltYWdlIGluIGV4ZWNs aXN0c191cGRhdGVfY29udGV4dCgpCisJICovCiAJcmVnX3N0YXRlW0NUWF9SSU5HX0JVRkZFUl9D T05UUk9MXSA9IFJJTkdfQ1RMKHJpbmctPm1taW9fYmFzZSk7CiAJcmVnX3N0YXRlW0NUWF9SSU5H X0JVRkZFUl9DT05UUk9MKzFdID0KIAkJCSgocmluZ2J1Zi0+c2l6ZSAtIFBBR0VfU0laRSkgJiBS SU5HX05SX1BBR0VTKSB8IFJJTkdfVkFMSUQ7CkBAIC0xNjY5LDEwICsxNzA1LDEyIEBAIHZvaWQg aW50ZWxfbHJfY29udGV4dF9mcmVlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCiAJCQkJCWN0 eC0+ZW5naW5lW2ldLnJpbmdidWY7CiAJCQlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nID0g cmluZ2J1Zi0+cmluZzsKIAorCQkJaWYgKGN0eCA9PSByaW5nLT5kZWZhdWx0X2NvbnRleHQpIHsK KwkJCQlpbnRlbF91bnBpbl9yaW5nYnVmZmVyX29iaihyaW5nYnVmKTsKKwkJCQlpOTE1X2dlbV9v YmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsKKwkJCX0KIAkJCWludGVsX2Rlc3Ryb3lfcmluZ2J1 ZmZlcl9vYmoocmluZ2J1Zik7CiAJCQlrZnJlZShyaW5nYnVmKTsKLQkJCWlmIChjdHggPT0gcmlu Zy0+ZGVmYXVsdF9jb250ZXh0KQotCQkJCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGN0eF9v YmopOwogCQkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJmN0eF9vYmotPmJhc2UpOwogCQl9 CiAJfQpAQCAtMTc3MCwxMSArMTgwOCw4IEBAIGludCBpbnRlbF9scl9jb250ZXh0X2RlZmVycmVk X2NyZWF0ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAogCWlmICghcmluZ2J1ZikgewogCQlE Uk1fREVCVUdfRFJJVkVSKCJGYWlsZWQgdG8gYWxsb2NhdGUgcmluZ2J1ZmZlciAlc1xuIiwKIAkJ CQlyaW5nLT5uYW1lKTsKLQkJaWYgKGlzX2dsb2JhbF9kZWZhdWx0X2N0eCkKLQkJCWk5MTVfZ2Vt X29iamVjdF9nZ3R0X3VucGluKGN0eF9vYmopOwotCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5j ZSgmY3R4X29iai0+YmFzZSk7CiAJCXJldCA9IC1FTk9NRU07Ci0JCXJldHVybiByZXQ7CisJCWdv dG8gZXJyb3JfdW5waW5fY3R4OwogCX0KIAogCXJpbmdidWYtPnJpbmcgPSByaW5nOwpAQCAtMTc4 NywyMiArMTgyMiwzMCBAQCBpbnQgaW50ZWxfbHJfY29udGV4dF9kZWZlcnJlZF9jcmVhdGUoc3Ry dWN0IGludGVsX2NvbnRleHQgKmN0eCwKIAlyaW5nYnVmLT5zcGFjZSA9IHJpbmdidWYtPnNpemU7 CiAJcmluZ2J1Zi0+bGFzdF9yZXRpcmVkX2hlYWQgPSAtMTsKIAotCS8qIFRPRE86IEZvciBub3cg d2UgcHV0IHRoaXMgaW4gdGhlIG1hcHBhYmxlIHJlZ2lvbiBzbyB0aGF0IHdlIGNhbiByZXVzZQot CSAqIHRoZSBleGlzdGluZyByaW5nYnVmZmVyIGNvZGUgd2hpY2ggaW9yZW1hcHMgaXQuIFdoZW4g d2Ugc3RhcnQKLQkgKiBjcmVhdGluZyBtYW55IGNvbnRleHRzLCB0aGlzIHdpbGwgbm8gbG9uZ2Vy IHdvcmsgYW5kIHdlIG11c3Qgc3dpdGNoCi0JICogdG8gYSBrbWFwaXNoIGludGVyZmFjZS4KLQkg Ki8KLQlyZXQgPSBpbnRlbF9hbGxvY19yaW5nYnVmZmVyX29iaihkZXYsIHJpbmdidWYpOwotCWlm IChyZXQpIHsKLQkJRFJNX0RFQlVHX0RSSVZFUigiRmFpbGVkIHRvIGFsbG9jYXRlIHJpbmdidWZm ZXIgb2JqICVzOiAlZFxuIiwKKwlpZiAocmluZ2J1Zi0+b2JqID09IE5VTEwpIHsKKwkJcmV0ID0g aW50ZWxfYWxsb2NfcmluZ2J1ZmZlcl9vYmooZGV2LCByaW5nYnVmKTsKKwkJaWYgKHJldCkgewor CQkJRFJNX0RFQlVHX0RSSVZFUigKKwkJCQkiRmFpbGVkIHRvIGFsbG9jYXRlIHJpbmdidWZmZXIg b2JqICVzOiAlZFxuIiwKIAkJCQlyaW5nLT5uYW1lLCByZXQpOwotCQlnb3RvIGVycm9yOworCQkJ Z290byBlcnJvcl9mcmVlX3JidWY7CisJCX0KKworCQlpZiAoaXNfZ2xvYmFsX2RlZmF1bHRfY3R4 KSB7CisJCQlyZXQgPSBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihkZXYsIHJpbmdi dWYpOworCQkJaWYgKHJldCkgeworCQkJCURSTV9FUlJPUigKKwkJCQkJIkZhaWxlZCB0byBwaW4g YW5kIG1hcCByaW5nYnVmZmVyICVzOiAlZFxuIiwKKwkJCQkJcmluZy0+bmFtZSwgcmV0KTsKKwkJ CQlnb3RvIGVycm9yX2Rlc3Ryb3lfcmJ1ZjsKKwkJCX0KKwkJfQorCiAJfQogCiAJcmV0ID0gcG9w dWxhdGVfbHJfY29udGV4dChjdHgsIGN0eF9vYmosIHJpbmcsIHJpbmdidWYpOwogCWlmIChyZXQp IHsKIAkJRFJNX0RFQlVHX0RSSVZFUigiRmFpbGVkIHRvIHBvcHVsYXRlIExSQzogJWRcbiIsIHJl dCk7Ci0JCWludGVsX2Rlc3Ryb3lfcmluZ2J1ZmZlcl9vYmoocmluZ2J1Zik7CiAJCWdvdG8gZXJy b3I7CiAJfQogCkBAIC0xODIzLDcgKzE4NjYsNiBAQCBpbnQgaW50ZWxfbHJfY29udGV4dF9kZWZl cnJlZF9jcmVhdGUoc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKIAkJCURSTV9FUlJPUigiSW5p dCByZW5kZXIgc3RhdGUgZmFpbGVkOiAlZFxuIiwgcmV0KTsKIAkJCWN0eC0+ZW5naW5lW3Jpbmct PmlkXS5yaW5nYnVmID0gTlVMTDsKIAkJCWN0eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZSA9IE5V TEw7Ci0JCQlpbnRlbF9kZXN0cm95X3JpbmdidWZmZXJfb2JqKHJpbmdidWYpOwogCQkJZ290byBl cnJvcjsKIAkJfQogCQljdHgtPnJjc19pbml0aWFsaXplZCA9IHRydWU7CkBAIC0xODMyLDcgKzE4 NzQsMTMgQEAgaW50IGludGVsX2xyX2NvbnRleHRfZGVmZXJyZWRfY3JlYXRlKHN0cnVjdCBpbnRl bF9jb250ZXh0ICpjdHgsCiAJcmV0dXJuIDA7CiAKIGVycm9yOgorCWlmIChpc19nbG9iYWxfZGVm YXVsdF9jdHgpCisJCWludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKHJpbmdidWYpOworZXJyb3Jf ZGVzdHJveV9yYnVmOgorCWludGVsX2Rlc3Ryb3lfcmluZ2J1ZmZlcl9vYmoocmluZ2J1Zik7Citl cnJvcl9mcmVlX3JidWY6CiAJa2ZyZWUocmluZ2J1Zik7CitlcnJvcl91bnBpbl9jdHg6CiAJaWYg KGlzX2dsb2JhbF9kZWZhdWx0X2N0eCkKIAkJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4oY3R4 X29iaik7CiAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJmN0eF9vYmotPmJhc2UpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCmluZGV4IGE4ZjcyZTguLjBjNGFhYjEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKQEAgLTE3MjEsMTMgKzE3 MjEsNDIgQEAgc3RhdGljIGludCBpbml0X3BoeXNfc3RhdHVzX3BhZ2Uoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZykKIAlyZXR1cm4gMDsKIH0KIAotdm9pZCBpbnRlbF9kZXN0cm95X3Jpbmdi dWZmZXJfb2JqKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQordm9pZCBpbnRlbF91 bnBpbl9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKIHsK LQlpZiAoIXJpbmdidWYtPm9iaikKLQkJcmV0dXJuOwotCiAJaW91bm1hcChyaW5nYnVmLT52aXJ0 dWFsX3N0YXJ0KTsKKwlyaW5nYnVmLT52aXJ0dWFsX3N0YXJ0ID0gTlVMTDsKIAlpOTE1X2dlbV9v YmplY3RfZ2d0dF91bnBpbihyaW5nYnVmLT5vYmopOworfQorCitpbnQgaW50ZWxfcGluX2FuZF9t YXBfcmluZ2J1ZmZlcl9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkgICAgIHN0cnVj dCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqID0gcmluZ2J1Zi0+b2JqOworCWludCByZXQ7CisKKwlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0 dF9waW4ob2JqLCBQQUdFX1NJWkUsIFBJTl9NQVBQQUJMRSk7CisJaWYgKHJldCkKKwkJcmV0dXJu IHJldDsKKworCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0X2RvbWFpbihvYmosIHRy dWUpOworCWlmIChyZXQpIHsKKwkJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4ob2JqKTsKKwkJ cmV0dXJuIHJldDsKKwl9CisKKwlyaW5nYnVmLT52aXJ0dWFsX3N0YXJ0ID0gaW9yZW1hcF93Yyhk ZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlX2Jhc2UgKworCQkJaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0 KG9iaiksIHJpbmdidWYtPnNpemUpOworCWlmIChyaW5nYnVmLT52aXJ0dWFsX3N0YXJ0ID09IE5V TEwpIHsKKwkJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4ob2JqKTsKKwkJcmV0dXJuIC1FSU5W QUw7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3ZvaWQgaW50ZWxfZGVzdHJveV9yaW5nYnVmZmVy X29iaihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKK3sKIAlkcm1fZ2VtX29iamVj dF91bnJlZmVyZW5jZSgmcmluZ2J1Zi0+b2JqLT5iYXNlKTsKIAlyaW5nYnVmLT5vYmogPSBOVUxM OwogfQpAQCAtMTczNSwxMiArMTc2NCw3IEBAIHZvaWQgaW50ZWxfZGVzdHJveV9yaW5nYnVmZmVy X29iaihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKIGludCBpbnRlbF9hbGxvY19y aW5nYnVmZmVyX29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJICAgICAgIHN0cnVjdCBp bnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq OwotCWludCByZXQ7Ci0KLQlpZiAocmluZ2J1Zi0+b2JqKQotCQlyZXR1cm4gMDsKIAogCW9iaiA9 IE5VTEw7CiAJaWYgKCFIQVNfTExDKGRldikpCkBAIC0xNzUzLDMwICsxNzc3LDkgQEAgaW50IGlu dGVsX2FsbG9jX3JpbmdidWZmZXJfb2JqKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJLyogbWFy ayByaW5nIGJ1ZmZlcnMgYXMgcmVhZC1vbmx5IGZyb20gR1BVIHNpZGUgYnkgZGVmYXVsdCAqLwog CW9iai0+Z3Rfcm8gPSAxOwogCi0JcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKG9iaiwgUEFH RV9TSVpFLCBQSU5fTUFQUEFCTEUpOwotCWlmIChyZXQpCi0JCWdvdG8gZXJyX3VucmVmOwotCi0J cmV0ID0gaTkxNV9nZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWluKG9iaiwgdHJ1ZSk7Ci0JaWYg KHJldCkKLQkJZ290byBlcnJfdW5waW47Ci0KLQlyaW5nYnVmLT52aXJ0dWFsX3N0YXJ0ID0KLQkJ aW9yZW1hcF93YyhkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlX2Jhc2UgKyBpOTE1X2dlbV9vYmpfZ2d0 dF9vZmZzZXQob2JqKSwKLQkJCQlyaW5nYnVmLT5zaXplKTsKLQlpZiAocmluZ2J1Zi0+dmlydHVh bF9zdGFydCA9PSBOVUxMKSB7Ci0JCXJldCA9IC1FSU5WQUw7Ci0JCWdvdG8gZXJyX3VucGluOwot CX0KLQogCXJpbmdidWYtPm9iaiA9IG9iajsKLQlyZXR1cm4gMDsKIAotZXJyX3VucGluOgotCWk5 MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKG9iaik7Ci1lcnJfdW5yZWY6Ci0JZHJtX2dlbV9vYmpl Y3RfdW5yZWZlcmVuY2UoJm9iai0+YmFzZSk7Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gMDsKIH0K IAogc3RhdGljIGludCBpbnRlbF9pbml0X3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCkBAIC0xODEzLDEwICsxODE2LDIxIEBAIHN0YXRpYyBpbnQgaW50ZWxfaW5pdF9yaW5nX2J1 ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJZ290byBlcnJvcjsKIAl9CiAKLQlyZXQg PSBpbnRlbF9hbGxvY19yaW5nYnVmZmVyX29iaihkZXYsIHJpbmdidWYpOwotCWlmIChyZXQpIHsK LQkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gYWxsb2NhdGUgcmluZ2J1ZmZlciAlczogJWRcbiIsIHJp bmctPm5hbWUsIHJldCk7Ci0JCWdvdG8gZXJyb3I7CisJaWYgKHJpbmdidWYtPm9iaiA9PSBOVUxM KSB7CisJCXJldCA9IGludGVsX2FsbG9jX3JpbmdidWZmZXJfb2JqKGRldiwgcmluZ2J1Zik7CisJ CWlmIChyZXQpIHsKKwkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIHJpbmdidWZmZXIg JXM6ICVkXG4iLAorCQkJCQlyaW5nLT5uYW1lLCByZXQpOworCQkJZ290byBlcnJvcjsKKwkJfQor CisJCXJldCA9IGludGVsX3Bpbl9hbmRfbWFwX3JpbmdidWZmZXJfb2JqKGRldiwgcmluZ2J1Zik7 CisJCWlmIChyZXQpIHsKKwkJCURSTV9FUlJPUigiRmFpbGVkIHRvIHBpbiBhbmQgbWFwIHJpbmdi dWZmZXIgJXM6ICVkXG4iLAorCQkJCQlyaW5nLT5uYW1lLCByZXQpOworCQkJaW50ZWxfZGVzdHJv eV9yaW5nYnVmZmVyX29iaihyaW5nYnVmKTsKKwkJCWdvdG8gZXJyb3I7CisJCX0KIAl9CiAKIAkv KiBXb3JrYXJvdW5kIGFuIGVycmF0dW0gb24gdGhlIGk4MzAgd2hpY2ggY2F1c2VzIGEgaGFuZyBp ZgpAQCAtMTg1NCw2ICsxODY4LDcgQEAgdm9pZCBpbnRlbF9jbGVhbnVwX3JpbmdfYnVmZmVyKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCiAJaW50ZWxfc3RvcF9yaW5nX2J1ZmZlcihyaW5n KTsKIAlXQVJOX09OKCFJU19HRU4yKHJpbmctPmRldikgJiYgKEk5MTVfUkVBRF9NT0RFKHJpbmcp ICYgTU9ERV9JRExFKSA9PSAwKTsKIAorCWludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKHJpbmdi dWYpOwogCWludGVsX2Rlc3Ryb3lfcmluZ2J1ZmZlcl9vYmoocmluZ2J1Zik7CiAJcmluZy0+cHJl YWxsb2NhdGVkX2xhenlfcmVxdWVzdCA9IE5VTEw7CiAJcmluZy0+b3V0c3RhbmRpbmdfbGF6eV9z ZXFubyA9IDA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKaW5kZXggOGMw MDJkMi4uMzY1ODU0YWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgK QEAgLTM4Miw2ICszODIsOSBAQCBpbnRlbF93cml0ZV9zdGF0dXNfcGFnZShzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nLAogI2RlZmluZSBJOTE1X0dFTV9IV1NfU0NSQVRDSF9JTkRFWAkweDMw CiAjZGVmaW5lIEk5MTVfR0VNX0hXU19TQ1JBVENIX0FERFIgKEk5MTVfR0VNX0hXU19TQ1JBVENI X0lOREVYIDw8IE1JX1NUT1JFX0RXT1JEX0lOREVYX1NISUZUKQogCit2b2lkIGludGVsX3VucGlu X3JpbmdidWZmZXJfb2JqKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKTsKK2ludCBp bnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAor CQkJCSAgICAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpOwogdm9pZCBpbnRlbF9k ZXN0cm95X3JpbmdidWZmZXJfb2JqKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKTsK IGludCBpbnRlbF9hbGxvY19yaW5nYnVmZmVyX29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAog CQkJICAgICAgIHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKTsKLS0gCjEuNy45LjUK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==