From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:60607) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gQ5B9-00027y-W4 for qemu-devel@nongnu.org; Fri, 23 Nov 2018 01:43:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gQ5B4-0005Hh-BO for qemu-devel@nongnu.org; Fri, 23 Nov 2018 01:43:03 -0500 Received: from szxga08-in.huawei.com ([45.249.212.255]:57095 helo=huawei.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gQ5B3-0004t9-Hc for qemu-devel@nongnu.org; Fri, 23 Nov 2018 01:42:58 -0500 From: xiezhide Date: Fri, 23 Nov 2018 06:42:36 +0000 Message-ID: References: <20181122154610.50150df4@bahia.lan> In-Reply-To: <20181122154610.50150df4@bahia.lan> Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH v5 1/6] fsdev-throttle-qmp: factor out throttle code to reuse code List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Greg Kurz Cc: "qemu-devel@nongnu.org" , "aneesh.kumar@linux.vnet.ibm.com" , "eblake@redhat.com" , "armbru@redhat.com" , "berto@igalia.com" , zengcanfu 00215970 , Jinxuefeng , "Chenhui (Felix, Euler)" , Pradeep Jagadeesh DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogR3JlZyBLdXJ6IFttYWls dG86Z3JvdWdAa2FvZC5vcmddDQo+IFNlbnQ6IFRodXJzZGF5LCBOb3ZlbWJlciAyMiwgMjAxOCAx MDo0NiBQTQ0KPiBUbzogeGllemhpZGUgPHhpZXpoaWRlQGh1YXdlaS5jb20+DQo+IENjOiBxZW11 LWRldmVsQG5vbmdudS5vcmc7IGFuZWVzaC5rdW1hckBsaW51eC52bmV0LmlibS5jb207DQo+IGVi bGFrZUByZWRoYXQuY29tOyBhcm1icnVAcmVkaGF0LmNvbTsgYmVydG9AaWdhbGlhLmNvbTsgemVu Z2NhbmZ1DQo+IDAwMjE1OTcwIDx6ZW5nY2FuZnVAaHVhd2VpLmNvbT47IEppbnh1ZWZlbmcgPGpp bnh1ZWZlbmdAaHVhd2VpLmNvbT47DQo+IENoZW5odWkgKEZlbGl4LCBFdWxlcikgPGNoZW5odWku cnRvc0BodWF3ZWkuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHY1IDEvNl0gZnNkZXYtdGhy b3R0bGUtcW1wOiBmYWN0b3Igb3V0IHRocm90dGxlIGNvZGUgdG8NCj4gcmV1c2UgY29kZQ0KPiAN Cj4gT24gRnJpLCAxNiBOb3YgMjAxOCAxNTo1OToxNiArMDgwMA0KPiB4aWV6aGlkZSA8eGllemhp ZGVAaHVhd2VpLmNvbT4gd3JvdGU6DQo+IA0KPiA+IEZhY3RvciBvdXQgdGhyb3R0bGUgcGFyYW1l dGVyIHBhcnNpbmcgY29kZSB0byBhIG5ldyBjb21tb24gZnVuY3Rpb24NCj4gPiB3aGljaCB3aWxs IGJlIHVzZWQgYnkgYmxvY2sgYW5kIGZzZGV2Lg0KPiA+IFJlbmFtZSBmdW5jdGlvbiB0aHJvdHRs ZV9wYXJzZV9vcHRpb25zIHRvIHRocm90dGxlX3BhcnNlX2dyb3VwIHRvDQo+ID4gcmVzb2x2ZSBm dW5jdGlvbiBuYW1lIGNvbmZsaWN0DQo+ID4NCj4gPiBSZXZpZXdlZC1ieTogRXJpYyBCbGFrZSA8 ZWJsYWtlQHJlZGhhdC5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTogeGllemhpZGUgPHhpZXpoaWRl QGh1YXdlaS5jb20+DQo+ID4gLS0tDQo+IA0KPiBSZXZpZXdlZC1ieTogR3JlZyBLdXJ6IDxncm91 Z0BrYW9kLm9yZz4NCj4gDQo+IEFuZCwgc2luY2UgSSBndWVzcyB0aGlzIHdpbGwgbGlrZWx5IGdv IHRocm91Z2ggc29tZW9uZSBlbHNlJ3MgdHJlZSwgZm9yIHRoZSBmc2Rldg0KPiBjaGFuZ2VzOg0K DQpZZXPvvIxQcmFkZWVwIEphZ2FkZWVzaDxwcmFkZWVwLmphZ2FkZWVzaEBodWF3ZWkuY29tPiBo YWQgZG9uZSBzb21lIHdvcmsgZm9yIHRoaXMsIGFuZCBJIHRha2UgaXQgb3ZlciBub3cNCg0KPiAN Cj4gQWNrZWQtYnk6IEdyZWcgS3VyeiA8Z3JvdWdAa2FvZC5vcmc+DQo+IA0KPiA+ICBibG9jay90 aHJvdHRsZS5jICAgICAgICAgICAgICAgIHwgIDYgKystLQ0KPiA+ICBibG9ja2Rldi5jICAgICAg ICAgICAgICAgICAgICAgIHwgNDMgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiAgZnNk ZXYvcWVtdS1mc2Rldi10aHJvdHRsZS5jICAgICB8IDQ0ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQo+ID4gIGluY2x1ZGUvcWVtdS90aHJvdHRsZS1vcHRpb25zLmggfCAgMiArKw0KPiA+ICBp bmNsdWRlL3FlbXUvdGhyb3R0bGUuaCAgICAgICAgIHwgIDQgKy0tDQo+ID4gIGluY2x1ZGUvcWVt dS90eXBlZGVmcy5oICAgICAgICAgfCAgMSArDQo+ID4gIHV0aWwvdGhyb3R0bGUuYyAgICAgICAg ICAgICAgICAgfCA2OA0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr Kw0KPiA+ICA3IGZpbGVzIGNoYW5nZWQsIDc5IGluc2VydGlvbnMoKyksIDg5IGRlbGV0aW9ucygt KQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2Jsb2NrL3Rocm90dGxlLmMgYi9ibG9jay90aHJvdHRs ZS5jIGluZGV4DQo+ID4gNjM2Yzk3Ni4uYmQyM2M1OCAxMDA2NDQNCj4gPiAtLS0gYS9ibG9jay90 aHJvdHRsZS5jDQo+ID4gKysrIGIvYmxvY2svdGhyb3R0bGUuYw0KPiA+IEBAIC00MSw3ICs0MSw3 IEBAIHN0YXRpYyBRZW11T3B0c0xpc3QgdGhyb3R0bGVfb3B0cyA9IHsNCj4gPiAgICogQGdyb3Vw IGFuZCBtdXN0IGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIuDQo+ID4gICAqIElmIHRoZXJlJ3MgYW4g ZXJyb3IgdGhlbiBAZ3JvdXAgcmVtYWlucyB1bm1vZGlmaWVkLg0KPiA+ICAgKi8NCj4gPiAtc3Rh dGljIGludCB0aHJvdHRsZV9wYXJzZV9vcHRpb25zKFFEaWN0ICpvcHRpb25zLCBjaGFyICoqZ3Jv dXAsIEVycm9yDQo+ID4gKiplcnJwKQ0KPiA+ICtzdGF0aWMgaW50IHRocm90dGxlX3BhcnNlX2dy b3VwKFFEaWN0ICpvcHRpb25zLCBjaGFyICoqZ3JvdXAsIEVycm9yDQo+ID4gKyoqZXJycCkNCj4g PiAgew0KPiA+ICAgICAgaW50IHJldDsNCj4gPiAgICAgIGNvbnN0IGNoYXIgKmdyb3VwX25hbWU7 DQo+ID4gQEAgLTkwLDcgKzkwLDcgQEAgc3RhdGljIGludCB0aHJvdHRsZV9vcGVuKEJsb2NrRHJp dmVyU3RhdGUgKmJzLCBRRGljdA0KPiAqb3B0aW9ucywNCj4gPiAgICAgIGJzLT5zdXBwb3J0ZWRf emVyb19mbGFncyA9IGJzLT5maWxlLT5icy0+c3VwcG9ydGVkX3plcm9fZmxhZ3MgfA0KPiA+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkRSVl9SRVFfV1JJVEVfVU5DSEFOR0VEOw0K PiA+DQo+ID4gLSAgICByZXQgPSB0aHJvdHRsZV9wYXJzZV9vcHRpb25zKG9wdGlvbnMsICZncm91 cCwgZXJycCk7DQo+ID4gKyAgICByZXQgPSB0aHJvdHRsZV9wYXJzZV9ncm91cChvcHRpb25zLCAm Z3JvdXAsIGVycnApOw0KPiA+ICAgICAgaWYgKHJldCA9PSAwKSB7DQo+ID4gICAgICAgICAgLyog UmVnaXN0ZXIgbWVtYmVyc2hpcCB0byBncm91cCB3aXRoIG5hbWUgZ3JvdXBfbmFtZSAqLw0KPiA+ ICAgICAgICAgIHRocm90dGxlX2dyb3VwX3JlZ2lzdGVyX3RnbSh0Z20sIGdyb3VwLA0KPiA+IGJk cnZfZ2V0X2Fpb19jb250ZXh0KGJzKSk7IEBAIC0xNzksNyArMTc5LDcgQEAgc3RhdGljIGludA0K PiB0aHJvdHRsZV9yZW9wZW5fcHJlcGFyZShCRFJWUmVvcGVuU3RhdGUgKnJlb3Blbl9zdGF0ZSwN Cj4gPiAgICAgIGFzc2VydChyZW9wZW5fc3RhdGUgIT0gTlVMTCk7DQo+ID4gICAgICBhc3NlcnQo cmVvcGVuX3N0YXRlLT5icyAhPSBOVUxMKTsNCj4gPg0KPiA+IC0gICAgcmV0ID0gdGhyb3R0bGVf cGFyc2Vfb3B0aW9ucyhyZW9wZW5fc3RhdGUtPm9wdGlvbnMsICZncm91cCwgZXJycCk7DQo+ID4g KyAgICByZXQgPSB0aHJvdHRsZV9wYXJzZV9ncm91cChyZW9wZW5fc3RhdGUtPm9wdGlvbnMsICZn cm91cCwgZXJycCk7DQo+ID4gICAgICByZW9wZW5fc3RhdGUtPm9wYXF1ZSA9IGdyb3VwOw0KPiA+ ICAgICAgcmV0dXJuIHJldDsNCj4gPiAgfQ0KPiA+IGRpZmYgLS1naXQgYS9ibG9ja2Rldi5jIGIv YmxvY2tkZXYuYw0KPiA+IGluZGV4IDgxZjk1ZDkuLmZjZTVkOGYgMTAwNjQ0DQo+ID4gLS0tIGEv YmxvY2tkZXYuYw0KPiA+ICsrKyBiL2Jsb2NrZGV2LmMNCj4gPiBAQCAtNDAwLDQ4ICs0MDAsNyBA QCBzdGF0aWMgdm9pZA0KPiBleHRyYWN0X2NvbW1vbl9ibG9ja2Rldl9vcHRpb25zKFFlbXVPcHRz ICpvcHRzLCBpbnQgKmJkcnZfZmxhZ3MsDQo+ID4gICAgICB9DQo+ID4NCj4gPiAgICAgIGlmICh0 aHJvdHRsZV9jZmcpIHsNCj4gPiAtICAgICAgICB0aHJvdHRsZV9jb25maWdfaW5pdCh0aHJvdHRs ZV9jZmcpOw0KPiA+IC0gICAgICAgIHRocm90dGxlX2NmZy0+YnVja2V0c1tUSFJPVFRMRV9CUFNf VE9UQUxdLmF2ZyA9DQo+ID4gLSAgICAgICAgICAgIHFlbXVfb3B0X2dldF9udW1iZXIob3B0cywg InRocm90dGxpbmcuYnBzLXRvdGFsIiwgMCk7DQo+ID4gLSAgICAgICAgdGhyb3R0bGVfY2ZnLT5i dWNrZXRzW1RIUk9UVExFX0JQU19SRUFEXS5hdmcgID0NCj4gPiAtICAgICAgICAgICAgcWVtdV9v cHRfZ2V0X251bWJlcihvcHRzLCAidGhyb3R0bGluZy5icHMtcmVhZCIsIDApOw0KPiA+IC0gICAg ICAgIHRocm90dGxlX2NmZy0+YnVja2V0c1tUSFJPVFRMRV9CUFNfV1JJVEVdLmF2ZyA9DQo+ID4g LSAgICAgICAgICAgIHFlbXVfb3B0X2dldF9udW1iZXIob3B0cywgInRocm90dGxpbmcuYnBzLXdy aXRlIiwgMCk7DQo+ID4gLSAgICAgICAgdGhyb3R0bGVfY2ZnLT5idWNrZXRzW1RIUk9UVExFX09Q U19UT1RBTF0uYXZnID0NCj4gPiAtICAgICAgICAgICAgcWVtdV9vcHRfZ2V0X251bWJlcihvcHRz LCAidGhyb3R0bGluZy5pb3BzLXRvdGFsIiwgMCk7DQo+ID4gLSAgICAgICAgdGhyb3R0bGVfY2Zn LT5idWNrZXRzW1RIUk9UVExFX09QU19SRUFEXS5hdmcgPQ0KPiA+IC0gICAgICAgICAgICBxZW11 X29wdF9nZXRfbnVtYmVyKG9wdHMsICJ0aHJvdHRsaW5nLmlvcHMtcmVhZCIsIDApOw0KPiA+IC0g ICAgICAgIHRocm90dGxlX2NmZy0+YnVja2V0c1tUSFJPVFRMRV9PUFNfV1JJVEVdLmF2ZyA9DQo+ ID4gLSAgICAgICAgICAgIHFlbXVfb3B0X2dldF9udW1iZXIob3B0cywgInRocm90dGxpbmcuaW9w cy13cml0ZSIsIDApOw0KPiA+IC0NCj4gPiAtICAgICAgICB0aHJvdHRsZV9jZmctPmJ1Y2tldHNb VEhST1RUTEVfQlBTX1RPVEFMXS5tYXggPQ0KPiA+IC0gICAgICAgICAgICBxZW11X29wdF9nZXRf bnVtYmVyKG9wdHMsICJ0aHJvdHRsaW5nLmJwcy10b3RhbC1tYXgiLCAwKTsNCj4gPiAtICAgICAg ICB0aHJvdHRsZV9jZmctPmJ1Y2tldHNbVEhST1RUTEVfQlBTX1JFQURdLm1heCAgPQ0KPiA+IC0g ICAgICAgICAgICBxZW11X29wdF9nZXRfbnVtYmVyKG9wdHMsICJ0aHJvdHRsaW5nLmJwcy1yZWFk LW1heCIsIDApOw0KPiA+IC0gICAgICAgIHRocm90dGxlX2NmZy0+YnVja2V0c1tUSFJPVFRMRV9C UFNfV1JJVEVdLm1heCA9DQo+ID4gLSAgICAgICAgICAgIHFlbXVfb3B0X2dldF9udW1iZXIob3B0 cywgInRocm90dGxpbmcuYnBzLXdyaXRlLW1heCIsIDApOw0KPiA+IC0gICAgICAgIHRocm90dGxl X2NmZy0+YnVja2V0c1tUSFJPVFRMRV9PUFNfVE9UQUxdLm1heCA9DQo+ID4gLSAgICAgICAgICAg IHFlbXVfb3B0X2dldF9udW1iZXIob3B0cywgInRocm90dGxpbmcuaW9wcy10b3RhbC1tYXgiLCAw KTsNCj4gPiAtICAgICAgICB0aHJvdHRsZV9jZmctPmJ1Y2tldHNbVEhST1RUTEVfT1BTX1JFQURd Lm1heCA9DQo+ID4gLSAgICAgICAgICAgIHFlbXVfb3B0X2dldF9udW1iZXIob3B0cywgInRocm90 dGxpbmcuaW9wcy1yZWFkLW1heCIsIDApOw0KPiA+IC0gICAgICAgIHRocm90dGxlX2NmZy0+YnVj a2V0c1tUSFJPVFRMRV9PUFNfV1JJVEVdLm1heCA9DQo+ID4gLSAgICAgICAgICAgIHFlbXVfb3B0 X2dldF9udW1iZXIob3B0cywgInRocm90dGxpbmcuaW9wcy13cml0ZS1tYXgiLCAwKTsNCj4gPiAt DQo+ID4gLSAgICAgICAgdGhyb3R0bGVfY2ZnLT5idWNrZXRzW1RIUk9UVExFX0JQU19UT1RBTF0u YnVyc3RfbGVuZ3RoID0NCj4gPiAtICAgICAgICAgICAgcWVtdV9vcHRfZ2V0X251bWJlcihvcHRz LA0KPiAidGhyb3R0bGluZy5icHMtdG90YWwtbWF4LWxlbmd0aCIsIDEpOw0KPiA+IC0gICAgICAg IHRocm90dGxlX2NmZy0+YnVja2V0c1tUSFJPVFRMRV9CUFNfUkVBRF0uYnVyc3RfbGVuZ3RoICA9 DQo+ID4gLSAgICAgICAgICAgIHFlbXVfb3B0X2dldF9udW1iZXIob3B0cywNCj4gInRocm90dGxp bmcuYnBzLXJlYWQtbWF4LWxlbmd0aCIsIDEpOw0KPiA+IC0gICAgICAgIHRocm90dGxlX2NmZy0+ YnVja2V0c1tUSFJPVFRMRV9CUFNfV1JJVEVdLmJ1cnN0X2xlbmd0aCA9DQo+ID4gLSAgICAgICAg ICAgIHFlbXVfb3B0X2dldF9udW1iZXIob3B0cywNCj4gInRocm90dGxpbmcuYnBzLXdyaXRlLW1h eC1sZW5ndGgiLCAxKTsNCj4gPiAtICAgICAgICB0aHJvdHRsZV9jZmctPmJ1Y2tldHNbVEhST1RU TEVfT1BTX1RPVEFMXS5idXJzdF9sZW5ndGggPQ0KPiA+IC0gICAgICAgICAgICBxZW11X29wdF9n ZXRfbnVtYmVyKG9wdHMsDQo+ICJ0aHJvdHRsaW5nLmlvcHMtdG90YWwtbWF4LWxlbmd0aCIsIDEp Ow0KPiA+IC0gICAgICAgIHRocm90dGxlX2NmZy0+YnVja2V0c1tUSFJPVFRMRV9PUFNfUkVBRF0u YnVyc3RfbGVuZ3RoID0NCj4gPiAtICAgICAgICAgICAgcWVtdV9vcHRfZ2V0X251bWJlcihvcHRz LA0KPiAidGhyb3R0bGluZy5pb3BzLXJlYWQtbWF4LWxlbmd0aCIsIDEpOw0KPiA+IC0gICAgICAg IHRocm90dGxlX2NmZy0+YnVja2V0c1tUSFJPVFRMRV9PUFNfV1JJVEVdLmJ1cnN0X2xlbmd0aCA9 DQo+ID4gLSAgICAgICAgICAgIHFlbXVfb3B0X2dldF9udW1iZXIob3B0cywNCj4gInRocm90dGxp bmcuaW9wcy13cml0ZS1tYXgtbGVuZ3RoIiwgMSk7DQo+ID4gLQ0KPiA+IC0gICAgICAgIHRocm90 dGxlX2NmZy0+b3Bfc2l6ZSA9DQo+ID4gLSAgICAgICAgICAgIHFlbXVfb3B0X2dldF9udW1iZXIo b3B0cywgInRocm90dGxpbmcuaW9wcy1zaXplIiwgMCk7DQo+ID4gKyAgICAgICAgdGhyb3R0bGVf cGFyc2Vfb3B0aW9ucyh0aHJvdHRsZV9jZmcsIG9wdHMpOw0KPiA+DQo+ID4gICAgICAgICAgaWYg KCF0aHJvdHRsZV9pc192YWxpZCh0aHJvdHRsZV9jZmcsIGVycnApKSB7DQo+ID4gICAgICAgICAg ICAgIHJldHVybjsNCj4gPiBkaWZmIC0tZ2l0IGEvZnNkZXYvcWVtdS1mc2Rldi10aHJvdHRsZS5j IGIvZnNkZXYvcWVtdS1mc2Rldi10aHJvdHRsZS5jDQo+ID4gaW5kZXggY2ZkODY0MS4uNmE0MTA4 YSAxMDA2NDQNCj4gPiAtLS0gYS9mc2Rldi9xZW11LWZzZGV2LXRocm90dGxlLmMNCj4gPiArKysg Yi9mc2Rldi9xZW11LWZzZGV2LXRocm90dGxlLmMNCj4gPiBAQCAtMTcsNiArMTcsNyBAQA0KPiA+ ICAjaW5jbHVkZSAicWVtdS1mc2Rldi10aHJvdHRsZS5oIg0KPiA+ICAjaW5jbHVkZSAicWVtdS9p b3YuaCINCj4gPiAgI2luY2x1ZGUgInFlbXUvb3B0aW9uLmgiDQo+ID4gKyNpbmNsdWRlICJxZW11 L3Rocm90dGxlLW9wdGlvbnMuaCINCj4gPg0KPiA+ICBzdGF0aWMgdm9pZCBmc2Rldl90aHJvdHRs ZV9yZWFkX3RpbWVyX2NiKHZvaWQgKm9wYXF1ZSkgIHsgQEAgLTMyLDQ4DQo+ID4gKzMzLDcgQEAg c3RhdGljIHZvaWQgZnNkZXZfdGhyb3R0bGVfd3JpdGVfdGltZXJfY2Iodm9pZCAqb3BhcXVlKQ0K PiA+DQo+ID4gIHZvaWQgZnNkZXZfdGhyb3R0bGVfcGFyc2Vfb3B0cyhRZW11T3B0cyAqb3B0cywg RnNUaHJvdHRsZSAqZnN0LCBFcnJvcg0KPiA+ICoqZXJycCkgIHsNCj4gPiAtICAgIHRocm90dGxl X2NvbmZpZ19pbml0KCZmc3QtPmNmZyk7DQo+ID4gLSAgICBmc3QtPmNmZy5idWNrZXRzW1RIUk9U VExFX0JQU19UT1RBTF0uYXZnID0NCj4gPiAtICAgICAgICBxZW11X29wdF9nZXRfbnVtYmVyKG9w dHMsICJ0aHJvdHRsaW5nLmJwcy10b3RhbCIsIDApOw0KPiA+IC0gICAgZnN0LT5jZmcuYnVja2V0 c1tUSFJPVFRMRV9CUFNfUkVBRF0uYXZnICA9DQo+ID4gLSAgICAgICAgcWVtdV9vcHRfZ2V0X251 bWJlcihvcHRzLCAidGhyb3R0bGluZy5icHMtcmVhZCIsIDApOw0KPiA+IC0gICAgZnN0LT5jZmcu YnVja2V0c1tUSFJPVFRMRV9CUFNfV1JJVEVdLmF2ZyA9DQo+ID4gLSAgICAgICAgcWVtdV9vcHRf Z2V0X251bWJlcihvcHRzLCAidGhyb3R0bGluZy5icHMtd3JpdGUiLCAwKTsNCj4gPiAtICAgIGZz dC0+Y2ZnLmJ1Y2tldHNbVEhST1RUTEVfT1BTX1RPVEFMXS5hdmcgPQ0KPiA+IC0gICAgICAgIHFl bXVfb3B0X2dldF9udW1iZXIob3B0cywgInRocm90dGxpbmcuaW9wcy10b3RhbCIsIDApOw0KPiA+ IC0gICAgZnN0LT5jZmcuYnVja2V0c1tUSFJPVFRMRV9PUFNfUkVBRF0uYXZnID0NCj4gPiAtICAg ICAgICBxZW11X29wdF9nZXRfbnVtYmVyKG9wdHMsICJ0aHJvdHRsaW5nLmlvcHMtcmVhZCIsIDAp Ow0KPiA+IC0gICAgZnN0LT5jZmcuYnVja2V0c1tUSFJPVFRMRV9PUFNfV1JJVEVdLmF2ZyA9DQo+ ID4gLSAgICAgICAgcWVtdV9vcHRfZ2V0X251bWJlcihvcHRzLCAidGhyb3R0bGluZy5pb3BzLXdy aXRlIiwgMCk7DQo+ID4gLQ0KPiA+IC0gICAgZnN0LT5jZmcuYnVja2V0c1tUSFJPVFRMRV9CUFNf VE9UQUxdLm1heCA9DQo+ID4gLSAgICAgICAgcWVtdV9vcHRfZ2V0X251bWJlcihvcHRzLCAidGhy b3R0bGluZy5icHMtdG90YWwtbWF4IiwgMCk7DQo+ID4gLSAgICBmc3QtPmNmZy5idWNrZXRzW1RI Uk9UVExFX0JQU19SRUFEXS5tYXggID0NCj4gPiAtICAgICAgICBxZW11X29wdF9nZXRfbnVtYmVy KG9wdHMsICJ0aHJvdHRsaW5nLmJwcy1yZWFkLW1heCIsIDApOw0KPiA+IC0gICAgZnN0LT5jZmcu YnVja2V0c1tUSFJPVFRMRV9CUFNfV1JJVEVdLm1heCA9DQo+ID4gLSAgICAgICAgcWVtdV9vcHRf Z2V0X251bWJlcihvcHRzLCAidGhyb3R0bGluZy5icHMtd3JpdGUtbWF4IiwgMCk7DQo+ID4gLSAg ICBmc3QtPmNmZy5idWNrZXRzW1RIUk9UVExFX09QU19UT1RBTF0ubWF4ID0NCj4gPiAtICAgICAg ICBxZW11X29wdF9nZXRfbnVtYmVyKG9wdHMsICJ0aHJvdHRsaW5nLmlvcHMtdG90YWwtbWF4Iiwg MCk7DQo+ID4gLSAgICBmc3QtPmNmZy5idWNrZXRzW1RIUk9UVExFX09QU19SRUFEXS5tYXggPQ0K PiA+IC0gICAgICAgIHFlbXVfb3B0X2dldF9udW1iZXIob3B0cywgInRocm90dGxpbmcuaW9wcy1y ZWFkLW1heCIsIDApOw0KPiA+IC0gICAgZnN0LT5jZmcuYnVja2V0c1tUSFJPVFRMRV9PUFNfV1JJ VEVdLm1heCA9DQo+ID4gLSAgICAgICAgcWVtdV9vcHRfZ2V0X251bWJlcihvcHRzLCAidGhyb3R0 bGluZy5pb3BzLXdyaXRlLW1heCIsIDApOw0KPiA+IC0NCj4gPiAtICAgIGZzdC0+Y2ZnLmJ1Y2tl dHNbVEhST1RUTEVfQlBTX1RPVEFMXS5idXJzdF9sZW5ndGggPQ0KPiA+IC0gICAgICAgIHFlbXVf b3B0X2dldF9udW1iZXIob3B0cywgInRocm90dGxpbmcuYnBzLXRvdGFsLW1heC1sZW5ndGgiLA0K PiAxKTsNCj4gPiAtICAgIGZzdC0+Y2ZnLmJ1Y2tldHNbVEhST1RUTEVfQlBTX1JFQURdLmJ1cnN0 X2xlbmd0aCAgPQ0KPiA+IC0gICAgICAgIHFlbXVfb3B0X2dldF9udW1iZXIob3B0cywgInRocm90 dGxpbmcuYnBzLXJlYWQtbWF4LWxlbmd0aCIsDQo+IDEpOw0KPiA+IC0gICAgZnN0LT5jZmcuYnVj a2V0c1tUSFJPVFRMRV9CUFNfV1JJVEVdLmJ1cnN0X2xlbmd0aCA9DQo+ID4gLSAgICAgICAgcWVt dV9vcHRfZ2V0X251bWJlcihvcHRzLCAidGhyb3R0bGluZy5icHMtd3JpdGUtbWF4LWxlbmd0aCIs DQo+IDEpOw0KPiA+IC0gICAgZnN0LT5jZmcuYnVja2V0c1tUSFJPVFRMRV9PUFNfVE9UQUxdLmJ1 cnN0X2xlbmd0aCA9DQo+ID4gLSAgICAgICAgcWVtdV9vcHRfZ2V0X251bWJlcihvcHRzLCAidGhy b3R0bGluZy5pb3BzLXRvdGFsLW1heC1sZW5ndGgiLA0KPiAxKTsNCj4gPiAtICAgIGZzdC0+Y2Zn LmJ1Y2tldHNbVEhST1RUTEVfT1BTX1JFQURdLmJ1cnN0X2xlbmd0aCA9DQo+ID4gLSAgICAgICAg cWVtdV9vcHRfZ2V0X251bWJlcihvcHRzLCAidGhyb3R0bGluZy5pb3BzLXJlYWQtbWF4LWxlbmd0 aCIsDQo+IDEpOw0KPiA+IC0gICAgZnN0LT5jZmcuYnVja2V0c1tUSFJPVFRMRV9PUFNfV1JJVEVd LmJ1cnN0X2xlbmd0aCA9DQo+ID4gLSAgICAgICAgcWVtdV9vcHRfZ2V0X251bWJlcihvcHRzLCAi dGhyb3R0bGluZy5pb3BzLXdyaXRlLW1heC1sZW5ndGgiLA0KPiAxKTsNCj4gPiAtICAgIGZzdC0+ Y2ZnLm9wX3NpemUgPQ0KPiA+IC0gICAgICAgIHFlbXVfb3B0X2dldF9udW1iZXIob3B0cywgInRo cm90dGxpbmcuaW9wcy1zaXplIiwgMCk7DQo+ID4gLQ0KPiA+ICsgICAgdGhyb3R0bGVfcGFyc2Vf b3B0aW9ucygmZnN0LT5jZmcsIG9wdHMpOw0KPiA+ICAgICAgdGhyb3R0bGVfaXNfdmFsaWQoJmZz dC0+Y2ZnLCBlcnJwKTsgIH0NCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3FlbXUvdGhy b3R0bGUtb3B0aW9ucy5oDQo+ID4gYi9pbmNsdWRlL3FlbXUvdGhyb3R0bGUtb3B0aW9ucy5oIGlu ZGV4IDM1MjhhOGYuLjk0NGEwOGMgMTAwNjQ0DQo+ID4gLS0tIGEvaW5jbHVkZS9xZW11L3Rocm90 dGxlLW9wdGlvbnMuaA0KPiA+ICsrKyBiL2luY2x1ZGUvcWVtdS90aHJvdHRsZS1vcHRpb25zLmgN Cj4gPiBAQCAtMTExLDQgKzExMSw2IEBADQo+ID4gICAgICAgICAgICAgIC5oZWxwID0gIndoZW4g bGltaXRpbmcgYnkgaW9wcyBtYXggc2l6ZSBvZiBhbiBJL08gaW4gYnl0ZXMiLFwNCj4gPiAgICAg ICAgICB9DQo+ID4NCj4gPiArdm9pZCB0aHJvdHRsZV9wYXJzZV9vcHRpb25zKFRocm90dGxlQ29u ZmlnICosIFFlbXVPcHRzICopOw0KPiA+ICsNCj4gPiAgI2VuZGlmDQo+ID4gZGlmZiAtLWdpdCBh L2luY2x1ZGUvcWVtdS90aHJvdHRsZS5oIGIvaW5jbHVkZS9xZW11L3Rocm90dGxlLmggaW5kZXgN Cj4gPiBhYmViODg2Li5mMzc5ZDkxIDEwMDY0NA0KPiA+IC0tLSBhL2luY2x1ZGUvcWVtdS90aHJv dHRsZS5oDQo+ID4gKysrIGIvaW5jbHVkZS9xZW11L3Rocm90dGxlLmgNCj4gPiBAQCAtOTAsMTAg KzkwLDEwIEBAIHR5cGVkZWYgc3RydWN0IExlYWt5QnVja2V0IHsNCj4gPiAgICogSG93ZXZlciBp dCBhbGxvd3MgdG8ga2VlcCB0aGUgY29kZSBjbGVhbiBhbmQgdGhlIGJ1Y2tldCBmaWVsZCBpcyBy ZXNldCB0bw0KPiA+ICAgKiB6ZXJvIGF0IHRoZSByaWdodCB0aW1lLg0KPiA+ICAgKi8NCj4gPiAt dHlwZWRlZiBzdHJ1Y3QgVGhyb3R0bGVDb25maWcgew0KPiA+ICtzdHJ1Y3QgVGhyb3R0bGVDb25m aWcgew0KPiA+ICAgICAgTGVha3lCdWNrZXQgYnVja2V0c1tCVUNLRVRTX0NPVU5UXTsgLyogbGVh a3kgYnVja2V0cyAqLw0KPiA+ICAgICAgdWludDY0X3Qgb3Bfc2l6ZTsgICAgICAgICAvKiBzaXpl IG9mIGFuIG9wZXJhdGlvbiBpbiBieXRlcyAqLw0KPiA+IC19IFRocm90dGxlQ29uZmlnOw0KPiA+ ICt9Ow0KPiA+DQo+ID4gIHR5cGVkZWYgc3RydWN0IFRocm90dGxlU3RhdGUgew0KPiA+ICAgICAg VGhyb3R0bGVDb25maWcgY2ZnOyAgICAgICAvKiBjb25maWd1cmF0aW9uICovDQo+ID4gZGlmZiAt LWdpdCBhL2luY2x1ZGUvcWVtdS90eXBlZGVmcy5oIGIvaW5jbHVkZS9xZW11L3R5cGVkZWZzLmgg aW5kZXgNCj4gPiAzZWMwZTEzLi4wZDc1ZWRjIDEwMDY0NA0KPiA+IC0tLSBhL2luY2x1ZGUvcWVt dS90eXBlZGVmcy5oDQo+ID4gKysrIGIvaW5jbHVkZS9xZW11L3R5cGVkZWZzLmgNCj4gPiBAQCAt MTA5LDYgKzEwOSw3IEBAIHR5cGVkZWYgc3RydWN0IFNlcmlhbFN0YXRlIFNlcmlhbFN0YXRlOyAg dHlwZWRlZg0KPiA+IHN0cnVjdCBTSFBDRGV2aWNlIFNIUENEZXZpY2U7ICB0eXBlZGVmIHN0cnVj dCBTTUJ1c0RldmljZSBTTUJ1c0RldmljZTsNCj4gPiB0eXBlZGVmIHN0cnVjdCBTU0lCdXMgU1NJ QnVzOw0KPiA+ICt0eXBlZGVmIHN0cnVjdCBUaHJvdHRsZUNvbmZpZyBUaHJvdHRsZUNvbmZpZzsN Cj4gPiAgdHlwZWRlZiBzdHJ1Y3QgdVdpcmVTbGF2ZSB1V2lyZVNsYXZlOyAgdHlwZWRlZiBzdHJ1 Y3QgVmlydElPRGV2aWNlDQo+ID4gVmlydElPRGV2aWNlOyAgdHlwZWRlZiBzdHJ1Y3QgVmlzaXRv ciBWaXNpdG9yOyBkaWZmIC0tZ2l0DQo+ID4gYS91dGlsL3Rocm90dGxlLmMgYi91dGlsL3Rocm90 dGxlLmMgaW5kZXggYjM4ZTc0Mi4uZTdkYjJhZCAxMDA2NDQNCj4gPiAtLS0gYS91dGlsL3Rocm90 dGxlLmMNCj4gPiArKysgYi91dGlsL3Rocm90dGxlLmMNCj4gPiBAQCAtMjcsNiArMjcsOCBAQA0K PiA+ICAjaW5jbHVkZSAicWVtdS90aHJvdHRsZS5oIg0KPiA+ICAjaW5jbHVkZSAicWVtdS90aW1l ci5oIg0KPiA+ICAjaW5jbHVkZSAiYmxvY2svYWlvLmgiDQo+ID4gKyNpbmNsdWRlICJxZW11L29w dGlvbi5oIg0KPiA+ICsjaW5jbHVkZSAicWVtdS90aHJvdHRsZS1vcHRpb25zLmgiDQo+ID4NCj4g PiAgLyogVGhpcyBmdW5jdGlvbiBtYWtlIGEgYnVja2V0IGxlYWsNCj4gPiAgICoNCj4gPiBAQCAt NjM2LDMgKzYzOCw2OSBAQCB2b2lkIHRocm90dGxlX2NvbmZpZ190b19saW1pdHMoVGhyb3R0bGVD b25maWcgKmNmZywNCj4gVGhyb3R0bGVMaW1pdHMgKnZhcikNCj4gPiAgICAgIHZhci0+aGFzX2lv cHNfd3JpdGVfbWF4X2xlbmd0aCA9IHRydWU7DQo+ID4gICAgICB2YXItPmhhc19pb3BzX3NpemUg PSB0cnVlOw0KPiA+ICB9DQo+ID4gKw0KPiA+ICsvKiBwYXJzZSB0aGUgdGhyb3R0bGUgb3B0aW9u cw0KPiA+ICsgKg0KPiA+ICsgKiBAb3B0czogcWVtdSBvcHRpb25zDQo+ID4gKyAqIEB0aHJvdHRs ZV9jZmc6IHRocm90dGxlIGNvbmZpZ3VyYXRpb24gICovIHZvaWQNCj4gPiArdGhyb3R0bGVfcGFy c2Vfb3B0aW9ucyhUaHJvdHRsZUNvbmZpZyAqdGhyb3R0bGVfY2ZnLCBRZW11T3B0cyAqb3B0cykN Cj4gPiArew0KPiA+ICsgICAgdGhyb3R0bGVfY29uZmlnX2luaXQodGhyb3R0bGVfY2ZnKTsNCj4g PiArICAgIHRocm90dGxlX2NmZy0+YnVja2V0c1tUSFJPVFRMRV9CUFNfVE9UQUxdLmF2ZyA9DQo+ ID4gKyAgICAgICAgcWVtdV9vcHRfZ2V0X251bWJlcihvcHRzLCBUSFJPVFRMRV9PUFRfUFJFRklY DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRRU1VX09QVF9CUFNfVE9UQUwsIDAp Ow0KPiA+ICsgICAgdGhyb3R0bGVfY2ZnLT5idWNrZXRzW1RIUk9UVExFX0JQU19SRUFEXS5hdmcg ID0NCj4gPiArICAgICAgICBxZW11X29wdF9nZXRfbnVtYmVyKG9wdHMsIFRIUk9UVExFX09QVF9Q UkVGSVgNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFFTVVfT1BUX0JQU19SRUFE LCAwKTsNCj4gPiArICAgIHRocm90dGxlX2NmZy0+YnVja2V0c1tUSFJPVFRMRV9CUFNfV1JJVEVd LmF2ZyA9DQo+ID4gKyAgICAgICAgcWVtdV9vcHRfZ2V0X251bWJlcihvcHRzLCBUSFJPVFRMRV9P UFRfUFJFRklYDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBRRU1VX09QVF9CUFNf V1JJVEUsIDApOw0KPiA+ICsgICAgdGhyb3R0bGVfY2ZnLT5idWNrZXRzW1RIUk9UVExFX09QU19U T1RBTF0uYXZnID0NCj4gPiArICAgICAgICBxZW11X29wdF9nZXRfbnVtYmVyKG9wdHMsIFRIUk9U VExFX09QVF9QUkVGSVgNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFFTVVfT1BU X0lPUFNfVE9UQUwsIDApOw0KPiA+ICsgICAgdGhyb3R0bGVfY2ZnLT5idWNrZXRzW1RIUk9UVExF X09QU19SRUFEXS5hdmcgPQ0KPiA+ICsgICAgICAgIHFlbXVfb3B0X2dldF9udW1iZXIob3B0cywg VEhST1RUTEVfT1BUX1BSRUZJWA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgUUVN VV9PUFRfSU9QU19SRUFELCAwKTsNCj4gPiArICAgIHRocm90dGxlX2NmZy0+YnVja2V0c1tUSFJP VFRMRV9PUFNfV1JJVEVdLmF2ZyA9DQo+ID4gKyAgICAgICAgcWVtdV9vcHRfZ2V0X251bWJlcihv cHRzLCBUSFJPVFRMRV9PUFRfUFJFRklYDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBRRU1VX09QVF9JT1BTX1dSSVRFLCAwKTsNCj4gPiArICAgIHRocm90dGxlX2NmZy0+YnVja2V0 c1tUSFJPVFRMRV9CUFNfVE9UQUxdLm1heCA9DQo+ID4gKyAgICAgICAgcWVtdV9vcHRfZ2V0X251 bWJlcihvcHRzLCBUSFJPVFRMRV9PUFRfUFJFRklYDQo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBRRU1VX09QVF9CUFNfVE9UQUxfTUFYLCAwKTsNCj4gPiArICAgIHRocm90dGxlX2Nm Zy0+YnVja2V0c1tUSFJPVFRMRV9CUFNfUkVBRF0ubWF4ICA9DQo+ID4gKyAgICAgICAgcWVtdV9v cHRfZ2V0X251bWJlcihvcHRzLCBUSFJPVFRMRV9PUFRfUFJFRklYDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBRRU1VX09QVF9CUFNfUkVBRF9NQVgsIDApOw0KPiA+ICsgICAgdGhy b3R0bGVfY2ZnLT5idWNrZXRzW1RIUk9UVExFX0JQU19XUklURV0ubWF4ID0NCj4gPiArICAgICAg ICBxZW11X29wdF9nZXRfbnVtYmVyKG9wdHMsIFRIUk9UVExFX09QVF9QUkVGSVgNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFFTVVfT1BUX0JQU19XUklURV9NQVgsIDApOw0KPiA+ ICsgICAgdGhyb3R0bGVfY2ZnLT5idWNrZXRzW1RIUk9UVExFX09QU19UT1RBTF0ubWF4ID0NCj4g PiArICAgICAgICBxZW11X29wdF9nZXRfbnVtYmVyKG9wdHMsIFRIUk9UVExFX09QVF9QUkVGSVgN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFFTVVfT1BUX0lPUFNfVE9UQUxfTUFY LCAwKTsNCj4gPiArICAgIHRocm90dGxlX2NmZy0+YnVja2V0c1tUSFJPVFRMRV9PUFNfUkVBRF0u bWF4ID0NCj4gPiArICAgICAgICBxZW11X29wdF9nZXRfbnVtYmVyKG9wdHMsIFRIUk9UVExFX09Q VF9QUkVGSVgNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFFTVVfT1BUX0lPUFNf UkVBRF9NQVgsIDApOw0KPiA+ICsgICAgdGhyb3R0bGVfY2ZnLT5idWNrZXRzW1RIUk9UVExFX09Q U19XUklURV0ubWF4ID0NCj4gPiArICAgICAgICBxZW11X29wdF9nZXRfbnVtYmVyKG9wdHMsIFRI Uk9UVExFX09QVF9QUkVGSVgNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFFTVVf T1BUX0lPUFNfV1JJVEVfTUFYLCAwKTsNCj4gPiArICAgIHRocm90dGxlX2NmZy0+YnVja2V0c1tU SFJPVFRMRV9CUFNfVE9UQUxdLmJ1cnN0X2xlbmd0aCA9DQo+ID4gKyAgICAgICAgcWVtdV9vcHRf Z2V0X251bWJlcihvcHRzLCBUSFJPVFRMRV9PUFRfUFJFRklYDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBRRU1VX09QVF9CUFNfVE9UQUxfTUFYX0xFTkdUSCwNCj4gMSk7DQo+ID4g KyAgICB0aHJvdHRsZV9jZmctPmJ1Y2tldHNbVEhST1RUTEVfQlBTX1JFQURdLmJ1cnN0X2xlbmd0 aCAgPQ0KPiA+ICsgICAgICAgIHFlbXVfb3B0X2dldF9udW1iZXIob3B0cywgVEhST1RUTEVfT1BU X1BSRUZJWA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgUUVNVV9PUFRfQlBTX1JF QURfTUFYX0xFTkdUSCwNCj4gMSk7DQo+ID4gKyAgICB0aHJvdHRsZV9jZmctPmJ1Y2tldHNbVEhS T1RUTEVfQlBTX1dSSVRFXS5idXJzdF9sZW5ndGggPQ0KPiA+ICsgICAgICAgIHFlbXVfb3B0X2dl dF9udW1iZXIob3B0cywgVEhST1RUTEVfT1BUX1BSRUZJWA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUUVNVV9PUFRfQlBTX1dSSVRFX01BWF9MRU5HVEgsDQo+IDEpOw0KPiA+ICsg ICAgdGhyb3R0bGVfY2ZnLT5idWNrZXRzW1RIUk9UVExFX09QU19UT1RBTF0uYnVyc3RfbGVuZ3Ro ID0NCj4gPiArICAgICAgICBxZW11X29wdF9nZXRfbnVtYmVyKG9wdHMsIFRIUk9UVExFX09QVF9Q UkVGSVgNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFFTVVfT1BUX0lPUFNfVE9U QUxfTUFYX0xFTkdUSCwNCj4gMSk7DQo+ID4gKyAgICB0aHJvdHRsZV9jZmctPmJ1Y2tldHNbVEhS T1RUTEVfT1BTX1JFQURdLmJ1cnN0X2xlbmd0aCA9DQo+ID4gKyAgICAgICAgcWVtdV9vcHRfZ2V0 X251bWJlcihvcHRzLCBUSFJPVFRMRV9PUFRfUFJFRklYDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBRRU1VX09QVF9JT1BTX1JFQURfTUFYX0xFTkdUSCwNCj4gMSk7DQo+ID4gKyAg ICB0aHJvdHRsZV9jZmctPmJ1Y2tldHNbVEhST1RUTEVfT1BTX1dSSVRFXS5idXJzdF9sZW5ndGgg PQ0KPiA+ICsgICAgICAgIHFlbXVfb3B0X2dldF9udW1iZXIob3B0cywgVEhST1RUTEVfT1BUX1BS RUZJWA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgUUVNVV9PUFRfSU9QU19XUklU RV9NQVhfTEVOR1RILA0KPiAxKTsNCj4gPiArICAgIHRocm90dGxlX2NmZy0+b3Bfc2l6ZSA9DQo+ ID4gKyAgICAgICAgcWVtdV9vcHRfZ2V0X251bWJlcihvcHRzLCBUSFJPVFRMRV9PUFRfUFJFRklY DQo+ID4gK1FFTVVfT1BUX0lPUFNfU0laRSwgMCk7IH0NCg0K