From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH] iommu: specify page_count rather than page_order to iommu_map/unmap()... Date: Fri, 18 Jan 2019 16:03:28 +0000 Message-ID: <20190118160328.10455-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gkWcO-0000H6-DE for xen-devel@lists.xenproject.org; Fri, 18 Jan 2019 16:03:40 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Kevin Tian , Stefano Stabellini , Wei Liu , Jun Nakajima , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Sander Eikelenboom , Julien Grall , Paul Durrant , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= , Chao Gao List-Id: xen-devel@lists.xenproject.org Li4uYW5kIHJlbW92ZSBhbGlnbm1lbnQgYXNzZXJ0aW9ucy4KClRlc3Rpbmcgc2hvd3MgdGhhdCBj ZXJ0YWluIGNhbGxlcnMgb2YgaW9tbXVfbGVnYWN5X21hcC91bm1hcCgpIHNwZWNpZnkKb3JkZXIg PiAwIHJhbmdlcyB0aGF0IGFyZSBub3Qgb3JkZXIgYWxpZ25lZCB0aHVzIGNhdXNpbmcgb25lIG9m IHRoZQpJU19BTElHTkVEKCkgYXNzZXJ0aW9ucyB0byBmaXJlLgoKVGhpcyBwYXRjaCByZW1vdmVz IHRob3NlIGFzc2VydGlvbnMgYW5kIG1vZGlmaWVzIGlvbW11X21hcC91bm1hcCgpIGFuZAppb21t dV9sZWdhY3lfbWFwL3VubWFwKCkgdG8gdGFrZSBhIHBhZ2VfY291bnQgYXJndW1lbnQgcmF0aGVy IHRoYW4gYQpwYWdlX29yZGVyLiBVc2luZyBhIGNvdW50IGFjdHVhbGx5IG1ha2VzIG1vcmUgc2Vu c2UgYmVjYXVzZSB0aGUgdmFsaWQKc2V0IG9mIG1hcHBpbmcgb3JkZXJzIGlzIHNwZWNpZmljIHRv IHRoZSBJT01NVSBpbXBsZW1lbnRhdGlvbiBhbmQgdG8gaXQKc2hvdWxkIGJlIHVwIHRvIHRoZSBp bXBsZW1lbnRhdGlvbiBzcGVjaWZpYyBjb2RlIHRvIHRyYW5zbGF0ZSBhIG1hcHBpbmcKY291bnQg aW50byBhbiBvcHRpbWFsIHNldCBvZiBtYXBwaW5nIG9yZGVycyAod2hlbiB0aGUgY29kZSBpcyBm aW5hbGx5Cm1vZGlmaWVkIHRvIHN1cHBvcnQgb3JkZXJzID4gMCkuCgpTaWduZWQtb2ZmLWJ5OiBQ YXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBjaXRyaXguY29tPgotLS0KUmVwb3J0ZWQtYnk6IENo YW8gR2FvIDxjaGFvLmdhb0BpbnRlbC5jb20+ClJlcG9ydGVkLWJ5OiBTYW5kZXIgRWlrZWxlbmJv b20gPGxpbnV4QGVpa2VsZW5ib29tLml0PgpDYzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPgpDYzogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQ2M6IFdl aSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNjOiAiUm9nZXIgUGF1IE1vbm7DqSIgPHJvZ2Vy LnBhdUBjaXRyaXguY29tPgpDYzogR2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1bmxhcEBldS5jaXRy aXguY29tPgpDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBK dWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgpDYzogS29ucmFkIFJ6ZXN6dXRlayBX aWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3Rh YmVsbGluaUBrZXJuZWwub3JnPgpDYzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+CkNjOiBKdW4g TmFrYWppbWEgPGp1bi5uYWthamltYUBpbnRlbC5jb20+CkNjOiBLZXZpbiBUaWFuIDxrZXZpbi50 aWFuQGludGVsLmNvbT4KQ2M6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAZXUuY2l0cml4 LmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvbW0uYyAgICAgICAgICAgICAgICAgICB8ICA2ICsrLS0t LQogeGVuL2FyY2gveDg2L21tL3AybS1lcHQuYyAgICAgICAgICAgfCAgNSArKystLQogeGVuL2Fy Y2gveDg2L21tL3AybS1wdC5jICAgICAgICAgICAgfCAgNCArKy0tCiB4ZW4vYXJjaC94ODYvbW0v cDJtLmMgICAgICAgICAgICAgICB8ICA5ICsrKysrLS0tLQogeGVuL2FyY2gveDg2L3g4Nl82NC9t bS5jICAgICAgICAgICAgfCAgNiArKy0tLS0KIHhlbi9jb21tb24vZ3JhbnRfdGFibGUuYyAgICAg ICAgICAgIHwgIDggKysrKy0tLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMgICAg IHwgMjkgKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3g4Ni9pb21tdS5jIHwgIDQgKystLQogeGVuL2luY2x1ZGUveGVuL2lvbW11LmggICAgICAg ICAgICAgfCAgOCArKysrLS0tLQogOSBmaWxlcyBjaGFuZ2VkLCAzNSBpbnNlcnRpb25zKCspLCA0 NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0uYyBiL3hlbi9hcmNo L3g4Ni9tbS5jCmluZGV4IDdlYzU5NTRiMDMuLmNhY2NmZTNmNzkgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS5jCkBAIC0yODAxLDExICsyODAxLDkg QEAgc3RhdGljIGludCBfZ2V0X3BhZ2VfdHlwZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLCB1bnNp Z25lZCBsb25nIHR5cGUsCiAgICAgICAgICAgICBtZm5fdCBtZm4gPSBwYWdlX3RvX21mbihwYWdl KTsKIAogICAgICAgICAgICAgaWYgKCAoeCAmIFBHVF90eXBlX21hc2spID09IFBHVF93cml0YWJs ZV9wYWdlICkKLSAgICAgICAgICAgICAgICBpb21tdV9yZXQgPSBpb21tdV9sZWdhY3lfdW5tYXAo ZCwgX2RmbihtZm5feChtZm4pKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUEFHRV9PUkRFUl80Syk7CisgICAgICAgICAgICAgICAgaW9tbXVfcmV0ID0g aW9tbXVfbGVnYWN5X3VubWFwKGQsIF9kZm4obWZuX3gobWZuKSksIDEpOwogICAgICAgICAgICAg ZWxzZSBpZiAoIHR5cGUgPT0gUEdUX3dyaXRhYmxlX3BhZ2UgKQotICAgICAgICAgICAgICAgIGlv bW11X3JldCA9IGlvbW11X2xlZ2FjeV9tYXAoZCwgX2RmbihtZm5feChtZm4pKSwgbWZuLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFHRV9PUkRFUl80SywK KyAgICAgICAgICAgICAgICBpb21tdV9yZXQgPSBpb21tdV9sZWdhY3lfbWFwKGQsIF9kZm4obWZu X3gobWZuKSksIG1mbiwgMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIElPTU1VRl9yZWFkYWJsZSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJT01NVUZfd3JpdGFibGUpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvbW0vcDJtLWVwdC5jIGIveGVuL2FyY2gveDg2L21tL3AybS1lcHQuYwppbmRl eCAyYjJiZjMxYWFkLi41NjM0MWNhNjc4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJt LWVwdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0tZXB0LmMKQEAgLTg4NSw4ICs4ODUsOSBA QCBvdXQ6CiAgICAgICAgICAgICByYyA9IGlvbW11X3B0ZV9mbHVzaChkLCBnZm4sICZlcHRfZW50 cnktPmVwdGUsIG9yZGVyLCB2dGRfcHRlX3ByZXNlbnQpOwogICAgICAgICBlbHNlIGlmICggbmVl ZF9pb21tdV9wdF9zeW5jKGQpICkKICAgICAgICAgICAgIHJjID0gaW9tbXVfZmxhZ3MgPwotICAg ICAgICAgICAgICAgIGlvbW11X2xlZ2FjeV9tYXAoZCwgX2RmbihnZm4pLCBtZm4sIG9yZGVyLCBp b21tdV9mbGFncykgOgotICAgICAgICAgICAgICAgIGlvbW11X2xlZ2FjeV91bm1hcChkLCBfZGZu KGdmbiksIG9yZGVyKTsKKyAgICAgICAgICAgICAgICBpb21tdV9sZWdhY3lfbWFwKGQsIF9kZm4o Z2ZuKSwgbWZuLCAxdSA8PCBvcmRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlvbW11X2ZsYWdzKSA6CisgICAgICAgICAgICAgICAgaW9tbXVfbGVnYWN5X3VubWFwKGQsIF9k Zm4oZ2ZuKSwgMXUgPDwgb3JkZXIpOwogICAgIH0KIAogICAgIHVubWFwX2RvbWFpbl9wYWdlKHRh YmxlKTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9wMm0tcHQuYyBiL3hlbi9hcmNoL3g4 Ni9tbS9wMm0tcHQuYwppbmRleCAxMmY5MmNmMWYwLi5hYzg2YTg5NWEwIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvbW0vcDJtLXB0LmMKKysrIGIveGVuL2FyY2gveDg2L21tL3AybS1wdC5jCkBA IC02OTQsOSArNjk0LDkgQEAgcDJtX3B0X3NldF9lbnRyeShzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJt LCBnZm5fdCBnZm5fLCBtZm5fdCBtZm4sCiAKICAgICAgICAgaWYgKCBuZWVkX2lvbW11X3B0X3N5 bmMocDJtLT5kb21haW4pICkKICAgICAgICAgICAgIHJjID0gaW9tbXVfcHRlX2ZsYWdzID8KLSAg ICAgICAgICAgICAgICBpb21tdV9sZWdhY3lfbWFwKGQsIF9kZm4oZ2ZuKSwgbWZuLCBwYWdlX29y ZGVyLAorICAgICAgICAgICAgICAgIGlvbW11X2xlZ2FjeV9tYXAoZCwgX2RmbihnZm4pLCBtZm4s IDF1IDw8IHBhZ2Vfb3JkZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpb21t dV9wdGVfZmxhZ3MpIDoKLSAgICAgICAgICAgICAgICBpb21tdV9sZWdhY3lfdW5tYXAoZCwgX2Rm bihnZm4pLCBwYWdlX29yZGVyKTsKKyAgICAgICAgICAgICAgICBpb21tdV9sZWdhY3lfdW5tYXAo ZCwgX2RmbihnZm4pLCAxdSA8PCBwYWdlX29yZGVyKTsKICAgICAgICAgZWxzZSBpZiAoIGlvbW11 X3VzZV9oYXBfcHQoZCkgJiYgaW9tbXVfb2xkX2ZsYWdzICkKICAgICAgICAgICAgIGFtZF9pb21t dV9mbHVzaF9wYWdlcyhwMm0tPmRvbWFpbiwgZ2ZuLCBwYWdlX29yZGVyKTsKICAgICB9CmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMgYi94ZW4vYXJjaC94ODYvbW0vcDJtLmMKaW5k ZXggZDE0Y2U1N2RkNS4uYWUzZDJhY2QzNiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tL3Ay bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwpAQCAtNzgwLDcgKzc4MCw4IEBAIHAybV9y ZW1vdmVfcGFnZShzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCB1bnNpZ25lZCBsb25nIGdmbl9sLCB1 bnNpZ25lZCBsb25nIG1mbiwKIAogICAgIGlmICggIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShwMm0t PmRvbWFpbikgKQogICAgICAgICByZXR1cm4gbmVlZF9pb21tdV9wdF9zeW5jKHAybS0+ZG9tYWlu KSA/Ci0gICAgICAgICAgICBpb21tdV9sZWdhY3lfdW5tYXAocDJtLT5kb21haW4sIF9kZm4obWZu KSwgcGFnZV9vcmRlcikgOiAwOworICAgICAgICAgICAgaW9tbXVfbGVnYWN5X3VubWFwKHAybS0+ ZG9tYWluLCBfZGZuKG1mbiksIDF1IDw8IHBhZ2Vfb3JkZXIpIDoKKyAgICAgICAgICAgIDA7CiAK ICAgICBBU1NFUlQoZ2ZuX2xvY2tlZF9ieV9tZShwMm0sIGdmbikpOwogICAgIFAyTV9ERUJVRygi cmVtb3ZpbmcgZ2ZuPSUjbHggbWZuPSUjbHhcbiIsIGdmbl9sLCBtZm4pOwpAQCAtODI3LDcgKzgy OCw3IEBAIGd1ZXN0X3BoeXNtYXBfYWRkX2VudHJ5KHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdm biwgbWZuX3QgbWZuLAogCiAgICAgaWYgKCAhcGFnaW5nX21vZGVfdHJhbnNsYXRlKGQpICkKICAg ICAgICAgcmV0dXJuIChuZWVkX2lvbW11X3B0X3N5bmMoZCkgJiYgdCA9PSBwMm1fcmFtX3J3KSA/ Ci0gICAgICAgICAgICBpb21tdV9sZWdhY3lfbWFwKGQsIF9kZm4obWZuX3gobWZuKSksIG1mbiwg cGFnZV9vcmRlciwKKyAgICAgICAgICAgIGlvbW11X2xlZ2FjeV9tYXAoZCwgX2RmbihtZm5feCht Zm4pKSwgbWZuLCAxdSA8PCBwYWdlX29yZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJT01NVUZfcmVhZGFibGUgfCBJT01NVUZfd3JpdGFibGUpIDogMDsKIAogICAgIC8qIGZvcmVp Z24gcGFnZXMgYXJlIGFkZGVkIHRocnUgcDJtX2FkZF9mb3JlaWduICovCkBAIC0xMzA4LDcgKzEz MDksNyBAQCBpbnQgc2V0X2lkZW50aXR5X3AybV9lbnRyeShzdHJ1Y3QgZG9tYWluICpkLCB1bnNp Z25lZCBsb25nIGdmbl9sLAogICAgIHsKICAgICAgICAgaWYgKCAhbmVlZF9pb21tdV9wdF9zeW5j KGQpICkKICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICByZXR1cm4gaW9tbXVfbGVnYWN5 X21hcChkLCBfZGZuKGdmbl9sKSwgX21mbihnZm5fbCksIFBBR0VfT1JERVJfNEssCisgICAgICAg IHJldHVybiBpb21tdV9sZWdhY3lfbWFwKGQsIF9kZm4oZ2ZuX2wpLCBfbWZuKGdmbl9sKSwgMSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxlIHwgSU9NTVVG X3dyaXRhYmxlKTsKICAgICB9CiAKQEAgLTEzOTksNyArMTQwMCw3IEBAIGludCBjbGVhcl9pZGVu dGl0eV9wMm1fZW50cnkoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm5fbCkKICAg ICB7CiAgICAgICAgIGlmICggIW5lZWRfaW9tbXVfcHRfc3luYyhkKSApCiAgICAgICAgICAgICBy ZXR1cm4gMDsKLSAgICAgICAgcmV0dXJuIGlvbW11X2xlZ2FjeV91bm1hcChkLCBfZGZuKGdmbl9s KSwgUEFHRV9PUkRFUl80Syk7CisgICAgICAgIHJldHVybiBpb21tdV9sZWdhY3lfdW5tYXAoZCwg X2RmbihnZm5fbCksIDEpOwogICAgIH0KIAogICAgIGdmbl9sb2NrKHAybSwgZ2ZuLCAwKTsKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQv bW0uYwppbmRleCBkOGY1NThiYzNhLi5hNWFmYWI0MDJmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYveDg2XzY0L21tLmMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9tbS5jCkBAIC0xNDM2LDE2 ICsxNDM2LDE0IEBAIGludCBtZW1vcnlfYWRkKHVuc2lnbmVkIGxvbmcgc3BmbiwgdW5zaWduZWQg bG9uZyBlcGZuLCB1bnNpZ25lZCBpbnQgcHhtKQogICAgICAgICAgIW5lZWRfaW9tbXVfcHRfc3lu YyhoYXJkd2FyZV9kb21haW4pICkKICAgICB7CiAgICAgICAgIGZvciAoIGkgPSBzcGZuOyBpIDwg ZXBmbjsgaSsrICkKLSAgICAgICAgICAgIGlmICggaW9tbXVfbGVnYWN5X21hcChoYXJkd2FyZV9k b21haW4sIF9kZm4oaSksIF9tZm4oaSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUEFHRV9PUkRFUl80SywKKyAgICAgICAgICAgIGlmICggaW9tbXVfbGVnYWN5X21hcChoYXJk d2FyZV9kb21haW4sIF9kZm4oaSksIF9tZm4oaSksIDEsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxlIHwgSU9NTVVGX3dyaXRhYmxlKSApCiAgICAgICAg ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGlmICggaSAhPSBlcGZuICkKICAgICAgICAgewogICAg ICAgICAgICAgd2hpbGUgKGktLSA+IG9sZF9tYXgpCiAgICAgICAgICAgICAgICAgLyogSWYgc3Rh dGVtZW50IHRvIHNhdGlzZnkgX19tdXN0X2NoZWNrLiAqLwotICAgICAgICAgICAgICAgIGlmICgg aW9tbXVfbGVnYWN5X3VubWFwKGhhcmR3YXJlX2RvbWFpbiwgX2RmbihpKSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQUdFX09SREVSXzRLKSApCisgICAgICAgICAg ICAgICAgaWYgKCBpb21tdV9sZWdhY3lfdW5tYXAoaGFyZHdhcmVfZG9tYWluLCBfZGZuKGkpLCAx KSApCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBnb3RvIGRl c3Ryb3lfbTJwOwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jIGIveGVuL2Nv bW1vbi9ncmFudF90YWJsZS5jCmluZGV4IGZkMDk5YThmMjUuLjRiZDBiNDYxNjYgMTAwNjQ0Ci0t LSBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYworKysgYi94ZW4vY29tbW9uL2dyYW50X3RhYmxl LmMKQEAgLTExMzQsMTMgKzExMzQsMTMgQEAgbWFwX2dyYW50X3JlZigKICAgICAgICAgICAgICAh KG9sZF9waW4gJiAoR05UUElOX2hzdHdfbWFza3xHTlRQSU5fZGV2d19tYXNrKSkgKQogICAgICAg ICB7CiAgICAgICAgICAgICBpZiAoICEoa2luZCAmIE1BUEtJTkRfV1JJVEUpICkKLSAgICAgICAg ICAgICAgICBlcnIgPSBpb21tdV9sZWdhY3lfbWFwKGxkLCBfZGZuKG1mbl94KG1mbikpLCBtZm4s IDAsCisgICAgICAgICAgICAgICAgZXJyID0gaW9tbXVfbGVnYWN5X21hcChsZCwgX2RmbihtZm5f eChtZm4pKSwgbWZuLCAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg SU9NTVVGX3JlYWRhYmxlIHwgSU9NTVVGX3dyaXRhYmxlKTsKICAgICAgICAgfQogICAgICAgICBl bHNlIGlmICggYWN0X3BpbiAmJiAhb2xkX3BpbiApCiAgICAgICAgIHsKICAgICAgICAgICAgIGlm ICggIWtpbmQgKQotICAgICAgICAgICAgICAgIGVyciA9IGlvbW11X2xlZ2FjeV9tYXAobGQsIF9k Zm4obWZuX3gobWZuKSksIG1mbiwgMCwKKyAgICAgICAgICAgICAgICBlcnIgPSBpb21tdV9sZWdh Y3lfbWFwKGxkLCBfZGZuKG1mbl94KG1mbikpLCBtZm4sIDEsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGUpOwogICAgICAgICB9CiAgICAgICAg IGlmICggZXJyICkKQEAgLTEzODksOSArMTM4OSw5IEBAIHVubWFwX2NvbW1vbigKIAogICAgICAg ICBraW5kID0gbWFwa2luZChsZ3QsIHJkLCBvcC0+bWZuKTsKICAgICAgICAgaWYgKCAha2luZCAp Ci0gICAgICAgICAgICBlcnIgPSBpb21tdV9sZWdhY3lfdW5tYXAobGQsIF9kZm4obWZuX3gob3At Pm1mbikpLCAwKTsKKyAgICAgICAgICAgIGVyciA9IGlvbW11X2xlZ2FjeV91bm1hcChsZCwgX2Rm bihtZm5feChvcC0+bWZuKSksIDEpOwogICAgICAgICBlbHNlIGlmICggIShraW5kICYgTUFQS0lO RF9XUklURSkgKQotICAgICAgICAgICAgZXJyID0gaW9tbXVfbGVnYWN5X21hcChsZCwgX2Rmbiht Zm5feChvcC0+bWZuKSksIG9wLT5tZm4sIDAsCisgICAgICAgICAgICBlcnIgPSBpb21tdV9sZWdh Y3lfbWFwKGxkLCBfZGZuKG1mbl94KG9wLT5tZm4pKSwgb3AtPm1mbiwgMSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVGX3JlYWRhYmxlKTsKIAogICAgICAgICBkb3Vi bGVfZ3RfdW5sb2NrKGxndCwgcmd0KTsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCmluZGV4IGJkMWFm MzVhMTMuLmI3YTA4ZDEwNWQgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lv bW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYwpAQCAtMjI2LDcgKzIy Niw3IEBAIHZvaWQgX19od2RvbV9pbml0IGlvbW11X2h3ZG9tX2luaXQoc3RydWN0IGRvbWFpbiAq ZCkKICAgICAgICAgICAgICAgICAgID09IFBHVF93cml0YWJsZV9wYWdlKSApCiAgICAgICAgICAg ICAgICAgbWFwcGluZyB8PSBJT01NVUZfd3JpdGFibGU7CiAKLSAgICAgICAgICAgIHJldCA9IGlv bW11X21hcChkLCBfZGZuKGRmbiksIF9tZm4obWZuKSwgbWFwcGluZywgMCwKKyAgICAgICAgICAg IHJldCA9IGlvbW11X21hcChkLCBfZGZuKGRmbiksIF9tZm4obWZuKSwgbWFwcGluZywgMSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAmZmx1c2hfZmxhZ3MpOwogCiAgICAgICAgICAgICBp ZiAoICFyYyApCkBAIC0zMTEsNyArMzExLDcgQEAgdm9pZCBpb21tdV9kb21haW5fZGVzdHJveShz dHJ1Y3QgZG9tYWluICpkKQogfQogCiBpbnQgaW9tbXVfbWFwKHN0cnVjdCBkb21haW4gKmQsIGRm bl90IGRmbiwgbWZuX3QgbWZuLAotICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcGFnZV9vcmRl ciwgdW5zaWduZWQgaW50IGZsYWdzLAorICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcGFnZV9j b3VudCwgdW5zaWduZWQgaW50IGZsYWdzLAogICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmZs dXNoX2ZsYWdzKQogewogICAgIGNvbnN0IHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lv bW11KGQpOwpAQCAtMzIxLDEwICszMjEsNyBAQCBpbnQgaW9tbXVfbWFwKHN0cnVjdCBkb21haW4g KmQsIGRmbl90IGRmbiwgbWZuX3QgbWZuLAogICAgIGlmICggIWlvbW11X2VuYWJsZWQgfHwgIWhk LT5wbGF0Zm9ybV9vcHMgKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIEFTU0VSVChJU19BTElH TkVEKGRmbl94KGRmbiksICgxdWwgPDwgcGFnZV9vcmRlcikpKTsKLSAgICBBU1NFUlQoSVNfQUxJ R05FRChtZm5feChtZm4pLCAoMXVsIDw8IHBhZ2Vfb3JkZXIpKSk7Ci0KLSAgICBmb3IgKCBpID0g MDsgaSA8ICgxdWwgPDwgcGFnZV9vcmRlcik7IGkrKyApCisgICAgZm9yICggaSA9IDA7IGkgPCBw YWdlX2NvdW50OyBpKysgKQogICAgIHsKICAgICAgICAgcmMgPSBoZC0+cGxhdGZvcm1fb3BzLT5t YXBfcGFnZShkLCBkZm5fYWRkKGRmbiwgaSksIG1mbl9hZGQobWZuLCBpKSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncywgZmx1c2hfZmxhZ3MpOwpAQCAtMzU0 LDE1ICszNTEsMTQgQEAgaW50IGlvbW11X21hcChzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4s IG1mbl90IG1mbiwKIH0KIAogaW50IGlvbW11X2xlZ2FjeV9tYXAoc3RydWN0IGRvbWFpbiAqZCwg ZGZuX3QgZGZuLCBtZm5fdCBtZm4sCi0gICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg cGFnZV9vcmRlciwgdW5zaWduZWQgaW50IGZsYWdzKQorICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgaW50IHBhZ2VfY291bnQsIHVuc2lnbmVkIGludCBmbGFncykKIHsKICAgICB1bnNpZ25l ZCBpbnQgZmx1c2hfZmxhZ3MgPSAwOwotICAgIGludCByYyA9IGlvbW11X21hcChkLCBkZm4sIG1m biwgcGFnZV9vcmRlciwgZmxhZ3MsICZmbHVzaF9mbGFncyk7CisgICAgaW50IHJjID0gaW9tbXVf bWFwKGQsIGRmbiwgbWZuLCBwYWdlX2NvdW50LCBmbGFncywgJmZsdXNoX2ZsYWdzKTsKIAogICAg IGlmICggIXRoaXNfY3B1KGlvbW11X2RvbnRfZmx1c2hfaW90bGIpICkKICAgICB7Ci0gICAgICAg IGludCBlcnIgPSBpb21tdV9pb3RsYl9mbHVzaChkLCBkZm4sICgxdSA8PCBwYWdlX29yZGVyKSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsdXNoX2ZsYWdzKTsKKyAgICAg ICAgaW50IGVyciA9IGlvbW11X2lvdGxiX2ZsdXNoKGQsIGRmbiwgcGFnZV9jb3VudCwgZmx1c2hf ZmxhZ3MpOwogCiAgICAgICAgIGlmICggIXJjICkKICAgICAgICAgICAgIHJjID0gZXJyOwpAQCAt MzcxLDcgKzM2Nyw3IEBAIGludCBpb21tdV9sZWdhY3lfbWFwKHN0cnVjdCBkb21haW4gKmQsIGRm bl90IGRmbiwgbWZuX3QgbWZuLAogICAgIHJldHVybiByYzsKIH0KIAotaW50IGlvbW11X3VubWFw KHN0cnVjdCBkb21haW4gKmQsIGRmbl90IGRmbiwgdW5zaWduZWQgaW50IHBhZ2Vfb3JkZXIsCitp bnQgaW9tbXVfdW5tYXAoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuLCB1bnNpZ25lZCBpbnQg cGFnZV9jb3VudCwKICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKmZsdXNoX2ZsYWdzKQog ewogICAgIGNvbnN0IHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOwpAQCAt MzgxLDkgKzM3Nyw3IEBAIGludCBpb21tdV91bm1hcChzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBk Zm4sIHVuc2lnbmVkIGludCBwYWdlX29yZGVyLAogICAgIGlmICggIWlvbW11X2VuYWJsZWQgfHwg IWhkLT5wbGF0Zm9ybV9vcHMgKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIEFTU0VSVChJU19B TElHTkVEKGRmbl94KGRmbiksICgxdWwgPDwgcGFnZV9vcmRlcikpKTsKLQotICAgIGZvciAoIGkg PSAwOyBpIDwgKDF1bCA8PCBwYWdlX29yZGVyKTsgaSsrICkKKyAgICBmb3IgKCBpID0gMDsgaSA8 IHBhZ2VfY291bnQ7IGkrKyApCiAgICAgewogICAgICAgICBpbnQgZXJyID0gaGQtPnBsYXRmb3Jt X29wcy0+dW5tYXBfcGFnZShkLCBkZm5fYWRkKGRmbiwgaSksCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsdXNoX2ZsYWdzKTsKQEAgLTQwOSwxNSArNDAz LDE0IEBAIGludCBpb21tdV91bm1hcChzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4sIHVuc2ln bmVkIGludCBwYWdlX29yZGVyLAogICAgIHJldHVybiByYzsKIH0KIAotaW50IGlvbW11X2xlZ2Fj eV91bm1hcChzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4sIHVuc2lnbmVkIGludCBwYWdlX29y ZGVyKQoraW50IGlvbW11X2xlZ2FjeV91bm1hcChzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4s IHVuc2lnbmVkIGludCBwYWdlX2NvdW50KQogewogICAgIHVuc2lnbmVkIGludCBmbHVzaF9mbGFn cyA9IDA7Ci0gICAgaW50IHJjID0gaW9tbXVfdW5tYXAoZCwgZGZuLCBwYWdlX29yZGVyLCAmZmx1 c2hfZmxhZ3MpOworICAgIGludCByYyA9IGlvbW11X3VubWFwKGQsIGRmbiwgcGFnZV9jb3VudCwg JmZsdXNoX2ZsYWdzKTsKIAogICAgIGlmICggIXRoaXNfY3B1KGlvbW11X2RvbnRfZmx1c2hfaW90 bGIpICkKICAgICB7Ci0gICAgICAgIGludCBlcnIgPSBpb21tdV9pb3RsYl9mbHVzaChkLCBkZm4s ICgxdSA8PCBwYWdlX29yZGVyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZsdXNoX2ZsYWdzKTsKKyAgICAgICAgaW50IGVyciA9IGlvbW11X2lvdGxiX2ZsdXNoKGQsIGRm biwgcGFnZV9jb3VudCwgZmx1c2hfZmxhZ3MpOwogCiAgICAgICAgIGlmICggIXJjICkKICAgICAg ICAgICAgIHJjID0gZXJyOwpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2 L2lvbW11LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYwppbmRleCBlNDBk N2E3ZDdiLi41M2Q0ZGJjNjBjIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94 ODYvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYwpAQCAt NjcsNyArNjcsNyBAQCBpbnQgYXJjaF9pb21tdV9wb3B1bGF0ZV9wYWdlX3RhYmxlKHN0cnVjdCBk b21haW4gKmQpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKCEoZ2ZuID4+ IERFRkFVTFRfRE9NQUlOX0FERFJFU1NfV0lEVEgpKTsKICAgICAgICAgICAgICAgICBCVUdfT04o U0hBUkVEX00yUChnZm4pKTsKLSAgICAgICAgICAgICAgICByYyA9IGlvbW11X21hcChkLCBfZGZu KGdmbiksIF9tZm4obWZuKSwgUEFHRV9PUkRFUl80SywKKyAgICAgICAgICAgICAgICByYyA9IGlv bW11X21hcChkLCBfZGZuKGdmbiksIF9tZm4obWZuKSwgMSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBJT01NVUZfcmVhZGFibGUgfCBJT01NVUZfd3JpdGFibGUsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJmZsdXNoX2ZsYWdzKTsKICAgICAgICAgICAgIH0KQEAgLTI0 NSw3ICsyNDUsNyBAQCB2b2lkIF9faHdkb21faW5pdCBhcmNoX2lvbW11X2h3ZG9tX2luaXQoc3Ry dWN0IGRvbWFpbiAqZCkKICAgICAgICAgaWYgKCBwYWdpbmdfbW9kZV90cmFuc2xhdGUoZCkgKQog ICAgICAgICAgICAgcmMgPSBzZXRfaWRlbnRpdHlfcDJtX2VudHJ5KGQsIHBmbiwgcDJtX2FjY2Vz c19ydywgMCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJjID0gaW9tbXVfbWFwKGQsIF9k Zm4ocGZuKSwgX21mbihwZm4pLCBQQUdFX09SREVSXzRLLAorICAgICAgICAgICAgcmMgPSBpb21t dV9tYXAoZCwgX2RmbihwZm4pLCBfbWZuKHBmbiksIDEsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICBJT01NVUZfcmVhZGFibGUgfCBJT01NVUZfd3JpdGFibGUsICZmbHVzaF9mbGFncyk7CiAK ICAgICAgICAgaWYgKCByYyApCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaCBi L3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCmluZGV4IGNkYzgwMjFjYmQuLjgyZmI4NmM3ZmYgMTAw NjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9p b21tdS5oCkBAIC0xMTEsMTcgKzExMSwxNyBAQCBlbnVtCiAjZGVmaW5lIElPTU1VX0ZMVVNIRl9t b2RpZmllZCAoMXUgPDwgX0lPTU1VX0ZMVVNIRl9tb2RpZmllZCkKIAogaW50IF9fbXVzdF9jaGVj ayBpb21tdV9tYXAoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuLCBtZm5fdCBtZm4sCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcGFnZV9vcmRlciwgdW5zaWduZWQg aW50IGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHBhZ2Vf Y291bnQsIHVuc2lnbmVkIGludCBmbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGludCAqZmx1c2hfZmxhZ3MpOwogaW50IF9fbXVzdF9jaGVjayBpb21tdV91bm1hcChz dHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGludCBwYWdlX29yZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBpbnQgcGFnZV9jb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z aWduZWQgaW50ICpmbHVzaF9mbGFncyk7CiAKIGludCBfX211c3RfY2hlY2sgaW9tbXVfbGVnYWN5 X21hcChzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4sIG1mbl90IG1mbiwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcGFnZV9vcmRlciwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcGFnZV9jb3VudCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpOwogaW50IF9f bXVzdF9jaGVjayBpb21tdV9sZWdhY3lfdW5tYXAoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZu LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHBhZ2Vf b3JkZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50 IHBhZ2VfY291bnQpOwogCiBpbnQgX19tdXN0X2NoZWNrIGlvbW11X2xvb2t1cF9wYWdlKHN0cnVj dCBkb21haW4gKmQsIGRmbl90IGRmbiwgbWZuX3QgKm1mbiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpmbGFncyk7Ci0tIAoyLjIwLjEuMi5nYjIxZWJi NjcxCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6 Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==