Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp2810323pxb; Sun, 15 Nov 2020 19:09:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJzx1i/QNbnmnDVb35u69qlrtLqHX7/BtruXjJj5xD12QBYGR1yZDaidFXWKMC92aN2/LA5p X-Received: by 2002:a05:6402:1c8e:: with SMTP id cy14mr14255362edb.39.1605496193425; Sun, 15 Nov 2020 19:09:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1605496193; cv=none; d=google.com; s=arc-20160816; b=0V600H9bB7rzVb37bMdJkaktL9GDb4psEC7LXt9b/O2mHHxwyi39Tt5C6WVRzvQf79 TOon47SlptTZmFgso/WjZDqRtRozbb0kFAk/MK9g5kz7+XOqTXNt4g3ft0yQSiKQF+m6 cJ+3cteS7BJ/OIhRNnOHOcf5/jxOM4cl6BncqY4Bk1rQtAhGJZDQEFVzidLg1EHiFL4i X72oTXOTnh/VbAm315a3CNw2XVxntdNIi82ZFtxiHT+iQNkU4FtVcCQPM2wakbhpTmWa TATIo5J3gx7rcnoZFvWCoCHynkXXNB5I9ke7aZ8ThmRcOt9Kc+tf6WfR70TMdweaSfls XyYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:date:cc:to:from:subject:message-id :dkim-signature; bh=5zef3sILoFC/Qxr+vbXApTKUmQnZIlDEA1uxAbrnje4=; b=EFg8vrNve0+w3W2XaOYmrl8FooCqTqfe6CcQ4q2NyILxD0SXa/UnTDczGwYWKBXsk0 WXF/xut8pobq6BMF8yndaEAN2KE449NwfsJWjuCW46WGV49KWiL7g3POxpj5DN5AR1V7 HKbIRKe6Tm0VuIDLku9hrSKxAaix1CleYUqF4rA1W75d45Fm9JDWgS3Gjd4mBudJ1L75 FWqdNYds7E4/xZmR07qaiFkcs6uo1XfFyTibOyQ1jDjm38VQOuNUl8zJPOXDmwM6ONbv qvseX+vgycwDp+Cv0RLAUq/F7KtLj9n16IljuYdGBJ2OtO7FFakK4bTLZz96GuZh0X3r q5sw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=QQ60WSJl; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bu8si10681466edb.542.2020.11.15.19.09.30; Sun, 15 Nov 2020 19:09:53 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=QQ60WSJl; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728388AbgKPBog (ORCPT + 99 others); Sun, 15 Nov 2020 20:44:36 -0500 Received: from mailgw01.mediatek.com ([210.61.82.183]:54855 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727464AbgKPBof (ORCPT ); Sun, 15 Nov 2020 20:44:35 -0500 X-UUID: b18a56d0b1fc4dffa3e049261059c991-20201116 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=5zef3sILoFC/Qxr+vbXApTKUmQnZIlDEA1uxAbrnje4=; b=QQ60WSJleBUO5+Zwgdr5G0yafsm4WbYZNCpVZtuHx7lvIZorFm+nrfuBQumMTMzNGeEG7QV14+8BdVrYootmxZ+0e+ASzIKwPybgsiDBpx2R90ONt9CKvx52ra53G2hWKPXS+NGz8kEvzga4EcWk1EP2Ul1KsHiU2VoVIT/KDF8=; X-UUID: b18a56d0b1fc4dffa3e049261059c991-20201116 Received: from mtkcas10.mediatek.inc [(172.21.101.39)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.14 Build 0819 with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1793712508; Mon, 16 Nov 2020 09:44:27 +0800 Received: from mtkcas10.mediatek.inc (172.21.101.39) by mtkmbs08n2.mediatek.inc (172.21.101.56) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 16 Nov 2020 09:44:23 +0800 Received: from [172.21.84.99] (172.21.84.99) by mtkcas10.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 16 Nov 2020 09:44:22 +0800 Message-ID: <1605491062.29084.2.camel@mtksdccf07> Subject: Re: [PATCH 1/1] kasan: fix object remain in offline per-cpu quarantine From: Kuan-Ying Lee To: Dmitry Vyukov CC: Andrey Ryabinin , Alexander Potapenko , Andrew Morton , "Matthias Brugger" , kasan-dev , Linux-MM , LKML , "Linux ARM" , , wsd_upstream , Miles Chen , Date: Mon, 16 Nov 2020 09:44:22 +0800 In-Reply-To: References: <1605162252-23886-1-git-send-email-Kuan-Ying.Lee@mediatek.com> <1605162252-23886-2-git-send-email-Kuan-Ying.Lee@mediatek.com> <1605234714.30076.18.camel@mtksdccf07> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.2.3-0ubuntu6 MIME-Version: 1.0 X-TM-SNTS-SMTP: D66A5C08AA565297E4DD3C222B41601357186A840CDB0C0DE06C3F51EF81814B2000:8 X-MTK: N Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gRnJpLCAyMDIwLTExLTEzIGF0IDA4OjAzICswMTAwLCBEbWl0cnkgVnl1a292IHdyb3RlOg0K PiBPbiBGcmksIE5vdiAxMywgMjAyMCBhdCAzOjMyIEFNIEt1YW4tWWluZyBMZWUNCj4gPEt1YW4t WWluZy5MZWVAbWVkaWF0ZWsuY29tPiB3cm90ZToNCj4gPg0KPiA+IE9uIFRodSwgMjAyMC0xMS0x MiBhdCAwOTozOSArMDEwMCwgRG1pdHJ5IFZ5dWtvdiB3cm90ZToNCj4gPiA+IE9uIFRodSwgTm92 IDEyLCAyMDIwIGF0IDc6MjUgQU0gS3Vhbi1ZaW5nIExlZQ0KPiA+ID4gPEt1YW4tWWluZy5MZWVA bWVkaWF0ZWsuY29tPiB3cm90ZToNCj4gPiA+ID4NCj4gPiA+ID4gV2UgaGl0IHRoaXMgaXNzdWUg aW4gb3VyIGludGVybmFsIHRlc3QuDQo+ID4gPiA+IFdoZW4gZW5hYmxpbmcgZ2VuZXJpYyBrYXNh biwgYSBrZnJlZSgpJ2Qgb2JqZWN0IGlzIHB1dCBpbnRvIHBlci1jcHUNCj4gPiA+ID4gcXVhcmFu dGluZSBmaXJzdC4gSWYgdGhlIGNwdSBnb2VzIG9mZmxpbmUsIG9iamVjdCBzdGlsbCByZW1haW5z IGluDQo+ID4gPiA+IHRoZSBwZXItY3B1IHF1YXJhbnRpbmUuIElmIHdlIGNhbGwga21lbV9jYWNo ZV9kZXN0cm95KCkgbm93LCBzbHViDQo+ID4gPiA+IHdpbGwgcmVwb3J0ICJPYmplY3RzIHJlbWFp bmluZyIgZXJyb3IuDQo+ID4gPiA+DQo+ID4gPiA+IFsgICA3NC45ODI2MjVdID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09DQo+ID4gPiA+IFsgICA3NC45ODMzODBdIEJVRyB0ZXN0X21vZHVsZV9zbGFiIChO b3QgdGFpbnRlZCk6IE9iamVjdHMgcmVtYWluaW5nIGluIHRlc3RfbW9kdWxlX3NsYWIgb24gX19r bWVtX2NhY2hlX3NodXRkb3duKCkNCj4gPiA+ID4gWyAgIDc0Ljk4NDE0NV0gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gPiA+ID4gWyAgIDc0Ljk4NDE0NV0NCj4gPiA+ID4gWyAgIDc0Ljk4NDg4M10g RGlzYWJsaW5nIGxvY2sgZGVidWdnaW5nIGR1ZSB0byBrZXJuZWwgdGFpbnQNCj4gPiA+ID4gWyAg IDc0Ljk4NTU2MV0gSU5GTzogU2xhYiAweChfX19fcHRydmFsX19fXykgb2JqZWN0cz0zNCB1c2Vk PTEgZnA9MHgoX19fX3B0cnZhbF9fX18pIGZsYWdzPTB4MmZmZmYwMDAwMDAxMDIwMA0KPiA+ID4g PiBbICAgNzQuOTg2NjM4XSBDUFU6IDMgUElEOiAxNzYgQ29tbTogY2F0IFRhaW50ZWQ6IEcgICAg QiAgICAgICAgICAgICA1LjEwLjAtcmMxLTAwMDA3LWc0NTI1Yzg3ODFlYzAtZGlydHkgIzEwDQo+ ID4gPiA+IFsgICA3NC45ODcyNjJdIEhhcmR3YXJlIG5hbWU6IGxpbnV4LGR1bW15LXZpcnQgKERU KQ0KPiA+ID4gPiBbICAgNzQuOTg3NjA2XSBDYWxsIHRyYWNlOg0KPiA+ID4gPiBbICAgNzQuOTg3 OTI0XSAgZHVtcF9iYWNrdHJhY2UrMHgwLzB4MmIwDQo+ID4gPiA+IFsgICA3NC45ODgyOTZdICBz aG93X3N0YWNrKzB4MTgvMHg2OA0KPiA+ID4gPiBbICAgNzQuOTg4Njk4XSAgZHVtcF9zdGFjaysw eGZjLzB4MTY4DQo+ID4gPiA+IFsgICA3NC45ODkwMzBdICBzbGFiX2VycisweGFjLzB4ZDQNCj4g PiA+ID4gWyAgIDc0Ljk4OTM0Nl0gIF9fa21lbV9jYWNoZV9zaHV0ZG93bisweDFlNC8weDNjOA0K PiA+ID4gPiBbICAgNzQuOTg5Nzc5XSAga21lbV9jYWNoZV9kZXN0cm95KzB4NjgvMHgxMzANCj4g PiA+ID4gWyAgIDc0Ljk5MDE3Nl0gIHRlc3RfdmVyc2lvbl9zaG93KzB4ODQvMHhmMA0KPiA+ID4g PiBbICAgNzQuOTkwNjc5XSAgbW9kdWxlX2F0dHJfc2hvdysweDQwLzB4NjANCj4gPiA+ID4gWyAg IDc0Ljk5MTIxOF0gIHN5c2ZzX2tmX3NlcV9zaG93KzB4MTI4LzB4MWMwDQo+ID4gPiA+IFsgICA3 NC45OTE2NTZdICBrZXJuZnNfc2VxX3Nob3crMHhhMC8weGI4DQo+ID4gPiA+IFsgICA3NC45OTIw NTldICBzZXFfcmVhZCsweDFmMC8weDdlOA0KPiA+ID4gPiBbICAgNzQuOTkyNDE1XSAga2VybmZz X2ZvcF9yZWFkKzB4NzAvMHgzMzgNCj4gPiA+ID4gWyAgIDc0Ljk5MzA1MV0gIHZmc19yZWFkKzB4 ZTQvMHgyNTANCj4gPiA+ID4gWyAgIDc0Ljk5MzQ5OF0gIGtzeXNfcmVhZCsweGM4LzB4MTgwDQo+ ID4gPiA+IFsgICA3NC45OTM4MjVdICBfX2FybTY0X3N5c19yZWFkKzB4NDQvMHg1OA0KPiA+ID4g PiBbICAgNzQuOTk0MjAzXSAgZWwwX3N2Y19jb21tb24uY29uc3Rwcm9wLjArMHhhYy8weDIyOA0K PiA+ID4gPiBbICAgNzQuOTk0NzA4XSAgZG9fZWwwX3N2YysweDM4LzB4YTANCj4gPiA+ID4gWyAg IDc0Ljk5NTA4OF0gIGVsMF9zeW5jX2hhbmRsZXIrMHgxNzAvMHgxNzgNCj4gPiA+ID4gWyAgIDc0 Ljk5NTQ5N10gIGVsMF9zeW5jKzB4MTc0LzB4MTgwDQo+ID4gPiA+IFsgICA3NC45OTYwNTBdIElO Rk86IE9iamVjdCAweChfX19fcHRydmFsX19fXykgQG9mZnNldD0xNTg0OA0KPiA+ID4gPiBbICAg NzQuOTk2NzUyXSBJTkZPOiBBbGxvY2F0ZWQgaW4gdGVzdF92ZXJzaW9uX3Nob3crMHg5OC8weGYw IGFnZT04MTg4IGNwdT02IHBpZD0xNzINCj4gPiA+ID4gWyAgIDc1LjAwMDgwMl0gIHN0YWNrX3Ry YWNlX3NhdmUrMHg5Yy8weGQwDQo+ID4gPiA+IFsgICA3NS4wMDI0MjBdICBzZXRfdHJhY2srMHg2 NC8weGYwDQo+ID4gPiA+IFsgICA3NS4wMDI3NzBdICBhbGxvY19kZWJ1Z19wcm9jZXNzaW5nKzB4 MTA0LzB4MWEwDQo+ID4gPiA+IFsgICA3NS4wMDMxNzFdICBfX19zbGFiX2FsbG9jKzB4NjI4LzB4 NjQ4DQo+ID4gPiA+IFsgICA3NS4wMDQyMTNdICBfX3NsYWJfYWxsb2MuaXNyYS4wKzB4MmMvMHg1 OA0KPiA+ID4gPiBbICAgNzUuMDA0NzU3XSAga21lbV9jYWNoZV9hbGxvYysweDU2MC8weDU4OA0K PiA+ID4gPiBbICAgNzUuMDA1Mzc2XSAgdGVzdF92ZXJzaW9uX3Nob3crMHg5OC8weGYwDQo+ID4g PiA+IFsgICA3NS4wMDU3NTZdICBtb2R1bGVfYXR0cl9zaG93KzB4NDAvMHg2MA0KPiA+ID4gPiBb ICAgNzUuMDA3MDM1XSAgc3lzZnNfa2Zfc2VxX3Nob3crMHgxMjgvMHgxYzANCj4gPiA+ID4gWyAg IDc1LjAwNzQzM10gIGtlcm5mc19zZXFfc2hvdysweGEwLzB4YjgNCj4gPiA+ID4gWyAgIDc1LjAw NzgwMF0gIHNlcV9yZWFkKzB4MWYwLzB4N2U4DQo+ID4gPiA+IFsgICA3NS4wMDgxMjhdICBrZXJu ZnNfZm9wX3JlYWQrMHg3MC8weDMzOA0KPiA+ID4gPiBbICAgNzUuMDA4NTA3XSAgdmZzX3JlYWQr MHhlNC8weDI1MA0KPiA+ID4gPiBbICAgNzUuMDA4OTkwXSAga3N5c19yZWFkKzB4YzgvMHgxODAN Cj4gPiA+ID4gWyAgIDc1LjAwOTQ2Ml0gIF9fYXJtNjRfc3lzX3JlYWQrMHg0NC8weDU4DQo+ID4g PiA+IFsgICA3NS4wMTAwODVdICBlbDBfc3ZjX2NvbW1vbi5jb25zdHByb3AuMCsweGFjLzB4MjI4 DQo+ID4gPiA+IFsgICA3NS4wMTEwMDZdIGttZW1fY2FjaGVfZGVzdHJveSB0ZXN0X21vZHVsZV9z bGFiOiBTbGFiIGNhY2hlIHN0aWxsIGhhcyBvYmplY3RzDQo+ID4gPiA+DQo+ID4gPiA+IFJlZ2lz dGVyIGEgY3B1IGhvdHBsdWcgZnVuY3Rpb24gdG8gcmVtb3ZlIGFsbCBvYmplY3RzIGluIHRoZSBv ZmZsaW5lDQo+ID4gPiA+IHBlci1jcHUgcXVhcmFudGluZSB3aGVuIGNwdSBpcyBnb2luZyBvZmZs aW5lLiBTZXQgYSBwZXItY3B1IHZhcmlhYmxlDQo+ID4gPiA+IHRvIGluZGljYXRlIHRoaXMgY3B1 IGlzIG9mZmxpbmUuDQo+ID4gPiA+DQo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEt1YW4tWWluZyBM ZWUgPEt1YW4tWWluZy5MZWVAbWVkaWF0ZWsuY29tPg0KPiA+ID4gPiAtLS0NCj4gPiA+ID4gIG1t L2thc2FuL3F1YXJhbnRpbmUuYyB8IDU5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0NCj4gPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCA1NyBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQ0KPiA+ID4gPg0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvbW0va2FzYW4vcXVh cmFudGluZS5jIGIvbW0va2FzYW4vcXVhcmFudGluZS5jDQo+ID4gPiA+IGluZGV4IDRjNTM3NTgx MDQ0OS4uNjdmYjkxYWUyYmQwIDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9tbS9rYXNhbi9xdWFyYW50 aW5lLmMNCj4gPiA+ID4gKysrIGIvbW0va2FzYW4vcXVhcmFudGluZS5jDQo+ID4gPiA+IEBAIC0y OSw2ICsyOSw3IEBADQo+ID4gPiA+ICAjaW5jbHVkZSA8bGludXgvc3JjdS5oPg0KPiA+ID4gPiAg I2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPg0KPiA+ID4gPiAgI2luY2x1ZGUgPGxpbnV4L3R5cGVz Lmg+DQo+ID4gPiA+ICsjaW5jbHVkZSA8bGludXgvY3B1aG90cGx1Zy5oPg0KPiA+ID4gPg0KPiA+ ID4gPiAgI2luY2x1ZGUgIi4uL3NsYWIuaCINCj4gPiA+ID4gICNpbmNsdWRlICJrYXNhbi5oIg0K PiA+ID4gPiBAQCAtOTcsNiArOTgsNyBAQCBzdGF0aWMgdm9pZCBxbGlzdF9tb3ZlX2FsbChzdHJ1 Y3QgcWxpc3RfaGVhZCAqZnJvbSwgc3RydWN0IHFsaXN0X2hlYWQgKnRvKQ0KPiA+ID4gPiAgICog Z3VhcmRlZCBieSBxdWFyYW50aW5lX2xvY2suDQo+ID4gPiA+ICAgKi8NCj4gPiA+DQo+ID4gPiBI aSBLdWFuLVlpbmcsDQo+ID4gPg0KPiA+ID4gVGhhbmtzIGZvciBmaXhpbmcgdGhpcy4NCj4gPiA+ DQo+ID4gPiA+ICBzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHFsaXN0X2hlYWQsIGNwdV9x dWFyYW50aW5lKTsNCj4gPiA+ID4gK3N0YXRpYyBERUZJTkVfUEVSX0NQVShpbnQsIGNwdV9xdWFy YW50aW5lX29mZmxpbmUpOw0KPiA+ID4NCj4gPiA+IEkgdGhpbmsgY3B1X3F1YXJhbnRpbmVfb2Zm bGluZSBpcyBiZXR0ZXIgYmUgcGFydCBvZiBjcHVfcXVhcmFudGluZQ0KPiA+ID4gYmVjYXVzZSBp dCBsb2dpY2FsbHkgaXMgYW5kIHdlIGFscmVhZHkgb2J0YWluIGEgcG9pbnRlciB0bw0KPiA+ID4g Y3B1X3F1YXJhbnRpbmUgaW4gcXVhcmFudGluZV9wdXQsIHNvIGl0IHdpbGwgYWxzbyBtYWtlIHRo ZSBjb2RlIGEgYml0DQo+ID4gPiBzaG9ydGVyLg0KPiA+ID4NCj4gPg0KPiA+IE9rLiBHb3QgaXQu DQo+ID4NCj4gPiA+DQo+ID4gPiA+ICAvKiBSb3VuZC1yb2JpbiBGSUZPIGFycmF5IG9mIGJhdGNo ZXMuICovDQo+ID4gPiA+ICBzdGF0aWMgc3RydWN0IHFsaXN0X2hlYWQgZ2xvYmFsX3F1YXJhbnRp bmVbUVVBUkFOVElORV9CQVRDSEVTXTsNCj4gPiA+ID4gQEAgLTE3Niw2ICsxNzgsOCBAQCB2b2lk IHF1YXJhbnRpbmVfcHV0KHN0cnVjdCBrYXNhbl9mcmVlX21ldGEgKmluZm8sIHN0cnVjdCBrbWVt X2NhY2hlICpjYWNoZSkNCj4gPiA+ID4gICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOw0KPiA+ ID4gPiAgICAgICAgIHN0cnVjdCBxbGlzdF9oZWFkICpxOw0KPiA+ID4gPiAgICAgICAgIHN0cnVj dCBxbGlzdF9oZWFkIHRlbXAgPSBRTElTVF9JTklUOw0KPiA+ID4gPiArICAgICAgIGludCAqb2Zm bGluZTsNCj4gPiA+ID4gKyAgICAgICBzdHJ1Y3QgcWxpc3RfaGVhZCBxX29mZmxpbmUgPSBRTElT VF9JTklUOw0KPiA+ID4gPg0KPiA+ID4gPiAgICAgICAgIC8qDQo+ID4gPiA+ICAgICAgICAgICog Tm90ZTogaXJxIG11c3QgYmUgZGlzYWJsZWQgdW50aWwgYWZ0ZXIgd2UgbW92ZSB0aGUgYmF0Y2gg dG8gdGhlDQo+ID4gPiA+IEBAIC0xODcsOCArMTkxLDE2IEBAIHZvaWQgcXVhcmFudGluZV9wdXQo c3RydWN0IGthc2FuX2ZyZWVfbWV0YSAqaW5mbywgc3RydWN0IGttZW1fY2FjaGUgKmNhY2hlKQ0K PiA+ID4gPiAgICAgICAgICAqLw0KPiA+ID4gPiAgICAgICAgIGxvY2FsX2lycV9zYXZlKGZsYWdz KTsNCj4gPiA+ID4NCj4gPiA+ID4gLSAgICAgICBxID0gdGhpc19jcHVfcHRyKCZjcHVfcXVhcmFu dGluZSk7DQo+ID4gPiA+IC0gICAgICAgcWxpc3RfcHV0KHEsICZpbmZvLT5xdWFyYW50aW5lX2xp bmssIGNhY2hlLT5zaXplKTsNCj4gPiA+ID4gKyAgICAgICBvZmZsaW5lID0gdGhpc19jcHVfcHRy KCZjcHVfcXVhcmFudGluZV9vZmZsaW5lKTsNCj4gPiA+ID4gKyAgICAgICBpZiAoKm9mZmxpbmUg PT0gMCkgew0KPiA+ID4gPiArICAgICAgICAgICAgICAgcSA9IHRoaXNfY3B1X3B0cigmY3B1X3F1 YXJhbnRpbmUpOw0KPiA+ID4gPiArICAgICAgICAgICAgICAgcWxpc3RfcHV0KHEsICZpbmZvLT5x dWFyYW50aW5lX2xpbmssIGNhY2hlLT5zaXplKTsNCj4gPiA+ID4gKyAgICAgICB9IGVsc2Ugew0K PiA+ID4gPiArICAgICAgICAgICAgICAgcWxpc3RfcHV0KCZxX29mZmxpbmUsICZpbmZvLT5xdWFy YW50aW5lX2xpbmssIGNhY2hlLT5zaXplKTsNCj4gPiA+ID4gKyAgICAgICAgICAgICAgIHFsaXN0 X2ZyZWVfYWxsKCZxX29mZmxpbmUsIGNhY2hlKTsNCj4gPiA+DQo+ID4gPiBUaGlzIGxvb2tzIGxp a2UgYSBjb252b2x1dGVkIHdheSB0byBjYWxsIHFsaW5rX2ZyZWUuIEkgdGhpbmsgaXQgd2lsbA0K PiA+ID4gYmUgYmV0dGVyIHRvIGNhbGwgcWxpbmtfZnJlZSBkaXJlY3RseSBoZXJlLg0KPiA+ID4N Cj4gPiA+IEFuZCB3aHkgZG8gd2UgbmVlZCB0aGlzPyBCZWNhdXNlIENQVSBzaHV0ZG93biBjb2Rl IGNhbiBzdGlsbCBmcmVlIHNvbWUNCj4gPiA+IG9iamVjdHMgYWZ0ZXJ3YXJkcz8NCj4gPiA+DQo+ ID4NCj4gPiBZZXMsIGl0IGlzIGJlY2F1c2UgSVJRIGNhbiBoYXBwZW4gZHVyaW5nIENQVSBzaHV0 ZG93biBhbmQgZnJlZSBzb21lDQo+ID4gb2JqZWN0cyBpbnRvIG9mZmxpbmUgQ1BVIHF1YXJhbnRp bmUuDQo+ID4NCj4gPiA+ID4gKyAgICAgICAgICAgICAgIGxvY2FsX2lycV9yZXN0b3JlKGZsYWdz KTsNCj4gPiA+ID4gKyAgICAgICAgICAgICAgIHJldHVybjsNCj4gPiA+DQo+ID4gPiBZb3UgYWRk IGJvdGggaWYvZWxzZSBhbmQgZWFybHkgcmV0dXJuLCB0aGlzIGxvb2tzIGxpa2UgdW5uZWNlc3Nh cnkNCj4gPiA+IGNvZGUgY29tcGxpY2F0aW9uLiBJdCB3b3VsZCBiZSBzaW1wbGVyIHdpdGg6DQo+ ID4gPg0KPiA+ID4gaWYgKCpvZmZsaW5lKSB7DQo+ID4gPiAgICAgcWxpbmtfZnJlZSguLi4pOw0K PiA+ID4gICAgIHJldHVybjsNCj4gPiA+IH0NCj4gPiA+IC4uLiBhbGwgY3VycmVudCBwZXItY3B1 IGxvY2FsIC4uLg0KPiA+ID4NCj4gPiA+DQo+ID4NCj4gPiBUaGFuayB5b3UgZm9yIHJlbWluZGVy LiB2MiBXaWxsIGRvIGl0Lg0KPiA+DQo+ID4gPiA+ICsgICAgICAgfQ0KPiA+ID4gPiAgICAgICAg IGlmICh1bmxpa2VseShxLT5ieXRlcyA+IFFVQVJBTlRJTkVfUEVSQ1BVX1NJWkUpKSB7DQo+ID4g PiA+ICAgICAgICAgICAgICAgICBxbGlzdF9tb3ZlX2FsbChxLCAmdGVtcCk7DQo+ID4gPiA+DQo+ ID4gPiA+IEBAIC0zMjgsMyArMzQwLDQ2IEBAIHZvaWQgcXVhcmFudGluZV9yZW1vdmVfY2FjaGUo c3RydWN0IGttZW1fY2FjaGUgKmNhY2hlKQ0KPiA+ID4gPg0KPiA+ID4gPiAgICAgICAgIHN5bmNo cm9uaXplX3NyY3UoJnJlbW92ZV9jYWNoZV9zcmN1KTsNCj4gPiA+ID4gIH0NCj4gPiA+ID4gKw0K PiA+ID4gPiArc3RhdGljIGludCBrYXNhbl9jcHVfb25saW5lKHVuc2lnbmVkIGludCBjcHUpDQo+ ID4gPiA+ICt7DQo+ID4gPiA+ICsgICAgICAgaW50ICpvZmZsaW5lOw0KPiA+ID4gPiArICAgICAg IHVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICAgICBsb2NhbF9p cnFfc2F2ZShmbGFncyk7DQo+ID4gPg0KPiA+ID4gSSBhc3N1bWUgdGhpcyBsb2NhbF9pcnFfc2F2 ZS9yZXN0b3JlIGlzIHRvIHByZXZlbnQgc29tZSB3YXJuaW5ncyBmcm9tDQo+ID4gPiB0aGlzX2Nw dV9wdHIuDQo+ID4gPiBCdXQgQ1BVIG9ubGluZS9vZmZsaW5lIGNhbGxiYWNrcyBzaG91bGQgcnVu IHdpdGhvdXQgcHJlZW1wdGlvbiBhbHJlYWR5DQo+ID4gPiAocHJlZW1wdGluZy9yZXNjaGVkdWxp bmcgb24gb3RoZXIgQ1BVcyBkb2VzIG5vdCBtYWtlIHNlbnNlIGZvciB0aGVtLA0KPiA+ID4gcmln aHQ/KSwgc28gSSB3b3VsZCBhc3N1bWUgdGhhdCBpcyBhbHJlYWR5IGF0IGxlYXN0IHByZWVtcHRp b24NCj4gPiA+IGRpc2FibGVkIG9yIHNvbWV0aGluZy4gSXMgdGhlcmUgdGhpc19jcHVfcHRyIHZh cmlhbnQgdGhhdCB3b24ndA0KPiA+ID4gcHJvZHVjZSB3YXJuaW5ncyBvbiBpdHMgb3duIGluIGNw dSBvbmxpbmUvb2ZmbGluZSBjYWxsYmFja3M/DQo+ID4gPiBUaGlzIHdob2xlIGZ1bmN0aW9uIGNv dWxkIGJlIGEgMS1saW5lcjoNCj4gPiA+IHRoaXNfY3B1X3B0cigmY3B1X3F1YXJhbnRpbmUpLT5v ZmZsaW5lID0gdHJ1ZTsNCj4gPiA+IFNvIEkgYW0gdHJ5aW5nIHRvIHVuZGVyc3RhbmQgaWYgd2Ug Y291bGQgYXZvaWQgYWxsIHRoaXMgdW5uZWNlc3NhcnkgZGFuc2UuDQo+ID4gPg0KPiA+DQo+ID4g WWVzLCBpdCdzIHVubmVjZXNzYXJ5LiB2MiB3aWxsIGZpeCBpdC4NCj4gPg0KPiA+ID4NCj4gPiA+ ID4gKyAgICAgICBvZmZsaW5lID0gdGhpc19jcHVfcHRyKCZjcHVfcXVhcmFudGluZV9vZmZsaW5l KTsNCj4gPiA+ID4gKyAgICAgICAqb2ZmbGluZSA9IDA7DQo+ID4gPiA+ICsgICAgICAgbG9jYWxf aXJxX3Jlc3RvcmUoZmxhZ3MpOw0KPiA+ID4gPiArICAgICAgIHJldHVybiAwOw0KPiA+ID4gPiAr fQ0KPiA+ID4gPiArDQo+ID4gPiA+ICtzdGF0aWMgaW50IGthc2FuX2NwdV9vZmZsaW5lKHVuc2ln bmVkIGludCBjcHUpDQo+ID4gPiA+ICt7DQo+ID4gPiA+ICsgICAgICAgc3RydWN0IGttZW1fY2Fj aGUgKnM7DQo+ID4gPiA+ICsgICAgICAgaW50ICpvZmZsaW5lOw0KPiA+ID4gPiArICAgICAgIHVu c2lnbmVkIGxvbmcgZmxhZ3M7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICAgICBsb2NhbF9pcnFf c2F2ZShmbGFncyk7DQo+ID4gPiA+ICsgICAgICAgb2ZmbGluZSA9IHRoaXNfY3B1X3B0cigmY3B1 X3F1YXJhbnRpbmVfb2ZmbGluZSk7DQo+ID4gPiA+ICsgICAgICAgKm9mZmxpbmUgPSAxOw0KPiA+ ID4gPiArICAgICAgIGxvY2FsX2lycV9yZXN0b3JlKGZsYWdzKTsNCj4gPiA+ID4gKw0KPiA+ID4g PiArICAgICAgIG11dGV4X2xvY2soJnNsYWJfbXV0ZXgpOw0KPiA+ID4gPiArICAgICAgIGxpc3Rf Zm9yX2VhY2hfZW50cnkocywgJnNsYWJfY2FjaGVzLCBsaXN0KSB7DQo+ID4gPiA+ICsgICAgICAg ICAgICAgICBwZXJfY3B1X3JlbW92ZV9jYWNoZShzKTsNCj4gPiA+ID4gKyAgICAgICB9DQo+ID4g PiA+ICsgICAgICAgbXV0ZXhfdW5sb2NrKCZzbGFiX211dGV4KTsNCj4gPiA+DQo+ID4gPiBXZSBq dXN0IHdhbnQgdG8gZHJvcCB0aGUgd2hvbGUgcGVyLWNwdSBjYWNoZSBhdCBvbmNlLCByaWdodD8g SSB3b3VsZA0KPiA+ID4gYXNzdW1lIHRoZXJlIHNob3VsZCBiZSBhIHNpbXBsZXIgd2F5IHRvIGRv IHRoaXMgYWxsIGF0IG9uY2UsIHJhdGhlcg0KPiA+ID4gdGhhbiBkb2luZyB0aGlzIHBlci1zbGFi Lg0KPiA+ID4NCj4gPg0KPiA+IFllcy4NCj4gPiBJcyByZW1vdmluZyBvYmplY3RzIGluIHBlci1j cHUgcXVhcmFudGluZSBkaXJlY3RseSBiZXR0ZXI/DQo+IA0KPiBZZXMsIHNpbmdsZSBxbGlzdF9m cmVlX2FsbCBjYWxsIGxvb2tzIG11Y2ggYmV0dGVyIHRoYW4gaXRlcmF0aW9uIG92ZXINCj4gYWxs IHNsYWJzIGFuZCByZW1vdmluZyBpbiBwYXJ0cyB1bmRlciB0aGUgbXV0ZXguDQo+IA0KDQpIaSBE bWl0cnksDQoNCkdvdCBpdC4NClRoYW5rcyBmb3IgeW91ciByZXZpZXcgYW5kIHJlbWluZGVyLg0K SSB3aWxsIGZpeCB0aGVtIGluIHYyLg0KDQpLdWFuLVlpbmcNCg0KDQo+ID4gc3RydWN0IHFsaXN0 X2hlYWQgKnE7DQo+ID4gcSA9IHRoaXNfY3B1X3B0cigmY3B1X3F1YXJhdGluZSk7DQo+ID4gcS0+ b2ZmbGluZSA9IHRydWU7DQo+ID4gcWxpc3RfZnJlZV9hbGwocSwgTlVMTCk7DQo+ID4NCj4gPiA+ ID4gKyAgICAgICByZXR1cm4gMDsNCj4gPiA+ID4gK30NCj4gPiA+ID4gKw0KPiA+ID4gPiArc3Rh dGljIGludCBfX2luaXQga2FzYW5fY3B1X29mZmxpbmVfcXVhcmFudGluZV9pbml0KHZvaWQpDQo+ ID4gPiA+ICt7DQo+ID4gPiA+ICsgICAgICAgaW50IHJldCA9IDA7DQo+ID4gPiA+ICsNCj4gPiA+ ID4gKyAgICAgICByZXQgPSBjcHVocF9zZXR1cF9zdGF0ZShDUFVIUF9BUF9PTkxJTkVfRFlOLCAi bW0va2FzYW46b25saW5lIiwNCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBrYXNhbl9jcHVfb25saW5lLCBrYXNhbl9jcHVfb2ZmbGluZSk7DQo+ID4gPiA+ICsgICAgICAg aWYgKHJldCkNCj4gPiA+ID4gKyAgICAgICAgICAgICAgIHByX2Vycigia2FzYW4gb2ZmbGluZSBj cHUgcXVhcmFudGluZSByZWdpc3RlciBmYWlsZWQgWyVkXVxuIiwgcmV0KTsNCj4gPiA+ID4gKyAg ICAgICByZXR1cm4gcmV0Ow0KPiA+ID4gPiArfQ0KPiA+ID4gPiArbGF0ZV9pbml0Y2FsbChrYXNh bl9jcHVfb2ZmbGluZV9xdWFyYW50aW5lX2luaXQpOw0KPiA+ID4gPiAtLQ0KPiA+ID4gPiAyLjE4 LjANCj4gPiA+ID4NCj4gPiA+ID4gLS0NCj4gPiA+ID4gWW91IHJlY2VpdmVkIHRoaXMgbWVzc2Fn ZSBiZWNhdXNlIHlvdSBhcmUgc3Vic2NyaWJlZCB0byB0aGUgR29vZ2xlIEdyb3VwcyAia2FzYW4t ZGV2IiBncm91cC4NCj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGdyb3VwIGFuZCBz dG9wIHJlY2VpdmluZyBlbWFpbHMgZnJvbSBpdCwgc2VuZCBhbiBlbWFpbCB0byBrYXNhbi1kZXYr dW5zdWJzY3JpYmVAZ29vZ2xlZ3JvdXBzLmNvbS4NCj4gPiA+ID4gVG8gdmlldyB0aGlzIGRpc2N1 c3Npb24gb24gdGhlIHdlYiB2aXNpdCBodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2QvbXNnaWQv a2FzYW4tZGV2LzE2MDUxNjIyNTItMjM4ODYtMi1naXQtc2VuZC1lbWFpbC1LdWFuLVlpbmcuTGVl JTQwbWVkaWF0ZWsuY29tLg0KPiA+DQo+ID4gLS0NCj4gPiBZb3UgcmVjZWl2ZWQgdGhpcyBtZXNz YWdlIGJlY2F1c2UgeW91IGFyZSBzdWJzY3JpYmVkIHRvIHRoZSBHb29nbGUgR3JvdXBzICJrYXNh bi1kZXYiIGdyb3VwLg0KPiA+IFRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBncm91cCBhbmQgc3Rv cCByZWNlaXZpbmcgZW1haWxzIGZyb20gaXQsIHNlbmQgYW4gZW1haWwgdG8ga2FzYW4tZGV2K3Vu c3Vic2NyaWJlQGdvb2dsZWdyb3Vwcy5jb20uDQo+ID4gVG8gdmlldyB0aGlzIGRpc2N1c3Npb24g b24gdGhlIHdlYiB2aXNpdCBodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2QvbXNnaWQva2FzYW4t ZGV2LzE2MDUyMzQ3MTQuMzAwNzYuMTguY2FtZWwlNDBtdGtzZGNjZjA3Lg0KDQo=