From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.0 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MIME_BASE64_TEXT,SPF_HELO_NONE,SPF_PASS, UNPARSEABLE_RELAY,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 95D41C49EA6 for ; Sat, 26 Jun 2021 10:09:58 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 0D0A96191C for ; Sat, 26 Jun 2021 10:09:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0D0A96191C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 2AD558D0002; Sat, 26 Jun 2021 06:09:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 25C586B0075; Sat, 26 Jun 2021 06:09:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0D66C8D0002; Sat, 26 Jun 2021 06:09:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0054.hostedemail.com [216.40.44.54]) by kanga.kvack.org (Postfix) with ESMTP id C7B826B0074 for ; Sat, 26 Jun 2021 06:09:56 -0400 (EDT) Received: from smtpin30.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id DAC578249980 for ; Sat, 26 Jun 2021 10:09:56 +0000 (UTC) X-FDA: 78295453992.30.5CAF51B Received: from mailgw02.mediatek.com (mailgw02.mediatek.com [216.200.240.185]) by imf27.hostedemail.com (Postfix) with ESMTP id 6BB15801934D for ; Sat, 26 Jun 2021 10:09:55 +0000 (UTC) X-UUID: 3724909009d647a78dec5b9051825447-20210626 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=ZjBG6gau1BwO17GQuMrSKt+XZUtfoYhNoC1/+u8cr/E=; b=gbh9eRLrQL9Kd6rmQn/DHeXsdb3CqUaMEyYZBmMarHLiTR2vZMDSXv2LpKPGNu2dOX88TL55CcvfcyQ6chmZkH0jRWR6XFkzL2cf8zwNeiIMLXlz0Dd5FmAXT4WLLmaKwrvezcIpKSEB5JaV67Y7fenFXEpXp4XJ5anwMwP4DLE=; X-UUID: 3724909009d647a78dec5b9051825447-20210626 Received: from mtkcas68.mediatek.inc [(172.29.94.19)] by mailgw02.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 2075255348; Sat, 26 Jun 2021 03:09:52 -0700 Received: from MTKMBS02N1.mediatek.inc (172.21.101.77) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 26 Jun 2021 03:09:50 -0700 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs02n1.mediatek.inc (172.21.101.77) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sat, 26 Jun 2021 18:09:36 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sat, 26 Jun 2021 18:09:37 +0800 From: Kuan-Ying Lee To: Andrey Ryabinin , Alexander Potapenko , Andrey Konovalov , Marco Elver , Dmitry Vyukov , Andrew Morton , Matthias Brugger CC: , , , , , , , , Kuan-Ying Lee Subject: [PATCH v4 2/3] kasan: integrate the common part of two KASAN tag-based modes Date: Sat, 26 Jun 2021 18:09:30 +0800 Message-ID: <20210626100931.22794-3-Kuan-Ying.Lee@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20210626100931.22794-1-Kuan-Ying.Lee@mediatek.com> References: <20210626100931.22794-1-Kuan-Ying.Lee@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=mediatek.com header.s=dk header.b=gbh9eRLr; dmarc=pass (policy=none) header.from=mediatek.com; spf=pass (imf27.hostedemail.com: domain of kuan-ying.lee@mediatek.com designates 216.200.240.185 as permitted sender) smtp.mailfrom=kuan-ying.lee@mediatek.com X-Stat-Signature: nefyrfyauwpehqiwtyfybdpr9uao7gp6 X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 6BB15801934D X-HE-Tag: 1624702195-501319 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: MS4gTW92ZSBrYXNhbl9nZXRfZnJlZV90cmFjaygpIGFuZCBrYXNhbl9zZXRfZnJlZV9pbmZvKCkN CiAgIGludG8gdGFncy5jIGFuZCBjb21iaW5lIHRoZXNlIHR3byBmdW5jdGlvbnMgZm9yDQogICBT V19UQUdTIGFuZCBIV19UQUdTIGthc2FuIG1vZGUuDQoyLiBNb3ZlIGthc2FuX2dldF9idWdfdHlw ZSgpIHRvIHJlcG9ydF90YWdzLmMgYW5kDQogICBtYWtlIHRoaXMgZnVuY3Rpb24gY29tcGF0aWJs ZSBmb3IgU1dfVEFHUyBhbmQNCiAgIEhXX1RBR1Mga2FzYW4gbW9kZS4NCg0KU2lnbmVkLW9mZi1i eTogS3Vhbi1ZaW5nIExlZSA8S3Vhbi1ZaW5nLkxlZUBtZWRpYXRlay5jb20+DQpTdWdnZXN0ZWQt Ynk6IE1hcmNvIEVsdmVyIDxlbHZlckBnb29nbGUuY29tPg0KU3VnZ2VzdGVkLWJ5OiBHcmVnIEty b2FoLUhhcnRtYW4gPGdyZWdraEBsaW51eGZvdW5kYXRpb24ub3JnPg0KQ2M6IEFuZHJleSBSeWFi aW5pbiA8cnlhYmluaW4uYS5hQGdtYWlsLmNvbT4NCkNjOiBBbGV4YW5kZXIgUG90YXBlbmtvIDxn bGlkZXJAZ29vZ2xlLmNvbT4NCkNjOiBBbmRyZXkgS29ub3ZhbG92IDxhbmRyZXlrbnZsQGdtYWls LmNvbT4NCkNjOiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5jb20+DQpDYzogQW5kcmV3 IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4NCi0tLQ0KIG1tL2thc2FuL01ha2Vm aWxlICAgICAgICAgfCAgNCArLS0NCiBtbS9rYXNhbi9od190YWdzLmMgICAgICAgIHwgMjIgLS0t LS0tLS0tLS0tLS0tDQogbW0va2FzYW4vcmVwb3J0X2h3X3RhZ3MuYyB8ICA1IC0tLS0NCiBtbS9r YXNhbi9yZXBvcnRfc3dfdGFncy5jIHwgNDMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K IG1tL2thc2FuL3JlcG9ydF90YWdzLmMgICAgfCA1MSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysNCiBtbS9rYXNhbi9zd190YWdzLmMgICAgICAgIHwgNDEgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQogbW0va2FzYW4vdGFncy5jICAgICAgICAgICB8IDU5ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KIDcgZmlsZXMgY2hhbmdlZCwgMTEyIGluc2Vy dGlvbnMoKyksIDExMyBkZWxldGlvbnMoLSkNCiBjcmVhdGUgbW9kZSAxMDA2NDQgbW0va2FzYW4v cmVwb3J0X3RhZ3MuYw0KIGNyZWF0ZSBtb2RlIDEwMDY0NCBtbS9rYXNhbi90YWdzLmMNCg0KZGlm ZiAtLWdpdCBhL21tL2thc2FuL01ha2VmaWxlIGIvbW0va2FzYW4vTWFrZWZpbGUNCmluZGV4IDlm ZTM5YTY2Mzg4YS4uYWRjZDlhY2FlZjYxIDEwMDY0NA0KLS0tIGEvbW0va2FzYW4vTWFrZWZpbGUN CisrKyBiL21tL2thc2FuL01ha2VmaWxlDQpAQCAtMzcsNSArMzcsNSBAQCBDRkxBR1Nfc3dfdGFn cy5vIDo9ICQoQ0NfRkxBR1NfS0FTQU5fUlVOVElNRSkNCiANCiBvYmotJChDT05GSUdfS0FTQU4p IDo9IGNvbW1vbi5vIHJlcG9ydC5vDQogb2JqLSQoQ09ORklHX0tBU0FOX0dFTkVSSUMpICs9IGlu aXQubyBnZW5lcmljLm8gcmVwb3J0X2dlbmVyaWMubyBzaGFkb3cubyBxdWFyYW50aW5lLm8NCi1v YmotJChDT05GSUdfS0FTQU5fSFdfVEFHUykgKz0gaHdfdGFncy5vIHJlcG9ydF9od190YWdzLm8N Ci1vYmotJChDT05GSUdfS0FTQU5fU1dfVEFHUykgKz0gaW5pdC5vIHJlcG9ydF9zd190YWdzLm8g c2hhZG93Lm8gc3dfdGFncy5vDQorb2JqLSQoQ09ORklHX0tBU0FOX0hXX1RBR1MpICs9IGh3X3Rh Z3MubyByZXBvcnRfaHdfdGFncy5vIHRhZ3MubyByZXBvcnRfdGFncy5vDQorb2JqLSQoQ09ORklH X0tBU0FOX1NXX1RBR1MpICs9IGluaXQubyByZXBvcnRfc3dfdGFncy5vIHNoYWRvdy5vIHN3X3Rh Z3MubyB0YWdzLm8gcmVwb3J0X3RhZ3Mubw0KZGlmZiAtLWdpdCBhL21tL2thc2FuL2h3X3RhZ3Mu YyBiL21tL2thc2FuL2h3X3RhZ3MuYw0KaW5kZXggZWQ1ZTViODMzZDYxLi40ZWE4YzM2OGI1Yjgg MTAwNjQ0DQotLS0gYS9tbS9rYXNhbi9od190YWdzLmMNCisrKyBiL21tL2thc2FuL2h3X3RhZ3Mu Yw0KQEAgLTIxNiwyOCArMjE2LDYgQEAgdm9pZCBfX2luaXQga2FzYW5faW5pdF9od190YWdzKHZv aWQpDQogCXByX2luZm8oIktlcm5lbEFkZHJlc3NTYW5pdGl6ZXIgaW5pdGlhbGl6ZWRcbiIpOw0K IH0NCiANCi12b2lkIGthc2FuX3NldF9mcmVlX2luZm8oc3RydWN0IGttZW1fY2FjaGUgKmNhY2hl LA0KLQkJCQl2b2lkICpvYmplY3QsIHU4IHRhZykNCi17DQotCXN0cnVjdCBrYXNhbl9hbGxvY19t ZXRhICphbGxvY19tZXRhOw0KLQ0KLQlhbGxvY19tZXRhID0ga2FzYW5fZ2V0X2FsbG9jX21ldGEo Y2FjaGUsIG9iamVjdCk7DQotCWlmIChhbGxvY19tZXRhKQ0KLQkJa2FzYW5fc2V0X3RyYWNrKCZh bGxvY19tZXRhLT5mcmVlX3RyYWNrWzBdLCBHRlBfTk9XQUlUKTsNCi19DQotDQotc3RydWN0IGth c2FuX3RyYWNrICprYXNhbl9nZXRfZnJlZV90cmFjayhzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUs DQotCQkJCXZvaWQgKm9iamVjdCwgdTggdGFnKQ0KLXsNCi0Jc3RydWN0IGthc2FuX2FsbG9jX21l dGEgKmFsbG9jX21ldGE7DQotDQotCWFsbG9jX21ldGEgPSBrYXNhbl9nZXRfYWxsb2NfbWV0YShj YWNoZSwgb2JqZWN0KTsNCi0JaWYgKCFhbGxvY19tZXRhKQ0KLQkJcmV0dXJuIE5VTEw7DQotDQot CXJldHVybiAmYWxsb2NfbWV0YS0+ZnJlZV90cmFja1swXTsNCi19DQotDQogdm9pZCBrYXNhbl9h bGxvY19wYWdlcyhzdHJ1Y3QgcGFnZSAqcGFnZSwgdW5zaWduZWQgaW50IG9yZGVyLCBnZnBfdCBm bGFncykNCiB7DQogCS8qDQpkaWZmIC0tZ2l0IGEvbW0va2FzYW4vcmVwb3J0X2h3X3RhZ3MuYyBi L21tL2thc2FuL3JlcG9ydF9od190YWdzLmMNCmluZGV4IDQyYjIxNjg3NTVkNi4uNWRiYmJiOTMw ZTdhIDEwMDY0NA0KLS0tIGEvbW0va2FzYW4vcmVwb3J0X2h3X3RhZ3MuYw0KKysrIGIvbW0va2Fz YW4vcmVwb3J0X2h3X3RhZ3MuYw0KQEAgLTE1LDExICsxNSw2IEBADQogDQogI2luY2x1ZGUgImth c2FuLmgiDQogDQotY29uc3QgY2hhciAqa2FzYW5fZ2V0X2J1Z190eXBlKHN0cnVjdCBrYXNhbl9h Y2Nlc3NfaW5mbyAqaW5mbykNCi17DQotCXJldHVybiAiaW52YWxpZC1hY2Nlc3MiOw0KLX0NCi0N CiB2b2lkICprYXNhbl9maW5kX2ZpcnN0X2JhZF9hZGRyKHZvaWQgKmFkZHIsIHNpemVfdCBzaXpl KQ0KIHsNCiAJcmV0dXJuIGthc2FuX3Jlc2V0X3RhZyhhZGRyKTsNCmRpZmYgLS1naXQgYS9tbS9r YXNhbi9yZXBvcnRfc3dfdGFncy5jIGIvbW0va2FzYW4vcmVwb3J0X3N3X3RhZ3MuYw0KaW5kZXgg ODIxYTE0YTE5YTkyLi5kMjI5OGMzNTc4MzQgMTAwNjQ0DQotLS0gYS9tbS9rYXNhbi9yZXBvcnRf c3dfdGFncy5jDQorKysgYi9tbS9rYXNhbi9yZXBvcnRfc3dfdGFncy5jDQpAQCAtMjksNDkgKzI5 LDYgQEANCiAjaW5jbHVkZSAia2FzYW4uaCINCiAjaW5jbHVkZSAiLi4vc2xhYi5oIg0KIA0KLWNv bnN0IGNoYXIgKmthc2FuX2dldF9idWdfdHlwZShzdHJ1Y3Qga2FzYW5fYWNjZXNzX2luZm8gKmlu Zm8pDQotew0KLSNpZmRlZiBDT05GSUdfS0FTQU5fVEFHU19JREVOVElGWQ0KLQlzdHJ1Y3Qga2Fz YW5fYWxsb2NfbWV0YSAqYWxsb2NfbWV0YTsNCi0Jc3RydWN0IGttZW1fY2FjaGUgKmNhY2hlOw0K LQlzdHJ1Y3QgcGFnZSAqcGFnZTsNCi0JY29uc3Qgdm9pZCAqYWRkcjsNCi0Jdm9pZCAqb2JqZWN0 Ow0KLQl1OCB0YWc7DQotCWludCBpOw0KLQ0KLQl0YWcgPSBnZXRfdGFnKGluZm8tPmFjY2Vzc19h ZGRyKTsNCi0JYWRkciA9IGthc2FuX3Jlc2V0X3RhZyhpbmZvLT5hY2Nlc3NfYWRkcik7DQotCXBh Z2UgPSBrYXNhbl9hZGRyX3RvX3BhZ2UoYWRkcik7DQotCWlmIChwYWdlICYmIFBhZ2VTbGFiKHBh Z2UpKSB7DQotCQljYWNoZSA9IHBhZ2UtPnNsYWJfY2FjaGU7DQotCQlvYmplY3QgPSBuZWFyZXN0 X29iaihjYWNoZSwgcGFnZSwgKHZvaWQgKilhZGRyKTsNCi0JCWFsbG9jX21ldGEgPSBrYXNhbl9n ZXRfYWxsb2NfbWV0YShjYWNoZSwgb2JqZWN0KTsNCi0NCi0JCWlmIChhbGxvY19tZXRhKSB7DQot CQkJZm9yIChpID0gMDsgaSA8IEtBU0FOX05SX0ZSRUVfU1RBQ0tTOyBpKyspIHsNCi0JCQkJaWYg KGFsbG9jX21ldGEtPmZyZWVfcG9pbnRlcl90YWdbaV0gPT0gdGFnKQ0KLQkJCQkJcmV0dXJuICJ1 c2UtYWZ0ZXItZnJlZSI7DQotCQkJfQ0KLQkJfQ0KLQkJcmV0dXJuICJvdXQtb2YtYm91bmRzIjsN Ci0JfQ0KLQ0KLSNlbmRpZg0KLQkvKg0KLQkgKiBJZiBhY2Nlc3Nfc2l6ZSBpcyBhIG5lZ2F0aXZl IG51bWJlciwgdGhlbiBpdCBoYXMgcmVhc29uIHRvIGJlDQotCSAqIGRlZmluZWQgYXMgb3V0LW9m LWJvdW5kcyBidWcgdHlwZS4NCi0JICoNCi0JICogQ2FzdGluZyBuZWdhdGl2ZSBudW1iZXJzIHRv IHNpemVfdCB3b3VsZCBpbmRlZWQgdHVybiB1cCBhcw0KLQkgKiBhIGxhcmdlIHNpemVfdCBhbmQg aXRzIHZhbHVlIHdpbGwgYmUgbGFyZ2VyIHRoYW4gVUxPTkdfTUFYLzIsDQotCSAqIHNvIHRoYXQg dGhpcyBjYW4gcXVhbGlmeSBhcyBvdXQtb2YtYm91bmRzLg0KLQkgKi8NCi0JaWYgKGluZm8tPmFj Y2Vzc19hZGRyICsgaW5mby0+YWNjZXNzX3NpemUgPCBpbmZvLT5hY2Nlc3NfYWRkcikNCi0JCXJl dHVybiAib3V0LW9mLWJvdW5kcyI7DQotDQotCXJldHVybiAiaW52YWxpZC1hY2Nlc3MiOw0KLX0N Ci0NCiB2b2lkICprYXNhbl9maW5kX2ZpcnN0X2JhZF9hZGRyKHZvaWQgKmFkZHIsIHNpemVfdCBz aXplKQ0KIHsNCiAJdTggdGFnID0gZ2V0X3RhZyhhZGRyKTsNCmRpZmYgLS1naXQgYS9tbS9rYXNh bi9yZXBvcnRfdGFncy5jIGIvbW0va2FzYW4vcmVwb3J0X3RhZ3MuYw0KbmV3IGZpbGUgbW9kZSAx MDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMC4uOGEzMTlmYzE2ZGFiDQotLS0gL2Rldi9udWxsDQor KysgYi9tbS9rYXNhbi9yZXBvcnRfdGFncy5jDQpAQCAtMCwwICsxLDUxIEBADQorLy8gU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjANCisvKg0KKyAqIENvcHlyaWdodCAoYykgMjAxNCBT YW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLg0KKyAqIENvcHlyaWdodCAoYykgMjAyMCBHb29n bGUsIEluYy4NCisgKi8NCisNCisjaW5jbHVkZSAia2FzYW4uaCINCisjaW5jbHVkZSAiLi4vc2xh Yi5oIg0KKw0KK2NvbnN0IGNoYXIgKmthc2FuX2dldF9idWdfdHlwZShzdHJ1Y3Qga2FzYW5fYWNj ZXNzX2luZm8gKmluZm8pDQorew0KKyNpZmRlZiBDT05GSUdfS0FTQU5fVEFHU19JREVOVElGWQ0K KwlzdHJ1Y3Qga2FzYW5fYWxsb2NfbWV0YSAqYWxsb2NfbWV0YTsNCisJc3RydWN0IGttZW1fY2Fj aGUgKmNhY2hlOw0KKwlzdHJ1Y3QgcGFnZSAqcGFnZTsNCisJY29uc3Qgdm9pZCAqYWRkcjsNCisJ dm9pZCAqb2JqZWN0Ow0KKwl1OCB0YWc7DQorCWludCBpOw0KKw0KKwl0YWcgPSBnZXRfdGFnKGlu Zm8tPmFjY2Vzc19hZGRyKTsNCisJYWRkciA9IGthc2FuX3Jlc2V0X3RhZyhpbmZvLT5hY2Nlc3Nf YWRkcik7DQorCXBhZ2UgPSBrYXNhbl9hZGRyX3RvX3BhZ2UoYWRkcik7DQorCWlmIChwYWdlICYm IFBhZ2VTbGFiKHBhZ2UpKSB7DQorCQljYWNoZSA9IHBhZ2UtPnNsYWJfY2FjaGU7DQorCQlvYmpl Y3QgPSBuZWFyZXN0X29iaihjYWNoZSwgcGFnZSwgKHZvaWQgKilhZGRyKTsNCisJCWFsbG9jX21l dGEgPSBrYXNhbl9nZXRfYWxsb2NfbWV0YShjYWNoZSwgb2JqZWN0KTsNCisNCisJCWlmIChhbGxv Y19tZXRhKSB7DQorCQkJZm9yIChpID0gMDsgaSA8IEtBU0FOX05SX0ZSRUVfU1RBQ0tTOyBpKysp IHsNCisJCQkJaWYgKGFsbG9jX21ldGEtPmZyZWVfcG9pbnRlcl90YWdbaV0gPT0gdGFnKQ0KKwkJ CQkJcmV0dXJuICJ1c2UtYWZ0ZXItZnJlZSI7DQorCQkJfQ0KKwkJfQ0KKwkJcmV0dXJuICJvdXQt b2YtYm91bmRzIjsNCisJfQ0KKyNlbmRpZg0KKw0KKwkvKg0KKwkgKiBJZiBhY2Nlc3Nfc2l6ZSBp cyBhIG5lZ2F0aXZlIG51bWJlciwgdGhlbiBpdCBoYXMgcmVhc29uIHRvIGJlDQorCSAqIGRlZmlu ZWQgYXMgb3V0LW9mLWJvdW5kcyBidWcgdHlwZS4NCisJICoNCisJICogQ2FzdGluZyBuZWdhdGl2 ZSBudW1iZXJzIHRvIHNpemVfdCB3b3VsZCBpbmRlZWQgdHVybiB1cCBhcw0KKwkgKiBhIGxhcmdl IHNpemVfdCBhbmQgaXRzIHZhbHVlIHdpbGwgYmUgbGFyZ2VyIHRoYW4gVUxPTkdfTUFYLzIsDQor CSAqIHNvIHRoYXQgdGhpcyBjYW4gcXVhbGlmeSBhcyBvdXQtb2YtYm91bmRzLg0KKwkgKi8NCisJ aWYgKGluZm8tPmFjY2Vzc19hZGRyICsgaW5mby0+YWNjZXNzX3NpemUgPCBpbmZvLT5hY2Nlc3Nf YWRkcikNCisJCXJldHVybiAib3V0LW9mLWJvdW5kcyI7DQorDQorCXJldHVybiAiaW52YWxpZC1h Y2Nlc3MiOw0KK30NCmRpZmYgLS1naXQgYS9tbS9rYXNhbi9zd190YWdzLmMgYi9tbS9rYXNhbi9z d190YWdzLmMNCmluZGV4IGRkMDVlNmM4MDFmYS4uYmQzZjU0MGZlYjQ3IDEwMDY0NA0KLS0tIGEv bW0va2FzYW4vc3dfdGFncy5jDQorKysgYi9tbS9rYXNhbi9zd190YWdzLmMNCkBAIC0xNjcsNDcg KzE2Nyw2IEBAIHZvaWQgX19od2FzYW5fdGFnX21lbW9yeSh1bnNpZ25lZCBsb25nIGFkZHIsIHU4 IHRhZywgdW5zaWduZWQgbG9uZyBzaXplKQ0KIH0NCiBFWFBPUlRfU1lNQk9MKF9faHdhc2FuX3Rh Z19tZW1vcnkpOw0KIA0KLXZvaWQga2FzYW5fc2V0X2ZyZWVfaW5mbyhzdHJ1Y3Qga21lbV9jYWNo ZSAqY2FjaGUsDQotCQkJCXZvaWQgKm9iamVjdCwgdTggdGFnKQ0KLXsNCi0Jc3RydWN0IGthc2Fu X2FsbG9jX21ldGEgKmFsbG9jX21ldGE7DQotCXU4IGlkeCA9IDA7DQotDQotCWFsbG9jX21ldGEg PSBrYXNhbl9nZXRfYWxsb2NfbWV0YShjYWNoZSwgb2JqZWN0KTsNCi0JaWYgKCFhbGxvY19tZXRh KQ0KLQkJcmV0dXJuOw0KLQ0KLSNpZmRlZiBDT05GSUdfS0FTQU5fVEFHU19JREVOVElGWQ0KLQlp ZHggPSBhbGxvY19tZXRhLT5mcmVlX3RyYWNrX2lkeDsNCi0JYWxsb2NfbWV0YS0+ZnJlZV9wb2lu dGVyX3RhZ1tpZHhdID0gdGFnOw0KLQlhbGxvY19tZXRhLT5mcmVlX3RyYWNrX2lkeCA9IChpZHgg KyAxKSAlIEtBU0FOX05SX0ZSRUVfU1RBQ0tTOw0KLSNlbmRpZg0KLQ0KLQlrYXNhbl9zZXRfdHJh Y2soJmFsbG9jX21ldGEtPmZyZWVfdHJhY2tbaWR4XSwgR0ZQX05PV0FJVCk7DQotfQ0KLQ0KLXN0 cnVjdCBrYXNhbl90cmFjayAqa2FzYW5fZ2V0X2ZyZWVfdHJhY2soc3RydWN0IGttZW1fY2FjaGUg KmNhY2hlLA0KLQkJCQl2b2lkICpvYmplY3QsIHU4IHRhZykNCi17DQotCXN0cnVjdCBrYXNhbl9h bGxvY19tZXRhICphbGxvY19tZXRhOw0KLQlpbnQgaSA9IDA7DQotDQotCWFsbG9jX21ldGEgPSBr YXNhbl9nZXRfYWxsb2NfbWV0YShjYWNoZSwgb2JqZWN0KTsNCi0JaWYgKCFhbGxvY19tZXRhKQ0K LQkJcmV0dXJuIE5VTEw7DQotDQotI2lmZGVmIENPTkZJR19LQVNBTl9UQUdTX0lERU5USUZZDQot CWZvciAoaSA9IDA7IGkgPCBLQVNBTl9OUl9GUkVFX1NUQUNLUzsgaSsrKSB7DQotCQlpZiAoYWxs b2NfbWV0YS0+ZnJlZV9wb2ludGVyX3RhZ1tpXSA9PSB0YWcpDQotCQkJYnJlYWs7DQotCX0NCi0J aWYgKGkgPT0gS0FTQU5fTlJfRlJFRV9TVEFDS1MpDQotCQlpID0gYWxsb2NfbWV0YS0+ZnJlZV90 cmFja19pZHg7DQotI2VuZGlmDQotDQotCXJldHVybiAmYWxsb2NfbWV0YS0+ZnJlZV90cmFja1tp XTsNCi19DQotDQogdm9pZCBrYXNhbl90YWdfbWlzbWF0Y2godW5zaWduZWQgbG9uZyBhZGRyLCB1 bnNpZ25lZCBsb25nIGFjY2Vzc19pbmZvLA0KIAkJCXVuc2lnbmVkIGxvbmcgcmV0X2lwKQ0KIHsN CmRpZmYgLS1naXQgYS9tbS9rYXNhbi90YWdzLmMgYi9tbS9rYXNhbi90YWdzLmMNCm5ldyBmaWxl IG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwMDAwMDAuLjhmNDhiOTUwMmExNw0KLS0tIC9kZXYv bnVsbA0KKysrIGIvbW0va2FzYW4vdGFncy5jDQpAQCAtMCwwICsxLDU5IEBADQorLy8gU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjANCisvKg0KKyAqIFRoaXMgZmlsZSBjb250YWlucyBj b21tb24gdGFnLWJhc2VkIEtBU0FOIGNvZGUuDQorICoNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTgg R29vZ2xlLCBJbmMuDQorICogQ29weXJpZ2h0IChjKSAyMDIwIEdvb2dsZSwgSW5jLg0KKyAqLw0K Kw0KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+DQorI2luY2x1ZGUgPGxpbnV4L2thc2FuLmg+DQor I2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPg0KKyNpbmNsdWRlIDxsaW51eC9tZW1vcnkuaD4NCisj aW5jbHVkZSA8bGludXgvbW0uaD4NCisjaW5jbHVkZSA8bGludXgvc3RhdGljX2tleS5oPg0KKyNp bmNsdWRlIDxsaW51eC9zdHJpbmcuaD4NCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4NCisNCisj aW5jbHVkZSAia2FzYW4uaCINCisNCit2b2lkIGthc2FuX3NldF9mcmVlX2luZm8oc3RydWN0IGtt ZW1fY2FjaGUgKmNhY2hlLA0KKwkJCQl2b2lkICpvYmplY3QsIHU4IHRhZykNCit7DQorCXN0cnVj dCBrYXNhbl9hbGxvY19tZXRhICphbGxvY19tZXRhOw0KKwl1OCBpZHggPSAwOw0KKw0KKwlhbGxv Y19tZXRhID0ga2FzYW5fZ2V0X2FsbG9jX21ldGEoY2FjaGUsIG9iamVjdCk7DQorCWlmICghYWxs b2NfbWV0YSkNCisJCXJldHVybjsNCisNCisjaWZkZWYgQ09ORklHX0tBU0FOX1RBR1NfSURFTlRJ RlkNCisJaWR4ID0gYWxsb2NfbWV0YS0+ZnJlZV90cmFja19pZHg7DQorCWFsbG9jX21ldGEtPmZy ZWVfcG9pbnRlcl90YWdbaWR4XSA9IHRhZzsNCisJYWxsb2NfbWV0YS0+ZnJlZV90cmFja19pZHgg PSAoaWR4ICsgMSkgJSBLQVNBTl9OUl9GUkVFX1NUQUNLUzsNCisjZW5kaWYNCisNCisJa2FzYW5f c2V0X3RyYWNrKCZhbGxvY19tZXRhLT5mcmVlX3RyYWNrW2lkeF0sIEdGUF9OT1dBSVQpOw0KK30N CisNCitzdHJ1Y3Qga2FzYW5fdHJhY2sgKmthc2FuX2dldF9mcmVlX3RyYWNrKHN0cnVjdCBrbWVt X2NhY2hlICpjYWNoZSwNCisJCQkJdm9pZCAqb2JqZWN0LCB1OCB0YWcpDQorew0KKwlzdHJ1Y3Qg a2FzYW5fYWxsb2NfbWV0YSAqYWxsb2NfbWV0YTsNCisJaW50IGkgPSAwOw0KKw0KKwlhbGxvY19t ZXRhID0ga2FzYW5fZ2V0X2FsbG9jX21ldGEoY2FjaGUsIG9iamVjdCk7DQorCWlmICghYWxsb2Nf bWV0YSkNCisJCXJldHVybiBOVUxMOw0KKw0KKyNpZmRlZiBDT05GSUdfS0FTQU5fVEFHU19JREVO VElGWQ0KKwlmb3IgKGkgPSAwOyBpIDwgS0FTQU5fTlJfRlJFRV9TVEFDS1M7IGkrKykgew0KKwkJ aWYgKGFsbG9jX21ldGEtPmZyZWVfcG9pbnRlcl90YWdbaV0gPT0gdGFnKQ0KKwkJCWJyZWFrOw0K Kwl9DQorCWlmIChpID09IEtBU0FOX05SX0ZSRUVfU1RBQ0tTKQ0KKwkJaSA9IGFsbG9jX21ldGEt PmZyZWVfdHJhY2tfaWR4Ow0KKyNlbmRpZg0KKw0KKwlyZXR1cm4gJmFsbG9jX21ldGEtPmZyZWVf dHJhY2tbaV07DQorfQ0KLS0gDQoyLjE4LjANCg==