From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: [PATCH v7 4/7] drm/i915: introduce and use i915_gem_object_vmap_range() Date: Tue, 1 Mar 2016 16:33:56 +0000 Message-ID: <1456850039-25856-5-git-send-email-david.s.gordon@intel.com> References: <1456850039-25856-1-git-send-email-david.s.gordon@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 5C8F86E6D5 for ; Tue, 1 Mar 2016 16:34:24 +0000 (UTC) In-Reply-To: <1456850039-25856-1-git-send-email-david.s.gordon@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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQWxleCBEYWkgPHl1LmRhaUBpbnRlbC5jb20+CgpUaGVyZSBhcmUgc2V2ZXJhbCBwbGFj ZXMgaW5zaWRlIGRyaXZlciB3aGVyZSBhIEdFTSBvYmplY3QgaXMgbWFwcGVkCnRvIGtlcm5lbCB2 aXJ0dWFsIHNwYWNlLiBUaGUgbWFwcGluZyBtYXkgYmUgZG9uZSBlaXRoZXIgZm9yIHRoZSB3aG9s ZQpvYmplY3Qgb3Igb25seSBhIHN1YnNldCBvZiBpdC4KClRoaXMgcGF0Y2ggaW50cm9kdWNlcyBh IGZ1bmN0aW9uIGk5MTVfZ2VtX29iamVjdF92bWFwX3JhbmdlKCkgdG8KaW1wbGVtZW50IHRoZSBj b21tb24gZnVuY3Rpb25hbGl0eS4gVGhlIGNvZGUgaXRzZWxmIGlzIGV4dHJhY3RlZCBhbmQKYWRh cHRlZCBmcm9tIHRoYXQgaW4gdm1hcF9iYXRjaCgpLCBidXQgYWxzbyByZXBsYWNlcyB2bWFwX29i aigpIGFuZAp0aGUgb3Blbi1jb2RlZCB2ZXJzaW9uIGluIGk5MTVfZ2VtX2RtYWJ1Zl92bWFwKCku Cgp2MjogdXNlIG9iai0+cGFnZXMtPm5lbnRzIGZvciBpdGVyYXRpb24gd2l0aGluIGk5MTVfZ2Vt X29iamVjdF92bWFwOwogICAgYnJlYWsgd2hlbiBpdCBmaW5pc2hlcyBhbGwgZGVzaXJlZCBwYWdl cy4gVGhlIGNhbGxlciBtdXN0IHBhc3MKICAgIHRoZSBhY3R1YWwgcGFnZSBjb3VudCByZXF1aXJl ZC4gW1R2cnRrbyBVcnN1bGluXQoKdjQ6IHJlbmFtZWQgdG8gaTkxNV9nZW1fb2JqZWN0X3ZtYXBf cmFuZ2UoKSB0byBtYWtlIGl0cyBmdW5jdGlvbgogICAgY2xlYXJlci4gW0RhdmUgR29yZG9uXQoK djU6IHVzZSBDaHJpcyBXaWxzb24ncyBuZXcgZHJtX21hbGxvY19nZnAoKSByYXRoZXIgdGhhbiBr bWFsbG9jKCkgb3IKICAgIGRybV9tYWxsb2NfYWIoKS4gW0RhdmUgR29yZG9uXQoKdjY6IGNoYW5n ZWQgcmFuZ2UgY2hlY2tpbmcgdG8gbm90IHVzZSBwYWdlcy0+bmVudHMuIFtUdnJ0a28gVXJzdWxp bl0KICAgIFVzZSBzZ19uZW50c19mb3JfbGVuKCkgZm9yIHJhbmdlIGNoZWNrIGluc3RlYWQuIFtE YXZlIEdvcmRvbl0KICAgIFBhc3MgcmFuZ2UgcGFyYW1ldGVycyBpbiBieXRlcyByYXRoZXIgdGhh biBwYWdlcyAoYm90aCBjYWxsZXJzCiAgICB3ZXJlIGNvbnZlcnRpbmcgZnJvbSBieXRlcyB0byBw YWdlcyBhbnl3YXksIHNvIHRoaXMgcmVkdWNlcyB0aGUKICAgIG51bWJlciBvZiBwbGFjZXMgd2hl cmUgdGhlIGNvbnZlcnNpb24gaXMgZG9uZSkuCgp2NzogY2hhbmdlZCByYW5nZSBwYXJhbWV0ZXJz IGJhY2sgdG8gcGFnZXMsIGFuZCBzaW1wbGlmaWVkIHBhcmFtZXRlcgogICAgdmFsaWRhdGlvbi4g W1R2cnRrbyBVcnN1bGluXSBBcyBhIGNvbnZlbmllbmNlIGZvciBjYWxsZXJzLCBhbGxvdwogICAg bnBhZ2VzPT0wIGFzIGEgc2hvcnRoYW5kIGZvciAidXAgdG8gdGhlIGVuZCBvZiB0aGUgb2JqZWN0 Ii4KCldpdGggdGhpcyBjaGFuZ2UsIHdlIGhhdmUgb25seSBvbmUgdm1hcCgpIGluIHRoZSB3aG9s ZSBkcml2ZXIgOikKClNpZ25lZC1vZmYtYnk6IEFsZXggRGFpIDx5dS5kYWlAaW50ZWwuY29tPgpT aWduZWQtb2ZmLWJ5OiBEYXZlIEdvcmRvbiA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgpDYzog VHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KQ2M6IENocmlzIFdpbHNv biA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfY21kX3BhcnNlci5jICB8IDM0ICsrKy0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICB8ICA0ICsrKwogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYyAgICAgICAgIHwgNTkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kbWFidWYuYyAgfCAxNSArKy0tLS0tLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8IDIzICstLS0tLS0tLS0t LS0KIDUgZmlsZXMgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygrKSwgNjQgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRfcGFyc2VyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2NtZF9wYXJzZXIuYwppbmRleCA4MTRkODk0Li40ZDQ4NjE3 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2NtZF9wYXJzZXIuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2NtZF9wYXJzZXIuYwpAQCAtODYzLDM3ICs4NjMs MTMgQEAgdm9pZCBpOTE1X2NtZF9wYXJzZXJfZmluaV9yaW5nKHN0cnVjdCBpbnRlbF9lbmdpbmVf Y3MgKnJpbmcpCiBzdGF0aWMgdTMyICp2bWFwX2JhdGNoKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmosCiAJCSAgICAgICB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuKQogewotCWlu dCBpOwotCXZvaWQgKmFkZHIgPSBOVUxMOwotCXN0cnVjdCBzZ19wYWdlX2l0ZXIgc2dfaXRlcjsK LQlpbnQgZmlyc3RfcGFnZSA9IHN0YXJ0ID4+IFBBR0VfU0hJRlQ7Ci0JaW50IGxhc3RfcGFnZSA9 IChsZW4gKyBzdGFydCArIDQwOTUpID4+IFBBR0VfU0hJRlQ7Ci0JaW50IG5wYWdlcyA9IGxhc3Rf cGFnZSAtIGZpcnN0X3BhZ2U7Ci0Jc3RydWN0IHBhZ2UgKipwYWdlczsKLQotCXBhZ2VzID0gZHJt X21hbGxvY19hYihucGFnZXMsIHNpemVvZigqcGFnZXMpKTsKLQlpZiAocGFnZXMgPT0gTlVMTCkg ewotCQlEUk1fREVCVUdfRFJJVkVSKCJGYWlsZWQgdG8gZ2V0IHNwYWNlIGZvciBwYWdlc1xuIik7 Ci0JCWdvdG8gZmluaXNoOwotCX0KLQotCWkgPSAwOwotCWZvcl9lYWNoX3NnX3BhZ2Uob2JqLT5w YWdlcy0+c2dsLCAmc2dfaXRlciwgb2JqLT5wYWdlcy0+bmVudHMsIGZpcnN0X3BhZ2UpIHsKLQkJ cGFnZXNbaSsrXSA9IHNnX3BhZ2VfaXRlcl9wYWdlKCZzZ19pdGVyKTsKLQkJaWYgKGkgPT0gbnBh Z2VzKQotCQkJYnJlYWs7Ci0JfQorCXVuc2lnbmVkIGxvbmcgZmlyc3QsIG5wYWdlczsKIAotCWFk ZHIgPSB2bWFwKHBhZ2VzLCBpLCAwLCBQQUdFX0tFUk5FTCk7Ci0JaWYgKGFkZHIgPT0gTlVMTCkg ewotCQlEUk1fREVCVUdfRFJJVkVSKCJGYWlsZWQgdG8gdm1hcCBwYWdlc1xuIik7Ci0JCWdvdG8g ZmluaXNoOwotCX0KKwkvKiBDb252ZXJ0IFtzdGFydCwgbGVuKSB0byBwYWdlcyAqLworCWZpcnN0 ID0gc3RhcnQgPj4gUEFHRV9TSElGVDsKKwlucGFnZXMgPSBESVZfUk9VTkRfVVAoc3RhcnQgKyBs ZW4sIFBBR0VfU0laRSkgLSBmaXJzdDsKIAotZmluaXNoOgotCWlmIChwYWdlcykKLQkJZHJtX2Zy ZWVfbGFyZ2UocGFnZXMpOwotCXJldHVybiAodTMyKilhZGRyOworCXJldHVybiBpOTE1X2dlbV9v YmplY3Rfdm1hcF9yYW5nZShvYmosIGZpcnN0LCBucGFnZXMpOwogfQogCiAvKiBSZXR1cm5zIGEg dm1hcCdkIHBvaW50ZXIgdG8gZGVzdF9vYmosIHdoaWNoIHRoZSBjYWxsZXIgbXVzdCB1bm1hcCAq LwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggYTRkY2I3NC4uYjNhZTE5MSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCkBAIC0yOTgzLDYgKzI5ODMsMTAgQEAgc3RhdGljIGlubGluZSB2b2lk IGk5MTVfZ2VtX29iamVjdF91bnBpbl9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKQogCW9iai0+cGFnZXNfcGluX2NvdW50LS07CiB9CiAKK3ZvaWQgKl9fbXVzdF9jaGVjayBp OTE1X2dlbV9vYmplY3Rfdm1hcF9yYW5nZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq LAorCQkJCQkgICAgICB1bnNpZ25lZCBsb25nIGZpcnN0LAorCQkJCQkgICAgICB1bnNpZ25lZCBs b25nIG5wYWdlcyk7CisKIGludCBfX211c3RfY2hlY2sgaTkxNV9tdXRleF9sb2NrX2ludGVycnVw dGlibGUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiBpbnQgaTkxNV9nZW1fb2JqZWN0X3N5bmMo c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJCSBzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICp0bywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCmluZGV4IDNkMzFkM2EuLmQ3YzljY2QgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpAQCAtMjQwMCw2ICsyNDAwLDY1IEBAIHN0YXRpYyB2b2lk IGk5MTVfZ2VtX29iamVjdF9mcmVlX21tYXBfb2Zmc2V0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmopCiAJcmV0dXJuIDA7CiB9CiAKKy8qKgorICogaTkxNV9nZW1fb2JqZWN0X3ZtYXBf cmFuZ2UgLSBtYXAgc29tZSBvciBhbGwgb2YgYSBHRU0gb2JqZWN0IGludG8ga2VybmVsIHNwYWNl CisgKiBAb2JqOiB0aGUgR0VNIG9iamVjdCB0byBiZSBtYXBwZWQKKyAqIEBmaXJzdDogb2Zmc2V0 IGluIHBhZ2VzIG9mIHRoZSBzdGFydCBvZiB0aGUgcmFuZ2UgdG8gYmUgbWFwcGVkCisgKiBAbnBh Z2VzOiBsZW5ndGggaW4gcGFnZXMgb2YgdGhlIHJhbmdlIHRvIGJlIG1hcHBlZC4gRm9yIGNvbnZl bmllbmNlLCBhCisgKiAgICAgICAgICBsZW5ndGggb2YgemVybyBpcyB0YWtlbiB0byBtZWFuICJ0 aGUgcmVtYWluZGVyIG9mIHRoZSBvYmplY3QiCisgKgorICogTWFwIGEgZ2l2ZW4gcmFuZ2Ugb2Yg YSBHRU0gb2JqZWN0IGludG8ga2VybmVsIHZpcnR1YWwgc3BhY2UuICBUaGUgY2FsbGVyIG11c3QK KyAqIG1ha2Ugc3VyZSB0aGUgYXNzb2NpYXRlZCBwYWdlcyBhcmUgZ2F0aGVyZWQgYW5kIHBpbm5l ZCBiZWZvcmUgY2FsbGluZyB0aGlzCisgKiBmdW5jdGlvbiwgYW5kIGlzIHJlc3BvbnNpYmxlIGZv ciB1bm1hcHBpbmcgdGhlIHJldHVybmVkIGFkZHJlc3Mgd2hlbiBpdCBpcyBubworICogbG9uZ2Vy IHJlcXVpcmVkLgorICoKKyAqIFJldHVybnMgdGhlIGFkZHJlc3MgYXQgd2hpY2ggdGhlIG9iamVj dCBoYXMgYmVlbiBtYXBwZWQsIG9yIE5VTEwgb24gZmFpbHVyZS4KKyAqLwordm9pZCAqaTkxNV9n ZW1fb2JqZWN0X3ZtYXBfcmFuZ2Uoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKKwkJ CQkgdW5zaWduZWQgbG9uZyBmaXJzdCwKKwkJCQkgdW5zaWduZWQgbG9uZyBucGFnZXMpCit7CisJ dW5zaWduZWQgbG9uZyBtYXhfcGFnZXMgPSBvYmotPmJhc2Uuc2l6ZSA+PiBQQUdFX1NISUZUOwor CXN0cnVjdCBzY2F0dGVybGlzdCAqc2cgPSBvYmotPnBhZ2VzLT5zZ2w7CisJc3RydWN0IHNnX3Bh Z2VfaXRlciBzZ19pdGVyOworCXN0cnVjdCBwYWdlICoqcGFnZXM7CisJdW5zaWduZWQgbG9uZyBp ID0gMDsKKwl2b2lkICphZGRyID0gTlVMTDsKKworCS8qIE1pbmltYWwgcmFuZ2UgY2hlY2sgKi8K KwlpZiAoZmlyc3QgKyBucGFnZXMgPiBtYXhfcGFnZXMpIHsKKwkJRFJNX0RFQlVHX0RSSVZFUigi SW52YWxpZCBwYWdlIHJhbmdlXG4iKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJLyogbnBhZ2Vz PT0wIGlzIHNob3J0aGFuZCBmb3IgInRoZSByZXN0IG9mIHRoZSBvYmplY3QiICovCisJaWYgKG5w YWdlcyA9PSAwKQorCQlucGFnZXMgPSBtYXhfcGFnZXMgLSBmaXJzdDsKKworCXBhZ2VzID0gZHJt X21hbGxvY19nZnAobnBhZ2VzLCBzaXplb2YoKnBhZ2VzKSwgR0ZQX1RFTVBPUkFSWSk7CisJaWYg KHBhZ2VzID09IE5VTEwpIHsKKwkJRFJNX0RFQlVHX0RSSVZFUigiRmFpbGVkIHRvIGdldCBzcGFj ZSBmb3IgcGFnZXNcbiIpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwlmb3JfZWFjaF9zZ19wYWdl KHNnLCAmc2dfaXRlciwgbWF4X3BhZ2VzLCBmaXJzdCkgeworCQlwYWdlc1tpXSA9IHNnX3BhZ2Vf aXRlcl9wYWdlKCZzZ19pdGVyKTsKKwkJaWYgKCsraSA9PSBucGFnZXMpIHsKKwkJCWFkZHIgPSB2 bWFwKHBhZ2VzLCBucGFnZXMsIDAsIFBBR0VfS0VSTkVMKTsKKwkJCWJyZWFrOworCQl9CisJfQor CisJLyogV2Ugc2hvdWxkIGhhdmUgZ290IGhlcmUgdmlhIHRoZSAnYnJlYWsnIGFib3ZlICovCisJ V0FSTl9PTihpICE9IG5wYWdlcyk7CisJaWYgKGFkZHIgPT0gTlVMTCkKKwkJRFJNX0RFQlVHX0RS SVZFUigiRmFpbGVkIHRvIHZtYXAgcGFnZXNcbiIpOworCisJZHJtX2ZyZWVfbGFyZ2UocGFnZXMp OworCisJcmV0dXJuIGFkZHI7Cit9CisKIHZvaWQgaTkxNV92bWFfbW92ZV90b19hY3RpdmUoc3Ry dWN0IGk5MTVfdm1hICp2bWEsCiAJCQkgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxKQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVm LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kbWFidWYuYwppbmRleCA2MTZmMDc4 Li4zYTVkMDFhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kbWFi dWYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kbWFidWYuYwpAQCAtMTA4 LDkgKzEwOCw3IEBAIHN0YXRpYyB2b2lkICppOTE1X2dlbV9kbWFidWZfdm1hcChzdHJ1Y3QgZG1h X2J1ZiAqZG1hX2J1ZikKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gZG1h X2J1Zl90b19vYmooZG1hX2J1Zik7CiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG9iai0+YmFz ZS5kZXY7Ci0Jc3RydWN0IHNnX3BhZ2VfaXRlciBzZ19pdGVyOwotCXN0cnVjdCBwYWdlICoqcGFn ZXM7Ci0JaW50IHJldCwgaTsKKwlpbnQgcmV0OwogCiAJcmV0ID0gaTkxNV9tdXRleF9sb2NrX2lu dGVycnVwdGlibGUoZGV2KTsKIAlpZiAocmV0KQpAQCAtMTI5LDE2ICsxMjcsNyBAQCBzdGF0aWMg dm9pZCAqaTkxNV9nZW1fZG1hYnVmX3ZtYXAoc3RydWN0IGRtYV9idWYgKmRtYV9idWYpCiAKIAly ZXQgPSAtRU5PTUVNOwogCi0JcGFnZXMgPSBkcm1fbWFsbG9jX2FiKG9iai0+YmFzZS5zaXplID4+ IFBBR0VfU0hJRlQsIHNpemVvZigqcGFnZXMpKTsKLQlpZiAocGFnZXMgPT0gTlVMTCkKLQkJZ290 byBlcnJfdW5waW47Ci0KLQlpID0gMDsKLQlmb3JfZWFjaF9zZ19wYWdlKG9iai0+cGFnZXMtPnNn bCwgJnNnX2l0ZXIsIG9iai0+cGFnZXMtPm5lbnRzLCAwKQotCQlwYWdlc1tpKytdID0gc2dfcGFn ZV9pdGVyX3BhZ2UoJnNnX2l0ZXIpOwotCi0Jb2JqLT5kbWFfYnVmX3ZtYXBwaW5nID0gdm1hcChw YWdlcywgaSwgMCwgUEFHRV9LRVJORUwpOwotCWRybV9mcmVlX2xhcmdlKHBhZ2VzKTsKKwlvYmot PmRtYV9idWZfdm1hcHBpbmcgPSBpOTE1X2dlbV9vYmplY3Rfdm1hcF9yYW5nZShvYmosIDAsIDAp OwogCiAJaWYgKCFvYmotPmRtYV9idWZfdm1hcHBpbmcpCiAJCWdvdG8gZXJyX3VucGluOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCmluZGV4IDhmNTI1NTYuLjU4YTE4ZTEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKQEAgLTIwNjQsMjcgKzIw NjQsNiBAQCB2b2lkIGludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKHN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyICpyaW5nYnVmKQogCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKHJpbmdidWYtPm9i aik7CiB9CiAKLXN0YXRpYyB1MzIgKnZtYXBfb2JqKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmopCi17Ci0Jc3RydWN0IHNnX3BhZ2VfaXRlciBzZ19pdGVyOwotCXN0cnVjdCBwYWdlICoq cGFnZXM7Ci0Jdm9pZCAqYWRkcjsKLQlpbnQgaTsKLQotCXBhZ2VzID0gZHJtX21hbGxvY19hYihv YmotPmJhc2Uuc2l6ZSA+PiBQQUdFX1NISUZULCBzaXplb2YoKnBhZ2VzKSk7Ci0JaWYgKHBhZ2Vz ID09IE5VTEwpCi0JCXJldHVybiBOVUxMOwotCi0JaSA9IDA7Ci0JZm9yX2VhY2hfc2dfcGFnZShv YmotPnBhZ2VzLT5zZ2wsICZzZ19pdGVyLCBvYmotPnBhZ2VzLT5uZW50cywgMCkKLQkJcGFnZXNb aSsrXSA9IHNnX3BhZ2VfaXRlcl9wYWdlKCZzZ19pdGVyKTsKLQotCWFkZHIgPSB2bWFwKHBhZ2Vz LCBpLCAwLCBQQUdFX0tFUk5FTCk7Ci0JZHJtX2ZyZWVfbGFyZ2UocGFnZXMpOwotCi0JcmV0dXJu IGFkZHI7Ci19Ci0KIGludCBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAogCQkJCSAgICAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdi dWYpCiB7CkBAIC0yMTAxLDcgKzIwODAsNyBAQCBpbnQgaW50ZWxfcGluX2FuZF9tYXBfcmluZ2J1 ZmZlcl9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJaWYgKHJldCkKIAkJCWdvdG8gdW5w aW47CiAKLQkJcmluZ2J1Zi0+dmlydHVhbF9zdGFydCA9IHZtYXBfb2JqKG9iaik7CisJCXJpbmdi dWYtPnZpcnR1YWxfc3RhcnQgPSBpOTE1X2dlbV9vYmplY3Rfdm1hcF9yYW5nZShvYmosIDAsIDAp OwogCQlpZiAocmluZ2J1Zi0+dmlydHVhbF9zdGFydCA9PSBOVUxMKSB7CiAJCQlyZXQgPSAtRU5P TUVNOwogCQkJZ290byB1bnBpbjsKLS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK