From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Daniel Subject: [PATCH v7] drm/i915: Add soft-pinning API for execbuffer Date: Tue, 8 Dec 2015 11:55:07 +0000 Message-ID: <1449575707-20933-1-git-send-email-thomas.daniel@intel.com> References: <1444993140-20909-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 770016E215 for ; Tue, 8 Dec 2015 03:55:21 -0800 (PST) In-Reply-To: <1444993140-20909-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 dGVsLW5pZ2h0bHkKCnY3OiBDYXRjaCBhdHRlbXB0cyB0byBwaW4gYWJvdmUgdGhlIG1heCB2aXJ0 dWFsIGFkZHJlc3Mgc2l6ZSBhbmQgcmV0dXJuCkVJTlZBTCAoVHZydGtvKS4gRGVjb3VwbGUgRVhF Q19PQkpFQ1RfU1VQUE9SVFNfNDhCX0FERFJFU1MgYW5kCkVYRUNfT0JKRUNUX1BJTk5FRCBmbGFn cywgdXNlciBtdXN0IHBhc3MgYm90aCBmbGFncyBpbiBhbnkgYXR0ZW1wdCB0byBwaW4Kc29tZXRo aW5nIGF0IGFuIG9mZnNldCBhYm92ZSA0R0IgKENocmlzLCBEYW5pZWwgVmV0dGVyKS4KCkNjOiBD aHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KQ2M6IEFrYXNoIEdvZWwgPGFr YXNoLmdvZWxAaW50ZWwuY29tPgpDYzogVmluYXkgQmVsZ2F1bWthciA8dmluYXkuYmVsZ2F1bWth ckBpbnRlbC5jb20+CkNjOiBNaWNoYWwgV2luaWFyc2tpIDxtaWNoYWwud2luaWFyc2tpQGludGVs LmNvbT4KQ2M6IFpvdSBOYW5oYWkgPG5hbmhhaS56b3VAaW50ZWwuY29tPgpDYzogS3Jpc3RpYW4g SMO4Z3NiZXJnIDxob2Vnc2JlcmdAZ21haWwuY29tPgpDYzogVHZydGtvIFVyc3VsaW4gPHR2cnRr by51cnN1bGluQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogVGhvbWFzIERhbmllbCA8 dGhvbWFzLmRhbmllbEBpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k bWEuYyAgICAgICAgICAgIHwgIDMgKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg ICAgICAgICAgICB8ICAyICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAg ICAgICB8IDY0ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZXZpY3QuYyAgICAgIHwgMzkgKysrKysrKysrKysrKysrKysrCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMgfCAxNiArKysrKysrLQogaW5j bHVkZS91YXBpL2RybS9pOTE1X2RybS5oICAgICAgICAgICAgICAgIHwgMTIgKysrKy0tCiA2IGZp bGVzIGNoYW5nZWQsIDExMSBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kbWEuYwppbmRleCBhODFjNzY2Li41MmI4Mjg5IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZG1hLmMKQEAgLTE2OSw2ICsxNjksOSBAQCBzdGF0aWMgaW50IGk5MTVfZ2V0cGFyYW0oc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIAljYXNlIEk5MTVfUEFSQU1fSEFTX1JFU09V UkNFX1NUUkVBTUVSOgogCQl2YWx1ZSA9IEhBU19SRVNPVVJDRV9TVFJFQU1FUihkZXYpOwogCQli cmVhazsKKwljYXNlIEk5MTVfUEFSQU1fSEFTX0VYRUNfU09GVFBJTjoKKwkJdmFsdWUgPSAxOwor CQlicmVhazsKIAlkZWZhdWx0OgogCQlEUk1fREVCVUcoIlVua25vd24gcGFyYW1ldGVyICVkXG4i LCBwYXJhbS0+cGFyYW0pOwogCQlyZXR1cm4gLUVJTlZBTDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o CmluZGV4IGYxYThhNTMuLjMxNWQ3OWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjg2 MCw2ICsyODYwLDcgQEAgdm9pZCBpOTE1X2dlbV92bWFfZGVzdHJveShzdHJ1Y3QgaTkxNV92bWEg KnZtYSk7CiAjZGVmaW5lIFBJTl9VUERBVEUJKDE8PDUpCiAjZGVmaW5lIFBJTl9aT05FXzRHCSgx PDw2KQogI2RlZmluZSBQSU5fSElHSAkoMTw8NykKKyNkZWZpbmUgUElOX09GRlNFVF9GSVhFRAko MTw8OCkKICNkZWZpbmUgUElOX09GRlNFVF9NQVNLICh+NDA5NSkKIGludCBfX211c3RfY2hlY2sK IGk5MTVfZ2VtX29iamVjdF9waW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKQEAg LTMyMDUsNiArMzIwNiw3IEBAIGludCBfX211c3RfY2hlY2sgaTkxNV9nZW1fZXZpY3Rfc29tZXRo aW5nKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJCSAgdW5zaWduZWQgbG9uZyBzdGFydCwK IAkJCQkJICB1bnNpZ25lZCBsb25nIGVuZCwKIAkJCQkJICB1bnNpZ25lZCBmbGFncyk7CitpbnQg X19tdXN0X2NoZWNrIGk5MTVfZ2VtX2V2aWN0X2Zvcl92bWEoc3RydWN0IGk5MTVfdm1hICp0YXJn ZXQpOwogaW50IGk5MTVfZ2VtX2V2aWN0X3ZtKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZt LCBib29sIGRvX2lkbGUpOwogCiAvKiBiZWxvbmdzIGluIGk5MTVfZ2VtX2d0dC5oICovCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYwppbmRleCBkZmFmMjViLi44MDFmM2QwIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMKQEAgLTM0NzYsMzAgKzM0NzYsNTAgQEAgaTkxNV9nZW1fb2JqZWN0X2JpbmRfdG9f dm0oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAlpZiAoSVNfRVJSKHZtYSkpCiAJ CWdvdG8gZXJyX3VucGluOwogCi0JaWYgKGZsYWdzICYgUElOX0hJR0gpIHsKLQkJc2VhcmNoX2Zs YWcgPSBEUk1fTU1fU0VBUkNIX0JFTE9XOwotCQlhbGxvY19mbGFnID0gRFJNX01NX0NSRUFURV9U T1A7CisJaWYgKGZsYWdzICYgUElOX09GRlNFVF9GSVhFRCkgeworCQl1aW50NjRfdCBvZmZzZXQg PSBmbGFncyAmIFBJTl9PRkZTRVRfTUFTSzsKKworCQlpZiAob2Zmc2V0ICYgKGFsaWdubWVudCAt IDEpIHx8IG9mZnNldCArIHNpemUgPiBlbmQpIHsKKwkJCXJldCA9IC1FSU5WQUw7CisJCQlnb3Rv IGVycl9mcmVlX3ZtYTsKKwkJfQorCQl2bWEtPm5vZGUuc3RhcnQgPSBvZmZzZXQ7CisJCXZtYS0+ bm9kZS5zaXplID0gc2l6ZTsKKwkJdm1hLT5ub2RlLmNvbG9yID0gb2JqLT5jYWNoZV9sZXZlbDsK KwkJcmV0ID0gZHJtX21tX3Jlc2VydmVfbm9kZSgmdm0tPm1tLCAmdm1hLT5ub2RlKTsKKwkJaWYg KHJldCkgeworCQkJcmV0ID0gaTkxNV9nZW1fZXZpY3RfZm9yX3ZtYSh2bWEpOworCQkJaWYgKHJl dCA9PSAwKQorCQkJCXJldCA9IGRybV9tbV9yZXNlcnZlX25vZGUoJnZtLT5tbSwgJnZtYS0+bm9k ZSk7CisJCX0KKwkJaWYgKHJldCkKKwkJCWdvdG8gZXJyX2ZyZWVfdm1hOwogCX0gZWxzZSB7Ci0J CXNlYXJjaF9mbGFnID0gRFJNX01NX1NFQVJDSF9ERUZBVUxUOwotCQlhbGxvY19mbGFnID0gRFJN X01NX0NSRUFURV9ERUZBVUxUOwotCX0KKwkJaWYgKGZsYWdzICYgUElOX0hJR0gpIHsKKwkJCXNl YXJjaF9mbGFnID0gRFJNX01NX1NFQVJDSF9CRUxPVzsKKwkJCWFsbG9jX2ZsYWcgPSBEUk1fTU1f Q1JFQVRFX1RPUDsKKwkJfSBlbHNlIHsKKwkJCXNlYXJjaF9mbGFnID0gRFJNX01NX1NFQVJDSF9E RUZBVUxUOworCQkJYWxsb2NfZmxhZyA9IERSTV9NTV9DUkVBVEVfREVGQVVMVDsKKwkJfQogCiBz ZWFyY2hfZnJlZToKLQlyZXQgPSBkcm1fbW1faW5zZXJ0X25vZGVfaW5fcmFuZ2VfZ2VuZXJpYygm dm0tPm1tLCAmdm1hLT5ub2RlLAotCQkJCQkJICBzaXplLCBhbGlnbm1lbnQsCi0JCQkJCQkgIG9i ai0+Y2FjaGVfbGV2ZWwsCi0JCQkJCQkgIHN0YXJ0LCBlbmQsCi0JCQkJCQkgIHNlYXJjaF9mbGFn LAotCQkJCQkJICBhbGxvY19mbGFnKTsKLQlpZiAocmV0KSB7Ci0JCXJldCA9IGk5MTVfZ2VtX2V2 aWN0X3NvbWV0aGluZyhkZXYsIHZtLCBzaXplLCBhbGlnbm1lbnQsCi0JCQkJCSAgICAgICBvYmot PmNhY2hlX2xldmVsLAotCQkJCQkgICAgICAgc3RhcnQsIGVuZCwKLQkJCQkJICAgICAgIGZsYWdz KTsKLQkJaWYgKHJldCA9PSAwKQotCQkJZ290byBzZWFyY2hfZnJlZTsKKwkJcmV0ID0gZHJtX21t X2luc2VydF9ub2RlX2luX3JhbmdlX2dlbmVyaWMoJnZtLT5tbSwgJnZtYS0+bm9kZSwKKwkJCQkJ CQkgIHNpemUsIGFsaWdubWVudCwKKwkJCQkJCQkgIG9iai0+Y2FjaGVfbGV2ZWwsCisJCQkJCQkJ ICBzdGFydCwgZW5kLAorCQkJCQkJCSAgc2VhcmNoX2ZsYWcsCisJCQkJCQkJICBhbGxvY19mbGFn KTsKKwkJaWYgKHJldCkgeworCQkJcmV0ID0gaTkxNV9nZW1fZXZpY3Rfc29tZXRoaW5nKGRldiwg dm0sIHNpemUsIGFsaWdubWVudCwKKwkJCQkJCSAgICAgICBvYmotPmNhY2hlX2xldmVsLAorCQkJ CQkJICAgICAgIHN0YXJ0LCBlbmQsCisJCQkJCQkgICAgICAgZmxhZ3MpOworCQkJaWYgKHJldCA9 PSAwKQorCQkJCWdvdG8gc2VhcmNoX2ZyZWU7CiAKLQkJZ290byBlcnJfZnJlZV92bWE7CisJCQln b3RvIGVycl9mcmVlX3ZtYTsKKwkJfQogCX0KIAlpZiAoV0FSTl9PTighaTkxNV9nZW1fdmFsaWRf Z3R0X3NwYWNlKHZtYSwgb2JqLT5jYWNoZV9sZXZlbCkpKSB7CiAJCXJldCA9IC1FSU5WQUw7CkBA IC00MDkwLDYgKzQxMTAsMTAgQEAgaTkxNV92bWFfbWlzcGxhY2VkKHN0cnVjdCBpOTE1X3ZtYSAq dm1hLCB1aW50MzJfdCBhbGlnbm1lbnQsIHVpbnQ2NF90IGZsYWdzKQogCSAgICB2bWEtPm5vZGUu c3RhcnQgPCAoZmxhZ3MgJiBQSU5fT0ZGU0VUX01BU0spKQogCQlyZXR1cm4gdHJ1ZTsKIAorCWlm IChmbGFncyAmIFBJTl9PRkZTRVRfRklYRUQgJiYKKwkgICAgdm1hLT5ub2RlLnN0YXJ0ICE9IChm bGFncyAmIFBJTl9PRkZTRVRfTUFTSykpCisJCXJldHVybiB0cnVlOworCiAJcmV0dXJuIGZhbHNl OwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXZpY3QuYwppbmRleCBkNzFhMTMzLi4w N2M2ZTRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ldmljdC5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V2aWN0LmMKQEAgLTE5OSw2ICsx OTksNDUgQEAgZm91bmQ6CiAJcmV0dXJuIHJldDsKIH0KIAoraW50CitpOTE1X2dlbV9ldmljdF9m b3Jfdm1hKHN0cnVjdCBpOTE1X3ZtYSAqdGFyZ2V0KQoreworCXN0cnVjdCBkcm1fbW1fbm9kZSAq bm9kZSwgKm5leHQ7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobm9kZSwgbmV4dCwKKwkJ CSZ0YXJnZXQtPnZtLT5tbS5oZWFkX25vZGUubm9kZV9saXN0LAorCQkJbm9kZV9saXN0KSB7CisJ CXN0cnVjdCBpOTE1X3ZtYSAqdm1hOworCQlpbnQgcmV0OworCisJCWlmIChub2RlLT5zdGFydCAr IG5vZGUtPnNpemUgPD0gdGFyZ2V0LT5ub2RlLnN0YXJ0KQorCQkJY29udGludWU7CisJCWlmIChu b2RlLT5zdGFydCA+PSB0YXJnZXQtPm5vZGUuc3RhcnQgKyB0YXJnZXQtPm5vZGUuc2l6ZSkKKwkJ CWJyZWFrOworCisJCXZtYSA9IGNvbnRhaW5lcl9vZihub2RlLCB0eXBlb2YoKnZtYSksIG5vZGUp OworCisJCWlmICh2bWEtPnBpbl9jb3VudCkgeworCQkJaWYgKCF2bWEtPmV4ZWNfZW50cnkgfHwg KHZtYS0+cGluX2NvdW50ID4gMSkpCisJCQkJLyogT2JqZWN0IGlzIHBpbm5lZCBmb3Igc29tZSBv dGhlciB1c2UgKi8KKwkJCQlyZXR1cm4gLUVCVVNZOworCisJCQkvKiBXZSBuZWVkIHRvIGV2aWN0 IGEgYnVmZmVyIGluIHRoZSBzYW1lIGJhdGNoICovCisJCQlpZiAodm1hLT5leGVjX2VudHJ5LT5m bGFncyAmIEVYRUNfT0JKRUNUX1BJTk5FRCkKKwkJCQkvKiBPdmVybGFwcGluZyBmaXhlZCBvYmpl Y3RzIGluIHRoZSBzYW1lIGJhdGNoICovCisJCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJCXJldHVy biAtRU5PU1BDOworCQl9CisKKwkJcmV0ID0gaTkxNV92bWFfdW5iaW5kKHZtYSk7CisJCWlmIChy ZXQpCisJCQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiAwOworfQorCiAvKioKICAqIGk5MTVf Z2VtX2V2aWN0X3ZtIC0gRXZpY3QgYWxsIGlkbGUgdm1hcyBmcm9tIGEgdm0KICAqIEB2bTogQWRk cmVzcyBzcGFjZSB0byBjbGVhbnNlCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2dlbV9leGVjYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVj YnVmZmVyLmMKaW5kZXggYTRjMjQzYy4uNDhlYzQ4NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwpAQCAtNTk5LDYgKzU5OSw4IEBAIGk5MTVfZ2VtX2V4ZWNi dWZmZXJfcmVzZXJ2ZV92bWEoc3RydWN0IGk5MTVfdm1hICp2bWEsCiAJCQlmbGFncyB8PSBQSU5f R0xPQkFMIHwgUElOX01BUFBBQkxFOwogCQlpZiAoZW50cnktPmZsYWdzICYgX19FWEVDX09CSkVD VF9ORUVEU19CSUFTKQogCQkJZmxhZ3MgfD0gQkFUQ0hfT0ZGU0VUX0JJQVMgfCBQSU5fT0ZGU0VU X0JJQVM7CisJCWlmIChlbnRyeS0+ZmxhZ3MgJiBFWEVDX09CSkVDVF9QSU5ORUQpCisJCQlmbGFn cyB8PSBlbnRyeS0+b2Zmc2V0IHwgUElOX09GRlNFVF9GSVhFRDsKIAkJaWYgKChmbGFncyAmIFBJ Tl9NQVBQQUJMRSkgPT0gMCkKIAkJCWZsYWdzIHw9IFBJTl9ISUdIOwogCX0KQEAgLTY3MCw2ICs2 NzIsMTAgQEAgZWJfdm1hX21pc3BsYWNlZChzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIAkgICAgdm1h LT5ub2RlLnN0YXJ0ICYgKGVudHJ5LT5hbGlnbm1lbnQgLSAxKSkKIAkJcmV0dXJuIHRydWU7CiAK KwlpZiAoZW50cnktPmZsYWdzICYgRVhFQ19PQkpFQ1RfUElOTkVEICYmCisJICAgIHZtYS0+bm9k ZS5zdGFydCAhPSBlbnRyeS0+b2Zmc2V0KQorCQlyZXR1cm4gdHJ1ZTsKKwogCWlmIChlbnRyeS0+ ZmxhZ3MgJiBfX0VYRUNfT0JKRUNUX05FRURTX0JJQVMgJiYKIAkgICAgdm1hLT5ub2RlLnN0YXJ0 IDwgQkFUQ0hfT0ZGU0VUX0JJQVMpCiAJCXJldHVybiB0cnVlOwpAQCAtNjk1LDYgKzcwMSw3IEBA IGk5MTVfZ2VtX2V4ZWNidWZmZXJfcmVzZXJ2ZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5n LAogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwogCXN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZt OwogCXN0cnVjdCBsaXN0X2hlYWQgb3JkZXJlZF92bWFzOworCXN0cnVjdCBsaXN0X2hlYWQgcGlu bmVkX3ZtYXM7CiAJYm9vbCBoYXNfZmVuY2VkX2dwdV9hY2Nlc3MgPSBJTlRFTF9JTkZPKHJpbmct PmRldiktPmdlbiA8IDQ7CiAJaW50IHJldHJ5OwogCkBAIC03MDMsNiArNzEwLDcgQEAgaTkxNV9n ZW1fZXhlY2J1ZmZlcl9yZXNlcnZlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJdm0g PSBsaXN0X2ZpcnN0X2VudHJ5KHZtYXMsIHN0cnVjdCBpOTE1X3ZtYSwgZXhlY19saXN0KS0+dm07 CiAKIAlJTklUX0xJU1RfSEVBRCgmb3JkZXJlZF92bWFzKTsKKwlJTklUX0xJU1RfSEVBRCgmcGlu bmVkX3ZtYXMpOwogCXdoaWxlICghbGlzdF9lbXB0eSh2bWFzKSkgewogCQlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX2V4ZWNfb2JqZWN0MiAqZW50cnk7CiAJCWJvb2wgbmVlZF9mZW5jZSwgbmVlZF9tYXBw YWJsZTsKQEAgLTcyMSw3ICs3MjksOSBAQCBpOTE1X2dlbV9leGVjYnVmZmVyX3Jlc2VydmUoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKIAkJCW9iai0+dGlsaW5nX21vZGUgIT0gSTkxNV9U SUxJTkdfTk9ORTsKIAkJbmVlZF9tYXBwYWJsZSA9IG5lZWRfZmVuY2UgfHwgbmVlZF9yZWxvY19t YXBwYWJsZSh2bWEpOwogCi0JCWlmIChuZWVkX21hcHBhYmxlKSB7CisJCWlmIChlbnRyeS0+Zmxh Z3MgJiBFWEVDX09CSkVDVF9QSU5ORUQpCisJCQlsaXN0X21vdmVfdGFpbCgmdm1hLT5leGVjX2xp c3QsICZwaW5uZWRfdm1hcyk7CisJCWVsc2UgaWYgKG5lZWRfbWFwcGFibGUpIHsKIAkJCWVudHJ5 LT5mbGFncyB8PSBfX0VYRUNfT0JKRUNUX05FRURTX01BUDsKIAkJCWxpc3RfbW92ZSgmdm1hLT5l eGVjX2xpc3QsICZvcmRlcmVkX3ZtYXMpOwogCQl9IGVsc2UKQEAgLTczMSw2ICs3NDEsNyBAQCBp OTE1X2dlbV9leGVjYnVmZmVyX3Jlc2VydmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywK IAkJb2JqLT5iYXNlLnBlbmRpbmdfd3JpdGVfZG9tYWluID0gMDsKIAl9CiAJbGlzdF9zcGxpY2Uo Jm9yZGVyZWRfdm1hcywgdm1hcyk7CisJbGlzdF9zcGxpY2UoJnBpbm5lZF92bWFzLCB2bWFzKTsK IAogCS8qIEF0dGVtcHQgdG8gcGluIGFsbCBvZiB0aGUgYnVmZmVycyBpbnRvIHRoZSBHVFQuCiAJ ICogVGhpcyBpcyBkb25lIGluIDMgcGhhc2VzOgpAQCAtMTMxNyw3ICsxMzI4LDggQEAgZWJfZ2V0 X2JhdGNoKHN0cnVjdCBlYl92bWFzICplYikKIAkgKiBOb3RlIHRoYXQgYWN0dWFsIGhhbmdzIGhh dmUgb25seSBiZWVuIG9ic2VydmVkIG9uIGdlbjcsIGJ1dCBmb3IKIAkgKiBwYXJhbm9pYSBkbyBp dCBldmVyeXdoZXJlLgogCSAqLwotCXZtYS0+ZXhlY19lbnRyeS0+ZmxhZ3MgfD0gX19FWEVDX09C SkVDVF9ORUVEU19CSUFTOworCWlmICgodm1hLT5leGVjX2VudHJ5LT5mbGFncyAmIEVYRUNfT0JK RUNUX1BJTk5FRCkgPT0gMCkKKwkJdm1hLT5leGVjX2VudHJ5LT5mbGFncyB8PSBfX0VYRUNfT0JK RUNUX05FRURTX0JJQVM7CiAKIAlyZXR1cm4gdm1hLT5vYmo7CiB9CmRpZmYgLS1naXQgYS9pbmNs dWRlL3VhcGkvZHJtL2k5MTVfZHJtLmggYi9pbmNsdWRlL3VhcGkvZHJtL2k5MTVfZHJtLmgKaW5k ZXggNjdlZjczYS4uZDcyN2I0OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2Ry bS5oCisrKyBiL2luY2x1ZGUvdWFwaS9kcm0vaTkxNV9kcm0uaApAQCAtMzU2LDYgKzM1Niw3IEBA IHR5cGVkZWYgc3RydWN0IGRybV9pOTE1X2lycV93YWl0IHsKICNkZWZpbmUgSTkxNV9QQVJBTV9F VV9UT1RBTAkJIDM0CiAjZGVmaW5lIEk5MTVfUEFSQU1fSEFTX0dQVV9SRVNFVAkgMzUKICNkZWZp bmUgSTkxNV9QQVJBTV9IQVNfUkVTT1VSQ0VfU1RSRUFNRVIgMzYKKyNkZWZpbmUgSTkxNV9QQVJB TV9IQVNfRVhFQ19TT0ZUUElOCSAzNwogCiB0eXBlZGVmIHN0cnVjdCBkcm1faTkxNV9nZXRwYXJh bSB7CiAJX19zMzIgcGFyYW07CkBAIC02ODIsOCArNjgzLDEyIEBAIHN0cnVjdCBkcm1faTkxNV9n ZW1fZXhlY19vYmplY3QyIHsKIAlfX3U2NCBhbGlnbm1lbnQ7CiAKIAkvKioKLQkgKiBSZXR1cm5l ZCB2YWx1ZSBvZiB0aGUgdXBkYXRlZCBvZmZzZXQgb2YgdGhlIG9iamVjdCwgZm9yIGZ1dHVyZQot CSAqIHByZXN1bWVkX29mZnNldCB3cml0ZXMuCisJICogV2hlbiB0aGUgRVhFQ19PQkpFQ1RfUElO TkVEIGZsYWcgaXMgc3BlY2lmaWVkIHRoaXMgaXMgcG9wdWxhdGVkIGJ5CisJICogdGhlIHVzZXIg d2l0aCB0aGUgR1RUIG9mZnNldCBhdCB3aGljaCB0aGlzIG9iamVjdCB3aWxsIGJlIHBpbm5lZC4K KwkgKiBXaGVuIHRoZSBJOTE1X0VYRUNfTk9fUkVMT0MgZmxhZyBpcyBzcGVjaWZpZWQgdGhpcyBt dXN0IGNvbnRhaW4gdGhlCisJICogcHJlc3VtZWRfb2Zmc2V0IG9mIHRoZSBvYmplY3QuCisJICog RHVyaW5nIGV4ZWNidWZmZXIyIHRoZSBrZXJuZWwgcG9wdWxhdGVzIGl0IHdpdGggdGhlIHZhbHVl IG9mIHRoZQorCSAqIGN1cnJlbnQgR1RUIG9mZnNldCBvZiB0aGUgb2JqZWN0LCBmb3IgZnV0dXJl IHByZXN1bWVkX29mZnNldCB3cml0ZXMuCiAJICovCiAJX191NjQgb2Zmc2V0OwogCkBAIC02OTEs NyArNjk2LDggQEAgc3RydWN0IGRybV9pOTE1X2dlbV9leGVjX29iamVjdDIgewogI2RlZmluZSBF WEVDX09CSkVDVF9ORUVEU19HVFQJKDE8PDEpCiAjZGVmaW5lIEVYRUNfT0JKRUNUX1dSSVRFCSgx PDwyKQogI2RlZmluZSBFWEVDX09CSkVDVF9TVVBQT1JUU180OEJfQUREUkVTUyAoMTw8MykKLSNk ZWZpbmUgX19FWEVDX09CSkVDVF9VTktOT1dOX0ZMQUdTIC0oRVhFQ19PQkpFQ1RfU1VQUE9SVFNf NDhCX0FERFJFU1M8PDEpCisjZGVmaW5lIEVYRUNfT0JKRUNUX1BJTk5FRAkoMTw8NCkKKyNkZWZp bmUgX19FWEVDX09CSkVDVF9VTktOT1dOX0ZMQUdTIC0oRVhFQ19PQkpFQ1RfUElOTkVEPDwxKQog CV9fdTY0IGZsYWdzOwogCiAJX191NjQgcnN2ZDE7Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK