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=-6.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS 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 03D66C2BA83 for ; Wed, 12 Feb 2020 07:32:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id ADAE620848 for ; Wed, 12 Feb 2020 07:32:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728347AbgBLHc1 (ORCPT ); Wed, 12 Feb 2020 02:32:27 -0500 Received: from mga18.intel.com ([134.134.136.126]:21379 "EHLO mga18.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728192AbgBLHc1 (ORCPT ); Wed, 12 Feb 2020 02:32:27 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Feb 2020 23:32:24 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,428,1574150400"; d="scan'208";a="237633405" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga006.jf.intel.com with ESMTP; 11 Feb 2020 23:32:24 -0800 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 11 Feb 2020 23:32:23 -0800 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 11 Feb 2020 23:32:23 -0800 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 11 Feb 2020 23:32:23 -0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.5]) by shsmsx102.ccr.corp.intel.com ([169.254.2.126]) with mapi id 14.03.0439.000; Wed, 12 Feb 2020 15:32:21 +0800 From: "Liu, Yi L" To: Peter Xu CC: "qemu-devel@nongnu.org" , "david@gibson.dropbear.id.au" , "pbonzini@redhat.com" , "alex.williamson@redhat.com" , "mst@redhat.com" , "eric.auger@redhat.com" , "Tian, Kevin" , "Tian, Jun J" , "Sun, Yi Y" , "kvm@vger.kernel.org" , "Wu, Hao" , Jacob Pan , Yi Sun , Richard Henderson , "Eduardo Habkost" Subject: RE: [RFC v3 14/25] intel_iommu: add virtual command capability support Thread-Topic: [RFC v3 14/25] intel_iommu: add virtual command capability support Thread-Index: AQHV1p1OZ3QtxF5MCUauWTZBa4G1JagV/NAAgAFCCJA= Date: Wed, 12 Feb 2020 07:32:20 +0000 Message-ID: References: <1580300216-86172-1-git-send-email-yi.l.liu@intel.com> <1580300216-86172-15-git-send-email-yi.l.liu@intel.com> <20200211201600.GL984290@xz-x1> In-Reply-To: <20200211201600.GL984290@xz-x1> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOWFkOWI1M2UtM2RjYy00ZTNlLWFmNjUtMmUzYTdlMWNjMGFjIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiNFZzUzBDXC9zY1wvNjlIaWVVVWY1TVZzU1VkelNQdGFyb2xKQ0Y1MW5tVkZ1eTY3K1I2UWFiODVPcEdKTGtSWDlIIn0= x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org PiBGcm9tOiBQZXRlciBYdSA8cGV0ZXJ4QHJlZGhhdC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwg RmVicnVhcnkgMTIsIDIwMjAgNDoxNiBBTQ0KPiBUbzogTGl1LCBZaSBMIDx5aS5sLmxpdUBpbnRl bC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUkZDIHYzIDE0LzI1XSBpbnRlbF9pb21tdTogYWRkIHZp cnR1YWwgY29tbWFuZCBjYXBhYmlsaXR5IHN1cHBvcnQNCj4gDQo+IE9uIFdlZCwgSmFuIDI5LCAy MDIwIGF0IDA0OjE2OjQ1QU0gLTA4MDAsIExpdSwgWWkgTCB3cm90ZToNCj4gPiBGcm9tOiBMaXUg WWkgTCA8eWkubC5saXVAaW50ZWwuY29tPg0KPiA+DQo+ID4gVGhpcyBwYXRjaCBhZGRzIHZpcnR1 YWwgY29tbWFuZCBzdXBwb3J0IHRvIEludGVsIHZJT01NVSBwZXIgSW50ZWwgVlQtZA0KPiA+IDMu MSBzcGVjLiBBbmQgYWRkcyB0d28gdmlydHVhbCBjb21tYW5kczogYWxsb2NhdGUgcGFzaWQgYW5k IGZyZWUNCj4gPiBwYXNpZC4NCj4gPg0KPiA+IENjOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGlu dGVsLmNvbT4NCj4gPiBDYzogSmFjb2IgUGFuIDxqYWNvYi5qdW4ucGFuQGxpbnV4LmludGVsLmNv bT4NCj4gPiBDYzogUGV0ZXIgWHUgPHBldGVyeEByZWRoYXQuY29tPg0KPiA+IENjOiBZaSBTdW4g PHlpLnkuc3VuQGxpbnV4LmludGVsLmNvbT4NCj4gPiBDYzogUGFvbG8gQm9uemluaSA8cGJvbnpp bmlAcmVkaGF0LmNvbT4NCj4gPiBDYzogUmljaGFyZCBIZW5kZXJzb24gPHJ0aEB0d2lkZGxlLm5l dD4NCj4gPiBDYzogRWR1YXJkbyBIYWJrb3N0IDxlaGFia29zdEByZWRoYXQuY29tPg0KPiA+IFNp Z25lZC1vZmYtYnk6IExpdSBZaSBMIDx5aS5sLmxpdUBpbnRlbC5jb20+DQo+ID4gU2lnbmVkLW9m Zi1ieTogWWkgU3VuIDx5aS55LnN1bkBsaW51eC5pbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4gIGh3 L2kzODYvaW50ZWxfaW9tbXUuYyAgICAgICAgICB8IDE2Mw0KPiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLQ0KPiA+ICBody9pMzg2L2ludGVsX2lvbW11X2ludGVybmFs LmggfCAgMzggKysrKysrKysrKw0KPiA+ICBody9pMzg2L3RyYWNlLWV2ZW50cyAgICAgICAgICAg fCAgIDEgKw0KPiA+ICBpbmNsdWRlL2h3L2kzODYvaW50ZWxfaW9tbXUuaCAgfCAgIDYgKy0NCj4g PiAgNCBmaWxlcyBjaGFuZ2VkLCAyMDYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCj4g Pg0KPiA+IGRpZmYgLS1naXQgYS9ody9pMzg2L2ludGVsX2lvbW11LmMgYi9ody9pMzg2L2ludGVs X2lvbW11LmMgaW5kZXgNCj4gPiAzM2JlNDBjLi40M2E3MjhmIDEwMDY0NA0KPiA+IC0tLSBhL2h3 L2kzODYvaW50ZWxfaW9tbXUuYw0KPiA+ICsrKyBiL2h3L2kzODYvaW50ZWxfaW9tbXUuYw0KPiA+ IEBAIC0yNjQ5LDYgKzI2NDksMTQyIEBAIHN0YXRpYyB2b2lkDQo+IHZ0ZF9oYW5kbGVfaWVjdGxf d3JpdGUoSW50ZWxJT01NVVN0YXRlICpzKQ0KPiA+ICAgICAgfQ0KPiA+ICB9DQo+ID4NCj4gPiAr c3RhdGljIGludCB2dGRfcmVxdWVzdF9wYXNpZF9hbGxvYyhJbnRlbElPTU1VU3RhdGUgKnMsIHVp bnQzMl90DQo+ID4gKypwYXNpZCkgew0KPiA+ICsgICAgVlREQnVzICp2dGRfYnVzOw0KPiA+ICsg ICAgaW50IGJ1c19uLCBkZXZmbiwgcmV0ID0gLWVycm5vOw0KPiA+ICsgICAgVlRESU9NTVVDb250 ZXh0ICp2dGRfaWN4Ow0KPiA+ICsNCj4gPiArICAgIGZvciAoYnVzX24gPSAwOyBidXNfbiA8IFBD SV9CVVNfTUFYOyBidXNfbisrKSB7DQo+ID4gKyAgICAgICAgdnRkX2J1cyA9IHZ0ZF9maW5kX2Fz X2Zyb21fYnVzX251bShzLCBidXNfbik7DQo+ID4gKyAgICAgICAgaWYgKCF2dGRfYnVzKSB7DQo+ ID4gKyAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ICsgICAgICAgIH0NCj4gPiArICAgICAgICBm b3IgKGRldmZuID0gMDsgZGV2Zm4gPCBQQ0lfREVWRk5fTUFYOyBkZXZmbisrKSB7DQo+ID4gKyAg ICAgICAgICAgIHZ0ZF9pY3ggPSB2dGRfYnVzLT5kZXZfaWN4W2RldmZuXTsNCj4gPiArICAgICAg ICAgICAgaWYgKCF2dGRfaWN4KSB7DQo+ID4gKyAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4g PiArICAgICAgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgICAgICAgLyoNCj4gPiArICAgICAg ICAgICAgICogV2UnbGwgcmV0dXJuIHRoZSBmaXJzdCB2YWxpZCByZXN1bHQgd2UgZ290LiBJdCdz DQo+ID4gKyAgICAgICAgICAgICAqIGEgYml0IGhhY2tpc2ggaW4gdGhhdCB3ZSBkb24ndCBoYXZl IGEgZ29vZCBnbG9iYWwNCj4gPiArICAgICAgICAgICAgICogaW50ZXJmYWNlIHlldCB0byB0YWxr IHRvIG1vZHVsZXMgbGlrZSB2ZmlvIHRvIGRlbGl2ZXINCj4gPiArICAgICAgICAgICAgICogdGhp cyBhbGxvY2F0aW9uIHJlcXVlc3QsIHNvIHdlJ3JlIGxldmVyYWdpbmcgdGhpcw0KPiA+ICsgICAg ICAgICAgICAgKiBwZXItZGV2aWNlIGlvbW11IG9iamVjdCB0byBkbyB0aGUgc2FtZSB0aGluZyBq dXN0DQo+ID4gKyAgICAgICAgICAgICAqIHRvIG1ha2Ugc3VyZSB0aGUgYWxsb2NhdGlvbiBoYXBw ZW5zIG9ubHkgb25jZS4NCj4gPiArICAgICAgICAgICAgICovDQo+ID4gKyAgICAgICAgICAgIHJl dCA9IGRzX2lvbW11X3Bhc2lkX2FsbG9jKHZ0ZF9pY3gtPmRzaV9vYmosDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICBWVERfTUlOX0hQQVNJRCwgVlREX01BWF9IUEFTSUQsIHBhc2lkKTsN Cj4gDQo+IFlvdXIgaW5kZW50cyBhcmUgYWx3YXlzIHN0cmFuZ2UgdG8gbWUgZm9yIGxvbmcgZnVu Y2FsbHMuLi4gIE5vdCBhIGNvbXBsYWludCB0aG91Z2gsDQo+IGFzIGxvbmcgYXMgbm8gb25lIGVs c2UgY29tcGxhaW5zLiA6KQ0KDQp5ZWFoLCBJJ20gYWxzbyBub3QgZmVlbGluZyB3ZWxsIHdpdGgg dGhlbS4uLiBJJ2xsIHRyeSB0byBtYWtlIHRoZSBpbmRlbnRzICBmb3IgbG9uZw0KZnVuY2NhbGxz IGJldHRlci4g8J+Yig0KDQo+IA0KPiA+ICsgICAgICAgICAgICBpZiAoIXJldCkgew0KPiA+ICsg ICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKyAgICAgICAgICAgIH0NCj4gPiArICAgICAgICB9 DQo+ID4gKyAgICB9DQo+ID4gKyAgICByZXR1cm4gcmV0Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICtz dGF0aWMgaW50IHZ0ZF9yZXF1ZXN0X3Bhc2lkX2ZyZWUoSW50ZWxJT01NVVN0YXRlICpzLCB1aW50 MzJfdCBwYXNpZCkNCj4gPiArew0KPiA+ICsgICAgVlREQnVzICp2dGRfYnVzOw0KPiA+ICsgICAg aW50IGJ1c19uLCBkZXZmbiwgcmV0ID0gLWVycm5vOw0KPiA+ICsgICAgVlRESU9NTVVDb250ZXh0 ICp2dGRfaWN4Ow0KPiA+ICsNCj4gPiArICAgIGZvciAoYnVzX24gPSAwOyBidXNfbiA8IFBDSV9C VVNfTUFYOyBidXNfbisrKSB7DQo+ID4gKyAgICAgICAgdnRkX2J1cyA9IHZ0ZF9maW5kX2FzX2Zy b21fYnVzX251bShzLCBidXNfbik7DQo+ID4gKyAgICAgICAgaWYgKCF2dGRfYnVzKSB7DQo+ID4g KyAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ICsgICAgICAgIH0NCj4gPiArICAgICAgICBmb3Ig KGRldmZuID0gMDsgZGV2Zm4gPCBQQ0lfREVWRk5fTUFYOyBkZXZmbisrKSB7DQo+ID4gKyAgICAg ICAgICAgIHZ0ZF9pY3ggPSB2dGRfYnVzLT5kZXZfaWN4W2RldmZuXTsNCj4gPiArICAgICAgICAg ICAgaWYgKCF2dGRfaWN4KSB7DQo+ID4gKyAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4gPiAr ICAgICAgICAgICAgfQ0KPiA+ICsgICAgICAgICAgICAvKg0KPiA+ICsgICAgICAgICAgICAgKiBT aW1pbGFyIHdpdGggcGFzaWQgYWxsb2NhdGlvbi4gV2UnbGwgZnJlZSB0aGUgcGFzaWQNCj4gPiAr ICAgICAgICAgICAgICogb24gdGhlIGZpcnN0IHN1Y2Nlc3NmdWwgZnJlZSBvcGVyYXRpb24uIEl0 J3MgYSBiaXQNCj4gPiArICAgICAgICAgICAgICogaGFja2lzaCBpbiB0aGF0IHdlIGRvbid0IGhh dmUgYSBnb29kIGdsb2JhbCBpbnRlcmZhY2UNCj4gPiArICAgICAgICAgICAgICogeWV0IHRvIHRh bGsgdG8gbW9kdWxlcyBsaWtlIHZmaW8gdG8gZGVsaXZlciB0aGlzIHBhc2lkDQo+ID4gKyAgICAg ICAgICAgICAqIGZyZWUgcmVxdWVzdCwgc28gd2UncmUgbGV2ZXJhZ2luZyB0aGlzIHBlci1kZXZp Y2UgaW9tbXUNCj4gPiArICAgICAgICAgICAgICogb2JqZWN0IHRvIGRvIHRoZSBzYW1lIHRoaW5n IGp1c3QgdG8gbWFrZSBzdXJlIHRoZQ0KPiA+ICsgICAgICAgICAgICAgKiBmcmVlIGhhcHBlbnMg b25seSBvbmNlLg0KPiA+ICsgICAgICAgICAgICAgKi8NCj4gPiArICAgICAgICAgICAgcmV0ID0g ZHNfaW9tbXVfcGFzaWRfZnJlZSh2dGRfaWN4LT5kc2lfb2JqLCBwYXNpZCk7DQo+ID4gKyAgICAg ICAgICAgIGlmICghcmV0KSB7DQo+ID4gKyAgICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAg ICAgICAgICAgfQ0KPiA+ICsgICAgICAgIH0NCj4gPiArICAgIH0NCj4gPiArICAgIHJldHVybiBy ZXQ7DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qDQo+ID4gKyAqIElmIElQIGlzIG5vdCBzZXQsIHNl dCBpdCBhbmQgcmV0dXJuIDANCj4gPiArICogSWYgSVAgaXMgYWxyZWFkeSBzZXQsIHJldHVybiAt MQ0KPiANCj4gT3V0IG9mIGRhdGU/ICBJbnN0ZWFkIGNhbiBtZW50aW9uIHRoYXQgdGhpcyBhbHNv IHJlc2V0cyB0aGUgcmVwbHkgc3RhdHVzIGNvZGUgdG8NCj4gemVybyBpbXBsaWNpdGx5IHNvIGJ5 IGRlZmF1bHQgaXQgd2lsbCByZXR1cm4gYSBzdWNjZXNzLg0KDQpPb29wcywgeWVhaCwgaXQncyBv dXQgb2YgZGF0ZS4gV2lsbCBmaXggaXQuDQoNCj4gDQo+IE90aGVyIHRoYW4gdGhhdDoNCj4gDQo+ IFJldmlld2VkLWJ5OiBQZXRlciBYdSA8cGV0ZXJ4QHJlZGhhdC5jb20+DQoNClRoYW5rcyBhIGxv dCBmb3IgdGhlIHBhdGllbnQgcmV2aWV3aW5nLg0KDQpSZWdhcmRzLA0KWWkgTGl1DQoNCj4gPiAr ICovDQo+ID4gK3N0YXRpYyB2b2lkIHZ0ZF92Y21kX3NldF9pcChJbnRlbElPTU1VU3RhdGUgKnMp IHsNCj4gPiArICAgIHMtPnZjcnNwID0gMTsNCj4gPiArICAgIHZ0ZF9zZXRfcXVhZF9yYXcocywg RE1BUl9WQ1JTUF9SRUcsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICgodWludDY0X3QpIHMt PnZjcnNwKSk7IH0NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIHZ0ZF92Y21kX2NsZWFyX2lwKElu dGVsSU9NTVVTdGF0ZSAqcykgew0KPiA+ICsgICAgcy0+dmNyc3AgJj0gKH4oKHVpbnQ2NF90KSgw eDEpKSk7DQo+ID4gKyAgICB2dGRfc2V0X3F1YWRfcmF3KHMsIERNQVJfVkNSU1BfUkVHLA0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAoKHVpbnQ2NF90KSBzLT52Y3JzcCkpOyB9DQo+ID4gKw0K PiA+ICsvKiBIYW5kbGUgd3JpdGUgdG8gVmlydHVhbCBDb21tYW5kIFJlZ2lzdGVyICovIHN0YXRp YyBpbnQNCj4gPiArdnRkX2hhbmRsZV92Y21kX3dyaXRlKEludGVsSU9NTVVTdGF0ZSAqcywgdWlu dDY0X3QgdmFsKSB7DQo+ID4gKyAgICB1aW50MzJfdCBwYXNpZDsNCj4gPiArICAgIGludCByZXQg PSAtMTsNCj4gPiArDQo+ID4gKyAgICB0cmFjZV92dGRfcmVnX3dyaXRlX3ZjbWQocy0+dmNyc3As IHZhbCk7DQo+ID4gKw0KPiA+ICsgICAgaWYgKCEocy0+dmNjYXAgJiBWVERfVkNDQVBfUEFTKSB8 fA0KPiA+ICsgICAgICAgICAocy0+dmNyc3AgJiAxKSkgew0KPiA+ICsgICAgICAgIHJldHVybiAt MTsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAgICAvKg0KPiA+ICsgICAgICogU2luY2UgdkNQ VSBzaG91bGQgYmUgYmxvY2tlZCB3aGVuIHRoZSBndWVzdCBWTUNEDQo+ID4gKyAgICAgKiB3cml0 ZSB3YXMgdHJhcHBlZCB0byBoZXJlLiBTaG91bGQgYmUgbm8gb3RoZXIgdkNQVXMNCj4gPiArICAg ICAqIHRyeSB0byBhY2Nlc3MgVkNNRCBpZiBndWVzdCBzb2Z0d2FyZSBpcyB3ZWxsIHdyaXR0ZW4u DQo+ID4gKyAgICAgKiBIb3dldmVyLCB3ZSBzdGlsbCBlbXVsYXRlIHRoZSBJUCBiaXQgaGVyZSBp biBjYXNlIG9mDQo+ID4gKyAgICAgKiBiYWQgZ3Vlc3Qgc29mdHdhcmUuIEFsc28gYWxpZ24gd2l0 aCB0aGUgc3BlYy4NCj4gPiArICAgICAqLw0KPiA+ICsgICAgdnRkX3ZjbWRfc2V0X2lwKHMpOw0K PiA+ICsNCj4gPiArICAgIHN3aXRjaCAodmFsICYgVlREX1ZDTURfQ01EX01BU0spIHsNCj4gPiAr ICAgIGNhc2UgVlREX1ZDTURfQUxMT0NfUEFTSUQ6DQo+ID4gKyAgICAgICAgcmV0ID0gdnRkX3Jl cXVlc3RfcGFzaWRfYWxsb2MocywgJnBhc2lkKTsNCj4gPiArICAgICAgICBpZiAocmV0KSB7DQo+ ID4gKyAgICAgICAgICAgIHMtPnZjcnNwIHw9IFZURF9WQ1JTUF9TQyhWVERfVkNNRF9OT19BVkFJ TEFCTEVfUEFTSUQpOw0KPiA+ICsgICAgICAgIH0gZWxzZSB7DQo+ID4gKyAgICAgICAgICAgIHMt PnZjcnNwIHw9IFZURF9WQ1JTUF9SU0xUKHBhc2lkKTsNCj4gPiArICAgICAgICB9DQo+ID4gKyAg ICAgICAgYnJlYWs7DQo+ID4gKw0KPiA+ICsgICAgY2FzZSBWVERfVkNNRF9GUkVFX1BBU0lEOg0K PiA+ICsgICAgICAgIHBhc2lkID0gVlREX1ZDTURfUEFTSURfVkFMVUUodmFsKTsNCj4gPiArICAg ICAgICByZXQgPSB2dGRfcmVxdWVzdF9wYXNpZF9mcmVlKHMsIHBhc2lkKTsNCj4gPiArICAgICAg ICBpZiAocmV0IDwgMCkgew0KPiA+ICsgICAgICAgICAgICBzLT52Y3JzcCB8PSBWVERfVkNSU1Bf U0MoVlREX1ZDTURfRlJFRV9JTlZBTElEX1BBU0lEKTsNCj4gPiArICAgICAgICB9DQo+ID4gKyAg ICAgICAgYnJlYWs7DQo+ID4gKw0KPiA+ICsgICAgZGVmYXVsdDoNCj4gPiArICAgICAgICBzLT52 Y3JzcCB8PSBWVERfVkNSU1BfU0MoVlREX1ZDTURfVU5ERUZJTkVEX0NNRCk7DQo+ID4gKyAgICAg ICAgZXJyb3JfcmVwb3J0X29uY2UoIlZpcnR1YWwgQ29tbWFuZDogdW5zdXBwb3J0ZWQgY29tbWFu ZCEhISIpOw0KPiA+ICsgICAgICAgIGJyZWFrOw0KPiA+ICsgICAgfQ0KPiA+ICsgICAgdnRkX3Zj bWRfY2xlYXJfaXAocyk7DQo+ID4gKyAgICByZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiAg c3RhdGljIHVpbnQ2NF90IHZ0ZF9tZW1fcmVhZCh2b2lkICpvcGFxdWUsIGh3YWRkciBhZGRyLCB1 bnNpZ25lZA0KPiA+IHNpemUpICB7DQo+ID4gICAgICBJbnRlbElPTU1VU3RhdGUgKnMgPSBvcGFx dWU7DQo+ID4gQEAgLTI5MzgsNiArMzA3NCwyMyBAQCBzdGF0aWMgdm9pZCB2dGRfbWVtX3dyaXRl KHZvaWQgKm9wYXF1ZSwgaHdhZGRyDQo+IGFkZHIsDQo+ID4gICAgICAgICAgdnRkX3NldF9sb25n KHMsIGFkZHIsIHZhbCk7DQo+ID4gICAgICAgICAgYnJlYWs7DQo+ID4NCj4gPiArICAgIGNhc2Ug RE1BUl9WQ01EX1JFRzoNCj4gPiArICAgICAgICBpZiAoIXZ0ZF9oYW5kbGVfdmNtZF93cml0ZShz LCB2YWwpKSB7DQo+ID4gKyAgICAgICAgICAgIGlmIChzaXplID09IDQpIHsNCj4gPiArICAgICAg ICAgICAgICAgIHZ0ZF9zZXRfbG9uZyhzLCBhZGRyLCB2YWwpOw0KPiA+ICsgICAgICAgICAgICB9 IGVsc2Ugew0KPiA+ICsgICAgICAgICAgICAgICAgdnRkX3NldF9xdWFkKHMsIGFkZHIsIHZhbCk7 DQo+ID4gKyAgICAgICAgICAgIH0NCj4gPiArICAgICAgICB9DQo+ID4gKyAgICAgICAgYnJlYWs7 DQo+ID4gKw0KPiA+ICsgICAgY2FzZSBETUFSX1ZDTURfUkVHX0hJOg0KPiA+ICsgICAgICAgIGFz c2VydChzaXplID09IDQpOw0KPiA+ICsgICAgICAgIGlmICghdnRkX2hhbmRsZV92Y21kX3dyaXRl KHMsIHZhbCkpIHsNCj4gPiArICAgICAgICAgICAgdnRkX3NldF9sb25nKHMsIGFkZHIsIHZhbCk7 DQo+ID4gKyAgICAgICAgfQ0KPiA+ICsgICAgICAgIGJyZWFrOw0KPiA+ICsNCj4gPiAgICAgIGRl ZmF1bHQ6DQo+ID4gICAgICAgICAgaWYgKHNpemUgPT0gNCkgew0KPiA+ICAgICAgICAgICAgICB2 dGRfc2V0X2xvbmcocywgYWRkciwgdmFsKTsgQEAgLTM3MTIsNyArMzg2NSw4IEBAIHN0YXRpYw0K PiA+IHZvaWQgdnRkX2luaXQoSW50ZWxJT01NVVN0YXRlICpzKQ0KPiA+ICAgICAgICAgIHMtPmVj YXAgfD0gVlREX0VDQVBfU01UUyB8IFZURF9FQ0FQX1NSUyB8IFZURF9FQ0FQX1NMVFM7DQo+ID4g ICAgICB9IGVsc2UgaWYgKHMtPnNjYWxhYmxlX21vZGUgJiYgcy0+c2NhbGFibGVfbW9kZXJuKSB7 DQo+ID4gICAgICAgICAgcy0+ZWNhcCB8PSBWVERfRUNBUF9TTVRTIHwgVlREX0VDQVBfU1JTIHwg VlREX0VDQVBfUEFTSUQNCj4gPiAtICAgICAgICAgICAgICAgICAgIHwgVlREX0VDQVBfRkxUUyB8 IFZURF9FQ0FQX1BTUzsNCj4gPiArICAgICAgICAgICAgICAgICAgIHwgVlREX0VDQVBfRkxUUyB8 IFZURF9FQ0FQX1BTUyB8IFZURF9FQ0FQX1ZDUzsNCj4gPiArICAgICAgICBzLT52Y2NhcCB8PSBW VERfVkNDQVBfUEFTOw0KPiA+ICAgICAgfQ0KPiA+DQo+ID4gICAgICB2dGRfcmVzZXRfY2FjaGVz KHMpOw0KPiA+IEBAIC0zNzY4LDYgKzM5MjIsMTMgQEAgc3RhdGljIHZvaWQgdnRkX2luaXQoSW50 ZWxJT01NVVN0YXRlICpzKQ0KPiA+ICAgICAgICogSW50ZXJydXB0IHJlbWFwcGluZyByZWdpc3Rl cnMuDQo+ID4gICAgICAgKi8NCj4gPiAgICAgIHZ0ZF9kZWZpbmVfcXVhZChzLCBETUFSX0lSVEFf UkVHLCAwLCAweGZmZmZmZmZmZmZmZmY4MGZVTEwsIDApOw0KPiA+ICsNCj4gPiArICAgIC8qDQo+ ID4gKyAgICAgKiBWaXJ0dWFsIENvbW1hbmQgRGVmaW5pdGlvbnMNCj4gPiArICAgICAqLw0KPiA+ ICsgICAgdnRkX2RlZmluZV9xdWFkKHMsIERNQVJfVkNDQVBfUkVHLCBzLT52Y2NhcCwgMCwgMCk7 DQo+ID4gKyAgICB2dGRfZGVmaW5lX3F1YWQocywgRE1BUl9WQ01EX1JFRywgMCwgMHhmZmZmZmZm ZmZmZmZmZmZmVUxMLCAwKTsNCj4gPiArICAgIHZ0ZF9kZWZpbmVfcXVhZChzLCBETUFSX1ZDUlNQ X1JFRywgMCwgMCwgMCk7DQo+ID4gIH0NCj4gPg0KPiA+ICAvKiBTaG91bGQgbm90IHJlc2V0IGFk ZHJlc3Nfc3BhY2VzIHdoZW4gcmVzZXQgYmVjYXVzZSBkZXZpY2VzIHdpbGwNCj4gPiBzdGlsbCB1 c2UgZGlmZiAtLWdpdCBhL2h3L2kzODYvaW50ZWxfaW9tbXVfaW50ZXJuYWwuaA0KPiA+IGIvaHcv aTM4Ni9pbnRlbF9pb21tdV9pbnRlcm5hbC5oIGluZGV4IGM0ZGJiMmMuLmZiNWZkYzIgMTAwNjQ0 DQo+ID4gLS0tIGEvaHcvaTM4Ni9pbnRlbF9pb21tdV9pbnRlcm5hbC5oDQo+ID4gKysrIGIvaHcv aTM4Ni9pbnRlbF9pb21tdV9pbnRlcm5hbC5oDQo+ID4gQEAgLTg1LDYgKzg1LDEyIEBADQo+ID4g ICNkZWZpbmUgRE1BUl9NVFJSQ0FQX1JFR19ISSAgICAgMHgxMDQNCj4gPiAgI2RlZmluZSBETUFS X01UUlJERUZfUkVHICAgICAgICAweDEwOCAvKiBNVFJSIGRlZmF1bHQgdHlwZSAqLw0KPiA+ICAj ZGVmaW5lIERNQVJfTVRSUkRFRl9SRUdfSEkgICAgIDB4MTBjDQo+ID4gKyNkZWZpbmUgRE1BUl9W Q0NBUF9SRUcgICAgICAgICAgMHhFMDAgLyogVmlydHVhbCBDb21tYW5kIENhcGFiaWxpdHkNCj4g UmVnaXN0ZXIgKi8NCj4gPiArI2RlZmluZSBETUFSX1ZDQ0FQX1JFR19ISSAgICAgICAweEUwNA0K PiA+ICsjZGVmaW5lIERNQVJfVkNNRF9SRUcgICAgICAgICAgIDB4RTEwIC8qIFZpcnR1YWwgQ29t bWFuZCBSZWdpc3RlciAqLw0KPiA+ICsjZGVmaW5lIERNQVJfVkNNRF9SRUdfSEkgICAgICAgIDB4 RTE0DQo+ID4gKyNkZWZpbmUgRE1BUl9WQ1JTUF9SRUcgICAgICAgICAgMHhFMjAgLyogVmlydHVh bCBDb21tYW5kIFJlcG9uc2UgUmVnaXN0ZXINCj4gKi8NCj4gPiArI2RlZmluZSBETUFSX1ZDUlNQ X1JFR19ISSAgICAgICAweEUyNA0KPiA+DQo+ID4gIC8qIElPVExCIHJlZ2lzdGVycyAqLw0KPiA+ ICAjZGVmaW5lIERNQVJfSU9UTEJfUkVHX09GRlNFVCAgIDB4ZjAgLyogT2Zmc2V0IHRvIHRoZSBJ T1RMQiByZWdpc3RlcnMgKi8NCj4gPiBAQCAtMTkzLDYgKzE5OSw3IEBADQo+ID4gICNkZWZpbmUg VlREX0VDQVBfUFNTICAgICAgICAgICAgICAgICgxOVVMTCA8PCAzNSkNCj4gPiAgI2RlZmluZSBW VERfRUNBUF9QQVNJRCAgICAgICAgICAgICAgKDFVTEwgPDwgNDApDQo+ID4gICNkZWZpbmUgVlRE X0VDQVBfU01UUyAgICAgICAgICAgICAgICgxVUxMIDw8IDQzKQ0KPiA+ICsjZGVmaW5lIFZURF9F Q0FQX1ZDUyAgICAgICAgICAgICAgICAoMVVMTCA8PCA0NCkNCj4gPiAgI2RlZmluZSBWVERfRUNB UF9TTFRTICAgICAgICAgICAgICAgKDFVTEwgPDwgNDYpDQo+ID4gICNkZWZpbmUgVlREX0VDQVBf RkxUUyAgICAgICAgICAgICAgICgxVUxMIDw8IDQ3KQ0KPiA+DQo+ID4gQEAgLTMxNSw2ICszMjIs MzcgQEAgdHlwZWRlZiBlbnVtIFZUREZhdWx0UmVhc29uIHsNCj4gPg0KPiA+ICAjZGVmaW5lIFZU RF9DT05URVhUX0NBQ0hFX0dFTl9NQVggICAgICAgMHhmZmZmZmZmZlVMDQo+ID4NCj4gPiArLyog VkNDQVBfUkVHICovDQo+ID4gKyNkZWZpbmUgVlREX1ZDQ0FQX1BBUyAgICAgICAgICAgICAgICgx VUwgPDwgMCkNCj4gPiArDQo+ID4gKy8qDQo+ID4gKyAqIFRoZSBiYXNpYyBpZGVhIGlzIHRvIGxl dCBoeXBlcnZpc29yIHRvIHNldCBhIHJhbmdlIGZvciBhdmFpbGFibGUNCj4gPiArICogUEFTSURz IGZvciBWTXMuIE9uZSBvZiB0aGUgcmVhc29ucyBpcyBQQVNJRCAjMCBpcyByZXNlcnZlZCBieQ0K PiA+ICsgKiBSSURfUEFTSUQgdXNhZ2UuIFdlIGhhdmUgbm8gaWRlYSBob3cgbWFueSByZXNlcnZl ZCBQQVNJRHMgaW4NCj4gPiArZnV0dXJlLA0KPiA+ICsgKiBzbyBoZXJlIGp1c3QgYW4gZXZhbHVh dGVkIHZhbHVlLiBIb25lc3RseSwgc2V0IGl0IGFzICIxIiBpcyBlbm91Z2gNCj4gPiArICogYXQg Y3VycmVudCBzdGFnZS4NCj4gPiArICovDQo+ID4gKyNkZWZpbmUgVlREX01JTl9IUEFTSUQgICAg ICAgICAgICAgIDENCj4gPiArI2RlZmluZSBWVERfTUFYX0hQQVNJRCAgICAgICAgICAgICAgMHhG RkZGRg0KPiA+ICsNCj4gPiArLyogVmlydHVhbCBDb21tYW5kIFJlZ2lzdGVyICovDQo+ID4gK2Vu dW0gew0KPiA+ICsgICAgIFZURF9WQ01EX05VTExfQ01EID0gMCwNCj4gPiArICAgICBWVERfVkNN RF9BTExPQ19QQVNJRCA9IDEsDQo+ID4gKyAgICAgVlREX1ZDTURfRlJFRV9QQVNJRCA9IDIsDQo+ ID4gKyAgICAgVlREX1ZDTURfQ01EX05VTSwNCj4gPiArfTsNCj4gPiArDQo+ID4gKyNkZWZpbmUg VlREX1ZDTURfQ01EX01BU0sgICAgICAgICAgIDB4ZmZVTA0KPiA+ICsjZGVmaW5lIFZURF9WQ01E X1BBU0lEX1ZBTFVFKHZhbCkgICAoKCh2YWwpID4+IDgpICYgMHhmZmZmZikNCj4gPiArDQo+ID4g KyNkZWZpbmUgVlREX1ZDUlNQX1JTTFQodmFsKSAgICAgICAgICgodmFsKSA8PCA4KQ0KPiA+ICsj ZGVmaW5lIFZURF9WQ1JTUF9TQyh2YWwpICAgICAgICAgICAoKCh2YWwpICYgMHgzKSA8PCAxKQ0K PiA+ICsNCj4gPiArI2RlZmluZSBWVERfVkNNRF9VTkRFRklORURfQ01EICAgICAgICAgMVVMTA0K PiA+ICsjZGVmaW5lIFZURF9WQ01EX05PX0FWQUlMQUJMRV9QQVNJRCAgICAyVUxMDQo+ID4gKyNk ZWZpbmUgVlREX1ZDTURfRlJFRV9JTlZBTElEX1BBU0lEICAgIDJVTEwNCj4gPiArDQo+ID4gIC8q IEludGVycnVwdCBFbnRyeSBDYWNoZSBJbnZhbGlkYXRpb24gRGVzY3JpcHRvcjogVlQtZCA2LjUu Mi43LiAqLw0KPiA+IHN0cnVjdCBWVERJbnZEZXNjSUVDIHsNCj4gPiAgICAgIHVpbnQzMl90IHR5 cGU6NDsgICAgICAgICAgICAvKiBTaG91bGQgYWx3YXlzIGJlIDB4NCAqLw0KPiA+IGRpZmYgLS1n aXQgYS9ody9pMzg2L3RyYWNlLWV2ZW50cyBiL2h3L2kzODYvdHJhY2UtZXZlbnRzIGluZGV4DQo+ ID4gZTQ4YmVmMi4uNzE1MzZhNyAxMDA2NDQNCj4gPiAtLS0gYS9ody9pMzg2L3RyYWNlLWV2ZW50 cw0KPiA+ICsrKyBiL2h3L2kzODYvdHJhY2UtZXZlbnRzDQo+ID4gQEAgLTUxLDYgKzUxLDcgQEAg dnRkX3JlZ193cml0ZV9nY21kKHVpbnQzMl90IHN0YXR1cywgdWludDMyX3QgdmFsKSAic3RhdHVz DQo+IDB4JSJQUkl4MzIiIHZhbHVlIDB4JSINCj4gPiAgdnRkX3JlZ193cml0ZV9mZWN0bCh1aW50 MzJfdCB2YWx1ZSkgInZhbHVlIDB4JSJQUkl4MzINCj4gPiB2dGRfcmVnX3dyaXRlX2llY3RsKHVp bnQzMl90IHZhbHVlKSAidmFsdWUgMHglIlBSSXgzMg0KPiA+ICB2dGRfcmVnX2ljc19jbGVhcl9p cCh2b2lkKSAiIg0KPiA+ICt2dGRfcmVnX3dyaXRlX3ZjbWQodWludDMyX3Qgc3RhdHVzLCB1aW50 MzJfdCB2YWwpICJzdGF0dXMgMHglIlBSSXgzMiINCj4gPiArdmFsdWUgMHglIlBSSXgzMg0KPiA+ ICB2dGRfZG1hcl90cmFuc2xhdGUodWludDhfdCBidXMsIHVpbnQ4X3Qgc2xvdCwgdWludDhfdCBm dW5jLCB1aW50NjRfdA0KPiA+IGlvdmEsIHVpbnQ2NF90IGdwYSwgdWludDY0X3QgbWFzaykgImRl diAlMDJ4OiUwMnguJTAyeCBpb3ZhIDB4JSJQUkl4NjQiIC0+DQo+IGdwYSAweCUiUFJJeDY0IiBt YXNrIDB4JSJQUkl4NjQgIHZ0ZF9kbWFyX2VuYWJsZShib29sIGVuKSAiZW5hYmxlICVkIg0KPiA+ ICB2dGRfZG1hcl9mYXVsdCh1aW50MTZfdCBzaWQsIGludCBmYXVsdCwgdWludDY0X3QgYWRkciwg Ym9vbCBpc193cml0ZSkgInNpZA0KPiAweCUiUFJJeDE2IiBmYXVsdCAlZCBhZGRyIDB4JSJQUkl4 NjQiIHdyaXRlICVkIg0KPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2h3L2kzODYvaW50ZWxfaW9t bXUuaA0KPiA+IGIvaW5jbHVkZS9ody9pMzg2L2ludGVsX2lvbW11LmggaW5kZXggMWVmMjkxNy4u NDE1ODExNiAxMDA2NDQNCj4gPiAtLS0gYS9pbmNsdWRlL2h3L2kzODYvaW50ZWxfaW9tbXUuaA0K PiA+ICsrKyBiL2luY2x1ZGUvaHcvaTM4Ni9pbnRlbF9pb21tdS5oDQo+ID4gQEAgLTQ2LDcgKzQ2 LDcgQEANCj4gPiAgI2RlZmluZSBWVERfU0lEX1RPX0JVUyhzaWQpICAgICAgICAgKCgoc2lkKSA+ PiA4KSAmIDB4ZmYpDQo+ID4gICNkZWZpbmUgVlREX1NJRF9UT19ERVZGTihzaWQpICAgICAgICgo c2lkKSAmIDB4ZmYpDQo+ID4NCj4gPiAtI2RlZmluZSBETUFSX1JFR19TSVpFICAgICAgICAgICAg ICAgMHgyMzANCj4gPiArI2RlZmluZSBETUFSX1JFR19TSVpFICAgICAgICAgICAgICAgMHhGMDAN Cj4gPiAgI2RlZmluZSBWVERfSE9TVF9BV18zOUJJVCAgICAgICAgICAgMzkNCj4gPiAgI2RlZmlu ZSBWVERfSE9TVF9BV180OEJJVCAgICAgICAgICAgNDgNCj4gPiAgI2RlZmluZSBWVERfSE9TVF9B RERSRVNTX1dJRFRIICAgICAgVlREX0hPU1RfQVdfMzlCSVQNCj4gPiBAQCAtMjg1LDYgKzI4NSwx MCBAQCBzdHJ1Y3QgSW50ZWxJT01NVVN0YXRlIHsNCj4gPiAgICAgIHVpbnQ4X3QgYXdfYml0czsg ICAgICAgICAgICAgICAgLyogSG9zdC9JT1ZBIGFkZHJlc3Mgd2lkdGggKGluIGJpdHMpICovDQo+ ID4gICAgICBib29sIGRtYV9kcmFpbjsgICAgICAgICAgICAgICAgIC8qIFdoZXRoZXIgRE1BIHIv dyBkcmFpbmluZyBlbmFibGVkICovDQo+ID4NCj4gPiArICAgIC8qIFZpcnR1YWwgQ29tbWFuZCBS ZWdpc3RlciAqLw0KPiA+ICsgICAgdWludDY0X3QgdmNjYXA7ICAgICAgICAgICAgICAgICAvKiBU aGUgdmFsdWUgb2YgdmNtZCBjYXBhYmlsaXR5IHJlZyAqLw0KPiA+ICsgICAgdWludDY0X3QgdmNy c3A7ICAgICAgICAgICAgICAgICAvKiBDdXJyZW50IHZhbHVlIG9mIFZDTUQgUlNQIFJFRyAqLw0K PiA+ICsNCj4gPiAgICAgIC8qDQo+ID4gICAgICAgKiBQcm90ZWN0cyBJT01NVSBzdGF0ZXMgaW4g Z2VuZXJhbC4gIEN1cnJlbnRseSBpdCBwcm90ZWN0cyB0aGUNCj4gPiAgICAgICAqIHBlci1JT01N VSBJT1RMQiBjYWNoZSwgYW5kIGNvbnRleHQgZW50cnkgY2FjaGUgaW4gVlREQWRkcmVzc1NwYWNl Lg0KPiA+IC0tDQo+ID4gMi43LjQNCj4gPg0KPiANCj4gLS0NCj4gUGV0ZXIgWHUNCg0K 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=-6.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=unavailable 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 BBD50C2BA83 for ; Wed, 12 Feb 2020 07:34:51 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 80881206DB for ; Wed, 12 Feb 2020 07:34:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 80881206DB Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:33024 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j1mXq-00013j-ND for qemu-devel@archiver.kernel.org; Wed, 12 Feb 2020 02:34:50 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:56360) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1j1mVb-0007uM-V8 for qemu-devel@nongnu.org; Wed, 12 Feb 2020 02:32:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1j1mVZ-0007QD-EP for qemu-devel@nongnu.org; Wed, 12 Feb 2020 02:32:31 -0500 Received: from mga01.intel.com ([192.55.52.88]:53870) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1j1mVZ-0007OC-3A for qemu-devel@nongnu.org; Wed, 12 Feb 2020 02:32:29 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Feb 2020 23:32:25 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,428,1574150400"; d="scan'208";a="237633405" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga006.jf.intel.com with ESMTP; 11 Feb 2020 23:32:24 -0800 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 11 Feb 2020 23:32:23 -0800 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 11 Feb 2020 23:32:23 -0800 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 11 Feb 2020 23:32:23 -0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.5]) by shsmsx102.ccr.corp.intel.com ([169.254.2.126]) with mapi id 14.03.0439.000; Wed, 12 Feb 2020 15:32:21 +0800 From: "Liu, Yi L" To: Peter Xu Subject: RE: [RFC v3 14/25] intel_iommu: add virtual command capability support Thread-Topic: [RFC v3 14/25] intel_iommu: add virtual command capability support Thread-Index: AQHV1p1OZ3QtxF5MCUauWTZBa4G1JagV/NAAgAFCCJA= Date: Wed, 12 Feb 2020 07:32:20 +0000 Message-ID: References: <1580300216-86172-1-git-send-email-yi.l.liu@intel.com> <1580300216-86172-15-git-send-email-yi.l.liu@intel.com> <20200211201600.GL984290@xz-x1> In-Reply-To: <20200211201600.GL984290@xz-x1> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOWFkOWI1M2UtM2RjYy00ZTNlLWFmNjUtMmUzYTdlMWNjMGFjIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiNFZzUzBDXC9zY1wvNjlIaWVVVWY1TVZzU1VkelNQdGFyb2xKQ0Y1MW5tVkZ1eTY3K1I2UWFiODVPcEdKTGtSWDlIIn0= x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.88 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Tian, Kevin" , Jacob Pan , Yi Sun , Eduardo Habkost , "kvm@vger.kernel.org" , "mst@redhat.com" , "Tian, Jun J" , "qemu-devel@nongnu.org" , "eric.auger@redhat.com" , "alex.williamson@redhat.com" , "pbonzini@redhat.com" , "Wu, Hao" , "Sun, Yi Y" , Richard Henderson , "david@gibson.dropbear.id.au" Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" PiBGcm9tOiBQZXRlciBYdSA8cGV0ZXJ4QHJlZGhhdC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwg RmVicnVhcnkgMTIsIDIwMjAgNDoxNiBBTQ0KPiBUbzogTGl1LCBZaSBMIDx5aS5sLmxpdUBpbnRl bC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbUkZDIHYzIDE0LzI1XSBpbnRlbF9pb21tdTogYWRkIHZp cnR1YWwgY29tbWFuZCBjYXBhYmlsaXR5IHN1cHBvcnQNCj4gDQo+IE9uIFdlZCwgSmFuIDI5LCAy MDIwIGF0IDA0OjE2OjQ1QU0gLTA4MDAsIExpdSwgWWkgTCB3cm90ZToNCj4gPiBGcm9tOiBMaXUg WWkgTCA8eWkubC5saXVAaW50ZWwuY29tPg0KPiA+DQo+ID4gVGhpcyBwYXRjaCBhZGRzIHZpcnR1 YWwgY29tbWFuZCBzdXBwb3J0IHRvIEludGVsIHZJT01NVSBwZXIgSW50ZWwgVlQtZA0KPiA+IDMu MSBzcGVjLiBBbmQgYWRkcyB0d28gdmlydHVhbCBjb21tYW5kczogYWxsb2NhdGUgcGFzaWQgYW5k IGZyZWUNCj4gPiBwYXNpZC4NCj4gPg0KPiA+IENjOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGlu dGVsLmNvbT4NCj4gPiBDYzogSmFjb2IgUGFuIDxqYWNvYi5qdW4ucGFuQGxpbnV4LmludGVsLmNv bT4NCj4gPiBDYzogUGV0ZXIgWHUgPHBldGVyeEByZWRoYXQuY29tPg0KPiA+IENjOiBZaSBTdW4g PHlpLnkuc3VuQGxpbnV4LmludGVsLmNvbT4NCj4gPiBDYzogUGFvbG8gQm9uemluaSA8cGJvbnpp bmlAcmVkaGF0LmNvbT4NCj4gPiBDYzogUmljaGFyZCBIZW5kZXJzb24gPHJ0aEB0d2lkZGxlLm5l dD4NCj4gPiBDYzogRWR1YXJkbyBIYWJrb3N0IDxlaGFia29zdEByZWRoYXQuY29tPg0KPiA+IFNp Z25lZC1vZmYtYnk6IExpdSBZaSBMIDx5aS5sLmxpdUBpbnRlbC5jb20+DQo+ID4gU2lnbmVkLW9m Zi1ieTogWWkgU3VuIDx5aS55LnN1bkBsaW51eC5pbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4gIGh3 L2kzODYvaW50ZWxfaW9tbXUuYyAgICAgICAgICB8IDE2Mw0KPiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLQ0KPiA+ICBody9pMzg2L2ludGVsX2lvbW11X2ludGVybmFs LmggfCAgMzggKysrKysrKysrKw0KPiA+ICBody9pMzg2L3RyYWNlLWV2ZW50cyAgICAgICAgICAg fCAgIDEgKw0KPiA+ICBpbmNsdWRlL2h3L2kzODYvaW50ZWxfaW9tbXUuaCAgfCAgIDYgKy0NCj4g PiAgNCBmaWxlcyBjaGFuZ2VkLCAyMDYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCj4g Pg0KPiA+IGRpZmYgLS1naXQgYS9ody9pMzg2L2ludGVsX2lvbW11LmMgYi9ody9pMzg2L2ludGVs X2lvbW11LmMgaW5kZXgNCj4gPiAzM2JlNDBjLi40M2E3MjhmIDEwMDY0NA0KPiA+IC0tLSBhL2h3 L2kzODYvaW50ZWxfaW9tbXUuYw0KPiA+ICsrKyBiL2h3L2kzODYvaW50ZWxfaW9tbXUuYw0KPiA+ IEBAIC0yNjQ5LDYgKzI2NDksMTQyIEBAIHN0YXRpYyB2b2lkDQo+IHZ0ZF9oYW5kbGVfaWVjdGxf d3JpdGUoSW50ZWxJT01NVVN0YXRlICpzKQ0KPiA+ICAgICAgfQ0KPiA+ICB9DQo+ID4NCj4gPiAr c3RhdGljIGludCB2dGRfcmVxdWVzdF9wYXNpZF9hbGxvYyhJbnRlbElPTU1VU3RhdGUgKnMsIHVp bnQzMl90DQo+ID4gKypwYXNpZCkgew0KPiA+ICsgICAgVlREQnVzICp2dGRfYnVzOw0KPiA+ICsg ICAgaW50IGJ1c19uLCBkZXZmbiwgcmV0ID0gLWVycm5vOw0KPiA+ICsgICAgVlRESU9NTVVDb250 ZXh0ICp2dGRfaWN4Ow0KPiA+ICsNCj4gPiArICAgIGZvciAoYnVzX24gPSAwOyBidXNfbiA8IFBD SV9CVVNfTUFYOyBidXNfbisrKSB7DQo+ID4gKyAgICAgICAgdnRkX2J1cyA9IHZ0ZF9maW5kX2Fz X2Zyb21fYnVzX251bShzLCBidXNfbik7DQo+ID4gKyAgICAgICAgaWYgKCF2dGRfYnVzKSB7DQo+ ID4gKyAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ICsgICAgICAgIH0NCj4gPiArICAgICAgICBm b3IgKGRldmZuID0gMDsgZGV2Zm4gPCBQQ0lfREVWRk5fTUFYOyBkZXZmbisrKSB7DQo+ID4gKyAg ICAgICAgICAgIHZ0ZF9pY3ggPSB2dGRfYnVzLT5kZXZfaWN4W2RldmZuXTsNCj4gPiArICAgICAg ICAgICAgaWYgKCF2dGRfaWN4KSB7DQo+ID4gKyAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4g PiArICAgICAgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgICAgICAgLyoNCj4gPiArICAgICAg ICAgICAgICogV2UnbGwgcmV0dXJuIHRoZSBmaXJzdCB2YWxpZCByZXN1bHQgd2UgZ290LiBJdCdz DQo+ID4gKyAgICAgICAgICAgICAqIGEgYml0IGhhY2tpc2ggaW4gdGhhdCB3ZSBkb24ndCBoYXZl IGEgZ29vZCBnbG9iYWwNCj4gPiArICAgICAgICAgICAgICogaW50ZXJmYWNlIHlldCB0byB0YWxr IHRvIG1vZHVsZXMgbGlrZSB2ZmlvIHRvIGRlbGl2ZXINCj4gPiArICAgICAgICAgICAgICogdGhp cyBhbGxvY2F0aW9uIHJlcXVlc3QsIHNvIHdlJ3JlIGxldmVyYWdpbmcgdGhpcw0KPiA+ICsgICAg ICAgICAgICAgKiBwZXItZGV2aWNlIGlvbW11IG9iamVjdCB0byBkbyB0aGUgc2FtZSB0aGluZyBq dXN0DQo+ID4gKyAgICAgICAgICAgICAqIHRvIG1ha2Ugc3VyZSB0aGUgYWxsb2NhdGlvbiBoYXBw ZW5zIG9ubHkgb25jZS4NCj4gPiArICAgICAgICAgICAgICovDQo+ID4gKyAgICAgICAgICAgIHJl dCA9IGRzX2lvbW11X3Bhc2lkX2FsbG9jKHZ0ZF9pY3gtPmRzaV9vYmosDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICBWVERfTUlOX0hQQVNJRCwgVlREX01BWF9IUEFTSUQsIHBhc2lkKTsN Cj4gDQo+IFlvdXIgaW5kZW50cyBhcmUgYWx3YXlzIHN0cmFuZ2UgdG8gbWUgZm9yIGxvbmcgZnVu Y2FsbHMuLi4gIE5vdCBhIGNvbXBsYWludCB0aG91Z2gsDQo+IGFzIGxvbmcgYXMgbm8gb25lIGVs c2UgY29tcGxhaW5zLiA6KQ0KDQp5ZWFoLCBJJ20gYWxzbyBub3QgZmVlbGluZyB3ZWxsIHdpdGgg dGhlbS4uLiBJJ2xsIHRyeSB0byBtYWtlIHRoZSBpbmRlbnRzICBmb3IgbG9uZw0KZnVuY2NhbGxz IGJldHRlci4g8J+Yig0KDQo+IA0KPiA+ICsgICAgICAgICAgICBpZiAoIXJldCkgew0KPiA+ICsg ICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKyAgICAgICAgICAgIH0NCj4gPiArICAgICAgICB9 DQo+ID4gKyAgICB9DQo+ID4gKyAgICByZXR1cm4gcmV0Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICtz dGF0aWMgaW50IHZ0ZF9yZXF1ZXN0X3Bhc2lkX2ZyZWUoSW50ZWxJT01NVVN0YXRlICpzLCB1aW50 MzJfdCBwYXNpZCkNCj4gPiArew0KPiA+ICsgICAgVlREQnVzICp2dGRfYnVzOw0KPiA+ICsgICAg aW50IGJ1c19uLCBkZXZmbiwgcmV0ID0gLWVycm5vOw0KPiA+ICsgICAgVlRESU9NTVVDb250ZXh0 ICp2dGRfaWN4Ow0KPiA+ICsNCj4gPiArICAgIGZvciAoYnVzX24gPSAwOyBidXNfbiA8IFBDSV9C VVNfTUFYOyBidXNfbisrKSB7DQo+ID4gKyAgICAgICAgdnRkX2J1cyA9IHZ0ZF9maW5kX2FzX2Zy b21fYnVzX251bShzLCBidXNfbik7DQo+ID4gKyAgICAgICAgaWYgKCF2dGRfYnVzKSB7DQo+ID4g KyAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ICsgICAgICAgIH0NCj4gPiArICAgICAgICBmb3Ig KGRldmZuID0gMDsgZGV2Zm4gPCBQQ0lfREVWRk5fTUFYOyBkZXZmbisrKSB7DQo+ID4gKyAgICAg ICAgICAgIHZ0ZF9pY3ggPSB2dGRfYnVzLT5kZXZfaWN4W2RldmZuXTsNCj4gPiArICAgICAgICAg ICAgaWYgKCF2dGRfaWN4KSB7DQo+ID4gKyAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4gPiAr ICAgICAgICAgICAgfQ0KPiA+ICsgICAgICAgICAgICAvKg0KPiA+ICsgICAgICAgICAgICAgKiBT aW1pbGFyIHdpdGggcGFzaWQgYWxsb2NhdGlvbi4gV2UnbGwgZnJlZSB0aGUgcGFzaWQNCj4gPiAr ICAgICAgICAgICAgICogb24gdGhlIGZpcnN0IHN1Y2Nlc3NmdWwgZnJlZSBvcGVyYXRpb24uIEl0 J3MgYSBiaXQNCj4gPiArICAgICAgICAgICAgICogaGFja2lzaCBpbiB0aGF0IHdlIGRvbid0IGhh dmUgYSBnb29kIGdsb2JhbCBpbnRlcmZhY2UNCj4gPiArICAgICAgICAgICAgICogeWV0IHRvIHRh bGsgdG8gbW9kdWxlcyBsaWtlIHZmaW8gdG8gZGVsaXZlciB0aGlzIHBhc2lkDQo+ID4gKyAgICAg ICAgICAgICAqIGZyZWUgcmVxdWVzdCwgc28gd2UncmUgbGV2ZXJhZ2luZyB0aGlzIHBlci1kZXZp Y2UgaW9tbXUNCj4gPiArICAgICAgICAgICAgICogb2JqZWN0IHRvIGRvIHRoZSBzYW1lIHRoaW5n IGp1c3QgdG8gbWFrZSBzdXJlIHRoZQ0KPiA+ICsgICAgICAgICAgICAgKiBmcmVlIGhhcHBlbnMg b25seSBvbmNlLg0KPiA+ICsgICAgICAgICAgICAgKi8NCj4gPiArICAgICAgICAgICAgcmV0ID0g ZHNfaW9tbXVfcGFzaWRfZnJlZSh2dGRfaWN4LT5kc2lfb2JqLCBwYXNpZCk7DQo+ID4gKyAgICAg ICAgICAgIGlmICghcmV0KSB7DQo+ID4gKyAgICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAg ICAgICAgICAgfQ0KPiA+ICsgICAgICAgIH0NCj4gPiArICAgIH0NCj4gPiArICAgIHJldHVybiBy ZXQ7DQo+ID4gK30NCj4gPiArDQo+ID4gKy8qDQo+ID4gKyAqIElmIElQIGlzIG5vdCBzZXQsIHNl dCBpdCBhbmQgcmV0dXJuIDANCj4gPiArICogSWYgSVAgaXMgYWxyZWFkeSBzZXQsIHJldHVybiAt MQ0KPiANCj4gT3V0IG9mIGRhdGU/ICBJbnN0ZWFkIGNhbiBtZW50aW9uIHRoYXQgdGhpcyBhbHNv IHJlc2V0cyB0aGUgcmVwbHkgc3RhdHVzIGNvZGUgdG8NCj4gemVybyBpbXBsaWNpdGx5IHNvIGJ5 IGRlZmF1bHQgaXQgd2lsbCByZXR1cm4gYSBzdWNjZXNzLg0KDQpPb29wcywgeWVhaCwgaXQncyBv dXQgb2YgZGF0ZS4gV2lsbCBmaXggaXQuDQoNCj4gDQo+IE90aGVyIHRoYW4gdGhhdDoNCj4gDQo+ IFJldmlld2VkLWJ5OiBQZXRlciBYdSA8cGV0ZXJ4QHJlZGhhdC5jb20+DQoNClRoYW5rcyBhIGxv dCBmb3IgdGhlIHBhdGllbnQgcmV2aWV3aW5nLg0KDQpSZWdhcmRzLA0KWWkgTGl1DQoNCj4gPiAr ICovDQo+ID4gK3N0YXRpYyB2b2lkIHZ0ZF92Y21kX3NldF9pcChJbnRlbElPTU1VU3RhdGUgKnMp IHsNCj4gPiArICAgIHMtPnZjcnNwID0gMTsNCj4gPiArICAgIHZ0ZF9zZXRfcXVhZF9yYXcocywg RE1BUl9WQ1JTUF9SRUcsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICgodWludDY0X3QpIHMt PnZjcnNwKSk7IH0NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIHZ0ZF92Y21kX2NsZWFyX2lwKElu dGVsSU9NTVVTdGF0ZSAqcykgew0KPiA+ICsgICAgcy0+dmNyc3AgJj0gKH4oKHVpbnQ2NF90KSgw eDEpKSk7DQo+ID4gKyAgICB2dGRfc2V0X3F1YWRfcmF3KHMsIERNQVJfVkNSU1BfUkVHLA0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAoKHVpbnQ2NF90KSBzLT52Y3JzcCkpOyB9DQo+ID4gKw0K PiA+ICsvKiBIYW5kbGUgd3JpdGUgdG8gVmlydHVhbCBDb21tYW5kIFJlZ2lzdGVyICovIHN0YXRp YyBpbnQNCj4gPiArdnRkX2hhbmRsZV92Y21kX3dyaXRlKEludGVsSU9NTVVTdGF0ZSAqcywgdWlu dDY0X3QgdmFsKSB7DQo+ID4gKyAgICB1aW50MzJfdCBwYXNpZDsNCj4gPiArICAgIGludCByZXQg PSAtMTsNCj4gPiArDQo+ID4gKyAgICB0cmFjZV92dGRfcmVnX3dyaXRlX3ZjbWQocy0+dmNyc3As IHZhbCk7DQo+ID4gKw0KPiA+ICsgICAgaWYgKCEocy0+dmNjYXAgJiBWVERfVkNDQVBfUEFTKSB8 fA0KPiA+ICsgICAgICAgICAocy0+dmNyc3AgJiAxKSkgew0KPiA+ICsgICAgICAgIHJldHVybiAt MTsNCj4gPiArICAgIH0NCj4gPiArDQo+ID4gKyAgICAvKg0KPiA+ICsgICAgICogU2luY2UgdkNQ VSBzaG91bGQgYmUgYmxvY2tlZCB3aGVuIHRoZSBndWVzdCBWTUNEDQo+ID4gKyAgICAgKiB3cml0 ZSB3YXMgdHJhcHBlZCB0byBoZXJlLiBTaG91bGQgYmUgbm8gb3RoZXIgdkNQVXMNCj4gPiArICAg ICAqIHRyeSB0byBhY2Nlc3MgVkNNRCBpZiBndWVzdCBzb2Z0d2FyZSBpcyB3ZWxsIHdyaXR0ZW4u DQo+ID4gKyAgICAgKiBIb3dldmVyLCB3ZSBzdGlsbCBlbXVsYXRlIHRoZSBJUCBiaXQgaGVyZSBp biBjYXNlIG9mDQo+ID4gKyAgICAgKiBiYWQgZ3Vlc3Qgc29mdHdhcmUuIEFsc28gYWxpZ24gd2l0 aCB0aGUgc3BlYy4NCj4gPiArICAgICAqLw0KPiA+ICsgICAgdnRkX3ZjbWRfc2V0X2lwKHMpOw0K PiA+ICsNCj4gPiArICAgIHN3aXRjaCAodmFsICYgVlREX1ZDTURfQ01EX01BU0spIHsNCj4gPiAr ICAgIGNhc2UgVlREX1ZDTURfQUxMT0NfUEFTSUQ6DQo+ID4gKyAgICAgICAgcmV0ID0gdnRkX3Jl cXVlc3RfcGFzaWRfYWxsb2MocywgJnBhc2lkKTsNCj4gPiArICAgICAgICBpZiAocmV0KSB7DQo+ ID4gKyAgICAgICAgICAgIHMtPnZjcnNwIHw9IFZURF9WQ1JTUF9TQyhWVERfVkNNRF9OT19BVkFJ TEFCTEVfUEFTSUQpOw0KPiA+ICsgICAgICAgIH0gZWxzZSB7DQo+ID4gKyAgICAgICAgICAgIHMt PnZjcnNwIHw9IFZURF9WQ1JTUF9SU0xUKHBhc2lkKTsNCj4gPiArICAgICAgICB9DQo+ID4gKyAg ICAgICAgYnJlYWs7DQo+ID4gKw0KPiA+ICsgICAgY2FzZSBWVERfVkNNRF9GUkVFX1BBU0lEOg0K PiA+ICsgICAgICAgIHBhc2lkID0gVlREX1ZDTURfUEFTSURfVkFMVUUodmFsKTsNCj4gPiArICAg ICAgICByZXQgPSB2dGRfcmVxdWVzdF9wYXNpZF9mcmVlKHMsIHBhc2lkKTsNCj4gPiArICAgICAg ICBpZiAocmV0IDwgMCkgew0KPiA+ICsgICAgICAgICAgICBzLT52Y3JzcCB8PSBWVERfVkNSU1Bf U0MoVlREX1ZDTURfRlJFRV9JTlZBTElEX1BBU0lEKTsNCj4gPiArICAgICAgICB9DQo+ID4gKyAg ICAgICAgYnJlYWs7DQo+ID4gKw0KPiA+ICsgICAgZGVmYXVsdDoNCj4gPiArICAgICAgICBzLT52 Y3JzcCB8PSBWVERfVkNSU1BfU0MoVlREX1ZDTURfVU5ERUZJTkVEX0NNRCk7DQo+ID4gKyAgICAg ICAgZXJyb3JfcmVwb3J0X29uY2UoIlZpcnR1YWwgQ29tbWFuZDogdW5zdXBwb3J0ZWQgY29tbWFu ZCEhISIpOw0KPiA+ICsgICAgICAgIGJyZWFrOw0KPiA+ICsgICAgfQ0KPiA+ICsgICAgdnRkX3Zj bWRfY2xlYXJfaXAocyk7DQo+ID4gKyAgICByZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiAg c3RhdGljIHVpbnQ2NF90IHZ0ZF9tZW1fcmVhZCh2b2lkICpvcGFxdWUsIGh3YWRkciBhZGRyLCB1 bnNpZ25lZA0KPiA+IHNpemUpICB7DQo+ID4gICAgICBJbnRlbElPTU1VU3RhdGUgKnMgPSBvcGFx dWU7DQo+ID4gQEAgLTI5MzgsNiArMzA3NCwyMyBAQCBzdGF0aWMgdm9pZCB2dGRfbWVtX3dyaXRl KHZvaWQgKm9wYXF1ZSwgaHdhZGRyDQo+IGFkZHIsDQo+ID4gICAgICAgICAgdnRkX3NldF9sb25n KHMsIGFkZHIsIHZhbCk7DQo+ID4gICAgICAgICAgYnJlYWs7DQo+ID4NCj4gPiArICAgIGNhc2Ug RE1BUl9WQ01EX1JFRzoNCj4gPiArICAgICAgICBpZiAoIXZ0ZF9oYW5kbGVfdmNtZF93cml0ZShz LCB2YWwpKSB7DQo+ID4gKyAgICAgICAgICAgIGlmIChzaXplID09IDQpIHsNCj4gPiArICAgICAg ICAgICAgICAgIHZ0ZF9zZXRfbG9uZyhzLCBhZGRyLCB2YWwpOw0KPiA+ICsgICAgICAgICAgICB9 IGVsc2Ugew0KPiA+ICsgICAgICAgICAgICAgICAgdnRkX3NldF9xdWFkKHMsIGFkZHIsIHZhbCk7 DQo+ID4gKyAgICAgICAgICAgIH0NCj4gPiArICAgICAgICB9DQo+ID4gKyAgICAgICAgYnJlYWs7 DQo+ID4gKw0KPiA+ICsgICAgY2FzZSBETUFSX1ZDTURfUkVHX0hJOg0KPiA+ICsgICAgICAgIGFz c2VydChzaXplID09IDQpOw0KPiA+ICsgICAgICAgIGlmICghdnRkX2hhbmRsZV92Y21kX3dyaXRl KHMsIHZhbCkpIHsNCj4gPiArICAgICAgICAgICAgdnRkX3NldF9sb25nKHMsIGFkZHIsIHZhbCk7 DQo+ID4gKyAgICAgICAgfQ0KPiA+ICsgICAgICAgIGJyZWFrOw0KPiA+ICsNCj4gPiAgICAgIGRl ZmF1bHQ6DQo+ID4gICAgICAgICAgaWYgKHNpemUgPT0gNCkgew0KPiA+ICAgICAgICAgICAgICB2 dGRfc2V0X2xvbmcocywgYWRkciwgdmFsKTsgQEAgLTM3MTIsNyArMzg2NSw4IEBAIHN0YXRpYw0K PiA+IHZvaWQgdnRkX2luaXQoSW50ZWxJT01NVVN0YXRlICpzKQ0KPiA+ICAgICAgICAgIHMtPmVj YXAgfD0gVlREX0VDQVBfU01UUyB8IFZURF9FQ0FQX1NSUyB8IFZURF9FQ0FQX1NMVFM7DQo+ID4g ICAgICB9IGVsc2UgaWYgKHMtPnNjYWxhYmxlX21vZGUgJiYgcy0+c2NhbGFibGVfbW9kZXJuKSB7 DQo+ID4gICAgICAgICAgcy0+ZWNhcCB8PSBWVERfRUNBUF9TTVRTIHwgVlREX0VDQVBfU1JTIHwg VlREX0VDQVBfUEFTSUQNCj4gPiAtICAgICAgICAgICAgICAgICAgIHwgVlREX0VDQVBfRkxUUyB8 IFZURF9FQ0FQX1BTUzsNCj4gPiArICAgICAgICAgICAgICAgICAgIHwgVlREX0VDQVBfRkxUUyB8 IFZURF9FQ0FQX1BTUyB8IFZURF9FQ0FQX1ZDUzsNCj4gPiArICAgICAgICBzLT52Y2NhcCB8PSBW VERfVkNDQVBfUEFTOw0KPiA+ICAgICAgfQ0KPiA+DQo+ID4gICAgICB2dGRfcmVzZXRfY2FjaGVz KHMpOw0KPiA+IEBAIC0zNzY4LDYgKzM5MjIsMTMgQEAgc3RhdGljIHZvaWQgdnRkX2luaXQoSW50 ZWxJT01NVVN0YXRlICpzKQ0KPiA+ICAgICAgICogSW50ZXJydXB0IHJlbWFwcGluZyByZWdpc3Rl cnMuDQo+ID4gICAgICAgKi8NCj4gPiAgICAgIHZ0ZF9kZWZpbmVfcXVhZChzLCBETUFSX0lSVEFf UkVHLCAwLCAweGZmZmZmZmZmZmZmZmY4MGZVTEwsIDApOw0KPiA+ICsNCj4gPiArICAgIC8qDQo+ ID4gKyAgICAgKiBWaXJ0dWFsIENvbW1hbmQgRGVmaW5pdGlvbnMNCj4gPiArICAgICAqLw0KPiA+ ICsgICAgdnRkX2RlZmluZV9xdWFkKHMsIERNQVJfVkNDQVBfUkVHLCBzLT52Y2NhcCwgMCwgMCk7 DQo+ID4gKyAgICB2dGRfZGVmaW5lX3F1YWQocywgRE1BUl9WQ01EX1JFRywgMCwgMHhmZmZmZmZm ZmZmZmZmZmZmVUxMLCAwKTsNCj4gPiArICAgIHZ0ZF9kZWZpbmVfcXVhZChzLCBETUFSX1ZDUlNQ X1JFRywgMCwgMCwgMCk7DQo+ID4gIH0NCj4gPg0KPiA+ICAvKiBTaG91bGQgbm90IHJlc2V0IGFk ZHJlc3Nfc3BhY2VzIHdoZW4gcmVzZXQgYmVjYXVzZSBkZXZpY2VzIHdpbGwNCj4gPiBzdGlsbCB1 c2UgZGlmZiAtLWdpdCBhL2h3L2kzODYvaW50ZWxfaW9tbXVfaW50ZXJuYWwuaA0KPiA+IGIvaHcv aTM4Ni9pbnRlbF9pb21tdV9pbnRlcm5hbC5oIGluZGV4IGM0ZGJiMmMuLmZiNWZkYzIgMTAwNjQ0 DQo+ID4gLS0tIGEvaHcvaTM4Ni9pbnRlbF9pb21tdV9pbnRlcm5hbC5oDQo+ID4gKysrIGIvaHcv aTM4Ni9pbnRlbF9pb21tdV9pbnRlcm5hbC5oDQo+ID4gQEAgLTg1LDYgKzg1LDEyIEBADQo+ID4g ICNkZWZpbmUgRE1BUl9NVFJSQ0FQX1JFR19ISSAgICAgMHgxMDQNCj4gPiAgI2RlZmluZSBETUFS X01UUlJERUZfUkVHICAgICAgICAweDEwOCAvKiBNVFJSIGRlZmF1bHQgdHlwZSAqLw0KPiA+ICAj ZGVmaW5lIERNQVJfTVRSUkRFRl9SRUdfSEkgICAgIDB4MTBjDQo+ID4gKyNkZWZpbmUgRE1BUl9W Q0NBUF9SRUcgICAgICAgICAgMHhFMDAgLyogVmlydHVhbCBDb21tYW5kIENhcGFiaWxpdHkNCj4g UmVnaXN0ZXIgKi8NCj4gPiArI2RlZmluZSBETUFSX1ZDQ0FQX1JFR19ISSAgICAgICAweEUwNA0K PiA+ICsjZGVmaW5lIERNQVJfVkNNRF9SRUcgICAgICAgICAgIDB4RTEwIC8qIFZpcnR1YWwgQ29t bWFuZCBSZWdpc3RlciAqLw0KPiA+ICsjZGVmaW5lIERNQVJfVkNNRF9SRUdfSEkgICAgICAgIDB4 RTE0DQo+ID4gKyNkZWZpbmUgRE1BUl9WQ1JTUF9SRUcgICAgICAgICAgMHhFMjAgLyogVmlydHVh bCBDb21tYW5kIFJlcG9uc2UgUmVnaXN0ZXINCj4gKi8NCj4gPiArI2RlZmluZSBETUFSX1ZDUlNQ X1JFR19ISSAgICAgICAweEUyNA0KPiA+DQo+ID4gIC8qIElPVExCIHJlZ2lzdGVycyAqLw0KPiA+ ICAjZGVmaW5lIERNQVJfSU9UTEJfUkVHX09GRlNFVCAgIDB4ZjAgLyogT2Zmc2V0IHRvIHRoZSBJ T1RMQiByZWdpc3RlcnMgKi8NCj4gPiBAQCAtMTkzLDYgKzE5OSw3IEBADQo+ID4gICNkZWZpbmUg VlREX0VDQVBfUFNTICAgICAgICAgICAgICAgICgxOVVMTCA8PCAzNSkNCj4gPiAgI2RlZmluZSBW VERfRUNBUF9QQVNJRCAgICAgICAgICAgICAgKDFVTEwgPDwgNDApDQo+ID4gICNkZWZpbmUgVlRE X0VDQVBfU01UUyAgICAgICAgICAgICAgICgxVUxMIDw8IDQzKQ0KPiA+ICsjZGVmaW5lIFZURF9F Q0FQX1ZDUyAgICAgICAgICAgICAgICAoMVVMTCA8PCA0NCkNCj4gPiAgI2RlZmluZSBWVERfRUNB UF9TTFRTICAgICAgICAgICAgICAgKDFVTEwgPDwgNDYpDQo+ID4gICNkZWZpbmUgVlREX0VDQVBf RkxUUyAgICAgICAgICAgICAgICgxVUxMIDw8IDQ3KQ0KPiA+DQo+ID4gQEAgLTMxNSw2ICszMjIs MzcgQEAgdHlwZWRlZiBlbnVtIFZUREZhdWx0UmVhc29uIHsNCj4gPg0KPiA+ICAjZGVmaW5lIFZU RF9DT05URVhUX0NBQ0hFX0dFTl9NQVggICAgICAgMHhmZmZmZmZmZlVMDQo+ID4NCj4gPiArLyog VkNDQVBfUkVHICovDQo+ID4gKyNkZWZpbmUgVlREX1ZDQ0FQX1BBUyAgICAgICAgICAgICAgICgx VUwgPDwgMCkNCj4gPiArDQo+ID4gKy8qDQo+ID4gKyAqIFRoZSBiYXNpYyBpZGVhIGlzIHRvIGxl dCBoeXBlcnZpc29yIHRvIHNldCBhIHJhbmdlIGZvciBhdmFpbGFibGUNCj4gPiArICogUEFTSURz IGZvciBWTXMuIE9uZSBvZiB0aGUgcmVhc29ucyBpcyBQQVNJRCAjMCBpcyByZXNlcnZlZCBieQ0K PiA+ICsgKiBSSURfUEFTSUQgdXNhZ2UuIFdlIGhhdmUgbm8gaWRlYSBob3cgbWFueSByZXNlcnZl ZCBQQVNJRHMgaW4NCj4gPiArZnV0dXJlLA0KPiA+ICsgKiBzbyBoZXJlIGp1c3QgYW4gZXZhbHVh dGVkIHZhbHVlLiBIb25lc3RseSwgc2V0IGl0IGFzICIxIiBpcyBlbm91Z2gNCj4gPiArICogYXQg Y3VycmVudCBzdGFnZS4NCj4gPiArICovDQo+ID4gKyNkZWZpbmUgVlREX01JTl9IUEFTSUQgICAg ICAgICAgICAgIDENCj4gPiArI2RlZmluZSBWVERfTUFYX0hQQVNJRCAgICAgICAgICAgICAgMHhG RkZGRg0KPiA+ICsNCj4gPiArLyogVmlydHVhbCBDb21tYW5kIFJlZ2lzdGVyICovDQo+ID4gK2Vu dW0gew0KPiA+ICsgICAgIFZURF9WQ01EX05VTExfQ01EID0gMCwNCj4gPiArICAgICBWVERfVkNN RF9BTExPQ19QQVNJRCA9IDEsDQo+ID4gKyAgICAgVlREX1ZDTURfRlJFRV9QQVNJRCA9IDIsDQo+ ID4gKyAgICAgVlREX1ZDTURfQ01EX05VTSwNCj4gPiArfTsNCj4gPiArDQo+ID4gKyNkZWZpbmUg VlREX1ZDTURfQ01EX01BU0sgICAgICAgICAgIDB4ZmZVTA0KPiA+ICsjZGVmaW5lIFZURF9WQ01E X1BBU0lEX1ZBTFVFKHZhbCkgICAoKCh2YWwpID4+IDgpICYgMHhmZmZmZikNCj4gPiArDQo+ID4g KyNkZWZpbmUgVlREX1ZDUlNQX1JTTFQodmFsKSAgICAgICAgICgodmFsKSA8PCA4KQ0KPiA+ICsj ZGVmaW5lIFZURF9WQ1JTUF9TQyh2YWwpICAgICAgICAgICAoKCh2YWwpICYgMHgzKSA8PCAxKQ0K PiA+ICsNCj4gPiArI2RlZmluZSBWVERfVkNNRF9VTkRFRklORURfQ01EICAgICAgICAgMVVMTA0K PiA+ICsjZGVmaW5lIFZURF9WQ01EX05PX0FWQUlMQUJMRV9QQVNJRCAgICAyVUxMDQo+ID4gKyNk ZWZpbmUgVlREX1ZDTURfRlJFRV9JTlZBTElEX1BBU0lEICAgIDJVTEwNCj4gPiArDQo+ID4gIC8q IEludGVycnVwdCBFbnRyeSBDYWNoZSBJbnZhbGlkYXRpb24gRGVzY3JpcHRvcjogVlQtZCA2LjUu Mi43LiAqLw0KPiA+IHN0cnVjdCBWVERJbnZEZXNjSUVDIHsNCj4gPiAgICAgIHVpbnQzMl90IHR5 cGU6NDsgICAgICAgICAgICAvKiBTaG91bGQgYWx3YXlzIGJlIDB4NCAqLw0KPiA+IGRpZmYgLS1n aXQgYS9ody9pMzg2L3RyYWNlLWV2ZW50cyBiL2h3L2kzODYvdHJhY2UtZXZlbnRzIGluZGV4DQo+ ID4gZTQ4YmVmMi4uNzE1MzZhNyAxMDA2NDQNCj4gPiAtLS0gYS9ody9pMzg2L3RyYWNlLWV2ZW50 cw0KPiA+ICsrKyBiL2h3L2kzODYvdHJhY2UtZXZlbnRzDQo+ID4gQEAgLTUxLDYgKzUxLDcgQEAg dnRkX3JlZ193cml0ZV9nY21kKHVpbnQzMl90IHN0YXR1cywgdWludDMyX3QgdmFsKSAic3RhdHVz DQo+IDB4JSJQUkl4MzIiIHZhbHVlIDB4JSINCj4gPiAgdnRkX3JlZ193cml0ZV9mZWN0bCh1aW50 MzJfdCB2YWx1ZSkgInZhbHVlIDB4JSJQUkl4MzINCj4gPiB2dGRfcmVnX3dyaXRlX2llY3RsKHVp bnQzMl90IHZhbHVlKSAidmFsdWUgMHglIlBSSXgzMg0KPiA+ICB2dGRfcmVnX2ljc19jbGVhcl9p cCh2b2lkKSAiIg0KPiA+ICt2dGRfcmVnX3dyaXRlX3ZjbWQodWludDMyX3Qgc3RhdHVzLCB1aW50 MzJfdCB2YWwpICJzdGF0dXMgMHglIlBSSXgzMiINCj4gPiArdmFsdWUgMHglIlBSSXgzMg0KPiA+ ICB2dGRfZG1hcl90cmFuc2xhdGUodWludDhfdCBidXMsIHVpbnQ4X3Qgc2xvdCwgdWludDhfdCBm dW5jLCB1aW50NjRfdA0KPiA+IGlvdmEsIHVpbnQ2NF90IGdwYSwgdWludDY0X3QgbWFzaykgImRl diAlMDJ4OiUwMnguJTAyeCBpb3ZhIDB4JSJQUkl4NjQiIC0+DQo+IGdwYSAweCUiUFJJeDY0IiBt YXNrIDB4JSJQUkl4NjQgIHZ0ZF9kbWFyX2VuYWJsZShib29sIGVuKSAiZW5hYmxlICVkIg0KPiA+ ICB2dGRfZG1hcl9mYXVsdCh1aW50MTZfdCBzaWQsIGludCBmYXVsdCwgdWludDY0X3QgYWRkciwg Ym9vbCBpc193cml0ZSkgInNpZA0KPiAweCUiUFJJeDE2IiBmYXVsdCAlZCBhZGRyIDB4JSJQUkl4 NjQiIHdyaXRlICVkIg0KPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2h3L2kzODYvaW50ZWxfaW9t bXUuaA0KPiA+IGIvaW5jbHVkZS9ody9pMzg2L2ludGVsX2lvbW11LmggaW5kZXggMWVmMjkxNy4u NDE1ODExNiAxMDA2NDQNCj4gPiAtLS0gYS9pbmNsdWRlL2h3L2kzODYvaW50ZWxfaW9tbXUuaA0K PiA+ICsrKyBiL2luY2x1ZGUvaHcvaTM4Ni9pbnRlbF9pb21tdS5oDQo+ID4gQEAgLTQ2LDcgKzQ2 LDcgQEANCj4gPiAgI2RlZmluZSBWVERfU0lEX1RPX0JVUyhzaWQpICAgICAgICAgKCgoc2lkKSA+ PiA4KSAmIDB4ZmYpDQo+ID4gICNkZWZpbmUgVlREX1NJRF9UT19ERVZGTihzaWQpICAgICAgICgo c2lkKSAmIDB4ZmYpDQo+ID4NCj4gPiAtI2RlZmluZSBETUFSX1JFR19TSVpFICAgICAgICAgICAg ICAgMHgyMzANCj4gPiArI2RlZmluZSBETUFSX1JFR19TSVpFICAgICAgICAgICAgICAgMHhGMDAN Cj4gPiAgI2RlZmluZSBWVERfSE9TVF9BV18zOUJJVCAgICAgICAgICAgMzkNCj4gPiAgI2RlZmlu ZSBWVERfSE9TVF9BV180OEJJVCAgICAgICAgICAgNDgNCj4gPiAgI2RlZmluZSBWVERfSE9TVF9B RERSRVNTX1dJRFRIICAgICAgVlREX0hPU1RfQVdfMzlCSVQNCj4gPiBAQCAtMjg1LDYgKzI4NSwx MCBAQCBzdHJ1Y3QgSW50ZWxJT01NVVN0YXRlIHsNCj4gPiAgICAgIHVpbnQ4X3QgYXdfYml0czsg ICAgICAgICAgICAgICAgLyogSG9zdC9JT1ZBIGFkZHJlc3Mgd2lkdGggKGluIGJpdHMpICovDQo+ ID4gICAgICBib29sIGRtYV9kcmFpbjsgICAgICAgICAgICAgICAgIC8qIFdoZXRoZXIgRE1BIHIv dyBkcmFpbmluZyBlbmFibGVkICovDQo+ID4NCj4gPiArICAgIC8qIFZpcnR1YWwgQ29tbWFuZCBS ZWdpc3RlciAqLw0KPiA+ICsgICAgdWludDY0X3QgdmNjYXA7ICAgICAgICAgICAgICAgICAvKiBU aGUgdmFsdWUgb2YgdmNtZCBjYXBhYmlsaXR5IHJlZyAqLw0KPiA+ICsgICAgdWludDY0X3QgdmNy c3A7ICAgICAgICAgICAgICAgICAvKiBDdXJyZW50IHZhbHVlIG9mIFZDTUQgUlNQIFJFRyAqLw0K PiA+ICsNCj4gPiAgICAgIC8qDQo+ID4gICAgICAgKiBQcm90ZWN0cyBJT01NVSBzdGF0ZXMgaW4g Z2VuZXJhbC4gIEN1cnJlbnRseSBpdCBwcm90ZWN0cyB0aGUNCj4gPiAgICAgICAqIHBlci1JT01N VSBJT1RMQiBjYWNoZSwgYW5kIGNvbnRleHQgZW50cnkgY2FjaGUgaW4gVlREQWRkcmVzc1NwYWNl Lg0KPiA+IC0tDQo+ID4gMi43LjQNCj4gPg0KPiANCj4gLS0NCj4gUGV0ZXIgWHUNCg0K