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 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B3DA8C433EF for ; Mon, 10 Jan 2022 03:04:37 +0000 (UTC) Received: from localhost ([::1]:38184 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n6kz6-00070c-HI for qemu-devel@archiver.kernel.org; Sun, 09 Jan 2022 22:04:36 -0500 Received: from eggs.gnu.org ([209.51.188.92]:59448) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n6kxr-0006HA-8W for qemu-devel@nongnu.org; Sun, 09 Jan 2022 22:03:19 -0500 Received: from szxga01-in.huawei.com ([45.249.212.187]:3448) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n6kxo-0001GJ-4n for qemu-devel@nongnu.org; Sun, 09 Jan 2022 22:03:19 -0500 Received: from dggpeml500026.china.huawei.com (unknown [172.30.72.53]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4JXJXN5xHZzccMK; Mon, 10 Jan 2022 11:02:28 +0800 (CST) Received: from dggpeml100016.china.huawei.com (7.185.36.216) by dggpeml500026.china.huawei.com (7.185.36.106) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Mon, 10 Jan 2022 11:03:06 +0800 Received: from dggpeml100016.china.huawei.com ([7.185.36.216]) by dggpeml100016.china.huawei.com ([7.185.36.216]) with mapi id 15.01.2308.020; Mon, 10 Jan 2022 11:03:06 +0800 To: Jason Wang CC: Stefan Hajnoczi , mst , "Stefano Garzarella" , Cornelia Huck , pbonzini , "Gonglei (Arei)" , Yechuan , Huangzhichao , qemu-devel Subject: RE: [RFC 01/10] virtio: get class_id and pci device id by the virtio id Thread-Topic: [RFC 01/10] virtio: get class_id and pci device id by the virtio id Thread-Index: AQHYAc9vCeFWPgdrrU+qsnWZQ04FAaxTUiwAgACZmDD//4GrAIAIBPQA Date: Mon, 10 Jan 2022 03:03:06 +0000 Message-ID: References: <20220105005900.860-1-longpeng2@huawei.com> <20220105005900.860-2-longpeng2@huawei.com> <23a3d3367ef84f2b83b70feda27efccc@huawei.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.174.148.223] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected Received-SPF: pass client-ip=45.249.212.187; envelope-from=longpeng2@huawei.com; helo=szxga01-in.huawei.com X-Spam_score_int: -41 X-Spam_score: -4.2 X-Spam_bar: ---- X-Spam_report: (-4.2 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Reply-to: "Longpeng (Mike, Cloud Infrastructure Service Product Dept.)" From: longpeng2--- via DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSmFzb24gV2FuZyBbbWFp bHRvOmphc293YW5nQHJlZGhhdC5jb21dDQo+IFNlbnQ6IFdlZG5lc2RheSwgSmFudWFyeSA1LCAy MDIyIDI6MTUgUE0NCj4gVG86IExvbmdwZW5nIChNaWtlLCBDbG91ZCBJbmZyYXN0cnVjdHVyZSBT ZXJ2aWNlIFByb2R1Y3QgRGVwdC4pDQo+IDxsb25ncGVuZzJAaHVhd2VpLmNvbT4NCj4gQ2M6IFN0 ZWZhbiBIYWpub2N6aSA8c3RlZmFuaGFAcmVkaGF0LmNvbT47IG1zdCA8bXN0QHJlZGhhdC5jb20+ OyBTdGVmYW5vDQo+IEdhcnphcmVsbGEgPHNnYXJ6YXJlQHJlZGhhdC5jb20+OyBDb3JuZWxpYSBI dWNrIDxjb2h1Y2tAcmVkaGF0LmNvbT47IHBib256aW5pDQo+IDxwYm9uemluaUByZWRoYXQuY29t PjsgR29uZ2xlaSAoQXJlaSkgPGFyZWkuZ29uZ2xlaUBodWF3ZWkuY29tPjsgWWVjaHVhbg0KPiA8 eWVjaHVhbkBodWF3ZWkuY29tPjsgSHVhbmd6aGljaGFvIDxodWFuZ3poaWNoYW9AaHVhd2VpLmNv bT47IHFlbXUtZGV2ZWwNCj4gPHFlbXUtZGV2ZWxAbm9uZ251Lm9yZz4NCj4gU3ViamVjdDogUmU6 IFtSRkMgMDEvMTBdIHZpcnRpbzogZ2V0IGNsYXNzX2lkIGFuZCBwY2kgZGV2aWNlIGlkIGJ5IHRo ZSB2aXJ0aW8NCj4gaWQNCj4gDQo+IE9uIFdlZCwgSmFuIDUsIDIwMjIgYXQgMTo0OCBQTSBMb25n cGVuZyAoTWlrZSwgQ2xvdWQgSW5mcmFzdHJ1Y3R1cmUNCj4gU2VydmljZSBQcm9kdWN0IERlcHQu KSA8bG9uZ3BlbmcyQGh1YXdlaS5jb20+IHdyb3RlOg0KPiA+DQo+ID4NCj4gPg0KPiA+ID4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IEphc29uIFdhbmcgW21haWx0bzpq YXNvd2FuZ0ByZWRoYXQuY29tXQ0KPiA+ID4gU2VudDogV2VkbmVzZGF5LCBKYW51YXJ5IDUsIDIw MjIgMTI6MzggUE0NCj4gPiA+IFRvOiBMb25ncGVuZyAoTWlrZSwgQ2xvdWQgSW5mcmFzdHJ1Y3R1 cmUgU2VydmljZSBQcm9kdWN0IERlcHQuKQ0KPiA+ID4gPGxvbmdwZW5nMkBodWF3ZWkuY29tPg0K PiA+ID4gQ2M6IFN0ZWZhbiBIYWpub2N6aSA8c3RlZmFuaGFAcmVkaGF0LmNvbT47IG1zdCA8bXN0 QHJlZGhhdC5jb20+OyBTdGVmYW5vDQo+ID4gPiBHYXJ6YXJlbGxhIDxzZ2FyemFyZUByZWRoYXQu Y29tPjsgQ29ybmVsaWEgSHVjayA8Y29odWNrQHJlZGhhdC5jb20+Ow0KPiBwYm9uemluaQ0KPiA+ ID4gPHBib256aW5pQHJlZGhhdC5jb20+OyBHb25nbGVpIChBcmVpKSA8YXJlaS5nb25nbGVpQGh1 YXdlaS5jb20+OyBZZWNodWFuDQo+ID4gPiA8eWVjaHVhbkBodWF3ZWkuY29tPjsgSHVhbmd6aGlj aGFvIDxodWFuZ3poaWNoYW9AaHVhd2VpLmNvbT47IHFlbXUtZGV2ZWwNCj4gPiA+IDxxZW11LWRl dmVsQG5vbmdudS5vcmc+DQo+ID4gPiBTdWJqZWN0OiBSZTogW1JGQyAwMS8xMF0gdmlydGlvOiBn ZXQgY2xhc3NfaWQgYW5kIHBjaSBkZXZpY2UgaWQgYnkgdGhlIHZpcnRpbw0KPiA+ID4gaWQNCj4g PiA+DQo+ID4gPiBPbiBXZWQsIEphbiA1LCAyMDIyIGF0IDg6NTkgQU0gTG9uZ3BlbmcoTWlrZSkg PGxvbmdwZW5nMkBodWF3ZWkuY29tPiB3cm90ZToNCj4gPiA+ID4NCj4gPiA+ID4gRnJvbTogTG9u Z3BlbmcgPGxvbmdwZW5nMkBodWF3ZWkuY29tPg0KPiA+ID4gPg0KPiA+ID4gPiBBZGQgaGVscGVy cyB0byBnZXQgdGhlICJUcmFuc2l0aW9uYWwgUENJIERldmljZSBJRCIgYW5kICJjbGFzc19pZCIg b2YgdGhlDQo+ID4gPiA+IGRlaXZjZSB3aGljaCBpcyBzcGVjaWZpY2VkIGJ5IHRoZSAiVmlydGlv IERldmljZSBJRCIuDQo+ID4gPiA+DQo+ID4gPiA+IFRoZXNlIGhlbHBlcnMgd2lsbCBiZSB1c2Vk IHRvIGJ1aWxkIHRoZSBnZW5lcmljIHZEUEEgZGV2aWNlIGxhdGVyLg0KPiA+ID4gPg0KPiA+ID4g PiBTaWduZWQtb2ZmLWJ5OiBMb25ncGVuZyA8bG9uZ3BlbmcyQGh1YXdlaS5jb20+DQo+ID4gPiA+ IC0tLQ0KPiA+ID4gPiAgaHcvdmlydGlvL3ZpcnRpby1wY2kuYyB8IDkzICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ID4gPiAgaHcvdmlydGlvL3ZpcnRpby1w Y2kuaCB8ICA0ICsrDQo+ID4gPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDk3IGluc2VydGlvbnMoKykN Cj4gPiA+ID4NCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2h3L3ZpcnRpby92aXJ0aW8tcGNpLmMgYi9o dy92aXJ0aW8vdmlydGlvLXBjaS5jDQo+ID4gPiA+IGluZGV4IDc1MGFhNDdlYzEuLjg0MzA4NWM0 ZWEgMTAwNjQ0DQo+ID4gPiA+IC0tLSBhL2h3L3ZpcnRpby92aXJ0aW8tcGNpLmMNCj4gPiA+ID4g KysrIGIvaHcvdmlydGlvL3ZpcnRpby1wY2kuYw0KPiA+ID4gPiBAQCAtMTksNiArMTksNyBAQA0K PiA+ID4gPg0KPiA+ID4gPiAgI2luY2x1ZGUgImV4ZWMvbWVtb3AuaCINCj4gPiA+ID4gICNpbmNs dWRlICJzdGFuZGFyZC1oZWFkZXJzL2xpbnV4L3ZpcnRpb19wY2kuaCINCj4gPiA+ID4gKyNpbmNs dWRlICJzdGFuZGFyZC1oZWFkZXJzL2xpbnV4L3ZpcnRpb19pZHMuaCINCj4gPiA+ID4gICNpbmNs dWRlICJody9ib2FyZHMuaCINCj4gPiA+ID4gICNpbmNsdWRlICJody92aXJ0aW8vdmlydGlvLmgi DQo+ID4gPiA+ICAjaW5jbHVkZSAibWlncmF0aW9uL3FlbXUtZmlsZS10eXBlcy5oIg0KPiA+ID4g PiBAQCAtMjEzLDYgKzIxNCw5NSBAQCBzdGF0aWMgaW50IHZpcnRpb19wY2lfbG9hZF9xdWV1ZShE ZXZpY2VTdGF0ZSAqZCwgaW50DQo+IG4sDQo+ID4gPiBRRU1VRmlsZSAqZikNCj4gPiA+ID4gICAg ICByZXR1cm4gMDsNCj4gPiA+ID4gIH0NCj4gPiA+ID4NCj4gPiA+ID4gK3R5cGVkZWYgc3RydWN0 IFZpcnRJT1BDSUlESW5mbyB7DQo+ID4gPiA+ICsgICAgdWludDE2X3QgdmRldl9pZDsgLyogdmly dGlvIGlkICovDQo+ID4gPiA+ICsgICAgdWludDE2X3QgcGRldl9pZDsgLyogcGNpIGRldmljZSBp ZCAqLw0KPiA+ID4gPiArICAgIHVpbnQxNl90IGNsYXNzX2lkOw0KPiA+ID4gPiArfSBWaXJ0SU9Q Q0lJREluZm87DQo+ID4gPiA+ICsNCj4gPiA+ID4gK3N0YXRpYyBjb25zdCBWaXJ0SU9QQ0lJRElu Zm8gdmlydGlvX3BjaV9pZF9pbmZvW10gPSB7DQo+ID4gPiA+ICsgICAgew0KPiA+ID4NCj4gPiA+ IEFueSB3YXkgdG8gZ2V0IHJpZCBvZiB0aGlzIGFycmF5PyBFLmcgdXNpbmcgdGhlIGFsZ29yaXRo bSB0aGF0IGlzIHVzZWQNCj4gPiA+IGJ5IHRoZSBrZXJuZWwgdmlydGlvIGRyaXZlci4NCj4gPiA+ DQo+ID4NCj4gPiBGb3IgZGV2aWNlIGlkLCB3ZSBjYW4gdXNlIHRoZSBhbGdvcml0aG0gaWYgd2Ug bm8gbmVlZCB0byBzdXBwb3J0DQo+ID4gVHJhbnNpdGlvbmFsIGlkLiBCdXQgaG93IHRvIGdldCB0 aGUgY2xhc3MgaWQgPw0KPiANCj4gUmlnaHQsIEkgbWlzcyB0aGlzLiBTbyB0aGUgY3VycmVudCBj b2RlIHNob3VsZCBiZSBmaW5lLg0KPiANCg0KTWF5YmUgdGhlIGZvbGxvd2luZyB3YXkgd291bGQg YmUgYmV0dGVyPyBJdCBjYW4gc2F2ZSBhYm91dCA0MCBsaW5lcy4NCg0KI2RlZmluZSBWSVJUSU9f UENJX0lEX0lORk8obmFtZSwgY2xhc3MpICAgXA0KICAgIHtWSVJUSU9fSURfIyNuYW1lLCBQQ0lf REVWSUNFX0lEX1ZJUlRJT18jI25hbWUsIGNsYXNzfQ0KDQpzdGF0aWMgY29uc3QgVmlydElPUENJ SURJbmZvIHZpcnRpb19wY2lfaWRfaW5mb1tdID0gew0KICAgIFZJUlRJT19QQ0lfSURfSU5GTyhO RVQsICAgICBQQ0lfQ0xBU1NfTkVUV09SS19FVEhFUk5FVCksDQogICAgVklSVElPX1BDSV9JRF9J TkZPKEJMT0NLLCAgIFBDSV9DTEFTU19TVE9SQUdFX1NDU0kpLA0KICAgIFZJUlRJT19QQ0lfSURf SU5GTyhTQ1NJLCAgICBQQ0lfQ0xBU1NfU1RPUkFHRV9TQ1NJKSwNCiAgICBWSVJUSU9fUENJX0lE X0lORk8oQ09OU09MRSwgUENJX0NMQVNTX0NPTU1VTklDQVRJT05fT1RIRVIpLA0KICAgIFZJUlRJ T19QQ0lfSURfSU5GTyhWU09DSywgICBQQ0lfQ0xBU1NfQ09NTVVOSUNBVElPTl9PVEhFUiksDQog ICAgVklSVElPX1BDSV9JRF9JTkZPKElPTU1VLCAgIFBDSV9DTEFTU19PVEhFUlMpLA0KICAgIFZJ UlRJT19QQ0lfSURfSU5GTyhNRU0sICAgICBQQ0lfQ0xBU1NfT1RIRVJTKSwNCiAgICBWSVJUSU9f UENJX0lEX0lORk8oUE1FTSwgICAgUENJX0NMQVNTX09USEVSUyksDQogICAgVklSVElPX1BDSV9J RF9JTkZPKFJORywgICAgIFBDSV9DTEFTU19PVEhFUlMpLA0KICAgIFZJUlRJT19QQ0lfSURfSU5G TyhCQUxMT09OLCBQQ0lfQ0xBU1NfT1RIRVJTKSwNCiAgICBWSVJUSU9fUENJX0lEX0lORk8oOVAs ICAgICAgUENJX0JBU0VfQ0xBU1NfTkVUV09SSyksDQp9Ow0KDQoNCj4gVGhhbmtzDQo+IA0KPiA+ DQo+ID4gPiBUaGFua3MNCj4gPiA+DQo+ID4gPiA+ICsgICAgICAgIC52ZGV2X2lkID0gVklSVElP X0lEX05FVCwNCj4gPiA+ID4gKyAgICAgICAgLnBkZXZfaWQgPSBQQ0lfREVWSUNFX0lEX1ZJUlRJ T19ORVQsDQo+ID4gPiA+ICsgICAgICAgIC5jbGFzc19pZCA9IFBDSV9DTEFTU19ORVRXT1JLX0VU SEVSTkVULA0KPiA+ID4gPiArICAgIH0sDQo+ID4gPiA+ICsgICAgew0KPiA+ID4gPiArICAgICAg ICAudmRldl9pZCA9IFZJUlRJT19JRF9CTE9DSywNCj4gPiA+ID4gKyAgICAgICAgLnBkZXZfaWQg PSBQQ0lfREVWSUNFX0lEX1ZJUlRJT19CTE9DSywNCj4gPiA+ID4gKyAgICAgICAgLmNsYXNzX2lk ID0gUENJX0NMQVNTX1NUT1JBR0VfU0NTSSwNCj4gPiA+ID4gKyAgICB9LA0KPiA+ID4gPiArICAg IHsNCj4gPiA+ID4gKyAgICAgICAgLnZkZXZfaWQgPSBWSVJUSU9fSURfQ09OU09MRSwNCj4gPiA+ ID4gKyAgICAgICAgLnBkZXZfaWQgPSBQQ0lfREVWSUNFX0lEX1ZJUlRJT19DT05TT0xFLA0KPiA+ ID4gPiArICAgICAgICAuY2xhc3NfaWQgPSBQQ0lfQ0xBU1NfQ09NTVVOSUNBVElPTl9PVEhFUiwN Cj4gPiA+ID4gKyAgICB9LA0KPiA+ID4gPiArICAgIHsNCj4gPiA+ID4gKyAgICAgICAgLnZkZXZf aWQgPSBWSVJUSU9fSURfU0NTSSwNCj4gPiA+ID4gKyAgICAgICAgLnBkZXZfaWQgPSBQQ0lfREVW SUNFX0lEX1ZJUlRJT19TQ1NJLA0KPiA+ID4gPiArICAgICAgICAuY2xhc3NfaWQgPSBQQ0lfQ0xB U1NfU1RPUkFHRV9TQ1NJLA0KPiA+ID4gPiArICAgIH0sDQo+ID4gPiA+ICsgICAgew0KPiA+ID4g PiArICAgICAgICAudmRldl9pZCA9IFZJUlRJT19JRF85UCwNCj4gPiA+ID4gKyAgICAgICAgLnBk ZXZfaWQgPSBQQ0lfREVWSUNFX0lEX1ZJUlRJT185UCwNCj4gPiA+ID4gKyAgICAgICAgLmNsYXNz X2lkID0gUENJX0JBU0VfQ0xBU1NfTkVUV09SSywNCj4gPiA+ID4gKyAgICB9LA0KPiA+ID4gPiAr ICAgIHsNCj4gPiA+ID4gKyAgICAgICAgLnZkZXZfaWQgPSBWSVJUSU9fSURfVlNPQ0ssDQo+ID4g PiA+ICsgICAgICAgIC5wZGV2X2lkID0gUENJX0RFVklDRV9JRF9WSVJUSU9fVlNPQ0ssDQo+ID4g PiA+ICsgICAgICAgIC5jbGFzc19pZCA9IFBDSV9DTEFTU19DT01NVU5JQ0FUSU9OX09USEVSLA0K PiA+ID4gPiArICAgIH0sDQo+ID4gPiA+ICsgICAgew0KPiA+ID4gPiArICAgICAgICAudmRldl9p ZCA9IFZJUlRJT19JRF9JT01NVSwNCj4gPiA+ID4gKyAgICAgICAgLnBkZXZfaWQgPSBQQ0lfREVW SUNFX0lEX1ZJUlRJT19JT01NVSwNCj4gPiA+ID4gKyAgICAgICAgLmNsYXNzX2lkID0gUENJX0NM QVNTX09USEVSUywNCj4gPiA+ID4gKyAgICB9LA0KPiA+ID4gPiArICAgIHsNCj4gPiA+ID4gKyAg ICAgICAgLnZkZXZfaWQgPSBWSVJUSU9fSURfTUVNLA0KPiA+ID4gPiArICAgICAgICAucGRldl9p ZCA9IFBDSV9ERVZJQ0VfSURfVklSVElPX01FTSwNCj4gPiA+ID4gKyAgICAgICAgLmNsYXNzX2lk ID0gUENJX0NMQVNTX09USEVSUywNCj4gPiA+ID4gKyAgICB9LA0KPiA+ID4gPiArICAgIHsNCj4g PiA+ID4gKyAgICAgICAgLnZkZXZfaWQgPSBWSVJUSU9fSURfUE1FTSwNCj4gPiA+ID4gKyAgICAg ICAgLnBkZXZfaWQgPSBQQ0lfREVWSUNFX0lEX1ZJUlRJT19QTUVNLA0KPiA+ID4gPiArICAgICAg ICAuY2xhc3NfaWQgPSBQQ0lfQ0xBU1NfT1RIRVJTLA0KPiA+ID4gPiArICAgIH0sDQo+ID4gPiA+ ICsgICAgew0KPiA+ID4gPiArICAgICAgICAudmRldl9pZCA9IFZJUlRJT19JRF9STkcsDQo+ID4g PiA+ICsgICAgICAgIC5wZGV2X2lkID0gUENJX0RFVklDRV9JRF9WSVJUSU9fUk5HLA0KPiA+ID4g PiArICAgICAgICAuY2xhc3NfaWQgPSBQQ0lfQ0xBU1NfT1RIRVJTLA0KPiA+ID4gPiArICAgIH0s DQo+ID4gPiA+ICsgICAgew0KPiA+ID4gPiArICAgICAgICAudmRldl9pZCA9IFZJUlRJT19JRF9C QUxMT09OLA0KPiA+ID4gPiArICAgICAgICAucGRldl9pZCA9IFBDSV9ERVZJQ0VfSURfVklSVElP X0JBTExPT04sDQo+ID4gPiA+ICsgICAgICAgIC5jbGFzc19pZCA9IFBDSV9DTEFTU19PVEhFUlMs DQo+ID4gPiA+ICsgICAgfSwNCj4gPiA+ID4gK307DQo+ID4gPiA+ICsNCj4gPiA+ID4gK3N0YXRp YyBWaXJ0SU9QQ0lJREluZm8gdmlydGlvX3BjaV9nZXRfaWRfaW5mbyh1aW50MTZfdCB2ZGV2X2lk KQ0KPiA+ID4gPiArew0KPiA+ID4gPiArICAgIFZpcnRJT1BDSUlESW5mbyBpbmZvID0ge307DQo+ ID4gPiA+ICsgICAgaW50IGk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgICBmb3IgKGkgPSAwOyBp IDwgQVJSQVlfU0laRSh2aXJ0aW9fcGNpX2lkX2luZm8pOyBpKyspIHsNCj4gPiA+ID4gKyAgICAg ICAgaWYgKHZpcnRpb19wY2lfaWRfaW5mb1tpXS52ZGV2X2lkID09IHZkZXZfaWQpIHsNCj4gPiA+ ID4gKyAgICAgICAgICAgIGluZm8gPSB2aXJ0aW9fcGNpX2lkX2luZm9baV07DQo+ID4gPiA+ICsg ICAgICAgICAgICBicmVhazsNCj4gPiA+ID4gKyAgICAgICAgfQ0KPiA+ID4gPiArICAgIH0NCj4g PiA+ID4gKw0KPiA+ID4gPiArICAgIHJldHVybiBpbmZvOw0KPiA+ID4gPiArfQ0KPiA+ID4gPiAr DQo+ID4gPiA+ICt1aW50MTZfdCB2aXJ0aW9fcGNpX2dldF9wY2lfZGV2aWQodWludDE2X3QgZGV2 aWNlX2lkKQ0KPiA+ID4gPiArew0KPiA+ID4gPiArICAgIHJldHVybiB2aXJ0aW9fcGNpX2dldF9p ZF9pbmZvKGRldmljZV9pZCkucGRldl9pZDsNCj4gPiA+ID4gK30NCj4gPiA+ID4gKw0KPiA+ID4g PiArdWludDE2X3QgdmlydGlvX3BjaV9nZXRfY2xhc3NfaWQodWludDE2X3QgZGV2aWNlX2lkKQ0K PiA+ID4gPiArew0KPiA+ID4gPiArICAgIHJldHVybiB2aXJ0aW9fcGNpX2dldF9pZF9pbmZvKGRl dmljZV9pZCkuY2xhc3NfaWQ7DQo+ID4gPiA+ICt9DQo+ID4gPiA+ICsNCj4gPiA+ID4gIHN0YXRp YyBib29sIHZpcnRpb19wY2lfaW9ldmVudGZkX2VuYWJsZWQoRGV2aWNlU3RhdGUgKmQpDQo+ID4g PiA+ICB7DQo+ID4gPiA+ICAgICAgVmlydElPUENJUHJveHkgKnByb3h5ID0gdG9fdmlydGlvX3Bj aV9wcm94eShkKTsNCj4gPiA+ID4gQEAgLTE2NzQsNiArMTc2NCw5IEBAIHN0YXRpYyB2b2lkIHZp cnRpb19wY2lfZGV2aWNlX3BsdWdnZWQoRGV2aWNlU3RhdGUNCj4gKmQsDQo+ID4gPiBFcnJvciAq KmVycnApDQo+ID4gPiA+ICAgICAgICAgICAqIGlzIHNldCB0byBQQ0lfU1VCVkVORE9SX0lEX1JF REhBVF9RVU1SQU5FVCBieSBkZWZhdWx0Lg0KPiA+ID4gPiAgICAgICAgICAgKi8NCj4gPiA+ID4g ICAgICAgICAgcGNpX3NldF93b3JkKGNvbmZpZyArIFBDSV9TVUJTWVNURU1fSUQsDQo+ID4gPiB2 aXJ0aW9fYnVzX2dldF92ZGV2X2lkKGJ1cykpOw0KPiA+ID4gPiArICAgICAgICBpZiAocHJveHkt PnBkZXZfaWQpIHsNCj4gPiA+ID4gKyAgICAgICAgICAgIHBjaV9jb25maWdfc2V0X2RldmljZV9p ZChjb25maWcsIHByb3h5LT5wZGV2X2lkKTsNCj4gPiA+ID4gKyAgICAgICAgfQ0KPiA+ID4gPiAg ICAgIH0gZWxzZSB7DQo+ID4gPiA+ICAgICAgICAgIC8qIHB1cmUgdmlydGlvLTEuMCAqLw0KPiA+ ID4gPiAgICAgICAgICBwY2lfc2V0X3dvcmQoY29uZmlnICsgUENJX1ZFTkRPUl9JRCwNCj4gPiA+ ID4gZGlmZiAtLWdpdCBhL2h3L3ZpcnRpby92aXJ0aW8tcGNpLmggYi9ody92aXJ0aW8vdmlydGlv LXBjaS5oDQo+ID4gPiA+IGluZGV4IDI0NDZkY2Q5YWUuLjA2YWE1OTQzNmUgMTAwNjQ0DQo+ID4g PiA+IC0tLSBhL2h3L3ZpcnRpby92aXJ0aW8tcGNpLmgNCj4gPiA+ID4gKysrIGIvaHcvdmlydGlv L3ZpcnRpby1wY2kuaA0KPiA+ID4gPiBAQCAtMTQ2LDYgKzE0Niw3IEBAIHN0cnVjdCBWaXJ0SU9Q Q0lQcm94eSB7DQo+ID4gPiA+ICAgICAgYm9vbCBkaXNhYmxlX21vZGVybjsNCj4gPiA+ID4gICAg ICBib29sIGlnbm9yZV9iYWNrZW5kX2ZlYXR1cmVzOw0KPiA+ID4gPiAgICAgIE9uT2ZmQXV0byBk aXNhYmxlX2xlZ2FjeTsNCj4gPiA+ID4gKyAgICB1aW50MTZfdCBwZGV2X2lkOw0KPiA+ID4gPiAg ICAgIHVpbnQzMl90IGNsYXNzX2NvZGU7DQo+ID4gPiA+ICAgICAgdWludDMyX3QgbnZlY3RvcnM7 DQo+ID4gPiA+ICAgICAgdWludDMyX3QgZGZzZWxlY3Q7DQo+ID4gPiA+IEBAIC0xNTgsNiArMTU5 LDkgQEAgc3RydWN0IFZpcnRJT1BDSVByb3h5IHsNCj4gPiA+ID4gICAgICBWaXJ0aW9CdXNTdGF0 ZSBidXM7DQo+ID4gPiA+ICB9Ow0KPiA+ID4gPg0KPiA+ID4gPiArdWludDE2X3QgdmlydGlvX3Bj aV9nZXRfcGNpX2RldmlkKHVpbnQxNl90IGRldmljZV9pZCk7DQo+ID4gPiA+ICt1aW50MTZfdCB2 aXJ0aW9fcGNpX2dldF9jbGFzc19pZCh1aW50MTZfdCBkZXZpY2VfaWQpOw0KPiA+ID4gPiArDQo+ ID4gPiA+ICBzdGF0aWMgaW5saW5lIGJvb2wgdmlydGlvX3BjaV9tb2Rlcm4oVmlydElPUENJUHJv eHkgKnByb3h5KQ0KPiA+ID4gPiAgew0KPiA+ID4gPiAgICAgIHJldHVybiAhcHJveHktPmRpc2Fi bGVfbW9kZXJuOw0KPiA+ID4gPiAtLQ0KPiA+ID4gPiAyLjIzLjANCj4gPiA+ID4NCj4gPg0KDQo=