From mboxrd@z Thu Jan 1 00:00:00 1970 From: ankitprasad.r.sharma@intel.com Subject: [PATCH 6/6] drm/i915: Migrate stolen objects before hibernation Date: Wed, 9 Dec 2015 18:16:22 +0530 Message-ID: <1449665182-10054-7-git-send-email-ankitprasad.r.sharma@intel.com> References: <1449665182-10054-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 mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 8E49E6E057 for ; Wed, 9 Dec 2015 05:05:59 -0800 (PST) In-Reply-To: <1449665182-10054-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: Ankitprasad Sharma , akash.goel@intel.com, 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 IHdoaWxlIGNvcHlpbmcgc3RvbGVuIGJ1ZmZlciBvYmplY3RzIHRvIHNobWVtIChDaHJpcykKClNp Z25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXMgYXQgY2hyaXMtd2lsc29uLmNvLnVrPgpT aWduZWQtb2ZmLWJ5OiBBbmtpdHByYXNhZCBTaGFybWEgPGFua2l0cHJhc2FkLnIuc2hhcm1hQGlu dGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgfCAg MTcgKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgfCAgIDcgKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgIHwgMjMyICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMgICAgfCAgIDMgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYyAgICAgIHwg ICA2ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgICAgICAgICB8ICAgMiArCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgfCAgIDYgKwogNyBmaWxlcyBj aGFuZ2VkLCAyNjEgaW5zZXJ0aW9ucygrKSwgMTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmMKaW5kZXggOWY1NTIwOS4uMmJiOWU5ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5j CkBAIC0xMDM2LDYgKzEwMzYsMjEgQEAgc3RhdGljIGludCBpOTE1X3BtX3N1c3BlbmQoc3RydWN0 IGRldmljZSAqZGV2KQogCXJldHVybiBpOTE1X2RybV9zdXNwZW5kKGRybV9kZXYpOwogfQogCitz dGF0aWMgaW50IGk5MTVfcG1fZnJlZXplKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlpbnQgcmV0 OworCisJcmV0ID0gaTkxNV9nZW1fZnJlZXplKHBjaV9nZXRfZHJ2ZGF0YSh0b19wY2lfZGV2KGRl dikpKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gaTkxNV9wbV9zdXNwZW5k KGRldik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiAwOworfQorCiBzdGF0 aWMgaW50IGk5MTVfcG1fc3VzcGVuZF9sYXRlKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKIAlzdHJ1 Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IGRldl90b19pOTE1KGRldiktPmRldjsKQEAgLTE3MDAs NyArMTcxNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBpOTE1X3BtX29wcyA9 IHsKIAkgKiBAcmVzdG9yZSwgQHJlc3RvcmVfZWFybHkgOiBjYWxsZWQgYWZ0ZXIgcmVib290aW5n IGFuZCByZXN0b3JpbmcgdGhlCiAJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgaGliZXJu YXRpb24gaW1hZ2UgW1BNU0dfUkVTVE9SRV0KIAkgKi8KLQkuZnJlZXplID0gaTkxNV9wbV9zdXNw ZW5kLAorCS5mcmVlemUgPSBpOTE1X3BtX2ZyZWV6ZSwKIAkuZnJlZXplX2xhdGUgPSBpOTE1X3Bt X3N1c3BlbmRfbGF0ZSwKIAkudGhhd19lYXJseSA9IGk5MTVfcG1fcmVzdW1lX2Vhcmx5LAogCS50 aGF3ID0gaTkxNV9wbV9yZXN1bWUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCBlMGIwOWIw Li4wZDE4YjA3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTIwODAsNiArMjA4MCwxMiBA QCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCB7CiAJICogQWR2aWNlOiBhcmUgdGhlIGJhY2tp bmcgcGFnZXMgcHVyZ2VhYmxlPwogCSAqLwogCXVuc2lnbmVkIGludCBtYWR2OjI7CisJLyoqCisJ ICogV2hlcmVhcyBtYWR2IGlzIGZvciB1c2Vyc3BhY2UsIHRoZXJlIGFyZSBjZXJ0YWluIHNpdHVh dGlvbnMKKwkgKiB3aGVyZSB3ZSB3YW50IEk5MTVfTUFEVl9ET05UTkVFRCBiZWhhdmlvdXIgb24g aW50ZXJuYWwgb2JqZWN0cworCSAqIHdpdGhvdXQgY29uZmxhdGluZyB0aGUgdXNlcnNwYWNlIHNl dHRpbmcuCisJICovCisJdW5zaWduZWQgaW50IGludGVybmFsX3ZvbGF0aWxlOjE7CiAKIAkvKioK IAkgKiBDdXJyZW50IHRpbGluZyBtb2RlIGZvciB0aGUgb2JqZWN0LgpAQCAtMzAwNiw2ICszMDEy LDcgQEAgaW50IGk5MTVfZ2VtX2wzX3JlbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxLCBpbnQgc2xpY2UpOwogdm9pZCBpOTE1X2dlbV9pbml0X3N3aXp6bGluZyhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KTsKIHZvaWQgaTkxNV9nZW1fY2xlYW51cF9yaW5nYnVmZmVyKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpOwogaW50IF9fbXVzdF9jaGVjayBpOTE1X2dwdV9pZGxlKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpOworaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9mcmVlemUoc3RydWN0 IGRybV9kZXZpY2UgKmRldik7CiBpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX3N1c3BlbmQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIF9faTkxNV9hZGRfcmVxdWVzdChzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpi YXRjaF9vYmosCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCA2OGVkNjdhLi4xZjEzNGIwIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTQ1MTEsMTIgKzQ1MTEsMjcgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyBpOTE1X2dlbV9vYmplY3Rfb3BzID0g ewogCS5wdXRfcGFnZXMgPSBpOTE1X2dlbV9vYmplY3RfcHV0X3BhZ2VzX2d0dCwKIH07CiAKK3N0 YXRpYyBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqCitpOTE1X2dlbV9zZXRfaW5vZGVfZ2ZwKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXN0cnVjdCBhZGRyZXNz X3NwYWNlICptYXBwaW5nID0gZmlsZV9pbm9kZShmaWxlKS0+aV9tYXBwaW5nOworCWdmcF90IG1h c2s7CisKKwltYXNrID0gR0ZQX0hJR0hVU0VSIHwgX19HRlBfUkVDTEFJTUFCTEU7CisJaWYgKElT X0NSRVNUTElORShkZXYpIHx8IElTX0JST0FEV0FURVIoZGV2KSkgeworCQkvKiA5NjVnbSBjYW5u b3QgcmVsb2NhdGUgb2JqZWN0cyBhYm92ZSA0R2lCLiAqLworCQltYXNrICY9IH5fX0dGUF9ISUdI TUVNOworCQltYXNrIHw9IF9fR0ZQX0RNQTMyOworCX0KKwltYXBwaW5nX3NldF9nZnBfbWFzayht YXBwaW5nLCBtYXNrKTsKKworCXJldHVybiBtYXBwaW5nOworfQorCiBzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs CiAJCQkJCQkgIHNpemVfdCBzaXplKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv Ymo7Ci0Jc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmc7Ci0JZ2ZwX3QgbWFzazsKIAlpbnQg cmV0OwogCiAJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2FsbG9jKGRldik7CkBAIC00NTI5LDE1ICs0 NTQ0LDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmk5MTVfZ2VtX2FsbG9jX29iamVj dChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlyZXR1cm4gRVJSX1BUUihyZXQpOwogCX0KIAot CW1hc2sgPSBHRlBfSElHSFVTRVIgfCBfX0dGUF9SRUNMQUlNQUJMRTsKLQlpZiAoSVNfQ1JFU1RM SU5FKGRldikgfHwgSVNfQlJPQURXQVRFUihkZXYpKSB7Ci0JCS8qIDk2NWdtIGNhbm5vdCByZWxv Y2F0ZSBvYmplY3RzIGFib3ZlIDRHaUIuICovCi0JCW1hc2sgJj0gfl9fR0ZQX0hJR0hNRU07Ci0J CW1hc2sgfD0gX19HRlBfRE1BMzI7Ci0JfQotCi0JbWFwcGluZyA9IGZpbGVfaW5vZGUob2JqLT5i YXNlLmZpbHApLT5pX21hcHBpbmc7Ci0JbWFwcGluZ19zZXRfZ2ZwX21hc2sobWFwcGluZywgbWFz ayk7CisJaTkxNV9nZW1fc2V0X2lub2RlX2dmcChkZXYsIG9iai0+YmFzZS5maWxwKTsKIAogCWk5 MTVfZ2VtX29iamVjdF9pbml0KG9iaiwgJmk5MTVfZ2VtX29iamVjdF9vcHMpOwogCkBAIC00NzE0 LDYgKzQ3MjEsMjA5IEBAIGk5MTVfZ2VtX3N0b3BfcmluZ2J1ZmZlcnMoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKIAkJZGV2X3ByaXYtPmd0LnN0b3BfcmluZyhyaW5nKTsKIH0KIAorc3RhdGljIGlu dAoraTkxNV9nZW1fb2JqZWN0X21pZ3JhdGVfc3RvbGVuX3RvX3NobWVtZnMoc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9 IHRvX2k5MTUob2JqLT5iYXNlLmRldik7CisJc3RydWN0IGk5MTVfdm1hICp2bWEsICp2bjsKKwlz dHJ1Y3QgZHJtX21tX25vZGUgbm9kZTsKKwlzdHJ1Y3QgZmlsZSAqZmlsZTsKKwlzdHJ1Y3QgYWRk cmVzc19zcGFjZSAqbWFwcGluZzsKKwlzdHJ1Y3Qgc2dfdGFibGUgKnN0b2xlbl9wYWdlcywgKnNo bWVtZnNfcGFnZXM7CisJaW50IHJldCwgaTsKKworCWlmIChXQVJOX09OKGk5MTVfZ2VtX29iamVj dF9uZWVkc19iaXQxN19zd2l6emxlKG9iaikpKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldCA9 IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0X2RvbWFpbihvYmosIGZhbHNlKTsKKwlpZiAocmV0 KQorCQlyZXR1cm4gcmV0OworCisJZmlsZSA9IHNobWVtX2ZpbGVfc2V0dXAoImRybSBtbSBvYmpl Y3QiLCBvYmotPmJhc2Uuc2l6ZSwgVk1fTk9SRVNFUlZFKTsKKwlpZiAoSVNfRVJSKGZpbGUpKQor CQlyZXR1cm4gUFRSX0VSUihmaWxlKTsKKwltYXBwaW5nID0gaTkxNV9nZW1fc2V0X2lub2RlX2dm cChvYmotPmJhc2UuZGV2LCBmaWxlKTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh2bWEs IHZuLCAmb2JqLT52bWFfbGlzdCwgdm1hX2xpbmspCisJCWlmIChpOTE1X3ZtYV91bmJpbmQodm1h KSkKKwkJCWNvbnRpbnVlOworCisJaWYgKG9iai0+bWFkdiAhPSBJOTE1X01BRFZfV0lMTE5FRUQg JiYgbGlzdF9lbXB0eSgmb2JqLT52bWFfbGlzdCkpIHsKKwkJLyogRGlzY2FyZCB0aGUgc3RvbGVu IHJlc2VydmF0aW9uLCBhbmQgcmVwbGFjZSB3aXRoCisJCSAqIGFuIHVucG9wdWxhdGVkIHNobWVt ZnMgb2JqZWN0LgorCQkgKi8KKwkJb2JqLT5tYWR2ID0gX19JOTE1X01BRFZfUFVSR0VEOworCQln b3RvIHN3YXBfcGFnZXM7CisJfQorCisJLyogc3RvbGVuIG9iamVjdHMgYXJlIGFscmVhZHkgcGlu bmVkIHRvIHByZXZlbnQgc2hyaW5rYWdlICovCisJbWVtc2V0KCZub2RlLCAwLCBzaXplb2Yobm9k ZSkpOworCXJldCA9IGRybV9tbV9pbnNlcnRfbm9kZV9pbl9yYW5nZV9nZW5lcmljKCZpOTE1LT5n dHQuYmFzZS5tbSwKKwkJCQkJCSAgJm5vZGUsCisJCQkJCQkgIDQwOTYsIDAsIEk5MTVfQ0FDSEVf Tk9ORSwKKwkJCQkJCSAgMCwgaTkxNS0+Z3R0Lm1hcHBhYmxlX2VuZCwKKwkJCQkJCSAgRFJNX01N X1NFQVJDSF9ERUZBVUxULAorCQkJCQkJICBEUk1fTU1fQ1JFQVRFX0RFRkFVTFQpOworCWlmIChy ZXQpCisJCXJldHVybiByZXQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgb2JqLT5iYXNlLnNpemUgLyBQ QUdFX1NJWkU7IGkrKykgeworCQlzdHJ1Y3QgcGFnZSAqcGFnZTsKKwkJdm9pZCAqX19pb21lbSBz cmM7CisJCXZvaWQgKmRzdDsKKworCQl3bWIoKTsKKwkJaTkxNS0+Z3R0LmJhc2UuaW5zZXJ0X3Bh Z2UoJmk5MTUtPmd0dC5iYXNlLAorCQkJCQkgICBpOTE1X2dlbV9vYmplY3RfZ2V0X2RtYV9hZGRy ZXNzKG9iaiwgaSksCisJCQkJCSAgIG5vZGUuc3RhcnQsCisJCQkJCSAgIEk5MTVfQ0FDSEVfTk9O RSwKKwkJCQkJICAgMCk7CisJCXdtYigpOworCisJCXBhZ2UgPSBzaG1lbV9yZWFkX21hcHBpbmdf cGFnZShtYXBwaW5nLCBpKTsKKwkJaWYgKElTX0VSUihwYWdlKSkgeworCQkJcmV0ID0gUFRSX0VS UihwYWdlKTsKKwkJCWdvdG8gZXJyX25vZGU7CisJCX0KKworCQlzcmMgPSBpb19tYXBwaW5nX21h cF9hdG9taWNfd2MoaTkxNS0+Z3R0Lm1hcHBhYmxlLCBub2RlLnN0YXJ0ICsgUEFHRV9TSVpFICog aSk7CisJCWRzdCA9IGttYXBfYXRvbWljKHBhZ2UpOworCQltZW1jcHlfZnJvbWlvKGRzdCwgc3Jj LCBQQUdFX1NJWkUpOworCQlrdW5tYXBfYXRvbWljKGRzdCk7CisJCWlvX21hcHBpbmdfdW5tYXBf YXRvbWljKHNyYyk7CisKKwkJcGFnZV9jYWNoZV9yZWxlYXNlKHBhZ2UpOworCX0KKworCXdtYigp OworCWk5MTUtPmd0dC5iYXNlLmNsZWFyX3JhbmdlKCZpOTE1LT5ndHQuYmFzZSwKKwkJCQkgICBu b2RlLnN0YXJ0LCBub2RlLnNpemUsCisJCQkJICAgdHJ1ZSk7CisJZHJtX21tX3JlbW92ZV9ub2Rl KCZub2RlKTsKKworc3dhcF9wYWdlczoKKwlzdG9sZW5fcGFnZXMgPSBvYmotPnBhZ2VzOworCW9i ai0+cGFnZXMgPSBOVUxMOworCisJb2JqLT5iYXNlLmZpbHAgPSBmaWxlOworCW9iai0+YmFzZS5y ZWFkX2RvbWFpbnMgPSBJOTE1X0dFTV9ET01BSU5fQ1BVOworCW9iai0+YmFzZS53cml0ZV9kb21h aW4gPSBJOTE1X0dFTV9ET01BSU5fQ1BVOworCisJLyogUmVjcmVhdGUgYW55IHBpbm5lZCBiaW5k aW5nIHdpdGggcG9pbnRlcnMgdG8gdGhlIG5ldyBzdG9yYWdlICovCisJaWYgKCFsaXN0X2VtcHR5 KCZvYmotPnZtYV9saXN0KSkgeworCQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX2d0 dChvYmopOworCQlpZiAocmV0KSB7CisJCQlvYmotPnBhZ2VzID0gc3RvbGVuX3BhZ2VzOworCQkJ Z290byBlcnJfZmlsZTsKKwkJfQorCisJCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0 X2RvbWFpbihvYmosIHRydWUpOworCQlpZiAocmV0KSB7CisJCQlpOTE1X2dlbV9vYmplY3RfcHV0 X3BhZ2VzX2d0dChvYmopOworCQkJb2JqLT5wYWdlcyA9IHN0b2xlbl9wYWdlczsKKwkJCWdvdG8g ZXJyX2ZpbGU7CisJCX0KKworCQlvYmotPmdldF9wYWdlLnNnID0gb2JqLT5wYWdlcy0+c2dsOwor CQlvYmotPmdldF9wYWdlLmxhc3QgPSAwOworCisJCWxpc3RfZm9yX2VhY2hfZW50cnkodm1hLCAm b2JqLT52bWFfbGlzdCwgdm1hX2xpbmspIHsKKwkJCWlmICghZHJtX21tX25vZGVfYWxsb2NhdGVk KCZ2bWEtPm5vZGUpKQorCQkJCWNvbnRpbnVlOworCisJCQlXQVJOX09OKGk5MTVfdm1hX2JpbmQo dm1hLAorCQkJCQkgICAgICBvYmotPmNhY2hlX2xldmVsLAorCQkJCQkgICAgICBQSU5fVVBEQVRF KSk7CisJCX0KKwl9IGVsc2UKKwkJbGlzdF9kZWwoJm9iai0+Z2xvYmFsX2xpc3QpOworCisJLyog ZHJvcCB0aGUgc3RvbGVuIHBpbiBhbmQgYmFja2luZyAqLworCXNobWVtZnNfcGFnZXMgPSBvYmot PnBhZ2VzOworCW9iai0+cGFnZXMgPSBzdG9sZW5fcGFnZXM7CisKKwlpOTE1X2dlbV9vYmplY3Rf dW5waW5fcGFnZXMob2JqKTsKKwlvYmotPm9wcy0+cHV0X3BhZ2VzKG9iaik7CisJaWYgKG9iai0+ b3BzLT5yZWxlYXNlKQorCQlvYmotPm9wcy0+cmVsZWFzZShvYmopOworCisJb2JqLT5vcHMgPSAm aTkxNV9nZW1fb2JqZWN0X29wczsKKwlvYmotPnBhZ2VzID0gc2htZW1mc19wYWdlczsKKworCXJl dHVybiAwOworCitlcnJfbm9kZToKKwl3bWIoKTsKKwlpOTE1LT5ndHQuYmFzZS5jbGVhcl9yYW5n ZSgmaTkxNS0+Z3R0LmJhc2UsCisJCQkJICAgbm9kZS5zdGFydCwgbm9kZS5zaXplLAorCQkJCSAg IHRydWUpOworCWRybV9tbV9yZW1vdmVfbm9kZSgmbm9kZSk7CitlcnJfZmlsZToKKwlmcHV0KGZp bGUpOworCW9iai0+YmFzZS5maWxwID0gTlVMTDsKKwlyZXR1cm4gcmV0OworfQorCitpbnQKK2k5 MTVfZ2VtX2ZyZWV6ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCS8qIENhbGxlZCBiZWZv cmUgaTkxNV9nZW1fc3VzcGVuZCgpIHdoZW4gaGliZXJuYXRpbmcgKi8KKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqLCAqdG1wOworCXN0cnVjdCBsaXN0X2hlYWQgKnBoYXNlW10gPSB7CisJCSZpOTE1 LT5tbS51bmJvdW5kX2xpc3QsICZpOTE1LT5tbS5ib3VuZF9saXN0LCBOVUxMCisJfSwgKipwOwor CWludCByZXQ7CisKKwlyZXQgPSBpOTE1X211dGV4X2xvY2tfaW50ZXJydXB0aWJsZShkZXYpOwor CWlmIChyZXQpCisJCXJldHVybiByZXQ7CisJLyogQWNyb3NzIGhpYmVybmF0aW9uLCB0aGUgc3Rv bGVuIGFyZWEgaXMgbm90IHByZXNlcnZlZC4KKwkgKiBBbnl0aGluZyBpbnNpZGUgc3RvbGVuIG11 c3QgY29waWVkIGJhY2sgdG8gbm9ybWFsCisJICogbWVtb3J5IGlmIHdlIHdpc2ggdG8gcHJlc2Vy dmUgaXQuCisJICovCisJZm9yIChwID0gcGhhc2U7ICpwOyBwKyspIHsKKwkJc3RydWN0IGxpc3Rf aGVhZCBtaWdyYXRlOworCQlpbnQgcmV0OworCisJCUlOSVRfTElTVF9IRUFEKCZtaWdyYXRlKTsK KwkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKG9iaiwgdG1wLCAqcCwgZ2xvYmFsX2xpc3QpIHsK KwkJCWlmIChvYmotPnN0b2xlbiA9PSBOVUxMKQorCQkJCWNvbnRpbnVlOworCisJCQlpZiAob2Jq LT5pbnRlcm5hbF92b2xhdGlsZSkKKwkJCQljb250aW51ZTsKKworCQkJLyogSW4gdGhlIGdlbmVy YWwgY2FzZSwgdGhpcyBvYmplY3QgbWF5IG9ubHkgYmUgYWxpdmUKKwkJCSAqIGR1ZSB0byBhbiBh Y3RpdmUgcmVmZXJlbmNlLCBhbmQgdGhhdCBtYXkgZGlzYXBwZWFyCisJCQkgKiB3aGVuIHdlIHVu YmluZCBhbnkgb2YgdGhlIG9iamVjdHMgKGFuZCBzbyB3YWl0IHVwb24KKwkJCSAqIHRoZSBHUFUg YW5kIHJldGlyZSByZXF1ZXN0cykuIFRvIHByZXZlbnQgb25lIG9mIHRoZQorCQkJICogb2JqZWN0 cyBmcm9tIGRpc2FwcGVhcmluZyBiZW5lYXRoIHVzLCB3ZSBuZWVkIHRvCisJCQkgKiB0YWtlIGEg cmVmZXJlbmNlIHRvIGVhY2ggYXMgd2UgYnVpbGQgdGhlIG1pZ3JhdGlvbgorCQkJICogbGlzdC4K KwkJCSAqCisJCQkgKiBUaGlzIGlzIHNpbWlsYXIgdG8gdGhlIHN0cmF0ZWd5IHJlcXVpcmVkIHdo aWxzdAorCQkJICogc2hyaW5raW5nIG9yIGV2aWN0aW5nIG9iamVjdHMgKGZvciB0aGUgc2FtZSBy ZWFzb24pLgorCQkJICovCisJCQlkcm1fZ2VtX29iamVjdF9yZWZlcmVuY2UoJm9iai0+YmFzZSk7 CisJCQlsaXN0X21vdmUoJm9iai0+Z2xvYmFsX2xpc3QsICZtaWdyYXRlKTsKKwkJfQorCisJCXJl dCA9IDA7CisJCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShvYmosIHRtcCwgJm1pZ3JhdGUsIGds b2JhbF9saXN0KSB7CisJCQlpZiAocmV0ID09IDApCisJCQkJcmV0ID0gaTkxNV9nZW1fb2JqZWN0 X21pZ3JhdGVfc3RvbGVuX3RvX3NobWVtZnMob2JqKTsKKwkJCWRybV9nZW1fb2JqZWN0X3VucmVm ZXJlbmNlKCZvYmotPmJhc2UpOworCQl9CisJCWxpc3Rfc3BsaWNlKCZtaWdyYXRlLCAqcCk7CisJ CWlmIChyZXQpCisJCQlicmVhazsKKwl9CisKKwltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211 dGV4KTsKKwlyZXR1cm4gcmV0OworfQorCiBpbnQKIGk5MTVfZ2VtX3N1c3BlbmQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBm MjgxZTBiLi4wODAzOTIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0y NTQ5LDYgKzI1NDksOSBAQCBpbnRlbF9hbGxvY19pbml0aWFsX3BsYW5lX29iaihzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKIAlpZiAoSVNfRVJSKG9iaikpCiAJCXJldHVybiBmYWxzZTsKIAorCS8q IE5vdCB0byBiZSBwcmVzZXJ2ZWQgYWNyb3NzIGhpYmVybmF0aW9uICovCisJb2JqLT5pbnRlcm5h bF92b2xhdGlsZSA9IHRydWU7CisKIAlvYmotPnRpbGluZ19tb2RlID0gcGxhbmVfY29uZmlnLT50 aWxpbmc7CiAJaWYgKG9iai0+dGlsaW5nX21vZGUgPT0gSTkxNV9USUxJTkdfWCkKIAkJb2JqLT5z dHJpZGUgPSBmYi0+cGl0Y2hlc1swXTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2ZiZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jCmluZGV4 IGY0MzY4MWUuLjFkODkyNTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2ZiZGV2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwpAQCAtMTU0 LDYgKzE1NCwxMiBAQCBzdGF0aWMgaW50IGludGVsZmJfYWxsb2Moc3RydWN0IGRybV9mYl9oZWxw ZXIgKmhlbHBlciwKIAkJZ290byBvdXQ7CiAJfQogCisJLyogRGlzY2FyZCB0aGUgY29udGVudHMg b2YgdGhlIEJJT1MgZmIgYWNyb3NzIGhpYmVybmF0aW9uLgorCSAqIFdlIHJlYWxseSB3YW50IHRv IGNvbXBsZXRlbHkgdGhyb3dhd2F5IHRoZSBlYXJsaWVyIGZiZGV2CisJICogYW5kIHJlY29uZmln dXJlIGl0IGFueXdheS4KKwkgKi8KKwlvYmotPmludGVybmFsX3ZvbGF0aWxlID0gdHJ1ZTsKKwog CWZiID0gX19pbnRlbF9mcmFtZWJ1ZmZlcl9jcmVhdGUoZGV2LCAmbW9kZV9jbWQsIG9iaik7CiAJ aWYgKElTX0VSUihmYikpIHsKIAkJcmV0ID0gUFRSX0VSUihmYik7CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYwppbmRleCAwM2FkMjc2Li42ZGRjMjBhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAg LTUxODEsNiArNTE4MSw4IEBAIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfc2V0dXBfcGN0eChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQogCUk5MTVfV1JJVEUoVkxWX1BDQlIsIHBjdHhfcGFkZHIpOwog CiBvdXQ6CisJLyogVGhlIHBvd2VyIGNvbnRleHQgbmVlZCBub3QgYmUgcHJlc2VydmVkIGFjcm9z cyBoaWJlcm5hdGlvbiAqLworCXBjdHgtPmludGVybmFsX3ZvbGF0aWxlID0gdHJ1ZTsKIAlEUk1f REVCVUdfRFJJVkVSKCJQQ0JSOiAweCUwOHhcbiIsIEk5MTVfUkVBRChWTFZfUENCUikpOwogCWRl dl9wcml2LT52bHZfcGN0eCA9IHBjdHg7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5n YnVmZmVyLmMKaW5kZXggNWVhYmFmNi4uMzcwZDk2YSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuYwpAQCAtMjA5MCw2ICsyMDkwLDEyIEBAIHN0YXRpYyBpbnQgaW50ZWxf YWxsb2NfcmluZ2J1ZmZlcl9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpZiAoSVNfRVJS KG9iaikpCiAJCXJldHVybiBQVFJfRVJSKG9iaik7CiAKKwkvKiBSaW5nYnVmZmVyIG9iamVjdHMg YXJlIGJ5IGRlZmluaXRpb24gdm9sYXRpbGUgLSBvbmx5IHRoZSBjb21tYW5kcworCSAqIGJldHdl ZW4gSEVBRCBhbmQgVEFJTCBuZWVkIHRvIGJlIHByZXNlcnZlZCBhbmQgd2hpbHN0IHRoZXJlIGFy ZQorCSAqIGFueSBjb21tYW5kcyB0aGVyZSwgdGhlIHJpbmdidWZmZXIgaXMgcGlubmVkIGJ5IGFj dGl2aXR5LgorCSAqLworCW9iai0+aW50ZXJuYWxfdm9sYXRpbGUgPSB0cnVlOworCiAJLyogbWFy ayByaW5nIGJ1ZmZlcnMgYXMgcmVhZC1vbmx5IGZyb20gR1BVIHNpZGUgYnkgZGVmYXVsdCAqLwog CW9iai0+Z3Rfcm8gPSAxOwogCi0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK