From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Auld Subject: [PATCH v3 20/37] drm/i915: treat shmem as a region Date: Fri, 9 Aug 2019 23:26:26 +0100 Message-ID: <20190809222643.23142-21-matthew.auld@intel.com> References: <20190809222643.23142-1-matthew.auld@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190809222643.23142-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 Cc: dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org U2lnbmVkLW9mZi1ieTogTWF0dGhldyBBdWxkIDxtYXR0aGV3LmF1bGRAaW50ZWwuY29tPgpDYzog Sm9vbmFzIExhaHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgpDYzogQWJk aWVsIEphbnVsZ3VlIDxhYmRpZWwuamFudWxndWVAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9waHlzLmMgICAgICB8ICA2ICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fcmVnaW9uLmMgICAgfCAxNCArKystCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc2htZW0uYyAgICAgfCA2OCArKysrKysrKysrKysr Ky0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICAgICAgICAgICAgICAgfCAg NSArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgICAgIHwgIDQg Ky0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgICAgICAgICB8IDEzICst LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jICAgICAgICAgICB8ICAzICst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jICAgICAgICAgICAgICAgfCAyOSArKysr Ky0tLQogLi4uL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvbW9ja19nZW1fZGV2aWNlLmMgIHwgIDYg Ky0KIDkgZmlsZXMgY2hhbmdlZCwgOTkgaW5zZXJ0aW9ucygrKSwgNDkgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BoeXMuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9waHlzLmMKaW5kZXggNzY4MzU2OTA4MTYw Li5mMGU1ZTBkZjAwZWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9waHlzLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BoeXMu YwpAQCAtMTYsNiArMTYsNyBAQAogI2luY2x1ZGUgImd0L2ludGVsX2d0LmgiCiAjaW5jbHVkZSAi aTkxNV9kcnYuaCIKICNpbmNsdWRlICJpOTE1X2dlbV9vYmplY3QuaCIKKyNpbmNsdWRlICJpOTE1 X2dlbV9yZWdpb24uaCIKICNpbmNsdWRlICJpOTE1X3NjYXR0ZXJsaXN0LmgiCiAKIHN0YXRpYyBp bnQgaTkxNV9nZW1fb2JqZWN0X2dldF9wYWdlc19waHlzKHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmopCkBAIC0xOTEsOCArMTkyLDExIEBAIGludCBpOTE1X2dlbV9vYmplY3RfYXR0YWNo X3BoeXMoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgaW50IGFsaWduKQogCS8qIFBl cm1hLXBpbiAodW50aWwgcmVsZWFzZSkgdGhlIHBoeXNpY2FsIHNldCBvZiBwYWdlcyAqLwogCV9f aTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdlcyhvYmopOwogCi0JaWYgKCFJU19FUlJfT1JfTlVMTChw YWdlcykpCisJaWYgKCFJU19FUlJfT1JfTlVMTChwYWdlcykpIHsKIAkJaTkxNV9nZW1fc2htZW1f b3BzLnB1dF9wYWdlcyhvYmosIHBhZ2VzKTsKKwkJLyogWFhYOiB3aGVyZSBpcyB0aGUgZnB1dCBu b3cgdGhvdWdoPyAqLworCQlpOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9tZW1vcnlfcmVnaW9uKG9i aik7CisJfQogCW11dGV4X3VubG9jaygmb2JqLT5tbS5sb2NrKTsKIAlyZXR1cm4gMDsKIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3JlZ2lvbi5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3JlZ2lvbi5jCmluZGV4IDBkMDlkYTlmNzE2 OC4uNTkyMDEyYmI5YjE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkx NV9nZW1fcmVnaW9uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3Jl Z2lvbi5jCkBAIC02LDYgKzYsNyBAQAogI2luY2x1ZGUgImludGVsX21lbW9yeV9yZWdpb24uaCIK ICNpbmNsdWRlICJpOTE1X2dlbV9yZWdpb24uaCIKICNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2lu Y2x1ZGUgImk5MTVfdHJhY2UuaCIKIAogdm9pZAogaTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdlc19i dWRkeShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLApAQCAtMTQzLDExICsxNDQsMjIg QEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9yZWdpb24oc3RydWN0IGludGVsX21lbW9yeV9yZWdp b24gKm1lbSwKIAlHRU1fQlVHX09OKCFzaXplKTsKIAlHRU1fQlVHX09OKCFJU19BTElHTkVEKHNp emUsIEk5MTVfR1RUX01JTl9BTElHTk1FTlQpKTsKIAorCS8qCisJICogVGhlcmUgaXMgYSBwcmV2 YWxlbmNlIG9mIHRoZSBhc3N1bXB0aW9uIHRoYXQgd2UgZml0IHRoZSBvYmplY3QncworCSAqIHBh Z2UgY291bnQgaW5zaWRlIGEgMzJiaXQgX3NpZ25lZF8gdmFyaWFibGUuIExldCdzIGRvY3VtZW50 IHRoaXMgYW5kCisJICogY2F0Y2ggaWYgd2UgZXZlciBuZWVkIHRvIGZpeCBpdC4gSW4gdGhlIG1l YW50aW1lLCBpZiB5b3UgZG8gc3BvdAorCSAqIHN1Y2ggYSBsb2NhbCB2YXJpYWJsZSwgcGxlYXNl IGNvbnNpZGVyIGZpeGluZyEKKwkgKi8KKwogCWlmIChzaXplID4+IFBBR0VfU0hJRlQgPiBJTlRf TUFYKQogCQlyZXR1cm4gRVJSX1BUUigtRTJCSUcpOwogCiAJaWYgKG92ZXJmbG93c190eXBlKHNp emUsIG9iai0+YmFzZS5zaXplKSkKIAkJcmV0dXJuIEVSUl9QVFIoLUUyQklHKTsKIAotCXJldHVy biBtZW0tPm9wcy0+Y3JlYXRlX29iamVjdChtZW0sIHNpemUsIGZsYWdzKTsKKwlvYmogPSBtZW0t Pm9wcy0+Y3JlYXRlX29iamVjdChtZW0sIHNpemUsIGZsYWdzKTsKKwlpZiAoIUlTX0VSUihvYmop KQorCQl0cmFjZV9pOTE1X2dlbV9vYmplY3RfY3JlYXRlKG9iaik7CisKKwlyZXR1cm4gb2JqOwog fQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3NobWVtLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fc2htZW0uYwppbmRleCA5ZjVkOTAz Zjc3OTMuLmFjN2E1NTIzNDliNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX3NobWVtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2Vt X3NobWVtLmMKQEAgLTcsNyArNyw5IEBACiAjaW5jbHVkZSA8bGludXgvcGFnZXZlYy5oPgogI2lu Y2x1ZGUgPGxpbnV4L3N3YXAuaD4KIAorI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9yZWdpb24uaCIK ICNpbmNsdWRlICJpOTE1X2Rydi5oIgorI2luY2x1ZGUgImk5MTVfZ2VtZnMuaCIKICNpbmNsdWRl ICJpOTE1X2dlbV9vYmplY3QuaCIKICNpbmNsdWRlICJpOTE1X3NjYXR0ZXJsaXN0LmgiCiAjaW5j bHVkZSAiaTkxNV90cmFjZS5oIgpAQCAtMjYsNiArMjgsNyBAQCBzdGF0aWMgdm9pZCBjaGVja19y ZWxlYXNlX3BhZ2V2ZWMoc3RydWN0IHBhZ2V2ZWMgKnB2ZWMpCiBzdGF0aWMgaW50IHNobWVtX2dl dF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQogewogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShvYmotPmJhc2UuZGV2KTsKKwlzdHJ1Y3QgaW50 ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtID0gb2JqLT5tbS5yZWdpb247CiAJY29uc3QgdW5zaWduZWQg bG9uZyBwYWdlX2NvdW50ID0gb2JqLT5iYXNlLnNpemUgLyBQQUdFX1NJWkU7CiAJdW5zaWduZWQg bG9uZyBpOwogCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nOwpAQCAtNTIsNyArNTUsNyBA QCBzdGF0aWMgaW50IHNobWVtX2dldF9wYWdlcyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqKQogCSAqIElmIHRoZXJlJ3Mgbm8gY2hhbmNlIG9mIGFsbG9jYXRpbmcgZW5vdWdoIHBhZ2Vz IGZvciB0aGUgd2hvbGUKIAkgKiBvYmplY3QsIGJhaWwgZWFybHkuCiAJICovCi0JaWYgKHBhZ2Vf Y291bnQgPiB0b3RhbHJhbV9wYWdlcygpKQorCWlmIChvYmotPmJhc2Uuc2l6ZSA+IHJlc291cmNl X3NpemUoJm1lbS0+cmVnaW9uKSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAlzdCA9IGttYWxsb2Mo c2l6ZW9mKCpzdCksIEdGUF9LRVJORUwpOwpAQCAtNDE3LDYgKzQyMCw4IEBAIHNobWVtX3B3cml0 ZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCiBzdGF0aWMgdm9pZCBzaG1lbV9y ZWxlYXNlKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7CisJaTkxNV9nZW1fb2Jq ZWN0X3JlbGVhc2VfbWVtb3J5X3JlZ2lvbihvYmopOworCiAJZnB1dChvYmotPmJhc2UuZmlscCk7 CiB9CiAKQEAgLTQzNSw3ICs0NDAsNyBAQCBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dF9vcHMgaTkxNV9nZW1fc2htZW1fb3BzID0gewogCS5yZWxlYXNlID0gc2htZW1fcmVsZWFzZSwK IH07CiAKLXN0YXRpYyBpbnQgY3JlYXRlX3NobWVtKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1LAorc3RhdGljIGludCBfX2NyZWF0ZV9zaG1lbShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq aTkxNSwKIAkJCXN0cnVjdCBkcm1fZ2VtX29iamVjdCAqb2JqLAogCQkJc2l6ZV90IHNpemUpCiB7 CkBAIC00NTYsMzEgKzQ2MSwyMyBAQCBzdGF0aWMgaW50IGNyZWF0ZV9zaG1lbShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSwKIAlyZXR1cm4gMDsKIH0KIAotc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKgotaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zaG1lbShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSwgdTY0IHNpemUpCitzdGF0aWMgc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKgorY3JlYXRlX3NobWVtKHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0sCisJICAg ICByZXNvdXJjZV9zaXplX3Qgc2l6ZSwKKwkgICAgIHVuc2lnbmVkIGZsYWdzKQogeworCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gbWVtLT5pOTE1OwogCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmo7CiAJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmc7CiAJdW5zaWdu ZWQgaW50IGNhY2hlX2xldmVsOwogCWdmcF90IG1hc2s7CiAJaW50IHJldDsKIAotCS8qIFRoZXJl IGlzIGEgcHJldmFsZW5jZSBvZiB0aGUgYXNzdW1wdGlvbiB0aGF0IHdlIGZpdCB0aGUgb2JqZWN0 J3MKLQkgKiBwYWdlIGNvdW50IGluc2lkZSBhIDMyYml0IF9zaWduZWRfIHZhcmlhYmxlLiBMZXQn cyBkb2N1bWVudCB0aGlzIGFuZAotCSAqIGNhdGNoIGlmIHdlIGV2ZXIgbmVlZCB0byBmaXggaXQu IEluIHRoZSBtZWFudGltZSwgaWYgeW91IGRvIHNwb3QKLQkgKiBzdWNoIGEgbG9jYWwgdmFyaWFi bGUsIHBsZWFzZSBjb25zaWRlciBmaXhpbmchCi0JICovCi0JaWYgKHNpemUgPj4gUEFHRV9TSElG VCA+IElOVF9NQVgpCi0JCXJldHVybiBFUlJfUFRSKC1FMkJJRyk7Ci0KLQlpZiAob3ZlcmZsb3dz X3R5cGUoc2l6ZSwgb2JqLT5iYXNlLnNpemUpKQotCQlyZXR1cm4gRVJSX1BUUigtRTJCSUcpOwot CiAJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2FsbG9jKCk7CiAJaWYgKCFvYmopCiAJCXJldHVybiBF UlJfUFRSKC1FTk9NRU0pOwogCi0JcmV0ID0gY3JlYXRlX3NobWVtKGk5MTUsICZvYmotPmJhc2Us IHNpemUpOworCXJldCA9IF9fY3JlYXRlX3NobWVtKGk5MTUsICZvYmotPmJhc2UsIHNpemUpOwog CWlmIChyZXQpCiAJCWdvdG8gZmFpbDsKIApAQCAtNTE5LDcgKzUxNiw3IEBAIGk5MTVfZ2VtX29i amVjdF9jcmVhdGVfc2htZW0oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHU2NCBzaXpl KQogCiAJaTkxNV9nZW1fb2JqZWN0X3NldF9jYWNoZV9jb2hlcmVuY3kob2JqLCBjYWNoZV9sZXZl bCk7CiAKLQl0cmFjZV9pOTE1X2dlbV9vYmplY3RfY3JlYXRlKG9iaik7CisJaTkxNV9nZW1fb2Jq ZWN0X2luaXRfbWVtb3J5X3JlZ2lvbihvYmosIG1lbSwgMCk7CiAKIAlyZXR1cm4gb2JqOwogCkBA IC01MjgsNiArNTI1LDEzIEBAIGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc2htZW0oc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUsIHU2NCBzaXplKQogCXJldHVybiBFUlJfUFRSKHJldCk7CiB9 CiAKK3N0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKK2k5MTVfZ2VtX29iamVjdF9jcmVhdGVf c2htZW0oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIHU2NCBzaXplKQoreworCXJldHVy biBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3JlZ2lvbihpOTE1LT5yZWdpb25zW0lOVEVMX01FTU9S WV9TTUVNXSwKKwkJCQkJICAgICBzaXplLCAwKTsKK30KKwogLyogQWxsb2NhdGUgYSBuZXcgR0VN IG9iamVjdCBhbmQgZmlsbCBpdCB3aXRoIHRoZSBzdXBwbGllZCBkYXRhICovCiBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqCiBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3NobWVtX2Zyb21fZGF0 YShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCkBAIC01NzgsMyArNTgyLDMzIEBA IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc2htZW1fZnJvbV9kYXRhKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwKIAlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CiAJcmV0dXJuIEVS Ul9QVFIoZXJyKTsKIH0KKworc3RhdGljIGludCBpbml0X3NobWVtKHN0cnVjdCBpbnRlbF9tZW1v cnlfcmVnaW9uICptZW0pCit7CisJaW50IGVycjsKKworCWVyciA9IGk5MTVfZ2VtZnNfaW5pdCht ZW0tPmk5MTUpOworCWlmIChlcnIpCisJCSBEUk1fTk9URSgiVW5hYmxlIHRvIGNyZWF0ZSBhIHBy aXZhdGUgdG1wZnMgbW91bnQsIGh1Z2VwYWdlIHN1cHBvcnQgd2lsbCBiZSBkaXNhYmxlZCglZCku XG4iLCBlcnIpOworCisJcmV0dXJuIDA7IC8qIERvbid0IGVycm9yLCB3ZSBjYW4gc2ltcGx5IGZh bGxiYWNrIHRvIHRoZSBrZXJuZWwgbW50ICovCit9CisKK3N0YXRpYyB2b2lkIHJlbGVhc2Vfc2ht ZW0oc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1lbSkKK3sKKwlpOTE1X2dlbWZzX2Zpbmko bWVtLT5pOTE1KTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9u X29wcyBzaG1lbV9yZWdpb25fb3BzID0geworCS5pbml0ID0gaW5pdF9zaG1lbSwKKwkucmVsZWFz ZSA9IHJlbGVhc2Vfc2htZW0sCisJLmNyZWF0ZV9vYmplY3QgPSBjcmVhdGVfc2htZW0sCit9Owor CitzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqaTkxNV9nZW1fc2htZW1fc2V0dXAoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCit7CisJcmV0dXJuIGludGVsX21lbW9yeV9yZWdpb25f Y3JlYXRlKGk5MTUsIDAsCisJCQkJCSAgdG90YWxyYW1fcGFnZXMoKSA8PCBQQUdFX1NISUZULAor CQkJCQkgIEk5MTVfR1RUX1BBR0VfU0laRV80SywgMCwKKwkJCQkJICAmc2htZW1fcmVnaW9uX29w cyk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwppbmRleCBjYWFjN2ZjODQ5ODcuLjIyZTg3YWUz NjYyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCkBAIC01MTEsOSArNTExLDcgQEAgc3RhdGlj IGludCBpOTE1X2RyaXZlcl9lYXJseV9wcm9iZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiAKIAlpbnRlbF9ndF9pbml0X2Vhcmx5KCZkZXZfcHJpdi0+Z3QsIGRldl9wcml2KTsK IAotCXJldCA9IGk5MTVfZ2VtX2luaXRfZWFybHkoZGV2X3ByaXYpOwotCWlmIChyZXQgPCAwKQot CQlnb3RvIGVycl93b3JrcXVldWVzOworCWk5MTVfZ2VtX2luaXRfZWFybHkoZGV2X3ByaXYpOwog CiAJLyogVGhpcyBtdXN0IGJlIGNhbGxlZCBiZWZvcmUgYW55IGNhbGxzIHRvIEhBU19QQ0hfKiAq LwogCWludGVsX2RldGVjdF9wY2goZGV2X3ByaXYpOwpAQCAtNTM1LDcgKzUzMyw2IEBAIHN0YXRp YyBpbnQgaTkxNV9kcml2ZXJfZWFybHlfcHJvYmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQogCiBlcnJfZ2VtOgogCWk5MTVfZ2VtX2NsZWFudXBfZWFybHkoZGV2X3ByaXYpOwot ZXJyX3dvcmtxdWV1ZXM6CiAJaW50ZWxfZ3RfZHJpdmVyX2xhdGVfcmVsZWFzZSgmZGV2X3ByaXYt Pmd0KTsKIAlpOTE1X3dvcmtxdWV1ZXNfY2xlYW51cChkZXZfcHJpdik7CiAJcmV0dXJuIHJldDsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCmluZGV4IDNkN2RhNjlmMGQxYi4uMGY5NGYxZjNjY2FhIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTIyOTUsMTEgKzIyOTUsMTMgQEAgaW50IGk5MTVf Z2V0cGFyYW1faW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKIGludCBp OTE1X2dlbV9pbml0X3VzZXJwdHIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsK IHZvaWQgaTkxNV9nZW1fY2xlYW51cF91c2VycHRyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7CiB2b2lkIGk5MTVfZ2VtX3Nhbml0aXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICppOTE1KTsKLWludCBpOTE1X2dlbV9pbml0X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdik7Cit2b2lkIGk5MTVfZ2VtX2luaXRfZWFybHkoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaTkxNV9nZW1fY2xlYW51cF9lYXJseShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogaW50IGk5MTVfZ2VtX2ZyZWV6ZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogaW50IGk5MTVfZ2VtX2ZyZWV6ZV9sYXRlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiAKK3N0cnVjdCBpbnRlbF9tZW1vcnlfcmVn aW9uICppOTE1X2dlbV9zaG1lbV9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7 CisKIHN0YXRpYyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9kcmFpbl9mcmVlZF9vYmplY3RzKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1KQogewogCS8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwpp bmRleCA5NmUxNDNkMTMzZDEuLjJhYTRmYmU3ZWRjMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j CkBAIC00NSw3ICs0NSw2IEBACiAjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX2NvbnRleHQuaCIKICNp bmNsdWRlICJnZW0vaTkxNV9nZW1faW9jdGxzLmgiCiAjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX3Bt LmgiCi0jaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtZnMuaCIKICNpbmNsdWRlICJndC9pbnRlbF9lbmdp bmVfdXNlci5oIgogI2luY2x1ZGUgImd0L2ludGVsX2d0LmgiCiAjaW5jbHVkZSAiZ3QvaW50ZWxf Z3RfcG0uaCIKQEAgLTE2NjksMjAgKzE2NjgsMTIgQEAgc3RhdGljIHZvaWQgaTkxNV9nZW1faW5p dF9fbW0oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJaTkxNV9nZW1faW5pdF9fb2Jq ZWN0cyhpOTE1KTsKIH0KIAotaW50IGk5MTVfZ2VtX2luaXRfZWFybHkoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQordm9pZCBpOTE1X2dlbV9pbml0X2Vhcmx5KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQlpbnQgZXJyOwotCiAJaTkxNV9nZW1faW5pdF9f bW0oZGV2X3ByaXYpOwogCWk5MTVfZ2VtX2luaXRfX3BtKGRldl9wcml2KTsKIAogCXNwaW5fbG9j a19pbml0KCZkZXZfcHJpdi0+ZmJfdHJhY2tpbmcubG9jayk7Ci0KLQllcnIgPSBpOTE1X2dlbWZz X2luaXQoZGV2X3ByaXYpOwotCWlmIChlcnIpCi0JCURSTV9OT1RFKCJVbmFibGUgdG8gY3JlYXRl IGEgcHJpdmF0ZSB0bXBmcyBtb3VudCwgaHVnZXBhZ2Ugc3VwcG9ydCB3aWxsIGJlIGRpc2FibGVk KCVkKS5cbiIsIGVycik7Ci0KLQlyZXR1cm4gMDsKIH0KIAogdm9pZCBpOTE1X2dlbV9jbGVhbnVw X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKQEAgLTE2OTEsOCArMTY4 Miw2IEBAIHZvaWQgaTkxNV9nZW1fY2xlYW51cF9lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiAJR0VNX0JVR19PTighbGxpc3RfZW1wdHkoJmRldl9wcml2LT5tbS5mcmVl X2xpc3QpKTsKIAlHRU1fQlVHX09OKGF0b21pY19yZWFkKCZkZXZfcHJpdi0+bW0uZnJlZV9jb3Vu dCkpOwogCVdBUk5fT04oZGV2X3ByaXYtPm1tLnNocmlua19jb3VudCk7Ci0KLQlpOTE1X2dlbWZz X2ZpbmkoZGV2X3ByaXYpOwogfQogCiBpbnQgaTkxNV9nZW1fZnJlZXplKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKaW5kZXgg YTFkZDNlN2UxYWQ5Li4xMDMzMmI4NzZkZDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2d0dC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0 dC5jCkBAIC0yNzQ5LDcgKzI3NDksOCBAQCBpbnQgaTkxNV9nZW1faW5pdF9tZW1vcnlfcmVnaW9u cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAogCQl0eXBlID0gTUVNT1JZX1RZUEVf RlJPTV9SRUdJT04oaW50ZWxfcmVnaW9uX21hcFtpXSk7CiAJCXN3aXRjaCAodHlwZSkgewotCQlk ZWZhdWx0OgorCQljYXNlIElOVEVMX1NNRU06CisJCQltZW0gPSBpOTE1X2dlbV9zaG1lbV9zZXR1 cChpOTE1KTsKIAkJCWJyZWFrOwogCQl9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcGNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jCmluZGV4IDFm ZWJkYTJhOTBlNy4uNTJhZDIxNDQwZjA0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3BjaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKQEAgLTE0 NCw2ICsxNDQsOSBAQAogI2RlZmluZSBHRU5fREVGQVVMVF9QQUdFX1NJWkVTIFwKIAkucGFnZV9z aXplcyA9IEk5MTVfR1RUX1BBR0VfU0laRV80SwogCisjZGVmaW5lIEdFTl9ERUZBVUxUX1JFR0lP TlMgXAorCS5tZW1vcnlfcmVnaW9ucyA9IFJFR0lPTl9TTUVNCisKICNkZWZpbmUgSTgzMF9GRUFU VVJFUyBcCiAJR0VOKDIpLCBcCiAJLmlzX21vYmlsZSA9IDEsIFwKQEAgLTE2MSw3ICsxNjQsOCBA QAogCUk5WFhfUElQRV9PRkZTRVRTLCBcCiAJSTlYWF9DVVJTT1JfT0ZGU0VUUywgXAogCUk5WFhf Q09MT1JTLCBcCi0JR0VOX0RFRkFVTFRfUEFHRV9TSVpFUworCUdFTl9ERUZBVUxUX1BBR0VfU0la RVMsIFwKKwlHRU5fREVGQVVMVF9SRUdJT05TCiAKICNkZWZpbmUgSTg0NV9GRUFUVVJFUyBcCiAJ R0VOKDIpLCBcCkBAIC0xNzgsNyArMTgyLDggQEAKIAlJODQ1X1BJUEVfT0ZGU0VUUywgXAogCUk4 NDVfQ1VSU09SX09GRlNFVFMsIFwKIAlJOVhYX0NPTE9SUywgXAotCUdFTl9ERUZBVUxUX1BBR0Vf U0laRVMKKwlHRU5fREVGQVVMVF9QQUdFX1NJWkVTLCBcCisJR0VOX0RFRkFVTFRfUkVHSU9OUwog CiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX2k4MzBfaW5mbyA9 IHsKIAlJODMwX0ZFQVRVUkVTLApAQCAtMjEyLDcgKzIxNyw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfaTg2NWdfaW5mbyA9IHsKIAlJOVhYX1BJUEVfT0ZG U0VUUywgXAogCUk5WFhfQ1VSU09SX09GRlNFVFMsIFwKIAlJOVhYX0NPTE9SUywgXAotCUdFTl9E RUZBVUxUX1BBR0VfU0laRVMKKwlHRU5fREVGQVVMVF9QQUdFX1NJWkVTLCBcCisJR0VOX0RFRkFV TFRfUkVHSU9OUwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVs X2k5MTVnX2luZm8gPSB7CiAJR0VOM19GRUFUVVJFUywKQEAgLTI5Nyw3ICszMDMsOCBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX3BpbmV2aWV3X21faW5mbyA9 IHsKIAlJOVhYX1BJUEVfT0ZGU0VUUywgXAogCUk5WFhfQ1VSU09SX09GRlNFVFMsIFwKIAlJOTY1 X0NPTE9SUywgXAotCUdFTl9ERUZBVUxUX1BBR0VfU0laRVMKKwlHRU5fREVGQVVMVF9QQUdFX1NJ WkVTLCBcCisJR0VOX0RFRkFVTFRfUkVHSU9OUwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVs X2RldmljZV9pbmZvIGludGVsX2k5NjVnX2luZm8gPSB7CiAJR0VONF9GRUFUVVJFUywKQEAgLTM0 Nyw3ICszNTQsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVs X2dtNDVfaW5mbyA9IHsKIAlJOVhYX1BJUEVfT0ZGU0VUUywgXAogCUk5WFhfQ1VSU09SX09GRlNF VFMsIFwKIAlJTEtfQ09MT1JTLCBcCi0JR0VOX0RFRkFVTFRfUEFHRV9TSVpFUworCUdFTl9ERUZB VUxUX1BBR0VfU0laRVMsIFwKKwlHRU5fREVGQVVMVF9SRUdJT05TCiAKIHN0YXRpYyBjb25zdCBz dHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfaXJvbmxha2VfZF9pbmZvID0gewogCUdFTjVf RkVBVFVSRVMsCkBAIC0zNzcsNyArMzg1LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9k ZXZpY2VfaW5mbyBpbnRlbF9pcm9ubGFrZV9tX2luZm8gPSB7CiAJSTlYWF9QSVBFX09GRlNFVFMs IFwKIAlJOVhYX0NVUlNPUl9PRkZTRVRTLCBcCiAJSUxLX0NPTE9SUywgXAotCUdFTl9ERUZBVUxU X1BBR0VfU0laRVMKKwlHRU5fREVGQVVMVF9QQUdFX1NJWkVTLCBcCisJR0VOX0RFRkFVTFRfUkVH SU9OUwogCiAjZGVmaW5lIFNOQl9EX1BMQVRGT1JNIFwKIAlHRU42X0ZFQVRVUkVTLCBcCkBAIC00 MjUsNyArNDM0LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRl bF9zYW5keWJyaWRnZV9tX2d0Ml9pbmZvID0gewogCUlWQl9QSVBFX09GRlNFVFMsIFwKIAlJVkJf Q1VSU09SX09GRlNFVFMsIFwKIAlJVkJfQ09MT1JTLCBcCi0JR0VOX0RFRkFVTFRfUEFHRV9TSVpF UworCUdFTl9ERUZBVUxUX1BBR0VfU0laRVMsIFwKKwlHRU5fREVGQVVMVF9SRUdJT05TCiAKICNk ZWZpbmUgSVZCX0RfUExBVEZPUk0gXAogCUdFTjdfRkVBVFVSRVMsIFwKQEAgLTQ4Niw2ICs0OTYs NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2RldmljZV9pbmZvIGludGVsX3ZhbGxleXZp ZXdfaW5mbyA9IHsKIAlJOVhYX0NVUlNPUl9PRkZTRVRTLAogCUk5NjVfQ09MT1JTLAogCUdFTl9E RUZBVUxUX1BBR0VfU0laRVMsCisJR0VOX0RFRkFVTFRfUkVHSU9OUywKIH07CiAKICNkZWZpbmUg Rzc1X0ZFQVRVUkVTICBcCkBAIC01ODIsNiArNTkzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBp bnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9jaGVycnl2aWV3X2luZm8gPSB7CiAJQ0hWX0NVUlNPUl9P RkZTRVRTLAogCUNIVl9DT0xPUlMsCiAJR0VOX0RFRkFVTFRfUEFHRV9TSVpFUywKKwlHRU5fREVG QVVMVF9SRUdJT05TLAogfTsKIAogI2RlZmluZSBHRU45X0RFRkFVTFRfUEFHRV9TSVpFUyBcCkBA IC02NTcsNyArNjY5LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBp bnRlbF9za3lsYWtlX2d0NF9pbmZvID0gewogCUhTV19QSVBFX09GRlNFVFMsIFwKIAlJVkJfQ1VS U09SX09GRlNFVFMsIFwKIAlJVkJfQ09MT1JTLCBcCi0JR0VOOV9ERUZBVUxUX1BBR0VfU0laRVMK KwlHRU45X0RFRkFVTFRfUEFHRV9TSVpFUywgXAorCUdFTl9ERUZBVUxUX1JFR0lPTlMKIAogc3Rh dGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRlbF9icm94dG9uX2luZm8gPSB7 CiAJR0VOOV9MUF9GRUFUVVJFUywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3Nl bGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0 cy9tb2NrX2dlbV9kZXZpY2UuYwppbmRleCBjNjk0NGUxN2EyYzUuLjVmYjcyYzBhODRmYiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL21vY2tfZ2VtX2RldmljZS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9tb2NrX2dlbV9kZXZpY2UuYwpA QCAtODAsOCArODAsNiBAQCBzdGF0aWMgdm9pZCBtb2NrX2RldmljZV9yZWxlYXNlKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCiAKIAlkZXN0cm95X3dvcmtxdWV1ZShpOTE1LT53cSk7CiAKLQlpOTE1 X2dlbWZzX2ZpbmkoaTkxNSk7Ci0KIAlpOTE1X2dlbV9jbGVhbnVwX21lbW9yeV9yZWdpb25zKGk5 MTUpOwogCiAJZHJtX21vZGVfY29uZmlnX2NsZWFudXAoJmk5MTUtPmRybSk7CkBAIC0xODEsNiAr MTc5LDggQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKm1vY2tfZ2VtX2RldmljZSh2b2lkKQog CQlJOTE1X0dUVF9QQUdFX1NJWkVfNjRLIHwKIAkJSTkxNV9HVFRfUEFHRV9TSVpFXzJNOwogCisJ bWt3cml0ZV9kZXZpY2VfaW5mbyhpOTE1KS0+bWVtb3J5X3JlZ2lvbnMgPSBSRUdJT05fU01FTTsK KwogCW1vY2tfdW5jb3JlX2luaXQoJmk5MTUtPnVuY29yZSk7CiAJaTkxNV9nZW1faW5pdF9fbW0o aTkxNSk7CiAJaW50ZWxfZ3RfaW5pdF9lYXJseSgmaTkxNS0+Z3QsIGk5MTUpOwpAQCAtMjE5LDgg KzIxOSw2IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICptb2NrX2dlbV9kZXZpY2Uodm9pZCkK IAlpbnRlbF9lbmdpbmVzX2RyaXZlcl9yZWdpc3RlcihpOTE1KTsKIAltdXRleF91bmxvY2soJmk5 MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOwogCi0JV0FSTl9PTihpOTE1X2dlbWZzX2luaXQoaTkxNSkp OwotCiAJZXJyID0gaTkxNV9nZW1faW5pdF9tZW1vcnlfcmVnaW9ucyhpOTE1KTsKIAlpZiAoZXJy KQogCQlnb3RvIGVycl9jb250ZXh0OwotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZng=