From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Daniel Subject: [PATCH v4] drm/i915: Add soft-pinning API for execbuffer Date: Tue, 30 Jun 2015 15:13:13 +0100 Message-ID: <1435673593-28127-1-git-send-email-thomas.daniel@intel.com> References: <1425635047-25214-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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id D54496E2E9 for ; Tue, 30 Jun 2015 07:14:09 -0700 (PDT) In-Reply-To: <1425635047-25214-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 Cc: Akash Goel , Michal Winiarsky , 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 CgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CkNjOiBBa2FzaCBH b2VsIDxha2FzaC5nb2VsQGludGVsLmNvbT4KQ2M6IFZpbmF5IEJlbGdhdW1rYXIgPHZpbmF5LmJl bGdhdW1rYXJAaW50ZWwuY29tPgpDYzogTWljaGFsIFdpbmlhcnNreSA8bWljaGFsLndpbmlhcnNr eUBpbnRlbC5jb20+CkNjOiBab3UgTmFuaGFpIDxuYW5oYWkuem91QGludGVsLmNvbT4KU2lnbmVk LW9mZi1ieTogVGhvbWFzIERhbmllbCA8dGhvbWFzLmRhbmllbEBpbnRlbC5jb20+Ci0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgIHwgICAgNCArKysKIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICB8ICAgNTEgKysrKysrKysrKysr KysrKysrKystLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYyAg ICAgIHwgICAzOCArKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2V4ZWNidWZmZXIuYyB8ICAgMTYgKysrKysrKy0tCiBpbmNsdWRlL3VhcGkvZHJtL2k5 MTVfZHJtLmggICAgICAgICAgICAgICAgfCAgICA5ICsrKy0tCiA1IGZpbGVzIGNoYW5nZWQsIDk5 IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmlu ZGV4IGQ5MGE3ODIuLmU5NmMxMDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjc0Nyw3 ICsyNzQ3LDkgQEAgdm9pZCBpOTE1X2dlbV92bWFfZGVzdHJveShzdHJ1Y3QgaTkxNV92bWEgKnZt YSk7CiAjZGVmaW5lIFBJTl9VU0VSCSgxPDw0KQogI2RlZmluZSBQSU5fVVBEQVRFCSgxPDw1KQog I2RlZmluZSBQSU5fRlVMTF9SQU5HRQkoMTw8NikKKyNkZWZpbmUgUElOX09GRlNFVF9GSVhFRAko MTw8NykKICNkZWZpbmUgUElOX09GRlNFVF9NQVNLICh+NDA5NSkKKwogaW50IF9fbXVzdF9jaGVj awogaTkxNV9nZW1fb2JqZWN0X3BpbihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAog CQkgICAgc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCkBAIC0zMDg1LDYgKzMwODcsOCBA QCBpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX2V2aWN0X3NvbWV0aGluZyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCQkJCQkgIHVuc2lnbmVkIGxvbmcgc3RhcnQsCiAJCQkJCSAgdW5zaWduZWQg bG9uZyBlbmQsCiAJCQkJCSAgdW5zaWduZWQgZmxhZ3MpOworaW50IF9fbXVzdF9jaGVjaworaTkx NV9nZW1fZXZpY3RfZm9yX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnRhcmdldCk7CiBpbnQgaTkxNV9n ZW1fZXZpY3Rfdm0oc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sIGJvb2wgZG9faWRsZSk7 CiBpbnQgaTkxNV9nZW1fZXZpY3RfZXZlcnl0aGluZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKaW5kZXggZjE3MGRhNi4uYTdlNWZmMiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbS5jCkBAIC0zODA2LDIyICszODA2LDQxIEBAIGk5MTVfZ2VtX29iamVjdF9i aW5kX3RvX3ZtKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJaWYgKElTX0VSUih2 bWEpKQogCQlnb3RvIGVycl91bnBpbjsKIAorCWlmIChmbGFncyAmIFBJTl9PRkZTRVRfRklYRUQp IHsKKwkJdWludDY0X3Qgb2Zmc2V0ID0gZmxhZ3MgJiBQSU5fT0ZGU0VUX01BU0s7CisJCWlmIChv ZmZzZXQgJiAoYWxpZ25tZW50IC0gMSkpIHsKKwkJCXJldCA9IC1FSU5WQUw7CisJCQlnb3RvIGVy cl9mcmVlX3ZtYTsKKwkJfQorCQl2bWEtPm5vZGUuc3RhcnQgPSBvZmZzZXQ7CisJCXZtYS0+bm9k ZS5zaXplID0gc2l6ZTsKKwkJdm1hLT5ub2RlLmNvbG9yID0gb2JqLT5jYWNoZV9sZXZlbDsKKwkJ cmV0ID0gZHJtX21tX3Jlc2VydmVfbm9kZSgmdm0tPm1tLCAmdm1hLT5ub2RlKTsKKwkJaWYgKHJl dCkgeworCQkJcmV0ID0gaTkxNV9nZW1fZXZpY3RfZm9yX3ZtYSh2bWEpOworCQkJaWYgKHJldCA9 PSAwKQorCQkJCXJldCA9IGRybV9tbV9yZXNlcnZlX25vZGUoJnZtLT5tbSwgJnZtYS0+bm9kZSk7 CisJCX0KKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyX2ZyZWVfdm1hOworCX0gZWxzZSB7CiBzZWFy Y2hfZnJlZToKLQlyZXQgPSBkcm1fbW1faW5zZXJ0X25vZGVfaW5fcmFuZ2VfZ2VuZXJpYygmdm0t Pm1tLCAmdm1hLT5ub2RlLAotCQkJCQkJICBzaXplLCBhbGlnbm1lbnQsCi0JCQkJCQkgIG9iai0+ Y2FjaGVfbGV2ZWwsCi0JCQkJCQkgIHN0YXJ0LCBlbmQsCi0JCQkJCQkgIHNlYXJjaF9mbGFnLAot CQkJCQkJICBhbGxvY19mbGFnKTsKLQlpZiAocmV0KSB7Ci0JCXJldCA9IGk5MTVfZ2VtX2V2aWN0 X3NvbWV0aGluZyhkZXYsIHZtLCBzaXplLCBhbGlnbm1lbnQsCi0JCQkJCSAgICAgICBvYmotPmNh Y2hlX2xldmVsLAotCQkJCQkgICAgICAgc3RhcnQsIGVuZCwKLQkJCQkJICAgICAgIGZsYWdzKTsK LQkJaWYgKHJldCA9PSAwKQotCQkJZ290byBzZWFyY2hfZnJlZTsKKwkJcmV0ID0gZHJtX21tX2lu c2VydF9ub2RlX2luX3JhbmdlX2dlbmVyaWMoJnZtLT5tbSwgJnZtYS0+bm9kZSwKKwkJCQkJCSAg CSAgc2l6ZSwgYWxpZ25tZW50LAorCQkJCQkJICAJICBvYmotPmNhY2hlX2xldmVsLAorCQkJCQkJ ICAJICBzdGFydCwgZW5kLAorCQkJCQkJICAJICBzZWFyY2hfZmxhZywKKwkJCQkJCSAgCSAgYWxs b2NfZmxhZyk7CisJCWlmIChyZXQpIHsKKwkJCXJldCA9IGk5MTVfZ2VtX2V2aWN0X3NvbWV0aGlu ZyhkZXYsIHZtLCBzaXplLCBhbGlnbm1lbnQsCisJCQkJCSAgICAgICAJICAgICAgIG9iai0+Y2Fj aGVfbGV2ZWwsCisJCQkJCSAgICAgICAJICAgICAgIHN0YXJ0LCBlbmQsCisJCQkJCSAgICAgICAJ ICAgICAgIGZsYWdzKTsKKwkJCWlmIChyZXQgPT0gMCkKKwkJCQlnb3RvIHNlYXJjaF9mcmVlOwog Ci0JCWdvdG8gZXJyX2ZyZWVfdm1hOworCQkJZ290byBlcnJfZnJlZV92bWE7CisJCX0KIAl9CiAJ aWYgKFdBUk5fT04oIWk5MTVfZ2VtX3ZhbGlkX2d0dF9zcGFjZSh2bWEsIG9iai0+Y2FjaGVfbGV2 ZWwpKSkgewogCQlyZXQgPSAtRUlOVkFMOwpAQCAtNDM1Nyw2ICs0Mzc2LDEwIEBAIGk5MTVfdm1h X21pc3BsYWNlZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgdWludDMyX3QgYWxpZ25tZW50LCB1aW50 NjRfdCBmbGFncykKIAkgICAgdm1hLT5ub2RlLnN0YXJ0IDwgKGZsYWdzICYgUElOX09GRlNFVF9N QVNLKSkKIAkJcmV0dXJuIHRydWU7CiAKKwlpZiAoZmxhZ3MgJiBQSU5fT0ZGU0VUX0ZJWEVEICYm CisJICAgIHZtYS0+bm9kZS5zdGFydCAhPSAoZmxhZ3MgJiBQSU5fT0ZGU0VUX01BU0spKQorCQly ZXR1cm4gdHJ1ZTsKKwogCXJldHVybiBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2V2aWN0LmMKaW5kZXggZDA5ZTM1ZS4uNjA5OGUyZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9ldmljdC5jCkBAIC0xOTksNiArMTk5LDQ0IEBAIGZvdW5kOgogCXJldHVybiByZXQ7 CiB9CiAKK2ludAoraTkxNV9nZW1fZXZpY3RfZm9yX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnRhcmdl dCkKK3sKKwlzdHJ1Y3QgZHJtX21tX25vZGUgKm5vZGUsICpuZXh0OworCisJbGlzdF9mb3JfZWFj aF9lbnRyeV9zYWZlKG5vZGUsIG5leHQsCisJCQkmdGFyZ2V0LT52bS0+bW0uaGVhZF9ub2RlLm5v ZGVfbGlzdCwKKwkJCW5vZGVfbGlzdCkgeworCQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKKwkJaW50 IHJldDsKKworCQlpZiAobm9kZS0+c3RhcnQgKyBub2RlLT5zaXplIDw9IHRhcmdldC0+bm9kZS5z dGFydCkKKwkJCWNvbnRpbnVlOworCQlpZiAobm9kZS0+c3RhcnQgPj0gdGFyZ2V0LT5ub2RlLnN0 YXJ0ICsgdGFyZ2V0LT5ub2RlLnNpemUpCisJCQlicmVhazsKKworCQl2bWEgPSBjb250YWluZXJf b2Yobm9kZSwgdHlwZW9mKCp2bWEpLCBub2RlKTsKKworCQlpZiAodm1hLT5waW5fY291bnQpIHsK KwkJCS8qIFdlIG1heSBuZWVkIHRvIGV2aWN0IGEgYnVmZmVyIGluIHRoZSBzYW1lIGJhdGNoICov CisJCQlpZiAoIXZtYS0+ZXhlY19lbnRyeSkKKwkJCQlyZXR1cm4gLUVCVVNZOworCisJCQlpZiAo dm1hLT5leGVjX2VudHJ5LT5mbGFncyAmIEVYRUNfT0JKRUNUX1BJTk5FRCkKKwkJCQkvKiBPdmVy bGFwcGluZyBmaXhlZCBvYmplY3RzIGluIHRoZSBzYW1lIGJhdGNoICovCisJCQkJcmV0dXJuIC1F SU5WQUw7CisKKwkJCXJldHVybiAtRU5PU1BDOworCQl9CisKKwkJcmV0ID0gaTkxNV92bWFfdW5i aW5kKHZtYSk7CisJCWlmIChyZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiAwOwor fQorCiAvKioKICAqIGk5MTVfZ2VtX2V2aWN0X3ZtIC0gRXZpY3QgYWxsIGlkbGUgdm1hcyBmcm9t IGEgdm0KICAqIEB2bTogQWRkcmVzcyBzcGFjZSB0byBjbGVhbnNlCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKaW5kZXggM2Q5NDc0NC4uNGU2OTU1ZSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwpAQCAtNTk2LDYgKzU5Niw4 IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXJfcmVzZXJ2ZV92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEs CiAJCQlmbGFncyB8PSBQSU5fR0xPQkFMIHwgUElOX01BUFBBQkxFOwogCQlpZiAoZW50cnktPmZs YWdzICYgX19FWEVDX09CSkVDVF9ORUVEU19CSUFTKQogCQkJZmxhZ3MgfD0gQkFUQ0hfT0ZGU0VU X0JJQVMgfCBQSU5fT0ZGU0VUX0JJQVM7CisJCWlmIChlbnRyeS0+ZmxhZ3MgJiBFWEVDX09CSkVD VF9QSU5ORUQpCisJCQlmbGFncyB8PSBlbnRyeS0+b2Zmc2V0IHwgUElOX09GRlNFVF9GSVhFRDsK IAl9CiAKIAlyZXQgPSBpOTE1X2dlbV9vYmplY3RfcGluKG9iaiwgdm1hLT52bSwgZW50cnktPmFs aWdubWVudCwgZmxhZ3MpOwpAQCAtNjY1LDYgKzY2NywxMCBAQCBlYl92bWFfbWlzcGxhY2VkKHN0 cnVjdCBpOTE1X3ZtYSAqdm1hKQogCSAgICB2bWEtPm5vZGUuc3RhcnQgJiAoZW50cnktPmFsaWdu bWVudCAtIDEpKQogCQlyZXR1cm4gdHJ1ZTsKIAorCWlmIChlbnRyeS0+ZmxhZ3MgJiBFWEVDX09C SkVDVF9QSU5ORUQgJiYKKwkgICAgdm1hLT5ub2RlLnN0YXJ0ICE9IGVudHJ5LT5vZmZzZXQpCisJ CXJldHVybiB0cnVlOworCiAJaWYgKGVudHJ5LT5mbGFncyAmIF9fRVhFQ19PQkpFQ1RfTkVFRFNf QklBUyAmJgogCSAgICB2bWEtPm5vZGUuc3RhcnQgPCBCQVRDSF9PRkZTRVRfQklBUykKIAkJcmV0 dXJuIHRydWU7CkBAIC02OTAsNiArNjk2LDcgQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9yZXNlcnZl KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJc3RydWN0IGk5MTVfdm1hICp2bWE7CiAJ c3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm07CiAJc3RydWN0IGxpc3RfaGVhZCBvcmRlcmVk X3ZtYXM7CisJc3RydWN0IGxpc3RfaGVhZCBwaW5uZWRfdm1hczsKIAlib29sIGhhc19mZW5jZWRf Z3B1X2FjY2VzcyA9IElOVEVMX0lORk8ocmluZy0+ZGV2KS0+Z2VuIDwgNDsKIAlpbnQgcmV0cnk7 CiAKQEAgLTY5OCw2ICs3MDUsNyBAQCBpOTE1X2dlbV9leGVjYnVmZmVyX3Jlc2VydmUoc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZywKIAl2bSA9IGxpc3RfZmlyc3RfZW50cnkodm1hcywgc3Ry dWN0IGk5MTVfdm1hLCBleGVjX2xpc3QpLT52bTsKIAogCUlOSVRfTElTVF9IRUFEKCZvcmRlcmVk X3ZtYXMpOworCUlOSVRfTElTVF9IRUFEKCZwaW5uZWRfdm1hcyk7CiAJd2hpbGUgKCFsaXN0X2Vt cHR5KHZtYXMpKSB7CiAJCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyICplbnRyeTsK IAkJYm9vbCBuZWVkX2ZlbmNlLCBuZWVkX21hcHBhYmxlOwpAQCAtNzE2LDcgKzcyNCw5IEBAIGk5 MTVfZ2VtX2V4ZWNidWZmZXJfcmVzZXJ2ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAog CQkJb2JqLT50aWxpbmdfbW9kZSAhPSBJOTE1X1RJTElOR19OT05FOwogCQluZWVkX21hcHBhYmxl ID0gbmVlZF9mZW5jZSB8fCBuZWVkX3JlbG9jX21hcHBhYmxlKHZtYSk7CiAKLQkJaWYgKG5lZWRf bWFwcGFibGUpIHsKKwkJaWYgKGVudHJ5LT5mbGFncyAmIEVYRUNfT0JKRUNUX1BJTk5FRCkKKwkJ CWxpc3RfbW92ZV90YWlsKCZ2bWEtPmV4ZWNfbGlzdCwgJnBpbm5lZF92bWFzKTsKKwkJZWxzZSBp ZiAobmVlZF9tYXBwYWJsZSkgewogCQkJZW50cnktPmZsYWdzIHw9IF9fRVhFQ19PQkpFQ1RfTkVF RFNfTUFQOwogCQkJbGlzdF9tb3ZlKCZ2bWEtPmV4ZWNfbGlzdCwgJm9yZGVyZWRfdm1hcyk7CiAJ CX0gZWxzZQpAQCAtNzI2LDYgKzczNiw3IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXJfcmVzZXJ2ZShz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQlvYmotPmJhc2UucGVuZGluZ193cml0ZV9k b21haW4gPSAwOwogCX0KIAlsaXN0X3NwbGljZSgmb3JkZXJlZF92bWFzLCB2bWFzKTsKKwlsaXN0 X3NwbGljZSgmcGlubmVkX3ZtYXMsIHZtYXMpOwogCiAJLyogQXR0ZW1wdCB0byBwaW4gYWxsIG9m IHRoZSBidWZmZXJzIGludG8gdGhlIEdUVC4KIAkgKiBUaGlzIGlzIGRvbmUgaW4gMyBwaGFzZXM6 CkBAIC0xNDA0LDcgKzE0MTUsOCBAQCBlYl9nZXRfYmF0Y2goc3RydWN0IGViX3ZtYXMgKmViKQog CSAqIE5vdGUgdGhhdCBhY3R1YWwgaGFuZ3MgaGF2ZSBvbmx5IGJlZW4gb2JzZXJ2ZWQgb24gZ2Vu NywgYnV0IGZvcgogCSAqIHBhcmFub2lhIGRvIGl0IGV2ZXJ5d2hlcmUuCiAJICovCi0Jdm1hLT5l eGVjX2VudHJ5LT5mbGFncyB8PSBfX0VYRUNfT0JKRUNUX05FRURTX0JJQVM7CisJaWYgKCh2bWEt PmV4ZWNfZW50cnktPmZsYWdzICYgRVhFQ19PQkpFQ1RfUElOTkVEKSA9PSAwKQorCQl2bWEtPmV4 ZWNfZW50cnktPmZsYWdzIHw9IF9fRVhFQ19PQkpFQ1RfTkVFRFNfQklBUzsKIAogCXJldHVybiB2 bWEtPm9iajsKIH0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaCBiL2lu Y2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaAppbmRleCA1NWJhNTI3Li4xOGY4Zjk5IDEwMDY0NAot LS0gYS9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKKysrIGIvaW5jbHVkZS91YXBpL2RybS9p OTE1X2RybS5oCkBAIC02NzcsOCArNjc3LDEwIEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19v YmplY3QyIHsKIAlfX3U2NCBhbGlnbm1lbnQ7CiAKIAkvKioKLQkgKiBSZXR1cm5lZCB2YWx1ZSBv ZiB0aGUgdXBkYXRlZCBvZmZzZXQgb2YgdGhlIG9iamVjdCwgZm9yIGZ1dHVyZQotCSAqIHByZXN1 bWVkX29mZnNldCB3cml0ZXMuCisJICogV2hlbiB0aGUgRVhFQ19PQkpFQ1RfUElOTkVEIGZsYWcg aXMgc3BlY2lmaWVkIHRoaXMgaXMgcG9wdWxhdGVkIGJ5CisJICogdGhlIHVzZXIgd2l0aCB0aGUg R1RUIG9mZnNldCBhdCB3aGljaCB0aGlzIG9iamVjdCB3aWxsIGJlIHBpbm5lZC4KKwkgKiBPdGhl cndpc2UgdGhlIGtlcm5lbCBwb3B1bGF0ZXMgaXQgd2l0aCB0aGUgdmFsdWUgb2YgdGhlIHVwZGF0 ZWQKKwkgKiBvZmZzZXQgb2YgdGhlIG9iamVjdCwgZm9yIGZ1dHVyZSBwcmVzdW1lZF9vZmZzZXQg d3JpdGVzLgogCSAqLwogCV9fdTY0IG9mZnNldDsKIApAQCAtNjg2LDcgKzY4OCw4IEBAIHN0cnVj dCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyIHsKICNkZWZpbmUgRVhFQ19PQkpFQ1RfTkVFRFNf R1RUCSgxPDwxKQogI2RlZmluZSBFWEVDX09CSkVDVF9XUklURQkoMTw8MikKICNkZWZpbmUgRVhF Q19PQkpFQ1RfU1VQUE9SVFNfNDhCQkFERFJFU1MgKDE8PDMpCi0jZGVmaW5lIF9fRVhFQ19PQkpF Q1RfVU5LTk9XTl9GTEFHUyAtKEVYRUNfT0JKRUNUX1NVUFBPUlRTXzQ4QkJBRERSRVNTPDwxKQor I2RlZmluZSBFWEVDX09CSkVDVF9QSU5ORUQJKDE8PDQpCisjZGVmaW5lIF9fRVhFQ19PQkpFQ1Rf VU5LTk9XTl9GTEFHUyAtKEVYRUNfT0JKRUNUX1BJTk5FRDw8MSkKIAlfX3U2NCBmbGFnczsKIAog CV9fdTY0IHJzdmQxOwotLSAKMS43LjkuNQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK