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 CC0F6C49EA3 for ; Sun, 20 Jun 2021 11:48:32 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 540B461057 for ; Sun, 20 Jun 2021 11:48:32 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 540B461057 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 EB6FD8D0001; Sun, 20 Jun 2021 07:48:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E66966B0074; Sun, 20 Jun 2021 07:48:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D0AF58D0001; Sun, 20 Jun 2021 07:48:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0026.hostedemail.com [216.40.44.26]) by kanga.kvack.org (Postfix) with ESMTP id 9C1EA6B0073 for ; Sun, 20 Jun 2021 07:48:31 -0400 (EDT) Received: from smtpin35.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 3B78110FD9 for ; Sun, 20 Jun 2021 11:48:31 +0000 (UTC) X-FDA: 78273929622.35.55ABF5E Received: from mailgw01.mediatek.com (mailgw01.mediatek.com [216.200.240.184]) by imf21.hostedemail.com (Postfix) with ESMTP id 983F5E0004F9 for ; Sun, 20 Jun 2021 11:48:30 +0000 (UTC) X-UUID: 1d847ab9fae04d14b585f3c29538fa5d-20210620 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=grYPIWnX/epXg43vfPwR0XP8h9dx/G8CncYBLCqiBvE=; b=nFf04fxdbW6Kkqo84Qgqv0OdLVZvyztzN5TXMK0MAIpRdFwLi7XKmQANwcpNQJmyOX/cL1aR0PBuDqSaU66FD1XK8/Ox+bTSepiO2pop6ucquFnHqOe44hm8GgJz16b2FQteQNN6FsJnQa4PEgh6Mk+7BXk4GvYCY5hffcAQhNU=; X-UUID: 1d847ab9fae04d14b585f3c29538fa5d-20210620 Received: from mtkcas68.mediatek.inc [(172.29.94.19)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1923012421; Sun, 20 Jun 2021 04:48:24 -0700 Received: from MTKMBS01N1.mediatek.inc (172.21.101.68) by MTKMBS62DR.mediatek.inc (172.29.94.18) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sun, 20 Jun 2021 04:48:22 -0700 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs01n1.mediatek.inc (172.21.101.68) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sun, 20 Jun 2021 19:48:09 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sun, 20 Jun 2021 19:48:09 +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 v3 2/3] kasan: integrate the common part of two KASAN tag-based modes Date: Sun, 20 Jun 2021 19:47:55 +0800 Message-ID: <20210620114756.31304-3-Kuan-Ying.Lee@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20210620114756.31304-1-Kuan-Ying.Lee@mediatek.com> References: <20210620114756.31304-1-Kuan-Ying.Lee@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 983F5E0004F9 X-Stat-Signature: uky1gc9apfsjqx8z87kmww8khxgs9y3k Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=mediatek.com header.s=dk header.b=nFf04fxd; dmarc=pass (policy=none) header.from=mediatek.com; spf=pass (imf21.hostedemail.com: domain of kuan-ying.lee@mediatek.com designates 216.200.240.184 as permitted sender) smtp.mailfrom=kuan-ying.lee@mediatek.com X-HE-Tag: 1624189710-725637 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 CiAgIGludG8gdGFncy5jDQoyLiBNb3ZlIGthc2FuX2dldF9idWdfdHlwZSgpIHRvIGhlYWRlciBm aWxlDQoNClNpZ25lZC1vZmYtYnk6IEt1YW4tWWluZyBMZWUgPEt1YW4tWWluZy5MZWVAbWVkaWF0 ZWsuY29tPg0KU3VnZ2VzdGVkLWJ5OiBNYXJjbyBFbHZlciA8ZWx2ZXJAZ29vZ2xlLmNvbT4NClN1 Z2dlc3RlZC1ieTogR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVna2hAbGludXhmb3VuZGF0aW9uLm9y Zz4NCkNjOiBBbmRyZXkgUnlhYmluaW4gPHJ5YWJpbmluLmEuYUBnbWFpbC5jb20+DQpDYzogQWxl eGFuZGVyIFBvdGFwZW5rbyA8Z2xpZGVyQGdvb2dsZS5jb20+DQpDYzogQW5kcmV5IEtvbm92YWxv diA8YW5kcmV5a252bEBnbWFpbC5jb20+DQpDYzogRG1pdHJ5IFZ5dWtvdiA8ZHZ5dWtvdkBnb29n bGUuY29tPg0KQ2M6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlvbi5vcmc+DQot LS0NCiBtbS9rYXNhbi9NYWtlZmlsZSAgICAgICAgIHwgIDQgKy0tDQogbW0va2FzYW4vaHdfdGFn cy5jICAgICAgICB8IDIyIC0tLS0tLS0tLS0tLS0tLQ0KIG1tL2thc2FuL3JlcG9ydF9od190YWdz LmMgfCAgNiArLS0tDQogbW0va2FzYW4vcmVwb3J0X3N3X3RhZ3MuYyB8IDQ2ICstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KIG1tL2thc2FuL3JlcG9ydF90YWdzLmggICAgfCA1NSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCiBtbS9rYXNhbi9zd190YWdzLmMgICAg ICAgIHwgNDEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogbW0va2FzYW4vdGFncy5jICAg ICAgICAgICB8IDU5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KIDcg ZmlsZXMgY2hhbmdlZCwgMTE4IGluc2VydGlvbnMoKyksIDExNSBkZWxldGlvbnMoLSkNCiBjcmVh dGUgbW9kZSAxMDA2NDQgbW0va2FzYW4vcmVwb3J0X3RhZ3MuaA0KIGNyZWF0ZSBtb2RlIDEwMDY0 NCBtbS9rYXNhbi90YWdzLmMNCg0KZGlmZiAtLWdpdCBhL21tL2thc2FuL01ha2VmaWxlIGIvbW0v a2FzYW4vTWFrZWZpbGUNCmluZGV4IDlmZTM5YTY2Mzg4YS4uNjM0ZGU2YzFkYTliIDEwMDY0NA0K LS0tIGEvbW0va2FzYW4vTWFrZWZpbGUNCisrKyBiL21tL2thc2FuL01ha2VmaWxlDQpAQCAtMzcs NSArMzcsNSBAQCBDRkxBR1Nfc3dfdGFncy5vIDo9ICQoQ0NfRkxBR1NfS0FTQU5fUlVOVElNRSkN CiANCiBvYmotJChDT05GSUdfS0FTQU4pIDo9IGNvbW1vbi5vIHJlcG9ydC5vDQogb2JqLSQoQ09O RklHX0tBU0FOX0dFTkVSSUMpICs9IGluaXQubyBnZW5lcmljLm8gcmVwb3J0X2dlbmVyaWMubyBz aGFkb3cubyBxdWFyYW50aW5lLm8NCi1vYmotJChDT05GSUdfS0FTQU5fSFdfVEFHUykgKz0gaHdf dGFncy5vIHJlcG9ydF9od190YWdzLm8NCi1vYmotJChDT05GSUdfS0FTQU5fU1dfVEFHUykgKz0g aW5pdC5vIHJlcG9ydF9zd190YWdzLm8gc2hhZG93Lm8gc3dfdGFncy5vDQorb2JqLSQoQ09ORklH X0tBU0FOX0hXX1RBR1MpICs9IGh3X3RhZ3MubyByZXBvcnRfaHdfdGFncy5vIHRhZ3Mubw0KK29i ai0kKENPTkZJR19LQVNBTl9TV19UQUdTKSArPSBpbml0Lm8gcmVwb3J0X3N3X3RhZ3MubyBzaGFk b3cubyBzd190YWdzLm8gdGFncy5vDQpkaWZmIC0tZ2l0IGEvbW0va2FzYW4vaHdfdGFncy5jIGIv bW0va2FzYW4vaHdfdGFncy5jDQppbmRleCBlZDVlNWI4MzNkNjEuLjRlYThjMzY4YjViOCAxMDA2 NDQNCi0tLSBhL21tL2thc2FuL2h3X3RhZ3MuYw0KKysrIGIvbW0va2FzYW4vaHdfdGFncy5jDQpA QCAtMjE2LDI4ICsyMTYsNiBAQCB2b2lkIF9faW5pdCBrYXNhbl9pbml0X2h3X3RhZ3Modm9pZCkN CiAJcHJfaW5mbygiS2VybmVsQWRkcmVzc1Nhbml0aXplciBpbml0aWFsaXplZFxuIik7DQogfQ0K IA0KLXZvaWQga2FzYW5fc2V0X2ZyZWVfaW5mbyhzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUsDQot CQkJCXZvaWQgKm9iamVjdCwgdTggdGFnKQ0KLXsNCi0Jc3RydWN0IGthc2FuX2FsbG9jX21ldGEg KmFsbG9jX21ldGE7DQotDQotCWFsbG9jX21ldGEgPSBrYXNhbl9nZXRfYWxsb2NfbWV0YShjYWNo ZSwgb2JqZWN0KTsNCi0JaWYgKGFsbG9jX21ldGEpDQotCQlrYXNhbl9zZXRfdHJhY2soJmFsbG9j X21ldGEtPmZyZWVfdHJhY2tbMF0sIEdGUF9OT1dBSVQpOw0KLX0NCi0NCi1zdHJ1Y3Qga2FzYW5f dHJhY2sgKmthc2FuX2dldF9mcmVlX3RyYWNrKHN0cnVjdCBrbWVtX2NhY2hlICpjYWNoZSwNCi0J CQkJdm9pZCAqb2JqZWN0LCB1OCB0YWcpDQotew0KLQlzdHJ1Y3Qga2FzYW5fYWxsb2NfbWV0YSAq YWxsb2NfbWV0YTsNCi0NCi0JYWxsb2NfbWV0YSA9IGthc2FuX2dldF9hbGxvY19tZXRhKGNhY2hl LCBvYmplY3QpOw0KLQlpZiAoIWFsbG9jX21ldGEpDQotCQlyZXR1cm4gTlVMTDsNCi0NCi0JcmV0 dXJuICZhbGxvY19tZXRhLT5mcmVlX3RyYWNrWzBdOw0KLX0NCi0NCiB2b2lkIGthc2FuX2FsbG9j X3BhZ2VzKHN0cnVjdCBwYWdlICpwYWdlLCB1bnNpZ25lZCBpbnQgb3JkZXIsIGdmcF90IGZsYWdz KQ0KIHsNCiAJLyoNCmRpZmYgLS1naXQgYS9tbS9rYXNhbi9yZXBvcnRfaHdfdGFncy5jIGIvbW0v a2FzYW4vcmVwb3J0X2h3X3RhZ3MuYw0KaW5kZXggNDJiMjE2ODc1NWQ2Li5lZjVlNzM3OGYzYWEg MTAwNjQ0DQotLS0gYS9tbS9rYXNhbi9yZXBvcnRfaHdfdGFncy5jDQorKysgYi9tbS9rYXNhbi9y ZXBvcnRfaHdfdGFncy5jDQpAQCAtMTQsMTEgKzE0LDcgQEANCiAjaW5jbHVkZSA8bGludXgvdHlw ZXMuaD4NCiANCiAjaW5jbHVkZSAia2FzYW4uaCINCi0NCi1jb25zdCBjaGFyICprYXNhbl9nZXRf YnVnX3R5cGUoc3RydWN0IGthc2FuX2FjY2Vzc19pbmZvICppbmZvKQ0KLXsNCi0JcmV0dXJuICJp bnZhbGlkLWFjY2VzcyI7DQotfQ0KKyNpbmNsdWRlICJyZXBvcnRfdGFncy5oIg0KIA0KIHZvaWQg Kmthc2FuX2ZpbmRfZmlyc3RfYmFkX2FkZHIodm9pZCAqYWRkciwgc2l6ZV90IHNpemUpDQogew0K ZGlmZiAtLWdpdCBhL21tL2thc2FuL3JlcG9ydF9zd190YWdzLmMgYi9tbS9rYXNhbi9yZXBvcnRf c3dfdGFncy5jDQppbmRleCA4MjFhMTRhMTlhOTIuLmQ5NjVhMTcwMDgzZSAxMDA2NDQNCi0tLSBh L21tL2thc2FuL3JlcG9ydF9zd190YWdzLmMNCisrKyBiL21tL2thc2FuL3JlcG9ydF9zd190YWdz LmMNCkBAIC0yNiw1MSArMjYsNyBAQA0KIA0KICNpbmNsdWRlIDxhc20vc2VjdGlvbnMuaD4NCiAN Ci0jaW5jbHVkZSAia2FzYW4uaCINCi0jaW5jbHVkZSAiLi4vc2xhYi5oIg0KLQ0KLWNvbnN0IGNo YXIgKmthc2FuX2dldF9idWdfdHlwZShzdHJ1Y3Qga2FzYW5fYWNjZXNzX2luZm8gKmluZm8pDQot ew0KLSNpZmRlZiBDT05GSUdfS0FTQU5fVEFHU19JREVOVElGWQ0KLQlzdHJ1Y3Qga2FzYW5fYWxs b2NfbWV0YSAqYWxsb2NfbWV0YTsNCi0Jc3RydWN0IGttZW1fY2FjaGUgKmNhY2hlOw0KLQlzdHJ1 Y3QgcGFnZSAqcGFnZTsNCi0JY29uc3Qgdm9pZCAqYWRkcjsNCi0Jdm9pZCAqb2JqZWN0Ow0KLQl1 OCB0YWc7DQotCWludCBpOw0KLQ0KLQl0YWcgPSBnZXRfdGFnKGluZm8tPmFjY2Vzc19hZGRyKTsN Ci0JYWRkciA9IGthc2FuX3Jlc2V0X3RhZyhpbmZvLT5hY2Nlc3NfYWRkcik7DQotCXBhZ2UgPSBr YXNhbl9hZGRyX3RvX3BhZ2UoYWRkcik7DQotCWlmIChwYWdlICYmIFBhZ2VTbGFiKHBhZ2UpKSB7 DQotCQljYWNoZSA9IHBhZ2UtPnNsYWJfY2FjaGU7DQotCQlvYmplY3QgPSBuZWFyZXN0X29iaihj YWNoZSwgcGFnZSwgKHZvaWQgKilhZGRyKTsNCi0JCWFsbG9jX21ldGEgPSBrYXNhbl9nZXRfYWxs b2NfbWV0YShjYWNoZSwgb2JqZWN0KTsNCi0NCi0JCWlmIChhbGxvY19tZXRhKSB7DQotCQkJZm9y IChpID0gMDsgaSA8IEtBU0FOX05SX0ZSRUVfU1RBQ0tTOyBpKyspIHsNCi0JCQkJaWYgKGFsbG9j X21ldGEtPmZyZWVfcG9pbnRlcl90YWdbaV0gPT0gdGFnKQ0KLQkJCQkJcmV0dXJuICJ1c2UtYWZ0 ZXItZnJlZSI7DQotCQkJfQ0KLQkJfQ0KLQkJcmV0dXJuICJvdXQtb2YtYm91bmRzIjsNCi0JfQ0K LQ0KLSNlbmRpZg0KLQkvKg0KLQkgKiBJZiBhY2Nlc3Nfc2l6ZSBpcyBhIG5lZ2F0aXZlIG51bWJl ciwgdGhlbiBpdCBoYXMgcmVhc29uIHRvIGJlDQotCSAqIGRlZmluZWQgYXMgb3V0LW9mLWJvdW5k cyBidWcgdHlwZS4NCi0JICoNCi0JICogQ2FzdGluZyBuZWdhdGl2ZSBudW1iZXJzIHRvIHNpemVf dCB3b3VsZCBpbmRlZWQgdHVybiB1cCBhcw0KLQkgKiBhIGxhcmdlIHNpemVfdCBhbmQgaXRzIHZh bHVlIHdpbGwgYmUgbGFyZ2VyIHRoYW4gVUxPTkdfTUFYLzIsDQotCSAqIHNvIHRoYXQgdGhpcyBj YW4gcXVhbGlmeSBhcyBvdXQtb2YtYm91bmRzLg0KLQkgKi8NCi0JaWYgKGluZm8tPmFjY2Vzc19h ZGRyICsgaW5mby0+YWNjZXNzX3NpemUgPCBpbmZvLT5hY2Nlc3NfYWRkcikNCi0JCXJldHVybiAi b3V0LW9mLWJvdW5kcyI7DQotDQotCXJldHVybiAiaW52YWxpZC1hY2Nlc3MiOw0KLX0NCisjaW5j bHVkZSAicmVwb3J0X3RhZ3MuaCINCiANCiB2b2lkICprYXNhbl9maW5kX2ZpcnN0X2JhZF9hZGRy KHZvaWQgKmFkZHIsIHNpemVfdCBzaXplKQ0KIHsNCmRpZmYgLS1naXQgYS9tbS9rYXNhbi9yZXBv cnRfdGFncy5oIGIvbW0va2FzYW4vcmVwb3J0X3RhZ3MuaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQN CmluZGV4IDAwMDAwMDAwMDAwMC4uMWNiODcyMTc3OTA0DQotLS0gL2Rldi9udWxsDQorKysgYi9t bS9rYXNhbi9yZXBvcnRfdGFncy5oDQpAQCAtMCwwICsxLDU1IEBADQorLyogU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEdQTC0yLjAgKi8NCisvKg0KKyAqIENvcHlyaWdodCAoYykgMjAxNCBTYW1z dW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLg0KKyAqIENvcHlyaWdodCAoYykgMjAyMCBHb29nbGUs IEluYy4NCisgKi8NCisjaWZuZGVmIF9fTU1fS0FTQU5fUkVQT1JUX1RBR1NfSA0KKyNkZWZpbmUg X19NTV9LQVNBTl9SRVBPUlRfVEFHU19IDQorDQorI2luY2x1ZGUgImthc2FuLmgiDQorI2luY2x1 ZGUgIi4uL3NsYWIuaCINCisNCitjb25zdCBjaGFyICprYXNhbl9nZXRfYnVnX3R5cGUoc3RydWN0 IGthc2FuX2FjY2Vzc19pbmZvICppbmZvKQ0KK3sNCisjaWZkZWYgQ09ORklHX0tBU0FOX1RBR1Nf SURFTlRJRlkNCisJc3RydWN0IGthc2FuX2FsbG9jX21ldGEgKmFsbG9jX21ldGE7DQorCXN0cnVj dCBrbWVtX2NhY2hlICpjYWNoZTsNCisJc3RydWN0IHBhZ2UgKnBhZ2U7DQorCWNvbnN0IHZvaWQg KmFkZHI7DQorCXZvaWQgKm9iamVjdDsNCisJdTggdGFnOw0KKwlpbnQgaTsNCisNCisJdGFnID0g Z2V0X3RhZyhpbmZvLT5hY2Nlc3NfYWRkcik7DQorCWFkZHIgPSBrYXNhbl9yZXNldF90YWcoaW5m by0+YWNjZXNzX2FkZHIpOw0KKwlwYWdlID0ga2FzYW5fYWRkcl90b19wYWdlKGFkZHIpOw0KKwlp ZiAocGFnZSAmJiBQYWdlU2xhYihwYWdlKSkgew0KKwkJY2FjaGUgPSBwYWdlLT5zbGFiX2NhY2hl Ow0KKwkJb2JqZWN0ID0gbmVhcmVzdF9vYmooY2FjaGUsIHBhZ2UsICh2b2lkICopYWRkcik7DQor CQlhbGxvY19tZXRhID0ga2FzYW5fZ2V0X2FsbG9jX21ldGEoY2FjaGUsIG9iamVjdCk7DQorDQor CQlpZiAoYWxsb2NfbWV0YSkgew0KKwkJCWZvciAoaSA9IDA7IGkgPCBLQVNBTl9OUl9GUkVFX1NU QUNLUzsgaSsrKSB7DQorCQkJCWlmIChhbGxvY19tZXRhLT5mcmVlX3BvaW50ZXJfdGFnW2ldID09 IHRhZykNCisJCQkJCXJldHVybiAidXNlLWFmdGVyLWZyZWUiOw0KKwkJCX0NCisJCX0NCisJCXJl dHVybiAib3V0LW9mLWJvdW5kcyI7DQorCX0NCisjZW5kaWYNCisNCisJLyoNCisJICogSWYgYWNj ZXNzX3NpemUgaXMgYSBuZWdhdGl2ZSBudW1iZXIsIHRoZW4gaXQgaGFzIHJlYXNvbiB0byBiZQ0K KwkgKiBkZWZpbmVkIGFzIG91dC1vZi1ib3VuZHMgYnVnIHR5cGUuDQorCSAqDQorCSAqIENhc3Rp bmcgbmVnYXRpdmUgbnVtYmVycyB0byBzaXplX3Qgd291bGQgaW5kZWVkIHR1cm4gdXAgYXMNCisJ ICogYSBsYXJnZSBzaXplX3QgYW5kIGl0cyB2YWx1ZSB3aWxsIGJlIGxhcmdlciB0aGFuIFVMT05H X01BWC8yLA0KKwkgKiBzbyB0aGF0IHRoaXMgY2FuIHF1YWxpZnkgYXMgb3V0LW9mLWJvdW5kcy4N CisJICovDQorCWlmIChpbmZvLT5hY2Nlc3NfYWRkciArIGluZm8tPmFjY2Vzc19zaXplIDwgaW5m by0+YWNjZXNzX2FkZHIpDQorCQlyZXR1cm4gIm91dC1vZi1ib3VuZHMiOw0KKw0KKwlyZXR1cm4g ImludmFsaWQtYWNjZXNzIjsNCit9DQorDQorI2VuZGlmDQpkaWZmIC0tZ2l0IGEvbW0va2FzYW4v c3dfdGFncy5jIGIvbW0va2FzYW4vc3dfdGFncy5jDQppbmRleCBkZDA1ZTZjODAxZmEuLmJkM2Y1 NDBmZWI0NyAxMDA2NDQNCi0tLSBhL21tL2thc2FuL3N3X3RhZ3MuYw0KKysrIGIvbW0va2FzYW4v c3dfdGFncy5jDQpAQCAtMTY3LDQ3ICsxNjcsNiBAQCB2b2lkIF9faHdhc2FuX3RhZ19tZW1vcnko dW5zaWduZWQgbG9uZyBhZGRyLCB1OCB0YWcsIHVuc2lnbmVkIGxvbmcgc2l6ZSkNCiB9DQogRVhQ T1JUX1NZTUJPTChfX2h3YXNhbl90YWdfbWVtb3J5KTsNCiANCi12b2lkIGthc2FuX3NldF9mcmVl X2luZm8oc3RydWN0IGttZW1fY2FjaGUgKmNhY2hlLA0KLQkJCQl2b2lkICpvYmplY3QsIHU4IHRh ZykNCi17DQotCXN0cnVjdCBrYXNhbl9hbGxvY19tZXRhICphbGxvY19tZXRhOw0KLQl1OCBpZHgg PSAwOw0KLQ0KLQlhbGxvY19tZXRhID0ga2FzYW5fZ2V0X2FsbG9jX21ldGEoY2FjaGUsIG9iamVj dCk7DQotCWlmICghYWxsb2NfbWV0YSkNCi0JCXJldHVybjsNCi0NCi0jaWZkZWYgQ09ORklHX0tB U0FOX1RBR1NfSURFTlRJRlkNCi0JaWR4ID0gYWxsb2NfbWV0YS0+ZnJlZV90cmFja19pZHg7DQot CWFsbG9jX21ldGEtPmZyZWVfcG9pbnRlcl90YWdbaWR4XSA9IHRhZzsNCi0JYWxsb2NfbWV0YS0+ ZnJlZV90cmFja19pZHggPSAoaWR4ICsgMSkgJSBLQVNBTl9OUl9GUkVFX1NUQUNLUzsNCi0jZW5k aWYNCi0NCi0Ja2FzYW5fc2V0X3RyYWNrKCZhbGxvY19tZXRhLT5mcmVlX3RyYWNrW2lkeF0sIEdG UF9OT1dBSVQpOw0KLX0NCi0NCi1zdHJ1Y3Qga2FzYW5fdHJhY2sgKmthc2FuX2dldF9mcmVlX3Ry YWNrKHN0cnVjdCBrbWVtX2NhY2hlICpjYWNoZSwNCi0JCQkJdm9pZCAqb2JqZWN0LCB1OCB0YWcp DQotew0KLQlzdHJ1Y3Qga2FzYW5fYWxsb2NfbWV0YSAqYWxsb2NfbWV0YTsNCi0JaW50IGkgPSAw Ow0KLQ0KLQlhbGxvY19tZXRhID0ga2FzYW5fZ2V0X2FsbG9jX21ldGEoY2FjaGUsIG9iamVjdCk7 DQotCWlmICghYWxsb2NfbWV0YSkNCi0JCXJldHVybiBOVUxMOw0KLQ0KLSNpZmRlZiBDT05GSUdf S0FTQU5fVEFHU19JREVOVElGWQ0KLQlmb3IgKGkgPSAwOyBpIDwgS0FTQU5fTlJfRlJFRV9TVEFD S1M7IGkrKykgew0KLQkJaWYgKGFsbG9jX21ldGEtPmZyZWVfcG9pbnRlcl90YWdbaV0gPT0gdGFn KQ0KLQkJCWJyZWFrOw0KLQl9DQotCWlmIChpID09IEtBU0FOX05SX0ZSRUVfU1RBQ0tTKQ0KLQkJ aSA9IGFsbG9jX21ldGEtPmZyZWVfdHJhY2tfaWR4Ow0KLSNlbmRpZg0KLQ0KLQlyZXR1cm4gJmFs bG9jX21ldGEtPmZyZWVfdHJhY2tbaV07DQotfQ0KLQ0KIHZvaWQga2FzYW5fdGFnX21pc21hdGNo KHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBhY2Nlc3NfaW5mbywNCiAJCQl1bnNp Z25lZCBsb25nIHJldF9pcCkNCiB7DQpkaWZmIC0tZ2l0IGEvbW0va2FzYW4vdGFncy5jIGIvbW0v a2FzYW4vdGFncy5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMDAwMDAwLi44 ZjQ4Yjk1MDJhMTcNCi0tLSAvZGV2L251bGwNCisrKyBiL21tL2thc2FuL3RhZ3MuYw0KQEAgLTAs MCArMSw1OSBAQA0KKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wDQorLyoNCisg KiBUaGlzIGZpbGUgY29udGFpbnMgY29tbW9uIHRhZy1iYXNlZCBLQVNBTiBjb2RlLg0KKyAqDQor ICogQ29weXJpZ2h0IChjKSAyMDE4IEdvb2dsZSwgSW5jLg0KKyAqIENvcHlyaWdodCAoYykgMjAy MCBHb29nbGUsIEluYy4NCisgKi8NCisNCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPg0KKyNpbmNs dWRlIDxsaW51eC9rYXNhbi5oPg0KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4NCisjaW5jbHVk ZSA8bGludXgvbWVtb3J5Lmg+DQorI2luY2x1ZGUgPGxpbnV4L21tLmg+DQorI2luY2x1ZGUgPGxp bnV4L3N0YXRpY19rZXkuaD4NCisjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+DQorI2luY2x1ZGUg PGxpbnV4L3R5cGVzLmg+DQorDQorI2luY2x1ZGUgImthc2FuLmgiDQorDQordm9pZCBrYXNhbl9z ZXRfZnJlZV9pbmZvKHN0cnVjdCBrbWVtX2NhY2hlICpjYWNoZSwNCisJCQkJdm9pZCAqb2JqZWN0 LCB1OCB0YWcpDQorew0KKwlzdHJ1Y3Qga2FzYW5fYWxsb2NfbWV0YSAqYWxsb2NfbWV0YTsNCisJ dTggaWR4ID0gMDsNCisNCisJYWxsb2NfbWV0YSA9IGthc2FuX2dldF9hbGxvY19tZXRhKGNhY2hl LCBvYmplY3QpOw0KKwlpZiAoIWFsbG9jX21ldGEpDQorCQlyZXR1cm47DQorDQorI2lmZGVmIENP TkZJR19LQVNBTl9UQUdTX0lERU5USUZZDQorCWlkeCA9IGFsbG9jX21ldGEtPmZyZWVfdHJhY2tf aWR4Ow0KKwlhbGxvY19tZXRhLT5mcmVlX3BvaW50ZXJfdGFnW2lkeF0gPSB0YWc7DQorCWFsbG9j X21ldGEtPmZyZWVfdHJhY2tfaWR4ID0gKGlkeCArIDEpICUgS0FTQU5fTlJfRlJFRV9TVEFDS1M7 DQorI2VuZGlmDQorDQorCWthc2FuX3NldF90cmFjaygmYWxsb2NfbWV0YS0+ZnJlZV90cmFja1tp ZHhdLCBHRlBfTk9XQUlUKTsNCit9DQorDQorc3RydWN0IGthc2FuX3RyYWNrICprYXNhbl9nZXRf ZnJlZV90cmFjayhzdHJ1Y3Qga21lbV9jYWNoZSAqY2FjaGUsDQorCQkJCXZvaWQgKm9iamVjdCwg dTggdGFnKQ0KK3sNCisJc3RydWN0IGthc2FuX2FsbG9jX21ldGEgKmFsbG9jX21ldGE7DQorCWlu dCBpID0gMDsNCisNCisJYWxsb2NfbWV0YSA9IGthc2FuX2dldF9hbGxvY19tZXRhKGNhY2hlLCBv YmplY3QpOw0KKwlpZiAoIWFsbG9jX21ldGEpDQorCQlyZXR1cm4gTlVMTDsNCisNCisjaWZkZWYg Q09ORklHX0tBU0FOX1RBR1NfSURFTlRJRlkNCisJZm9yIChpID0gMDsgaSA8IEtBU0FOX05SX0ZS RUVfU1RBQ0tTOyBpKyspIHsNCisJCWlmIChhbGxvY19tZXRhLT5mcmVlX3BvaW50ZXJfdGFnW2ld ID09IHRhZykNCisJCQlicmVhazsNCisJfQ0KKwlpZiAoaSA9PSBLQVNBTl9OUl9GUkVFX1NUQUNL UykNCisJCWkgPSBhbGxvY19tZXRhLT5mcmVlX3RyYWNrX2lkeDsNCisjZW5kaWYNCisNCisJcmV0 dXJuICZhbGxvY19tZXRhLT5mcmVlX3RyYWNrW2ldOw0KK30NCi0tIA0KMi4xOC4wDQo=