From mboxrd@z Thu Jan 1 00:00:00 1970 From: ankitprasad.r.sharma@intel.com Subject: [PATCH 09/10] drm/i915: Migrate stolen objects before hibernation Date: Fri, 19 Feb 2016 12:21:36 +0530 Message-ID: <1455864697-32140-10-git-send-email-ankitprasad.r.sharma@intel.com> References: <1455864697-32140-1-git-send-email-ankitprasad.r.sharma@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 640096EDCF for ; Fri, 19 Feb 2016 07:15:10 +0000 (UTC) In-Reply-To: <1455864697-32140-1-git-send-email-ankitprasad.r.sharma@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: akash.goel@intel.com, Ankitprasad Sharma , shashidhar.hiremath@intel.com List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+CgpWaWxsZSByZW1p bmRlZCB1cyB0aGF0IHN0b2xlbiBtZW1vcnkgaXMgbm90IHByZXNlcnZlZCBhY3Jvc3MKaGliZXJu YXRpb24sIGFuZCBhIHJlc3VsdCBvZiB0aGlzIHdhcyB0aGF0IGNvbnRleHQgb2JqZWN0cyBub3cg YmVpbmcKYWxsb2NhdGVkIGZyb20gc3RvbGVuIHdlcmUgYmVpbmcgY29ycnVwdGVkIG9uIFM0IGFu ZCBwcm9tcHRseSBoYW5naW5nCnRoZSBHUFUgb24gcmVzdW1lLgoKV2Ugd2FudCB0byB1dGlsaXNl IHN0b2xlbiBmb3IgYXMgbXVjaCBhcyBwb3NzaWJsZSAobm90aGluZyBlbHNlIHdpbGwgdXNlCnRo YXQgd2FzdGVkIG1lbW9yeSBvdGhlcndpc2UpLCBzbyB3ZSBuZWVkIGEgc3RyYXRlZ3kgZm9yIGhh bmRsaW5nCmdlbmVyYWwgb2JqZWN0cyBhbGxvY2F0ZWQgZnJvbSBzdG9sZW4gYW5kIGhpYmVybmF0 aW9uLiBBIHNpbXBsZSBzb2x1dGlvbgppcyB0byBkbyBhIENQVSBjb3B5IHRocm91Z2ggdGhlIEdU VCBvZiB0aGUgc3RvbGVuIG9iamVjdCBpbnRvIGEgZnJlc2gKc2htZW1mcyBiYWNraW5nIHN0b3Jl IGFuZCB0aGVuY2Vmb3J0aCB0cmVhdCBpdCBhcyBhIG5vcm1hbCBvYmplY3RzLiBUaGlzCmNhbiBi ZSByZWZpbmVkIGluIGZ1dHVyZSB0byBlaXRoZXIgdXNlIGEgR1BVIGNvcHkgdG8gYXZvaWQgdGhl IHNsb3cKdW5jYWNoZWQgcmVhZHMgKHRob3VnaCBpdCdzIGhpYmVybmF0aW9uISkgYW5kIHJlY3Jl YXRlIHN0b2xlbiBvYmplY3RzCnVwb24gcmVzdW1lL2ZpcnN0LXVzZS4gRm9yIG5vdywgYSBzaW1w bGUgYXBwcm9hY2ggc2hvdWxkIHN1ZmZpY2UgZm9yCnRlc3RpbmcgdGhlIG9iamVjdCBtaWdyYXRp b24uCgp2MjoKU3dhcCBQVEUgZm9yIHBpbm5lZCBiaW5kaW5ncyBvdmVyIHRvIHRoZSBzaG1lbWZz LiBUaGlzIGFkZHMgYQpjb21wbGljYXRlZCBkYW5jZSwgYnV0IGlzIHJlcXVpcmVkIGFzIG1hbnkg c3RvbGVuIG9iamVjdHMgYXJlIGxpa2VseSB0bwpiZSBwaW5uZWQgZm9yIHVzZSBieSB0aGUgaGFy ZHdhcmUuIFN3YXBwaW5nIHRoZSBQVEVzIHNob3VsZCBub3QgcmVzdWx0CmluIGV4dGVybmFsbHkg dmlzaWJsZSBiZWhhdmlvdXIsIGFzIGVhY2ggUFRFIHVwZGF0ZSBzaG91bGQgYmUgYXRvbWljIGFu ZAp0aGUgdHdvIHBhZ2VzIGlkZW50aWNhbC4gKGRhbnZldCkKCnNhZmUtYnktZGVmYXVsdCwgb3Ig dGhlIHByaW5jaXBsZSBvZiBsZWFzdCBzdXJwcmlzZS4gV2UgbmVlZCBhIG5ldyBmbGFnCnRvIG1h cmsgb2JqZWN0cyB0aGF0IHdlIGNhbiB3aWxmdWxseSBkaXNjYXJkIGFuZCByZWNyZWF0ZSBhY3Jv c3MKaGliZXJuYXRpb24uIChkYW52ZXQpCgpKdXN0IHVzZSB0aGUgZ2xvYmFsX2xpc3QgcmF0aGVy IHRoYW4gaW52ZW50IGEgbmV3IHN0b2xlbl9saXN0LiBUaGlzIGlzCnRoZSBzbG93cGF0aCBoaWJl cm5hdGUgYW5kIHNvIGFkZGluZyBhIG5ldyBsaXN0IGFuZCB0aGUgYXNzb2NpYXRlZApjb21wbGV4 aXR5IGlzbid0IHdvcnRoIGl0LgoKdjM6IFJlYmFzZWQgb24gZHJtLWludGVsLW5pZ2h0bHkgKEFu a2l0KQoKdjQ6IFVzZSBpbnNlcnRfcGFnZSB0byBtYXAgc3RvbGVuIG1lbW9yeSBiYWNrZWQgcGFn ZXMgZm9yIG1pZ3JhdGlvbiB0bwpzaG1lbSAoQ2hyaXMpCgp2NTogQWNxdWlyZSBtdXRleCBsb2Nr IHdoaWxlIGNvcHlpbmcgc3RvbGVuIGJ1ZmZlciBvYmplY3RzIHRvIHNobWVtIChDaHJpcykKCnY2 OiBIYW5kbGVkIGZpbGUgbGVhaywgU3BsaXR0ZWQgb2JqZWN0IG1pZ3JhdGlvbiBmdW5jdGlvbiwg YWRkZWQga2VybmVsZG9jCmZvciBtaWdyYXRlX3N0b2xlbl90b19zaG1lbWZzKCkgZnVuY3Rpb24g KFR2cnRrbykKVXNlIGk5MTUgd3JhcHBlciBmdW5jdGlvbiBmb3IgZHJtX21tX2luc2VydF9ub2Rl X2luX3JhbmdlKCkKCnY3OiBLZWVwIHRoZSBvYmplY3QgaW4gY3B1IGRvbWFpbiBhZnRlciBnZXRf cGFnZXMsIHJlbW92ZSB0aGUgb2JqZWN0IGZyb20KdGhlIHVuYm91bmQgbGlzdCBvbmx5IHdoZW4g bWFya2VkIFBVUkdFRCwgQ29ycmVjdGVkIHNwbGl0IG9mIG9iamVjdCBtaWdyYXRpb24KZnVuY3Rp b24gKENocmlzKQoKdjg6IFNwbGl0IGk5MTVfZ2VtX2ZyZWV6ZSgpLCByZW1vdmVkIHJlZHVuZGFu dCB1c2Ugb2YgYmFycmllciwgY29ycmVjdGVkCnVzZSBvZiBzZXRfdG9fY3B1X2RvbWFpbigpIChD aHJpcykKCnY5OiBSZXBsYWNlZCBXQVJOX09OIGJ5IEJVR19PTiBhbmQgYWRkZWQgYSBjb21tZW50 IGV4cGxhaW5pbmcgaXQKKERhbmllbC9UdnJ0a28pCgp2MTA6IERvY3VtZW50IHVzZSBvZiBiYXJy aWVycyAoQ2hyaXMpCgpTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzIGF0IGNocmlz LXdpbHNvbi5jby51az4KU2lnbmVkLW9mZi1ieTogQW5raXRwcmFzYWQgU2hhcm1hIDxhbmtpdHBy YXNhZC5yLnNoYXJtYUBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZy dGtvLnVyc3VsaW5AaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmMgICAgICAgICB8ICAxNyArKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAg ICAgICB8ICAxMCArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgIHwg MTk4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbV9zdG9sZW4uYyAgfCAgNDkgKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rpc3BsYXkuYyAgICB8ICAgMyArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9m YmRldi5jICAgICAgfCAgIDYgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAg ICAgIHwgICAyICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8ICAg NiArCiA4IGZpbGVzIGNoYW5nZWQsIDI3OSBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCAxMWQ4NDE0Li5jZmE0NGFmIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmMKQEAgLTk5Niw2ICs5OTYsMjEgQEAgc3RhdGljIGludCBpOTE1X3BtX3N1 c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQogCXJldHVybiBpOTE1X2RybV9zdXNwZW5kKGRybV9k ZXYpOwogfQogCitzdGF0aWMgaW50IGk5MTVfcG1fZnJlZXplKHN0cnVjdCBkZXZpY2UgKmRldikK K3sKKwlpbnQgcmV0OworCisJcmV0ID0gaTkxNV9nZW1fZnJlZXplKHBjaV9nZXRfZHJ2ZGF0YSh0 b19wY2lfZGV2KGRldikpKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gaTkx NV9wbV9zdXNwZW5kKGRldik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiAw OworfQorCiBzdGF0aWMgaW50IGk5MTVfcG1fc3VzcGVuZF9sYXRlKHN0cnVjdCBkZXZpY2UgKmRl dikKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IGRldl90b19pOTE1KGRldiktPmRl djsKQEAgLTE2NDMsNyArMTY1OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBp OTE1X3BtX29wcyA9IHsKIAkgKiBAcmVzdG9yZSwgQHJlc3RvcmVfZWFybHkgOiBjYWxsZWQgYWZ0 ZXIgcmVib290aW5nIGFuZCByZXN0b3JpbmcgdGhlCiAJICogICAgICAgICAgICAgICAgICAgICAg ICAgICAgaGliZXJuYXRpb24gaW1hZ2UgW1BNU0dfUkVTVE9SRV0KIAkgKi8KLQkuZnJlZXplID0g aTkxNV9wbV9zdXNwZW5kLAorCS5mcmVlemUgPSBpOTE1X3BtX2ZyZWV6ZSwKIAkuZnJlZXplX2xh dGUgPSBpOTE1X3BtX3N1c3BlbmRfbGF0ZSwKIAkudGhhd19lYXJseSA9IGk5MTVfcG1fcmVzdW1l X2Vhcmx5LAogCS50aGF3ID0gaTkxNV9wbV9yZXN1bWUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApp bmRleCA5NDNiMzAxLi4xNmYyZjk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTIxMzcs NiArMjEzNywxMiBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCB7CiAJICogQWR2aWNlOiBh cmUgdGhlIGJhY2tpbmcgcGFnZXMgcHVyZ2VhYmxlPwogCSAqLwogCXVuc2lnbmVkIGludCBtYWR2 OjI7CisJLyoqCisJICogV2hlcmVhcyBtYWR2IGlzIGZvciB1c2Vyc3BhY2UsIHRoZXJlIGFyZSBj ZXJ0YWluIHNpdHVhdGlvbnMKKwkgKiB3aGVyZSB3ZSB3YW50IEk5MTVfTUFEVl9ET05UTkVFRCBi ZWhhdmlvdXIgb24gaW50ZXJuYWwgb2JqZWN0cworCSAqIHdpdGhvdXQgY29uZmxhdGluZyB0aGUg dXNlcnNwYWNlIHNldHRpbmcuCisJICovCisJdW5zaWduZWQgaW50IGludGVybmFsX3ZvbGF0aWxl OjE7CiAKIAkvKioKIAkgKiBDdXJyZW50IHRpbGluZyBtb2RlIGZvciB0aGUgb2JqZWN0LgpAQCAt MzA5Myw2ICszMDk5LDkgQEAgaW50IGk5MTVfZ2VtX2wzX3JlbWFwKHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxLCBpbnQgc2xpY2UpOwogdm9pZCBpOTE1X2dlbV9pbml0X3N3aXp6bGlu ZyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIHZvaWQgaTkxNV9nZW1fY2xlYW51cF9yaW5nYnVm ZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwogaW50IF9fbXVzdF9jaGVjayBpOTE1X2dwdV9p ZGxlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9m cmVlemUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CitpbnQgX19tdXN0X2NoZWNrCitpOTE1X2dl bV9vYmplY3RfbWlncmF0ZV9zdG9sZW5fdG9fc2htZW1mcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqKTsKIGludCBfX211c3RfY2hlY2sgaTkxNV9nZW1fc3VzcGVuZChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KTsKIHZvaWQgX19pOTE1X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxLAogCQkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmJhdGNoX29i aiwKQEAgLTMzMjIsNiArMzMzMSw3IEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuX2Zv cl9wcmVhbGxvY2F0ZWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkJICAgICAgIHUzMiBz dG9sZW5fb2Zmc2V0LAogCQkJCQkgICAgICAgdTMyIGd0dF9vZmZzZXQsCiAJCQkJCSAgICAgICB1 MzIgc2l6ZSk7CitpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX3N0b2xlbl9mcmVlemUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpOwogCiAvKiBpOTE1X2dlbV9zaHJpbmtlci5jICovCiB1 bnNpZ25lZCBsb25nIGk5MTVfZ2VtX3NocmluayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCAwOTM4YWIxLi41ODdiZWVhIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTQ3MjYsMTIgKzQ3MjYsMjcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyBpOTE1X2dlbV9vYmplY3Rfb3BzID0gewog CS5wdXRfcGFnZXMgPSBpOTE1X2dlbV9vYmplY3RfcHV0X3BhZ2VzX2d0dCwKIH07CiAKK3N0YXRp YyBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqCitpOTE1X2dlbV9zZXRfaW5vZGVfZ2ZwKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXN0cnVjdCBhZGRyZXNzX3Nw YWNlICptYXBwaW5nID0gZmlsZV9pbm9kZShmaWxlKS0+aV9tYXBwaW5nOworCWdmcF90IG1hc2s7 CisKKwltYXNrID0gR0ZQX0hJR0hVU0VSIHwgX19HRlBfUkVDTEFJTUFCTEU7CisJaWYgKElTX0NS RVNUTElORShkZXYpIHx8IElTX0JST0FEV0FURVIoZGV2KSkgeworCQkvKiA5NjVnbSBjYW5ub3Qg cmVsb2NhdGUgb2JqZWN0cyBhYm92ZSA0R2lCLiAqLworCQltYXNrICY9IH5fX0dGUF9ISUdITUVN OworCQltYXNrIHw9IF9fR0ZQX0RNQTMyOworCX0KKwltYXBwaW5nX3NldF9nZnBfbWFzayhtYXBw aW5nLCBtYXNrKTsKKworCXJldHVybiBtYXBwaW5nOworfQorCiBzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJ CQkJCQkgIHNpemVfdCBzaXplKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7 Ci0Jc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmc7Ci0JZ2ZwX3QgbWFzazsKIAlpbnQgcmV0 OwogCiAJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2FsbG9jKGRldik7CkBAIC00NzQ0LDE1ICs0NzU5 LDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmk5MTVfZ2VtX2FsbG9jX29iamVjdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCX0KIAotCW1h c2sgPSBHRlBfSElHSFVTRVIgfCBfX0dGUF9SRUNMQUlNQUJMRTsKLQlpZiAoSVNfQ1JFU1RMSU5F KGRldikgfHwgSVNfQlJPQURXQVRFUihkZXYpKSB7Ci0JCS8qIDk2NWdtIGNhbm5vdCByZWxvY2F0 ZSBvYmplY3RzIGFib3ZlIDRHaUIuICovCi0JCW1hc2sgJj0gfl9fR0ZQX0hJR0hNRU07Ci0JCW1h c2sgfD0gX19HRlBfRE1BMzI7Ci0JfQotCi0JbWFwcGluZyA9IGZpbGVfaW5vZGUob2JqLT5iYXNl LmZpbHApLT5pX21hcHBpbmc7Ci0JbWFwcGluZ19zZXRfZ2ZwX21hc2sobWFwcGluZywgbWFzayk7 CisJaTkxNV9nZW1fc2V0X2lub2RlX2dmcChkZXYsIG9iai0+YmFzZS5maWxwKTsKIAogCWk5MTVf Z2VtX29iamVjdF9pbml0KG9iaiwgJmk5MTVfZ2VtX29iamVjdF9vcHMpOwogCkBAIC00OTI3LDYg KzQ5MzQsMTc1IEBAIGk5MTVfZ2VtX3N0b3BfcmluZ2J1ZmZlcnMoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIAkJZGV2X3ByaXYtPmd0LnN0b3BfcmluZyhyaW5nKTsKIH0KIAorc3RhdGljIGludAor Y29weV9jb250ZW50KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCisJCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1LAorCQlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZykK K3sKKwlzdHJ1Y3QgZHJtX21tX25vZGUgbm9kZTsKKwlpbnQgcmV0LCBpOworCisJcmV0ID0gaTkx NV9nZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWluKG9iaiwgZmFsc2UpOworCWlmIChyZXQpCisJ CXJldHVybiByZXQ7CisKKwkvKiBzdG9sZW4gb2JqZWN0cyBhcmUgYWxyZWFkeSBwaW5uZWQgdG8g cHJldmVudCBzaHJpbmthZ2UgKi8KKwltZW1zZXQoJm5vZGUsIDAsIHNpemVvZihub2RlKSk7CisJ cmV0ID0gaW5zZXJ0X21hcHBhYmxlX25vZGUoaTkxNSwgJm5vZGUsIFBBR0VfU0laRSk7CisJaWYg KHJldCkKKwkJcmV0dXJuIHJldDsKKworCWZvciAoaSA9IDA7IGkgPCBvYmotPmJhc2Uuc2l6ZSAv IFBBR0VfU0laRTsgaSsrKSB7CisJCXN0cnVjdCBwYWdlICpwYWdlOworCQl2b2lkICpfX2lvbWVt IHNyYzsKKwkJdm9pZCAqZHN0OworCisJCWk5MTUtPmd0dC5iYXNlLmluc2VydF9wYWdlKCZpOTE1 LT5ndHQuYmFzZSwKKwkJCQkJICAgaTkxNV9nZW1fb2JqZWN0X2dldF9kbWFfYWRkcmVzcyhvYmos IGkpLAorCQkJCQkgICBub2RlLnN0YXJ0LAorCQkJCQkgICBJOTE1X0NBQ0hFX05PTkUsCisJCQkJ CSAgIDApOworCisJCXBhZ2UgPSBzaG1lbV9yZWFkX21hcHBpbmdfcGFnZShtYXBwaW5nLCBpKTsK KwkJaWYgKElTX0VSUihwYWdlKSkgeworCQkJcmV0ID0gUFRSX0VSUihwYWdlKTsKKwkJCWJyZWFr OworCQl9CisKKwkJc3JjID0gaW9fbWFwcGluZ19tYXBfYXRvbWljX3djKGk5MTUtPmd0dC5tYXBw YWJsZSwgbm9kZS5zdGFydCk7CisJCWRzdCA9IGttYXBfYXRvbWljKHBhZ2UpOworCQl3bWIoKTsg LyogZmx1c2ggbW9kaWZpY2F0aW9ucyB0byB0aGUgR0dUVCAoaW5zZXJ0X3BhZ2UpICovCisJCW1l bWNweV9mcm9taW8oZHN0LCBzcmMsIFBBR0VfU0laRSk7CisJCXdtYigpOyAJLyogZmx1c2ggdGhl IHdyaXRlIGJlZm9yZSB3ZSBtb2RpZnkgdGhlIEdHVFQgKi8KKwkJa3VubWFwX2F0b21pYyhkc3Qp OworCQlpb19tYXBwaW5nX3VubWFwX2F0b21pYyhzcmMpOworCisJCXBhZ2VfY2FjaGVfcmVsZWFz ZShwYWdlKTsKKwl9CisKKwlpOTE1LT5ndHQuYmFzZS5jbGVhcl9yYW5nZSgmaTkxNS0+Z3R0LmJh c2UsCisJCQkJICAgbm9kZS5zdGFydCwgbm9kZS5zaXplLAorCQkJCSAgIHRydWUpOworCXJlbW92 ZV9tYXBwYWJsZV9ub2RlKCZub2RlKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0 dXJuIGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fY3B1X2RvbWFpbihvYmosIHRydWUpOworfQorCisv KioKKyAqIGk5MTVfZ2VtX29iamVjdF9taWdyYXRlX3N0b2xlbl90b19zaG1lbWZzKCkgLSBtaWdy YXRlcyBhIHN0b2xlbiBiYWNrZWQKKyAqIG9iamVjdCB0byBzaG1lbWZzCisgKiBAb2JqOiBzdG9s ZW4gYmFja2VkIG9iamVjdCB0byBiZSBtaWdyYXRlZAorICoKKyAqIFJldHVybnM6IDAgb24gc3Vj Y2Vzc2Z1bCBtaWdyYXRpb24sIGVycm5vIG9uIGZhaWx1cmUKKyAqLworCitpbnQKK2k5MTVfZ2Vt X29iamVjdF9taWdyYXRlX3N0b2xlbl90b19zaG1lbWZzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmopCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KG9i ai0+YmFzZS5kZXYpOworCXN0cnVjdCBpOTE1X3ZtYSAqdm1hLCAqdm47CisJc3RydWN0IGZpbGUg KmZpbGU7CisJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmc7CisJc3RydWN0IHNnX3RhYmxl ICpzdG9sZW5fcGFnZXMsICpzaG1lbWZzX3BhZ2VzOworCWludCByZXQ7CisKKwlpZiAoV0FSTl9P Tl9PTkNFKGk5MTVfZ2VtX29iamVjdF9uZWVkc19iaXQxN19zd2l6emxlKG9iaikpKQorCQlyZXR1 cm4gLUVJTlZBTDsKKworCWZpbGUgPSBzaG1lbV9maWxlX3NldHVwKCJkcm0gbW0gb2JqZWN0Iiwg b2JqLT5iYXNlLnNpemUsIFZNX05PUkVTRVJWRSk7CisJaWYgKElTX0VSUihmaWxlKSkKKwkJcmV0 dXJuIFBUUl9FUlIoZmlsZSk7CisJbWFwcGluZyA9IGk5MTVfZ2VtX3NldF9pbm9kZV9nZnAob2Jq LT5iYXNlLmRldiwgZmlsZSk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUodm1hLCB2biwg Jm9iai0+dm1hX2xpc3QsIHZtYV9saW5rKQorCQlpZiAoaTkxNV92bWFfdW5iaW5kKHZtYSkpCisJ CQljb250aW51ZTsKKworCWlmIChvYmotPm1hZHYgIT0gSTkxNV9NQURWX1dJTExORUVEICYmIGxp c3RfZW1wdHkoJm9iai0+dm1hX2xpc3QpKSB7CisJCS8qIERpc2NhcmQgdGhlIHN0b2xlbiByZXNl cnZhdGlvbiwgYW5kIHJlcGxhY2Ugd2l0aAorCQkgKiBhbiB1bnBvcHVsYXRlZCBzaG1lbWZzIG9i amVjdC4KKwkJICovCisJCW9iai0+bWFkdiA9IF9fSTkxNV9NQURWX1BVUkdFRDsKKwkJbGlzdF9k ZWwoJm9iai0+Z2xvYmFsX2xpc3QpOworCX0gZWxzZSB7CisJCXJldCA9IGNvcHlfY29udGVudChv YmosIGk5MTUsIG1hcHBpbmcpOworCQlpZiAocmV0KQorCQkJZ290byBlcnJfZmlsZTsKKwl9CisK KwlzdG9sZW5fcGFnZXMgPSBvYmotPnBhZ2VzOworCW9iai0+cGFnZXMgPSBOVUxMOworCisJb2Jq LT5iYXNlLmZpbHAgPSBmaWxlOworCisJLyogUmVjcmVhdGUgYW55IHBpbm5lZCBiaW5kaW5nIHdp dGggcG9pbnRlcnMgdG8gdGhlIG5ldyBzdG9yYWdlICovCisJaWYgKCFsaXN0X2VtcHR5KCZvYmot PnZtYV9saXN0KSkgeworCQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX2d0dChvYmop OworCQlpZiAocmV0KSB7CisJCQlvYmotPnBhZ2VzID0gc3RvbGVuX3BhZ2VzOworCQkJZ290byBl cnJfZmlsZTsKKwkJfQorCisJCW9iai0+Z2V0X3BhZ2Uuc2cgPSBvYmotPnBhZ2VzLT5zZ2w7CisJ CW9iai0+Z2V0X3BhZ2UubGFzdCA9IDA7CisKKwkJbGlzdF9mb3JfZWFjaF9lbnRyeSh2bWEsICZv YmotPnZtYV9saXN0LCB2bWFfbGluaykgeworCQkJaWYgKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQo JnZtYS0+bm9kZSkpCisJCQkJY29udGludWU7CisKKwkJCS8qIEFzIHZtYSBpcyBhbHJlYWR5IGFs bG9jYXRlZCBhbmQgb25seSB0aGUgUFRFcworCQkJICogaGF2ZSB0byBiZSByZXByb2dyYW1tZWQs IG1ha2VzIHRoaXMgdm1hX2JpbmQKKwkJCSAqIGNhbGwgZXh0cmVtZWx5IHVubGlrZWx5IHRvIGZh aWwuCisJCQkgKi8KKwkJCUJVR19PTihpOTE1X3ZtYV9iaW5kKHZtYSwKKwkJCQkJICAgICAgb2Jq LT5jYWNoZV9sZXZlbCwKKwkJCQkJICAgICAgUElOX1VQREFURSkpOworCQl9CisJfQorCisJLyog ZHJvcCB0aGUgc3RvbGVuIHBpbiBhbmQgYmFja2luZyAqLworCXNobWVtZnNfcGFnZXMgPSBvYmot PnBhZ2VzOworCW9iai0+cGFnZXMgPSBzdG9sZW5fcGFnZXM7CisKKwlpOTE1X2dlbV9vYmplY3Rf dW5waW5fcGFnZXMob2JqKTsKKwlvYmotPm9wcy0+cHV0X3BhZ2VzKG9iaik7CisJaWYgKG9iai0+ b3BzLT5yZWxlYXNlKQorCQlvYmotPm9wcy0+cmVsZWFzZShvYmopOworCisJb2JqLT5vcHMgPSAm aTkxNV9nZW1fb2JqZWN0X29wczsKKwlvYmotPnBhZ2VzID0gc2htZW1mc19wYWdlczsKKworCXJl dHVybiAwOworCitlcnJfZmlsZToKKwlmcHV0KGZpbGUpOworCW9iai0+YmFzZS5maWxwID0gTlVM TDsKKwlyZXR1cm4gcmV0OworfQorCitpbnQKK2k5MTVfZ2VtX2ZyZWV6ZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQoreworCS8qIENhbGxlZCBiZWZvcmUgaTkxNV9nZW1fc3VzcGVuZCgpIHdoZW4g aGliZXJuYXRpbmcgKi8KKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUo ZGV2KTsKKwlpbnQgcmV0OworCisJcmV0ID0gaTkxNV9tdXRleF9sb2NrX2ludGVycnVwdGlibGUo ZGV2KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJLyogQWNyb3NzIGhpYmVybmF0aW9u LCB0aGUgc3RvbGVuIGFyZWEgaXMgbm90IHByZXNlcnZlZC4KKwkgKiBBbnl0aGluZyBpbnNpZGUg c3RvbGVuIG11c3QgY29waWVkIGJhY2sgdG8gbm9ybWFsCisJICogbWVtb3J5IGlmIHdlIHdpc2gg dG8gcHJlc2VydmUgaXQuCisJICovCisJcmV0ID0gaTkxNV9nZW1fc3RvbGVuX2ZyZWV6ZShpOTE1 KTsKKworCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOworCXJldHVybiByZXQ7Cit9 CisKIGludAogaTkxNV9nZW1fc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYwppbmRleCA2NTVlYjE1Li4zMzVhMWVmIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYwpAQCAtODQwLDMgKzg0MCw1MiBA QCBlcnI6CiAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJm9iai0+YmFzZSk7CiAJcmV0dXJu IEVSUl9QVFIocmV0KTsKIH0KKworaW50IGk5MTVfZ2VtX3N0b2xlbl9mcmVlemUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiwgKnRtcDsKKwlzdHJ1Y3QgbGlzdF9oZWFkICpwaGFzZVtdID0geworCQkmaTkxNS0+bW0udW5i b3VuZF9saXN0LCAmaTkxNS0+bW0uYm91bmRfbGlzdCwgTlVMTAorCX0sICoqcDsKKwlpbnQgcmV0 ID0gMDsKKworCWZvciAocCA9IHBoYXNlOyAqcDsgcCsrKSB7CisJCXN0cnVjdCBsaXN0X2hlYWQg bWlncmF0ZTsKKwkJaW50IHJldDsKKworCQlJTklUX0xJU1RfSEVBRCgmbWlncmF0ZSk7CisJCWxp c3RfZm9yX2VhY2hfZW50cnlfc2FmZShvYmosIHRtcCwgKnAsIGdsb2JhbF9saXN0KSB7CisJCQlp ZiAob2JqLT5zdG9sZW4gPT0gTlVMTCkKKwkJCQljb250aW51ZTsKKworCQkJaWYgKG9iai0+aW50 ZXJuYWxfdm9sYXRpbGUpCisJCQkJY29udGludWU7CisKKwkJCS8qIEluIHRoZSBnZW5lcmFsIGNh c2UsIHRoaXMgb2JqZWN0IG1heSBvbmx5IGJlIGFsaXZlCisJCQkgKiBkdWUgdG8gYW4gYWN0aXZl IHJlZmVyZW5jZSwgYW5kIHRoYXQgbWF5IGRpc2FwcGVhcgorCQkJICogd2hlbiB3ZSB1bmJpbmQg YW55IG9mIHRoZSBvYmplY3RzIChhbmQgc28gd2FpdCB1cG9uCisJCQkgKiB0aGUgR1BVIGFuZCBy ZXRpcmUgcmVxdWVzdHMpLiBUbyBwcmV2ZW50IG9uZSBvZiB0aGUKKwkJCSAqIG9iamVjdHMgZnJv bSBkaXNhcHBlYXJpbmcgYmVuZWF0aCB1cywgd2UgbmVlZCB0bworCQkJICogdGFrZSBhIHJlZmVy ZW5jZSB0byBlYWNoIGFzIHdlIGJ1aWxkIHRoZSBtaWdyYXRpb24KKwkJCSAqIGxpc3QuCisJCQkg KgorCQkJICogVGhpcyBpcyBzaW1pbGFyIHRvIHRoZSBzdHJhdGVneSByZXF1aXJlZCB3aGlsc3QK KwkJCSAqIHNocmlua2luZyBvciBldmljdGluZyBvYmplY3RzIChmb3IgdGhlIHNhbWUgcmVhc29u KS4KKwkJCSAqLworCQkJZHJtX2dlbV9vYmplY3RfcmVmZXJlbmNlKCZvYmotPmJhc2UpOworCQkJ bGlzdF9tb3ZlKCZvYmotPmdsb2JhbF9saXN0LCAmbWlncmF0ZSk7CisJCX0KKworCQlyZXQgPSAw OworCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUob2JqLCB0bXAsICZtaWdyYXRlLCBnbG9iYWxf bGlzdCkgeworCQkJaWYgKHJldCA9PSAwKQorCQkJCXJldCA9IGk5MTVfZ2VtX29iamVjdF9taWdy YXRlX3N0b2xlbl90b19zaG1lbWZzKG9iaik7CisJCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5j ZSgmb2JqLT5iYXNlKTsKKwkJfQorCQlsaXN0X3NwbGljZSgmbWlncmF0ZSwgKnApOworCQlpZiAo cmV0KQorCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJldDsKK30KZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwppbmRleCAzMGJiNGNjLi5hZDlkYmYwIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCkBAIC0yNTU4LDYgKzI1NTgsOSBAQCBpbnRlbF9hbGxvY19pbml0aWFs X3BsYW5lX29iaihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAlpZiAoSVNfRVJSKG9iaikpCiAJ CXJldHVybiBmYWxzZTsKIAorCS8qIE5vdCB0byBiZSBwcmVzZXJ2ZWQgYWNyb3NzIGhpYmVybmF0 aW9uICovCisJb2JqLT5pbnRlcm5hbF92b2xhdGlsZSA9IHRydWU7CisKIAlvYmotPnRpbGluZ19t b2RlID0gcGxhbmVfY29uZmlnLT50aWxpbmc7CiAJaWYgKG9iai0+dGlsaW5nX21vZGUgPT0gSTkx NV9USUxJTkdfWCkKIAkJb2JqLT5zdHJpZGUgPSBmYi0+cGl0Y2hlc1swXTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9mYmRldi5jCmluZGV4IDFjODk3Y2IuLmM4YWZmZmYgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZmJkZXYuYwpAQCAtMTU2LDYgKzE1NiwxMiBAQCBzdGF0aWMgaW50IGludGVsZmJfYWxs b2Moc3RydWN0IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKIAkJZ290byBvdXQ7CiAJfQogCisJLyog RGlzY2FyZCB0aGUgY29udGVudHMgb2YgdGhlIEJJT1MgZmIgYWNyb3NzIGhpYmVybmF0aW9uLgor CSAqIFdlIHJlYWxseSB3YW50IHRvIGNvbXBsZXRlbHkgdGhyb3dhd2F5IHRoZSBlYXJsaWVyIGZi ZGV2CisJICogYW5kIHJlY29uZmlndXJlIGl0IGFueXdheS4KKwkgKi8KKwlvYmotPmludGVybmFs X3ZvbGF0aWxlID0gdHJ1ZTsKKwogCWZiID0gX19pbnRlbF9mcmFtZWJ1ZmZlcl9jcmVhdGUoZGV2 LCAmbW9kZV9jbWQsIG9iaik7CiAJaWYgKElTX0VSUihmYikpIHsKIAkJZHJtX2dlbV9vYmplY3Rf dW5yZWZlcmVuY2UoJm9iai0+YmFzZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwppbmRleCAyY2Fi NGFmLi5lNDNiODk0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAgLTUyMzYsNiArNTIzNiw4 IEBAIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfc2V0dXBfcGN0eChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQogCUk5MTVfV1JJVEUoVkxWX1BDQlIsIHBjdHhfcGFkZHIpOwogCiBvdXQ6CisJLyogVGhl IHBvd2VyIGNvbnRleHQgbmVlZCBub3QgYmUgcHJlc2VydmVkIGFjcm9zcyBoaWJlcm5hdGlvbiAq LworCXBjdHgtPmludGVybmFsX3ZvbGF0aWxlID0gdHJ1ZTsKIAlEUk1fREVCVUdfRFJJVkVSKCJQ Q0JSOiAweCUwOHhcbiIsIEk5MTVfUkVBRChWTFZfUENCUikpOwogCWRldl9wcml2LT52bHZfcGN0 eCA9IHBjdHg7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKaW5kZXgg MDE0NjQzOC4uZGQxODY5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu YwpAQCAtMjE1Miw2ICsyMTUyLDEyIEBAIHN0YXRpYyBpbnQgaW50ZWxfYWxsb2NfcmluZ2J1ZmZl cl9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAoSVNfRVJSKG9iaikpCiAJCXJldHVy biBQVFJfRVJSKG9iaik7CiAKKwkvKiBSaW5nYnVmZmVyIG9iamVjdHMgYXJlIGJ5IGRlZmluaXRp b24gdm9sYXRpbGUgLSBvbmx5IHRoZSBjb21tYW5kcworCSAqIGJldHdlZW4gSEVBRCBhbmQgVEFJ TCBuZWVkIHRvIGJlIHByZXNlcnZlZCBhbmQgd2hpbHN0IHRoZXJlIGFyZQorCSAqIGFueSBjb21t YW5kcyB0aGVyZSwgdGhlIHJpbmdidWZmZXIgaXMgcGlubmVkIGJ5IGFjdGl2aXR5LgorCSAqLwor CW9iai0+aW50ZXJuYWxfdm9sYXRpbGUgPSB0cnVlOworCiAJLyogbWFyayByaW5nIGJ1ZmZlcnMg YXMgcmVhZC1vbmx5IGZyb20gR1BVIHNpZGUgYnkgZGVmYXVsdCAqLwogCW9iai0+Z3Rfcm8gPSAx OwogCi0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==