From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v2,1/2] dmaengine: Add metadata_ops for dma_async_tx_descriptor From: Peter Ujfalusi Message-Id: <20180830121910.16005-2-peter.ujfalusi@ti.com> Date: Thu, 30 Aug 2018 15:19:09 +0300 To: dan.j.williams@intel.com, vkoul@kernel.org Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, lars@metafoo.de, radheys@xilinx.com List-ID: VGhlIG1ldGFkYXRhIGlzIGJlc3QgZGVzY3JpYmVkIGFzIHNpZGUgYmFuZCBkYXRhIG9yIHBhcmFt ZXRlcnMgdHJhdmVsaW5nCmFsb25nc2lkZSB0aGUgZGF0YSBETUFkIGJ5IHRoZSBETUEgZW5naW5l LiBJdCBpcyBkYXRhCndoaWNoIGlzIHVuZGVyc3Rvb2QgYnkgdGhlIHBlcmlwaGVyYWwgYW5kIHRo ZSBwZXJpcGhlcmFsIGRyaXZlciBvbmx5LCB0aGUKRE1BIGVuZ2luZSBzZWUgaXQgb25seSBhcyBk YXRhIGJsb2NrIGFuZCBpdCBpcyBub3QgaW50ZXJwcmV0aW5nIGl0IGluIGFueQp3YXkuCgpUaGUg bWV0YWRhdGEgY2FuIGJlIGRpZmZlcmVudCBwZXIgZGVzY3JpcHRvciBhcyBpdCBpcyBhIHBhcmFt ZXRlciBmb3IgdGhlCmRhdGEgYmVpbmcgdHJhbnNmZXJyZWQuCgpJZiB0aGUgRE1BIHN1cHBvcnRz IHBlciBkZXNjcmlwdG9yIG1ldGFkYXRhIGl0IGNhbiBpbXBsZW1lbnQgdGhlIGF0dGFjaCwKZ2V0 X3B0ci9zZXRfbGVuIGNhbGxiYWNrcy4KCkNsaWVudCBkcml2ZXJzIG11c3Qgb25seSB1c2UgZWl0 aGVyIGF0dGFjaCBvciBnZXRfcHRyL3NldF9sZW4gdG8gYXZvaWQKbWlzY29uZmlndXJhdGlvbi4K CkNsaWVudCBkcml2ZXIgY2FuIGNoZWNrIGlmIGEgZ2l2ZW4gbWV0YWRhdGEgbW9kZSBpcyBzdXBw b3J0ZWQgYnkgdGhlCmNoYW5uZWwgZHVyaW5nIHByb2JlIHRpbWUgd2l0aApkbWFlbmdpbmVfaXNf bWV0YWRhdGFfbW9kZV9zdXBwb3J0ZWQoY2hhbiwgREVTQ19NRVRBREFUQV9DTElFTlQpOwpkbWFl bmdpbmVfaXNfbWV0YWRhdGFfbW9kZV9zdXBwb3J0ZWQoY2hhbiwgREVTQ19NRVRBREFUQV9FTkdJ TkUpOwoKYW5kIGJhc2VkIG9uIHRoaXMgaW5mb3JtYXRpb24gY2FuIHVzZSBlaXRoZXIgbW9kZS4K CldyYXBwZXJzIGFyZSBhbHNvIGFkZGVkIGZvciB0aGUgbWV0YWRhdGFfb3BzLgoKVG8gYmUgdXNl ZCBpbiBERVNDX01FVEFEQVRBX0NMSUVOVCBtb2RlOgpkbWFlbmdpbmVfZGVzY19hdHRhY2hfbWV0 YWRhdGEoKQoKVG8gYmUgdXNlZCBpbiBERVNDX01FVEFEQVRBX0VOR0lORSBtb2RlOgpkbWFlbmdp bmVfZGVzY19nZXRfbWV0YWRhdGFfcHRyKCkKZG1hZW5naW5lX2Rlc2Nfc2V0X21ldGFkYXRhX2xl bigpCgpTaWduZWQtb2ZmLWJ5OiBQZXRlciBVamZhbHVzaSA8cGV0ZXIudWpmYWx1c2lAdGkuY29t PgotLS0KIGRyaXZlcnMvZG1hL2RtYWVuZ2luZS5jICAgfCAgNzMgKysrKysrKysrKysrKysrKysr KysrKysrKysKIGluY2x1ZGUvbGludXgvZG1hZW5naW5lLmggfCAxMDggKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTgxIGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS9kbWFlbmdpbmUuYyBiL2RyaXZlcnMvZG1hL2Rt YWVuZ2luZS5jCmluZGV4IGYxYTQ0MWFiMzk1ZC4uNTNiZDFlYWUyM2YyIDEwMDY0NAotLS0gYS9k cml2ZXJzL2RtYS9kbWFlbmdpbmUuYworKysgYi9kcml2ZXJzL2RtYS9kbWFlbmdpbmUuYwpAQCAt MTMwNiw2ICsxMzA2LDc5IEBAIHZvaWQgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3JfaW5pdChzdHJ1 Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgKnR4LAogfQogRVhQT1JUX1NZTUJPTChkbWFfYXN5 bmNfdHhfZGVzY3JpcHRvcl9pbml0KTsKIAorc3RhdGljIGlubGluZSBpbnQgZGVzY19jaGVja19h bmRfc2V0X21ldGFkYXRhX21vZGUoCisJc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yICpk ZXNjLCBlbnVtIGRtYV9kZXNjX21ldGFkYXRhX21vZGUgbW9kZSkKK3sKKwkvKiBNYWtlIHN1cmUg dGhhdCB0aGUgbWV0YWRhdGEgbW9kZSBpcyBub3QgbWl4ZWQgKi8KKwlpZiAoIWRlc2MtPmRlc2Nf bWV0YWRhdGFfbW9kZSkgeworCQlpZiAoZG1hZW5naW5lX2lzX21ldGFkYXRhX21vZGVfc3VwcG9y dGVkKGRlc2MtPmNoYW4sIG1vZGUpKQorCQkJZGVzYy0+ZGVzY19tZXRhZGF0YV9tb2RlID0gbW9k ZTsKKwkJZWxzZQorCQkJcmV0dXJuIC1FTk9UU1VQUDsKKwl9IGVsc2UgaWYgKGRlc2MtPmRlc2Nf bWV0YWRhdGFfbW9kZSAhPSBtb2RlKSB7CisJCXJldHVybiAtRUlOVkFMOworCX0KKworCXJldHVy biAwOworfQorCitpbnQgZG1hZW5naW5lX2Rlc2NfYXR0YWNoX21ldGFkYXRhKHN0cnVjdCBkbWFf YXN5bmNfdHhfZGVzY3JpcHRvciAqZGVzYywKKwkJCQkgICB2b2lkICpkYXRhLCBzaXplX3QgbGVu KQoreworCWludCByZXQ7CisKKwlpZiAoIWRlc2MpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0 ID0gZGVzY19jaGVja19hbmRfc2V0X21ldGFkYXRhX21vZGUoZGVzYywgREVTQ19NRVRBREFUQV9D TElFTlQpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlpZiAoIWRlc2MtPm1ldGFkYXRh X29wcyB8fCAhZGVzYy0+bWV0YWRhdGFfb3BzLT5hdHRhY2gpCisJCXJldHVybiAtRU5PVFNVUFA7 CisKKwlyZXR1cm4gZGVzYy0+bWV0YWRhdGFfb3BzLT5hdHRhY2goZGVzYywgZGF0YSwgbGVuKTsK K30KK0VYUE9SVF9TWU1CT0woZG1hZW5naW5lX2Rlc2NfYXR0YWNoX21ldGFkYXRhKTsKKwordm9p ZCAqZG1hZW5naW5lX2Rlc2NfZ2V0X21ldGFkYXRhX3B0cihzdHJ1Y3QgZG1hX2FzeW5jX3R4X2Rl c2NyaXB0b3IgKmRlc2MsCisJCQkJICAgICAgc2l6ZV90ICpwYXlsb2FkX2xlbiwgc2l6ZV90ICpt YXhfbGVuKQoreworCWludCByZXQ7CisKKwlpZiAoIWRlc2MpCisJCXJldHVybiBFUlJfUFRSKC1F SU5WQUwpOworCisJcmV0ID0gZGVzY19jaGVja19hbmRfc2V0X21ldGFkYXRhX21vZGUoZGVzYywg REVTQ19NRVRBREFUQV9FTkdJTkUpOworCWlmIChyZXQpCisJCXJldHVybiBFUlJfUFRSKHJldCk7 CisKKwlpZiAoIWRlc2MtPm1ldGFkYXRhX29wcyB8fCAhZGVzYy0+bWV0YWRhdGFfb3BzLT5nZXRf cHRyKQorCQlyZXR1cm4gRVJSX1BUUigtRU5PVFNVUFApOworCisJcmV0dXJuIGRlc2MtPm1ldGFk YXRhX29wcy0+Z2V0X3B0cihkZXNjLCBwYXlsb2FkX2xlbiwgbWF4X2xlbik7Cit9CitFWFBPUlRf U1lNQk9MKGRtYWVuZ2luZV9kZXNjX2dldF9tZXRhZGF0YV9wdHIpOworCitpbnQgZG1hZW5naW5l X2Rlc2Nfc2V0X21ldGFkYXRhX2xlbihzdHJ1Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgKmRl c2MsCisJCQkJICAgIHNpemVfdCBwYXlsb2FkX2xlbikKK3sKKwlpbnQgcmV0OworCisJaWYgKCFk ZXNjKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCXJldCA9IGRlc2NfY2hlY2tfYW5kX3NldF9tZXRh ZGF0YV9tb2RlKGRlc2MsIERFU0NfTUVUQURBVEFfRU5HSU5FKTsKKwlpZiAocmV0KQorCQlyZXR1 cm4gcmV0OworCisJaWYgKCFkZXNjLT5tZXRhZGF0YV9vcHMgfHwgIWRlc2MtPm1ldGFkYXRhX29w cy0+c2V0X2xlbikKKwkJcmV0dXJuIC1FTk9UU1VQUDsKKworCXJldHVybiBkZXNjLT5tZXRhZGF0 YV9vcHMtPnNldF9sZW4oZGVzYywgcGF5bG9hZF9sZW4pOworfQorRVhQT1JUX1NZTUJPTChkbWFl bmdpbmVfZGVzY19zZXRfbWV0YWRhdGFfbGVuKTsKKwogLyogZG1hX3dhaXRfZm9yX2FzeW5jX3R4 IC0gc3BpbiB3YWl0IGZvciBhIHRyYW5zYWN0aW9uIHRvIGNvbXBsZXRlCiAgKiBAdHg6IGluLWZs aWdodCB0cmFuc2FjdGlvbiB0byB3YWl0IG9uCiAgKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvZG1hZW5naW5lLmggYi9pbmNsdWRlL2xpbnV4L2RtYWVuZ2luZS5oCmluZGV4IDNkYjgzM2E4 YzU0Mi4uMTBmZjcxYjEzZWVmIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2RtYWVuZ2luZS5o CisrKyBiL2luY2x1ZGUvbGludXgvZG1hZW5naW5lLmgKQEAgLTIzMSw2ICsyMzEsNTggQEAgdHlw ZWRlZiBzdHJ1Y3QgeyBERUNMQVJFX0JJVE1BUChiaXRzLCBETUFfVFhfVFlQRV9FTkQpOyB9IGRt YV9jYXBfbWFza190OwogICogQGJ5dGVzX3RyYW5zZmVycmVkOiBieXRlIGNvdW50ZXIKICAqLwog CisvKioKKyAqIGVudW0gZG1hX2Rlc2NfbWV0YWRhdGFfbW9kZSAtIHBlciBkZXNjcmlwdG9yIG1l dGFkYXRhIG1vZGUgdHlwZXMgc3VwcG9ydGVkCisgKiBAREVTQ19NRVRBREFUQV9DTElFTlQgLSB0 aGUgbWV0YWRhdGEgYnVmZmVyIGlzIGFsbG9jYXRlZC9wcm92aWRlZCBieSB0aGUKKyAqICBjbGll bnQgZHJpdmVyIGFuZCBpdCBpcyBhdHRhY2hlZCAodmlhIHRoZSBkbWFlbmdpbmVfZGVzY19hdHRh Y2hfbWV0YWRhdGEoKQorICogIGhlbHBlcikgdG8gdGhlIGRlc2NyaXB0b3IuCisgKgorICogQ2xp ZW50IGRyaXZlcnMgaW50ZXJlc3RlZCB0byB1c2UgdGhpcyBtb2RlIGNhbiBmb2xsb3c6CisgKiAt IERNQV9NRU1fVE9fREVWIC8gREVWX01FTV9UT19NRU06CisgKiAgIDEuIHByZXBhcmUgdGhlIGRl c2NyaXB0b3IgKGRtYWVuZ2luZV9wcmVwXyopCisgKgljb25zdHJ1Y3QgdGhlIG1ldGFkYXRhIGlu IHRoZSBjbGllbnQncyBidWZmZXIKKyAqICAgMi4gdXNlIGRtYWVuZ2luZV9kZXNjX2F0dGFjaF9t ZXRhZGF0YSgpIHRvIGF0dGFjaCB0aGUgYnVmZmVyIHRvIHRoZQorICoJZGVzY3JpcHRvcgorICog ICAzLiBzdWJtaXQgdGhlIHRyYW5zZmVyCisgKiAtIERNQV9ERVZfVE9fTUVNOgorICogICAxLiBw cmVwYXJlIHRoZSBkZXNjcmlwdG9yIChkbWFlbmdpbmVfcHJlcF8qKQorICogICAyLiB1c2UgZG1h ZW5naW5lX2Rlc2NfYXR0YWNoX21ldGFkYXRhKCkgdG8gYXR0YWNoIHRoZSBidWZmZXIgdG8gdGhl CisgKglkZXNjcmlwdG9yCisgKiAgIDMuIHN1Ym1pdCB0aGUgdHJhbnNmZXIKKyAqICAgNC4gd2hl biB0aGUgdHJhbnNmZXIgaXMgY29tcGxldGVkLCB0aGUgbWV0YWRhdGEgc2hvdWxkIGJlIGF2YWls YWJsZSBpbiB0aGUKKyAqCWF0dGFjaGVkIGJ1ZmZlcgorICoKKyAqIEBERVNDX01FVEFEQVRBX0VO R0lORSAtIHRoZSBtZXRhZGF0YSBidWZmZXIgaXMgYWxsb2NhdGVkL21hbmFnZWQgYnkgdGhlIERN QQorICogIGRyaXZlci4gVGhlIGNsaWVudCBkcml2ZXIgY2FuIGFzayBmb3IgdGhlIHBvaW50ZXIs IG1heGltdW0gc2l6ZSBhbmQgdGhlCisgKiAgY3VycmVudGx5IHVzZWQgc2l6ZSBvZiB0aGUgbWV0 YWRhdGEgYW5kIGNhbiBkaXJlY3RseSB1cGRhdGUgb3IgcmVhZCBpdC4KKyAqICBkbWFlbmdpbmVf ZGVzY19nZXRfbWV0YWRhdGFfcHRyKCkgYW5kIGRtYWVuZ2luZV9kZXNjX3NldF9tZXRhZGF0YV9s ZW4oKSBpcworICogIHByb3ZpZGVkIGFzIGhlbHBlciBmdW5jdGlvbnMuCisgKgorICogQ2xpZW50 IGRyaXZlcnMgaW50ZXJlc3RlZCB0byB1c2UgdGhpcyBtb2RlIGNhbiBmb2xsb3c6CisgKiAtIERN QV9NRU1fVE9fREVWIC8gREVWX01FTV9UT19NRU06CisgKiAgIDEuIHByZXBhcmUgdGhlIGRlc2Ny aXB0b3IgKGRtYWVuZ2luZV9wcmVwXyopCisgKiAgIDIuIHVzZSBkbWFlbmdpbmVfZGVzY19nZXRf bWV0YWRhdGFfcHRyKCkgdG8gZ2V0IHRoZSBwb2ludGVyIHRvIHRoZSBlbmdpbmUncworICoJbWV0 YWRhdGEgYXJlYQorICogICAzLiB1cGRhdGUgdGhlIG1ldGFkYXRhIGF0IHRoZSBwb2ludGVyCisg KiAgIDQuIHVzZSBkbWFlbmdpbmVfZGVzY19zZXRfbWV0YWRhdGFfbGVuKCkgIHRvIHRlbGwgdGhl IERNQSBlbmdpbmUgdGhlIGFtb3VudAorICoJb2YgZGF0YSB0aGUgY2xpZW50IGhhcyBwbGFjZWQg aW50byB0aGUgbWV0YWRhdGEgYnVmZmVyCisgKiAgIDUuIHN1Ym1pdCB0aGUgdHJhbnNmZXIKKyAq IC0gRE1BX0RFVl9UT19NRU06CisgKiAgIDEuIHByZXBhcmUgdGhlIGRlc2NyaXB0b3IgKGRtYWVu Z2luZV9wcmVwXyopCisgKiAgIDIuIHN1Ym1pdCB0aGUgdHJhbnNmZXIKKyAqICAgMy4gb24gdHJh bnNmZXIgY29tcGxldGlvbiwgdXNlIGRtYWVuZ2luZV9kZXNjX2dldF9tZXRhZGF0YV9wdHIoKSB0 byBnZXQgdGhlCisgKglwb2ludGVyIHRvIHRoZSBlbmdpbmUncyBtZXRhZGF0YSBhcmUKKyAqICAg NC4gUmVhZCBvdXQgdGhlIG1ldGFkYXRlIGZyb20gdGhlIHBvaW50ZXIKKyAqCisgKiBOb3RlOiB0 aGUgdHdvIG1vZGUgaXMgbm90IGNvbXBhdGlibGUgYW5kIGNsaWVudHMgbXVzdCB1c2Ugb25lIG1v ZGUgZm9yIGEKKyAqIGRlc2NyaXB0b3IuCisgKi8KK2VudW0gZG1hX2Rlc2NfbWV0YWRhdGFfbW9k ZSB7CisJREVTQ19NRVRBREFUQV9OT05FID0gMCwKKwlERVNDX01FVEFEQVRBX0NMSUVOVCA9IEJJ VCgwKSwKKwlERVNDX01FVEFEQVRBX0VOR0lORSA9IEJJVCgxKSwKK307CisKIHN0cnVjdCBkbWFf Y2hhbl9wZXJjcHUgewogCS8qIHN0YXRzICovCiAJdW5zaWduZWQgbG9uZyBtZW1jcHlfY291bnQ7 CkBAIC00OTQsNiArNTQ2LDE4IEBAIHN0cnVjdCBkbWFlbmdpbmVfdW5tYXBfZGF0YSB7CiAJZG1h X2FkZHJfdCBhZGRyWzBdOwogfTsKIAorc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yOwor CitzdHJ1Y3QgZG1hX2Rlc2NyaXB0b3JfbWV0YWRhdGFfb3BzIHsKKwlpbnQgKCphdHRhY2gpKHN0 cnVjdCBkbWFfYXN5bmNfdHhfZGVzY3JpcHRvciAqZGVzYywgdm9pZCAqZGF0YSwKKwkJICAgICAg c2l6ZV90IGxlbik7CisKKwl2b2lkICooKmdldF9wdHIpKHN0cnVjdCBkbWFfYXN5bmNfdHhfZGVz Y3JpcHRvciAqZGVzYywKKwkJCSBzaXplX3QgKnBheWxvYWRfbGVuLCBzaXplX3QgKm1heF9sZW4p OworCWludCAoKnNldF9sZW4pKHN0cnVjdCBkbWFfYXN5bmNfdHhfZGVzY3JpcHRvciAqZGVzYywK KwkJICAgICAgIHNpemVfdCBwYXlsb2FkX2xlbik7Cit9OworCiAvKioKICAqIHN0cnVjdCBkbWFf YXN5bmNfdHhfZGVzY3JpcHRvciAtIGFzeW5jIHRyYW5zYWN0aW9uIGRlc2NyaXB0b3IKICAqIC0t LWRtYSBnZW5lcmljIG9mZmxvYWQgZmllbGRzLS0tCkBAIC01MDcsNiArNTcxLDExIEBAIHN0cnVj dCBkbWFlbmdpbmVfdW5tYXBfZGF0YSB7CiAgKiBkZXNjcmlwdG9yIHBlbmRpbmcuIFRvIGJlIHB1 c2hlZCBvbiAuaXNzdWVfcGVuZGluZygpIGNhbGwKICAqIEBjYWxsYmFjazogcm91dGluZSB0byBj YWxsIGFmdGVyIHRoaXMgb3BlcmF0aW9uIGlzIGNvbXBsZXRlCiAgKiBAY2FsbGJhY2tfcGFyYW06 IGdlbmVyYWwgcGFyYW1ldGVyIHRvIHBhc3MgdG8gdGhlIGNhbGxiYWNrIHJvdXRpbmUKKyAqIEBk ZXNjX21ldGFkYXRhX21vZGU6IGNvcmUgbWFuYWdlZCBtZXRhZGF0YSBtb2RlIHRvIHByb3RlY3Qg bWl4ZWQgdXNlIG9mCisgKglERVNDX01FVEFEQVRBX0NMSUVOVCBvciBERVNDX01FVEFEQVRBX0VO R0lORS4gT3RoZXJ3aXNlCisgKglERVNDX01FVEFEQVRBX05PTkUKKyAqIEBtZXRhZGF0YV9vcHM6 IERNQSBkcml2ZXIgcHJvdmlkZWQgbWV0YWRhdGEgbW9kZSBvcHMsIG5lZWQgdG8gYmUgc2V0IGJ5 IHRoZQorICoJRE1BIGRyaXZlciBpZiBtZXRhZGF0YSBtb2RlIGlzIHN1cHBvcnRlZCB3aXRoIHRo ZSBkZXNjcmlwdG9yCiAgKiAtLS1hc3luY190eCBhcGkgc3BlY2lmaWMgZmllbGRzLS0tCiAgKiBA bmV4dDogYXQgY29tcGxldGlvbiBzdWJtaXQgdGhpcyBkZXNjcmlwdG9yCiAgKiBAcGFyZW50OiBw b2ludGVyIHRvIHRoZSBuZXh0IGxldmVsIHVwIGluIHRoZSBkZXBlbmRlbmN5IGNoYWluCkBAIC01 MjMsNiArNTkyLDggQEAgc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yIHsKIAlkbWFfYXN5 bmNfdHhfY2FsbGJhY2tfcmVzdWx0IGNhbGxiYWNrX3Jlc3VsdDsKIAl2b2lkICpjYWxsYmFja19w YXJhbTsKIAlzdHJ1Y3QgZG1hZW5naW5lX3VubWFwX2RhdGEgKnVubWFwOworCWVudW0gZG1hX2Rl c2NfbWV0YWRhdGFfbW9kZSBkZXNjX21ldGFkYXRhX21vZGU7CisJc3RydWN0IGRtYV9kZXNjcmlw dG9yX21ldGFkYXRhX29wcyAqbWV0YWRhdGFfb3BzOwogI2lmZGVmIENPTkZJR19BU1lOQ19UWF9F TkFCTEVfQ0hBTk5FTF9TV0lUQ0gKIAlzdHJ1Y3QgZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgKm5l eHQ7CiAJc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yICpwYXJlbnQ7CkBAIC02ODUsNiAr NzU2LDcgQEAgc3RydWN0IGRtYV9maWx0ZXIgewogICogQGdsb2JhbF9ub2RlOiBsaXN0X2hlYWQg Zm9yIGdsb2JhbCBkbWFfZGV2aWNlX2xpc3QKICAqIEBmaWx0ZXI6IGluZm9ybWF0aW9uIGZvciBk ZXZpY2Uvc2xhdmUgdG8gZmlsdGVyIGZ1bmN0aW9uL3BhcmFtIG1hcHBpbmcKICAqIEBjYXBfbWFz azogb25lIG9yIG1vcmUgZG1hX2NhcGFiaWxpdHkgZmxhZ3MKKyAqIEBkZXNjX21ldGFkYXRhX21v ZGVzOiBzdXBwb3J0ZWQgbWV0YWRhdGEgbW9kZXMgYnkgdGhlIERNQSBkZXZpY2UKICAqIEBtYXhf eG9yOiBtYXhpbXVtIG51bWJlciBvZiB4b3Igc291cmNlcywgMCBpZiBubyBjYXBhYmlsaXR5CiAg KiBAbWF4X3BxOiBtYXhpbXVtIG51bWJlciBvZiBQUSBzb3VyY2VzIGFuZCBQUS1jb250aW51ZSBj YXBhYmlsaXR5CiAgKiBAY29weV9hbGlnbjogYWxpZ25tZW50IHNoaWZ0IGZvciBtZW1jcHkgb3Bl cmF0aW9ucwpAQCAtNzQ5LDYgKzgyMSw3IEBAIHN0cnVjdCBkbWFfZGV2aWNlIHsKIAlzdHJ1Y3Qg bGlzdF9oZWFkIGdsb2JhbF9ub2RlOwogCXN0cnVjdCBkbWFfZmlsdGVyIGZpbHRlcjsKIAlkbWFf Y2FwX21hc2tfdCAgY2FwX21hc2s7CisJZW51bSBkbWFfZGVzY19tZXRhZGF0YV9tb2RlIGRlc2Nf bWV0YWRhdGFfbW9kZXM7CiAJdW5zaWduZWQgc2hvcnQgbWF4X3hvcjsKIAl1bnNpZ25lZCBzaG9y dCBtYXhfcHE7CiAJZW51bSBkbWFlbmdpbmVfYWxpZ25tZW50IGNvcHlfYWxpZ247CkBAIC05MzUs NiArMTAwOCw0MSBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBkbWFfYXN5bmNfdHhfZGVzY3JpcHRv ciAqZG1hZW5naW5lX3ByZXBfZG1hX21lbWNweSgKIAkJCQkJCSAgICBsZW4sIGZsYWdzKTsKIH0K IAorc3RhdGljIGlubGluZSBib29sIGRtYWVuZ2luZV9pc19tZXRhZGF0YV9tb2RlX3N1cHBvcnRl ZChzdHJ1Y3QgZG1hX2NoYW4gKmNoYW4sCisJCWVudW0gZG1hX2Rlc2NfbWV0YWRhdGFfbW9kZSBt b2RlKQoreworCWlmICghY2hhbikKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuICEhKGNoYW4t PmRldmljZS0+ZGVzY19tZXRhZGF0YV9tb2RlcyAmIG1vZGUpOworfQorCisjaWZkZWYgQ09ORklH X0RNQV9FTkdJTkUKK2ludCBkbWFlbmdpbmVfZGVzY19hdHRhY2hfbWV0YWRhdGEoc3RydWN0IGRt YV9hc3luY190eF9kZXNjcmlwdG9yICpkZXNjLAorCQkJCSAgIHZvaWQgKmRhdGEsIHNpemVfdCBs ZW4pOwordm9pZCAqZG1hZW5naW5lX2Rlc2NfZ2V0X21ldGFkYXRhX3B0cihzdHJ1Y3QgZG1hX2Fz eW5jX3R4X2Rlc2NyaXB0b3IgKmRlc2MsCisJCQkJICAgICAgc2l6ZV90ICpwYXlsb2FkX2xlbiwg c2l6ZV90ICptYXhfbGVuKTsKK2ludCBkbWFlbmdpbmVfZGVzY19zZXRfbWV0YWRhdGFfbGVuKHN0 cnVjdCBkbWFfYXN5bmNfdHhfZGVzY3JpcHRvciAqZGVzYywKKwkJCQkgICAgc2l6ZV90IHBheWxv YWRfbGVuKTsKKyNlbHNlIC8qIENPTkZJR19ETUFfRU5HSU5FICovCitzdGF0aWMgaW5saW5lIGlu dCBkbWFlbmdpbmVfZGVzY19hdHRhY2hfbWV0YWRhdGEoCisJCXN0cnVjdCBkbWFfYXN5bmNfdHhf ZGVzY3JpcHRvciAqZGVzYywgdm9pZCAqZGF0YSwgc2l6ZV90IGxlbikKK3sKKwlyZXR1cm4gLUVJ TlZBTDsKK30KK3N0YXRpYyBpbmxpbmUgdm9pZCAqZG1hZW5naW5lX2Rlc2NfZ2V0X21ldGFkYXRh X3B0cigKKwkJc3RydWN0IGRtYV9hc3luY190eF9kZXNjcmlwdG9yICpkZXNjLCBzaXplX3QgKnBh eWxvYWRfbGVuLAorCQlzaXplX3QgKm1heF9sZW4pCit7CisJcmV0dXJuIE5VTEw7Cit9CitzdGF0 aWMgaW5saW5lIGludCBkbWFlbmdpbmVfZGVzY19zZXRfbWV0YWRhdGFfbGVuKAorCQlzdHJ1Y3Qg ZG1hX2FzeW5jX3R4X2Rlc2NyaXB0b3IgKmRlc2MsIHNpemVfdCBwYXlsb2FkX2xlbikKK3sKKwly ZXR1cm4gLUVJTlZBTDsKK30KKyNlbmRpZiAvKiBDT05GSUdfRE1BX0VOR0lORSAqLworCiAvKioK ICAqIGRtYWVuZ2luZV90ZXJtaW5hdGVfYWxsKCkgLSBUZXJtaW5hdGUgYWxsIGFjdGl2ZSBETUEg dHJhbnNmZXJzCiAgKiBAY2hhbjogVGhlIGNoYW5uZWwgZm9yIHdoaWNoIHRvIHRlcm1pbmF0ZSB0 aGUgdHJhbnNmZXJzCg==