From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH 01/19] drm/i915: introduce simple gemfs Date: Wed, 21 Jun 2017 21:33:27 +0100 Message-ID: <20170621203345.26320-2-matthew.auld@intel.com> References: <20170621203345.26320-1-matthew.auld@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 ESMTPS id 772B86E57A for ; Wed, 21 Jun 2017 20:33:48 +0000 (UTC) In-Reply-To: <20170621203345.26320-1-matthew.auld@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 Tm90IGEgZnVsbHkgYmxvd24gZ2VtZnMsIGp1c3Qgb3VyIHZlcnkgb3duIHRtcGZzIGtlcm5lbCBt b3VudC4gRG9pbmcgc28KbW92ZXMgdXMgYXdheSBmcm9tIHRoZSBzaG1lbWZzIHNobV9tbnQsIGFu ZCBnaXZlcyB1cyB0aGUgbXVjaCBuZWVkZWQKZmxleGliaWxpdHkgdG8gZG8gdGhpbmdzIGxpa2Ug c2V0IG91ciBvd24gbW91bnQgb3B0aW9ucywgbmFtZWx5IGh1Z2U9CndoaWNoIHNob3VsZCBhbGxv dyB1cyB0byBlbmFibGUgdGhlIHVzZSBvZiB0cmFuc3BhcmVudC1odWdlLXBhZ2VzIGZvcgpvdXIg c2htZW0gYmFja2VkIG9iamVjdHMuCgp2MjogdmFyaW91cyBpbXByb3ZlbWVudHMgc3VnZ2VzdGVk IGJ5IEpvb25hcwoKU2lnbmVkLW9mZi1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50 ZWwuY29tPgpDYzogSm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwu Y29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICAgICAgICB8ICAgMyArCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jICAgICAgICAgICAgICAgICAgfCAgNDQgKysr KysrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbWZzLmMgICAgICAgICAgICAgICAg fCAxMTQgKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtZnMuaCAgICAgICAgICAgICAgICB8ICA0MCArKysrKysrKwogZHJpdmVycy9ncHUvZHJtL2k5 MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5jIHwgIDEwICstCiA2IGZpbGVzIGNoYW5nZWQs IDIwOCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtZnMuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtZnMuaAoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKaW5kZXggZjgy MjczMThkY2FmLi4yOWUzY2ZkZjU2Y2UgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCkBAIC00Niw2ICs0 Niw3IEBAIGk5MTUteSArPSBpOTE1X2NtZF9wYXJzZXIubyBcCiAJICBpOTE1X2dlbV90aWxpbmcu byBcCiAJICBpOTE1X2dlbV90aW1lbGluZS5vIFwKIAkgIGk5MTVfZ2VtX3VzZXJwdHIubyBcCisJ ICBpOTE1X2dlbWZzLm8gXAogCSAgaTkxNV90cmFjZV9wb2ludHMubyBcCiAJICBpOTE1X3ZtYS5v IFwKIAkgIGludGVsX2JyZWFkY3J1bWJzLm8gXApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXgg MzBlODk0NTZmYzYxLi4zNzZjZDkzYTk3M2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAt MjI0OCw2ICsyMjQ4LDkgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCURFQ0xBUkVfSEFT SFRBQkxFKG1tX3N0cnVjdHMsIDcpOwogCXN0cnVjdCBtdXRleCBtbV9sb2NrOwogCisJLyogT3Vy IHRtcGZzIGluc3RhbmNlIHVzZWQgZm9yIHNobWVtIGJhY2tlZCBvYmplY3RzICovCisJc3RydWN0 IHZmc21vdW50ICpnZW1mczsKKwogCS8qIEtlcm5lbCBNb2Rlc2V0dGluZyAqLwogCiAJc3RydWN0 IGludGVsX2NydGMgKnBsYW5lX3RvX2NydGNfbWFwcGluZ1tJOTE1X01BWF9QSVBFU107CmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYwppbmRleCAxMzUzNDkxYzEwMTAuLjMwZjA0ZDNmYzhjOSAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiaW50ZWxfZHJ2 LmgiCiAjaW5jbHVkZSAiaW50ZWxfZnJvbnRidWZmZXIuaCIKICNpbmNsdWRlICJpbnRlbF9tb2Nz LmgiCisjaW5jbHVkZSAiaTkxNV9nZW1mcy5oIgogI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5jZS1h cnJheS5oPgogI2luY2x1ZGUgPGxpbnV4L2t0aHJlYWQuaD4KICNpbmNsdWRlIDxsaW51eC9yZXNl cnZhdGlvbi5oPgpAQCAtNDMwOCw2ICs0MzA5LDMyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdF9vcHMgaTkxNV9nZW1fb2JqZWN0X29wcyA9IHsKIAkucHdyaXRlID0g aTkxNV9nZW1fb2JqZWN0X3B3cml0ZV9ndHQsCiB9OwogCitzdGF0aWMgaW50IGk5MTVfZHJtX2dl bV9vYmplY3RfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJCSAgICBzdHJ1Y3QgZHJt X2dlbV9vYmplY3QgKm9iaiwKKwkJCQkgICAgc2l6ZV90IHNpemUpCit7CisJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGZpbGUgKmZpbHA7CisK Kwlkcm1fZ2VtX3ByaXZhdGVfb2JqZWN0X2luaXQoZGV2LCBvYmosIHNpemUpOworCisJZmlscCA9 IGk5MTVfZ2VtZnNfZmlsZV9zZXR1cChpOTE1LCAiaTkxNSBtbSBvYmplY3QiLCBzaXplKTsKKwlp ZiAoSVNfRVJSKGZpbHApKQorCQlyZXR1cm4gUFRSX0VSUihmaWxwKTsKKworCW9iai0+ZmlscCA9 IGZpbHA7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgaTkxNV9kcm1fZ2VtX29iamVj dF9yZWxlYXNlKHN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqKQoreworCWlmIChvYmotPmZpbHAp CisJCWk5MTVfZ2VtZnNfdW5saW5rKG9iai0+ZmlscCk7CisKKwlkcm1fZ2VtX29iamVjdF9yZWxl YXNlKG9iaik7Cit9CisKIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKIGk5MTVfZ2VtX29i amVjdF9jcmVhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1NjQgc2l6ZSkK IHsKQEAgLTQzMzEsNyArNDM1OCw3IEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1NjQgc2l6ZSkKIAlpZiAob2JqID09IE5VTEwpCiAJ CXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwogCi0JcmV0ID0gZHJtX2dlbV9vYmplY3RfaW5pdCgm ZGV2X3ByaXYtPmRybSwgJm9iai0+YmFzZSwgc2l6ZSk7CisJcmV0ID0gaTkxNV9kcm1fZ2VtX29i amVjdF9pbml0KCZkZXZfcHJpdi0+ZHJtLCAmb2JqLT5iYXNlLCBzaXplKTsKIAlpZiAocmV0KQog CQlnb3RvIGZhaWw7CiAKQEAgLTQ0NDksNyArNDQ3Niw4IEBAIHN0YXRpYyB2b2lkIF9faTkxNV9n ZW1fZnJlZV9vYmplY3RzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQkJZHJtX3By aW1lX2dlbV9kZXN0cm95KCZvYmotPmJhc2UsIE5VTEwpOwogCiAJCXJlc2VydmF0aW9uX29iamVj dF9maW5pKCZvYmotPl9fYnVpbHRpbl9yZXN2KTsKLQkJZHJtX2dlbV9vYmplY3RfcmVsZWFzZSgm b2JqLT5iYXNlKTsKKworCQlpOTE1X2RybV9nZW1fb2JqZWN0X3JlbGVhc2UoJm9iai0+YmFzZSk7 CiAJCWk5MTVfZ2VtX2luZm9fcmVtb3ZlX29iaihpOTE1LCBvYmotPmJhc2Uuc2l6ZSk7CiAKIAkJ a2ZyZWUob2JqLT5iaXRfMTcpOwpAQCAtNDkwOSw3ICs0OTM3LDEzIEBAIGk5MTVfZ2VtX2xvYWRf aW5pdF9mZW5jZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogaW50CiBpOTE1 X2dlbV9sb2FkX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCWlu dCBlcnIgPSAtRU5PTUVNOworCWludCBlcnI7CisKKwllcnIgPSBpOTE1X2dlbWZzX2luaXQoZGV2 X3ByaXYpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7CisKKwllcnIgPSAtRU5PTUVNOwogCiAJ ZGV2X3ByaXYtPm9iamVjdHMgPSBLTUVNX0NBQ0hFKGRybV9pOTE1X2dlbV9vYmplY3QsIFNMQUJf SFdDQUNIRV9BTElHTik7CiAJaWYgKCFkZXZfcHJpdi0+b2JqZWN0cykKQEAgLTQ5NzUsNiArNTAw OSw4IEBAIGk5MTVfZ2VtX2xvYWRfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCiBlcnJfb2JqZWN0czoKIAlrbWVtX2NhY2hlX2Rlc3Ryb3koZGV2X3ByaXYtPm9iamVjdHMp OwogZXJyX291dDoKKwlpOTE1X2dlbWZzX2ZpbmkoZGV2X3ByaXYpOworCiAJcmV0dXJuIGVycjsK IH0KIApAQCAtNDk5Nyw2ICs1MDMzLDggQEAgdm9pZCBpOTE1X2dlbV9sb2FkX2NsZWFudXAoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJLyogQW5kIGVuc3VyZSB0aGF0IG91 ciBERVNUUk9ZX0JZX1JDVSBzbGFicyBhcmUgdHJ1bHkgZGVzdHJveWVkICovCiAJcmN1X2JhcnJp ZXIoKTsKKworCWk5MTVfZ2VtZnNfZmluaShkZXZfcHJpdik7CiB9CiAKIGludCBpOTE1X2dlbV9m cmVlemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1mcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1mcy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjJiMjY2 ZDFkMzZkCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1m cy5jCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTcgSW50ZWwgQ29y cG9yYXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNo YXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJl IGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAq IHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3 aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1l cmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29w aWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisg KiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2lu ZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz IHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hh bGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0 aGUKKyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMi LCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJ TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ TElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H RU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhP TERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJ TElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNF LCBBUklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZU V0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisg KgorICovCisKKyNpbmNsdWRlIDxsaW51eC9mcy5oPgorI2luY2x1ZGUgPGxpbnV4L2ZpbGUuaD4K KyNpbmNsdWRlIDxsaW51eC9tb3VudC5oPgorCisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNpbmNs dWRlICJpOTE1X2dlbWZzLmgiCisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGVudHJ5X29wZXJhdGlv bnMgYW5vbl9vcHMgPSB7CisJLmRfZG5hbWUgPSBzaW1wbGVfZG5hbWUKK307CisKK2ludCBpOTE1 X2dlbWZzX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJc3RydWN0IGZp bGVfc3lzdGVtX3R5cGUgKnR5cGU7CisJc3RydWN0IHZmc21vdW50ICpnZW1mczsKKworCXR5cGUg PSBnZXRfZnNfdHlwZSgidG1wZnMiKTsKKwlpZiAoIXR5cGUpCisJCXJldHVybiAtRU5PREVWOwor CisJZ2VtZnMgPSBrZXJuX21vdW50KHR5cGUpOworCWlmIChJU19FUlIoZ2VtZnMpKQorCQlyZXR1 cm4gUFRSX0VSUihnZW1mcyk7CisKKwlpOTE1LT5nZW1mcyA9IGdlbWZzOworCisJcmV0dXJuIDA7 Cit9CisKK3ZvaWQgaTkxNV9nZW1mc19maW5pKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 KQoreworCWtlcm5fdW5tb3VudChpOTE1LT5nZW1mcyk7CisJaTkxNS0+Z2VtZnMgPSBOVUxMOwor fQorCitzdHJ1Y3QgZmlsZSAqaTkxNV9nZW1mc19maWxlX3NldHVwKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICppOTE1LAorCQkJCSAgIGNvbnN0IGNoYXIgKm5hbWUsIHNpemVfdCBzaXplKQorewor CXN0cnVjdCBzdXBlcl9ibG9jayAqc2IgPSBpOTE1LT5nZW1mcy0+bW50X3NiOworCXN0cnVjdCBp bm9kZSAqZGlyID0gZF9pbm9kZShzYi0+c19yb290KTsKKwlzdHJ1Y3QgaW5vZGUgKmlub2RlOwor CXN0cnVjdCBwYXRoIHBhdGg7CisJc3RydWN0IHFzdHIgdGhpczsKKwlzdHJ1Y3QgZmlsZSAqcmVz OworCWludCByZXQ7CisKKwlpZiAoc2l6ZSA8IDAgfHwgc2l6ZSA+IE1BWF9MRlNfRklMRVNJWkUp CisJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOworCisJdGhpcy5uYW1lID0gbmFtZTsKKwl0aGlz LmxlbiA9IHN0cmxlbihuYW1lKTsKKwl0aGlzLmhhc2ggPSAwOworCisJcGF0aC5tbnQgPSBtbnRn ZXQoaTkxNS0+Z2VtZnMpOworCXBhdGguZGVudHJ5ID0gZF9hbGxvY19wc2V1ZG8oc2IsICZ0aGlz KTsKKwlpZiAoIXBhdGguZGVudHJ5KSB7CisJCXJlcyA9IEVSUl9QVFIoLUVOT01FTSk7CisJCWdv dG8gcHV0X3BhdGg7CisJfQorCWRfc2V0X2Rfb3AocGF0aC5kZW50cnksICZhbm9uX29wcyk7CisK KwlyZXQgPSBkaXItPmlfb3AtPmNyZWF0ZShkaXIsIHBhdGguZGVudHJ5LCBTX0lGUkVHIHwgU19J UldYVUdPLCBmYWxzZSk7CisJaWYgKHJldCkgeworCQlyZXMgPSBFUlJfUFRSKHJldCk7CisJCWdv dG8gcHV0X3BhdGg7CisJfQorCisJaW5vZGUgPSBkX2lub2RlKHBhdGguZGVudHJ5KTsKKwlpbm9k ZS0+aV9zaXplID0gc2l6ZTsKKworCXJlcyA9IGFsbG9jX2ZpbGUoJnBhdGgsIEZNT0RFX1dSSVRF IHwgRk1PREVfUkVBRCwgaW5vZGUtPmlfZm9wKTsKKwlpZiAoSVNfRVJSKHJlcykpCisJCWdvdG8g dW5saW5rOworCisJcmV0dXJuIHJlczsKKwordW5saW5rOgorCWRpci0+aV9vcC0+dW5saW5rKGRp ciwgcGF0aC5kZW50cnkpOworcHV0X3BhdGg6CisJcGF0aF9wdXQoJnBhdGgpOworCisJcmV0dXJu IHJlczsKK30KKworaW50IGk5MTVfZ2VtZnNfdW5saW5rKHN0cnVjdCBmaWxlICpmaWxwKQorewor CXN0cnVjdCBpbm9kZSAqZGlyID0gZF9pbm9kZShmaWxwLT5mX2lub2RlLT5pX3NiLT5zX3Jvb3Qp OworCisJcmV0dXJuIGRpci0+aV9vcC0+dW5saW5rKGRpciwgZmlscC0+Zl9wYXRoLmRlbnRyeSk7 Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbWZzLmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbWZzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi4zNGUwYzc5Y2EyZGUKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbWZzLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdo dCDCqSAyMDE3IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkg Z3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNv cHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0 aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3Ry aWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVz ZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwK KyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVy c29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq ZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJp Z2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0 CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3Rh bnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUg SVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVT UyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFO VElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRI T1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VT IE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNU LCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F Q1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICog SU4gVEhFIFNPRlRXQVJFLgorICoKKyAqLworCisjaWZuZGVmIF9fSTkxNV9HRU1GU19IX18KKyNk ZWZpbmUgX19JOTE1X0dFTUZTX0hfXworCitzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKK3N0cnVj dCBmaWxlOworCitpbnQgaTkxNV9nZW1mc19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1KTsKKwordm9pZCBpOTE1X2dlbWZzX2Zpbmkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUpOworCitzdHJ1Y3QgZmlsZSAqaTkxNV9nZW1mc19maWxlX3NldHVwKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1LAorCQkJCSAgIGNvbnN0IGNoYXIgKm5hbWUsIHNpemVfdCBzaXplKTsK KworaW50IGk5MTVfZ2VtZnNfdW5saW5rKHN0cnVjdCBmaWxlICpmaWxwKTsKKworI2VuZGlmCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNl LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMKaW5k ZXggNDc2MTNkMjBiYmE4Li4wYWM0ZWZkNWM3YTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMKQEAgLTgxLDYgKzgxLDggQEAgc3RhdGlj IHZvaWQgbW9ja19kZXZpY2VfcmVsZWFzZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCWttZW1f Y2FjaGVfZGVzdHJveShpOTE1LT52bWFzKTsKIAlrbWVtX2NhY2hlX2Rlc3Ryb3koaTkxNS0+b2Jq ZWN0cyk7CiAKKwlpOTE1X2dlbWZzX2ZpbmkoaTkxNSk7CisKIAlkcm1fZGV2X2ZpbmkoJmk5MTUt PmRybSk7CiAJcHV0X2RldmljZSgmaTkxNS0+ZHJtLnBkZXYtPmRldik7CiB9CkBAIC0xNjgsOSAr MTcwLDEzIEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICptb2NrX2dlbV9kZXZpY2Uodm9pZCkK IAogCWk5MTUtPmd0LmF3YWtlID0gdHJ1ZTsKIAorCWVyciA9IGk5MTVfZ2VtZnNfaW5pdChpOTE1 KTsKKwlpZiAoZXJyKQorCQlnb3RvIGVycl93cTsKKwogCWk5MTUtPm9iamVjdHMgPSBLTUVNX0NB Q0hFKG1vY2tfb2JqZWN0LCBTTEFCX0hXQ0FDSEVfQUxJR04pOwogCWlmICghaTkxNS0+b2JqZWN0 cykKLQkJZ290byBlcnJfd3E7CisJCWdvdG8gZXJyX2dlbWZzOwogCiAJaTkxNS0+dm1hcyA9IEtN RU1fQ0FDSEUoaTkxNV92bWEsIFNMQUJfSFdDQUNIRV9BTElHTik7CiAJaWYgKCFpOTE1LT52bWFz KQpAQCAtMjI4LDYgKzIzNCw4IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICptb2NrX2dlbV9k ZXZpY2Uodm9pZCkKIAlrbWVtX2NhY2hlX2Rlc3Ryb3koaTkxNS0+dm1hcyk7CiBlcnJfb2JqZWN0 czoKIAlrbWVtX2NhY2hlX2Rlc3Ryb3koaTkxNS0+b2JqZWN0cyk7CitlcnJfZ2VtZnM6CisJaTkx NV9nZW1mc19maW5pKGk5MTUpOwogZXJyX3dxOgogCWRlc3Ryb3lfd29ya3F1ZXVlKGk5MTUtPndx KTsKIHB1dF9kZXZpY2U6Ci0tIAoyLjkuNAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==