From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Daniel Subject: [PATCH v6] drm/i915: Add soft-pinning API for execbuffer Date: Fri, 16 Oct 2015 11:59:00 +0100 Message-ID: <1444993140-20909-1-git-send-email-thomas.daniel@intel.com> References: <1437410504-12467-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id AB3956E02A for ; Fri, 16 Oct 2015 03:59:24 -0700 (PDT) In-Reply-To: <1437410504-12467-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 QkpFQ1RfU1VQUE9SVFNfNDhCX0FERFJFU1MuICBVc2VyIG11c3QgYXNzdW1lIHJlc3BvbnNpYmls aXR5IGZvciBhbnkKYWRkcmVzc2luZyB3b3JrYXJvdW5kcy4gIFVwZGF0ZWQgb2JqZWN0Mi5vZmZz ZXQgZmllbGQgY29tbWVudCBhZ2FpbiB0byBjbGFyaWZ5Ck5PX1JFTE9DIGNhc2UgKENocmlzKS4g IGNoZWNrcGF0Y2ggY2xlYW51cC4KCnY2OiBUcml2aWFsIHJlYmFzZSBvbiBsYXRlc3QgZHJtLWlu dGVsLW5pZ2h0bHkKCkNjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4K Q2M6IEFrYXNoIEdvZWwgPGFrYXNoLmdvZWxAaW50ZWwuY29tPgpDYzogVmluYXkgQmVsZ2F1bWth ciA8dmluYXkuYmVsZ2F1bWthckBpbnRlbC5jb20+CkNjOiBNaWNoYWwgV2luaWFyc2tpIDxtaWNo YWwud2luaWFyc2tpQGludGVsLmNvbT4KQ2M6IFpvdSBOYW5oYWkgPG5hbmhhaS56b3VAaW50ZWwu Y29tPgpDYzogS3Jpc3RpYW4gSMO4Z3NiZXJnIDxob2Vnc2JlcmdAZ21haWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBUaG9tYXMgRGFuaWVsIDx0aG9tYXMuZGFuaWVsQGludGVsLmNvbT4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jICAgICAgICAgICAgfCAgMyArKwogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgIHwgIDIgKwogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgIHwgNjQgKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jICAgICAgfCAzOSAr KysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZm ZXIuYyB8IDE5ICsrKysrKystLQogaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAg ICAgICAgIHwgMTIgKysrKy0tCiA2IGZpbGVzIGNoYW5nZWQsIDExMyBpbnNlcnRpb25zKCspLCAy NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rt YS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwppbmRleCAyMzM2YWY5Li44MjRj NmMzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCisrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZG1hLmMKQEAgLTE3MCw2ICsxNzAsOSBAQCBzdGF0aWMg aW50IGk5MTVfZ2V0cGFyYW0oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAlj YXNlIEk5MTVfUEFSQU1fSEFTX1JFU09VUkNFX1NUUkVBTUVSOgogCQl2YWx1ZSA9IEhBU19SRVNP VVJDRV9TVFJFQU1FUihkZXYpOwogCQlicmVhazsKKwljYXNlIEk5MTVfUEFSQU1fSEFTX0VYRUNf U09GVFBJTjoKKwkJdmFsdWUgPSAxOworCQlicmVhazsKIAlkZWZhdWx0OgogCQlEUk1fREVCVUco IlVua25vd24gcGFyYW1ldGVyICVkXG4iLCBwYXJhbS0+cGFyYW0pOwogCQlyZXR1cm4gLUVJTlZB TDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDEzOTZhZjkuLjczYzNhY2YgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaApAQCAtMjgxNiw2ICsyODE2LDcgQEAgdm9pZCBpOTE1X2dlbV92bWFf ZGVzdHJveShzdHJ1Y3QgaTkxNV92bWEgKnZtYSk7CiAjZGVmaW5lIFBJTl9VUERBVEUJKDE8PDUp CiAjZGVmaW5lIFBJTl9aT05FXzRHCSgxPDw2KQogI2RlZmluZSBQSU5fSElHSAkoMTw8NykKKyNk ZWZpbmUgUElOX09GRlNFVF9GSVhFRAkoMTw8OCkKICNkZWZpbmUgUElOX09GRlNFVF9NQVNLICh+ NDA5NSkKIGludCBfX211c3RfY2hlY2sKIGk5MTVfZ2VtX29iamVjdF9waW4oc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaiwKQEAgLTMxNjMsNiArMzE2NCw3IEBAIGludCBfX211c3RfY2hl Y2sgaTkxNV9nZW1fZXZpY3Rfc29tZXRoaW5nKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJ CSAgdW5zaWduZWQgbG9uZyBzdGFydCwKIAkJCQkJICB1bnNpZ25lZCBsb25nIGVuZCwKIAkJCQkJ ICB1bnNpZ25lZCBmbGFncyk7CitpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX2V2aWN0X2Zvcl92 bWEoc3RydWN0IGk5MTVfdm1hICp0YXJnZXQpOwogaW50IGk5MTVfZ2VtX2V2aWN0X3ZtKHN0cnVj dCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLCBib29sIGRvX2lkbGUpOwogCiAvKiBiZWxvbmdzIGlu IGk5MTVfZ2VtX2d0dC5oICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCAxZTY3NDg0Li5j MzQ1M2JkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTM0NTAsMzAgKzM0NTAsNTAgQEAg aTkxNV9nZW1fb2JqZWN0X2JpbmRfdG9fdm0oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiwKIAlpZiAoSVNfRVJSKHZtYSkpCiAJCWdvdG8gZXJyX3VucGluOwogCi0JaWYgKGZsYWdzICYg UElOX0hJR0gpIHsKLQkJc2VhcmNoX2ZsYWcgPSBEUk1fTU1fU0VBUkNIX0JFTE9XOwotCQlhbGxv Y19mbGFnID0gRFJNX01NX0NSRUFURV9UT1A7CisJaWYgKGZsYWdzICYgUElOX09GRlNFVF9GSVhF RCkgeworCQl1aW50NjRfdCBvZmZzZXQgPSBmbGFncyAmIFBJTl9PRkZTRVRfTUFTSzsKKworCQlp ZiAob2Zmc2V0ICYgKGFsaWdubWVudCAtIDEpKSB7CisJCQlyZXQgPSAtRUlOVkFMOworCQkJZ290 byBlcnJfZnJlZV92bWE7CisJCX0KKwkJdm1hLT5ub2RlLnN0YXJ0ID0gb2Zmc2V0OworCQl2bWEt Pm5vZGUuc2l6ZSA9IHNpemU7CisJCXZtYS0+bm9kZS5jb2xvciA9IG9iai0+Y2FjaGVfbGV2ZWw7 CisJCXJldCA9IGRybV9tbV9yZXNlcnZlX25vZGUoJnZtLT5tbSwgJnZtYS0+bm9kZSk7CisJCWlm IChyZXQpIHsKKwkJCXJldCA9IGk5MTVfZ2VtX2V2aWN0X2Zvcl92bWEodm1hKTsKKwkJCWlmIChy ZXQgPT0gMCkKKwkJCQlyZXQgPSBkcm1fbW1fcmVzZXJ2ZV9ub2RlKCZ2bS0+bW0sICZ2bWEtPm5v ZGUpOworCQl9CisJCWlmIChyZXQpCisJCQlnb3RvIGVycl9mcmVlX3ZtYTsKIAl9IGVsc2Ugewot CQlzZWFyY2hfZmxhZyA9IERSTV9NTV9TRUFSQ0hfREVGQVVMVDsKLQkJYWxsb2NfZmxhZyA9IERS TV9NTV9DUkVBVEVfREVGQVVMVDsKLQl9CisJCWlmIChmbGFncyAmIFBJTl9ISUdIKSB7CisJCQlz ZWFyY2hfZmxhZyA9IERSTV9NTV9TRUFSQ0hfQkVMT1c7CisJCQlhbGxvY19mbGFnID0gRFJNX01N X0NSRUFURV9UT1A7CisJCX0gZWxzZSB7CisJCQlzZWFyY2hfZmxhZyA9IERSTV9NTV9TRUFSQ0hf REVGQVVMVDsKKwkJCWFsbG9jX2ZsYWcgPSBEUk1fTU1fQ1JFQVRFX0RFRkFVTFQ7CisJCX0KIAog c2VhcmNoX2ZyZWU6Ci0JcmV0ID0gZHJtX21tX2luc2VydF9ub2RlX2luX3JhbmdlX2dlbmVyaWMo JnZtLT5tbSwgJnZtYS0+bm9kZSwKLQkJCQkJCSAgc2l6ZSwgYWxpZ25tZW50LAotCQkJCQkJICBv YmotPmNhY2hlX2xldmVsLAotCQkJCQkJICBzdGFydCwgZW5kLAotCQkJCQkJICBzZWFyY2hfZmxh ZywKLQkJCQkJCSAgYWxsb2NfZmxhZyk7Ci0JaWYgKHJldCkgewotCQlyZXQgPSBpOTE1X2dlbV9l dmljdF9zb21ldGhpbmcoZGV2LCB2bSwgc2l6ZSwgYWxpZ25tZW50LAotCQkJCQkgICAgICAgb2Jq LT5jYWNoZV9sZXZlbCwKLQkJCQkJICAgICAgIHN0YXJ0LCBlbmQsCi0JCQkJCSAgICAgICBmbGFn cyk7Ci0JCWlmIChyZXQgPT0gMCkKLQkJCWdvdG8gc2VhcmNoX2ZyZWU7CisJCXJldCA9IGRybV9t bV9pbnNlcnRfbm9kZV9pbl9yYW5nZV9nZW5lcmljKCZ2bS0+bW0sICZ2bWEtPm5vZGUsCisJCQkJ CQkJICBzaXplLCBhbGlnbm1lbnQsCisJCQkJCQkJICBvYmotPmNhY2hlX2xldmVsLAorCQkJCQkJ CSAgc3RhcnQsIGVuZCwKKwkJCQkJCQkgIHNlYXJjaF9mbGFnLAorCQkJCQkJCSAgYWxsb2NfZmxh Zyk7CisJCWlmIChyZXQpIHsKKwkJCXJldCA9IGk5MTVfZ2VtX2V2aWN0X3NvbWV0aGluZyhkZXYs IHZtLCBzaXplLCBhbGlnbm1lbnQsCisJCQkJCQkgICAgICAgb2JqLT5jYWNoZV9sZXZlbCwKKwkJ CQkJCSAgICAgICBzdGFydCwgZW5kLAorCQkJCQkJICAgICAgIGZsYWdzKTsKKwkJCWlmIChyZXQg PT0gMCkKKwkJCQlnb3RvIHNlYXJjaF9mcmVlOwogCi0JCWdvdG8gZXJyX2ZyZWVfdm1hOworCQkJ Z290byBlcnJfZnJlZV92bWE7CisJCX0KIAl9CiAJaWYgKFdBUk5fT04oIWk5MTVfZ2VtX3ZhbGlk X2d0dF9zcGFjZSh2bWEsIG9iai0+Y2FjaGVfbGV2ZWwpKSkgewogCQlyZXQgPSAtRUlOVkFMOwpA QCAtNDAwNyw2ICs0MDI3LDEwIEBAIGk5MTVfdm1hX21pc3BsYWNlZChzdHJ1Y3QgaTkxNV92bWEg KnZtYSwgdWludDMyX3QgYWxpZ25tZW50LCB1aW50NjRfdCBmbGFncykKIAkgICAgdm1hLT5ub2Rl LnN0YXJ0IDwgKGZsYWdzICYgUElOX09GRlNFVF9NQVNLKSkKIAkJcmV0dXJuIHRydWU7CiAKKwlp ZiAoZmxhZ3MgJiBQSU5fT0ZGU0VUX0ZJWEVEICYmCisJICAgIHZtYS0+bm9kZS5zdGFydCAhPSAo ZmxhZ3MgJiBQSU5fT0ZGU0VUX01BU0spKQorCQlyZXR1cm4gdHJ1ZTsKKwogCXJldHVybiBmYWxz ZTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3Qu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMKaW5kZXggZDcxYTEzMy4u MDdjNmU0ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3Qu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5jCkBAIC0xOTksNiAr MTk5LDQ1IEBAIGZvdW5kOgogCXJldHVybiByZXQ7CiB9CiAKK2ludAoraTkxNV9nZW1fZXZpY3Rf Zm9yX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnRhcmdldCkKK3sKKwlzdHJ1Y3QgZHJtX21tX25vZGUg Km5vZGUsICpuZXh0OworCisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKG5vZGUsIG5leHQsCisJ CQkmdGFyZ2V0LT52bS0+bW0uaGVhZF9ub2RlLm5vZGVfbGlzdCwKKwkJCW5vZGVfbGlzdCkgewor CQlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKKwkJaW50IHJldDsKKworCQlpZiAobm9kZS0+c3RhcnQg KyBub2RlLT5zaXplIDw9IHRhcmdldC0+bm9kZS5zdGFydCkKKwkJCWNvbnRpbnVlOworCQlpZiAo bm9kZS0+c3RhcnQgPj0gdGFyZ2V0LT5ub2RlLnN0YXJ0ICsgdGFyZ2V0LT5ub2RlLnNpemUpCisJ CQlicmVhazsKKworCQl2bWEgPSBjb250YWluZXJfb2Yobm9kZSwgdHlwZW9mKCp2bWEpLCBub2Rl KTsKKworCQlpZiAodm1hLT5waW5fY291bnQpIHsKKwkJCWlmICghdm1hLT5leGVjX2VudHJ5IHx8 ICh2bWEtPnBpbl9jb3VudCA+IDEpKQorCQkJCS8qIE9iamVjdCBpcyBwaW5uZWQgZm9yIHNvbWUg b3RoZXIgdXNlICovCisJCQkJcmV0dXJuIC1FQlVTWTsKKworCQkJLyogV2UgbmVlZCB0byBldmlj dCBhIGJ1ZmZlciBpbiB0aGUgc2FtZSBiYXRjaCAqLworCQkJaWYgKHZtYS0+ZXhlY19lbnRyeS0+ ZmxhZ3MgJiBFWEVDX09CSkVDVF9QSU5ORUQpCisJCQkJLyogT3ZlcmxhcHBpbmcgZml4ZWQgb2Jq ZWN0cyBpbiB0aGUgc2FtZSBiYXRjaCAqLworCQkJCXJldHVybiAtRUlOVkFMOworCisJCQlyZXR1 cm4gLUVOT1NQQzsKKwkJfQorCisJCXJldCA9IGk5MTVfdm1hX3VuYmluZCh2bWEpOworCQlpZiAo cmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gMDsKK30KKwogLyoqCiAgKiBpOTE1 X2dlbV9ldmljdF92bSAtIEV2aWN0IGFsbCBpZGxlIHZtYXMgZnJvbSBhIHZtCiAgKiBAdm06IEFk ZHJlc3Mgc3BhY2UgdG8gY2xlYW5zZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhl Y2J1ZmZlci5jCmluZGV4IDZlZDdkNjNhLi5iNzJmZmU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCkBAIC01OTksNiArNTk5LDggQEAgaTkxNV9nZW1fZXhl Y2J1ZmZlcl9yZXNlcnZlX3ZtYShzdHJ1Y3QgaTkxNV92bWEgKnZtYSwKIAkJCWZsYWdzIHw9IFBJ Tl9HTE9CQUwgfCBQSU5fTUFQUEFCTEU7CiAJCWlmIChlbnRyeS0+ZmxhZ3MgJiBfX0VYRUNfT0JK RUNUX05FRURTX0JJQVMpCiAJCQlmbGFncyB8PSBCQVRDSF9PRkZTRVRfQklBUyB8IFBJTl9PRkZT RVRfQklBUzsKKwkJaWYgKGVudHJ5LT5mbGFncyAmIEVYRUNfT0JKRUNUX1BJTk5FRCkKKwkJCWZs YWdzIHw9IGVudHJ5LT5vZmZzZXQgfCBQSU5fT0ZGU0VUX0ZJWEVEOwogCQlpZiAoKGZsYWdzICYg UElOX01BUFBBQkxFKSA9PSAwKQogCQkJZmxhZ3MgfD0gUElOX0hJR0g7CiAJfQpAQCAtNjcwLDYg KzY3MiwxMCBAQCBlYl92bWFfbWlzcGxhY2VkKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogCSAgICB2 bWEtPm5vZGUuc3RhcnQgJiAoZW50cnktPmFsaWdubWVudCAtIDEpKQogCQlyZXR1cm4gdHJ1ZTsK IAorCWlmIChlbnRyeS0+ZmxhZ3MgJiBFWEVDX09CSkVDVF9QSU5ORUQgJiYKKwkgICAgdm1hLT5u b2RlLnN0YXJ0ICE9IGVudHJ5LT5vZmZzZXQpCisJCXJldHVybiB0cnVlOworCiAJaWYgKGVudHJ5 LT5mbGFncyAmIF9fRVhFQ19PQkpFQ1RfTkVFRFNfQklBUyAmJgogCSAgICB2bWEtPm5vZGUuc3Rh cnQgPCBCQVRDSF9PRkZTRVRfQklBUykKIAkJcmV0dXJuIHRydWU7CkBAIC02NzgsNyArNjg0LDgg QEAgZWJfdm1hX21pc3BsYWNlZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIAlpZiAoZW50cnktPmZs YWdzICYgX19FWEVDX09CSkVDVF9ORUVEU19NQVAgJiYgIW9iai0+bWFwX2FuZF9mZW5jZWFibGUp CiAJCXJldHVybiAhb25seV9tYXBwYWJsZV9mb3JfcmVsb2MoZW50cnktPmZsYWdzKTsKIAotCWlm ICgoZW50cnktPmZsYWdzICYgRVhFQ19PQkpFQ1RfU1VQUE9SVFNfNDhCX0FERFJFU1MpID09IDAg JiYKKwlpZiAoIShlbnRyeS0+ZmxhZ3MgJgorCSAgICAoRVhFQ19PQkpFQ1RfU1VQUE9SVFNfNDhC X0FERFJFU1MgfCBFWEVDX09CSkVDVF9QSU5ORUQpKSAmJgogCSAgICAodm1hLT5ub2RlLnN0YXJ0 ICsgdm1hLT5ub2RlLnNpemUgLSAxKSA+PiAzMikKIAkJcmV0dXJuIHRydWU7CiAKQEAgLTY5NSw2 ICs3MDIsNyBAQCBpOTE1X2dlbV9leGVjYnVmZmVyX3Jlc2VydmUoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZywKIAlzdHJ1Y3QgaTkxNV92bWEgKnZtYTsKIAlzdHJ1Y3QgaTkxNV9hZGRyZXNz X3NwYWNlICp2bTsKIAlzdHJ1Y3QgbGlzdF9oZWFkIG9yZGVyZWRfdm1hczsKKwlzdHJ1Y3QgbGlz dF9oZWFkIHBpbm5lZF92bWFzOwogCWJvb2wgaGFzX2ZlbmNlZF9ncHVfYWNjZXNzID0gSU5URUxf SU5GTyhyaW5nLT5kZXYpLT5nZW4gPCA0OwogCWludCByZXRyeTsKIApAQCAtNzAzLDYgKzcxMSw3 IEBAIGk5MTVfZ2VtX2V4ZWNidWZmZXJfcmVzZXJ2ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nLAogCXZtID0gbGlzdF9maXJzdF9lbnRyeSh2bWFzLCBzdHJ1Y3QgaTkxNV92bWEsIGV4ZWNf bGlzdCktPnZtOwogCiAJSU5JVF9MSVNUX0hFQUQoJm9yZGVyZWRfdm1hcyk7CisJSU5JVF9MSVNU X0hFQUQoJnBpbm5lZF92bWFzKTsKIAl3aGlsZSAoIWxpc3RfZW1wdHkodm1hcykpIHsKIAkJc3Ry dWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgKmVudHJ5OwogCQlib29sIG5lZWRfZmVuY2Us IG5lZWRfbWFwcGFibGU7CkBAIC03MjEsNyArNzMwLDkgQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9y ZXNlcnZlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJCQlvYmotPnRpbGluZ19tb2Rl ICE9IEk5MTVfVElMSU5HX05PTkU7CiAJCW5lZWRfbWFwcGFibGUgPSBuZWVkX2ZlbmNlIHx8IG5l ZWRfcmVsb2NfbWFwcGFibGUodm1hKTsKIAotCQlpZiAobmVlZF9tYXBwYWJsZSkgeworCQlpZiAo ZW50cnktPmZsYWdzICYgRVhFQ19PQkpFQ1RfUElOTkVEKQorCQkJbGlzdF9tb3ZlX3RhaWwoJnZt YS0+ZXhlY19saXN0LCAmcGlubmVkX3ZtYXMpOworCQllbHNlIGlmIChuZWVkX21hcHBhYmxlKSB7 CiAJCQllbnRyeS0+ZmxhZ3MgfD0gX19FWEVDX09CSkVDVF9ORUVEU19NQVA7CiAJCQlsaXN0X21v dmUoJnZtYS0+ZXhlY19saXN0LCAmb3JkZXJlZF92bWFzKTsKIAkJfSBlbHNlCkBAIC03MzEsNiAr NzQyLDcgQEAgaTkxNV9nZW1fZXhlY2J1ZmZlcl9yZXNlcnZlKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcsCiAJCW9iai0+YmFzZS5wZW5kaW5nX3dyaXRlX2RvbWFpbiA9IDA7CiAJfQogCWxp c3Rfc3BsaWNlKCZvcmRlcmVkX3ZtYXMsIHZtYXMpOworCWxpc3Rfc3BsaWNlKCZwaW5uZWRfdm1h cywgdm1hcyk7CiAKIAkvKiBBdHRlbXB0IHRvIHBpbiBhbGwgb2YgdGhlIGJ1ZmZlcnMgaW50byB0 aGUgR1RULgogCSAqIFRoaXMgaXMgZG9uZSBpbiAzIHBoYXNlczoKQEAgLTEzMTcsNyArMTMyOSw4 IEBAIGViX2dldF9iYXRjaChzdHJ1Y3QgZWJfdm1hcyAqZWIpCiAJICogTm90ZSB0aGF0IGFjdHVh bCBoYW5ncyBoYXZlIG9ubHkgYmVlbiBvYnNlcnZlZCBvbiBnZW43LCBidXQgZm9yCiAJICogcGFy YW5vaWEgZG8gaXQgZXZlcnl3aGVyZS4KIAkgKi8KLQl2bWEtPmV4ZWNfZW50cnktPmZsYWdzIHw9 IF9fRVhFQ19PQkpFQ1RfTkVFRFNfQklBUzsKKwlpZiAoKHZtYS0+ZXhlY19lbnRyeS0+ZmxhZ3Mg JiBFWEVDX09CSkVDVF9QSU5ORUQpID09IDApCisJCXZtYS0+ZXhlY19lbnRyeS0+ZmxhZ3MgfD0g X19FWEVDX09CSkVDVF9ORUVEU19CSUFTOwogCiAJcmV0dXJuIHZtYS0+b2JqOwogfQpkaWZmIC0t Z2l0IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9pOTE1 X2RybS5oCmluZGV4IDQ4NGE5ZmIuLmZjNzU0YTMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvdWFwaS9k cm0vaTkxNV9kcm0uaAorKysgYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKQEAgLTM1Niw2 ICszNTYsNyBAQCB0eXBlZGVmIHN0cnVjdCBkcm1faTkxNV9pcnFfd2FpdCB7CiAjZGVmaW5lIEk5 MTVfUEFSQU1fRVVfVE9UQUwJCSAzNAogI2RlZmluZSBJOTE1X1BBUkFNX0hBU19HUFVfUkVTRVQJ IDM1CiAjZGVmaW5lIEk5MTVfUEFSQU1fSEFTX1JFU09VUkNFX1NUUkVBTUVSIDM2CisjZGVmaW5l IEk5MTVfUEFSQU1fSEFTX0VYRUNfU09GVFBJTgkgMzcKIAogdHlwZWRlZiBzdHJ1Y3QgZHJtX2k5 MTVfZ2V0cGFyYW0gewogCV9fczMyIHBhcmFtOwpAQCAtNjgyLDggKzY4MywxMiBAQCBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiB7CiAJX191NjQgYWxpZ25tZW50OwogCiAJLyoqCi0J ICogUmV0dXJuZWQgdmFsdWUgb2YgdGhlIHVwZGF0ZWQgb2Zmc2V0IG9mIHRoZSBvYmplY3QsIGZv ciBmdXR1cmUKLQkgKiBwcmVzdW1lZF9vZmZzZXQgd3JpdGVzLgorCSAqIFdoZW4gdGhlIEVYRUNf T0JKRUNUX1BJTk5FRCBmbGFnIGlzIHNwZWNpZmllZCB0aGlzIGlzIHBvcHVsYXRlZCBieQorCSAq IHRoZSB1c2VyIHdpdGggdGhlIEdUVCBvZmZzZXQgYXQgd2hpY2ggdGhpcyBvYmplY3Qgd2lsbCBi ZSBwaW5uZWQuCisJICogV2hlbiB0aGUgSTkxNV9FWEVDX05PX1JFTE9DIGZsYWcgaXMgc3BlY2lm aWVkIHRoaXMgbXVzdCBjb250YWluIHRoZQorCSAqIHByZXN1bWVkX29mZnNldCBvZiB0aGUgb2Jq ZWN0LgorCSAqIER1cmluZyBleGVjYnVmZmVyMiB0aGUga2VybmVsIHBvcHVsYXRlcyBpdCB3aXRo IHRoZSB2YWx1ZSBvZiB0aGUKKwkgKiBjdXJyZW50IEdUVCBvZmZzZXQgb2YgdGhlIG9iamVjdCwg Zm9yIGZ1dHVyZSBwcmVzdW1lZF9vZmZzZXQgd3JpdGVzLgogCSAqLwogCV9fdTY0IG9mZnNldDsK IApAQCAtNjkxLDcgKzY5Niw4IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyIHsK ICNkZWZpbmUgRVhFQ19PQkpFQ1RfTkVFRFNfR1RUCSgxPDwxKQogI2RlZmluZSBFWEVDX09CSkVD VF9XUklURQkoMTw8MikKICNkZWZpbmUgRVhFQ19PQkpFQ1RfU1VQUE9SVFNfNDhCX0FERFJFU1Mg KDE8PDMpCi0jZGVmaW5lIF9fRVhFQ19PQkpFQ1RfVU5LTk9XTl9GTEFHUyAtKEVYRUNfT0JKRUNU X1NVUFBPUlRTXzQ4Ql9BRERSRVNTPDwxKQorI2RlZmluZSBFWEVDX09CSkVDVF9QSU5ORUQJKDE8 PDQpCisjZGVmaW5lIF9fRVhFQ19PQkpFQ1RfVU5LTk9XTl9GTEFHUyAtKEVYRUNfT0JKRUNUX1BJ Tk5FRDw8MSkKIAlfX3U2NCBmbGFnczsKIAogCV9fdTY0IHJzdmQxOwotLSAKMS45LjEKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==