Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8F293C433F5 for ; Mon, 20 Dec 2021 02:35:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237273AbhLTCfV (ORCPT ); Sun, 19 Dec 2021 21:35:21 -0500 Received: from szxga01-in.huawei.com ([45.249.212.187]:33872 "EHLO szxga01-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230024AbhLTCfT (ORCPT ); Sun, 19 Dec 2021 21:35:19 -0500 Received: from dggeme756-chm.china.huawei.com (unknown [172.30.72.57]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4JHNwH6b5xzcc38; Mon, 20 Dec 2021 10:34:55 +0800 (CST) Received: from dggeme756-chm.china.huawei.com (10.3.19.102) by dggeme756-chm.china.huawei.com (10.3.19.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2308.20; Mon, 20 Dec 2021 10:35:17 +0800 Received: from dggeme756-chm.china.huawei.com ([10.6.80.68]) by dggeme756-chm.china.huawei.com ([10.6.80.68]) with mapi id 15.01.2308.020; Mon, 20 Dec 2021 10:35:17 +0800 From: "zhangwensheng (E)" To: Paolo Valente CC: Jens Axboe , "linux-block@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: =?gb2312?B?tPC4tDogW1BBVENIIC1uZXh0IHYzXSBiZnE6IGZpeCB1c2UtYWZ0ZXItZnJl?= =?gb2312?B?ZSBpbiBiZnFfZGlzcGF0Y2hfcmVxdWVzdA==?= Thread-Topic: [PATCH -next v3] bfq: fix use-after-free in bfq_dispatch_request Thread-Index: AQHX8pnSNnUYyqRnlESsN7jEp4m3R6w6palQ Date: Mon, 20 Dec 2021 02:35:16 +0000 Message-ID: <231451ad4b5b4da5afe84889f4c29bfa@huawei.com> References: <20211216122157.672159-1-zhangwensheng5@huawei.com> <42FD69CD-16CF-447D-AA69-621EE97CE3DC@linaro.org> In-Reply-To: <42FD69CD-16CF-447D-AA69-621EE97CE3DC@linaro.org> Accept-Language: en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.174.176.103] Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SGkgcGFvbG+jug0KCVRoYW5rcyBmb3IgeW91ciBxdWVzdGlvbiwgaXQgaXMgbXkgbmVnbGlnZW5j ZS4NCglJIGhhdmUgdHdvIGlkZWFzIGZvciByZXBhaXJpbmcgdGhlIHByb2JsZW06DQoNCjEuIHVz ZSByZWYrKyB0byBhdm9pZCB0aGUgaW5fc2Vydl9xdWV1ZSBiZWluZyByZWxlYXNlZC4gUGF0Y2gg YXMgZm9sbG93Og0KDQpibG9jay9iZnEtaW9zY2hlZC5jIHwgNSArKysrKw0KIDEgZmlsZSBjaGFu Z2VkLCA1IGluc2VydGlvbnMoKykNCg0KZGlmZiAtLWdpdCBhL2Jsb2NrL2JmcS1pb3NjaGVkLmMg Yi9ibG9jay9iZnEtaW9zY2hlZC5jDQppbmRleCBmZWMxODExOGRjMzAuLjcwYmQyODAxNzBmOSAx MDA2NDQNCi0tLSBhL2Jsb2NrL2JmcS1pb3NjaGVkLmMNCisrKyBiL2Jsb2NrL2JmcS1pb3NjaGVk LmMNCkBAIC01MDY2LDYgKzUwNjYsNyBAQCBzdGF0aWMgc3RydWN0IHJlcXVlc3QgKmJmcV9kaXNw YXRjaF9yZXF1ZXN0KHN0cnVjdCBibGtfbXFfaHdfY3R4ICpoY3R4KQ0KICAgICAgICBzcGluX2xv Y2tfaXJxKCZiZnFkLT5sb2NrKTsNCg0KICAgICAgICBpbl9zZXJ2X3F1ZXVlID0gYmZxZC0+aW5f c2VydmljZV9xdWV1ZTsNCisgICAgICAgaW5fc2Vydl9xdWV1ZS0+cmVmKys7IC8qIGF2aW9kIGlu X3NlcnZfcXVldWUgcmVsZWFzZSAqLw0KICAgICAgICB3YWl0aW5nX3JxID0gaW5fc2Vydl9xdWV1 ZSAmJiBiZnFfYmZxcV93YWl0X3JlcXVlc3QoaW5fc2Vydl9xdWV1ZSk7DQoNCiAgICAgICAgcnEg PSBfX2JmcV9kaXNwYXRjaF9yZXF1ZXN0KGhjdHgpOw0KQEAgLTUwNzcsNiArNTA3OCwxMCBAQCBz dGF0aWMgc3RydWN0IHJlcXVlc3QgKmJmcV9kaXNwYXRjaF9yZXF1ZXN0KHN0cnVjdCBibGtfbXFf aHdfY3R4ICpoY3R4KQ0KDQogICAgICAgIGJmcV91cGRhdGVfZGlzcGF0Y2hfc3RhdHMoaGN0eC0+ cXVldWUsIHJxLCBpbl9zZXJ2X3F1ZXVlLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGlkbGVfdGltZXJfZGlzYWJsZWQpOw0KKyAgICAgICAvKiByZXN1bWUgaW5fc2Vydl9xdWV1 ZSAqLw0KKyAgICAgICBzcGluX2xvY2tfaXJxKCZiZnFkLT5sb2NrKTsNCisgICAgICAgYmZxX3B1 dF9xdWV1ZShpbl9zZXJ2X3F1ZXVlKTsNCisgICAgICAgc3Bpbl91bmxvY2tfaXJxKCZiZnFkLT5s b2NrKTsNCg0KICAgICAgICByZXR1cm4gcnE7DQogfQ0KDQoyLiBhZGQgbmV3IGNoYW5nZXMgdG8g cHJldmlvdXMsIHRha2luZyBvdXQgYmZxcV9ncm91cChpbl9zZXJ2X3F1ZXVlKSBmcm9tIGJmcV91 cGRhdGVfZGlzcGF0Y2hfc3RhdHMuIFBhdGNoIGFzIGZvbGxvdzoNCg0KZGlmZiAtLWdpdCBhL2Js b2NrL2JmcS1pb3NjaGVkLmMgYi9ibG9jay9iZnEtaW9zY2hlZC5jDQotLS0gYS9ibG9jay9iZnEt aW9zY2hlZC5jDQorKysgYi9ibG9jay9iZnEtaW9zY2hlZC5jDQpAQCAtNTAwNyw3ICs1MDA3LDcg QEAgc3RhdGljIHN0cnVjdCByZXF1ZXN0ICpfX2JmcV9kaXNwYXRjaF9yZXF1ZXN0KHN0cnVjdCBi bGtfbXFfaHdfY3R4ICpoY3R4KQ0KICNpZmRlZiBDT05GSUdfQkZRX0NHUk9VUF9ERUJVRw0KIHN0 YXRpYyB2b2lkIGJmcV91cGRhdGVfZGlzcGF0Y2hfc3RhdHMoc3RydWN0IHJlcXVlc3RfcXVldWUg KnEsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCByZXF1ZXN0 ICpycSwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGJmcV9x dWV1ZSAqaW5fc2Vydl9xdWV1ZSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IGJmcV9ncm91cCAqYmZxZ19pbl9zZXJ2LA0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBib29sIGlkbGVfdGltZXJfZGlzYWJsZWQpDQogew0KICAgICAgICBz dHJ1Y3QgYmZxX3F1ZXVlICpiZnFxID0gcnEgPyBSUV9CRlFRKHJxKSA6IE5VTEw7DQpAQCAtNTAz OSw3ICs1MDM5LDcgQEAgc3RhdGljIHZvaWQgYmZxX3VwZGF0ZV9kaXNwYXRjaF9zdGF0cyhzdHJ1 Y3QgcmVxdWVzdF9xdWV1ZSAqcSwNCiAgICAgICAgICAgICAgICAgKiB0aGVyZWZvcmUgZ3VhcmFu dGVlZCB0byBleGlzdCBiZWNhdXNlIG9mIHRoZSBhYm92ZQ0KICAgICAgICAgICAgICAgICAqIGFy Z3VtZW50cy4NCiAgICAgICAgICAgICAgICAgKi8NCi0gICAgICAgICAgICAgICBiZnFnX3N0YXRz X3VwZGF0ZV9pZGxlX3RpbWUoYmZxcV9ncm91cChpbl9zZXJ2X3F1ZXVlKSk7DQorICAgICAgICAg ICAgICAgYmZxZ19zdGF0c191cGRhdGVfaWRsZV90aW1lKGJmcWdfaW5fc2Vydik7DQogICAgICAg IGlmIChiZnFxKSB7DQogICAgICAgICAgICAgICAgc3RydWN0IGJmcV9ncm91cCAqYmZxZyA9IGJm cXFfZ3JvdXAoYmZxcSk7DQogDQpAQCAtNTA1Miw3ICs1MDUyLDcgQEAgc3RhdGljIHZvaWQgYmZx X3VwZGF0ZV9kaXNwYXRjaF9zdGF0cyhzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSwNCiAjZWxzZQ0K IHN0YXRpYyBpbmxpbmUgdm9pZCBiZnFfdXBkYXRlX2Rpc3BhdGNoX3N0YXRzKHN0cnVjdCByZXF1 ZXN0X3F1ZXVlICpxLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0IHJlcXVlc3QgKnJxLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGJmcV9xdWV1ZSAqaW5fc2Vydl9xdWV1ZSwNCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBiZnFfZ3JvdXAgKmJmcWdf aW5fc2VydiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJv b2wgaWRsZV90aW1lcl9kaXNhYmxlZCkge30NCiAjZW5kaWYgLyogQ09ORklHX0JGUV9DR1JPVVBf REVCVUcgKi8NCiANCkBAIC01MDYyLDIwICs1MDYyLDIzIEBAIHN0YXRpYyBzdHJ1Y3QgcmVxdWVz dCAqYmZxX2Rpc3BhdGNoX3JlcXVlc3Qoc3RydWN0IGJsa19tcV9od19jdHggKmhjdHgpDQogICAg ICAgIHN0cnVjdCByZXF1ZXN0ICpycTsNCiAgICAgICAgc3RydWN0IGJmcV9xdWV1ZSAqaW5fc2Vy dl9xdWV1ZTsNCiAgICAgICAgYm9vbCB3YWl0aW5nX3JxLCBpZGxlX3RpbWVyX2Rpc2FibGVkOw0K KyAgICAgICBzdHJ1Y3QgYmZxX2dyb3VwICpiZnFnX2luX3NlcnY7DQogDQogICAgICAgIHNwaW5f bG9ja19pcnEoJmJmcWQtPmxvY2spOw0KIA0KICAgICAgICBpbl9zZXJ2X3F1ZXVlID0gYmZxZC0+ aW5fc2VydmljZV9xdWV1ZTsNCiAgICAgICAgd2FpdGluZ19ycSA9IGluX3NlcnZfcXVldWUgJiYg YmZxX2JmcXFfd2FpdF9yZXF1ZXN0KGluX3NlcnZfcXVldWUpOw0KKyAgICAgICBiZnFnX2luX3Nl cnYgPSBiZnFxX2dyb3VwKGluX3NlcnZfcXVldWUpOw0KIA0KICAgICAgICBycSA9IF9fYmZxX2Rp c3BhdGNoX3JlcXVlc3QoaGN0eCk7DQogDQotICAgICAgIGlkbGVfdGltZXJfZGlzYWJsZWQgPQ0K LSAgICAgICAgICAgICAgIHdhaXRpbmdfcnEgJiYgIWJmcV9iZnFxX3dhaXRfcmVxdWVzdChpbl9z ZXJ2X3F1ZXVlKTsNCi0NCisgICAgICAgaWYgKGluX3NlcnZfcXVldWUgPT0gYmZxZC0+aW5fc2Vy dmljZV9xdWV1ZSkgew0KKyAgICAgICAgICAgICAgIGlkbGVfdGltZXJfZGlzYWJsZWQgPQ0KKyAg ICAgICAgICAgICAgICAgICAgICAgd2FpdGluZ19ycSAmJiAhYmZxX2JmcXFfd2FpdF9yZXF1ZXN0 KGluX3NlcnZfcXVldWUpOw0KKyAgICAgICB9DQogICAgICAgIHNwaW5fdW5sb2NrX2lycSgmYmZx ZC0+bG9jayk7DQogDQotICAgICAgIGJmcV91cGRhdGVfZGlzcGF0Y2hfc3RhdHMoaGN0eC0+cXVl dWUsIHJxLCBpbl9zZXJ2X3F1ZXVlLA0KKyAgICAgICBiZnFfdXBkYXRlX2Rpc3BhdGNoX3N0YXRz KGhjdHgtPnF1ZXVlLCBycSwgYmZxZ19pbl9zZXJ2LA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlkbGVfdGltZXJfZGlzYWJsZWQpOw0KIA0KICAgICAgICByZXR1cm4gcnE7DQoN Cgl3aGF0IGRvIHlvdSB0aGluaz8NCgkNCglUaGFua3MNCglaaGFuZyBXZW5zaGVuZw0KLS0tLS3T yrz+1K28/i0tLS0tDQq3orz+yMs6IFBhb2xvIFZhbGVudGUgW21haWx0bzpwYW9sby52YWxlbnRl QGxpbmFyby5vcmddIA0Kt6LLzcqxvOQ6IDIwMjHE6jEy1MIxN8jVIDA6MjgNCsrVvP7Iyzogemhh bmd3ZW5zaGVuZyAoRSkgPHpoYW5nd2Vuc2hlbmc1QGh1YXdlaS5jb20+DQqzrcvNOiBKZW5zIEF4 Ym9lIDxheGJvZUBrZXJuZWwuZGs+OyBsaW51eC1ibG9ja0B2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4 LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcNCtb3zOI6IFJlOiBbUEFUQ0ggLW5leHQgdjNdIGJmcTog Zml4IHVzZS1hZnRlci1mcmVlIGluIGJmcV9kaXNwYXRjaF9yZXF1ZXN0DQoNCg0KDQo+IElsIGdp b3JubyAxNiBkaWMgMjAyMSwgYWxsZSBvcmUgMTM6MjEsIFpoYW5nIFdlbnNoZW5nIDx6aGFuZ3dl bnNoZW5nNUBodWF3ZWkuY29tPiBoYSBzY3JpdHRvOg0KPiANCj4gS0FTQU4gcmVwb3J0cyBhIHVz ZS1hZnRlci1mcmVlIHJlcG9ydCB3aGVuIGRvaW5nIG5vcm1hbCBzY3NpLW1xIHRlc3QNCj4gDQo+ IFs2OTgzMi4yMzkwMzJdIA0KPiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gWzY5ODMyLjI0MTgxMF0gQlVHOiBLQVNB TjogdXNlLWFmdGVyLWZyZWUgaW4gDQo+IGJmcV9kaXNwYXRjaF9yZXF1ZXN0KzB4MTA0NS8weDQ0 YjANCj4gWzY5ODMyLjI0MzI2N10gUmVhZCBvZiBzaXplIDggYXQgYWRkciBmZmZmODg4MDI2MjJi YTg4IGJ5IHRhc2sgDQo+IGt3b3JrZXIvMzoxSC8xNTUgWzY5ODMyLjI0NDY1Nl0gWzY5ODMyLjI0 NTAwN10gQ1BVOiAzIFBJRDogMTU1IENvbW06IA0KPiBrd29ya2VyLzM6MUggTm90IHRhaW50ZWQg NS4xMC4wLTEwMjk1LWc1NzZjNjM4MjUyOWUgIzggWzY5ODMyLjI0NjYyNl0gDQo+IEhhcmR3YXJl IG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIA0KPiBy ZWwtMS4xNC4wLTAtZzE1NTgyMWExOTkwYi1wcmVidWlsdC5xZW11Lm9yZyAwNC8wMS8yMDE0IFs2 OTgzMi4yNDkwNjldIA0KPiBXb3JrcXVldWU6IGtibG9ja2QgYmxrX21xX3J1bl93b3JrX2ZuIFs2 OTgzMi4yNTAwMjJdIENhbGwgVHJhY2U6DQo+IFs2OTgzMi4yNTA1NDFdICBkdW1wX3N0YWNrKzB4 OWIvMHhjZQ0KPiBbNjk4MzIuMjUxMjMyXSAgPyBiZnFfZGlzcGF0Y2hfcmVxdWVzdCsweDEwNDUv MHg0NGIwDQo+IFs2OTgzMi4yNTIyNDNdICBwcmludF9hZGRyZXNzX2Rlc2NyaXB0aW9uLmNvbnN0 cHJvcC42KzB4M2UvMHg2MA0KPiBbNjk4MzIuMjUzMzgxXSAgPyBfX2NwdWlkbGVfdGV4dF9lbmQr MHg1LzB4NSBbNjk4MzIuMjU0MjExXSAgPyANCj4gdnByaW50a19mdW5jKzB4NmIvMHgxMjAgWzY5 ODMyLjI1NDk5NF0gID8gDQo+IGJmcV9kaXNwYXRjaF9yZXF1ZXN0KzB4MTA0NS8weDQ0YjANCj4g WzY5ODMyLjI1NTk1Ml0gID8gYmZxX2Rpc3BhdGNoX3JlcXVlc3QrMHgxMDQ1LzB4NDRiMA0KPiBb Njk4MzIuMjU2OTE0XSAga2FzYW5fcmVwb3J0LmNvbGQuOSsweDIyLzB4M2EgWzY5ODMyLjI1Nzc1 M10gID8gDQo+IGJmcV9kaXNwYXRjaF9yZXF1ZXN0KzB4MTA0NS8weDQ0YjANCj4gWzY5ODMyLjI1 ODc1NV0gIGNoZWNrX21lbW9yeV9yZWdpb24rMHgxYzEvMHgxZTAgWzY5ODMyLjI2MDI0OF0gIA0K PiBiZnFfZGlzcGF0Y2hfcmVxdWVzdCsweDEwNDUvMHg0NGIwDQo+IFs2OTgzMi4yNjExODFdICA/ IGJmcV9iZnFxX2V4cGlyZSsweDI0NDAvMHgyNDQwIFs2OTgzMi4yNjIwMzJdICA/IA0KPiBibGtf bXFfZGVsYXlfcnVuX2h3X3F1ZXVlcysweGY5LzB4MTcwDQo+IFs2OTgzMi4yNjMwMjJdICBfX2Js a19tcV9kb19kaXNwYXRjaF9zY2hlZCsweDUyZi8weDgzMA0KPiBbNjk4MzIuMjY0MDExXSAgPyBi bGtfbXFfc2NoZWRfcmVxdWVzdF9pbnNlcnRlZCsweDEwMC8weDEwMA0KPiBbNjk4MzIuMjY1MTAx XSAgX19ibGtfbXFfc2NoZWRfZGlzcGF0Y2hfcmVxdWVzdHMrMHgzOTgvMHg0ZjANCj4gWzY5ODMy LjI2NjIwNl0gID8gYmxrX21xX2RvX2Rpc3BhdGNoX2N0eCsweDU3MC8weDU3MA0KPiBbNjk4MzIu MjY3MTQ3XSAgPyBfX3N3aXRjaF90bysweDVmNC8weGVlMCBbNjk4MzIuMjY3ODk4XSAgDQo+IGJs a19tcV9zY2hlZF9kaXNwYXRjaF9yZXF1ZXN0cysweGRmLzB4MTQwDQo+IFs2OTgzMi4yNjg5NDZd ICBfX2Jsa19tcV9ydW5faHdfcXVldWUrMHhjMC8weDI3MCBbNjk4MzIuMjY5ODQwXSAgDQo+IGJs a19tcV9ydW5fd29ya19mbisweDUxLzB4NjAgWzY5ODMyLjI3ODE3MF0gIA0KPiBwcm9jZXNzX29u ZV93b3JrKzB4NmQ0LzB4ZmUwIFs2OTgzMi4yNzg5ODRdICB3b3JrZXJfdGhyZWFkKzB4OTEvMHhj ODAgDQo+IFs2OTgzMi4yNzk3MjZdICA/IF9fa3RocmVhZF9wYXJrbWUrMHhiMC8weDExMCBbNjk4 MzIuMjgwNTU0XSAgPyANCj4gcHJvY2Vzc19vbmVfd29yaysweGZlMC8weGZlMCBbNjk4MzIuMjgx NDE0XSAga3RocmVhZCsweDMyZC8weDNmMCANCj4gWzY5ODMyLjI4MjA4Ml0gID8ga3RocmVhZF9w YXJrKzB4MTcwLzB4MTcwIFs2OTgzMi4yODI4NDldICANCj4gcmV0X2Zyb21fZm9yaysweDFmLzB4 MzAgWzY5ODMyLjI4MzU3M10gWzY5ODMyLjI4Mzg4Nl0gQWxsb2NhdGVkIGJ5IA0KPiB0YXNrIDc3 MjU6DQo+IFs2OTgzMi4yODQ1OTldICBrYXNhbl9zYXZlX3N0YWNrKzB4MTkvMHg0MCBbNjk4MzIu Mjg1Mzg1XSAgDQo+IF9fa2FzYW5fa21hbGxvYy5jb25zdHByb3AuMisweGMxLzB4ZDANCj4gWzY5 ODMyLjI4NjM1MF0gIGttZW1fY2FjaGVfYWxsb2Nfbm9kZSsweDEzZi8weDQ2MCBbNjk4MzIuMjg3 MjM3XSAgDQo+IGJmcV9nZXRfcXVldWUrMHgzZDQvMHgxMTQwIFs2OTgzMi4yODc5OTNdICANCj4g YmZxX2dldF9iZnFxX2hhbmRsZV9zcGxpdCsweDEwMy8weDUxMA0KPiBbNjk4MzIuMjg5MDE1XSAg YmZxX2luaXRfcnErMHgzMzcvMHgyZDUwIFs2OTgzMi4yODk3NDldICANCj4gYmZxX2luc2VydF9y ZXF1ZXN0cysweDMwNC8weDRlMTAgWzY5ODMyLjI5MDYzNF0gIA0KPiBibGtfbXFfc2NoZWRfaW5z ZXJ0X3JlcXVlc3RzKzB4MTNlLzB4MzkwDQo+IFs2OTgzMi4yOTE2MjldICBibGtfbXFfZmx1c2hf cGx1Z19saXN0KzB4NGI0LzB4NzYwDQo+IFs2OTgzMi4yOTI1MzhdICBibGtfZmx1c2hfcGx1Z19s aXN0KzB4MmM1LzB4NDgwIFs2OTgzMi4yOTMzOTJdICANCj4gaW9fc2NoZWR1bGVfcHJlcGFyZSsw eGIyLzB4ZDAgWzY5ODMyLjI5NDIwOV0gIA0KPiBpb19zY2hlZHVsZV90aW1lb3V0KzB4MTMvMHg4 MCBbNjk4MzIuMjk1MDE0XSAgDQo+IHdhaXRfZm9yX2NvbW1vbl9pby5jb25zdHByb3AuMSsweDEz Yy8weDI3MA0KPiBbNjk4MzIuMjk2MTM3XSAgc3VibWl0X2Jpb193YWl0KzB4MTAzLzB4MWEwIFs2 OTgzMi4yOTY5MzJdICANCj4gYmxrZGV2X2lzc3VlX2Rpc2NhcmQrMHhlNi8weDE2MCBbNjk4MzIu Mjk3Nzk0XSAgDQo+IGJsa19pb2N0bF9kaXNjYXJkKzB4MjE5LzB4MjkwIFs2OTgzMi4yOTg2MTRd ICANCj4gYmxrZGV2X2NvbW1vbl9pb2N0bCsweDUwYS8weDE3NTAgWzY5ODMyLjMwNDcxNV0gIA0K PiBibGtkZXZfaW9jdGwrMHg0NzAvMHg2MDAgWzY5ODMyLjMwNTQ3NF0gIGJsb2NrX2lvY3RsKzB4 ZGUvMHgxMjAgDQo+IFs2OTgzMi4zMDYyMzJdICB2ZnNfaW9jdGwrMHg2Yy8weGMwIFs2OTgzMi4z MDY4NzddICANCj4gX19zZV9zeXNfaW9jdGwrMHg5MC8weGEwIFs2OTgzMi4zMDc2MjldICBkb19z eXNjYWxsXzY0KzB4MmQvMHg0MCANCj4gWzY5ODMyLjMwODM2Ml0gIGVudHJ5X1NZU0NBTExfNjRf YWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkNCj4gWzY5ODMyLjMwOTM4Ml0NCj4gWzY5ODMyLjMwOTcw MV0gRnJlZWQgYnkgdGFzayAxNTU6DQo+IFs2OTgzMi4zMTAzMjhdICBrYXNhbl9zYXZlX3N0YWNr KzB4MTkvMHg0MCBbNjk4MzIuMzExMTIxXSAgDQo+IGthc2FuX3NldF90cmFjaysweDFjLzB4MzAg WzY5ODMyLjMxMTg2OF0gIA0KPiBrYXNhbl9zZXRfZnJlZV9pbmZvKzB4MWIvMHgzMCBbNjk4MzIu MzEyNjk5XSAgDQo+IF9fa2FzYW5fc2xhYl9mcmVlKzB4MTExLzB4MTYwIFs2OTgzMi4zMTM1MjRd ICANCj4ga21lbV9jYWNoZV9mcmVlKzB4OTQvMHg0NjAgWzY5ODMyLjMxNDM2N10gIGJmcV9wdXRf cXVldWUrMHg1ODIvMHg5NDAgDQo+IFs2OTgzMi4zMTUxMTJdICBfX2JmcV9iZnFkX3Jlc2V0X2lu X3NlcnZpY2UrMHgxNjYvMHgxZDANCj4gWzY5ODMyLjMxNzI3NV0gIGJmcV9iZnFxX2V4cGlyZSsw eGIyNy8weDI0NDAgWzY5ODMyLjMxODA4NF0gIA0KPiBiZnFfZGlzcGF0Y2hfcmVxdWVzdCsweDY5 Ny8weDQ0YjAgWzY5ODMyLjMxODk5MV0gIA0KPiBfX2Jsa19tcV9kb19kaXNwYXRjaF9zY2hlZCsw eDUyZi8weDgzMA0KPiBbNjk4MzIuMzE5OTg0XSAgX19ibGtfbXFfc2NoZWRfZGlzcGF0Y2hfcmVx dWVzdHMrMHgzOTgvMHg0ZjANCj4gWzY5ODMyLjMyMTA4N10gIGJsa19tcV9zY2hlZF9kaXNwYXRj aF9yZXF1ZXN0cysweGRmLzB4MTQwDQo+IFs2OTgzMi4zMjIyMjVdICBfX2Jsa19tcV9ydW5faHdf cXVldWUrMHhjMC8weDI3MCBbNjk4MzIuMzIzMTE0XSAgDQo+IGJsa19tcV9ydW5fd29ya19mbisw eDUxLzB4NjAgWzY5ODMyLjMyMzk0Ml0gIA0KPiBwcm9jZXNzX29uZV93b3JrKzB4NmQ0LzB4ZmUw IFs2OTgzMi4zMjQ3NzJdICB3b3JrZXJfdGhyZWFkKzB4OTEvMHhjODAgDQo+IFs2OTgzMi4zMjU1 MThdICBrdGhyZWFkKzB4MzJkLzB4M2YwIFs2OTgzMi4zMjYyMDVdICANCj4gcmV0X2Zyb21fZm9y aysweDFmLzB4MzAgWzY5ODMyLjMyNjkzMl0gWzY5ODMyLjMzODI5N10gVGhlIGJ1Z2d5IA0KPiBh ZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIG9iamVjdCBhdCBmZmZmODg4MDI2MjJiOTY4IFs2OTgzMi4z MzgyOTddICANCj4gd2hpY2ggYmVsb25ncyB0byB0aGUgY2FjaGUgYmZxX3F1ZXVlIG9mIHNpemUg NTEyIFs2OTgzMi4zNDA3NjZdIFRoZSANCj4gYnVnZ3kgYWRkcmVzcyBpcyBsb2NhdGVkIDI4OCBi eXRlcyBpbnNpZGUgb2YgWzY5ODMyLjM0MDc2Nl0gIDUxMi1ieXRlIA0KPiByZWdpb24gW2ZmZmY4 ODgwMjYyMmI5NjgsIGZmZmY4ODgwMjYyMmJiNjgpIFs2OTgzMi4zNDMwOTFdIFRoZSBidWdneSAN Cj4gYWRkcmVzcyBiZWxvbmdzIHRvIHRoZSBwYWdlOg0KPiBbNjk4MzIuMzQ0MDk3XSBwYWdlOmZm ZmZlYTAwMDA5ODhhMDAgcmVmY291bnQ6MSBtYXBjb3VudDowIA0KPiBtYXBwaW5nOjAwMDAwMDAw MDAwMDAwMDAgaW5kZXg6MHhmZmZmODg4MDI2MjJhNTI4IHBmbjoweDI2MjI4IA0KPiBbNjk4MzIu MzQ2MjE0XSBoZWFkOmZmZmZlYTAwMDA5ODhhMDAgb3JkZXI6MiBjb21wb3VuZF9tYXBjb3VudDow IA0KPiBjb21wb3VuZF9waW5jb3VudDowIFs2OTgzMi4zNDc3MTldIGZsYWdzOiAweDFmZmZmZjgw MDEwMjAwKHNsYWJ8aGVhZCkgDQo+IFs2OTgzMi4zNDg2MjVdIHJhdzogMDAxZmZmZmY4MDAxMDIw MCBmZmZmZWEwMDAwZGJhYzA4IGZmZmY4ODgwMTdhNTc2NTAgDQo+IGZmZmY4ODgwMTc5ZmU4NDAg WzY5ODMyLjM1NDk3Ml0gcmF3OiBmZmZmODg4MDI2MjJhNTI4IDAwMDAwMDAwMDAxMjAwMDggDQo+ IDAwMDAwMDAxZmZmZmZmZmYgMDAwMDAwMDAwMDAwMDAwMCBbNjk4MzIuMzU2NTQ3XSBwYWdlIGR1 bXBlZCBiZWNhdXNlOiANCj4ga2FzYW46IGJhZCBhY2Nlc3MgZGV0ZWN0ZWQgWzY5ODMyLjM1NzY1 Ml0gWzY5ODMyLjM1Nzk3MF0gTWVtb3J5IHN0YXRlIGFyb3VuZCB0aGUgYnVnZ3kgYWRkcmVzczoN Cj4gWzY5ODMyLjM1ODkyNl0gIGZmZmY4ODgwMjYyMmI5ODA6IGZiIGZiIGZiIGZiIGZiIGZiIGZi IGZiIGZiIGZiIGZiIGZiIA0KPiBmYiBmYiBmYiBmYiBbNjk4MzIuMzYwMzU4XSAgZmZmZjg4ODAy NjIyYmEwMDogZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgDQo+IGZiIGZiIGZiIGZiIGZiIGZiIGZi IGZiIFs2OTgzMi4zNjE4MTBdID5mZmZmODg4MDI2MjJiYTgwOiBmYiBmYiBmYiBmYiBmYiBmYiBm YiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYg0KPiBbNjk4MzIuMzYzMjczXSAgICAgICAgICAg ICAgICAgICAgICAgXg0KPiBbNjk4MzIuMzYzOTc1XSAgZmZmZjg4ODAyNjIyYmIwMDogZmIgZmIg ZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgDQo+IGZiIGZjIGZjIGZjIFs2OTgzMi4zNzU5 NjBdICBmZmZmODg4MDI2MjJiYjgwOiBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyANCj4gZmMgZmMg ZmMgZmMgZmMgZmMgZmMgZmMgWzY5ODMyLjM3NzQwNV0gDQo+ID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiANCj4gSW4g YmZxX2Rpc3BhdGNoX3JlcXVlc3RmdW5jdGlvbiwgaXQgbWF5IGhhdmUgZnVuY3Rpb24gY2FsbDoN Cj4gDQo+IGJmcV9kaXNwYXRjaF9yZXF1ZXN0DQo+IAlfX2JmcV9kaXNwYXRjaF9yZXF1ZXN0DQo+ IAkJYmZxX3NlbGVjdF9xdWV1ZQ0KPiAJCQliZnFfYmZxcV9leHBpcmUNCj4gCQkJCV9fYmZxX2Jm cWRfcmVzZXRfaW5fc2VydmljZQ0KPiAJCQkJCWJmcV9wdXRfcXVldWUNCj4gCQkJCQkJa21lbV9j YWNoZV9mcmVlDQo+IEluIHRoaXMgZnVuY3Rpb24gY2FsbCwgaW5fc2Vydl9xdWV1ZSBoYXMgYmVl ZCBleHBpcmVkIGFuZCBtZWV0IHRoZSANCj4gY29uZGl0aW9ucyB0byBmcmVlLiBJbiB0aGUgZnVu Y3Rpb24gYmZxX2Rpc3BhdGNoX3JlcXVlc3QsIHRoZSBhZGRyZXNzIA0KPiBvZiBpbl9zZXJ2X3F1 ZXVlIHBvaW50aW5nIHRvIGhhcyBiZWVuIHJlbGVhc2VkLiBGb3IgZ2V0dGluZyB0aGUgdmFsdWUg DQo+IG9mIGlkbGVfdGltZXJfZGlzYWJsZWQsIGl0IHdpbGwgZ2V0IGZsYWdzIHZhbHVlIGZyb20g dGhlIGFkZHJlc3Mgd2hpY2ggDQo+IGluX3NlcnZfcXVldWUgcG9pbnRpbmcgdG8sIHRoZW4gdGhl IHByb2JsZW0gb2YgdXNlLWFmdGVyLWZyZWUgaGFwcGVuczsNCj4gDQo+IEZpeCB0aGUgcHJvYmxl bSBieSBjaGVjayBpbl9zZXJ2X3F1ZXVlID09IGJmcWQtPmluX3NlcnZpY2VfcXVldWUsIHRvIA0K PiBnZXQgdGhlIHZhbHVlIG9mIGlkbGVfdGltZXJfZGlzYWJsZWQgaWYgaW5fc2VydmVfcXVldWUg aXMgZXF1ZWwgdG8gDQo+IGJmcWQtPmluX3NlcnZpY2VfcXVldWUuIElmIHRoZSBzcGFjZSBvZiBp bl9zZXJ2X3F1ZXVlIHBvaW50aW5nIGhhcyANCj4gYmVlbiByZWxlYXNlZCwgdGhpcyBqdWRnZSB3 aWxsIGF2aW9kIHVzZS1hZnRlci1mcmVlIHByb2JsZW0uDQo+IEFuZCBpZiBpbl9zZXJ2X3F1ZXVl IG1heSBiZSBleHBpcmVkIGJ1dCBpdCBzdGlsbCBleGlzdHMsIHRoaXMganVkZ2UgDQo+IG1heSBo YXZlIGxpdHRsZSBlZmZlY3RzIG9uIHRoZSBmdW5jdGlvbiBiZnFnX3N0YXRzX3VwZGF0ZV9pZGxl X3RpbWUgaW4gDQo+IGJmcV91cGRhdGVfZGlzcGF0Y2hfc3RhdHMuDQo+IA0KPiBSZXBvcnRlZC1i eTogSHVsayBSb2JvdCA8aHVsa2NpQGh1YXdlaS5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IFpoYW5n IFdlbnNoZW5nIDx6aGFuZ3dlbnNoZW5nNUBodWF3ZWkuY29tPg0KPiAtLS0NCj4gYmxvY2svYmZx LWlvc2NoZWQuYyB8IDkgKysrKystLS0tDQo+IDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvYmxvY2svYmZxLWlvc2NoZWQu YyBiL2Jsb2NrL2JmcS1pb3NjaGVkLmMgaW5kZXggDQo+IGZlYzE4MTE4ZGMzMC4uOTc1MzM2MzRi OTllIDEwMDY0NA0KPiAtLS0gYS9ibG9jay9iZnEtaW9zY2hlZC5jDQo+ICsrKyBiL2Jsb2NrL2Jm cS1pb3NjaGVkLmMNCj4gQEAgLTUwNjEsNyArNTA2MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgcmVxdWVz dCAqYmZxX2Rpc3BhdGNoX3JlcXVlc3Qoc3RydWN0IGJsa19tcV9od19jdHggKmhjdHgpDQo+IAlz dHJ1Y3QgYmZxX2RhdGEgKmJmcWQgPSBoY3R4LT5xdWV1ZS0+ZWxldmF0b3ItPmVsZXZhdG9yX2Rh dGE7DQo+IAlzdHJ1Y3QgcmVxdWVzdCAqcnE7DQo+IAlzdHJ1Y3QgYmZxX3F1ZXVlICppbl9zZXJ2 X3F1ZXVlOw0KPiAtCWJvb2wgd2FpdGluZ19ycSwgaWRsZV90aW1lcl9kaXNhYmxlZDsNCj4gKwli b29sIHdhaXRpbmdfcnEsIGlkbGVfdGltZXJfZGlzYWJsZWQgPSBmYWxzZTsNCj4gDQo+IAlzcGlu X2xvY2tfaXJxKCZiZnFkLT5sb2NrKTsNCj4gDQo+IEBAIC01MDcwLDkgKzUwNzAsMTAgQEAgc3Rh dGljIHN0cnVjdCByZXF1ZXN0IA0KPiAqYmZxX2Rpc3BhdGNoX3JlcXVlc3Qoc3RydWN0IGJsa19t cV9od19jdHggKmhjdHgpDQo+IA0KPiAJcnEgPSBfX2JmcV9kaXNwYXRjaF9yZXF1ZXN0KGhjdHgp Ow0KPiANCj4gLQlpZGxlX3RpbWVyX2Rpc2FibGVkID0NCj4gLQkJd2FpdGluZ19ycSAmJiAhYmZx X2JmcXFfd2FpdF9yZXF1ZXN0KGluX3NlcnZfcXVldWUpOw0KPiAtDQo+ICsJaWYgKGluX3NlcnZf cXVldWUgPT0gYmZxZC0+aW5fc2VydmljZV9xdWV1ZSkgew0KPiArCQlpZGxlX3RpbWVyX2Rpc2Fi bGVkID0NCj4gKwkJCXdhaXRpbmdfcnEgJiYgIWJmcV9iZnFxX3dhaXRfcmVxdWVzdChpbl9zZXJ2 X3F1ZXVlKTsNCj4gKwl9DQoNCkdvb2QgY2F0Y2ghDQoNCj4gCXNwaW5fdW5sb2NrX2lycSgmYmZx ZC0+bG9jayk7DQo+IA0KPiAJYmZxX3VwZGF0ZV9kaXNwYXRjaF9zdGF0cyhoY3R4LT5xdWV1ZSwg cnEsIGluX3NlcnZfcXVldWUsDQoNCllldCwgd2hhdCBhYm91dCB0aGUgYWJvdmUgdXNlIG9mIGlu X3NlcnZfcXVldWUgdGhlbj8NCg0KVGhhbmtzLA0KUGFvbG8NCg0KPiAtLQ0KPiAyLjMxLjENCj4g DQoNCg==