From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: [PATCH 1/2] drm/i915: Introduce execlist_port_* accessors Date: Thu, 19 Oct 2017 17:39:41 +0300 Message-ID: <20171019143942.909-1-mika.kuoppala@linux.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 ESMTPS id 29C396EA9A for ; Thu, 19 Oct 2017 14:40:13 +0000 (UTC) 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 RnJvbTogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBpbnRlbC5jb20+CgpJbnN0ZWFkIG9m IHRydXN0aW5nIHRoYXQgZmlyc3QgYXZhaWxhYmxlIHBvcnQgaXMgYXQgaW5kZXggMCwKdXNlIGFj Y2Vzc29yIHRvIGhpZGUgdGhpcy4gVGhpcyBpcyBhIHByZXBhcmF0aW9uIGZvciBhCmZvbGxvd2lu ZyBwYXRjaGVzIHdoZXJlIGhlYWQgY2FuIGJlIGF0IGFyYml0cmFyeSBsb2NhdGlvbgppbiB0aGUg cG9ydCBhcnJheS4KCnYyOiBpbXByb3ZlZCBjb21taXQgbWVzc2FnZSwgZWxzcF9yZWFkeSByZWFk YWJpbGl0eSAoQ2hyaXMpCnYzOiBzL2V4ZWNsaXN0X3BvcnRfaW5kZXgvZXhlY2xpc3RfcG9ydCAo Q2hyaXMpCnY0OiByZWJhc2UgdG8gbmV3IG5hbWluZwp2NTogZml4IHBvcnRfbmV4dCBpbmRleGlu ZwoKQ2M6IE1pY2hhxYIgV2luaWFyc2tpIDxtaWNoYWwud2luaWFyc2tpQGludGVsLmNvbT4KQ2M6 IEpvb25hcyBMYWh0aW5lbiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4LmludGVsLmNvbT4KQ2M6IENo cmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpTaWduZWQtb2ZmLWJ5OiBNaWth IEt1b3BwYWxhIDxtaWthLmt1b3BwYWxhQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dwdV9lcnJvci5jICAgICAgfCAgNiArKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYyB8IDUzICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jICAgICB8ICAyICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAgICAgfCA2MyArKysrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCAg ICB8IDM4ICsrKysrKysrKysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCAxMTQgaW5zZXJ0aW9u cygrKSwgNDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9ncHVfZXJyb3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMK aW5kZXggNjUzZmI2OWU3ZWNiLi42ZDBiZGIwM2IzZjAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9ncHVfZXJyb3IuYwpAQCAtMTMzMywxMSArMTMzMywxMyBAQCBzdGF0aWMgdm9pZCBlbmdpbmVf cmVjb3JkX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIHN0YXRpYyB2 b2lkIGVycm9yX3JlY29yZF9lbmdpbmVfZXhlY2xpc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSwKIAkJCQkJICBzdHJ1Y3QgZHJtX2k5MTVfZXJyb3JfZW5naW5lICplZSkKIHsKLQlj b25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0IGV4ZWNsaXN0cyA9ICZl bmdpbmUtPmV4ZWNsaXN0czsKKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0 IGV4ZWNsaXN0cyA9ICZlbmdpbmUtPmV4ZWNsaXN0czsKIAl1bnNpZ25lZCBpbnQgbjsKIAogCWZv ciAobiA9IDA7IG4gPCBleGVjbGlzdHNfbnVtX3BvcnRzKGV4ZWNsaXN0cyk7IG4rKykgewotCQlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxID0gcG9ydF9yZXF1ZXN0KCZleGVjbGlzdHMt PnBvcnRbbl0pOworCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxOworCisJCXJxID0g cG9ydF9yZXF1ZXN0KGV4ZWNsaXN0c19wb3J0KGV4ZWNsaXN0cywgbikpOwogCiAJCWlmICghcnEp CiAJCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1 Ym1pc3Npb24uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwpp bmRleCBhMmU4MTE0YjczOWQuLjUyMjIwMDRkYjAzOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9ndWNfc3VibWlzc2lvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ3VjX3N1Ym1pc3Npb24uYwpAQCAtNDk2LDE3ICs0OTYsMTkgQEAgc3RhdGljIHZvaWQg aTkxNV9ndWNfc3VibWl0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAlzdHJ1Y3Qg aW50ZWxfZ3VjICpndWMgPSAmZGV2X3ByaXYtPmd1YzsKIAlzdHJ1Y3QgaTkxNV9ndWNfY2xpZW50 ICpjbGllbnQgPSBndWMtPmV4ZWNidWZfY2xpZW50OwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfZXhl Y2xpc3RzICogY29uc3QgZXhlY2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3RzOwotCXN0cnVjdCBl eGVjbGlzdF9wb3J0ICpwb3J0ID0gZXhlY2xpc3RzLT5wb3J0OwogCWNvbnN0IHVuc2lnbmVkIGlu dCBlbmdpbmVfaWQgPSBlbmdpbmUtPmlkOwogCXVuc2lnbmVkIGludCBuOwogCiAJZm9yIChuID0g MDsgbiA8IGV4ZWNsaXN0c19udW1fcG9ydHMoZXhlY2xpc3RzKTsgbisrKSB7CisJCXN0cnVjdCBl eGVjbGlzdF9wb3J0ICpwb3J0OwogCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxOwog CQl1bnNpZ25lZCBpbnQgY291bnQ7CiAKLQkJcnEgPSBwb3J0X3VucGFjaygmcG9ydFtuXSwgJmNv dW50KTsKKwkJcG9ydCA9IGV4ZWNsaXN0c19wb3J0KGV4ZWNsaXN0cywgbik7CisJCXJxID0gcG9y dF91bnBhY2socG9ydCwgJmNvdW50KTsKKwogCQlpZiAocnEgJiYgY291bnQgPT0gMCkgewotCQkJ cG9ydF9zZXQoJnBvcnRbbl0sIHBvcnRfcGFjayhycSwgKytjb3VudCkpOworCQkJcG9ydF9zZXQo cG9ydCwgcG9ydF9wYWNrKHJxLCArK2NvdW50KSk7CiAKIAkJCWlmIChpOTE1X3ZtYV9pc19tYXBf YW5kX2ZlbmNlYWJsZShycS0+cmluZy0+dm1hKSkKIAkJCQlQT1NUSU5HX1JFQURfRlcoR1VDX1NU QVRVUyk7CkBAIC01NjEsMTUgKzU2MywyMCBAQCBzdGF0aWMgdm9pZCBwb3J0X2Fzc2lnbihzdHJ1 Y3QgZXhlY2xpc3RfcG9ydCAqcG9ydCwKIHN0YXRpYyB2b2lkIGk5MTVfZ3VjX2RlcXVldWUoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfZXhl Y2xpc3RzICogY29uc3QgZXhlY2xpc3RzID0gJmVuZ2luZS0+ZXhlY2xpc3RzOwotCXN0cnVjdCBl eGVjbGlzdF9wb3J0ICpwb3J0ID0gZXhlY2xpc3RzLT5wb3J0OworCXN0cnVjdCBleGVjbGlzdF9w b3J0ICpwb3J0OwogCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqbGFzdCA9IE5VTEw7Ci0J Y29uc3Qgc3RydWN0IGV4ZWNsaXN0X3BvcnQgKiBjb25zdCBsYXN0X3BvcnQgPQotCQkmZXhlY2xp c3RzLT5wb3J0W2V4ZWNsaXN0cy0+cG9ydF9tYXNrXTsKIAlib29sIHN1Ym1pdCA9IGZhbHNlOwog CXN0cnVjdCByYl9ub2RlICpyYjsKIAotCWlmIChwb3J0X2lzc2V0KHBvcnQpKQotCQlwb3J0Kys7 CisJcG9ydCA9IGV4ZWNsaXN0c19wb3J0X2hlYWQoZXhlY2xpc3RzKTsKKworCS8qCisJICogV2Ug ZG9uJ3QgY29hbGVzY2UgaW50byBsYXN0IHN1Ym1pdHRlZCBwb3J0IHdpdGggZ3VjLgorCSAqIEZp bmQgZmlyc3QgZnJlZSBwb3J0LCB0aGlzIGlzIHNhZmUgYXMgd2UgZG9udCBkZXF1ZXVlIHdpdGhv dXQKKwkgKiBhdGxlYXN0IGxhc3QgcG9ydCBmcmVlLgorCSAqLworCXdoaWxlIChwb3J0X2lzc2V0 KHBvcnQpKQorCQlwb3J0ID0gZXhlY2xpc3RzX3BvcnRfbmV4dChleGVjbGlzdHMsIHBvcnQpOwog CiAJc3Bpbl9sb2NrX2lycSgmZW5naW5lLT50aW1lbGluZS0+bG9jayk7CiAJcmIgPSBleGVjbGlz dHMtPmZpcnN0OwpAQCAtNTgwLDcgKzU4Nyw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ3VjX2RlcXVl dWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCiAJCWxpc3RfZm9yX2VhY2hfZW50 cnlfc2FmZShycSwgcm4sICZwLT5yZXF1ZXN0cywgcHJpb3RyZWUubGluaykgewogCQkJaWYgKGxh c3QgJiYgcnEtPmN0eCAhPSBsYXN0LT5jdHgpIHsKLQkJCQlpZiAocG9ydCA9PSBsYXN0X3BvcnQp IHsKKwkJCQlpZiAocG9ydCA9PSBleGVjbGlzdHNfcG9ydF90YWlsKGV4ZWNsaXN0cykpIHsKIAkJ CQkJX19saXN0X2RlbF9tYW55KCZwLT5yZXF1ZXN0cywKIAkJCQkJCQkmcnEtPnByaW90cmVlLmxp bmspOwogCQkJCQlnb3RvIGRvbmU7CkBAIC01ODgsNyArNTk1LDggQEAgc3RhdGljIHZvaWQgaTkx NV9ndWNfZGVxdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAKIAkJCQlpZiAo c3VibWl0KQogCQkJCQlwb3J0X2Fzc2lnbihwb3J0LCBsYXN0KTsKLQkJCQlwb3J0Kys7CisKKwkJ CQlwb3J0ID0gZXhlY2xpc3RzX3BvcnRfbmV4dChleGVjbGlzdHMsIHBvcnQpOwogCQkJfQogCiAJ CQlJTklUX0xJU1RfSEVBRCgmcnEtPnByaW90cmVlLmxpbmspOwpAQCAtNjE5LDIyICs2MjcsMjcg QEAgc3RhdGljIHZvaWQgaTkxNV9ndWNfaXJxX2hhbmRsZXIodW5zaWduZWQgbG9uZyBkYXRhKQog ewogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKiBjb25zdCBlbmdpbmUgPSAoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqKWRhdGE7CiAJc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25z dCBleGVjbGlzdHMgPSAmZW5naW5lLT5leGVjbGlzdHM7Ci0Jc3RydWN0IGV4ZWNsaXN0X3BvcnQg KnBvcnQgPSBleGVjbGlzdHMtPnBvcnQ7Ci0JY29uc3Qgc3RydWN0IGV4ZWNsaXN0X3BvcnQgKiBj b25zdCBsYXN0X3BvcnQgPQotCQkmZXhlY2xpc3RzLT5wb3J0W2V4ZWNsaXN0cy0+cG9ydF9tYXNr XTsKLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxOwogCi0JcnEgPSBwb3J0X3JlcXVl c3QoJnBvcnRbMF0pOwotCXdoaWxlIChycSAmJiBpOTE1X2dlbV9yZXF1ZXN0X2NvbXBsZXRlZChy cSkpIHsKKwlkbyB7CisJCXN0cnVjdCBleGVjbGlzdF9wb3J0ICpwb3J0OworCQlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJxOworCisJCXBvcnQgPSBleGVjbGlzdHNfcG9ydF9oZWFkKGV4 ZWNsaXN0cyk7CisJCXJxID0gcG9ydF9yZXF1ZXN0KHBvcnQpOworCisJCWlmICghcnEpCisJCQli cmVhazsKKworCQlpZiAoIWk5MTVfZ2VtX3JlcXVlc3RfY29tcGxldGVkKHJxKSkKKwkJCWJyZWFr OworCiAJCXRyYWNlX2k5MTVfZ2VtX3JlcXVlc3Rfb3V0KHJxKTsKIAkJaTkxNV9nZW1fcmVxdWVz dF9wdXQocnEpOwogCiAJCWV4ZWNsaXN0c19wb3J0X2NvbXBsZXRlKGV4ZWNsaXN0cywgcG9ydCk7 CisJfSB3aGlsZSAoMSk7CiAKLQkJcnEgPSBwb3J0X3JlcXVlc3QoJnBvcnRbMF0pOwotCX0KLQot CWlmICghcG9ydF9pc3NldChsYXN0X3BvcnQpKQorCWlmICghcG9ydF9pc3NldChleGVjbGlzdHNf cG9ydF90YWlsKGV4ZWNsaXN0cykpKQogCQlpOTE1X2d1Y19kZXF1ZXVlKGVuZ2luZSk7CiB9CiAK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMKaW5kZXggYTQ3YTljNmJlYTUyLi44 YmE2MmQ0YzAxMGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2lu ZV9jcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCkBAIC0x NTQ5LDcgKzE1NDksNyBAQCBib29sIGludGVsX2VuZ2luZV9pc19pZGxlKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyogQm90aCBwb3J0cyBkcmFp bmVkLCBubyBtb3JlIEVMU1Agc3VibWlzc2lvbj8gKi8KLQlpZiAocG9ydF9yZXF1ZXN0KCZlbmdp bmUtPmV4ZWNsaXN0cy5wb3J0WzBdKSkKKwlpZiAocG9ydF9yZXF1ZXN0KGV4ZWNsaXN0c19wb3J0 X2hlYWQoJmVuZ2luZS0+ZXhlY2xpc3RzKSkpCiAJCXJldHVybiBmYWxzZTsKIAogCS8qIEVMU1Ag aXMgZW1wdHksIGJ1dCB0aGVyZSBhcmUgcmVhZHkgcmVxdWVzdHM/ICovCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jCmluZGV4IDdmNDVkZDdkYzNlNS4uMjk0NWFhZGM0YjdlIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9scmMuYwpAQCAtNDM3LDI0ICs0MzcsMjYgQEAgc3RhdGljIGlubGluZSB2b2lkIGVs c3Bfd3JpdGUodTY0IGRlc2MsIHUzMiBfX2lvbWVtICplbHNwKQogCiBzdGF0aWMgdm9pZCBleGVj bGlzdHNfc3VibWl0X3BvcnRzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKLQlz dHJ1Y3QgZXhlY2xpc3RfcG9ydCAqcG9ydCA9IGVuZ2luZS0+ZXhlY2xpc3RzLnBvcnQ7CisJc3Ry dWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMgPSAmZW5naW5lLT5l eGVjbGlzdHM7CiAJdTMyIF9faW9tZW0gKmVsc3AgPQogCQllbmdpbmUtPmk5MTUtPnJlZ3MgKyBp OTE1X21taW9fcmVnX29mZnNldChSSU5HX0VMU1AoZW5naW5lKSk7CiAJdW5zaWduZWQgaW50IG47 CiAKLQlmb3IgKG4gPSBleGVjbGlzdHNfbnVtX3BvcnRzKCZlbmdpbmUtPmV4ZWNsaXN0cyk7IG4t LTsgKSB7CisJZm9yIChuID0gZXhlY2xpc3RzX251bV9wb3J0cyhleGVjbGlzdHMpOyBuLS07ICkg eworCQlzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAqcG9ydDsKIAkJc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpycTsKIAkJdW5zaWduZWQgaW50IGNvdW50OwogCQl1NjQgZGVzYzsKIAotCQlycSA9 IHBvcnRfdW5wYWNrKCZwb3J0W25dLCAmY291bnQpOworCQlwb3J0ID0gZXhlY2xpc3RzX3BvcnQo ZXhlY2xpc3RzLCBuKTsKKwkJcnEgPSBwb3J0X3VucGFjayhwb3J0LCAmY291bnQpOwogCQlpZiAo cnEpIHsKIAkJCUdFTV9CVUdfT04oY291bnQgPiAhbik7CiAJCQlpZiAoIWNvdW50KyspCiAJCQkJ ZXhlY2xpc3RzX2NvbnRleHRfc3RhdHVzX2NoYW5nZShycSwgSU5URUxfQ09OVEVYVF9TQ0hFRFVM RV9JTik7Ci0JCQlwb3J0X3NldCgmcG9ydFtuXSwgcG9ydF9wYWNrKHJxLCBjb3VudCkpOworCQkJ cG9ydF9zZXQocG9ydCwgcG9ydF9wYWNrKHJxLCBjb3VudCkpOwogCQkJZGVzYyA9IGV4ZWNsaXN0 c191cGRhdGVfY29udGV4dChycSk7Ci0JCQlHRU1fREVCVUdfRVhFQyhwb3J0W25dLmNvbnRleHRf aWQgPSB1cHBlcl8zMl9iaXRzKGRlc2MpKTsKKwkJCUdFTV9ERUJVR19FWEVDKHBvcnQtPmNvbnRl eHRfaWQgPSB1cHBlcl8zMl9iaXRzKGRlc2MpKTsKIAkJfSBlbHNlIHsKIAkJCUdFTV9CVUdfT04o IW4pOwogCQkJZGVzYyA9IDA7CkBAIC01MjMsMTAgKzUyNSw4IEBAIHN0YXRpYyBib29sIGNhbl9w cmVlbXB0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHN0YXRpYyB2b2lkIGV4ZWNs aXN0c19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIHsKIAlzdHJ1Y3Qg aW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0IGV4ZWNsaXN0cyA9ICZlbmdpbmUtPmV4ZWNs aXN0czsKLQlzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAqcG9ydCA9IGV4ZWNsaXN0cy0+cG9ydDsKLQlj b25zdCBzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAqIGNvbnN0IGxhc3RfcG9ydCA9Ci0JCSZleGVjbGlz dHMtPnBvcnRbZXhlY2xpc3RzLT5wb3J0X21hc2tdOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVx dWVzdCAqbGFzdCA9IHBvcnRfcmVxdWVzdChwb3J0KTsKKwlzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAq cG9ydDsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKmxhc3Q7CiAJc3RydWN0IHJiX25v ZGUgKnJiOwogCWJvb2wgc3VibWl0ID0gZmFsc2U7CiAKQEAgLTU1Nyw2ICs1NTcsOSBAQCBzdGF0 aWMgdm9pZCBleGVjbGlzdHNfZGVxdWV1ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp CiAJaWYgKCFyYikKIAkJZ290byB1bmxvY2s7CiAKKwlwb3J0ID0gZXhlY2xpc3RzX3BvcnRfaGVh ZChleGVjbGlzdHMpOworCWxhc3QgPSBwb3J0X3JlcXVlc3QocG9ydCk7CisKIAlpZiAobGFzdCkg ewogCQkvKgogCQkgKiBEb24ndCByZXN1Ym1pdCBvciBzd2l0Y2ggdW50aWwgYWxsIG91dHN0YW5k aW5nCkBAIC01NjQsNyArNTY3LDcgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2RlcXVldWUoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQkgKiBrbm93IHRoZSBuZXh0IHByZWVtcHRp b24gc3RhdHVzIHdlIHNlZSBjb3JyZXNwb25kcwogCQkgKiB0byB0aGlzIEVMU1AgdXBkYXRlLgog CQkgKi8KLQkJaWYgKHBvcnRfY291bnQoJnBvcnRbMF0pID4gMSkKKwkJaWYgKHBvcnRfY291bnQo cG9ydCkgPiAxKQogCQkJZ290byB1bmxvY2s7CiAKIAkJaWYgKGNhbl9wcmVlbXB0KGVuZ2luZSkg JiYKQEAgLTU5OCw3ICs2MDEsNyBAQCBzdGF0aWMgdm9pZCBleGVjbGlzdHNfZGVxdWV1ZShzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCQkgKiB0aGUgZHJpdmVyIGlzIHVuYWJsZSB0 byBrZWVwIHVwIHRoZSBzdXBwbHkgb2YgbmV3CiAJCQkgKiB3b3JrKS4KIAkJCSAqLwotCQkJaWYg KHBvcnRfY291bnQoJnBvcnRbMV0pKQorCQkJaWYgKHBvcnRfY291bnQoZXhlY2xpc3RzX3BvcnRf bmV4dChleGVjbGlzdHMsIHBvcnQpKSkKIAkJCQlnb3RvIHVubG9jazsKIAogCQkJLyogV2FJZGxl TGl0ZVJlc3RvcmU6YmR3LHNrbApAQCAtNjM0LDcgKzYzNyw3IEBAIHN0YXRpYyB2b2lkIGV4ZWNs aXN0c19kZXF1ZXVlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAkJCQkgKiBjb21i aW5lIHRoaXMgcmVxdWVzdCB3aXRoIHRoZSBsYXN0LCB0aGVuIHdlCiAJCQkJICogYXJlIGRvbmUu CiAJCQkJICovCi0JCQkJaWYgKHBvcnQgPT0gbGFzdF9wb3J0KSB7CisJCQkJaWYgKHBvcnQgPT0g ZXhlY2xpc3RzX3BvcnRfdGFpbChleGVjbGlzdHMpKSB7CiAJCQkJCV9fbGlzdF9kZWxfbWFueSgm cC0+cmVxdWVzdHMsCiAJCQkJCQkJJnJxLT5wcmlvdHJlZS5saW5rKTsKIAkJCQkJZ290byBkb25l OwpAQCAtNjU4LDcgKzY2MSw4IEBAIHN0YXRpYyB2b2lkIGV4ZWNsaXN0c19kZXF1ZXVlKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKIAogCQkJCWlmIChzdWJtaXQpCiAJCQkJCXBvcnRf YXNzaWduKHBvcnQsIGxhc3QpOwotCQkJCXBvcnQrKzsKKworCQkJCXBvcnQgPSBleGVjbGlzdHNf cG9ydF9uZXh0KGV4ZWNsaXN0cywgcG9ydCk7CiAKIAkJCQlHRU1fQlVHX09OKHBvcnRfaXNzZXQo cG9ydCkpOwogCQkJfQpAQCAtNjg4LDE5ICs2OTIsMjQgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3Rz X2RlcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogfQogCiBzdGF0aWMgdm9p ZAotZXhlY2xpc3RfY2FuY2VsX3BvcnRfcmVxdWVzdHMoc3RydWN0IGludGVsX2VuZ2luZV9leGVj bGlzdHMgKmV4ZWNsaXN0cykKK2V4ZWNsaXN0c19jYW5jZWxfcG9ydF9yZXF1ZXN0cyhzdHJ1Y3Qg aW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqZXhlY2xpc3RzKQogewotCXN0cnVjdCBleGVjbGlzdF9w b3J0ICpwb3J0ID0gZXhlY2xpc3RzLT5wb3J0OwogCXVuc2lnbmVkIGludCBudW1fcG9ydHMgPSBl eGVjbGlzdHNfbnVtX3BvcnRzKGV4ZWNsaXN0cyk7CiAKLQl3aGlsZSAobnVtX3BvcnRzLS0gJiYg cG9ydF9pc3NldChwb3J0KSkgewotCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJxID0g cG9ydF9yZXF1ZXN0KHBvcnQpOworCXdoaWxlIChudW1fcG9ydHMtLSkgeworCQlzdHJ1Y3QgZXhl Y2xpc3RfcG9ydCAqcG9ydDsKKwkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpycTsKKwor CQlwb3J0ID0gZXhlY2xpc3RzX3BvcnRfaGVhZChleGVjbGlzdHMpOworCQlpZiAoIXBvcnRfaXNz ZXQocG9ydCkpCisJCQlicmVhazsKKworCQlycSA9IHBvcnRfcmVxdWVzdChwb3J0KTsKIAogCQll eGVjbGlzdHNfY29udGV4dF9zdGF0dXNfY2hhbmdlKHJxLCBJTlRFTF9DT05URVhUX1NDSEVEVUxF X1BSRUVNUFRFRCk7CiAJCWk5MTVfZ2VtX3JlcXVlc3RfcHV0KHJxKTsKIAotCQltZW1zZXQocG9y dCwgMCwgc2l6ZW9mKCpwb3J0KSk7Ci0JCXBvcnQrKzsKKwkJZXhlY2xpc3RzX3BvcnRfY29tcGxl dGUoZXhlY2xpc3RzLCBwb3J0KTsKIAl9CiB9CiAKQEAgLTcxNCw3ICs3MjMsNyBAQCBzdGF0aWMg dm9pZCBleGVjbGlzdHNfY2FuY2VsX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVu Z2luZSkKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZW5naW5lLT50aW1lbGluZS0+bG9jaywgZmxhZ3Mp OwogCiAJLyogQ2FuY2VsIHRoZSByZXF1ZXN0cyBvbiB0aGUgSFcgYW5kIGNsZWFyIHRoZSBFTFNQ IHRyYWNrZXIuICovCi0JZXhlY2xpc3RfY2FuY2VsX3BvcnRfcmVxdWVzdHMoZXhlY2xpc3RzKTsK KwlleGVjbGlzdHNfY2FuY2VsX3BvcnRfcmVxdWVzdHMoZXhlY2xpc3RzKTsKIAogCS8qIE1hcmsg YWxsIGV4ZWN1dGluZyByZXF1ZXN0cyBhcyBza2lwcGVkLiAqLwogCWxpc3RfZm9yX2VhY2hfZW50 cnkocnEsICZlbmdpbmUtPnRpbWVsaW5lLT5yZXF1ZXN0cywgbGluaykgewpAQCAtNzY5LDcgKzc3 OCw2IEBAIHN0YXRpYyB2b2lkIGludGVsX2xyY19pcnFfaGFuZGxlcih1bnNpZ25lZCBsb25nIGRh dGEpCiB7CiAJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqIGNvbnN0IGVuZ2luZSA9IChzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICopZGF0YTsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAq IGNvbnN0IGV4ZWNsaXN0cyA9ICZlbmdpbmUtPmV4ZWNsaXN0czsKLQlzdHJ1Y3QgZXhlY2xpc3Rf cG9ydCAqIGNvbnN0IHBvcnQgPSBleGVjbGlzdHMtPnBvcnQ7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1OwogCiAJLyogV2UgY2FuIHNraXAgYWNxdWly aW5nIGludGVsX3J1bnRpbWVfcG1fZ2V0KCkgaGVyZSBhcyBpdCB3YXMgdGFrZW4KQEAgLTc4OCw2 ICs3OTYsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9scmNfaXJxX2hhbmRsZXIodW5zaWduZWQgbG9u ZyBkYXRhKQogCSAqIG5ldyByZXF1ZXN0IChvdXRzaWRlIG9mIHRoZSBjb250ZXh0LXN3aXRjaCBp bnRlcnJ1cHQpLgogCSAqLwogCXdoaWxlICh0ZXN0X2JpdChFTkdJTkVfSVJRX0VYRUNMSVNULCAm ZW5naW5lLT5pcnFfcG9zdGVkKSkgeworCQlzdHJ1Y3QgZXhlY2xpc3RfcG9ydCAqcG9ydDsKKwog CQkvKiBUaGUgSFdTUCBjb250YWlucyBhIChjYWNoZWFibGUpIG1pcnJvciBvZiB0aGUgQ1NCICov CiAJCWNvbnN0IHUzMiAqYnVmID0KIAkJCSZlbmdpbmUtPnN0YXR1c19wYWdlLnBhZ2VfYWRkcltJ OTE1X0hXU19DU0JfQlVGMF9JTkRFWF07CkBAIC04NTUsNyArODY1LDcgQEAgc3RhdGljIHZvaWQg aW50ZWxfbHJjX2lycV9oYW5kbGVyKHVuc2lnbmVkIGxvbmcgZGF0YSkKIAogCQkJaWYgKHN0YXR1 cyAmIEdFTjhfQ1RYX1NUQVRVU19BQ1RJVkVfSURMRSAmJgogCQkJICAgIGJ1ZlsyKmhlYWQgKyAx XSA9PSBQUkVFTVBUX0lEKSB7Ci0JCQkJZXhlY2xpc3RfY2FuY2VsX3BvcnRfcmVxdWVzdHMoZXhl Y2xpc3RzKTsKKwkJCQlleGVjbGlzdHNfY2FuY2VsX3BvcnRfcmVxdWVzdHMoZXhlY2xpc3RzKTsK IAogCQkJCXNwaW5fbG9ja19pcnEoJmVuZ2luZS0+dGltZWxpbmUtPmxvY2spOwogCQkJCXVud2lu ZF9pbmNvbXBsZXRlX3JlcXVlc3RzKGVuZ2luZSk7CkBAIC04NzAsNiArODgwLDggQEAgc3RhdGlj IHZvaWQgaW50ZWxfbHJjX2lycV9oYW5kbGVyKHVuc2lnbmVkIGxvbmcgZGF0YSkKIAkJCSAgICBl eGVjbGlzdHMtPnByZWVtcHQpCiAJCQkJY29udGludWU7CiAKKwkJCXBvcnQgPSBleGVjbGlzdHNf cG9ydF9oZWFkKGV4ZWNsaXN0cyk7CisKIAkJCS8qIENoZWNrIHRoZSBjb250ZXh0L2Rlc2MgaWQg Zm9yIHRoaXMgZXZlbnQgbWF0Y2hlcyAqLwogCQkJR0VNX0RFQlVHX0JVR19PTihidWZbMiAqIGhl YWQgKyAxXSAhPSBwb3J0LT5jb250ZXh0X2lkKTsKIApAQCAtODkwLDcgKzkwMiw3IEBAIHN0YXRp YyB2b2lkIGludGVsX2xyY19pcnFfaGFuZGxlcih1bnNpZ25lZCBsb25nIGRhdGEpCiAJCQl9CiAK IAkJCS8qIEFmdGVyIHRoZSBmaW5hbCBlbGVtZW50LCB0aGUgaHcgc2hvdWxkIGJlIGlkbGUgKi8K LQkJCUdFTV9CVUdfT04ocG9ydF9jb3VudChwb3J0KSA9PSAwICYmCisJCQlHRU1fQlVHX09OKHBv cnRfY291bnQoZXhlY2xpc3RzX3BvcnRfaGVhZChleGVjbGlzdHMpKSA9PSAwICYmCiAJCQkJICAg IShzdGF0dXMgJiBHRU44X0NUWF9TVEFUVVNfQUNUSVZFX0lETEUpKTsKIAkJfQogCkBAIC05MjEs NiArOTMzLDcgQEAgc3RhdGljIHZvaWQgaW5zZXJ0X3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lLAogc3RhdGljIHZvaWQgZXhlY2xpc3RzX3N1Ym1pdF9yZXF1ZXN0KHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCkKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUgPSByZXF1ZXN0LT5lbmdpbmU7CisJc3RydWN0IGludGVsX2VuZ2luZV9leGVj bGlzdHMgKiBjb25zdCBleGVjbGlzdHMgPSAmZW5naW5lLT5leGVjbGlzdHM7CiAJdW5zaWduZWQg bG9uZyBmbGFnczsKIAogCS8qIFdpbGwgYmUgY2FsbGVkIGZyb20gaXJxLWNvbnRleHQgd2hlbiB1 c2luZyBmb3JlaWduIGZlbmNlcy4gKi8KQEAgLTkyOCw3ICs5NDEsNyBAQCBzdGF0aWMgdm9pZCBl eGVjbGlzdHNfc3VibWl0X3JlcXVlc3Qoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1 ZXN0KQogCiAJaW5zZXJ0X3JlcXVlc3QoZW5naW5lLCAmcmVxdWVzdC0+cHJpb3RyZWUsIHJlcXVl c3QtPnByaW90cmVlLnByaW9yaXR5KTsKIAotCUdFTV9CVUdfT04oIWVuZ2luZS0+ZXhlY2xpc3Rz LmZpcnN0KTsKKwlHRU1fQlVHX09OKCFleGVjbGlzdHMtPmZpcnN0KTsKIAlHRU1fQlVHX09OKGxp c3RfZW1wdHkoJnJlcXVlc3QtPnByaW90cmVlLmxpbmspKTsKIAogCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJmVuZ2luZS0+dGltZWxpbmUtPmxvY2ssIGZsYWdzKTsKQEAgLTE1MjAsNyArMTUzMyw3 IEBAIHN0YXRpYyB2b2lkIHJlc2V0X2NvbW1vbl9yaW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSwKIAkgKiBndWVzc2luZyB0aGUgbWlzc2VkIGNvbnRleHQtc3dpdGNoIGV2ZW50cyBi eSBsb29raW5nIGF0IHdoYXQKIAkgKiByZXF1ZXN0cyB3ZXJlIGNvbXBsZXRlZC4KIAkgKi8KLQll eGVjbGlzdF9jYW5jZWxfcG9ydF9yZXF1ZXN0cyhleGVjbGlzdHMpOworCWV4ZWNsaXN0c19jYW5j ZWxfcG9ydF9yZXF1ZXN0cyhleGVjbGlzdHMpOwogCiAJLyogUHVzaCBiYWNrIGFueSBpbmNvbXBs ZXRlIHJlcXVlc3RzIGZvciByZXBsYXkgYWZ0ZXIgdGhlIHJlc2V0LiAqLwogCXVud2luZF9pbmNv bXBsZXRlX3JlcXVlc3RzKGVuZ2luZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmgKaW5kZXggMTcxODZmMDY3NDA4Li5jZmVjNzM0MDBkMGYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKQEAgLTI1MSw2ICsyNTEsMTEgQEAgc3RydWN0IGludGVs X2VuZ2luZV9leGVjbGlzdHMgewogCXVuc2lnbmVkIGludCBwb3J0X21hc2s7CiAKIAkvKioKKwkg KiBAcG9ydF9oZWFkOiBmaXJzdCB1c2VkIGV4ZWNsaXN0IHBvcnQKKwkgKi8KKwl1bnNpZ25lZCBp bnQgcG9ydF9oZWFkOworCisJLyoqCiAJICogQHF1ZXVlOiBxdWV1ZSBvZiByZXF1ZXN0cywgaW4g cHJpb3JpdHkgbGlzdHMKIAkgKi8KIAlzdHJ1Y3QgcmJfcm9vdCBxdWV1ZTsKQEAgLTUzMSw2ICs1 MzYsMzkgQEAgZXhlY2xpc3RzX251bV9wb3J0cyhjb25zdCBzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4 ZWNsaXN0cyAqIGNvbnN0IGV4ZWNsaXN0cykKIAlyZXR1cm4gZXhlY2xpc3RzLT5wb3J0X21hc2sg KyAxOwogfQogCisjZGVmaW5lIF9fcG9ydF9hZGQoc3RhcnQsIG4sIG1hc2spICgoKHN0YXJ0KSAr IChuKSkgJiAobWFzaykpCisjZGVmaW5lIHBvcnRfaGVhZF9hZGQoZSwgbikgX19wb3J0X2FkZCgo ZSktPnBvcnRfaGVhZCwgbiwgKGUpLT5wb3J0X21hc2spCisKKy8qIEluZGV4IHN0YXJ0aW5nIGZy b20gcG9ydF9oZWFkICovCitzdGF0aWMgaW5saW5lIHN0cnVjdCBleGVjbGlzdF9wb3J0ICoKK2V4 ZWNsaXN0c19wb3J0KHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhlY2xp c3RzLAorCSAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgbikKK3sKKwlyZXR1cm4gJmV4ZWNsaXN0 cy0+cG9ydFtwb3J0X2hlYWRfYWRkKGV4ZWNsaXN0cywgbildOworfQorCitzdGF0aWMgaW5saW5l IHN0cnVjdCBleGVjbGlzdF9wb3J0ICoKK2V4ZWNsaXN0c19wb3J0X2hlYWQoc3RydWN0IGludGVs X2VuZ2luZV9leGVjbGlzdHMgKiBjb25zdCBleGVjbGlzdHMpCit7CisJcmV0dXJuIGV4ZWNsaXN0 c19wb3J0KGV4ZWNsaXN0cywgMCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGV4ZWNsaXN0 X3BvcnQgKgorZXhlY2xpc3RzX3BvcnRfdGFpbChzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0 cyAqIGNvbnN0IGV4ZWNsaXN0cykKK3sKKwlyZXR1cm4gZXhlY2xpc3RzX3BvcnQoZXhlY2xpc3Rz LCAtMSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc3RydWN0IGV4ZWNsaXN0X3BvcnQgKgorZXhlY2xp c3RzX3BvcnRfbmV4dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2V4ZWNsaXN0cyAqIGNvbnN0IGV4ZWNs aXN0cywKKwkJICAgIGNvbnN0IHN0cnVjdCBleGVjbGlzdF9wb3J0ICogY29uc3QgcG9ydCkKK3sK Kwljb25zdCB1bnNpZ25lZCBpbnQgbiA9IF9fcG9ydF9hZGQocG9ydF9pbmRleChwb3J0LCBleGVj bGlzdHMpLAorCQkJCQkgIDEsCisJCQkJCSAgZXhlY2xpc3RzLT5wb3J0X21hc2spOworCXJldHVy biAmZXhlY2xpc3RzLT5wb3J0W25dOworfQorCiBzdGF0aWMgaW5saW5lIHZvaWQKIGV4ZWNsaXN0 c19wb3J0X2NvbXBsZXRlKHN0cnVjdCBpbnRlbF9lbmdpbmVfZXhlY2xpc3RzICogY29uc3QgZXhl Y2xpc3RzLAogCQkJc3RydWN0IGV4ZWNsaXN0X3BvcnQgKiBjb25zdCBwb3J0KQotLSAKMi4xMS4w CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK