From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sumit Semwal Subject: [RFC] dma-buf: cleanup dma_buf_export() to make it easily extensible Date: Fri, 23 Jan 2015 13:04:12 +0530 Message-ID: <1421998452-18752-1-git-send-email-sumit.semwal@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: linux-kernel@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, linux-arm-kernel@lists.infradead.org, rmk+kernel@arm.linux.org.uk, airlied@linux.ie, kgene@kernel.org, daniel.vetter@intel.com, thierry.reding@gmail.com, pawel@osciak.com, m.szyprowski@samsung.com, mchehab@osg.samsung.com, gregkh@linuxfoundation.org Cc: linaro-kernel@lists.linaro.org, intel-gfx@lists.freedesktop.org, inki.dae@samsung.com, linux-tegra@vger.kernel.org, Sumit Semwal List-Id: dri-devel@lists.freedesktop.org QXQgcHJlc2VudCwgZG1hX2J1Zl9leHBvcnQoKSB0YWtlcyBhIHNlcmllcyBvZiBwYXJhbWV0ZXJz LCB3aGljaAptYWtlcyBpdCBkaWZmaWN1bHQgdG8gYWRkIGFueSBuZXcgcGFyYW1ldGVycyBmb3Ig ZXhwb3J0ZXJzLCBpZiByZXF1aXJlZC4KCk1ha2UgaXQgc2ltcGxlciBieSBtb3ZpbmcgYWxsIHRo ZXNlIHBhcmFtZXRlcnMgaW50byBhIHN0cnVjdCwgYW5kIHBhc3MKdGhlIHN0cnVjdCAqIGFzIHBh cmFtZXRlciB0byBkbWFfYnVmX2V4cG9ydCgpLgoKV2hpbGUgYXQgaXQsIHVuaXRlIGRtYV9idWZf ZXhwb3J0X25hbWVkKCkgd2l0aCBkbWFfYnVmX2V4cG9ydCgpLCBhbmQKY2hhbmdlIGFsbCBjYWxs ZXJzIGFjY29yZGluZ2x5LgoKU2lnbmVkLW9mZi1ieTogU3VtaXQgU2Vtd2FsIDxzdW1pdC5zZW13 YWxAbGluYXJvLm9yZz4KLS0tCiBkcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jICAgICAgICAgICAg ICAgICAgICAgIHwgNDcgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2Ry bS9hcm1hZGEvYXJtYWRhX2dlbS5jICAgICAgICAgICAgfCAxMiArKysrKy0tCiBkcml2ZXJzL2dw dS9kcm0vZHJtX3ByaW1lLmMgICAgICAgICAgICAgICAgICAgIHwgMTQgKysrKystLS0KIGRyaXZl cnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kbWFidWYuYyAgICAgfCAxMyArKysrKy0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9kbWFidWYuYyAgICAgICAgIHwgMTIgKysrKyst LQogZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9nZW1fZG1hYnVmLmMgICAgICB8IDExICsr KysrLQogZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2dlbS5jICAgICAgICAgICAgICAgICAgICB8IDEy ICsrKysrLS0KIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX29iamVjdC5jICAgICAgICAgICAgICAg fCAxMSArKysrLS0KIGRyaXZlcnMvZ3B1L2RybS91ZGwvdWRsX2RtYWJ1Zi5jICAgICAgICAgICAg ICAgfCAxMCArKysrKy0KIGRyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3ZpZGVvYnVmMi1kbWEtY29u dGlnLmMgfCAxMCArKysrKy0KIGRyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3ZpZGVvYnVmMi1kbWEt c2cuYyAgICAgfCAxMCArKysrKy0KIGRyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3ZpZGVvYnVmMi12 bWFsbG9jLmMgICAgfCAxMCArKysrKy0KIGRyaXZlcnMvc3RhZ2luZy9hbmRyb2lkL2lvbi9pb24u YyAgICAgICAgICAgICAgfCAxMSArKysrLS0KIGluY2x1ZGUvbGludXgvZG1hLWJ1Zi5oICAgICAg ICAgICAgICAgICAgICAgICAgfCAyOCArKysrKysrKysrKy0tLS0KIDE0IGZpbGVzIGNoYW5nZWQs IDE2MCBpbnNlcnRpb25zKCspLCA1MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2RtYS1idWYvZG1hLWJ1Zi5jIGIvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYwppbmRleCA1YmUy MjVjMmJhOTguLjZkM2RmM2RkOTMxMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVmL2RtYS1i dWYuYworKysgYi9kcml2ZXJzL2RtYS1idWYvZG1hLWJ1Zi5jCkBAIC0yNjUsNyArMjY1LDcgQEAg c3RhdGljIGlubGluZSBpbnQgaXNfZG1hX2J1Zl9maWxlKHN0cnVjdCBmaWxlICpmaWxlKQogfQog CiAvKioKLSAqIGRtYV9idWZfZXhwb3J0X25hbWVkIC0gQ3JlYXRlcyBhIG5ldyBkbWFfYnVmLCBh bmQgYXNzb2NpYXRlcyBhbiBhbm9uIGZpbGUKKyAqIGRtYV9idWZfZXhwb3J0IC0gQ3JlYXRlcyBh IG5ldyBkbWFfYnVmLCBhbmQgYXNzb2NpYXRlcyBhbiBhbm9uIGZpbGUKICAqIHdpdGggdGhpcyBi dWZmZXIsIHNvIGl0IGNhbiBiZSBleHBvcnRlZC4KICAqIEFsc28gY29ubmVjdCB0aGUgYWxsb2Nh dG9yIHNwZWNpZmljIGRhdGEgYW5kIG9wcyB0byB0aGUgYnVmZmVyLgogICogQWRkaXRpb25hbGx5 LCBwcm92aWRlIGEgbmFtZSBzdHJpbmcgZm9yIGV4cG9ydGVyOyB1c2VmdWwgaW4gZGVidWdnaW5n LgpAQCAtMjc3LDMxICsyNzcsMzIgQEAgc3RhdGljIGlubGluZSBpbnQgaXNfZG1hX2J1Zl9maWxl KHN0cnVjdCBmaWxlICpmaWxlKQogICogQGV4cF9uYW1lOglbaW5dCW5hbWUgb2YgdGhlIGV4cG9y dGluZyBtb2R1bGUgLSB1c2VmdWwgZm9yIGRlYnVnZ2luZy4KICAqIEByZXN2OglbaW5dCXJlc2Vy dmF0aW9uLW9iamVjdCwgTlVMTCB0byBhbGxvY2F0ZSBkZWZhdWx0IG9uZS4KICAqCisgKiBBbGwg dGhlIGFib3ZlIGluZm8gY29tZXMgZnJvbSBzdHJ1Y3QgZG1hX2J1Zl9leHBvcnRfaW5mby4KKyAq CiAgKiBSZXR1cm5zLCBvbiBzdWNjZXNzLCBhIG5ld2x5IGNyZWF0ZWQgZG1hX2J1ZiBvYmplY3Qs IHdoaWNoIHdyYXBzIHRoZQogICogc3VwcGxpZWQgcHJpdmF0ZSBkYXRhIGFuZCBvcGVyYXRpb25z IGZvciBkbWFfYnVmX29wcy4gT24gZWl0aGVyIG1pc3NpbmcKICAqIG9wcywgb3IgZXJyb3IgaW4g YWxsb2NhdGluZyBzdHJ1Y3QgZG1hX2J1Ziwgd2lsbCByZXR1cm4gbmVnYXRpdmUgZXJyb3IuCiAg KgogICovCi1zdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Zl9leHBvcnRfbmFtZWQodm9pZCAqcHJpdiwg Y29uc3Qgc3RydWN0IGRtYV9idWZfb3BzICpvcHMsCi0JCQkJc2l6ZV90IHNpemUsIGludCBmbGFn cywgY29uc3QgY2hhciAqZXhwX25hbWUsCi0JCQkJc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAq cmVzdikKK3N0cnVjdCBkbWFfYnVmICpkbWFfYnVmX2V4cG9ydChzdHJ1Y3QgZG1hX2J1Zl9leHBv cnRfaW5mbyAqZXhwX2luZm8pCiB7CiAJc3RydWN0IGRtYV9idWYgKmRtYWJ1ZjsKIAlzdHJ1Y3Qg ZmlsZSAqZmlsZTsKIAlzaXplX3QgYWxsb2Nfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZG1hX2J1Zik7 Ci0JaWYgKCFyZXN2KQorCWlmICghZXhwX2luZm8tPnJlc3YpCiAJCWFsbG9jX3NpemUgKz0gc2l6 ZW9mKHN0cnVjdCByZXNlcnZhdGlvbl9vYmplY3QpOwogCWVsc2UKIAkJLyogcHJldmVudCAmZG1h X2J1ZlsxXSA9PSBkbWFfYnVmLT5yZXN2ICovCiAJCWFsbG9jX3NpemUgKz0gMTsKIAotCWlmIChX QVJOX09OKCFwcml2IHx8ICFvcHMKLQkJCSAgfHwgIW9wcy0+bWFwX2RtYV9idWYKLQkJCSAgfHwg IW9wcy0+dW5tYXBfZG1hX2J1ZgotCQkJICB8fCAhb3BzLT5yZWxlYXNlCi0JCQkgIHx8ICFvcHMt PmttYXBfYXRvbWljCi0JCQkgIHx8ICFvcHMtPmttYXAKLQkJCSAgfHwgIW9wcy0+bW1hcCkpIHsK KwlpZiAoV0FSTl9PTighZXhwX2luZm8tPnByaXYKKwkJCSAgfHwgIWV4cF9pbmZvLT5vcHMKKwkJ CSAgfHwgIWV4cF9pbmZvLT5vcHMtPm1hcF9kbWFfYnVmCisJCQkgIHx8ICFleHBfaW5mby0+b3Bz LT51bm1hcF9kbWFfYnVmCisJCQkgIHx8ICFleHBfaW5mby0+b3BzLT5yZWxlYXNlCisJCQkgIHx8 ICFleHBfaW5mby0+b3BzLT5rbWFwX2F0b21pYworCQkJICB8fCAhZXhwX2luZm8tPm9wcy0+a21h cAorCQkJICB8fCAhZXhwX2luZm8tPm9wcy0+bW1hcCkpIHsKIAkJcmV0dXJuIEVSUl9QVFIoLUVJ TlZBTCk7CiAJfQogCkBAIC0zMDksMjEgKzMxMCwyMiBAQCBzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1 Zl9leHBvcnRfbmFtZWQodm9pZCAqcHJpdiwgY29uc3Qgc3RydWN0IGRtYV9idWZfb3BzICpvcHMs CiAJaWYgKGRtYWJ1ZiA9PSBOVUxMKQogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAotCWRt YWJ1Zi0+cHJpdiA9IHByaXY7Ci0JZG1hYnVmLT5vcHMgPSBvcHM7Ci0JZG1hYnVmLT5zaXplID0g c2l6ZTsKLQlkbWFidWYtPmV4cF9uYW1lID0gZXhwX25hbWU7CisJZG1hYnVmLT5wcml2ID0gZXhw X2luZm8tPnByaXY7CisJZG1hYnVmLT5vcHMgPSBleHBfaW5mby0+b3BzOworCWRtYWJ1Zi0+c2l6 ZSA9IGV4cF9pbmZvLT5zaXplOworCWRtYWJ1Zi0+ZXhwX25hbWUgPSBleHBfaW5mby0+ZXhwX25h bWU7CiAJaW5pdF93YWl0cXVldWVfaGVhZCgmZG1hYnVmLT5wb2xsKTsKIAlkbWFidWYtPmNiX2V4 Y2wucG9sbCA9IGRtYWJ1Zi0+Y2Jfc2hhcmVkLnBvbGwgPSAmZG1hYnVmLT5wb2xsOwogCWRtYWJ1 Zi0+Y2JfZXhjbC5hY3RpdmUgPSBkbWFidWYtPmNiX3NoYXJlZC5hY3RpdmUgPSAwOwogCi0JaWYg KCFyZXN2KSB7Ci0JCXJlc3YgPSAoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqKSZkbWFidWZb MV07Ci0JCXJlc2VydmF0aW9uX29iamVjdF9pbml0KHJlc3YpOworCWlmICghZXhwX2luZm8tPnJl c3YpIHsKKwkJZXhwX2luZm8tPnJlc3YgPSAoc3RydWN0IHJlc2VydmF0aW9uX29iamVjdCAqKSZk bWFidWZbMV07CisJCXJlc2VydmF0aW9uX29iamVjdF9pbml0KGV4cF9pbmZvLT5yZXN2KTsKIAl9 Ci0JZG1hYnVmLT5yZXN2ID0gcmVzdjsKKwlkbWFidWYtPnJlc3YgPSBleHBfaW5mby0+cmVzdjsK IAotCWZpbGUgPSBhbm9uX2lub2RlX2dldGZpbGUoImRtYWJ1ZiIsICZkbWFfYnVmX2ZvcHMsIGRt YWJ1ZiwgZmxhZ3MpOworCWZpbGUgPSBhbm9uX2lub2RlX2dldGZpbGUoImRtYWJ1ZiIsICZkbWFf YnVmX2ZvcHMsIGRtYWJ1ZiwKKwkJCQkJZXhwX2luZm8tPmZsYWdzKTsKIAlpZiAoSVNfRVJSKGZp bGUpKSB7CiAJCWtmcmVlKGRtYWJ1Zik7CiAJCXJldHVybiBFUlJfQ0FTVChmaWxlKTsKQEAgLTM0 MSw4ICszNDMsNyBAQCBzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1Zl9leHBvcnRfbmFtZWQodm9pZCAq cHJpdiwgY29uc3Qgc3RydWN0IGRtYV9idWZfb3BzICpvcHMsCiAKIAlyZXR1cm4gZG1hYnVmOwog fQotRVhQT1JUX1NZTUJPTF9HUEwoZG1hX2J1Zl9leHBvcnRfbmFtZWQpOwotCitFWFBPUlRfU1lN Qk9MX0dQTChkbWFfYnVmX2V4cG9ydCk7CiAKIC8qKgogICogZG1hX2J1Zl9mZCAtIHJldHVybnMg YSBmaWxlIGRlc2NyaXB0b3IgZm9yIHRoZSBnaXZlbiBkbWFfYnVmCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9hcm1hZGEv YXJtYWRhX2dlbS5jCmluZGV4IGVmNWZlZWVjZWM4NC4uNWQxMDljM2RkMzI2IDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vYXJtYWRhL2FybWFkYV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9k cm0vYXJtYWRhL2FybWFkYV9nZW0uYwpAQCAtNTM4LDggKzUzOCwxNiBAQCBzdHJ1Y3QgZG1hX2J1 ZiAqCiBhcm1hZGFfZ2VtX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1 Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwKIAlpbnQgZmxhZ3MpCiB7Ci0JcmV0dXJuIGRtYV9idWZf ZXhwb3J0KG9iaiwgJmFybWFkYV9nZW1fcHJpbWVfZG1hYnVmX29wcywgb2JqLT5zaXplLAotCQkJ ICAgICAgT19SRFdSLCBOVUxMKTsKKwlzdHJ1Y3QgZG1hX2J1Zl9leHBvcnRfaW5mbyBleHBfaW5m byA9IHsKKwkJLmV4cF9uYW1lID0gS0JVSUxEX01PRE5BTUUsCisJCS5vcHMgPSAmYXJtYWRhX2dl bV9wcmltZV9kbWFidWZfb3BzLAorCQkuc2l6ZSA9IG9iai0+c2l6ZSwKKwkJLmZsYWdzID0gT19S RFdSLAorCQkucmVzdiA9IE5VTEwsCisJCS5wcml2ID0gb2JqLAorCX07CisKKwlyZXR1cm4gZG1h X2J1Zl9leHBvcnQoJmV4cF9pbmZvKTsKIH0KIAogc3RydWN0IGRybV9nZW1fb2JqZWN0ICoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJpbWUuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fcHJpbWUuYwppbmRleCA3NDgyYjA2Y2QwOGYuLjIwYWU3NzQ1NWMwNCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJp bWUuYwpAQCAtMzM5LDEzICszMzksMTkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWFfYnVmX29w cyBkcm1fZ2VtX3ByaW1lX2RtYWJ1Zl9vcHMgPSAgewogc3RydWN0IGRtYV9idWYgKmRybV9nZW1f cHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICAgICBzdHJ1Y3QgZHJt X2dlbV9vYmplY3QgKm9iaiwgaW50IGZsYWdzKQogewotCXN0cnVjdCByZXNlcnZhdGlvbl9vYmpl Y3QgKnJvYmogPSBOVUxMOworCXN0cnVjdCBkbWFfYnVmX2V4cG9ydF9pbmZvIGV4cF9pbmZvID0g eworCQkuZXhwX25hbWUgPSBLQlVJTERfTU9ETkFNRSwKKwkJLm9wcyA9ICZkcm1fZ2VtX3ByaW1l X2RtYWJ1Zl9vcHMsCisJCS5zaXplID0gb2JqLT5zaXplLAorCQkuZmxhZ3MgPSBmbGFncywKKwkJ LnJlc3YgPSBOVUxMLAorCQkucHJpdiA9IG9iaiwKKwl9OwogCiAJaWYgKGRldi0+ZHJpdmVyLT5n ZW1fcHJpbWVfcmVzX29iaikKLQkJcm9iaiA9IGRldi0+ZHJpdmVyLT5nZW1fcHJpbWVfcmVzX29i aihvYmopOworCQlleHBfaW5mby5yZXN2ID0gZGV2LT5kcml2ZXItPmdlbV9wcmltZV9yZXNfb2Jq KG9iaik7CiAKLQlyZXR1cm4gZG1hX2J1Zl9leHBvcnQob2JqLCAmZHJtX2dlbV9wcmltZV9kbWFi dWZfb3BzLCBvYmotPnNpemUsCi0JCQkgICAgICBmbGFncywgcm9iaik7CisJcmV0dXJuIGRtYV9i dWZfZXhwb3J0KCZleHBfaW5mbyk7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9nZW1fcHJpbWVfZXhw b3J0KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2Rt YWJ1Zi5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2RtYWJ1Zi5jCmluZGV4 IDYwMTkyZWQ1NDRmMC4uYWJjNjVhMDJkZmZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v ZXh5bm9zL2V4eW5vc19kcm1fZG1hYnVmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9l eHlub3NfZHJtX2RtYWJ1Zi5jCkBAIC0xODUsOSArMTg1LDE2IEBAIHN0cnVjdCBkbWFfYnVmICpl eHlub3NfZG1hYnVmX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2RldiwKIAkJ CQlzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgaW50IGZsYWdzKQogewogCXN0cnVjdCBleHlu b3NfZHJtX2dlbV9vYmogKmV4eW5vc19nZW1fb2JqID0gdG9fZXh5bm9zX2dlbV9vYmoob2JqKTsK LQotCXJldHVybiBkbWFfYnVmX2V4cG9ydChvYmosICZleHlub3NfZG1hYnVmX29wcywKLQkJCQll eHlub3NfZ2VtX29iai0+YmFzZS5zaXplLCBmbGFncywgTlVMTCk7CisJc3RydWN0IGRtYV9idWZf ZXhwb3J0X2luZm8gZXhwX2luZm8gPSB7CisJCS5leHBfbmFtZSA9IEtCVUlMRF9NT0ROQU1FLAor CQkub3BzID0gJmV4eW5vc19kbWFidWZfb3BzLAorCQkuc2l6ZSA9IGV4eW5vc19nZW1fb2JqLT5i YXNlLnNpemUsCisJCS5mbGFncyA9IGZsYWdzLAorCQkucmVzdiA9IE5VTEwsCisJCS5wcml2ID0g b2JqLAorCX07CisKKwlyZXR1cm4gZG1hX2J1Zl9leHBvcnQoJmV4cF9pbmZvKTsKIH0KIAogc3Ry dWN0IGRybV9nZW1fb2JqZWN0ICpleHlub3NfZG1hYnVmX3ByaW1lX2ltcG9ydChzdHJ1Y3QgZHJt X2RldmljZSAqZHJtX2RldiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2RtYWJ1Zi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZG1hYnVmLmMKaW5k ZXggODJhMWY0YjU3Nzc4Li4xNWZhMTUyM2FlZmMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2RtYWJ1Zi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2RtYWJ1Zi5jCkBAIC0yMjksNiArMjI5LDE1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZG1h X2J1Zl9vcHMgaTkxNV9kbWFidWZfb3BzID0gIHsKIHN0cnVjdCBkbWFfYnVmICppOTE1X2dlbV9w cmltZV9leHBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCQkgICAgICBzdHJ1Y3QgZHJt X2dlbV9vYmplY3QgKmdlbV9vYmosIGludCBmbGFncykKIHsKKwlzdHJ1Y3QgZG1hX2J1Zl9leHBv cnRfaW5mbyBleHBfaW5mbyA9IHsKKwkJLmV4cF9uYW1lID0gS0JVSUxEX01PRE5BTUUsCisJCS5v cHMgPSAmaTkxNV9kbWFidWZfb3BzLAorCQkuc2l6ZSA9IGdlbV9vYmotPnNpemUsCisJCS5mbGFn cyA9IGZsYWdzLAorCQkucmVzdiA9IE5VTEwsCisJCS5wcml2ID0gZ2VtX29iaiwKKwl9OworCiAJ c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHRvX2ludGVsX2JvKGdlbV9vYmopOwog CiAJaWYgKG9iai0+b3BzLT5kbWFidWZfZXhwb3J0KSB7CkBAIC0yMzcsOCArMjQ2LDcgQEAgc3Ry dWN0IGRtYV9idWYgKmk5MTVfZ2VtX3ByaW1lX2V4cG9ydChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LAogCQkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIAl9CiAKLQlyZXR1cm4gZG1hX2J1Zl9leHBvcnQo Z2VtX29iaiwgJmk5MTVfZG1hYnVmX29wcywgZ2VtX29iai0+c2l6ZSwgZmxhZ3MsCi0JCQkgICAg ICBOVUxMKTsKKwlyZXR1cm4gZG1hX2J1Zl9leHBvcnQoJmV4cF9pbmZvKTsKIH0KIAogc3RhdGlj IGludCBpOTE1X2dlbV9vYmplY3RfZ2V0X3BhZ2VzX2RtYWJ1ZihzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL29tYXBkcm0vb21hcF9n ZW1fZG1hYnVmLmMgYi9kcml2ZXJzL2dwdS9kcm0vb21hcGRybS9vbWFwX2dlbV9kbWFidWYuYwpp bmRleCBhMmRiZmIxNzM3YjQuLjUzNDcxODQxNmY1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL29tYXBkcm0vb21hcF9nZW1fZG1hYnVmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL29tYXBk cm0vb21hcF9nZW1fZG1hYnVmLmMKQEAgLTE3MSw3ICsxNzEsMTYgQEAgc3RhdGljIHN0cnVjdCBk bWFfYnVmX29wcyBvbWFwX2RtYWJ1Zl9vcHMgPSB7CiBzdHJ1Y3QgZG1hX2J1ZiAqb21hcF9nZW1f cHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCXN0cnVjdCBkcm1fZ2VtX29i amVjdCAqb2JqLCBpbnQgZmxhZ3MpCiB7Ci0JcmV0dXJuIGRtYV9idWZfZXhwb3J0KG9iaiwgJm9t YXBfZG1hYnVmX29wcywgb2JqLT5zaXplLCBmbGFncywgTlVMTCk7CisJc3RydWN0IGRtYV9idWZf ZXhwb3J0X2luZm8gZXhwX2luZm8gPSB7CisJCS5leHBfbmFtZSA9IEtCVUlMRF9NT0ROQU1FLAor CQkub3BzID0gJm9tYXBfZG1hYnVmX29wcywKKwkJLnNpemUgPSBvYmotPnNpemUsCisJCS5mbGFn cyA9IGZsYWdzLAorCQkucmVzdiA9IE5VTEwsCisJCS5wcml2ID0gb2JqLAorCX07CisKKwlyZXR1 cm4gZG1hX2J1Zl9leHBvcnQoJmV4cF9pbmZvKTsKIH0KIAogc3RydWN0IGRybV9nZW1fb2JqZWN0 ICpvbWFwX2dlbV9wcmltZV9pbXBvcnQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9n ZW0uYwppbmRleCA4Nzc3YjdmNzU3OTEuLjc5YTBmYmMzMmFkNCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3RlZ3JhL2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9nZW0uYwpA QCAtNjU4LDggKzY1OCwxNiBAQCBzdHJ1Y3QgZG1hX2J1ZiAqdGVncmFfZ2VtX3ByaW1lX2V4cG9y dChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLAogCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2dlbV9vYmpl Y3QgKmdlbSwKIAkJCQkgICAgICAgaW50IGZsYWdzKQogewotCXJldHVybiBkbWFfYnVmX2V4cG9y dChnZW0sICZ0ZWdyYV9nZW1fcHJpbWVfZG1hYnVmX29wcywgZ2VtLT5zaXplLAotCQkJICAgICAg ZmxhZ3MsIE5VTEwpOworCXN0cnVjdCBkbWFfYnVmX2V4cG9ydF9pbmZvIGV4cF9pbmZvID0gewor CQkuZXhwX25hbWUgPSBLQlVJTERfTU9ETkFNRSwKKwkJLm9wcyA9ICZ0ZWdyYV9nZW1fcHJpbWVf ZG1hYnVmX29wcywKKwkJLnNpemUgPSBnZW0tPnNpemUsCisJCS5mbGFncyA9IGZsYWdzLAorCQku cmVzdiA9IE5VTEwsCisJCS5wcml2ID0gZ2VtLAorCX07CisKKwlyZXR1cm4gZG1hX2J1Zl9leHBv cnQoJmV4cF9pbmZvKTsKIH0KIAogc3RydWN0IGRybV9nZW1fb2JqZWN0ICp0ZWdyYV9nZW1fcHJp bWVfaW1wb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkcm0sCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9vYmplY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX29iamVjdC5j CmluZGV4IDEyYzg3MTEwZGIzYS4uMjI3NGYxNjM3Yjg5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vdHRtL3R0bV9vYmplY3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9vYmpl Y3QuYwpAQCAtNjgzLDYgKzY4MywxNCBAQCBpbnQgdHRtX3ByaW1lX2hhbmRsZV90b19mZChzdHJ1 Y3QgdHRtX29iamVjdF9maWxlICp0ZmlsZSwKIAogCWRtYV9idWYgPSBwcmltZS0+ZG1hX2J1ZjsK IAlpZiAoIWRtYV9idWYgfHwgIWdldF9kbWFfYnVmX3VubGVzc19kb29tZWQoZG1hX2J1ZikpIHsK KwkJc3RydWN0IGRtYV9idWZfZXhwb3J0X2luZm8gZXhwX2luZm8gPSB7CisJCQkuZXhwX25hbWUg PSBLQlVJTERfTU9ETkFNRSwKKwkJCS5vcHMgPSAmdGRldi0+b3BzLAorCQkJLnNpemUgPSBwcmlt ZS0+c2l6ZSwKKwkJCS5mbGFncyA9IGZsYWdzLAorCQkJLnJlc3YgPSBOVUxMLAorCQkJLnByaXYg PSBwcmltZSwKKwkJfTsKIAogCQkvKgogCQkgKiBOZWVkIHRvIGNyZWF0ZSBhIG5ldyBkbWFfYnVm LCB3aXRoIG1lbW9yeSBhY2NvdW50aW5nLgpAQCAtNjk0LDggKzcwMiw3IEBAIGludCB0dG1fcHJp bWVfaGFuZGxlX3RvX2ZkKHN0cnVjdCB0dG1fb2JqZWN0X2ZpbGUgKnRmaWxlLAogCQkJZ290byBv dXRfdW5yZWY7CiAJCX0KIAotCQlkbWFfYnVmID0gZG1hX2J1Zl9leHBvcnQocHJpbWUsICZ0ZGV2 LT5vcHMsCi0JCQkJCSBwcmltZS0+c2l6ZSwgZmxhZ3MsIE5VTEwpOworCQlkbWFfYnVmID0gZG1h X2J1Zl9leHBvcnQoJmV4cF9pbmZvKTsKIAkJaWYgKElTX0VSUihkbWFfYnVmKSkgewogCQkJcmV0 ID0gUFRSX0VSUihkbWFfYnVmKTsKIAkJCXR0bV9tZW1fZ2xvYmFsX2ZyZWUodGRldi0+bWVtX2ds b2IsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9kbWFidWYuYyBiL2RyaXZl cnMvZ3B1L2RybS91ZGwvdWRsX2RtYWJ1Zi5jCmluZGV4IGFjOGE2NmI0ZGZjMi4uMGUyMDAwMDli YWU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9kbWFidWYuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vdWRsL3VkbF9kbWFidWYuYwpAQCAtMjAyLDcgKzIwMiwxNSBAQCBzdGF0 aWMgc3RydWN0IGRtYV9idWZfb3BzIHVkbF9kbWFidWZfb3BzID0gewogc3RydWN0IGRtYV9idWYg KnVkbF9nZW1fcHJpbWVfZXhwb3J0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJICAgICBz dHJ1Y3QgZHJtX2dlbV9vYmplY3QgKm9iaiwgaW50IGZsYWdzKQogewotCXJldHVybiBkbWFfYnVm X2V4cG9ydChvYmosICZ1ZGxfZG1hYnVmX29wcywgb2JqLT5zaXplLCBmbGFncywgTlVMTCk7CisJ c3RydWN0IGRtYV9idWZfZXhwb3J0X2luZm8gZXhwX2luZm8gPSB7CisJCS5leHBfbmFtZSA9IEtC VUlMRF9NT0ROQU1FLAorCQkub3BzID0gJnVkbF9kbWFidWZfb3BzLAorCQkuc2l6ZSA9IG9iai0+ c2l6ZSwKKwkJLmZsYWdzID0gZmxhZ3MsCisJCS5yZXN2ID0gTlVMTCwKKwkJLnByaXYgPSBvYmos CisJfTsKKwlyZXR1cm4gZG1hX2J1Zl9leHBvcnQoJmV4cF9pbmZvKTsKIH0KIAogc3RhdGljIGlu dCB1ZGxfcHJpbWVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCmRpZmYgLS1naXQgYS9k cml2ZXJzL21lZGlhL3Y0bDItY29yZS92aWRlb2J1ZjItZG1hLWNvbnRpZy5jIGIvZHJpdmVycy9t ZWRpYS92NGwyLWNvcmUvdmlkZW9idWYyLWRtYS1jb250aWcuYwppbmRleCBiNDgxZDIwYzgzNzIu LjJiM2M0OTRlMThjOSAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdmlkZW9i dWYyLWRtYS1jb250aWcuYworKysgYi9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92aWRlb2J1ZjIt ZG1hLWNvbnRpZy5jCkBAIC00MDIsNiArNDAyLDE0IEBAIHN0YXRpYyBzdHJ1Y3QgZG1hX2J1ZiAq dmIyX2RjX2dldF9kbWFidWYodm9pZCAqYnVmX3ByaXYsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCiB7 CiAJc3RydWN0IHZiMl9kY19idWYgKmJ1ZiA9IGJ1Zl9wcml2OwogCXN0cnVjdCBkbWFfYnVmICpk YnVmOworCXN0cnVjdCBkbWFfYnVmX2V4cG9ydF9pbmZvIGV4cF9pbmZvID0geworCQkuZXhwX25h bWUgPSBLQlVJTERfTU9ETkFNRSwKKwkJLm9wcyA9ICZ2YjJfZGNfZG1hYnVmX29wcywKKwkJLnNp emUgPSBidWYtPnNpemUsCisJCS5mbGFncyA9IGZsYWdzLAorCQkucmVzdiA9IE5VTEwsCisJCS5w cml2ID0gYnVmLAorCX07CiAKIAlpZiAoIWJ1Zi0+c2d0X2Jhc2UpCiAJCWJ1Zi0+c2d0X2Jhc2Ug PSB2YjJfZGNfZ2V0X2Jhc2Vfc2d0KGJ1Zik7CkBAIC00MDksNyArNDE3LDcgQEAgc3RhdGljIHN0 cnVjdCBkbWFfYnVmICp2YjJfZGNfZ2V0X2RtYWJ1Zih2b2lkICpidWZfcHJpdiwgdW5zaWduZWQg bG9uZyBmbGFncykKIAlpZiAoV0FSTl9PTighYnVmLT5zZ3RfYmFzZSkpCiAJCXJldHVybiBOVUxM OwogCi0JZGJ1ZiA9IGRtYV9idWZfZXhwb3J0KGJ1ZiwgJnZiMl9kY19kbWFidWZfb3BzLCBidWYt PnNpemUsIGZsYWdzLCBOVUxMKTsKKwlkYnVmID0gZG1hX2J1Zl9leHBvcnQoJmV4cF9pbmZvKTsK IAlpZiAoSVNfRVJSKGRidWYpKQogCQlyZXR1cm4gTlVMTDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tZWRpYS92NGwyLWNvcmUvdmlkZW9idWYyLWRtYS1zZy5jIGIvZHJpdmVycy9tZWRpYS92NGwy LWNvcmUvdmlkZW9idWYyLWRtYS1zZy5jCmluZGV4IGIxODM4YWJiNmQwMC4uNWE5ODM1NjU1MTQ2 IDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3Y0bDItY29yZS92aWRlb2J1ZjItZG1hLXNnLmMK KysrIGIvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdmlkZW9idWYyLWRtYS1zZy5jCkBAIC01ODMs MTEgKzU4MywxOSBAQCBzdGF0aWMgc3RydWN0IGRtYV9idWYgKnZiMl9kbWFfc2dfZ2V0X2RtYWJ1 Zih2b2lkICpidWZfcHJpdiwgdW5zaWduZWQgbG9uZyBmbGFncwogewogCXN0cnVjdCB2YjJfZG1h X3NnX2J1ZiAqYnVmID0gYnVmX3ByaXY7CiAJc3RydWN0IGRtYV9idWYgKmRidWY7CisJc3RydWN0 IGRtYV9idWZfZXhwb3J0X2luZm8gZXhwX2luZm8gPSB7CisJCS5leHBfbmFtZSA9IEtCVUlMRF9N T0ROQU1FLAorCQkub3BzID0gJnZiMl9kbWFfc2dfZG1hYnVmX29wcywKKwkJLnNpemUgPSBidWYt PnNpemUsCisJCS5mbGFncyA9IGZsYWdzLAorCQkucmVzdiA9IE5VTEwsCisJCS5wcml2ID0gYnVm LAorCX07CiAKIAlpZiAoV0FSTl9PTighYnVmLT5kbWFfc2d0KSkKIAkJcmV0dXJuIE5VTEw7CiAK LQlkYnVmID0gZG1hX2J1Zl9leHBvcnQoYnVmLCAmdmIyX2RtYV9zZ19kbWFidWZfb3BzLCBidWYt PnNpemUsIGZsYWdzLCBOVUxMKTsKKwlkYnVmID0gZG1hX2J1Zl9leHBvcnQoJmV4cF9pbmZvKTsK IAlpZiAoSVNfRVJSKGRidWYpKQogCQlyZXR1cm4gTlVMTDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9tZWRpYS92NGwyLWNvcmUvdmlkZW9idWYyLXZtYWxsb2MuYyBiL2RyaXZlcnMvbWVkaWEvdjRs Mi1jb3JlL3ZpZGVvYnVmMi12bWFsbG9jLmMKaW5kZXggZmJhOTQ0ZTUwMjI3Li5mYjYxMDkwZjQz YzYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbWVkaWEvdjRsMi1jb3JlL3ZpZGVvYnVmMi12bWFsbG9j LmMKKysrIGIvZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdmlkZW9idWYyLXZtYWxsb2MuYwpAQCAt MzY3LDExICszNjcsMTkgQEAgc3RhdGljIHN0cnVjdCBkbWFfYnVmICp2YjJfdm1hbGxvY19nZXRf ZG1hYnVmKHZvaWQgKmJ1Zl9wcml2LCB1bnNpZ25lZCBsb25nIGZsYWcKIHsKIAlzdHJ1Y3QgdmIy X3ZtYWxsb2NfYnVmICpidWYgPSBidWZfcHJpdjsKIAlzdHJ1Y3QgZG1hX2J1ZiAqZGJ1ZjsKKwlz dHJ1Y3QgZG1hX2J1Zl9leHBvcnRfaW5mbyBleHBfaW5mbyA9IHsKKwkJLmV4cF9uYW1lID0gS0JV SUxEX01PRE5BTUUsCisJCS5vcHMgPSAmdmIyX3ZtYWxsb2NfZG1hYnVmX29wcywKKwkJLnNpemUg PSBidWYtPnNpemUsCisJCS5mbGFncyA9IGZsYWdzLAorCQkucmVzdiA9IE5VTEwsCisJCS5wcml2 ID0gYnVmLAorCX07CiAKIAlpZiAoV0FSTl9PTighYnVmLT52YWRkcikpCiAJCXJldHVybiBOVUxM OwogCi0JZGJ1ZiA9IGRtYV9idWZfZXhwb3J0KGJ1ZiwgJnZiMl92bWFsbG9jX2RtYWJ1Zl9vcHMs IGJ1Zi0+c2l6ZSwgZmxhZ3MsIE5VTEwpOworCWRidWYgPSBkbWFfYnVmX2V4cG9ydCgmZXhwX2lu Zm8pOwogCWlmIChJU19FUlIoZGJ1ZikpCiAJCXJldHVybiBOVUxMOwogCmRpZmYgLS1naXQgYS9k cml2ZXJzL3N0YWdpbmcvYW5kcm9pZC9pb24vaW9uLmMgYi9kcml2ZXJzL3N0YWdpbmcvYW5kcm9p ZC9pb24vaW9uLmMKaW5kZXggMjk2ZDM0NzY2MGZjLi44ZWZmMjYwN2YzNzAgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvc3RhZ2luZy9hbmRyb2lkL2lvbi9pb24uYworKysgYi9kcml2ZXJzL3N0YWdpbmcv YW5kcm9pZC9pb24vaW9uLmMKQEAgLTExMDYsNiArMTEwNiwxNCBAQCBzdHJ1Y3QgZG1hX2J1ZiAq aW9uX3NoYXJlX2RtYV9idWYoc3RydWN0IGlvbl9jbGllbnQgKmNsaWVudCwKIAlzdHJ1Y3QgaW9u X2J1ZmZlciAqYnVmZmVyOwogCXN0cnVjdCBkbWFfYnVmICpkbWFidWY7CiAJYm9vbCB2YWxpZF9o YW5kbGU7CisJc3RydWN0IGRtYV9idWZfZXhwb3J0X2luZm8gZXhwX2luZm8gPSB7CisJCS5leHBf bmFtZSA9IEtCVUlMRF9NT0ROQU1FLAorCQkub3BzID0gJmRtYV9idWZfb3BzLAorCQkuc2l6ZSA9 IGJ1ZmZlci0+c2l6ZSwKKwkJLmZsYWdzID0gT19SRFdSLAorCQkucmVzdiA9IE5VTEwsCisJCS5w cml2ID0gYnVmZmVyLAorCX07CiAKIAltdXRleF9sb2NrKCZjbGllbnQtPmxvY2spOwogCXZhbGlk X2hhbmRsZSA9IGlvbl9oYW5kbGVfdmFsaWRhdGUoY2xpZW50LCBoYW5kbGUpOwpAQCAtMTExOCw4 ICsxMTI2LDcgQEAgc3RydWN0IGRtYV9idWYgKmlvbl9zaGFyZV9kbWFfYnVmKHN0cnVjdCBpb25f Y2xpZW50ICpjbGllbnQsCiAJaW9uX2J1ZmZlcl9nZXQoYnVmZmVyKTsKIAltdXRleF91bmxvY2so JmNsaWVudC0+bG9jayk7CiAKLQlkbWFidWYgPSBkbWFfYnVmX2V4cG9ydChidWZmZXIsICZkbWFf YnVmX29wcywgYnVmZmVyLT5zaXplLCBPX1JEV1IsCi0JCQkJTlVMTCk7CisJZG1hYnVmID0gZG1h X2J1Zl9leHBvcnQoJmV4cF9pbmZvKTsKIAlpZiAoSVNfRVJSKGRtYWJ1ZikpIHsKIAkJaW9uX2J1 ZmZlcl9wdXQoYnVmZmVyKTsKIAkJcmV0dXJuIGRtYWJ1ZjsKZGlmZiAtLWdpdCBhL2luY2x1ZGUv bGludXgvZG1hLWJ1Zi5oIGIvaW5jbHVkZS9saW51eC9kbWEtYnVmLmgKaW5kZXggNjk0ZTFmZTFj NGI0Li5jNWYzYzk1MTAzNjggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5oCisr KyBiL2luY2x1ZGUvbGludXgvZG1hLWJ1Zi5oCkBAIC0xNjMsNiArMTYzLDI3IEBAIHN0cnVjdCBk bWFfYnVmX2F0dGFjaG1lbnQgewogfTsKIAogLyoqCisgKiBzdHJ1Y3QgZG1hX2J1Zl9leHBvcnRf aW5mbyAtIGhvbGRzIGluZm9ybWF0aW9uIG5lZWRlZCB0byBleHBvcnQgYSBkbWFfYnVmCisgKiBA ZXhwX25hbWU6CW5hbWUgb2YgdGhlIGV4cG9ydGluZyBtb2R1bGUgLSB1c2VmdWwgZm9yIGRlYnVn Z2luZy4KKyAqIEBvcHM6CUF0dGFjaCBhbGxvY2F0b3ItZGVmaW5lZCBkbWEgYnVmIG9wcyB0byB0 aGUgbmV3IGJ1ZmZlcgorICogQHNpemU6CVNpemUgb2YgdGhlIGJ1ZmZlcgorICogQGZsYWdzOglt b2RlIGZsYWdzIGZvciB0aGUgZmlsZQorICogQHJlc3Y6CXJlc2VydmF0aW9uLW9iamVjdCwgTlVM TCB0byBhbGxvY2F0ZSBkZWZhdWx0IG9uZQorICogQHByaXY6CUF0dGFjaCBwcml2YXRlIGRhdGEg b2YgYWxsb2NhdG9yIHRvIHRoaXMgYnVmZmVyCisgKgorICogVGhpcyBzdHJ1Y3R1cmUgaG9sZHMg dGhlIGluZm9ybWF0aW9uIHJlcXVpcmVkIHRvIGV4cG9ydCB0aGUgYnVmZmVyLiBVc2VkCisgKiB3 aXRoIGRtYV9idWZfZXhwb3J0KCkgb25seS4KKyAqLworc3RydWN0IGRtYV9idWZfZXhwb3J0X2lu Zm8geworCWNvbnN0IGNoYXIgKmV4cF9uYW1lOworCWNvbnN0IHN0cnVjdCBkbWFfYnVmX29wcyAq b3BzOworCXNpemVfdCBzaXplOworCWludCBmbGFnczsKKwlzdHJ1Y3QgcmVzZXJ2YXRpb25fb2Jq ZWN0ICpyZXN2OworCXZvaWQgKnByaXY7Cit9OworCisvKioKICAqIGdldF9kbWFfYnVmIC0gY29u dmVuaWVuY2Ugd3JhcHBlciBmb3IgZ2V0X2ZpbGUuCiAgKiBAZG1hYnVmOglbaW5dCXBvaW50ZXIg dG8gZG1hX2J1ZgogICoKQEAgLTE4MSwxMiArMjAyLDcgQEAgc3RydWN0IGRtYV9idWZfYXR0YWNo bWVudCAqZG1hX2J1Zl9hdHRhY2goc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwKIHZvaWQgZG1hX2J1 Zl9kZXRhY2goc3RydWN0IGRtYV9idWYgKmRtYWJ1ZiwKIAkJCQlzdHJ1Y3QgZG1hX2J1Zl9hdHRh Y2htZW50ICpkbWFidWZfYXR0YWNoKTsKIAotc3RydWN0IGRtYV9idWYgKmRtYV9idWZfZXhwb3J0 X25hbWVkKHZvaWQgKnByaXYsIGNvbnN0IHN0cnVjdCBkbWFfYnVmX29wcyAqb3BzLAotCQkJICAg ICAgIHNpemVfdCBzaXplLCBpbnQgZmxhZ3MsIGNvbnN0IGNoYXIgKiwKLQkJCSAgICAgICBzdHJ1 Y3QgcmVzZXJ2YXRpb25fb2JqZWN0ICopOwotCi0jZGVmaW5lIGRtYV9idWZfZXhwb3J0KHByaXYs IG9wcywgc2l6ZSwgZmxhZ3MsIHJlc3YpCVwKLQlkbWFfYnVmX2V4cG9ydF9uYW1lZChwcml2LCBv cHMsIHNpemUsIGZsYWdzLCBLQlVJTERfTU9ETkFNRSwgcmVzdikKK3N0cnVjdCBkbWFfYnVmICpk bWFfYnVmX2V4cG9ydChzdHJ1Y3QgZG1hX2J1Zl9leHBvcnRfaW5mbyAqZXhwX2luZm8pOwogCiBp bnQgZG1hX2J1Zl9mZChzdHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmLCBpbnQgZmxhZ3MpOwogc3RydWN0 IGRtYV9idWYgKmRtYV9idWZfZ2V0KGludCBmZCk7Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK