From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 090/190] drm/i915: Refactor execlists default context pinning Date: Mon, 11 Jan 2016 10:44:34 +0000 Message-ID: <1452509174-16671-4-git-send-email-chris@chris-wilson.co.uk> References: <1452503961-14837-1-git-send-email-chris@chris-wilson.co.uk> <1452509174-16671-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f67.google.com (mail-wm0-f67.google.com [74.125.82.67]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8ED4F6E2CD for ; Mon, 11 Jan 2016 02:46:30 -0800 (PST) Received: by mail-wm0-f67.google.com with SMTP id f206so25660083wmf.2 for ; Mon, 11 Jan 2016 02:46:30 -0800 (PST) In-Reply-To: <1452509174-16671-1-git-send-email-chris@chris-wilson.co.uk> 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 UmVmYWN0b3IgcGlubmluZyBhbmQgdW5waW5uaW5nIG9mIGNvbnRleHRzLCBzdWNoIHRoYXQgdGhl IGRlZmF1bHQKY29udGV4dCBmb3IgYW4gZW5naW5lIGlzIHBpbm5lZCBkdXJpbmcgaW5pdGlhbGlz YXRpb24gYW5kIHVucGlubmVkCmR1cmluZyB0ZWFyZG93biAocGlubmluZyBvZiB0aGUgY29udGV4 dCBoYW5kbGVzIHRoZSByZWZlcmVuY2UgY291bnRpbmcpLgpUaHVzIHdlIGNhbiBlbGltaW5hdGUg dGhlIHNwZWNpYWwgY2FzZSBoYW5kbGluZyBvZiB0aGUgZGVmYXVsdCBjb250ZXh0CnRoYXQgd2Fz IHJlcXVpcmVkIHRvIG1hc2sgdGhhdCBpdCB3YXMgbm90IGJlaW5nIHBpbm5lZCBub3JtYWxseS4K ClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgot LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jICAgICB8ICAgNyArLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jIHwgICA2ICstCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgfCAxMTcgKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oICAgICAgICB8ICAg MyArLQogNCBmaWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspLCA4MCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IGE1ZWE5MDk0NGJiYi4uZWE1Yjlm NmQwZmM5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwpAQCAtMjA1MiwxMSArMjA1 Miw4IEBAIHN0YXRpYyBpbnQgaTkxNV9kdW1wX2xyYyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQg KnVudXNlZCkKIAkJcmV0dXJuIHJldDsKIAogCWxpc3RfZm9yX2VhY2hfZW50cnkoY3R4LCAmZGV2 X3ByaXYtPmNvbnRleHRfbGlzdCwgbGluaykgewotCQlmb3JfZWFjaF9yaW5nKHJpbmcsIGRldl9w cml2LCBpKSB7Ci0JCQlpZiAocmluZy0+ZGVmYXVsdF9jb250ZXh0ICE9IGN0eCkKLQkJCQlpOTE1 X2R1bXBfbHJjX29iaihtLCByaW5nLAotCQkJCQkJICBjdHgtPmVuZ2luZVtpXS5zdGF0ZSk7Ci0J CX0KKwkJZm9yX2VhY2hfcmluZyhyaW5nLCBkZXZfcHJpdiwgaSkKKwkJCWk5MTVfZHVtcF9scmNf b2JqKG0sIHJpbmcsIGN0eC0+ZW5naW5lW2ldLnN0YXRlKTsKIAl9CiAKIAltdXRleF91bmxvY2so JmRldi0+c3RydWN0X211dGV4KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX3JlcXVlc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlcXVlc3Qu YwppbmRleCAwNjljMGI5ZGZkOTUuLjYxYmU4ZGRhNGExNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVxdWVzdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX3JlcXVlc3QuYwpAQCAtMzQ1LDEwICszNDUsOCBAQCBzdGF0aWMgdm9pZCBfX2k5 MTVfZ2VtX3JlcXVlc3RfcmV0aXJlX2FjdGl2ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcSkKIHZvaWQgaTkxNV9nZW1fcmVxdWVzdF9jYW5jZWwoc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpyZXEpCiB7CiAJaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9jYW5jZWwocmVxLT5y aW5nKTsKLQlpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKSB7Ci0JCWlmIChyZXEtPmN0eCAhPSBy ZXEtPmVuZ2luZS0+ZGVmYXVsdF9jb250ZXh0KQotCQkJaW50ZWxfbHJfY29udGV4dF91bnBpbihy ZXEpOwotCX0KKwlpZiAoaTkxNS5lbmFibGVfZXhlY2xpc3RzKQorCQlpbnRlbF9scl9jb250ZXh0 X3VucGluKHJlcS0+Y3R4LCByZXEtPmVuZ2luZSk7CiAKIAkvKiBJZiBhIHJlcXVlc3QgaXMgdG8g YmUgZGlzY2FyZGVkIGFmdGVyIGFjdGlvbnMgaGF2ZSBiZWVuIHF1ZXVlZCB1cG9uCiAJICogaXQs IHdlIGNhbm5vdCB1bndpbmQgdGhhdCByZXF1ZXN0IGFuZCBpdCBtdXN0IGJlIHN1Ym1pdHRlZCBy YXRoZXIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKaW5kZXggODBiMzQ2YTNmZDhhLi4zMWZiYjQ4 MmQxNWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCkBAIC0yMjcsNyArMjI3LDggQEAgZW51 bSB7CiAjZGVmaW5lIEdFTjhfQ1RYX0lEX1NISUZUIDMyCiAjZGVmaW5lIENUWF9SQ1NfSU5ESVJF Q1RfQ1RYX09GRlNFVF9ERUZBVUxUICAweDE3CiAKLXN0YXRpYyBpbnQgaW50ZWxfbHJfY29udGV4 dF9waW4oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSk7CitzdGF0aWMgaW50IGludGVs X2xyX2NvbnRleHRfcGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCisJCQkJc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIHN0YXRpYyB2b2lkIGxyY19zZXR1cF9oYXJkd2FyZV9z dGF0dXNfcGFnZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqZGVmYXVsdF9jdHhfb2JqKTsKIApAQCAtNDg1LDExICs0ODYsOSBAQCBp bnQgaW50ZWxfbG9naWNhbF9yaW5nX2FsbG9jX3JlcXVlc3RfZXh0cmFzKHN0cnVjdCBkcm1faTkx NV9nZW1fcmVxdWVzdCAqcmVxdWVzdAogCiAJcmVxdWVzdC0+cmluZyA9IHJlcXVlc3QtPmN0eC0+ ZW5naW5lW3JlcXVlc3QtPmVuZ2luZS0+aWRdLnJpbmc7CiAKLQlpZiAocmVxdWVzdC0+Y3R4ICE9 IHJlcXVlc3QtPmVuZ2luZS0+ZGVmYXVsdF9jb250ZXh0KSB7Ci0JCXJldCA9IGludGVsX2xyX2Nv bnRleHRfcGluKHJlcXVlc3QpOwotCQlpZiAocmV0KQotCQkJcmV0dXJuIHJldDsKLQl9CisJcmV0 ID0gaW50ZWxfbHJfY29udGV4dF9waW4ocmVxdWVzdC0+Y3R4LCByZXF1ZXN0LT5lbmdpbmUpOwor CWlmIChyZXQpCisJCXJldHVybiByZXQ7CiAKIAlpZiAoaTkxNS5lbmFibGVfZ3VjX3N1Ym1pc3Np b24pIHsKIAkJLyoKQEAgLTUyMSwxMyArNTIwLDcgQEAgYm9vbCBpbnRlbF9leGVjbGlzdHNfcmV0 aXJlX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCiAJc3Bpbl91bmxvY2so JnJpbmctPmV4ZWNsaXN0X2xvY2spOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHJlcSwg dG1wLCAmbGlzdCwgZXhlY2xpc3RfbGluaykgewotCQlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4 ID0gcmVxLT5jdHg7Ci0JCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0KLQkJ CQljdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7Ci0KLQkJaWYgKGN0eF9vYmogJiYgKGN0eCAh PSByaW5nLT5kZWZhdWx0X2NvbnRleHQpKQotCQkJaW50ZWxfbHJfY29udGV4dF91bnBpbihyZXEp OwotCisJCWludGVsX2xyX2NvbnRleHRfdW5waW4ocmVxLT5jdHgsIHJlcS0+ZW5naW5lKTsKIAkJ aTkxNV9nZW1fcmVxdWVzdF9wdXQocmVxKTsKIAl9CiAKQEAgLTU1Nyw4MyArNTUwLDczIEBAIHZv aWQgaW50ZWxfbG9naWNhbF9yaW5nX3N0b3Aoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykK IAlJOTE1X1dSSVRFX01PREUocmluZywgX01BU0tFRF9CSVRfRElTQUJMRShTVE9QX1JJTkcpKTsK IH0KIAotc3RhdGljIGludCBpbnRlbF9scl9jb250ZXh0X2RvX3BpbihzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICpyaW5nLAotCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiwKLQkJ c3RydWN0IGludGVsX3JpbmcgKnJpbmdidWYpCitzdGF0aWMgaW50IGludGVsX2xyX2NvbnRleHRf cGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCisJCQkJc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJpbmct Pmk5MTU7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1 OworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqOworCXN0cnVjdCBpbnRlbF9y aW5nICpyaW5nOwogCXUzMiBnZ3R0X29mZnNldDsKIAlpbnQgcmV0ID0gMDsKIAotCVdBUk5fT04o IW11dGV4X2lzX2xvY2tlZCgmcmluZy0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKKwlpZiAoY3R4LT5l bmdpbmVbZW5naW5lLT5pZF0ucGluX2NvdW50KyspCisJCXJldHVybiAwOworCisJbG9ja2RlcF9h c3NlcnRfaGVsZCgmZW5naW5lLT5kZXYtPnN0cnVjdF9tdXRleCk7CisKKwljdHhfb2JqID0gY3R4 LT5lbmdpbmVbZW5naW5lLT5pZF0uc3RhdGU7CiAJcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGlu KGN0eF9vYmosIEdFTjhfTFJfQ09OVEVYVF9BTElHTiwKIAkJCQkgICAgUElOX09GRlNFVF9CSUFT IHwgR1VDX1dPUENNX1RPUCk7CiAJaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKKwkJZ290byBlcnI7 CiAKLQlyZXQgPSBpbnRlbF9yaW5nX21hcChyaW5nYnVmKTsKKwlyaW5nID0gY3R4LT5lbmdpbmVb ZW5naW5lLT5pZF0ucmluZzsKKwlyZXQgPSBpbnRlbF9yaW5nX21hcChyaW5nKTsKIAlpZiAocmV0 KQogCQlnb3RvIHVucGluX2N0eF9vYmo7CiAKKwlpOTE1X2dlbV9jb250ZXh0X3JlZmVyZW5jZShj dHgpOwogCWN0eF9vYmotPmRpcnR5ID0gdHJ1ZTsKIAogCWdndHRfb2Zmc2V0ID0KIAkJaTkxNV9n ZW1fb2JqX2dndHRfb2Zmc2V0KGN0eF9vYmopICsgTFJDX1BQSFdTUF9QTiAqIFBBR0VfU0laRTsK LQlyaW5nYnVmLT5jb250ZXh0X2Rlc2NyaXB0b3IgPQotCQlnZ3R0X29mZnNldCB8IHJpbmctPmV4 ZWNsaXN0X2NvbnRleHRfZGVzY3JpcHRvcjsKKwlyaW5nLT5jb250ZXh0X2Rlc2NyaXB0b3IgPQor CQlnZ3R0X29mZnNldCB8IGVuZ2luZS0+ZXhlY2xpc3RfY29udGV4dF9kZXNjcmlwdG9yOwogCi0J cmluZ2J1Zi0+cmVnaXN0ZXJzID0KKwlyaW5nLT5yZWdpc3RlcnMgPQogCQlrbWFwKGk5MTVfZ2Vt X29iamVjdF9nZXRfZGlydHlfcGFnZShjdHhfb2JqLCBMUkNfU1RBVEVfUE4pKTsKLQlyaW5nYnVm LT5yZWdpc3RlcnNbQ1RYX1JJTkdfQlVGRkVSX1NUQVJUKzFdID0KLQkJaTkxNV9nZW1fb2JqX2dn dHRfb2Zmc2V0KHJpbmdidWYtPm9iaik7CisJcmluZy0+cmVnaXN0ZXJzW0NUWF9SSU5HX0JVRkZF Ul9TVEFSVCsxXSA9CisJCWk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChyaW5nLT5vYmopOwogCiAJ LyogSW52YWxpZGF0ZSBHdUMgVExCLiAqLwogCWlmIChpOTE1LmVuYWJsZV9ndWNfc3VibWlzc2lv bikKIAkJSTkxNV9XUklURShHRU44X0dUQ1IsIEdFTjhfR1RDUl9JTlZBTElEQVRFKTsKIAotCXJl dHVybiByZXQ7CisJcmV0dXJuIDA7CiAKIHVucGluX2N0eF9vYmo6CiAJaTkxNV9nZW1fb2JqZWN0 X2dndHRfdW5waW4oY3R4X29iaik7Ci0KK2VycjoKKwljdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5w aW5fY291bnQgPSAwOwogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgaW50ZWxfbHJfY29u dGV4dF9waW4oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycSkKLXsKLQlpbnQgZW5naW5l ID0gcnEtPmVuZ2luZS0+aWQ7Ci0JaW50IHJldDsKLQotCWlmIChycS0+Y3R4LT5lbmdpbmVbZW5n aW5lXS5waW5fY291bnQrKykKLQkJcmV0dXJuIDA7Ci0KLQlyZXQgPSBpbnRlbF9scl9jb250ZXh0 X2RvX3BpbihycS0+ZW5naW5lLAotCQkJCSAgICAgIHJxLT5jdHgtPmVuZ2luZVtlbmdpbmVdLnN0 YXRlLAotCQkJCSAgICAgIHJxLT5yaW5nKTsKLQlpZiAocmV0KSB7Ci0JCXJxLT5jdHgtPmVuZ2lu ZVtlbmdpbmVdLnBpbl9jb3VudCA9IDA7Ci0JCXJldHVybiByZXQ7Ci0JfQotCi0JaTkxNV9nZW1f Y29udGV4dF9yZWZlcmVuY2UocnEtPmN0eCk7Ci0JcmV0dXJuIDA7Ci19Ci0KLXZvaWQgaW50ZWxf bHJfY29udGV4dF91bnBpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxKQordm9pZCBp bnRlbF9scl9jb250ZXh0X3VucGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCisJCQkgICAg c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpjdHhfb2JqOwotCWludCBlbmdpbmUgPSBycS0+ZW5naW5lLT5pZDsKIAotCVdBUk5f T04oIW11dGV4X2lzX2xvY2tlZCgmcnEtPmk5MTUtPmRldi0+c3RydWN0X211dGV4KSk7Ci0JaWYg KC0tcnEtPmN0eC0+ZW5naW5lW2VuZ2luZV0ucGluX2NvdW50KQorCWxvY2tkZXBfYXNzZXJ0X2hl bGQoJmVuZ2luZS0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCWlmICgtLWN0eC0+ZW5naW5lW2VuZ2lu ZS0+aWRdLnBpbl9jb3VudCkKIAkJcmV0dXJuOwogCi0JaW50ZWxfcmluZ191bm1hcChycS0+cmlu Zyk7CisJaW50ZWxfcmluZ191bm1hcChjdHgtPmVuZ2luZVtlbmdpbmUtPmlkXS5yaW5nKTsKIAot CWN0eF9vYmogPSBycS0+Y3R4LT5lbmdpbmVbZW5naW5lXS5zdGF0ZTsKKwljdHhfb2JqID0gY3R4 LT5lbmdpbmVbZW5naW5lLT5pZF0uc3RhdGU7CiAJa3VubWFwKGk5MTVfZ2VtX29iamVjdF9nZXRf cGFnZShjdHhfb2JqLCBMUkNfU1RBVEVfUE4pKTsKIAlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBp bihjdHhfb2JqKTsKLQlpOTE1X2dlbV9jb250ZXh0X3VucmVmZXJlbmNlKHJxLT5jdHgpOworCisJ aTkxNV9nZW1fY29udGV4dF91bnJlZmVyZW5jZShjdHgpOwogfQogCiBzdGF0aWMgaW50IGludGVs X2xvZ2ljYWxfcmluZ193b3JrYXJvdW5kc19lbWl0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxKQpAQCAtMTQyNSw2ICsxNDA4LDcgQEAgdm9pZCBpbnRlbF9sb2dpY2FsX3JpbmdfY2xl YW51cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogCQlrdW5tYXAoc2dfcGFnZShyaW5n LT5zdGF0dXNfcGFnZS5vYmotPnBhZ2VzLT5zZ2wpKTsKIAkJcmluZy0+c3RhdHVzX3BhZ2Uub2Jq ID0gTlVMTDsKIAl9CisJaW50ZWxfbHJfY29udGV4dF91bnBpbihyaW5nLT5kZWZhdWx0X2NvbnRl eHQsIHJpbmcpOwogCiAJbHJjX2Rlc3Ryb3lfd2FfY3R4X29iaihyaW5nKTsKIAlyaW5nLT5kZXYg PSBOVUxMOwpAQCAtMTQzMyw2ICsxNDE3LDcgQEAgdm9pZCBpbnRlbF9sb2dpY2FsX3JpbmdfY2xl YW51cChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogc3RhdGljIGludCBsb2dpY2FsX3Jp bmdfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2 KTsKKwlzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4OwogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdGFz azsKIAlpbnQgcmV0OwogCkBAIC0xNDU3LDE5ICsxNDQyLDE3IEBAIHN0YXRpYyBpbnQgbG9naWNh bF9yaW5nX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGludGVsX2VuZ2luZV9j cyAqcmluCiAJaWYgKHJldCkKIAkJZ290byBlcnJvcjsKIAotCXJldCA9IGludGVsX2xyX2NvbnRl eHRfZGVmZXJyZWRfYWxsb2MocmluZy0+ZGVmYXVsdF9jb250ZXh0LCByaW5nKTsKKwljdHggPSBy aW5nLT5kZWZhdWx0X2NvbnRleHQ7CisKKwlyZXQgPSBpbnRlbF9scl9jb250ZXh0X2RlZmVycmVk X2FsbG9jKGN0eCwgcmluZyk7CiAJaWYgKHJldCkKIAkJZ290byBlcnJvcjsKIAogCS8qIEFzIHRo aXMgaXMgdGhlIGRlZmF1bHQgY29udGV4dCwgYWx3YXlzIHBpbiBpdCAqLwotCXJldCA9IGludGVs X2xyX2NvbnRleHRfZG9fcGluKAotCQkJcmluZywKLQkJCXJpbmctPmRlZmF1bHRfY29udGV4dC0+ ZW5naW5lW3JpbmctPmlkXS5zdGF0ZSwKLQkJCXJpbmctPmRlZmF1bHRfY29udGV4dC0+ZW5naW5l W3JpbmctPmlkXS5yaW5nKTsKKwlyZXQgPSBpbnRlbF9scl9jb250ZXh0X3BpbihjdHgsIHJpbmcp OwogCWlmIChyZXQpIHsKLQkJRFJNX0VSUk9SKAotCQkJIkZhaWxlZCB0byBwaW4gYW5kIG1hcCBy aW5nYnVmZmVyICVzOiAlZFxuIiwKLQkJCXJpbmctPm5hbWUsIHJldCk7CisJCURSTV9FUlJPUigi RmFpbGVkIHRvIHBpbiBjb250ZXh0IGZvciAlczogJWRcbiIsCisJCQkgIHJpbmctPm5hbWUsIHJl dCk7CiAJCWdvdG8gZXJyb3I7CiAJfQogCkBAIC0xODcyLDE1ICsxODU1LDkgQEAgdm9pZCBpbnRl bF9scl9jb250ZXh0X2ZyZWUoc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCkKIAkJc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPSBjdHgtPmVuZ2luZVtpXS5zdGF0ZTsKIAogCQlp ZiAoY3R4X29iaikgewotCQkJc3RydWN0IGludGVsX3JpbmcgKnJpbmcgPSBjdHgtPmVuZ2luZVtp XS5yaW5nOwotCQkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lID0gcmluZy0+ZW5naW5l OworCQkJV0FSTl9PTihjdHgtPmVuZ2luZVtpXS5waW5fY291bnQpOwogCi0JCQlpZiAoY3R4ID09 IGVuZ2luZS0+ZGVmYXVsdF9jb250ZXh0KSB7Ci0JCQkJaW50ZWxfcmluZ191bm1hcChyaW5nKTsK LQkJCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsKLQkJCX0KLQkJCVdBUk5f T04oY3R4LT5lbmdpbmVbZW5naW5lLT5pZF0ucGluX2NvdW50KTsKLQkJCWludGVsX3JpbmdfZnJl ZShyaW5nKTsKKwkJCWludGVsX3JpbmdfZnJlZShjdHgtPmVuZ2luZVtpXS5yaW5nKTsKIAkJCWRy bV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZjdHhfb2JqLT5iYXNlKTsKIAkJfQogCX0KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfbHJjLmgKaW5kZXggMzc2MDFhMzVkNWZjLi5hNDNkMWU1ZTVmNWEgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5oCkBAIC03MSw3ICs3MSw4IEBAIHZvaWQgaW50ZWxfbHJfY29u dGV4dF9mcmVlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpOwogdWludDMyX3QgaW50ZWxfbHJf Y29udGV4dF9zaXplKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpOwogaW50IGludGVsX2xy X2NvbnRleHRfZGVmZXJyZWRfYWxsb2Moc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwKIAkJCQkg ICAgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7Ci12b2lkIGludGVsX2xyX2NvbnRleHRf dW5waW4oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpOwordm9pZCBpbnRlbF9scl9j b250ZXh0X3VucGluKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCisJCQkgICAgc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIHZvaWQgaW50ZWxfbHJfY29udGV4dF9yZXNldChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCk7CiAKLS0g CjIuNy4wLnJjMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK