From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Tyshchenko Subject: [RFC PATCH v1 6/7] iommu/arm: ipmmu-vmsa: Deallocate page table asynchronously Date: Wed, 26 Jul 2017 18:10:03 +0300 Message-ID: <1501081804-4882-7-git-send-email-olekstysh@gmail.com> References: <1501081804-4882-1-git-send-email-olekstysh@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1daNxH-0008VY-Aj for xen-devel@lists.xenproject.org; Wed, 26 Jul 2017 15:10:31 +0000 Received: by mail-lf0-f68.google.com with SMTP id t128so6583369lff.3 for ; Wed, 26 Jul 2017 08:10:25 -0700 (PDT) In-Reply-To: <1501081804-4882-1-git-send-email-olekstysh@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Oleksandr Tyshchenko , Julien Grall , Stefano Stabellini List-Id: xen-devel@lists.xenproject.org RnJvbTogT2xla3NhbmRyIFR5c2hjaGVua28gPG9sZWtzYW5kcl90eXNoY2hlbmtvQGVwYW0uY29t PgoKVGhpcyBpcyB0aGUgUG9DIGhvdyB0byBvcHRpbWl6ZSBwYWdlIHRhYmxlIGRlYWxsb2NhdGlv biBzZXF1ZW5jZQpieSBzcGxpdHRpbmcgaXQgaW50byBzZXBhcmF0ZSBjaHVua3MuClVzZSBpb21t dV9wdF9jbGVhbnVwX2xpc3QgdG8gcXVldWUgcGFnZXMgdGhhdCBuZWVkIHRvIGJlIGhhbmRsZWQg YW5kCmZyZWVkIG5leHQgdGltZS4gVXNlIGZyZWVfcGFnZV90YWJsZSBwbGF0Zm9ybSBjYWxsYmFj ayB0byBkZXF1ZXVlCnBhZ2VzLgoKU2lnbmVkLW9mZi1ieTogT2xla3NhbmRyIFR5c2hjaGVua28g PG9sZWtzYW5kcl90eXNoY2hlbmtvQGVwYW0uY29tPgpDQzogSnVsaWVuIEdyYWxsIDxqdWxpZW4u Z3JhbGxAYXJtLmNvbT4KQ0M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3N0YWJlbGxpbmlAa2VybmVs Lm9yZz4KLS0tCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vaW8tcGd0YWJsZS1hcm0uYyB8 IDk0ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2FybS9pby1wZ3RhYmxlLmMgICAgIHwgIDUgKy0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Fy bS9pby1wZ3RhYmxlLmggICAgIHwgIDQgKy0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9p cG1tdS12bXNhLmMgICAgIHwgMzMgKysrKysrKystLQogNCBmaWxlcyBjaGFuZ2VkLCAxMTkgaW5z ZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvYXJtL2lvLXBndGFibGUtYXJtLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9h cm0vaW8tcGd0YWJsZS1hcm0uYwppbmRleCBjOThjYWEzLi43NjczZmRhIDEwMDY0NAotLS0gYS94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vaW8tcGd0YWJsZS1hcm0uYworKysgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hcm0vaW8tcGd0YWJsZS1hcm0uYwpAQCAtMjU0LDYgKzI1NCwxMCBA QCBzdHJ1Y3QgYXJtX2xwYWVfaW9fcGd0YWJsZSB7CiAKIAkvKiBYZW46IFdlIGRlYWwgd2l0aCBk b21haW4gcGFnZXMuICovCiAJc3RydWN0IHBhZ2VfaW5mbwkqcGdkOworCS8qIFhlbjogVG8gaW5k aWNhdGUgdGhhdCBkZWFsbG9jYXRpb24gc2VxdWVuY2UgaXMgaW4gcHJvZ3Jlc3MuICovCisJYm9v bF90CQkJCWNsZWFudXA7CisJLyogWGVuOiBUbyBjb3VudCBhbGxvY2F0ZWQgZG9tYWluIHBhZ2Vz LiAqLworCXVuc2lnbmVkIGludAkJcGFnZV9jb3VudDsKIH07CiAKIHR5cGVkZWYgdTY0IGFybV9s cGFlX2lvcHRlOwpAQCAtMzI5LDcgKzMzMyw3IEBAIHN0YXRpYyB2b2lkIF9fYXJtX2xwYWVfc2V0 X3B0ZShhcm1fbHBhZV9pb3B0ZSAqcHRlcCwgYXJtX2xwYWVfaW9wdGUgcHRlLAogI2VuZGlmCiAK IHN0YXRpYyBzdHJ1Y3QgcGFnZV9pbmZvICpfX2FybV9scGFlX2FsbG9jX3BhZ2VzKHNpemVfdCBz aXplLCBnZnBfdCBnZnAsCi0JCQkJICAgIHN0cnVjdCBpb19wZ3RhYmxlX2NmZyAqY2ZnKQorCQkJ CSAgICBzdHJ1Y3QgYXJtX2xwYWVfaW9fcGd0YWJsZSAqZGF0YSkKIHsKIAlzdHJ1Y3QgcGFnZV9p bmZvICpwYWdlczsKIAl1bnNpZ25lZCBpbnQgb3JkZXIgPSBnZXRfb3JkZXJfZnJvbV9ieXRlcyhz aXplKTsKQEAgLTM0MiwxNSArMzQ2LDIxIEBAIHN0YXRpYyBzdHJ1Y3QgcGFnZV9pbmZvICpfX2Fy bV9scGFlX2FsbG9jX3BhZ2VzKHNpemVfdCBzaXplLCBnZnBfdCBnZnAsCiAJZm9yIChpID0gMDsg aSA8ICgxIDw8IG9yZGVyKTsgaSArKykKIAkJY2xlYXJfYW5kX2NsZWFuX3BhZ2UocGFnZXMgKyBp KTsKIAorCWRhdGEtPnBhZ2VfY291bnQgKz0gKDE8PG9yZGVyKTsKKwogCXJldHVybiBwYWdlczsK IH0KIAogc3RhdGljIHZvaWQgX19hcm1fbHBhZV9mcmVlX3BhZ2VzKHN0cnVjdCBwYWdlX2luZm8g KnBhZ2VzLCBzaXplX3Qgc2l6ZSwKLQkJCQkgIHN0cnVjdCBpb19wZ3RhYmxlX2NmZyAqY2ZnKQor CQkJCSAgc3RydWN0IGFybV9scGFlX2lvX3BndGFibGUgKmRhdGEpCiB7CiAJdW5zaWduZWQgaW50 IG9yZGVyID0gZ2V0X29yZGVyX2Zyb21fYnl0ZXMoc2l6ZSk7CiAKKwlCVUdfT04oKGludClkYXRh LT5wYWdlX2NvdW50IDw9IDApOworCiAJZnJlZV9kb21oZWFwX3BhZ2VzKHBhZ2VzLCBvcmRlcik7 CisKKwlkYXRhLT5wYWdlX2NvdW50IC09ICgxPDxvcmRlcik7CiB9CiAKIHN0YXRpYyB2b2lkIF9f YXJtX2xwYWVfc2V0X3B0ZShhcm1fbHBhZV9pb3B0ZSAqcHRlcCwgYXJtX2xwYWVfaW9wdGUgcHRl LApAQCAtNDM0LDcgKzQ0NCw3IEBAIHN0YXRpYyBpbnQgX19hcm1fbHBhZV9tYXAoc3RydWN0IGFy bV9scGFlX2lvX3BndGFibGUgKmRhdGEsIHVuc2lnbmVkIGxvbmcgaW92YSwKIAlwdGUgPSAqcHRl cDsKIAlpZiAoIXB0ZSkgewogCQlwYWdlID0gX19hcm1fbHBhZV9hbGxvY19wYWdlcyhBUk1fTFBB RV9HUkFOVUxFKGRhdGEpLAotCQkJCQkgICAgICAgR0ZQX0FUT01JQywgY2ZnKTsKKwkJCQkJICAg ICAgIEdGUF9BVE9NSUMsIGRhdGEpOwogCQlpZiAoIXBhZ2UpCiAJCQlyZXR1cm4gLUVOT01FTTsK IApAQCAtNTI2LDYgKzUzNiw0NiBAQCBzdGF0aWMgaW50IGFybV9scGFlX21hcChzdHJ1Y3QgaW9f cGd0YWJsZV9vcHMgKm9wcywgdW5zaWduZWQgbG9uZyBpb3ZhLAogCXJldHVybiByZXQ7CiB9CiAK K3N0YXRpYyB2b2lkIF9fYXJtX2xwYWVfZnJlZV9wZ3RhYmxlKHN0cnVjdCBhcm1fbHBhZV9pb19w Z3RhYmxlICpkYXRhLCBpbnQgbHZsLAorCQkJCSAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlKTsK KworLyoKKyAqIFRPRE86IFdlIGhhdmUgcmV1c2VkIHVudXNlZCBhdCB0aGUgbW9tZW50ICJwYWdl LT5wYWQiIHZhcmlhYmxlIGZvcgorICogc3RvcmluZyAiZGF0YSIgcG9pbnRlciB3ZSBuZWVkIGR1 cmluZyBkZWFsbG9jYXRpb24gc2VxdWVuY2UuIFRoZSBjdXJyZW50CisgKiBmcmVlX3BhZ2VfdGFi bGUgcGxhdGZvcm0gY2FsbGJhY2sgY2FycmllcyB0aGUgb25seSBvbmUgInBhZ2UiIGFyZ3VtZW50 LgorICogVG8gcGVyZm9ybSByZXF1aXJlZCBjYWxjdWxhdGlvbnMgd2l0aCB0aGUgY3VycmVudCAo Z2VuZXJpYykgYWxsb2NhdG9yCisgKiBpbXBsZW1lbnRhdGlvbiB3ZSBhcmUgaGlnaGx5IGludGVy ZXN0ZWQgaW4gdGhlIGZvbGxvd2luZyBmaWVsZHM6CisgKiAtIGRhdGEtPmxldmVscworICogLSBk YXRhLT5wZ19zaGlmdAorICogLSBkYXRhLT5wZ2Rfc2l6ZQorICogQnV0LCB0aGlzIG5lY2Vzc2l0 eSBtaWdodCBiZSBhdm9pZGVkIGlmIHdlIGludGVncmF0ZSBhbGxvY2F0b3IgY29kZSB3aXRoCisg KiBJUE1NVS1WTVNBIGRyaXZlci4gQW5kIHRoZXNlIHZhcmlhYmxlcyB3aWxsIHR1cm4gaW50byB0 aGUKKyAqIGNvcnJlc3BvbmRpbmcgI2RlZmluZS1zLgorICovCitzdGF0aWMgdm9pZCBfX2FybV9s cGFlX2ZyZWVfbmV4dF9wZ3RhYmxlKHN0cnVjdCBhcm1fbHBhZV9pb19wZ3RhYmxlICpkYXRhLAor CQkJCSAgICBpbnQgbHZsLCBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlKQoreworCWlmICghZGF0YS0+ Y2xlYW51cCkgeworCQkvKgorCQkgKiBXZSBhcmUgaGVyZSBkdXJpbmcgbm9ybWFsIHBhZ2UgdGFi bGUgbWFpbnRlbmFuY2UuIEp1c3QgY2FsbAorCQkgKiBfX2FybV9scGFlX2ZyZWVfcGd0YWJsZSgp LCB3aGF0IHdlIGFjdHVhbGx5IGhhZCB0byBjYWxsLgorCQkgKi8KKwkJX19hcm1fbHBhZV9mcmVl X3BndGFibGUoZGF0YSwgbHZsLCBwYWdlKTsKKwl9IGVsc2UgeworCQkvKgorCQkgKiBUaGUgcGFn ZSB0YWJsZSBkZWFsbG9jYXRpb24gc2VxdWVuY2UgaXMgaW4gcHJvZ3Jlc3MuIFVzZSBzb21lIGZp ZWxkcworCQkgKiBpbiBzdHJ1Y3QgcGFnZV9pbmZvIHRvIHBhc3MgYXJndW1lbnRzIHdlIHdpbGwg bmVlZCBkdXJpbmcgaGFuZGxpbmcKKwkJICogdGhpcyBwYWdlIGJhY2suIFF1ZXVlIHBhZ2UgdG8g bGlzdC4KKwkJICovCisJCVBGTl9PUkRFUihwYWdlKSA9IGx2bDsKKwkJcGFnZS0+cGFkID0gKHU2 NCkmZGF0YS0+aW9wLm9wczsKKworCQlzcGluX2xvY2soJmlvbW11X3B0X2NsZWFudXBfbG9jayk7 CisJCXBhZ2VfbGlzdF9hZGRfdGFpbChwYWdlLCAmaW9tbXVfcHRfY2xlYW51cF9saXN0KTsKKwkJ c3Bpbl91bmxvY2soJmlvbW11X3B0X2NsZWFudXBfbG9jayk7CisJfQorfQorCiAvKiBYZW46IFdl IGRlYWwgd2l0aCBkb21haW4gcGFnZXMuICovCiBzdGF0aWMgdm9pZCBfX2FybV9scGFlX2ZyZWVf cGd0YWJsZShzdHJ1Y3QgYXJtX2xwYWVfaW9fcGd0YWJsZSAqZGF0YSwgaW50IGx2bCwKIAkJCQkg ICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSkKQEAgLTU1MywxOSArNjAzLDQxIEBAIHN0YXRpYyB2 b2lkIF9fYXJtX2xwYWVfZnJlZV9wZ3RhYmxlKHN0cnVjdCBhcm1fbHBhZV9pb19wZ3RhYmxlICpk YXRhLCBpbnQgbHZsLAogCQlpZiAoIXB0ZSB8fCBpb3B0ZV9sZWFmKHB0ZSwgbHZsKSkKIAkJCWNv bnRpbnVlOwogCi0JCV9fYXJtX2xwYWVfZnJlZV9wZ3RhYmxlKGRhdGEsIGx2bCArIDEsIGlvcHRl X2RlcmVmKHB0ZSwgZGF0YSkpOworCQlfX2FybV9scGFlX2ZyZWVfbmV4dF9wZ3RhYmxlKGRhdGEs IGx2bCArIDEsIGlvcHRlX2RlcmVmKHB0ZSwgZGF0YSkpOwogCX0KIAogCXVubWFwX2RvbWFpbl9w YWdlKHN0YXJ0KTsKLQlfX2FybV9scGFlX2ZyZWVfcGFnZXMocGFnZSwgdGFibGVfc2l6ZSwgJmRh dGEtPmlvcC5jZmcpOworCV9fYXJtX2xwYWVfZnJlZV9wYWdlcyhwYWdlLCB0YWJsZV9zaXplLCBk YXRhKTsKIH0KIAotc3RhdGljIHZvaWQgYXJtX2xwYWVfZnJlZV9wZ3RhYmxlKHN0cnVjdCBpb19w Z3RhYmxlICppb3ApCisvKgorICogV2UgYWRkZWQgZXh0cmEgInBhZ2UiIGFyZ3VtZW50IHNpbmNl IHdlIHdhbnQgdG8ga25vdyB3aGF0IHBhZ2UgaXMgcHJvY2Vzc2VkCisgKiBhdCB0aGUgbW9tZW50 IGFuZCBzaG91bGQgYmUgZnJlZWQuCisgKiAqLworc3RhdGljIHZvaWQgYXJtX2xwYWVfZnJlZV9w Z3RhYmxlKHN0cnVjdCBpb19wZ3RhYmxlICppb3AsIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UpCiB7 CiAJc3RydWN0IGFybV9scGFlX2lvX3BndGFibGUgKmRhdGEgPSBpb19wZ3RhYmxlX3RvX2RhdGEo aW9wKTsKKwlpbnQgbHZsOwogCi0JX19hcm1fbHBhZV9mcmVlX3BndGFibGUoZGF0YSwgQVJNX0xQ QUVfU1RBUlRfTFZMKGRhdGEpLCBkYXRhLT5wZ2QpOwotCWtmcmVlKGRhdGEpOworCWlmICghZGF0 YS0+Y2xlYW51cCkgeworCQkvKiBTdGFydCBwYWdlIHRhYmxlIGRlYWxsb2NhdGlvbiBzZXF1ZW5j ZSBmcm9tIHRoZSBmaXJzdCBsZXZlbC4gKi8KKwkJZGF0YS0+Y2xlYW51cCA9IHRydWU7CisJCWx2 bCA9IEFSTV9MUEFFX1NUQVJUX0xWTChkYXRhKTsKKwl9IGVsc2UgeworCQkvKiBSZXRyaWV2ZSB0 aGUgbGV2ZWwgdG8gY29udGludWUgZGVhbGxvY2F0aW9uIHNlcXVlbmNlIGZyb20uICovCisJCWx2 bCA9IFBGTl9PUkRFUihwYWdlKTsKKwkJUEZOX09SREVSKHBhZ2UpID0gMDsKKwkJcGFnZS0+cGFk ID0gMDsKKwl9CisKKwlfX2FybV9scGFlX2ZyZWVfcGd0YWJsZShkYXRhLCBsdmwsIHBhZ2UpOwor CisJLyoKKwkgKiBTZWVtcywgd2UgaGF2ZSBhbHJlYWR5IGRlYWxsb2NhdGVkIGFsbCBwYWdlcywg c28gaXQgaXMgdGltZQorCSAqIHRvIHJlbGVhc2UgdW5mcmVlZCByZXNvdXJjZS4KKwkgKi8KKwlp ZiAoIWRhdGEtPnBhZ2VfY291bnQpCisJCWtmcmVlKGRhdGEpOwogfQogCiAvKiBYZW46IFdlIGRl YWwgd2l0aCBkb21haW4gcGFnZXMuICovCkBAIC04ODksOCArOTYxLDEyIEBAIGFybV82NF9scGFl X2FsbG9jX3BndGFibGVfczEoc3RydWN0IGlvX3BndGFibGVfY2ZnICpjZmcsIHZvaWQgKmNvb2tp ZSkKIAljZmctPmFybV9scGFlX3MxX2NmZy5tYWlyWzBdID0gcmVnOwogCWNmZy0+YXJtX2xwYWVf czFfY2ZnLm1haXJbMV0gPSAwOwogCisJLyogSnVzdCB0byBiZSBzdXJlICovCisJZGF0YS0+Y2xl YW51cCA9IGZhbHNlOworCWRhdGEtPnBhZ2VfY291bnQgPSAwOworCiAJLyogTG9va2luZyBnb29k OyBhbGxvY2F0ZSBhIHBnZCAqLwotCWRhdGEtPnBnZCA9IF9fYXJtX2xwYWVfYWxsb2NfcGFnZXMo ZGF0YS0+cGdkX3NpemUsIEdGUF9LRVJORUwsIGNmZyk7CisJZGF0YS0+cGdkID0gX19hcm1fbHBh ZV9hbGxvY19wYWdlcyhkYXRhLT5wZ2Rfc2l6ZSwgR0ZQX0tFUk5FTCwgZGF0YSk7CiAJaWYgKCFk YXRhLT5wZ2QpCiAJCWdvdG8gb3V0X2ZyZWVfZGF0YTsKIApkaWZmIC0tZ2l0IGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvYXJtL2lvLXBndGFibGUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2FybS9pby1wZ3RhYmxlLmMKaW5kZXggYmZjNzAyMC4uZTI1ZDczMSAxMDA2NDQKLS0tIGEveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL2lvLXBndGFibGUuYworKysgYi94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC9hcm0vaW8tcGd0YWJsZS5jCkBAIC03Nyw3ICs3Nyw3IEBAIHN0cnVjdCBpb19w Z3RhYmxlX29wcyAqYWxsb2NfaW9fcGd0YWJsZV9vcHMoZW51bSBpb19wZ3RhYmxlX2ZtdCBmbXQs CiAgKiBJdCBpcyB0aGUgSU9NTVUgZHJpdmVyJ3MgcmVzcG9uc2liaWxpdHkgdG8gZW5zdXJlIHRo YXQgdGhlIHBhZ2UgdGFibGUKICAqIGlzIG5vIGxvbmdlciBhY2Nlc3NpYmxlIHRvIHRoZSB3YWxr ZXIgYnkgdGhpcyBwb2ludC4KICAqLwotdm9pZCBmcmVlX2lvX3BndGFibGVfb3BzKHN0cnVjdCBp b19wZ3RhYmxlX29wcyAqb3BzKQordm9pZCBmcmVlX2lvX3BndGFibGVfb3BzKHN0cnVjdCBpb19w Z3RhYmxlX29wcyAqb3BzLCBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlKQogewogCXN0cnVjdCBpb19w Z3RhYmxlICppb3A7CiAKQEAgLTg2LDUgKzg2LDYgQEAgdm9pZCBmcmVlX2lvX3BndGFibGVfb3Bz KHN0cnVjdCBpb19wZ3RhYmxlX29wcyAqb3BzKQogCiAJaW9wID0gY29udGFpbmVyX29mKG9wcywg c3RydWN0IGlvX3BndGFibGUsIG9wcyk7CiAJaW9fcGd0YWJsZV90bGJfZmx1c2hfYWxsKGlvcCk7 Ci0JaW9fcGd0YWJsZV9pbml0X3RhYmxlW2lvcC0+Zm10XS0+ZnJlZShpb3ApOworCWlvcC0+Y29v a2llID0gTlVMTDsKKwlpb19wZ3RhYmxlX2luaXRfdGFibGVbaW9wLT5mbXRdLT5mcmVlKGlvcCwg cGFnZSk7CiB9CmRpZmYgLS1naXQgYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0vaW8tcGd0 YWJsZS5oIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYXJtL2lvLXBndGFibGUuaAppbmRleCBm YjgxZmNmLi5kZjBlMjFiIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hcm0v aW8tcGd0YWJsZS5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9pby1wZ3RhYmxl LmgKQEAgLTE0NCw3ICsxNDQsNyBAQCBzdHJ1Y3QgaW9fcGd0YWJsZV9vcHMgKmFsbG9jX2lvX3Bn dGFibGVfb3BzKGVudW0gaW9fcGd0YWJsZV9mbXQgZm10LAogICoKICAqIEBvcHM6IFRoZSBvcHMg cmV0dXJuZWQgZnJvbSBhbGxvY19pb19wZ3RhYmxlX29wcy4KICAqLwotdm9pZCBmcmVlX2lvX3Bn dGFibGVfb3BzKHN0cnVjdCBpb19wZ3RhYmxlX29wcyAqb3BzKTsKK3ZvaWQgZnJlZV9pb19wZ3Rh YmxlX29wcyhzdHJ1Y3QgaW9fcGd0YWJsZV9vcHMgKm9wcywgc3RydWN0IHBhZ2VfaW5mbyAqcGFn ZSk7CiAKIAogLyoKQEAgLTIwMSw3ICsyMDEsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW9fcGd0 YWJsZV90bGJfc3luYyhzdHJ1Y3QgaW9fcGd0YWJsZSAqaW9wKQogICovCiBzdHJ1Y3QgaW9fcGd0 YWJsZV9pbml0X2ZucyB7CiAJc3RydWN0IGlvX3BndGFibGUgKigqYWxsb2MpKHN0cnVjdCBpb19w Z3RhYmxlX2NmZyAqY2ZnLCB2b2lkICpjb29raWUpOwotCXZvaWQgKCpmcmVlKShzdHJ1Y3QgaW9f cGd0YWJsZSAqaW9wKTsKKwl2b2lkICgqZnJlZSkoc3RydWN0IGlvX3BndGFibGUgKmlvcCwgc3Ry dWN0IHBhZ2VfaW5mbyAqcGFnZSk7CiB9OwogCiBleHRlcm4gc3RydWN0IGlvX3BndGFibGVfaW5p dF9mbnMgaW9fcGd0YWJsZV9hcm1fMzJfbHBhZV9zMV9pbml0X2ZuczsKZGlmZiAtLWdpdCBhL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9pcG1tdS12bXNhLmMgYi94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC9hcm0vaXBtbXUtdm1zYS5jCmluZGV4IGU1NGI1MDcuLjJhMDQ4MDAgMTAwNjQ0Ci0t LSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FybS9pcG1tdS12bXNhLmMKKysrIGIveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvYXJtL2lwbW11LXZtc2EuYwpAQCAtNzA4LDggKzcwOCw4IEBAIHN0 YXRpYyB2b2lkIGlwbW11X3RsYl9mbHVzaF9hbGwodm9pZCAqY29va2llKQogewogCXN0cnVjdCBp cG1tdV92bXNhX2RvbWFpbiAqZG9tYWluID0gY29va2llOwogCi0JLyogWGVuOiBKdXN0IHJldHVy biBpZiBjb250ZXh0X2lkIGhhcyBub24tZXhpc3RlbnQgdmFsdWUgKi8KLQlpZiAoZG9tYWluLT5j b250ZXh0X2lkID49IGRvbWFpbi0+cm9vdC0+bnVtX2N0eCkKKwkvKiBYZW46IEp1c3QgcmV0dXJu IGlmIGNvbnRleHQgaXMgYWJzZW50IG9yIGNvbnRleHRfaWQgaGFzIG5vbi1leGlzdGVudCB2YWx1 ZSAqLworCWlmICghZG9tYWluIHx8IGRvbWFpbi0+Y29udGV4dF9pZCA+PSBkb21haW4tPnJvb3Qt Pm51bV9jdHgpCiAJCXJldHVybjsKIAogCWlwbW11X3RsYl9pbnZhbGlkYXRlKGRvbWFpbik7CkBA IC03OTYsNyArNzk2LDkgQEAgc3RhdGljIGludCBpcG1tdV9kb21haW5faW5pdF9jb250ZXh0KHN0 cnVjdCBpcG1tdV92bXNhX2RvbWFpbiAqZG9tYWluKQogCSAqLwogCXJldCA9IGlwbW11X2RvbWFp bl9hbGxvY2F0ZV9jb250ZXh0KGRvbWFpbi0+cm9vdCwgZG9tYWluKTsKIAlpZiAocmV0IDwgMCkg ewotCQlmcmVlX2lvX3BndGFibGVfb3BzKGRvbWFpbi0+aW9wKTsKKwkJLyogUGFzcyByb290IHBh Z2UgdGFibGUgZm9yIHRoaXMgZG9tYWluIGFzIGFuIGFyZ3VtZW50LiAqLworCQlmcmVlX2lvX3Bn dGFibGVfb3BzKGRvbWFpbi0+aW9wLAorCQkJCW1hZGRyX3RvX3BhZ2UoZG9tYWluLT5jZmcuYXJt X2xwYWVfczFfY2ZnLnR0YnJbMF0pKTsKIAkJcmV0dXJuIHJldDsKIAl9CiAKQEAgLTIxOTMsNyAr MjE5NSwxMiBAQCBzdGF0aWMgdm9pZCBpcG1tdV92bXNhX2Rlc3Ryb3lfZG9tYWluKHN0cnVjdCBp b21tdV9kb21haW4gKmlvX2RvbWFpbikKIAkJICogYmVlbiBkZXRhY2hlZC4KIAkJICovCiAJCWlw bW11X2RvbWFpbl9kZXN0cm95X2NvbnRleHQoZG9tYWluKTsKLQkJZnJlZV9pb19wZ3RhYmxlX29w cyhkb21haW4tPmlvcCk7CisJCS8qCisJCSAqIFBhc3Mgcm9vdCBwYWdlIHRhYmxlIGZvciB0aGlz IGRvbWFpbiBhcyBhbiBhcmd1bWVudC4KKwkJICogVGhpcyBjYWxsIHdpbGwgbGVhZCB0byBzdGFy dCBkZWFsbG9jYXRpb24gc2VxdWVuY2UuCisJCSAqLworCQlmcmVlX2lvX3BndGFibGVfb3BzKGRv bWFpbi0+aW9wLAorCQkJCW1hZGRyX3RvX3BhZ2UoZG9tYWluLT5jZmcuYXJtX2xwYWVfczFfY2Zn LnR0YnJbMF0pKTsKIAl9CiAKIAlrZnJlZShkb21haW4pOwpAQCAtMjM4Myw2ICsyMzkwLDE3IEBA IHN0YXRpYyBpbnQgaXBtbXVfdm1zYV9kb21haW5faW5pdChzdHJ1Y3QgZG9tYWluICpkLCBib29s IHVzZV9pb21tdSkKIAlyZXR1cm4gMDsKIH0KIAorLyoKKyAqIFNlZW1zLCB0aGVyZSBpcyBvbmUg bW9yZSBwYWdlIHdlIG5lZWQgdG8gcHJvY2Vzcy4gU28sIHJldHJpZXZlCisgKiB0aGUgcG9pbnRl ciBhbmQgZ28gb24gZGVhbGxvY2F0aW9uIHNlcXVlbmNlLgorICovCitzdGF0aWMgdm9pZCBpcG1t dV92bXNhX2ZyZWVfcGFnZV90YWJsZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlKQoreworCXN0cnVj dCBpb19wZ3RhYmxlX29wcyAqb3BzID0gKHN0cnVjdCBpb19wZ3RhYmxlX29wcyAqKXBhZ2UtPnBh ZDsKKworCWZyZWVfaW9fcGd0YWJsZV9vcHMob3BzLCBwYWdlKTsKK30KKwogc3RhdGljIHZvaWQg X19od2RvbV9pbml0IGlwbW11X3Ztc2FfaHdkb21faW5pdChzdHJ1Y3QgZG9tYWluICpkKQogewog fQpAQCAtMjQwNCw2ICsyNDIyLDEyIEBAIHN0YXRpYyB2b2lkIGlwbW11X3Ztc2FfZG9tYWluX3Rl YXJkb3duKHN0cnVjdCBkb21haW4gKmQpCiAJQVNTRVJUKGxpc3RfZW1wdHkoJnhlbl9kb21haW4t PmNvbnRleHRzKSk7CiAJeGZyZWUoeGVuX2RvbWFpbik7CiAJZG9tX2lvbW11KGQpLT5hcmNoLnBy aXYgPSBOVUxMOworCS8qCisJICogQWZ0ZXIgdGhpcyBwb2ludCB3ZSBoYXZlIGFsbCBkb21haW4g cmVzb3VyY2VzIGRlYWxsb2NhdGVkLCBleGNlcHQKKwkgKiBwYWdlIHRhYmxlIHdoaWNoIHdlIHdp bGwgZGVhbGxvY2F0ZSBhc3luY2hyb25vdXNseS4gVGhlIElPTU1VIGNvZGUKKwkgKiBwcm92aWRl cyB1cyB3aXRoIGlvbW11X3B0X2NsZWFudXBfbGlzdCBhbmQgZnJlZV9wYWdlX3RhYmxlIHBsYXRm b3JtCisJICogY2FsbGJhY2sgd2hhdCB3ZSBhY3R1YWxseSBnb2luZyB0byB1c2UuCisJICovCiB9 CiAKIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGlwbW11X3Ztc2FfbWFwX3BhZ2VzKHN0cnVjdCBk b21haW4gKmQsCkBAIC0yNDYyLDYgKzI0ODYsNyBAQCBzdGF0aWMgdm9pZCBpcG1tdV92bXNhX2R1 bXBfcDJtX3RhYmxlKHN0cnVjdCBkb21haW4gKmQpCiBzdGF0aWMgY29uc3Qgc3RydWN0IGlvbW11 X29wcyBpcG1tdV92bXNhX2lvbW11X29wcyA9IHsKIAkuaW5pdCA9IGlwbW11X3Ztc2FfZG9tYWlu X2luaXQsCiAJLmh3ZG9tX2luaXQgPSBpcG1tdV92bXNhX2h3ZG9tX2luaXQsCisJLmZyZWVfcGFn ZV90YWJsZSA9IGlwbW11X3Ztc2FfZnJlZV9wYWdlX3RhYmxlLAogCS50ZWFyZG93biA9IGlwbW11 X3Ztc2FfZG9tYWluX3RlYXJkb3duLAogCS5pb3RsYl9mbHVzaCA9IGlwbW11X3Ztc2FfaW90bGJf Zmx1c2gsCiAJLmFzc2lnbl9kZXZpY2UgPSBpcG1tdV92bXNhX2Fzc2lnbl9kZXYsCi0tIAoyLjcu NAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54 ZW4ub3JnL3hlbi1kZXZlbAo=