From mboxrd@z Thu Jan 1 00:00:00 1970 From: ankitprasad.r.sharma@intel.com Subject: [PATCH 07/10] drm/i915: Support for pread/pwrite from/to non shmem backed objects Date: Tue, 22 Dec 2015 11:50:50 +0530 Message-ID: <1450765253-32104-8-git-send-email-ankitprasad.r.sharma@intel.com> References: <1450765253-32104-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 mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 7699189DC0 for ; Mon, 21 Dec 2015 22:43:13 -0800 (PST) In-Reply-To: <1450765253-32104-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 RnJvbTogQW5raXRwcmFzYWQgU2hhcm1hIDxhbmtpdHByYXNhZC5yLnNoYXJtYUBpbnRlbC5jb20+ CgpUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgZXh0ZW5kaW5nIHRoZSBwcmVhZC9wd3JpdGUg ZnVuY3Rpb25hbGl0eQpmb3Igb2JqZWN0cyBub3QgYmFja2VkIGJ5IHNobWVtLiBUaGUgYWNjZXNz IHdpbGwgYmUgbWFkZSB0aHJvdWdoCmd0dCBpbnRlcmZhY2UuIFRoaXMgd2lsbCBjb3ZlciBvYmpl Y3RzIGJhY2tlZCBieSBzdG9sZW4gbWVtb3J5IGFzIHdlbGwKYXMgb3RoZXIgbm9uLXNobWVtIGJh Y2tlZCBvYmplY3RzLgoKdjI6IERyb3AgbG9ja3MgYXJvdW5kIHNsb3dfdXNlcl9hY2Nlc3MsIHBy ZWZhdWx0IHRoZSBwYWdlcyBiZWZvcmUKYWNjZXNzIChDaHJpcykKCnYzOiBSZWJhc2VkIHRvIHRo ZSBsYXRlc3QgZHJtLWludGVsLW5pZ2h0bHkgKEFua2l0KQoKdjQ6IE1vdmVkIHBhZ2UgYmFzZSAm IG9mZnNldCBjYWxjdWxhdGlvbnMgb3V0c2lkZSB0aGUgY29weSBsb29wLApjb3JyZWN0ZWQgZGF0 YSB0eXBlcyBmb3Igc2l6ZSBhbmQgb2Zmc2V0IHZhcmlhYmxlcywgY29ycmVjdGVkIGlmLWVsc2UK YnJhY2VzIGZvcm1hdCAoVHZydGtvL2tlcm5lbGRvY3MpCgp2NTogRW5hYmxlZCBwcmVhZC9wd3Jp dGUgZm9yIGFsbCBub24tc2htZW0gYmFja2VkIG9iamVjdHMgaW5jbHVkaW5nCndpdGhvdXQgdGls aW5nIHJlc3RyaWN0aW9ucyAoQW5raXQpCgp2NjogVXNpbmcgcHdyaXRlX2Zhc3QgZm9yIG5vbi1z aG1lbSBiYWNrZWQgb2JqZWN0cyBhcyB3ZWxsIChDaHJpcykKCnY3OiBVcGRhdGVkIGNvbW1pdCBt ZXNzYWdlLCBSZW5hbWVkIGk5MTVfZ2VtX2d0dF9yZWFkIHRvIGk5MTVfZ2VtX2d0dF9jb3B5LAph ZGRlZCBwd3JpdGUgc2xvdyBwYXRoIGZvciBub24tc2htZW0gYmFja2VkIG9iamVjdHMgKENocmlz L1R2cnRrbykKCnY4OiBVcGRhdGVkIHY3IGNvbW1pdCBtZXNzYWdlLCBtdXRleCB1bmxvY2sgYXJv dW5kIHB3cml0ZSBzbG93IHBhdGggZm9yCm5vbi1zaG1lbSBiYWNrZWQgb2JqZWN0cyAoVHZydGtv KQoKdjk6IENvcnJlY3RlZCBjaGVjayBkdXJpbmcgcHJlYWRfaW9jdGwsIHRvIGF2b2lkIHNobWVt X3ByZWFkIGJlaW5nCmNhbGxlZCBmb3Igbm9uLXNobWVtIGJhY2tlZCBvYmplY3RzIChUdnJ0a28p Cgp2MTA6IE1vdmVkIHRoZSB3cml0ZV9kb21haW4gY2hlY2sgdG8gbmVlZHNfY2xmbHVzaCBhbmQg dGlsaW5nIG1vZGUgY2hlY2sKdG8gcHdyaXRlX2Zhc3QgKENocmlzKQoKVGVzdGNhc2U6IGlndC9n ZW1fc3RvbGVuCgpTaWduZWQtb2ZmLWJ5OiBBbmtpdHByYXNhZCBTaGFybWEgPGFua2l0cHJhc2Fk LnIuc2hhcm1hQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j IHwgMTYyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBj aGFuZ2VkLCAxMzQgaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtLmMKaW5kZXggNDc4OWM2NC4uYTBlYzFhOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j CkBAIC01NSw2ICs1NSw5IEBAIHN0YXRpYyBib29sIGNwdV9jYWNoZV9pc19jb2hlcmVudChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LAogCiBzdGF0aWMgYm9vbCBjcHVfd3JpdGVfbmVlZHNfY2xmbHVz aChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogeworCWlmIChvYmotPmJhc2Uud3Jp dGVfZG9tYWluID09IEk5MTVfR0VNX0RPTUFJTl9DUFUpCisJCXJldHVybiBmYWxzZTsKKwogCWlm ICghY3B1X2NhY2hlX2lzX2NvaGVyZW50KG9iai0+YmFzZS5kZXYsIG9iai0+Y2FjaGVfbGV2ZWwp KQogCQlyZXR1cm4gdHJ1ZTsKIApAQCAtNjMxLDYgKzYzNCw5OSBAQCBzaG1lbV9wcmVhZF9zbG93 KHN0cnVjdCBwYWdlICpwYWdlLCBpbnQgc2htZW1fcGFnZV9vZmZzZXQsIGludCBwYWdlX2xlbmd0 aCwKIAlyZXR1cm4gcmV0ID8gLSBFRkFVTFQgOiAwOwogfQogCitzdGF0aWMgaW5saW5lIHVpbnQ2 NF90CitzbG93X3VzZXJfYWNjZXNzKHN0cnVjdCBpb19tYXBwaW5nICptYXBwaW5nLAorCQkgdWlu dDY0X3QgcGFnZV9iYXNlLCBpbnQgcGFnZV9vZmZzZXQsCisJCSBjaGFyIF9fdXNlciAqdXNlcl9k YXRhLAorCQkgaW50IGxlbmd0aCwgYm9vbCBwd3JpdGUpCit7CisJdm9pZCBfX2lvbWVtICp2YWRk cl9pbmF0b21pYzsKKwl2b2lkICp2YWRkcjsKKwl1aW50NjRfdCB1bndyaXR0ZW47CisKKwl2YWRk cl9pbmF0b21pYyA9IGlvX21hcHBpbmdfbWFwX3djKG1hcHBpbmcsIHBhZ2VfYmFzZSk7CisJLyog V2UgY2FuIHVzZSB0aGUgY3B1IG1lbSBjb3B5IGZ1bmN0aW9uIGJlY2F1c2UgdGhpcyBpcyBYODYu ICovCisJdmFkZHIgPSAodm9pZCBfX2ZvcmNlICopdmFkZHJfaW5hdG9taWMgKyBwYWdlX29mZnNl dDsKKwlpZiAocHdyaXRlKQorCQl1bndyaXR0ZW4gPSBfX2NvcHlfZnJvbV91c2VyKHZhZGRyLCB1 c2VyX2RhdGEsIGxlbmd0aCk7CisJZWxzZQorCQl1bndyaXR0ZW4gPSBfX2NvcHlfdG9fdXNlcih1 c2VyX2RhdGEsIHZhZGRyLCBsZW5ndGgpOworCisJaW9fbWFwcGluZ191bm1hcCh2YWRkcl9pbmF0 b21pYyk7CisJcmV0dXJuIHVud3JpdHRlbjsKK30KKworc3RhdGljIGludAoraTkxNV9nZW1fZ3R0 X2NvcHkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJICAgc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiwgdWludDY0X3Qgc2l6ZSwKKwkJICAgdWludDY0X3QgZGF0YV9vZmZzZXQsIHVp bnQ2NF90IGRhdGFfcHRyKQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7CisJY2hhciBfX3VzZXIgKnVzZXJfZGF0YTsKKwl1aW50NjRfdCBy ZW1haW47CisJdWludDY0X3Qgb2Zmc2V0LCBwYWdlX2Jhc2U7CisJaW50IHBhZ2Vfb2Zmc2V0LCBw YWdlX2xlbmd0aCwgcmV0ID0gMDsKKworCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihvYmos IDAsIFBJTl9NQVBQQUJMRSk7CisJaWYgKHJldCkKKwkJZ290byBvdXQ7CisKKwlyZXQgPSBpOTE1 X2dlbV9vYmplY3Rfc2V0X3RvX2d0dF9kb21haW4ob2JqLCBmYWxzZSk7CisJaWYgKHJldCkKKwkJ Z290byBvdXRfdW5waW47CisKKwlyZXQgPSBpOTE1X2dlbV9vYmplY3RfcHV0X2ZlbmNlKG9iaik7 CisJaWYgKHJldCkKKwkJZ290byBvdXRfdW5waW47CisKKwl1c2VyX2RhdGEgPSB0b191c2VyX3B0 cihkYXRhX3B0cik7CisJcmVtYWluID0gc2l6ZTsKKwlvZmZzZXQgPSBpOTE1X2dlbV9vYmpfZ2d0 dF9vZmZzZXQob2JqKSArIGRhdGFfb2Zmc2V0OworCisJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVj dF9tdXRleCk7CisJaWYgKGxpa2VseSghaTkxNS5wcmVmYXVsdF9kaXNhYmxlKSkKKwkJcmV0ID0g ZmF1bHRfaW5fbXVsdGlwYWdlc193cml0ZWFibGUodXNlcl9kYXRhLCByZW1haW4pOworCisJLyoK KwkgKiBwYWdlX29mZnNldCA9IG9mZnNldCB3aXRoaW4gcGFnZQorCSAqIHBhZ2VfYmFzZSA9IHBh Z2Ugb2Zmc2V0IHdpdGhpbiBhcGVydHVyZQorCSAqLworCXBhZ2Vfb2Zmc2V0ID0gb2Zmc2V0X2lu X3BhZ2Uob2Zmc2V0KTsKKwlwYWdlX2Jhc2UgPSBvZmZzZXQgJiBQQUdFX01BU0s7CisKKwl3aGls ZSAocmVtYWluID4gMCkgeworCQkvKiBwYWdlX2xlbmd0aCA9IGJ5dGVzIHRvIGNvcHkgZm9yIHRo aXMgcGFnZSAqLworCQlwYWdlX2xlbmd0aCA9IHJlbWFpbjsKKwkJaWYgKChwYWdlX29mZnNldCAr IHJlbWFpbikgPiBQQUdFX1NJWkUpCisJCQlwYWdlX2xlbmd0aCA9IFBBR0VfU0laRSAtIHBhZ2Vf b2Zmc2V0OworCisJCS8qIFRoaXMgaXMgYSBzbG93IHJlYWQvd3JpdGUgYXMgaXQgdHJpZXMgdG8g cmVhZCBmcm9tCisJCSAqIGFuZCB3cml0ZSB0byB1c2VyIG1lbW9yeSB3aGljaCBtYXkgcmVzdWx0 IGludG8gcGFnZQorCQkgKiBmYXVsdHMKKwkJICovCisJCXJldCA9IHNsb3dfdXNlcl9hY2Nlc3Mo ZGV2X3ByaXYtPmd0dC5tYXBwYWJsZSwgcGFnZV9iYXNlLAorCQkJCSAgICAgICBwYWdlX29mZnNl dCwgdXNlcl9kYXRhLAorCQkJCSAgICAgICBwYWdlX2xlbmd0aCwgZmFsc2UpOworCisJCWlmIChy ZXQpIHsKKwkJCXJldCA9IC1FRkFVTFQ7CisJCQlicmVhazsKKwkJfQorCisJCXJlbWFpbiAtPSBw YWdlX2xlbmd0aDsKKwkJdXNlcl9kYXRhICs9IHBhZ2VfbGVuZ3RoOworCQlwYWdlX2Jhc2UgKz0g cGFnZV9sZW5ndGg7CisJCXBhZ2Vfb2Zmc2V0ID0gMDsKKwl9CisKKwltdXRleF9sb2NrKCZkZXYt PnN0cnVjdF9tdXRleCk7CisKK291dF91bnBpbjoKKwlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBp bihvYmopOworb3V0OgorCXJldHVybiByZXQ7Cit9CisKIHN0YXRpYyBpbnQKIGk5MTVfZ2VtX3No bWVtX3ByZWFkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCSAgICAgc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iaiwKQEAgLTc1NCwxNyArODUwLDE0IEBAIGk5MTVfZ2VtX3ByZWFkX2lv Y3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJCWdvdG8gb3V0OwogCX0K IAotCS8qIHByaW1lIG9iamVjdHMgaGF2ZSBubyBiYWNraW5nIGZpbHAgdG8gR0VNIHByZWFkL3B3 cml0ZQotCSAqIHBhZ2VzIGZyb20uCi0JICovCi0JaWYgKCFvYmotPmJhc2UuZmlscCkgewotCQly ZXQgPSAtRUlOVkFMOwotCQlnb3RvIG91dDsKLQl9Ci0KIAl0cmFjZV9pOTE1X2dlbV9vYmplY3Rf cHJlYWQob2JqLCBhcmdzLT5vZmZzZXQsIGFyZ3MtPnNpemUpOwogCi0JcmV0ID0gaTkxNV9nZW1f c2htZW1fcHJlYWQoZGV2LCBvYmosIGFyZ3MsIGZpbGUpOworCS8qIHByZWFkIGZvciBub24gc2ht ZW0gYmFja2VkIG9iamVjdHMgKi8KKwlpZiAoIW9iai0+YmFzZS5maWxwICYmIG9iai0+dGlsaW5n X21vZGUgPT0gSTkxNV9USUxJTkdfTk9ORSkKKwkJcmV0ID0gaTkxNV9nZW1fZ3R0X2NvcHkoZGV2 LCBvYmosIGFyZ3MtPnNpemUsCisJCQkJCWFyZ3MtPm9mZnNldCwgYXJncy0+ZGF0YV9wdHIpOwor CWVsc2UgaWYgKG9iai0+YmFzZS5maWxwKQorCQlyZXQgPSBpOTE1X2dlbV9zaG1lbV9wcmVhZChk ZXYsIG9iaiwgYXJncywgZmlsZSk7CiAKIG91dDoKIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5j ZSgmb2JqLT5iYXNlKTsKQEAgLTgwNiwxMCArODk5LDE1IEBAIGk5MTVfZ2VtX2d0dF9wd3JpdGVf ZmFzdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJCSBzdHJ1Y3QgZHJtX2k5MTVf Z2VtX3B3cml0ZSAqYXJncywKIAkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCiB7CisJc3RydWN0 IGRybV9kZXZpY2UgKmRldiA9IG9iai0+YmFzZS5kZXY7CiAJc3RydWN0IGRybV9tbV9ub2RlIG5v ZGU7CiAJdWludDY0X3QgcmVtYWluLCBvZmZzZXQ7CiAJY2hhciBfX3VzZXIgKnVzZXJfZGF0YTsK IAlpbnQgcmV0OworCWJvb2wgZmF1bHRlZCA9IGZhbHNlOworCisJaWYgKG9iai0+dGlsaW5nX21v ZGUgIT0gSTkxNV9USUxJTkdfTk9ORSkKKwkJcmV0dXJuIC1FRkFVTFQ7CiAKIAlyZXQgPSBpOTE1 X2dlbV9vYmpfZ2d0dF9waW4ob2JqLCAwLCBQSU5fTUFQUEFCTEUgfCBQSU5fTk9OQkxPQ0spOwog CWlmIChyZXQpIHsKQEAgLTg2OSwxMSArOTY3LDI5IEBAIGk5MTVfZ2VtX2d0dF9wd3JpdGVfZmFz dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAkJLyogSWYgd2UgZ2V0IGEgZmF1bHQg d2hpbGUgY29weWluZyBkYXRhLCB0aGVuIChwcmVzdW1hYmx5KSBvdXIKIAkJICogc291cmNlIHBh Z2UgaXNuJ3QgYXZhaWxhYmxlLiAgUmV0dXJuIHRoZSBlcnJvciBhbmQgd2UnbGwKIAkJICogcmV0 cnkgaW4gdGhlIHNsb3cgcGF0aC4KKwkJICogSWYgdGhlIG9iamVjdCBpcyBub24tc2htZW0gYmFj a2VkLCB3ZSByZXRyeSBhZ2FpbiB3aXRoIHRoZQorCQkgKiBwYXRoIHRoYXQgaGFuZGxlcyBwYWdl IGZhdWx0LgogCQkgKi8KLQkJaWYgKGZhc3RfdXNlcl93cml0ZShpOTE1LT5ndHQubWFwcGFibGUs IHBhZ2VfYmFzZSwKLQkJCQkgICAgcGFnZV9vZmZzZXQsIHVzZXJfZGF0YSwgcGFnZV9sZW5ndGgp KSB7Ci0JCQlyZXQgPSAtRUZBVUxUOwotCQkJZ290byBvdXRfZmx1c2g7CisJCWlmIChmYXVsdGVk IHx8IGZhc3RfdXNlcl93cml0ZShpOTE1LT5ndHQubWFwcGFibGUsCisJCQkJCQlwYWdlX2Jhc2Us IHBhZ2Vfb2Zmc2V0LAorCQkJCQkJdXNlcl9kYXRhLCBwYWdlX2xlbmd0aCkpIHsKKwkJCWlmICgh b2JqLT5iYXNlLmZpbHApIHsKKwkJCQlmYXVsdGVkID0gdHJ1ZTsKKwkJCQltdXRleF91bmxvY2so JmRldi0+c3RydWN0X211dGV4KTsKKwkJCQlpZiAoc2xvd191c2VyX2FjY2VzcyhpOTE1LT5ndHQu bWFwcGFibGUsCisJCQkJCQkgICAgIHBhZ2VfYmFzZSwKKwkJCQkJCSAgICAgcGFnZV9vZmZzZXQs IHVzZXJfZGF0YSwKKwkJCQkJCSAgICAgcGFnZV9sZW5ndGgsIHRydWUpKSB7CisJCQkJCXJldCA9 IC1FRkFVTFQ7CisJCQkJCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKKwkJCQkJZ290 byBvdXRfZmx1c2g7CisJCQkJfQorCisJCQkJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgp OworCQkJfSBlbHNlIHsKKwkJCQlyZXQgPSAtRUZBVUxUOworCQkJCWdvdG8gb3V0X2ZsdXNoOwor CQkJfQogCQl9CiAKIAkJcmVtYWluIC09IHBhZ2VfbGVuZ3RoOwpAQCAtMTE0MCwxNCArMTI1Niw2 IEBAIGk5MTVfZ2VtX3B3cml0ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLAogCQlnb3RvIG91dDsKIAl9CiAKLQkvKiBwcmltZSBvYmplY3RzIGhhdmUgbm8gYmFja2lu ZyBmaWxwIHRvIEdFTSBwcmVhZC9wd3JpdGUKLQkgKiBwYWdlcyBmcm9tLgotCSAqLwotCWlmICgh b2JqLT5iYXNlLmZpbHApIHsKLQkJcmV0ID0gLUVJTlZBTDsKLQkJZ290byBvdXQ7Ci0JfQotCiAJ dHJhY2VfaTkxNV9nZW1fb2JqZWN0X3B3cml0ZShvYmosIGFyZ3MtPm9mZnNldCwgYXJncy0+c2l6 ZSk7CiAKIAlyZXQgPSAtRUZBVUxUOwpAQCAtMTE1Nyw5ICsxMjY1LDcgQEAgaTkxNV9nZW1fcHdy aXRlX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCiAJICogcHJlYWQv cHdyaXRlIGN1cnJlbnRseSBhcmUgcmVhZGluZyBhbmQgd3JpdGluZyBmcm9tIHRoZSBDUFUKIAkg KiBwZXJzcGVjdGl2ZSwgcmVxdWlyaW5nIG1hbnVhbCBkZXRpbGluZyBieSB0aGUgY2xpZW50Lgog CSAqLwotCWlmIChvYmotPnRpbGluZ19tb2RlID09IEk5MTVfVElMSU5HX05PTkUgJiYKLQkgICAg b2JqLT5iYXNlLndyaXRlX2RvbWFpbiAhPSBJOTE1X0dFTV9ET01BSU5fQ1BVICYmCi0JICAgIGNw dV93cml0ZV9uZWVkc19jbGZsdXNoKG9iaikpIHsKKwlpZiAoIW9iai0+YmFzZS5maWxwIHx8IGNw dV93cml0ZV9uZWVkc19jbGZsdXNoKG9iaikpIHsKIAkJcmV0ID0gaTkxNV9nZW1fZ3R0X3B3cml0 ZV9mYXN0KGRldl9wcml2LCBvYmosIGFyZ3MsIGZpbGUpOwogCQkvKiBOb3RlIHRoYXQgdGhlIGd0 dCBwYXRocyBtaWdodCBmYWlsIHdpdGggbm9uLXBhZ2UtYmFja2VkIHVzZXIKIAkJICogcG9pbnRl cnMgKGUuZy4gZ3R0IG1hcHBpbmdzIHdoZW4gbW92aW5nIGRhdGEgYmV0d2VlbgpAQCAtMTE2OSw4 ICsxMjc1LDEwIEBAIGk5MTVfZ2VtX3B3cml0ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAogCWlmIChyZXQgPT0gLUVGQVVMVCB8fCByZXQgPT0gLUVOT1NQQykgewog CQlpZiAob2JqLT5waHlzX2hhbmRsZSkKIAkJCXJldCA9IGk5MTVfZ2VtX3BoeXNfcHdyaXRlKG9i aiwgYXJncywgZmlsZSk7Ci0JCWVsc2UKKwkJZWxzZSBpZiAob2JqLT5iYXNlLmZpbHApCiAJCQly ZXQgPSBpOTE1X2dlbV9zaG1lbV9wd3JpdGUoZGV2LCBvYmosIGFyZ3MsIGZpbGUpOworCQllbHNl CisJCQlyZXQgPSAtRU5PREVWOwogCX0KIAogb3V0OgpAQCAtMzg5Miw5ICs0MDAwLDcgQEAgb3V0 OgogCSAqIG9iamVjdCBpcyBub3cgY29oZXJlbnQgYXQgaXRzIG5ldyBjYWNoZSBsZXZlbCAod2l0 aCByZXNwZWN0CiAJICogdG8gdGhlIGFjY2VzcyBkb21haW4pLgogCSAqLwotCWlmIChvYmotPmNh Y2hlX2RpcnR5ICYmCi0JICAgIG9iai0+YmFzZS53cml0ZV9kb21haW4gIT0gSTkxNV9HRU1fRE9N QUlOX0NQVSAmJgotCSAgICBjcHVfd3JpdGVfbmVlZHNfY2xmbHVzaChvYmopKSB7CisJaWYgKG9i ai0+Y2FjaGVfZGlydHkgJiYgY3B1X3dyaXRlX25lZWRzX2NsZmx1c2gob2JqKSkgewogCQlpZiAo aTkxNV9nZW1fY2xmbHVzaF9vYmplY3Qob2JqLCB0cnVlKSkKIAkJCWk5MTVfZ2VtX2NoaXBzZXRf Zmx1c2gob2JqLT5iYXNlLmRldik7CiAJfQotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==