From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brian Welty Subject: [RFC PATCH 1/3] drm: introduce new struct drm_mem_region Date: Mon, 29 Jul 2019 12:54:55 -0400 Message-ID: <20190729165457.18500-2-brian.welty@intel.com> References: <20190729165457.18500-1-brian.welty@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190729165457.18500-1-brian.welty@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org, Daniel Vetter , intel-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org TW92ZSBiYXNpYyBtZW1iZXJzIG9mIHR0bV9tZW1fdHlwZV9tYW5hZ2VyIGludG8gYSBuZXcgRFJN IG1lbW9yeSByZWdpb24Kc3RydWN0dXJlLiAgVGhlIGlkZWEgaXMgZm9yIHRoaXMgYmFzZSBzdHJ1 Y3R1cmUgdG8gYmUgbmVzdGVkIGluc2lkZQp0aGUgVFRNIHN0cnVjdHVyZSBhbmQgbGF0ZXIgaW4g SW50ZWwncyBwcm9wb3NlZCBpbnRlbF9tZW1vcnlfcmVnaW9uLgoKQXMgY29tbWVudHMgaW4gdGhl IGNvZGUgc3VnZ2VzdCwgdGhlIGZvbGxvd2luZyBmdXR1cmUgd29yayBjYW4gZXh0ZW5kCnRoZSB1 c2VmdWxuZXNzIG9mIHRoaXM6Ci0gQ3JlYXRlIGNvbW1vbiBtZW1vcnkgcmVnaW9uIHR5cGVzIChu ZXh0IHBhdGNoKQotIENyZWF0ZSBjb21tb24gc2V0IG9mIG1lbW9yeV9yZWdpb24gZnVuY3Rpb24g Y2FsbGJhY2tzIChiYXNlZCBvbgogIHR0bV9tZW1fdHlwZV9tYW5hZ2VyX2Z1bmNzIGFuZCBpbnRl bF9tZW1vcnlfcmVnaW9uc19vcHMpCi0gQ3JlYXRlIGNvbW1vbiBoZWxwZXJzIHRoYXQgb3BlcmF0 ZSBvbiBkcm1fbWVtX3JlZ2lvbiB0byBiZSBsZXZlcmFnZWQKICBieSBib3RoIFRUTSBkcml2ZXJz IGFuZCBpOTE1LCByZWR1Y2luZyBjb2RlIGR1cGxpY2F0aW9uCi0gQWJvdmUgbWlnaHQgc3RhcnQg d2l0aCByZWZhY3RvcmluZyB0dG1fYm9fbWFuYWdlci5jIGFzIHRoZXNlIGFyZQogIGhlbHBlcnMg Zm9yIHVzaW5nIGRybV9tbSdzIHJhbmdlIGFsbG9jYXRvciBhbmQgY291bGQgYmUgbWFkZSB0bwog IG9wZXJhdGUgb24gRFJNIHN0cnVjdHVyZXMgaW5zdGVhZCBvZiBUVE0gb25lcy4KLSBMYXJnZXIg Z29hbCBtaWdodCBiZSB0byBtYWtlIExSVSBtYW5hZ2VtZW50IG9mIEdFTSBvYmplY3RzIGNvbW1v biwgYW5kCiAgbWlncmF0ZSB0aG9zZSBmaWVsZHMgaW50byBkcm1fbWVtX3JlZ2lvbiBhbmQgZHJt X2dlbV9vYmplY3Qgc3RydWN1cmVzLgoKdm13Z2Z4IGNoYW5nZXMgaW5jbHVkZWQgaGVyZSBhcyBq dXN0IGV4YW1wbGUgb2Ygd2hhdCBkcml2ZXIgdXBkYXRlcyB3aWxsCmxvb2sgbGlrZSwgYW5kIGNh biBiZSBtb3ZlZCBsYXRlciB0byBzZXBhcmF0ZSBwYXRjaC4gIE90aGVyIFRUTSBkcml2ZXJzCm5l ZWQgdG8gYmUgdXBkYXRlZCBzaW1pbGFybHkuCgpTaWduZWQtb2ZmLWJ5OiBCcmlhbiBXZWx0eSA8 YnJpYW4ud2VsdHlAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMg ICAgICAgICAgICAgICAgICB8IDM0ICsrKysrKysrKysrLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2Ry bS90dG0vdHRtX2JvX21hbmFnZXIuYyAgICAgICAgICB8IDE0ICsrKystLS0tCiBkcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9ib191dGlsLmMgICAgICAgICAgICAgfCAxMSArKystLS0KIGRyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X2dtcmlkX21hbmFnZXIuYyB8ICA4ICsrLS0tCiBkcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fYnVmZmVyLmMgICAgfCAgNCArLS0KIGluY2x1ZGUv ZHJtL2RybV9tbS5oICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI3ICsrKysrKysrKysrKysr KwogaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IGluY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmggICAgICAgICAgICAgICB8IDE2ICsrKyst LS0tLQogOCBmaWxlcyBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jIGIvZHJpdmVycy9ncHUv ZHJtL3R0bS90dG1fYm8uYwppbmRleCA1OGM0MDNlZGEwNGUuLjQ1NDM0ZWE1MTNkZCAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0v dHRtL3R0bV9iby5jCkBAIC04NCw4ICs4NCw4IEBAIHN0YXRpYyB2b2lkIHR0bV9tZW1fdHlwZV9k ZWJ1ZyhzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgc3RydWN0IGRybV9wcmludGVyICpwCiAJ ZHJtX3ByaW50ZihwLCAiICAgIGhhc190eXBlOiAlZFxuIiwgbWFuLT5oYXNfdHlwZSk7CiAJZHJt X3ByaW50ZihwLCAiICAgIHVzZV90eXBlOiAlZFxuIiwgbWFuLT51c2VfdHlwZSk7CiAJZHJtX3By aW50ZihwLCAiICAgIGZsYWdzOiAweCUwOFhcbiIsIG1hbi0+ZmxhZ3MpOwotCWRybV9wcmludGYo cCwgIiAgICBncHVfb2Zmc2V0OiAweCUwOGxsWFxuIiwgbWFuLT5ncHVfb2Zmc2V0KTsKLQlkcm1f cHJpbnRmKHAsICIgICAgc2l6ZTogJWxsdVxuIiwgbWFuLT5zaXplKTsKKwlkcm1fcHJpbnRmKHAs ICIgICAgZ3B1X29mZnNldDogMHglMDhsbFhcbiIsIG1hbi0+cmVnaW9uLnN0YXJ0KTsKKwlkcm1f cHJpbnRmKHAsICIgICAgc2l6ZTogJWxsdVxuIiwgbWFuLT5yZWdpb24uc2l6ZSk7CiAJZHJtX3By aW50ZihwLCAiICAgIGF2YWlsYWJsZV9jYWNoaW5nOiAweCUwOFhcbiIsIG1hbi0+YXZhaWxhYmxl X2NhY2hpbmcpOwogCWRybV9wcmludGYocCwgIiAgICBkZWZhdWx0X2NhY2hpbmc6IDB4JTA4WFxu IiwgbWFuLT5kZWZhdWx0X2NhY2hpbmcpOwogCWlmIChtZW1fdHlwZSAhPSBUVE1fUExfU1lTVEVN KQpAQCAtMzk5LDcgKzM5OSw3IEBAIHN0YXRpYyBpbnQgdHRtX2JvX2hhbmRsZV9tb3ZlX21lbShz dHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCiAJaWYgKGJvLT5tZW0ubW1fbm9kZSkKIAkJ Ym8tPm9mZnNldCA9IChiby0+bWVtLnN0YXJ0IDw8IFBBR0VfU0hJRlQpICsKLQkJICAgIGJkZXYt Pm1hbltiby0+bWVtLm1lbV90eXBlXS5ncHVfb2Zmc2V0OworCQkgICAgYmRldi0+bWFuW2JvLT5t ZW0ubWVtX3R5cGVdLnJlZ2lvbi5zdGFydDsKIAllbHNlCiAJCWJvLT5vZmZzZXQgPSAwOwogCkBA IC05MjYsOSArOTI2LDkgQEAgc3RhdGljIGludCB0dG1fYm9fYWRkX21vdmVfZmVuY2Uoc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKIAlpbnQg cmV0OwogCi0Jc3Bpbl9sb2NrKCZtYW4tPm1vdmVfbG9jayk7Ci0JZmVuY2UgPSBkbWFfZmVuY2Vf Z2V0KG1hbi0+bW92ZSk7Ci0Jc3Bpbl91bmxvY2soJm1hbi0+bW92ZV9sb2NrKTsKKwlzcGluX2xv Y2soJm1hbi0+cmVnaW9uLm1vdmVfbG9jayk7CisJZmVuY2UgPSBkbWFfZmVuY2VfZ2V0KG1hbi0+ cmVnaW9uLm1vdmUpOworCXNwaW5fdW5sb2NrKCZtYW4tPnJlZ2lvbi5tb3ZlX2xvY2spOwogCiAJ aWYgKGZlbmNlKSB7CiAJCXJlc2VydmF0aW9uX29iamVjdF9hZGRfc2hhcmVkX2ZlbmNlKGJvLT5y ZXN2LCBmZW5jZSk7CkBAIC0xNDkwLDkgKzE0OTAsOSBAQCBzdGF0aWMgaW50IHR0bV9ib19mb3Jj ZV9saXN0X2NsZWFuKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LAogCX0KIAlzcGluX3VubG9j aygmZ2xvYi0+bHJ1X2xvY2spOwogCi0Jc3Bpbl9sb2NrKCZtYW4tPm1vdmVfbG9jayk7Ci0JZmVu Y2UgPSBkbWFfZmVuY2VfZ2V0KG1hbi0+bW92ZSk7Ci0Jc3Bpbl91bmxvY2soJm1hbi0+bW92ZV9s b2NrKTsKKwlzcGluX2xvY2soJm1hbi0+cmVnaW9uLm1vdmVfbG9jayk7CisJZmVuY2UgPSBkbWFf ZmVuY2VfZ2V0KG1hbi0+cmVnaW9uLm1vdmUpOworCXNwaW5fdW5sb2NrKCZtYW4tPnJlZ2lvbi5t b3ZlX2xvY2spOwogCiAJaWYgKGZlbmNlKSB7CiAJCXJldCA9IGRtYV9mZW5jZV93YWl0KGZlbmNl LCBmYWxzZSk7CkBAIC0xNTM1LDggKzE1MzUsOCBAQCBpbnQgdHRtX2JvX2NsZWFuX21tKHN0cnVj dCB0dG1fYm9fZGV2aWNlICpiZGV2LCB1bnNpZ25lZCBtZW1fdHlwZSkKIAkJcmV0ID0gKCptYW4t PmZ1bmMtPnRha2Vkb3duKShtYW4pOwogCX0KIAotCWRtYV9mZW5jZV9wdXQobWFuLT5tb3ZlKTsK LQltYW4tPm1vdmUgPSBOVUxMOworCWRtYV9mZW5jZV9wdXQobWFuLT5yZWdpb24ubW92ZSk7CisJ bWFuLT5yZWdpb24ubW92ZSA9IE5VTEw7CiAKIAlyZXR1cm4gcmV0OwogfQpAQCAtMTU2MSw3ICsx NTYxLDcgQEAgaW50IHR0bV9ib19ldmljdF9tbShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwg dW5zaWduZWQgbWVtX3R5cGUpCiBFWFBPUlRfU1lNQk9MKHR0bV9ib19ldmljdF9tbSk7CiAKIGlu dCB0dG1fYm9faW5pdF9tbShzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldiwgdW5zaWduZWQgdHlw ZSwKLQkJCXVuc2lnbmVkIGxvbmcgcF9zaXplKQorCQkgICByZXNvdXJjZV9zaXplX3QgcF9zaXpl KQogewogCWludCByZXQ7CiAJc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW47CkBAIC0x NTcwLDEwICsxNTcwLDE2IEBAIGludCB0dG1fYm9faW5pdF9tbShzdHJ1Y3QgdHRtX2JvX2Rldmlj ZSAqYmRldiwgdW5zaWduZWQgdHlwZSwKIAlCVUdfT04odHlwZSA+PSBUVE1fTlVNX01FTV9UWVBF Uyk7CiAJbWFuID0gJmJkZXYtPm1hblt0eXBlXTsKIAlCVUdfT04obWFuLT5oYXNfdHlwZSk7CisK KwkvKiBGSVhNRTogYWRkIGNhbGwgdG8gKG5ldykgZHJtX21lbV9yZWdpb25faW5pdCA/ICovCisJ bWFuLT5yZWdpb24uc2l6ZSA9IHBfc2l6ZTsKKwltYW4tPnJlZ2lvbi50eXBlID0gdHlwZTsKKwlz cGluX2xvY2tfaW5pdCgmbWFuLT5yZWdpb24ubW92ZV9sb2NrKTsKKwltYW4tPnJlZ2lvbi5tb3Zl ID0gTlVMTDsKKwogCW1hbi0+aW9fcmVzZXJ2ZV9mYXN0cGF0aCA9IHRydWU7CiAJbWFuLT51c2Vf aW9fcmVzZXJ2ZV9scnUgPSBmYWxzZTsKIAltdXRleF9pbml0KCZtYW4tPmlvX3Jlc2VydmVfbXV0 ZXgpOwotCXNwaW5fbG9ja19pbml0KCZtYW4tPm1vdmVfbG9jayk7CiAJSU5JVF9MSVNUX0hFQUQo Jm1hbi0+aW9fcmVzZXJ2ZV9scnUpOwogCiAJcmV0ID0gYmRldi0+ZHJpdmVyLT5pbml0X21lbV90 eXBlKGJkZXYsIHR5cGUsIG1hbik7CkBAIC0xNTg4LDExICsxNTk0LDkgQEAgaW50IHR0bV9ib19p bml0X21tKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCB1bnNpZ25lZCB0eXBlLAogCX0KIAlt YW4tPmhhc190eXBlID0gdHJ1ZTsKIAltYW4tPnVzZV90eXBlID0gdHJ1ZTsKLQltYW4tPnNpemUg PSBwX3NpemU7CiAKIAlmb3IgKGkgPSAwOyBpIDwgVFRNX01BWF9CT19QUklPUklUWTsgKytpKQog CQlJTklUX0xJU1RfSEVBRCgmbWFuLT5scnVbaV0pOwotCW1hbi0+bW92ZSA9IE5VTEw7CiAKIAly ZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX21hbmFn ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX21hbmFnZXIuYwppbmRleCAxOGQzZGVi Y2M5NDkuLjBhOTliM2Q1YjQ4MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f Ym9fbWFuYWdlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX21hbmFnZXIuYwpA QCAtNTMsNyArNTMsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19tYW5fZ2V0X25vZGUoc3RydWN0IHR0 bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCiAJCQkgICAgICAgY29uc3Qgc3RydWN0IHR0bV9wbGFj ZSAqcGxhY2UsCiAJCQkgICAgICAgc3RydWN0IHR0bV9tZW1fcmVnICptZW0pCiB7Ci0Jc3RydWN0 IHR0bV9yYW5nZV9tYW5hZ2VyICpybWFuID0gKHN0cnVjdCB0dG1fcmFuZ2VfbWFuYWdlciAqKSBt YW4tPnByaXY7CisJc3RydWN0IHR0bV9yYW5nZV9tYW5hZ2VyICpybWFuID0gKHN0cnVjdCB0dG1f cmFuZ2VfbWFuYWdlciAqKSBtYW4tPnJlZ2lvbi5wcml2OwogCXN0cnVjdCBkcm1fbW0gKm1tID0g JnJtYW4tPm1tOwogCXN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZTsKIAllbnVtIGRybV9tbV9pbnNl cnRfbW9kZSBtb2RlOwpAQCAtNjIsNyArNjIsNyBAQCBzdGF0aWMgaW50IHR0bV9ib19tYW5fZ2V0 X25vZGUoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCiAKIAlscGZuID0gcGxhY2Ut PmxwZm47CiAJaWYgKCFscGZuKQotCQlscGZuID0gbWFuLT5zaXplOworCQlscGZuID0gbWFuLT5y ZWdpb24uc2l6ZTsKIAogCW5vZGUgPSBremFsbG9jKHNpemVvZigqbm9kZSksIEdGUF9LRVJORUwp OwogCWlmICghbm9kZSkKQEAgLTkyLDcgKzkyLDcgQEAgc3RhdGljIGludCB0dG1fYm9fbWFuX2dl dF9ub2RlKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAogc3RhdGljIHZvaWQgdHRt X2JvX21hbl9wdXRfbm9kZShzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKIAkJCQlz dHJ1Y3QgdHRtX21lbV9yZWcgKm1lbSkKIHsKLQlzdHJ1Y3QgdHRtX3JhbmdlX21hbmFnZXIgKnJt YW4gPSAoc3RydWN0IHR0bV9yYW5nZV9tYW5hZ2VyICopIG1hbi0+cHJpdjsKKwlzdHJ1Y3QgdHRt X3JhbmdlX21hbmFnZXIgKnJtYW4gPSAoc3RydWN0IHR0bV9yYW5nZV9tYW5hZ2VyICopIG1hbi0+ cmVnaW9uLnByaXY7CiAKIAlpZiAobWVtLT5tbV9ub2RlKSB7CiAJCXNwaW5fbG9jaygmcm1hbi0+ bG9jayk7CkBAIC0xMTUsMTMgKzExNSwxMyBAQCBzdGF0aWMgaW50IHR0bV9ib19tYW5faW5pdChz dHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKIAogCWRybV9tbV9pbml0KCZybWFuLT5t bSwgMCwgcF9zaXplKTsKIAlzcGluX2xvY2tfaW5pdCgmcm1hbi0+bG9jayk7Ci0JbWFuLT5wcml2 ID0gcm1hbjsKKwltYW4tPnJlZ2lvbi5wcml2ID0gcm1hbjsKIAlyZXR1cm4gMDsKIH0KIAogc3Rh dGljIGludCB0dG1fYm9fbWFuX3Rha2Vkb3duKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAq bWFuKQogewotCXN0cnVjdCB0dG1fcmFuZ2VfbWFuYWdlciAqcm1hbiA9IChzdHJ1Y3QgdHRtX3Jh bmdlX21hbmFnZXIgKikgbWFuLT5wcml2OworCXN0cnVjdCB0dG1fcmFuZ2VfbWFuYWdlciAqcm1h biA9IChzdHJ1Y3QgdHRtX3JhbmdlX21hbmFnZXIgKikgbWFuLT5yZWdpb24ucHJpdjsKIAlzdHJ1 Y3QgZHJtX21tICptbSA9ICZybWFuLT5tbTsKIAogCXNwaW5fbG9jaygmcm1hbi0+bG9jayk7CkBA IC0xMjksNyArMTI5LDcgQEAgc3RhdGljIGludCB0dG1fYm9fbWFuX3Rha2Vkb3duKHN0cnVjdCB0 dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuKQogCQlkcm1fbW1fdGFrZWRvd24obW0pOwogCQlzcGlu X3VubG9jaygmcm1hbi0+bG9jayk7CiAJCWtmcmVlKHJtYW4pOwotCQltYW4tPnByaXYgPSBOVUxM OworCQltYW4tPnJlZ2lvbi5wcml2ID0gTlVMTDsKIAkJcmV0dXJuIDA7CiAJfQogCXNwaW5fdW5s b2NrKCZybWFuLT5sb2NrKTsKQEAgLTEzOSw3ICsxMzksNyBAQCBzdGF0aWMgaW50IHR0bV9ib19t YW5fdGFrZWRvd24oc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4pCiBzdGF0aWMgdm9p ZCB0dG1fYm9fbWFuX2RlYnVnKHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciAqbWFuLAogCQkJ ICAgICBzdHJ1Y3QgZHJtX3ByaW50ZXIgKnByaW50ZXIpCiB7Ci0Jc3RydWN0IHR0bV9yYW5nZV9t YW5hZ2VyICpybWFuID0gKHN0cnVjdCB0dG1fcmFuZ2VfbWFuYWdlciAqKSBtYW4tPnByaXY7CisJ c3RydWN0IHR0bV9yYW5nZV9tYW5hZ2VyICpybWFuID0gKHN0cnVjdCB0dG1fcmFuZ2VfbWFuYWdl ciAqKSBtYW4tPnJlZ2lvbi5wcml2OwogCiAJc3Bpbl9sb2NrKCZybWFuLT5sb2NrKTsKIAlkcm1f bW1fcHJpbnQoJnJtYW4tPm1tLCBwcmludGVyKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS90dG0vdHRtX2JvX3V0aWwuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYwpp bmRleCA5ZjkxOGI5OTJmN2UuLmU0NGQwYjdkNjBiNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL3R0bS90dG1fYm9fdXRpbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0 aWwuYwpAQCAtNzk1LDEyICs3OTUsMTMgQEAgaW50IHR0bV9ib19waXBlbGluZV9tb3ZlKHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJCSAqIHRoaXMgZXZpY3Rpb24gYW5kIGZyZWUgdXAg dGhlIGFsbG9jYXRpb24KIAkJICovCiAKLQkJc3Bpbl9sb2NrKCZmcm9tLT5tb3ZlX2xvY2spOwot CQlpZiAoIWZyb20tPm1vdmUgfHwgZG1hX2ZlbmNlX2lzX2xhdGVyKGZlbmNlLCBmcm9tLT5tb3Zl KSkgewotCQkJZG1hX2ZlbmNlX3B1dChmcm9tLT5tb3ZlKTsKLQkJCWZyb20tPm1vdmUgPSBkbWFf ZmVuY2VfZ2V0KGZlbmNlKTsKKwkJc3Bpbl9sb2NrKCZmcm9tLT5yZWdpb24ubW92ZV9sb2NrKTsK KwkJaWYgKCFmcm9tLT5yZWdpb24ubW92ZSB8fAorCQkgICAgZG1hX2ZlbmNlX2lzX2xhdGVyKGZl bmNlLCBmcm9tLT5yZWdpb24ubW92ZSkpIHsKKwkJCWRtYV9mZW5jZV9wdXQoZnJvbS0+cmVnaW9u Lm1vdmUpOworCQkJZnJvbS0+cmVnaW9uLm1vdmUgPSBkbWFfZmVuY2VfZ2V0KGZlbmNlKTsKIAkJ fQotCQlzcGluX3VubG9jaygmZnJvbS0+bW92ZV9sb2NrKTsKKwkJc3Bpbl91bmxvY2soJmZyb20t PnJlZ2lvbi5tb3ZlX2xvY2spOwogCiAJCXR0bV9ib19mcmVlX29sZF9ub2RlKGJvKTsKIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZ21yaWRfbWFuYWdlci5jIGIv ZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZ21yaWRfbWFuYWdlci5jCmluZGV4IDdkYTc1 MmNhMWMzNC4uZGQ0Zjg1YWNjYzRlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3Ztd2dmeF9nbXJpZF9tYW5hZ2VyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn ZnhfZ21yaWRfbWFuYWdlci5jCkBAIC01MCw3ICs1MCw3IEBAIHN0YXRpYyBpbnQgdm13X2dtcmlk X21hbl9nZXRfbm9kZShzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiwKIAkJCQkgIHN0 cnVjdCB0dG1fbWVtX3JlZyAqbWVtKQogewogCXN0cnVjdCB2bXdnZnhfZ21yaWRfbWFuICpnbWFu ID0KLQkJKHN0cnVjdCB2bXdnZnhfZ21yaWRfbWFuICopbWFuLT5wcml2OworCQkoc3RydWN0IHZt d2dmeF9nbXJpZF9tYW4gKiltYW4tPnJlZ2lvbi5wcml2OwogCWludCBpZDsKIAogCW1lbS0+bW1f bm9kZSA9IE5VTEw7CkBAIC04NSw3ICs4NSw3IEBAIHN0YXRpYyB2b2lkIHZtd19nbXJpZF9tYW5f cHV0X25vZGUoc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyICptYW4sCiAJCQkJICAgc3RydWN0 IHR0bV9tZW1fcmVnICptZW0pCiB7CiAJc3RydWN0IHZtd2dmeF9nbXJpZF9tYW4gKmdtYW4gPQot CQkoc3RydWN0IHZtd2dmeF9nbXJpZF9tYW4gKiltYW4tPnByaXY7CisJCShzdHJ1Y3Qgdm13Z2Z4 X2dtcmlkX21hbiAqKW1hbi0+cmVnaW9uLnByaXY7CiAKIAlpZiAobWVtLT5tbV9ub2RlKSB7CiAJ CWlkYV9mcmVlKCZnbWFuLT5nbXJfaWRhLCBtZW0tPnN0YXJ0KTsKQEAgLTEyMywxNCArMTIzLDE0 IEBAIHN0YXRpYyBpbnQgdm13X2dtcmlkX21hbl9pbml0KHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFu YWdlciAqbWFuLAogCWRlZmF1bHQ6CiAJCUJVRygpOwogCX0KLQltYW4tPnByaXYgPSAodm9pZCAq KSBnbWFuOworCW1hbi0+cmVnaW9uLnByaXYgPSAodm9pZCAqKSBnbWFuOwogCXJldHVybiAwOwog fQogCiBzdGF0aWMgaW50IHZtd19nbXJpZF9tYW5fdGFrZWRvd24oc3RydWN0IHR0bV9tZW1fdHlw ZV9tYW5hZ2VyICptYW4pCiB7CiAJc3RydWN0IHZtd2dmeF9nbXJpZF9tYW4gKmdtYW4gPQotCQko c3RydWN0IHZtd2dmeF9nbXJpZF9tYW4gKiltYW4tPnByaXY7CisJCShzdHJ1Y3Qgdm13Z2Z4X2dt cmlkX21hbiAqKW1hbi0+cmVnaW9uLnByaXY7CiAKIAlpZiAoZ21hbikgewogCQlpZGFfZGVzdHJv eSgmZ21hbi0+Z21yX2lkYSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Zt d2dmeF90dG1fYnVmZmVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fYnVm ZmVyLmMKaW5kZXggZDhlYTNkZDEwYWYwLi5jNmU5OTg5M2U5OTMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3R0bV9idWZmZXIuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vdm13Z2Z4L3Ztd2dmeF90dG1fYnVmZmVyLmMKQEAgLTc1NSw3ICs3NTUsNyBAQCBzdGF0aWMg aW50IHZtd19pbml0X21lbV90eXBlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCB1aW50MzJf dCB0eXBlLAogCWNhc2UgVFRNX1BMX1ZSQU06CiAJCS8qICJPbi1jYXJkIiB2aWRlbyByYW0gKi8K IAkJbWFuLT5mdW5jID0gJnR0bV9ib19tYW5hZ2VyX2Z1bmM7Ci0JCW1hbi0+Z3B1X29mZnNldCA9 IDA7CisJCW1hbi0+cmVnaW9uLnN0YXJ0ID0gMDsKIAkJbWFuLT5mbGFncyA9IFRUTV9NRU1UWVBF X0ZMQUdfRklYRUQgfCBUVE1fTUVNVFlQRV9GTEFHX01BUFBBQkxFOwogCQltYW4tPmF2YWlsYWJs ZV9jYWNoaW5nID0gVFRNX1BMX0ZMQUdfQ0FDSEVEOwogCQltYW4tPmRlZmF1bHRfY2FjaGluZyA9 IFRUTV9QTF9GTEFHX0NBQ0hFRDsKQEAgLTc2OCw3ICs3NjgsNyBAQCBzdGF0aWMgaW50IHZtd19p bml0X21lbV90eXBlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCB1aW50MzJfdCB0eXBlLAog CQkgKiAgc2xvdHMgYXMgd2VsbCBhcyB0aGUgYm8gc2l6ZS4KIAkJICovCiAJCW1hbi0+ZnVuYyA9 ICZ2bXdfZ21yaWRfbWFuYWdlcl9mdW5jOwotCQltYW4tPmdwdV9vZmZzZXQgPSAwOworCQltYW4t PnJlZ2lvbi5zdGFydCA9IDA7CiAJCW1hbi0+ZmxhZ3MgPSBUVE1fTUVNVFlQRV9GTEFHX0NNQSB8 IFRUTV9NRU1UWVBFX0ZMQUdfTUFQUEFCTEU7CiAJCW1hbi0+YXZhaWxhYmxlX2NhY2hpbmcgPSBU VE1fUExfRkxBR19DQUNIRUQ7CiAJCW1hbi0+ZGVmYXVsdF9jYWNoaW5nID0gVFRNX1BMX0ZMQUdf Q0FDSEVEOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX21tLmggYi9pbmNsdWRlL2RybS9k cm1fbW0uaAppbmRleCAyYzNiYmI0M2M3ZDEuLjNkMTIzZWIxMGQ2MiAxMDA2NDQKLS0tIGEvaW5j bHVkZS9kcm0vZHJtX21tLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX21tLmgKQEAgLTQzLDYgKzQz LDggQEAKICNpbmNsdWRlIDxsaW51eC9tbV90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2xpc3Qu aD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L2RtYS1mZW5j ZS5oPgorI2luY2x1ZGUgPGxpbnV4L2lvLW1hcHBpbmcuaD4KICNpZmRlZiBDT05GSUdfRFJNX0RF QlVHX01NCiAjaW5jbHVkZSA8bGludXgvc3RhY2tkZXBvdC5oPgogI2VuZGlmCkBAIC01NCw2ICs1 NiwzMSBAQAogI2RlZmluZSBEUk1fTU1fQlVHX09OKGV4cHIpIEJVSUxEX0JVR19PTl9JTlZBTElE KGV4cHIpCiAjZW5kaWYKIAorc3RydWN0IGRybV9kZXZpY2U7CitzdHJ1Y3QgZHJtX21tOworCisv KioKKyAqIHN0cnVjdCBkcm1fbWVtX3JlZ2lvbgorICoKKyAqIEJhc2UgbWVtb3J5IHJlZ2lvbiBz dHJ1Y3R1cmUgdG8gYmUgbmVzdGVkIGluc2lkZSBUVE0gbWVtb3J5IHJlZ2lvbnMKKyAqICh0dG1f bWVtX3R5cGVfbWFuYWdlcikgYW5kIGk5MTUgbWVtb3J5IHJlZ2lvbnMgKGludGVsX21lbW9yeV9y ZWdpb24pLgorICovCitzdHJ1Y3QgZHJtX21lbV9yZWdpb24geworCXJlc291cmNlX3NpemVfdCBz dGFydDsgLyogd2l0aGluIEdQVSBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlICovCisJcmVzb3VyY2Vf c2l6ZV90IGlvX3N0YXJ0OyAvKiBCQVIgYWRkcmVzcyAoQ1BVIGFjY2Vzc2libGUpICovCisJcmVz b3VyY2Vfc2l6ZV90IHNpemU7CisJc3RydWN0IGlvX21hcHBpbmcgaW9tYXA7CisJdTggdHlwZTsK KworCXVuaW9uIHsKKwkJc3RydWN0IGRybV9tbSAqbW07CisJCS8qIEZJWE1FIChmb3IgaTkxNSk6 IHN0cnVjdCBkcm1fYnVkZHlfbW0gKmJ1ZGR5X21tOyAqLworCQl2b2lkICpwcml2OworCX07CisJ c3BpbmxvY2tfdCBtb3ZlX2xvY2s7CisJc3RydWN0IGRtYV9mZW5jZSAqbW92ZTsKK307CisKIC8q KgogICogZW51bSBkcm1fbW1faW5zZXJ0X21vZGUgLSBjb250cm9sIHNlYXJjaCBhbmQgYWxsb2Nh dGlvbiBiZWhhdmlvdXIKICAqCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2Fw aS5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaAppbmRleCA0OWQ5Y2RmYzU4ZjIuLmY4 Y2IzMzJmMGVlYiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaAorKysg Yi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2FwaS5oCkBAIC02MTUsNyArNjE1LDcgQEAgaW50IHR0 bV9ib19jcmVhdGUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsIHVuc2lnbmVkIGxvbmcgc2l6 ZSwKICAqIE1heSBhbHNvIHJldHVybiBkcml2ZXItc3BlY2lmaWVkIGVycm9ycy4KICAqLwogaW50 IHR0bV9ib19pbml0X21tKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2LCB1bnNpZ25lZCB0eXBl LAotCQkgICB1bnNpZ25lZCBsb25nIHBfc2l6ZSk7CisJCSAgIHJlc291cmNlX3NpemVfdCBwX3Np emUpOwogCiAvKioKICAqIHR0bV9ib19jbGVhbl9tbQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0v dHRtL3R0bV9ib19kcml2ZXIuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKaW5k ZXggYzliOGJhNDkyZjI0Li40MDY2ZWUzMTU0NjkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL3R0 bS90dG1fYm9fZHJpdmVyLmgKKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaApA QCAtNTEsNiArNTEsMTIgQEAKIAogc3RydWN0IHR0bV9tZW1fdHlwZV9tYW5hZ2VyOwogCisvKiBG SVhNRToKKyAqIFBvdGVudGlhbGx5IGNhbiByZXdvcmsgdGhpcyBhcyBjb21tb24gY2FsbGJhY2tz IGZvciBkcm1fbWVtX3JlZ2lvbgorICogaW5zdGVhZCBvZiB0dG1fbWVtX3R5cGVfbWFuYWdlci4K KyAqIFRoZW4gdGhlIGludGVsX21lbW9yeV9yZWdpb25fb3BzIHByb3Bvc2VkIGJ5IExNRU0gcGF0 Y2ggc2VyaWVzIGNvdWxkCisgKiBiZSBmb2xkZWQgaW50byBoZXJlLgorICovCiBzdHJ1Y3QgdHRt X21lbV90eXBlX21hbmFnZXJfZnVuYyB7CiAJLyoqCiAJICogc3RydWN0IHR0bV9tZW1fdHlwZV9t YW5hZ2VyIG1lbWJlciBpbml0CkBAIC0xNjgsNiArMTc0LDcgQEAgc3RydWN0IHR0bV9tZW1fdHlw ZV9tYW5hZ2VyX2Z1bmMgewogCiAKIHN0cnVjdCB0dG1fbWVtX3R5cGVfbWFuYWdlciB7CisJc3Ry dWN0IGRybV9tZW1fcmVnaW9uIHJlZ2lvbjsKIAlzdHJ1Y3QgdHRtX2JvX2RldmljZSAqYmRldjsK IAogCS8qCkBAIC0xNzcsMTYgKzE4NCwxMiBAQCBzdHJ1Y3QgdHRtX21lbV90eXBlX21hbmFnZXIg ewogCWJvb2wgaGFzX3R5cGU7CiAJYm9vbCB1c2VfdHlwZTsKIAl1aW50MzJfdCBmbGFnczsKLQl1 aW50NjRfdCBncHVfb2Zmc2V0OyAvKiBHUFUgYWRkcmVzcyBzcGFjZSBpcyBpbmRlcGVuZGVudCBv ZiBDUFUgd29yZCBzaXplICovCi0JdWludDY0X3Qgc2l6ZTsKIAl1aW50MzJfdCBhdmFpbGFibGVf Y2FjaGluZzsKIAl1aW50MzJfdCBkZWZhdWx0X2NhY2hpbmc7CiAJY29uc3Qgc3RydWN0IHR0bV9t ZW1fdHlwZV9tYW5hZ2VyX2Z1bmMgKmZ1bmM7Ci0Jdm9pZCAqcHJpdjsKIAlzdHJ1Y3QgbXV0ZXgg aW9fcmVzZXJ2ZV9tdXRleDsKIAlib29sIHVzZV9pb19yZXNlcnZlX2xydTsKIAlib29sIGlvX3Jl c2VydmVfZmFzdHBhdGg7Ci0Jc3BpbmxvY2tfdCBtb3ZlX2xvY2s7CiAKIAkvKgogCSAqIFByb3Rl Y3RlZCBieSBAaW9fcmVzZXJ2ZV9tdXRleDoKQEAgLTE5OSwxMSArMjAyLDYgQEAgc3RydWN0IHR0 bV9tZW1fdHlwZV9tYW5hZ2VyIHsKIAkgKi8KIAogCXN0cnVjdCBsaXN0X2hlYWQgbHJ1W1RUTV9N QVhfQk9fUFJJT1JJVFldOwotCi0JLyoKLQkgKiBQcm90ZWN0ZWQgYnkgQG1vdmVfbG9jay4KLQkg Ki8KLQlzdHJ1Y3QgZG1hX2ZlbmNlICptb3ZlOwogfTsKIAogLyoqCi0tIAoyLjIxLjAKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==