From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Daniel Subject: [PATCH v5] drm/i915: Add soft-pinning API for execbuffer Date: Mon, 20 Jul 2015 17:41:44 +0100 Message-ID: <1437410504-12467-1-git-send-email-thomas.daniel@intel.com> References: <1435673593-28127-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 mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 2FCBD6E46A for ; Mon, 20 Jul 2015 09:42:11 -0700 (PDT) In-Reply-To: <1435673593-28127-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: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= , Akash Goel , Vinay Belgaumkar List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CgpVc2Vyc3BhY2Ug Y2FuIHBhc3MgaW4gYW4gb2Zmc2V0IHRoYXQgaXQgcHJlc3VtZXMgdGhlIG9iamVjdCBpcyBsb2Nh dGVkCmF0LiBUaGUga2VybmVsIHdpbGwgdGhlbiBkbyBpdHMgdXRtb3N0IHRvIGZpdCB0aGUgb2Jq ZWN0IGludG8gdGhhdApsb2NhdGlvbi4gVGhlIGFzc3VtcHRpb24gaXMgdGhhdCB1c2Vyc3BhY2Ug aXMgaGFuZGxpbmcgaXRzIG93biBvYmplY3QKbG9jYXRpb25zIChmb3IgZXhhbXBsZSBhbG9uZyB3 aXRoIGZ1bGwtcHBndHQpIGFuZCB0aGF0IHRoZSBrZXJuZWwgd2lsbApyYXJlbHkgaGF2ZSB0byBt YWtlIHNwYWNlIGZvciB0aGUgdXNlcidzIHJlcXVlc3RzLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMg V2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cgp2MjogRml4ZWQgaW5jb3JyZWN0IGV2 aWN0aW9uIGZvdW5kIGJ5IE1pY2hhbCBXaW5pYXJza2kgLSBmaXggc3VnZ2VzdGVkIGJ5IENocmlz CldpbHNvbi4gIEZpeGVkIGluY29ycmVjdCBlcnJvciBwYXRocyBjYXVzaW5nIGNyYXNoIGZvdW5k IGJ5IE1pY2hhbCBXaW5pYXJza2kuCihOb3QgcHVibGlzaGVkIGV4dGVybmFsbHkpCgp2MzogUmVi YXNlZCBiZWNhdXNlIG9mIHRyaXZpYWwgY29uZmxpY3QgaW4gb2JqZWN0X2JpbmRfdG9fdm0uICBG aXhlZCBldmljdGlvbgp0byBhbGxvdyBldmljdGlvbiBvZiBzb2Z0LXBpbm5lZCBvYmplY3RzIHdo ZW4gYW5vdGhlciBzb2Z0LXBpbm5lZCBvYmplY3QgdXNlZApieSBhIHN1YnNlcXVlbnQgZXhlY2J1 ZmZlciBvdmVybGFwcyByZXBvcnRlZCBieSBNaWNoYWwgV2luaWFyc2tpLgooTm90IHB1Ymxpc2hl ZCBleHRlcm5hbGx5KQoKdjQ6IE1vdmVkIHNvZnQtcGlubmVkIG9iamVjdHMgdG8gdGhlIGZyb250 IG9mIG9yZGVyZWRfdm1hcyBzbyB0aGF0IHRoZXkgYXJlCnBpbm5lZCBmaXJzdCBhZnRlciBhbiBh ZGRyZXNzIGNvbmZsaWN0IGhhcHBlbnMgdG8gYXZvaWQgcmVwZWF0ZWQgY29uZmxpY3RzIGluCnJh cmUgY2FzZXMgKFN1Z2dlc3RlZCBieSBDaHJpcyBXaWxzb24pLiAgRXhwYW5kZWQgY29tbWVudCBv bgpkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyLm9mZnNldCB0byBjb3ZlciB0aGlzIG5ldyBBUEku Cgp2NTogQWRkZWQgSTkxNV9QQVJBTV9IQVNfRVhFQ19TT0ZUUElOIHBhcmFtZXRlciBmb3IgZGV0 ZWN0aW5nIHRoaXMgY2FwYWJpbGl0eQooS3Jpc3RpYW4pLiBBZGRlZCBjaGVjayBmb3IgbXVsdGlw bGUgcGlubmluZ3Mgb24gZXZpY3Rpb24gKEFrYXNoKS4gTWFkZSBzdXJlCmJ1ZmZlcnMgYXJlIG5v dCBjb25zaWRlcmVkIG1pc3BsYWNlZCB3aXRob3V0IHRoZSB1c2VyIHNwZWNpZnlpbmcKRVhFQ19P QkpFQ1RfU1VQUE9SVFNfNDhCQkFERFJFU1MuICBVc2VyIG11c3QgYXNzdW1lIHJlc3BvbnNpYmls aXR5IGZvciBhbnkKYWRkcmVzc2luZyB3b3JrYXJvdW5kcy4gIFVwZGF0ZWQgb2JqZWN0Mi5vZmZz ZXQgZmllbGQgY29tbWVudCBhZ2FpbiB0byBjbGFyaWZ5Ck5PX1JFTE9DIGNhc2UgKENocmlzKS4g IGNoZWNrcGF0Y2ggY2xlYW51cC4KCkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNv bi5jby51az4KQ2M6IEFrYXNoIEdvZWwgPGFrYXNoLmdvZWxAaW50ZWwuY29tPgpDYzogVmluYXkg QmVsZ2F1bWthciA8dmluYXkuYmVsZ2F1bWthckBpbnRlbC5jb20+CkNjOiBNaWNoYWwgV2luaWFy c2tpIDxtaWNoYWwud2luaWFyc2tpQGludGVsLmNvbT4KQ2M6IFpvdSBOYW5oYWkgPG5hbmhhaS56 b3VAaW50ZWwuY29tPgpDYzogS3Jpc3RpYW4gSMO4Z3NiZXJnIDxob2Vnc2JlcmdAZ21haWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgRGFuaWVsIDx0aG9tYXMuZGFuaWVsQGludGVsLmNvbT4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jICAgICAgICAgICAgfCAgICAzICsr CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgfCAgICA0ICsrKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgIHwgICA1MiArKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmlj dC5jICAgICAgfCAgIDM5ICsrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIHwgICAxOSArKysrKysrKy0tCiBpbmNsdWRlL3VhcGkv ZHJtL2k5MTVfZHJtLmggICAgICAgICAgICAgICAgfCAgIDEyICsrKysrLS0KIDYgZmlsZXMgY2hh bmdlZCwgMTA5IGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RtYS5jCmluZGV4IGM1MzQ5ZmEuLjk4MDU1NDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZG1hLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwpA QCAtMTY3LDYgKzE2Nyw5IEBAIHN0YXRpYyBpbnQgaTkxNV9nZXRwYXJhbShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQl2YWx1ZSA9IGk5MTUuZW5hYmxlX2hhbmdjaGVjayAm JgogCQkJaW50ZWxfaGFzX2dwdV9yZXNldChkZXYpOwogCQlicmVhazsKKwljYXNlIEk5MTVfUEFS QU1fSEFTX0VYRUNfU09GVFBJTjoKKwkJdmFsdWUgPSAxOworCQlicmVhazsKIAlkZWZhdWx0Ogog CQlEUk1fREVCVUcoIlVua25vd24gcGFyYW1ldGVyICVkXG4iLCBwYXJhbS0+cGFyYW0pOwogCQly ZXR1cm4gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IGQ5MGE3ODIuLmU5NmMx MDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjc0Nyw3ICsyNzQ3LDkgQEAgdm9pZCBp OTE1X2dlbV92bWFfZGVzdHJveShzdHJ1Y3QgaTkxNV92bWEgKnZtYSk7CiAjZGVmaW5lIFBJTl9V U0VSCSgxPDw0KQogI2RlZmluZSBQSU5fVVBEQVRFCSgxPDw1KQogI2RlZmluZSBQSU5fRlVMTF9S QU5HRQkoMTw8NikKKyNkZWZpbmUgUElOX09GRlNFVF9GSVhFRAkoMTw8NykKICNkZWZpbmUgUElO X09GRlNFVF9NQVNLICh+NDA5NSkKKwogaW50IF9fbXVzdF9jaGVjawogaTkxNV9nZW1fb2JqZWN0 X3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkgICAgc3RydWN0IGk5MTVf YWRkcmVzc19zcGFjZSAqdm0sCkBAIC0zMDg1LDYgKzMwODcsOCBAQCBpbnQgX19tdXN0X2NoZWNr IGk5MTVfZ2VtX2V2aWN0X3NvbWV0aGluZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQkg IHVuc2lnbmVkIGxvbmcgc3RhcnQsCiAJCQkJCSAgdW5zaWduZWQgbG9uZyBlbmQsCiAJCQkJCSAg dW5zaWduZWQgZmxhZ3MpOworaW50IF9fbXVzdF9jaGVjaworaTkxNV9nZW1fZXZpY3RfZm9yX3Zt YShzdHJ1Y3QgaTkxNV92bWEgKnRhcmdldCk7CiBpbnQgaTkxNV9nZW1fZXZpY3Rfdm0oc3RydWN0 IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sIGJvb2wgZG9faWRsZSk7CiBpbnQgaTkxNV9nZW1fZXZp Y3RfZXZlcnl0aGluZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMKaW5kZXggZjE3MGRhNi4uZmVhNDE5NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCkBA IC0zODA2LDIyICszODA2LDQyIEBAIGk5MTVfZ2VtX29iamVjdF9iaW5kX3RvX3ZtKHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJaWYgKElTX0VSUih2bWEpKQogCQlnb3RvIGVycl91 bnBpbjsKIAorCWlmIChmbGFncyAmIFBJTl9PRkZTRVRfRklYRUQpIHsKKwkJdWludDY0X3Qgb2Zm c2V0ID0gZmxhZ3MgJiBQSU5fT0ZGU0VUX01BU0s7CisKKwkJaWYgKG9mZnNldCAmIChhbGlnbm1l bnQgLSAxKSkgeworCQkJcmV0ID0gLUVJTlZBTDsKKwkJCWdvdG8gZXJyX2ZyZWVfdm1hOworCQl9 CisJCXZtYS0+bm9kZS5zdGFydCA9IG9mZnNldDsKKwkJdm1hLT5ub2RlLnNpemUgPSBzaXplOwor CQl2bWEtPm5vZGUuY29sb3IgPSBvYmotPmNhY2hlX2xldmVsOworCQlyZXQgPSBkcm1fbW1fcmVz ZXJ2ZV9ub2RlKCZ2bS0+bW0sICZ2bWEtPm5vZGUpOworCQlpZiAocmV0KSB7CisJCQlyZXQgPSBp OTE1X2dlbV9ldmljdF9mb3Jfdm1hKHZtYSk7CisJCQlpZiAocmV0ID09IDApCisJCQkJcmV0ID0g ZHJtX21tX3Jlc2VydmVfbm9kZSgmdm0tPm1tLCAmdm1hLT5ub2RlKTsKKwkJfQorCQlpZiAocmV0 KQorCQkJZ290byBlcnJfZnJlZV92bWE7CisJfSBlbHNlIHsKIHNlYXJjaF9mcmVlOgotCXJldCA9 IGRybV9tbV9pbnNlcnRfbm9kZV9pbl9yYW5nZV9nZW5lcmljKCZ2bS0+bW0sICZ2bWEtPm5vZGUs Ci0JCQkJCQkgIHNpemUsIGFsaWdubWVudCwKLQkJCQkJCSAgb2JqLT5jYWNoZV9sZXZlbCwKLQkJ CQkJCSAgc3RhcnQsIGVuZCwKLQkJCQkJCSAgc2VhcmNoX2ZsYWcsCi0JCQkJCQkgIGFsbG9jX2Zs YWcpOwotCWlmIChyZXQpIHsKLQkJcmV0ID0gaTkxNV9nZW1fZXZpY3Rfc29tZXRoaW5nKGRldiwg dm0sIHNpemUsIGFsaWdubWVudCwKLQkJCQkJICAgICAgIG9iai0+Y2FjaGVfbGV2ZWwsCi0JCQkJ CSAgICAgICBzdGFydCwgZW5kLAotCQkJCQkgICAgICAgZmxhZ3MpOwotCQlpZiAocmV0ID09IDAp Ci0JCQlnb3RvIHNlYXJjaF9mcmVlOworCQlyZXQgPSBkcm1fbW1faW5zZXJ0X25vZGVfaW5fcmFu Z2VfZ2VuZXJpYygmdm0tPm1tLCAmdm1hLT5ub2RlLAorCQkJCQkJCSAgc2l6ZSwgYWxpZ25tZW50 LAorCQkJCQkJCSAgb2JqLT5jYWNoZV9sZXZlbCwKKwkJCQkJCQkgIHN0YXJ0LCBlbmQsCisJCQkJ CQkJICBzZWFyY2hfZmxhZywKKwkJCQkJCQkgIGFsbG9jX2ZsYWcpOworCQlpZiAocmV0KSB7CisJ CQlyZXQgPSBpOTE1X2dlbV9ldmljdF9zb21ldGhpbmcoZGV2LCB2bSwgc2l6ZSwgYWxpZ25tZW50 LAorCQkJCQkJICAgICAgIG9iai0+Y2FjaGVfbGV2ZWwsCisJCQkJCQkgICAgICAgc3RhcnQsIGVu ZCwKKwkJCQkJCSAgICAgICBmbGFncyk7CisJCQlpZiAocmV0ID09IDApCisJCQkJZ290byBzZWFy Y2hfZnJlZTsKIAotCQlnb3RvIGVycl9mcmVlX3ZtYTsKKwkJCWdvdG8gZXJyX2ZyZWVfdm1hOwor CQl9CiAJfQogCWlmIChXQVJOX09OKCFpOTE1X2dlbV92YWxpZF9ndHRfc3BhY2Uodm1hLCBvYmot PmNhY2hlX2xldmVsKSkpIHsKIAkJcmV0ID0gLUVJTlZBTDsKQEAgLTQzNTcsNiArNDM3NywxMCBA QCBpOTE1X3ZtYV9taXNwbGFjZWQoc3RydWN0IGk5MTVfdm1hICp2bWEsIHVpbnQzMl90IGFsaWdu bWVudCwgdWludDY0X3QgZmxhZ3MpCiAJICAgIHZtYS0+bm9kZS5zdGFydCA8IChmbGFncyAmIFBJ Tl9PRkZTRVRfTUFTSykpCiAJCXJldHVybiB0cnVlOwogCisJaWYgKGZsYWdzICYgUElOX09GRlNF VF9GSVhFRCAmJgorCSAgICB2bWEtPm5vZGUuc3RhcnQgIT0gKGZsYWdzICYgUElOX09GRlNFVF9N QVNLKSkKKwkJcmV0dXJuIHRydWU7CisKIAlyZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9ldmljdC5jCmluZGV4IGQwOWUzNWUuLmJjNWI5MWMgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYwpAQCAtMTk5LDYgKzE5OSw0NSBAQCBmb3VuZDoKIAly ZXR1cm4gcmV0OwogfQogCitpbnQKK2k5MTVfZ2VtX2V2aWN0X2Zvcl92bWEoc3RydWN0IGk5MTVf dm1hICp0YXJnZXQpCit7CisJc3RydWN0IGRybV9tbV9ub2RlICpub2RlLCAqbmV4dDsKKworCWxp c3RfZm9yX2VhY2hfZW50cnlfc2FmZShub2RlLCBuZXh0LAorCQkJJnRhcmdldC0+dm0tPm1tLmhl YWRfbm9kZS5ub2RlX2xpc3QsCisJCQlub2RlX2xpc3QpIHsKKwkJc3RydWN0IGk5MTVfdm1hICp2 bWE7CisJCWludCByZXQ7CisKKwkJaWYgKG5vZGUtPnN0YXJ0ICsgbm9kZS0+c2l6ZSA8PSB0YXJn ZXQtPm5vZGUuc3RhcnQpCisJCQljb250aW51ZTsKKwkJaWYgKG5vZGUtPnN0YXJ0ID49IHRhcmdl dC0+bm9kZS5zdGFydCArIHRhcmdldC0+bm9kZS5zaXplKQorCQkJYnJlYWs7CisKKwkJdm1hID0g Y29udGFpbmVyX29mKG5vZGUsIHR5cGVvZigqdm1hKSwgbm9kZSk7CisKKwkJaWYgKHZtYS0+cGlu X2NvdW50KSB7CisJCQlpZiAoIXZtYS0+ZXhlY19lbnRyeSB8fCAodm1hLT5waW5fY291bnQgPiAx KSkKKwkJCQkvKiBPYmplY3QgaXMgcGlubmVkIGZvciBzb21lIG90aGVyIHVzZSAqLworCQkJCXJl dHVybiAtRUJVU1k7CisKKwkJCS8qIFdlIG5lZWQgdG8gZXZpY3QgYSBidWZmZXIgaW4gdGhlIHNh bWUgYmF0Y2ggKi8KKwkJCWlmICh2bWEtPmV4ZWNfZW50cnktPmZsYWdzICYgRVhFQ19PQkpFQ1Rf UElOTkVEKQorCQkJCS8qIE92ZXJsYXBwaW5nIGZpeGVkIG9iamVjdHMgaW4gdGhlIHNhbWUgYmF0 Y2ggKi8KKwkJCQlyZXR1cm4gLUVJTlZBTDsKKworCQkJcmV0dXJuIC1FTk9TUEM7CisJCX0KKwor CQlyZXQgPSBpOTE1X3ZtYV91bmJpbmQodm1hKTsKKwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7 CisJfQorCisJcmV0dXJuIDA7Cit9CisKIC8qKgogICogaTkxNV9nZW1fZXZpY3Rfdm0gLSBFdmlj dCBhbGwgaWRsZSB2bWFzIGZyb20gYSB2bQogICogQHZtOiBBZGRyZXNzIHNwYWNlIHRvIGNsZWFu c2UKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwppbmRleCAzZDk0 NzQ0Li42Y2QzYzY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9l eGVjYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZl ci5jCkBAIC01OTYsNiArNTk2LDggQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9yZXNlcnZlX3ZtYShz dHJ1Y3QgaTkxNV92bWEgKnZtYSwKIAkJCWZsYWdzIHw9IFBJTl9HTE9CQUwgfCBQSU5fTUFQUEFC TEU7CiAJCWlmIChlbnRyeS0+ZmxhZ3MgJiBfX0VYRUNfT0JKRUNUX05FRURTX0JJQVMpCiAJCQlm bGFncyB8PSBCQVRDSF9PRkZTRVRfQklBUyB8IFBJTl9PRkZTRVRfQklBUzsKKwkJaWYgKGVudHJ5 LT5mbGFncyAmIEVYRUNfT0JKRUNUX1BJTk5FRCkKKwkJCWZsYWdzIHw9IGVudHJ5LT5vZmZzZXQg fCBQSU5fT0ZGU0VUX0ZJWEVEOwogCX0KIAogCXJldCA9IGk5MTVfZ2VtX29iamVjdF9waW4ob2Jq LCB2bWEtPnZtLCBlbnRyeS0+YWxpZ25tZW50LCBmbGFncyk7CkBAIC02NjUsNiArNjY3LDEwIEBA IGViX3ZtYV9taXNwbGFjZWQoc3RydWN0IGk5MTVfdm1hICp2bWEpCiAJICAgIHZtYS0+bm9kZS5z dGFydCAmIChlbnRyeS0+YWxpZ25tZW50IC0gMSkpCiAJCXJldHVybiB0cnVlOwogCisJaWYgKGVu dHJ5LT5mbGFncyAmIEVYRUNfT0JKRUNUX1BJTk5FRCAmJgorCSAgICB2bWEtPm5vZGUuc3RhcnQg IT0gZW50cnktPm9mZnNldCkKKwkJcmV0dXJuIHRydWU7CisKIAlpZiAoZW50cnktPmZsYWdzICYg X19FWEVDX09CSkVDVF9ORUVEU19CSUFTICYmCiAJICAgIHZtYS0+bm9kZS5zdGFydCA8IEJBVENI X09GRlNFVF9CSUFTKQogCQlyZXR1cm4gdHJ1ZTsKQEAgLTY3Myw3ICs2NzksOCBAQCBlYl92bWFf bWlzcGxhY2VkKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCWlmIChlbnRyeS0+ZmxhZ3MgJiBfX0VY RUNfT0JKRUNUX05FRURTX01BUCAmJiAhb2JqLT5tYXBfYW5kX2ZlbmNlYWJsZSkKIAkJcmV0dXJu ICFvbmx5X21hcHBhYmxlX2Zvcl9yZWxvYyhlbnRyeS0+ZmxhZ3MpOwogCi0JaWYgKCEoZW50cnkt PmZsYWdzICYgRVhFQ19PQkpFQ1RfU1VQUE9SVFNfNDhCQkFERFJFU1MpICYmCisJaWYgKCEoZW50 cnktPmZsYWdzICYKKwkgICAgKEVYRUNfT0JKRUNUX1NVUFBPUlRTXzQ4QkJBRERSRVNTIHwgRVhF Q19PQkpFQ1RfUElOTkVEKSkgJiYKIAkgICAgdm1hLT5ub2RlLnN0YXJ0ID49ICgxVUxMIDw8IDMy KSkKIAkJcmV0dXJuIHRydWU7CiAKQEAgLTY5MCw2ICs2OTcsNyBAQCBpOTE1X2dlbV9leGVjYnVm ZmVyX3Jlc2VydmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKIAlzdHJ1Y3QgaTkxNV92 bWEgKnZtYTsKIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bTsKIAlzdHJ1Y3QgbGlzdF9o ZWFkIG9yZGVyZWRfdm1hczsKKwlzdHJ1Y3QgbGlzdF9oZWFkIHBpbm5lZF92bWFzOwogCWJvb2wg aGFzX2ZlbmNlZF9ncHVfYWNjZXNzID0gSU5URUxfSU5GTyhyaW5nLT5kZXYpLT5nZW4gPCA0Owog CWludCByZXRyeTsKIApAQCAtNjk4LDYgKzcwNiw3IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXJfcmVz ZXJ2ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCXZtID0gbGlzdF9maXJzdF9lbnRy eSh2bWFzLCBzdHJ1Y3QgaTkxNV92bWEsIGV4ZWNfbGlzdCktPnZtOwogCiAJSU5JVF9MSVNUX0hF QUQoJm9yZGVyZWRfdm1hcyk7CisJSU5JVF9MSVNUX0hFQUQoJnBpbm5lZF92bWFzKTsKIAl3aGls ZSAoIWxpc3RfZW1wdHkodm1hcykpIHsKIAkJc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVj dDIgKmVudHJ5OwogCQlib29sIG5lZWRfZmVuY2UsIG5lZWRfbWFwcGFibGU7CkBAIC03MTYsNyAr NzI1LDkgQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9yZXNlcnZlKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcsCiAJCQlvYmotPnRpbGluZ19tb2RlICE9IEk5MTVfVElMSU5HX05PTkU7CiAJCW5l ZWRfbWFwcGFibGUgPSBuZWVkX2ZlbmNlIHx8IG5lZWRfcmVsb2NfbWFwcGFibGUodm1hKTsKIAot CQlpZiAobmVlZF9tYXBwYWJsZSkgeworCQlpZiAoZW50cnktPmZsYWdzICYgRVhFQ19PQkpFQ1Rf UElOTkVEKQorCQkJbGlzdF9tb3ZlX3RhaWwoJnZtYS0+ZXhlY19saXN0LCAmcGlubmVkX3ZtYXMp OworCQllbHNlIGlmIChuZWVkX21hcHBhYmxlKSB7CiAJCQllbnRyeS0+ZmxhZ3MgfD0gX19FWEVD X09CSkVDVF9ORUVEU19NQVA7CiAJCQlsaXN0X21vdmUoJnZtYS0+ZXhlY19saXN0LCAmb3JkZXJl ZF92bWFzKTsKIAkJfSBlbHNlCkBAIC03MjYsNiArNzM3LDcgQEAgaTkxNV9nZW1fZXhlY2J1ZmZl cl9yZXNlcnZlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJCW9iai0+YmFzZS5wZW5k aW5nX3dyaXRlX2RvbWFpbiA9IDA7CiAJfQogCWxpc3Rfc3BsaWNlKCZvcmRlcmVkX3ZtYXMsIHZt YXMpOworCWxpc3Rfc3BsaWNlKCZwaW5uZWRfdm1hcywgdm1hcyk7CiAKIAkvKiBBdHRlbXB0IHRv IHBpbiBhbGwgb2YgdGhlIGJ1ZmZlcnMgaW50byB0aGUgR1RULgogCSAqIFRoaXMgaXMgZG9uZSBp biAzIHBoYXNlczoKQEAgLTE0MDQsNyArMTQxNiw4IEBAIGViX2dldF9iYXRjaChzdHJ1Y3QgZWJf dm1hcyAqZWIpCiAJICogTm90ZSB0aGF0IGFjdHVhbCBoYW5ncyBoYXZlIG9ubHkgYmVlbiBvYnNl cnZlZCBvbiBnZW43LCBidXQgZm9yCiAJICogcGFyYW5vaWEgZG8gaXQgZXZlcnl3aGVyZS4KIAkg Ki8KLQl2bWEtPmV4ZWNfZW50cnktPmZsYWdzIHw9IF9fRVhFQ19PQkpFQ1RfTkVFRFNfQklBUzsK KwlpZiAoKHZtYS0+ZXhlY19lbnRyeS0+ZmxhZ3MgJiBFWEVDX09CSkVDVF9QSU5ORUQpID09IDAp CisJCXZtYS0+ZXhlY19lbnRyeS0+ZmxhZ3MgfD0gX19FWEVDX09CSkVDVF9ORUVEU19CSUFTOwog CiAJcmV0dXJuIHZtYS0+b2JqOwogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1 X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCmluZGV4IDU1YmE1MjcuLjAzYWQ2 YTUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAorKysgYi9pbmNsdWRl L3VhcGkvZHJtL2k5MTVfZHJtLmgKQEAgLTM1NSw2ICszNTUsNyBAQCB0eXBlZGVmIHN0cnVjdCBk cm1faTkxNV9pcnFfd2FpdCB7CiAjZGVmaW5lIEk5MTVfUEFSQU1fU1VCU0xJQ0VfVE9UQUwJIDMz CiAjZGVmaW5lIEk5MTVfUEFSQU1fRVVfVE9UQUwJCSAzNAogI2RlZmluZSBJOTE1X1BBUkFNX0hB U19HUFVfUkVTRVQJIDM1CisjZGVmaW5lIEk5MTVfUEFSQU1fSEFTX0VYRUNfU09GVFBJTgkgMzYK IAogdHlwZWRlZiBzdHJ1Y3QgZHJtX2k5MTVfZ2V0cGFyYW0gewogCWludCBwYXJhbTsKQEAgLTY3 Nyw4ICs2NzgsMTIgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgewogCV9fdTY0 IGFsaWdubWVudDsKIAogCS8qKgotCSAqIFJldHVybmVkIHZhbHVlIG9mIHRoZSB1cGRhdGVkIG9m ZnNldCBvZiB0aGUgb2JqZWN0LCBmb3IgZnV0dXJlCi0JICogcHJlc3VtZWRfb2Zmc2V0IHdyaXRl cy4KKwkgKiBXaGVuIHRoZSBFWEVDX09CSkVDVF9QSU5ORUQgZmxhZyBpcyBzcGVjaWZpZWQgdGhp cyBpcyBwb3B1bGF0ZWQgYnkKKwkgKiB0aGUgdXNlciB3aXRoIHRoZSBHVFQgb2Zmc2V0IGF0IHdo aWNoIHRoaXMgb2JqZWN0IHdpbGwgYmUgcGlubmVkLgorCSAqIFdoZW4gdGhlIEk5MTVfRVhFQ19O T19SRUxPQyBmbGFnIGlzIHNwZWNpZmllZCB0aGlzIG11c3QgY29udGFpbiB0aGUKKwkgKiBwcmVz dW1lZF9vZmZzZXQgb2YgdGhlIG9iamVjdC4KKwkgKiBEdXJpbmcgZXhlY2J1ZmZlcjIgdGhlIGtl cm5lbCBwb3B1bGF0ZXMgaXQgd2l0aCB0aGUgdmFsdWUgb2YgdGhlCisJICogY3VycmVudCBHVFQg b2Zmc2V0IG9mIHRoZSBvYmplY3QsIGZvciBmdXR1cmUgcHJlc3VtZWRfb2Zmc2V0IHdyaXRlcy4K IAkgKi8KIAlfX3U2NCBvZmZzZXQ7CiAKQEAgLTY4Niw3ICs2OTEsOCBAQCBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX2V4ZWNfb2JqZWN0MiB7CiAjZGVmaW5lIEVYRUNfT0JKRUNUX05FRURTX0dUVAkoMTw8 MSkKICNkZWZpbmUgRVhFQ19PQkpFQ1RfV1JJVEUJKDE8PDIpCiAjZGVmaW5lIEVYRUNfT0JKRUNU X1NVUFBPUlRTXzQ4QkJBRERSRVNTICgxPDwzKQotI2RlZmluZSBfX0VYRUNfT0JKRUNUX1VOS05P V05fRkxBR1MgLShFWEVDX09CSkVDVF9TVVBQT1JUU180OEJCQUREUkVTUzw8MSkKKyNkZWZpbmUg RVhFQ19PQkpFQ1RfUElOTkVECSgxPDw0KQorI2RlZmluZSBfX0VYRUNfT0JKRUNUX1VOS05PV05f RkxBR1MgLShFWEVDX09CSkVDVF9QSU5ORUQ8PDEpCiAJX191NjQgZmxhZ3M7CiAKIAlfX3U2NCBy c3ZkMTsKLS0gCjEuNy45LjUKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==