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: Thu, 8 Oct 2015 11:54:29 +0530 Message-ID: <1444285469-8187-7-git-send-email-ankitprasad.r.sharma@intel.com> References: <1444285469-8187-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 3365F6E6E6 for ; Wed, 7 Oct 2015 23:44:16 -0700 (PDT) In-Reply-To: <1444285469-8187-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 a2l0KQoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28u dWs+ClNpZ25lZC1vZmYtYnk6IEFua2l0cHJhc2FkIFNoYXJtYSA8YW5raXRwcmFzYWQuci5zaGFy bWFAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgICAgICAg ICB8ICAxNyArKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8ICAg NyArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgfCAyMzAgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYyAgICB8ICAgMyArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmRldi5jICAg ICAgfCAgIDYgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgICAgIHwgICAy ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8ICAgNiArCiA3IGZp bGVzIGNoYW5nZWQsIDI1OSBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuYwppbmRleCBlNmQ3YTY5Li43NjYzZmI0IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMKQEAgLTk2OCw2ICs5NjgsMjEgQEAgc3RhdGljIGludCBpOTE1X3BtX3N1c3BlbmQoc3Ry dWN0IGRldmljZSAqZGV2KQogCXJldHVybiBpOTE1X2RybV9zdXNwZW5kKGRybV9kZXYpOwogfQog CitzdGF0aWMgaW50IGk5MTVfcG1fZnJlZXplKHN0cnVjdCBkZXZpY2UgKmRldikKK3sKKwlpbnQg cmV0OworCisJcmV0ID0gaTkxNV9nZW1fZnJlZXplKHBjaV9nZXRfZHJ2ZGF0YSh0b19wY2lfZGV2 KGRldikpKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0ID0gaTkxNV9wbV9zdXNw ZW5kKGRldik7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCXJldHVybiAwOworfQorCiBz dGF0aWMgaW50IGk5MTVfcG1fc3VzcGVuZF9sYXRlKHN0cnVjdCBkZXZpY2UgKmRldikKIHsKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiA9IGRldl90b19pOTE1KGRldiktPmRldjsKQEAgLTE2 MjEsNyArMTYzNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBpOTE1X3BtX29w cyA9IHsKIAkgKiBAcmVzdG9yZSwgQHJlc3RvcmVfZWFybHkgOiBjYWxsZWQgYWZ0ZXIgcmVib290 aW5nIGFuZCByZXN0b3JpbmcgdGhlCiAJICogICAgICAgICAgICAgICAgICAgICAgICAgICAgaGli ZXJuYXRpb24gaW1hZ2UgW1BNU0dfUkVTVE9SRV0KIAkgKi8KLQkuZnJlZXplID0gaTkxNV9wbV9z dXNwZW5kLAorCS5mcmVlemUgPSBpOTE1X3BtX2ZyZWV6ZSwKIAkuZnJlZXplX2xhdGUgPSBpOTE1 X3BtX3N1c3BlbmRfbGF0ZSwKIAkudGhhd19lYXJseSA9IGk5MTVfcG1fcmVzdW1lX2Vhcmx5LAog CS50aGF3ID0gaTkxNV9wbV9yZXN1bWUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA1NjEy ZGYzLi4xZWZhM2I2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTIwOTQsNiArMjA5NCwx MiBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCB7CiAJICogQWR2aWNlOiBhcmUgdGhlIGJh Y2tpbmcgcGFnZXMgcHVyZ2VhYmxlPwogCSAqLwogCXVuc2lnbmVkIGludCBtYWR2OjI7CisJLyoq CisJICogV2hlcmVhcyBtYWR2IGlzIGZvciB1c2Vyc3BhY2UsIHRoZXJlIGFyZSBjZXJ0YWluIHNp dHVhdGlvbnMKKwkgKiB3aGVyZSB3ZSB3YW50IEk5MTVfTUFEVl9ET05UTkVFRCBiZWhhdmlvdXIg b24gaW50ZXJuYWwgb2JqZWN0cworCSAqIHdpdGhvdXQgY29uZmxhdGluZyB0aGUgdXNlcnNwYWNl IHNldHRpbmcuCisJICovCisJdW5zaWduZWQgaW50IGludGVybmFsX3ZvbGF0aWxlOjE7CiAKIAkv KioKIAkgKiBDdXJyZW50IHRpbGluZyBtb2RlIGZvciB0aGUgb2JqZWN0LgpAQCAtMjk4MSw2ICsy OTg3LDcgQEAgaW50IGk5MTVfZ2VtX2wzX3JlbWFwKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxLCBpbnQgc2xpY2UpOwogdm9pZCBpOTE1X2dlbV9pbml0X3N3aXp6bGluZyhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KTsKIHZvaWQgaTkxNV9nZW1fY2xlYW51cF9yaW5nYnVmZmVyKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpOwogaW50IF9fbXVzdF9jaGVjayBpOTE1X2dwdV9pZGxlKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpOworaW50IF9fbXVzdF9jaGVjayBpOTE1X2dlbV9mcmVlemUoc3Ry dWN0IGRybV9kZXZpY2UgKmRldik7CiBpbnQgX19tdXN0X2NoZWNrIGk5MTVfZ2VtX3N1c3BlbmQo c3RydWN0IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIF9faTkxNV9hZGRfcmVxdWVzdChzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKIAkJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpiYXRjaF9vYmosCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCAyYzk0ZTIyLi44NDNmM2Qx IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKQEAgLTQzNjUsMTIgKzQzNjUsMjcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyBpOTE1X2dlbV9vYmplY3Rfb3Bz ID0gewogCS5wdXRfcGFnZXMgPSBpOTE1X2dlbV9vYmplY3RfcHV0X3BhZ2VzX2d0dCwKIH07CiAK K3N0YXRpYyBzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqCitpOTE1X2dlbV9zZXRfaW5vZGVfZ2ZwKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBmaWxlICpmaWxlKQoreworCXN0cnVjdCBhZGRy ZXNzX3NwYWNlICptYXBwaW5nID0gZmlsZV9pbm9kZShmaWxlKS0+aV9tYXBwaW5nOworCWdmcF90 IG1hc2s7CisKKwltYXNrID0gR0ZQX0hJR0hVU0VSIHwgX19HRlBfUkVDTEFJTUFCTEU7CisJaWYg KElTX0NSRVNUTElORShkZXYpIHx8IElTX0JST0FEV0FURVIoZGV2KSkgeworCQkvKiA5NjVnbSBj YW5ub3QgcmVsb2NhdGUgb2JqZWN0cyBhYm92ZSA0R2lCLiAqLworCQltYXNrICY9IH5fX0dGUF9I SUdITUVNOworCQltYXNrIHw9IF9fR0ZQX0RNQTMyOworCX0KKwltYXBwaW5nX3NldF9nZnBfbWFz ayhtYXBwaW5nLCBtYXNrKTsKKworCXJldHVybiBtYXBwaW5nOworfQorCiBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCiAJCQkJCQkgIHNpemVfdCBzaXplKQogewogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmo7Ci0Jc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmc7Ci0JZ2ZwX3QgbWFzazsKIAlp bnQgcmV0ID0gMDsKIAogCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9hbGxvYyhkZXYpOwpAQCAtNDM4 MiwxNSArNDM5Nyw3IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICppOTE1X2dlbV9hbGxv Y19vYmplY3Qoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsK IAl9CiAKLQltYXNrID0gR0ZQX0hJR0hVU0VSIHwgX19HRlBfUkVDTEFJTUFCTEU7Ci0JaWYgKElT X0NSRVNUTElORShkZXYpIHx8IElTX0JST0FEV0FURVIoZGV2KSkgewotCQkvKiA5NjVnbSBjYW5u b3QgcmVsb2NhdGUgb2JqZWN0cyBhYm92ZSA0R2lCLiAqLwotCQltYXNrICY9IH5fX0dGUF9ISUdI TUVNOwotCQltYXNrIHw9IF9fR0ZQX0RNQTMyOwotCX0KLQotCW1hcHBpbmcgPSBmaWxlX2lub2Rl KG9iai0+YmFzZS5maWxwKS0+aV9tYXBwaW5nOwotCW1hcHBpbmdfc2V0X2dmcF9tYXNrKG1hcHBp bmcsIG1hc2spOworCWk5MTVfZ2VtX3NldF9pbm9kZV9nZnAoZGV2LCBvYmotPmJhc2UuZmlscCk7 CiAKIAlpOTE1X2dlbV9vYmplY3RfaW5pdChvYmosICZpOTE1X2dlbV9vYmplY3Rfb3BzKTsKIApA QCAtNDU2Nyw2ICs0NTc0LDIwNyBAQCBpOTE1X2dlbV9zdG9wX3JpbmdidWZmZXJzKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAJCWRldl9wcml2LT5ndC5zdG9wX3JpbmcocmluZyk7CiB9CiAKK3N0 YXRpYyBpbnQKK2k5MTVfZ2VtX29iamVjdF9taWdyYXRlX3N0b2xlbl90b19zaG1lbWZzKHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUgPSB0b19pOTE1KG9iai0+YmFzZS5kZXYpOworCXN0cnVjdCBpOTE1X3ZtYSAqdm1hLCAq dm47CisJc3RydWN0IGRybV9tbV9ub2RlIG5vZGU7CisJc3RydWN0IGZpbGUgKmZpbGU7CisJc3Ry dWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmc7CisJc3RydWN0IHNnX3RhYmxlICpzdG9sZW5fcGFn ZXMsICpzaG1lbWZzX3BhZ2VzOworCWludCByZXQsIGk7CisKKwlpZiAoV0FSTl9PTihpOTE1X2dl bV9vYmplY3RfbmVlZHNfYml0MTdfc3dpenpsZShvYmopKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisK KwlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2d0dF9kb21haW4ob2JqLCBmYWxzZSk7CisJ aWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKworCWZpbGUgPSBzaG1lbV9maWxlX3NldHVwKCJkcm0g bW0gb2JqZWN0Iiwgb2JqLT5iYXNlLnNpemUsIFZNX05PUkVTRVJWRSk7CisJaWYgKElTX0VSUihm aWxlKSkKKwkJcmV0dXJuIFBUUl9FUlIoZmlsZSk7CisJbWFwcGluZyA9IGk5MTVfZ2VtX3NldF9p bm9kZV9nZnAob2JqLT5iYXNlLmRldiwgZmlsZSk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3Nh ZmUodm1hLCB2biwgJm9iai0+dm1hX2xpc3QsIHZtYV9saW5rKQorCQlpZiAoaTkxNV92bWFfdW5i aW5kKHZtYSkpCisJCQljb250aW51ZTsKKworCWlmIChvYmotPm1hZHYgIT0gSTkxNV9NQURWX1dJ TExORUVEICYmIGxpc3RfZW1wdHkoJm9iai0+dm1hX2xpc3QpKSB7CisJCS8qIERpc2NhcmQgdGhl IHN0b2xlbiByZXNlcnZhdGlvbiwgYW5kIHJlcGxhY2Ugd2l0aAorCQkgKiBhbiB1bnBvcHVsYXRl ZCBzaG1lbWZzIG9iamVjdC4KKwkJICovCisJCW9iai0+bWFkdiA9IF9fSTkxNV9NQURWX1BVUkdF RDsKKwkJZ290byBzd2FwX3BhZ2VzOworCX0KKworCS8qIHN0b2xlbiBvYmplY3RzIGFyZSBhbHJl YWR5IHBpbm5lZCB0byBwcmV2ZW50IHNocmlua2FnZSAqLworCW1lbXNldCgmbm9kZSwgMCwgc2l6 ZW9mKG5vZGUpKTsKKwlyZXQgPSBkcm1fbW1faW5zZXJ0X25vZGVfaW5fcmFuZ2VfZ2VuZXJpYygm aTkxNS0+Z3R0LmJhc2UubW0sCisJCQkJCQkgICZub2RlLAorCQkJCQkJICA0MDk2LCAwLCBJOTE1 X0NBQ0hFX05PTkUsCisJCQkJCQkgIDAsIGk5MTUtPmd0dC5tYXBwYWJsZV9lbmQsCisJCQkJCQkg IERSTV9NTV9TRUFSQ0hfREVGQVVMVCwKKwkJCQkJCSAgRFJNX01NX0NSRUFURV9ERUZBVUxUKTsK KwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJaTkxNS0+Z3R0LmJhc2UuaW5zZXJ0X2VudHJp ZXMoJmk5MTUtPmd0dC5iYXNlLCBvYmotPnBhZ2VzLAorCQkJCSAgICAgIG5vZGUuc3RhcnQsIEk5 MTVfQ0FDSEVfTk9ORSwgMCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgb2JqLT5iYXNlLnNpemUgLyBQ QUdFX1NJWkU7IGkrKykgeworCQlzdHJ1Y3QgcGFnZSAqcGFnZTsKKwkJdm9pZCAqX19pb21lbSBz cmM7CisJCXZvaWQgKmRzdDsKKworCQlwYWdlID0gc2htZW1fcmVhZF9tYXBwaW5nX3BhZ2UobWFw cGluZywgaSk7CisJCWlmIChJU19FUlIocGFnZSkpIHsKKwkJCXJldCA9IFBUUl9FUlIocGFnZSk7 CisJCQlnb3RvIGVycl9ub2RlOworCQl9CisKKwkJc3JjID0gaW9fbWFwcGluZ19tYXBfYXRvbWlj X3djKGk5MTUtPmd0dC5tYXBwYWJsZSwgbm9kZS5zdGFydCArIFBBR0VfU0laRSAqIGkpOworCQlk c3QgPSBrbWFwX2F0b21pYyhwYWdlKTsKKwkJbWVtY3B5X2Zyb21pbyhkc3QsIHNyYywgUEFHRV9T SVpFKTsKKwkJa3VubWFwX2F0b21pYyhkc3QpOworCQlpb19tYXBwaW5nX3VubWFwX2F0b21pYyhz cmMpOworCisJCXBhZ2VfY2FjaGVfcmVsZWFzZShwYWdlKTsKKwl9CisKKwl3bWIoKTsKKwlpOTE1 LT5ndHQuYmFzZS5jbGVhcl9yYW5nZSgmaTkxNS0+Z3R0LmJhc2UsCisJCQkJICAgbm9kZS5zdGFy dCwgbm9kZS5zaXplLAorCQkJCSAgIHRydWUpOworCWRybV9tbV9yZW1vdmVfbm9kZSgmbm9kZSk7 CisKK3N3YXBfcGFnZXM6CisJc3RvbGVuX3BhZ2VzID0gb2JqLT5wYWdlczsKKwlvYmotPnBhZ2Vz ID0gTlVMTDsKKworCW9iai0+YmFzZS5maWxwID0gZmlsZTsKKwlvYmotPmJhc2UucmVhZF9kb21h aW5zID0gSTkxNV9HRU1fRE9NQUlOX0NQVTsKKwlvYmotPmJhc2Uud3JpdGVfZG9tYWluID0gSTkx NV9HRU1fRE9NQUlOX0NQVTsKKworCS8qIFJlY3JlYXRlIGFueSBwaW5uZWQgYmluZGluZyB3aXRo IHBvaW50ZXJzIHRvIHRoZSBuZXcgc3RvcmFnZSAqLworCWlmICghbGlzdF9lbXB0eSgmb2JqLT52 bWFfbGlzdCkpIHsKKwkJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19ndHQob2JqKTsK KwkJaWYgKHJldCkgeworCQkJb2JqLT5wYWdlcyA9IHN0b2xlbl9wYWdlczsKKwkJCWdvdG8gZXJy X2ZpbGU7CisJCX0KKworCQlyZXQgPSBpOTE1X2dlbV9ndHRfcHJlcGFyZV9vYmplY3Qob2JqKTsK KwkJaWYgKHJldCkgeworCQkJaTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdlc19ndHQob2JqKTsKKwkJ CW9iai0+cGFnZXMgPSBzdG9sZW5fcGFnZXM7CisJCQlnb3RvIGVycl9maWxlOworCQl9CisKKwkJ cmV0ID0gaTkxNV9nZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWluKG9iaiwgdHJ1ZSk7CisJCWlm IChyZXQpIHsKKwkJCWk5MTVfZ2VtX2d0dF9maW5pc2hfb2JqZWN0KG9iaik7CisJCQlpOTE1X2dl bV9vYmplY3RfcHV0X3BhZ2VzX2d0dChvYmopOworCQkJb2JqLT5wYWdlcyA9IHN0b2xlbl9wYWdl czsKKwkJCWdvdG8gZXJyX2ZpbGU7CisJCX0KKworCQlvYmotPmdldF9wYWdlLnNnID0gb2JqLT5w YWdlcy0+c2dsOworCQlvYmotPmdldF9wYWdlLmxhc3QgPSAwOworCisJCWxpc3RfZm9yX2VhY2hf ZW50cnkodm1hLCAmb2JqLT52bWFfbGlzdCwgdm1hX2xpbmspIHsKKwkJCWlmICghZHJtX21tX25v ZGVfYWxsb2NhdGVkKCZ2bWEtPm5vZGUpKQorCQkJCWNvbnRpbnVlOworCisJCQlXQVJOX09OKGk5 MTVfdm1hX2JpbmQodm1hLAorCQkJCQkgICAgICBvYmotPmNhY2hlX2xldmVsLAorCQkJCQkgICAg ICBQSU5fVVBEQVRFKSk7CisJCX0KKwl9IGVsc2UKKwkJbGlzdF9kZWwoJm9iai0+Z2xvYmFsX2xp c3QpOworCisJLyogZHJvcCB0aGUgc3RvbGVuIHBpbiBhbmQgYmFja2luZyAqLworCXNobWVtZnNf cGFnZXMgPSBvYmotPnBhZ2VzOworCW9iai0+cGFnZXMgPSBzdG9sZW5fcGFnZXM7CisKKwlpOTE1 X2dlbV9vYmplY3RfdW5waW5fcGFnZXMob2JqKTsKKwlvYmotPm9wcy0+cHV0X3BhZ2VzKG9iaik7 CisJaWYgKG9iai0+b3BzLT5yZWxlYXNlKQorCQlvYmotPm9wcy0+cmVsZWFzZShvYmopOworCisJ b2JqLT5vcHMgPSAmaTkxNV9nZW1fb2JqZWN0X29wczsKKwlvYmotPnBhZ2VzID0gc2htZW1mc19w YWdlczsKKworCXJldHVybiAwOworCitlcnJfbm9kZToKKwl3bWIoKTsKKwlpOTE1LT5ndHQuYmFz ZS5jbGVhcl9yYW5nZSgmaTkxNS0+Z3R0LmJhc2UsCisJCQkJICAgbm9kZS5zdGFydCwgbm9kZS5z aXplLAorCQkJCSAgIHRydWUpOworCWRybV9tbV9yZW1vdmVfbm9kZSgmbm9kZSk7CitlcnJfZmls ZToKKwlmcHV0KGZpbGUpOworCW9iai0+YmFzZS5maWxwID0gTlVMTDsKKwlyZXR1cm4gcmV0Owor fQorCitpbnQKK2k5MTVfZ2VtX2ZyZWV6ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQoreworCS8q IENhbGxlZCBiZWZvcmUgaTkxNV9nZW1fc3VzcGVuZCgpIHdoZW4gaGliZXJuYXRpbmcgKi8KKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqLCAqdG1wOworCXN0cnVjdCBsaXN0X2hlYWQgKnBoYXNlW10g PSB7CisJCSZpOTE1LT5tbS51bmJvdW5kX2xpc3QsICZpOTE1LT5tbS5ib3VuZF9saXN0LCBOVUxM CisJfSwgKipwOworCisJLyogQWNyb3NzIGhpYmVybmF0aW9uLCB0aGUgc3RvbGVuIGFyZWEgaXMg bm90IHByZXNlcnZlZC4KKwkgKiBBbnl0aGluZyBpbnNpZGUgc3RvbGVuIG11c3QgY29waWVkIGJh Y2sgdG8gbm9ybWFsCisJICogbWVtb3J5IGlmIHdlIHdpc2ggdG8gcHJlc2VydmUgaXQuCisJICov CisJZm9yIChwID0gcGhhc2U7ICpwOyBwKyspIHsKKwkJc3RydWN0IGxpc3RfaGVhZCBtaWdyYXRl OworCQlpbnQgcmV0OworCisJCUlOSVRfTElTVF9IRUFEKCZtaWdyYXRlKTsKKwkJbGlzdF9mb3Jf ZWFjaF9lbnRyeV9zYWZlKG9iaiwgdG1wLCAqcCwgZ2xvYmFsX2xpc3QpIHsKKwkJCWlmIChvYmot PnN0b2xlbiA9PSBOVUxMKQorCQkJCWNvbnRpbnVlOworCisJCQlpZiAob2JqLT5pbnRlcm5hbF92 b2xhdGlsZSkKKwkJCQljb250aW51ZTsKKworCQkJLyogSW4gdGhlIGdlbmVyYWwgY2FzZSwgdGhp cyBvYmplY3QgbWF5IG9ubHkgYmUgYWxpdmUKKwkJCSAqIGR1ZSB0byBhbiBhY3RpdmUgcmVmZXJl bmNlLCBhbmQgdGhhdCBtYXkgZGlzYXBwZWFyCisJCQkgKiB3aGVuIHdlIHVuYmluZCBhbnkgb2Yg dGhlIG9iamVjdHMgKGFuZCBzbyB3YWl0IHVwb24KKwkJCSAqIHRoZSBHUFUgYW5kIHJldGlyZSBy ZXF1ZXN0cykuIFRvIHByZXZlbnQgb25lIG9mIHRoZQorCQkJICogb2JqZWN0cyBmcm9tIGRpc2Fw cGVhcmluZyBiZW5lYXRoIHVzLCB3ZSBuZWVkIHRvCisJCQkgKiB0YWtlIGEgcmVmZXJlbmNlIHRv IGVhY2ggYXMgd2UgYnVpbGQgdGhlIG1pZ3JhdGlvbgorCQkJICogbGlzdC4KKwkJCSAqCisJCQkg KiBUaGlzIGlzIHNpbWlsYXIgdG8gdGhlIHN0cmF0ZWd5IHJlcXVpcmVkIHdoaWxzdAorCQkJICog c2hyaW5raW5nIG9yIGV2aWN0aW5nIG9iamVjdHMgKGZvciB0aGUgc2FtZSByZWFzb24pLgorCQkJ ICovCisJCQlkcm1fZ2VtX29iamVjdF9yZWZlcmVuY2UoJm9iai0+YmFzZSk7CisJCQlsaXN0X21v dmUoJm9iai0+Z2xvYmFsX2xpc3QsICZtaWdyYXRlKTsKKwkJfQorCisJCXJldCA9IDA7CisJCWxp c3RfZm9yX2VhY2hfZW50cnlfc2FmZShvYmosIHRtcCwgJm1pZ3JhdGUsIGdsb2JhbF9saXN0KSB7 CisJCQlpZiAocmV0ID09IDApCisJCQkJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X21pZ3JhdGVfc3Rv bGVuX3RvX3NobWVtZnMob2JqKTsKKwkJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZvYmot PmJhc2UpOworCQl9CisJCWxpc3Rfc3BsaWNlKCZtaWdyYXRlLCAqcCk7CisJCWlmIChyZXQpCisJ CQlyZXR1cm4gcmV0OworCX0KKworCXJldHVybiAwOworfQorCiBpbnQKIGk5MTVfZ2VtX3N1c3Bl bmQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwppbmRleCBkMDg5ODlhLi42NzkxYzE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCkBAIC0yNTE3LDYgKzI1MTcsOSBAQCBpbnRlbF9hbGxvY19pbml0aWFsX3BsYW5lX29i aihzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAlpZiAoSVNfRVJSKG9iaikpCiAJCXJldHVybiBm YWxzZTsKIAorCS8qIE5vdCB0byBiZSBwcmVzZXJ2ZWQgYWNyb3NzIGhpYmVybmF0aW9uICovCisJ b2JqLT5pbnRlcm5hbF92b2xhdGlsZSA9IHRydWU7CisKIAlvYmotPnRpbGluZ19tb2RlID0gcGxh bmVfY29uZmlnLT50aWxpbmc7CiAJaWYgKG9iai0+dGlsaW5nX21vZGUgPT0gSTkxNV9USUxJTkdf WCkKIAkJb2JqLT5zdHJpZGUgPSBmYi0+cGl0Y2hlc1swXTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9m YmRldi5jCmluZGV4IDY3ZGU5NTguLmRkMmNlNGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2ZiZGV2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJk ZXYuYwpAQCAtMTQ4LDYgKzE0OCwxMiBAQCBzdGF0aWMgaW50IGludGVsZmJfYWxsb2Moc3RydWN0 IGRybV9mYl9oZWxwZXIgKmhlbHBlciwKIAkJZ290byBvdXQ7CiAJfQogCisJLyogRGlzY2FyZCB0 aGUgY29udGVudHMgb2YgdGhlIEJJT1MgZmIgYWNyb3NzIGhpYmVybmF0aW9uLgorCSAqIFdlIHJl YWxseSB3YW50IHRvIGNvbXBsZXRlbHkgdGhyb3dhd2F5IHRoZSBlYXJsaWVyIGZiZGV2CisJICog YW5kIHJlY29uZmlndXJlIGl0IGFueXdheS4KKwkgKi8KKwlvYmotPmludGVybmFsX3ZvbGF0aWxl ID0gdHJ1ZTsKKwogCWZiID0gX19pbnRlbF9mcmFtZWJ1ZmZlcl9jcmVhdGUoZGV2LCAmbW9kZV9j bWQsIG9iaik7CiAJaWYgKElTX0VSUihmYikpIHsKIAkJcmV0ID0gUFRSX0VSUihmYik7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYwppbmRleCAxMmJmMTYyLi5lZWMxMTMxIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMKQEAgLTUzOTYsNiArNTM5Niw4IEBAIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfc2V0 dXBfcGN0eChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCUk5MTVfV1JJVEUoVkxWX1BDQlIsIHBj dHhfcGFkZHIpOwogCiBvdXQ6CisJLyogVGhlIHBvd2VyIGNvbnRleHQgbmVlZCBub3QgYmUgcHJl c2VydmVkIGFjcm9zcyBoaWJlcm5hdGlvbiAqLworCXBjdHgtPmludGVybmFsX3ZvbGF0aWxlID0g dHJ1ZTsKIAlEUk1fREVCVUdfRFJJVkVSKCJQQ0JSOiAweCUwOHhcbiIsIEk5MTVfUkVBRChWTFZf UENCUikpOwogCWRldl9wcml2LT52bHZfcGN0eCA9IHBjdHg7CiB9CmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmMKaW5kZXggYTkyODYwMi4uY2QxOTc3NiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwpAQCAtMjAyNSw2ICsyMDI1LDEyIEBAIHN0YXRp YyBpbnQgaW50ZWxfYWxsb2NfcmluZ2J1ZmZlcl9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwK IAlpZiAoSVNfRVJSKG9iaikpCiAJCXJldHVybiBQVFJfRVJSKG9iaik7CiAKKwkvKiBSaW5nYnVm ZmVyIG9iamVjdHMgYXJlIGJ5IGRlZmluaXRpb24gdm9sYXRpbGUgLSBvbmx5IHRoZSBjb21tYW5k cworCSAqIGJldHdlZW4gSEVBRCBhbmQgVEFJTCBuZWVkIHRvIGJlIHByZXNlcnZlZCBhbmQgd2hp bHN0IHRoZXJlIGFyZQorCSAqIGFueSBjb21tYW5kcyB0aGVyZSwgdGhlIHJpbmdidWZmZXIgaXMg cGlubmVkIGJ5IGFjdGl2aXR5LgorCSAqLworCW9iai0+aW50ZXJuYWxfdm9sYXRpbGUgPSB0cnVl OworCiAJLyogbWFyayByaW5nIGJ1ZmZlcnMgYXMgcmVhZC1vbmx5IGZyb20gR1BVIHNpZGUgYnkg ZGVmYXVsdCAqLwogCW9iai0+Z3Rfcm8gPSAxOwogCi0tIAoxLjkuMQoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK