From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 89320A09FF; Wed, 30 Dec 2020 04:03:42 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 703A14C8F; Wed, 30 Dec 2020 04:03:17 +0100 (CET) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 8F7F42B87 for ; Wed, 30 Dec 2020 04:03:14 +0100 (CET) IronPort-SDR: 26S9btiJ1FW1pSJ9+CHvFmgFjKCV+7SEBCIscRi0ZDect4MPtfCwzFjT/xVNlfZBxgL25lDj6x GyexIBBz+EFg== X-IronPort-AV: E=McAfee;i="6000,8403,9849"; a="261315284" X-IronPort-AV: E=Sophos;i="5.78,460,1599548400"; d="scan'208";a="261315284" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Dec 2020 19:02:59 -0800 IronPort-SDR: 9n3CbCOyfZMKG3P8Q9Sa8PYsGl7CTA6xDuqXmNu00ssUr7L3kDXJRxKs+zI8hM6HwTp2jzytWJ ZrwmpbBHplew== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,460,1599548400"; d="scan'208";a="494813001" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by orsmga004.jf.intel.com with ESMTP; 29 Dec 2020 19:02:58 -0800 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 29 Dec 2020 19:02:57 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 29 Dec 2020 19:02:57 -0800 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.176) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Tue, 29 Dec 2020 19:02:57 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g/gFVvUYeTjxVs+FO/2eVddqcPlCWvWPxGHGZnnPIGNMzYn5DU0cGFs44dnU3sCTsrIV25eLdUGf60WRUw/Cr/vvxaJ423lda7CTDwKwOqoR5uQERA9ZnWv+sXD9u5opufky/iw5FjmYl5wXawHfgcx4JDP9y0AAdkKGGoO2njHIHWEF4XDOe6z/3/QAmpRket3V01S4K/JH/QEKXW17U82xDKmYeOCMbKSsAO3Urf/qVbvHzDZ1hIYsb7RO/rZGKXf1n6e5Aw5EdU4B4Ed6HJXDyRyjTuiw+0UESx3mOYbYz7VUk7sr2Kw/Glqwpl8OzJd3A9H30xozilVVRADKKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=j0gadM7otVX0h9rL+f4WcIt6sQHbvDE67R3oulHhRXU=; b=UO/aUwGDgAqJQRw4CMDhCDw228KYsafuko0D1yXLJdbHPhrOgLBjkN8DCPuk3IQGlVVaFB+pRW0LnS8KY2npDE4U6EUQeEiNiEhXWLUB+b1ftUcuun1A5/n8JAUzHxwC2rJjfkKNybEBRHP65ID2LeH+kWN5Fz9x9boED3J8U6n9g1gaXnNqYAzzGeFJtEkVzOmQES5lBb04NCTkirQCNg7KrdIQLsNqCN1yr+2hFIR1kZPq+RwBQPSd9zcwUHKmm5pIaibFSrk7/OwV+q7Gi5cbQO1efztO+BUyLlzXmb58FfGECs3BHIOA0NpONSClOadJdzwsxFUuGoeOyqzYRA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=j0gadM7otVX0h9rL+f4WcIt6sQHbvDE67R3oulHhRXU=; b=ho1ZOky+zWx4fbcjLA8KvnR82RrkI9aQ3zuQJmMur5PLSwuE+3DK3VWYV/5FpCSYeGfgMHT0a0qOO4eKYEJFIUmCzgI9dhX3YxB9vCfEAi2KfBrofGDJFIJf2OyX3WSXlRzyUXUEFIgrzTUMz4jvYYGu5Jn+LmTY3CeuPqAKn1Q= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3791.namprd11.prod.outlook.com (2603:10b6:208:f9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3700.31; Wed, 30 Dec 2020 03:02:26 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::74f2:ba7f:cb22:5272]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::74f2:ba7f:cb22:5272%7]) with mapi id 15.20.3700.031; Wed, 30 Dec 2020 03:02:26 +0000 From: "Xia, Chenbo" To: Maxime Coquelin , "dev@dpdk.org" , "olivier.matz@6wind.com" , "amorenoz@redhat.com" , "david.marchand@redhat.com" Thread-Topic: [PATCH 03/40] net/virtio: refactor virtio-user device Thread-Index: AQHW1xUhAp2yhxhVvUu05mgw/lFo5qoPAEuA Date: Wed, 30 Dec 2020 03:02:26 +0000 Message-ID: References: <20201220211405.313012-1-maxime.coquelin@redhat.com> <20201220211405.313012-4-maxime.coquelin@redhat.com> In-Reply-To: <20201220211405.313012-4-maxime.coquelin@redhat.com> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.218] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 88f90dd0-1492-434d-724c-08d8ac6f56b2 x-ms-traffictypediagnostic: MN2PR11MB3791: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2331; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: syiWfERg2IsVAYatEUZfDK91tKjQYuvLA+A3iHyQd+8m2ovpZy59R+UQpZ7izjypC7CtpPF6WqKwuQQFyqua7YS6rxayq56884PxeBH0uDr3VCdtQ6Bu1rg0xP7g1CkaYanCDpxs8a7hZMXkBl5ZgmqxZgAH8hk96105yB1nchCkceoAF29pTb9O+UuU7FrpJjA4+4oHxifiDCAIFQMKWxcOSDp4CqGNOdmqciGhQWYsFdu4obfwoBOjMmSAHcujFYtCmd3P5PikErbJgH1/BYLr1FGupm9TcdTblwRDp/MdMhX+X2UXWOLrDiWZ5ZB0kcK7bgWOZA7xyllFuIySLbPbe38R4je+JE4dngUGWwY7syxNgmjUmB97QYuV1Ie9N8aKjOGMi1loDStifHk6Fw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB4063.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(39860400002)(396003)(366004)(136003)(346002)(64756008)(9686003)(71200400001)(186003)(6506007)(52536014)(5660300002)(83380400001)(55016002)(110136005)(53546011)(33656002)(66476007)(66446008)(76116006)(8676002)(66556008)(2906002)(26005)(86362001)(316002)(7696005)(8936002)(478600001)(66946007); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?TzdnRnp2dSt4d2JVY0VhUDl0OWdHR3hGMjhYaUV0ZUNWQ0hmQk1NK1RWYStN?= =?utf-8?B?bWc1OVZTMjRnMEFPM0trYlhTdXM4ekJKNFF5LzE0eWFSekQ1RmhtYi9saTdx?= =?utf-8?B?bXhrRE0xZFhIdGc3VHVXdDluYXd1bTBqck90NTFGK2lsY2RlT3FBYU1JNU0y?= =?utf-8?B?d1g1c2lvc2t1bzBSQ2ozR0hSdEpHbVRyODZ3NnFlcDlzRUdYaStRcFNhRHVy?= =?utf-8?B?dU5QMmN4UVhibWdkZ05CN29JalZSUXN4RENVSEZWY0ZiOFAvNFdMMzFuUVF3?= =?utf-8?B?NFRTaHRsaEs4WEZLRHFQSVNEYkhCSkpzbFBQOEpyWTdHWGtXS2xKdkJGNlZM?= =?utf-8?B?WlRBdlBwWGlmUmlDbDBSenp0MDVGbmdTdHJNUm5HeW92UEpwcWhnSGk2NXBJ?= =?utf-8?B?enU1bXB1RlYvVkFBVXJXUlFFdFpxQkRSSU5XQWJoSVJJaCt4ZDZISnBNampm?= =?utf-8?B?MVlBTC9WeHV4dlc1WVFZYk5DU09IOW9CYmVuK2xzRitmMTBqdGJpUHBjL1g3?= =?utf-8?B?QmFBOUFFeEVFc01jNGs5K2lZRk9tTTY2OS9FclFHUkg4YzhrajBmWllmRmw4?= =?utf-8?B?eEdHbHFYaWRWUURMSm5qUzI2ZnQ3K3N3Tm5IYURFQ3dkODBIMnB6WDczam5r?= =?utf-8?B?MUF0RVBRbWhvYmdCU29KdlhoSUUyT2FoMVdIem43Y0t1cGp3aVVZSXJ2OWd6?= =?utf-8?B?YThsZTlQWGFvS3hBRUtGdEREMWczaWRKRTlJTThBM1Y3Q25FRE5vVTUrYjNK?= =?utf-8?B?VTFsMk9QM3FGRzBFYXJnMnRaK1IwMWdTUEozZklhYjJsN1RQYVBRTWRFYmo5?= =?utf-8?B?S1J0WEplK3AyOEVqNGtkdXkzSGU1Nm1za29LYlhpdCtRbFV4cU9GZlFLY3J5?= =?utf-8?B?UGt0ME83NmJmMTl2YmVRSGVCL0xKcko1d2NvaFdnYTlQMENsV2QyaXhZRmEr?= =?utf-8?B?eHVIRWR6NVlCYm1uVXFWMlUvYks0RWluZXdvWTNnZ0V6TmJsUm1mc1VPTmFW?= =?utf-8?B?eDNNQ1RPL0tNN3EzUVVRWGlxN2lZMVhMNzZaNk9USVQ0RlpIaDRTOW5IRCtK?= =?utf-8?B?aDhLV0cwUjBsbmZVbmRzSElYdWJwdVlXQ2M5SDFmUTNoV3hzcUdmdHM2QWZx?= =?utf-8?B?RjREMlNPQ3U5SStkSVJ1Y1BBWGhLNWx3TkQzY0J2R1JFSWFoNndxZEVvcVZ1?= =?utf-8?B?U2tyYnprSXFwMEd0ZkIxbnJBUy95eE5HTy8yWi83b1AwZTE0MzVZY1g3aDhE?= =?utf-8?B?K21LM2oxSnkrWG5wbEZDWE9xVDR1YVdMNXlMbHRvd1VQVTNrUmQxdk5GQVFt?= =?utf-8?Q?e+W3cWa9dgxXw=3D?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4063.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 88f90dd0-1492-434d-724c-08d8ac6f56b2 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Dec 2020 03:02:26.7098 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: OTrjB8B0PWlfj0hlDD9JHoV8DUVckUhCMBoDVb+iFqaUHZ/vSFQNkSYrlueAxjyRmCIBZtlSErYyhXLcbQEtbw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3791 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH 03/40] net/virtio: refactor virtio-user device X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gPG1h eGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBNb25kYXksIERlY2VtYmVyIDIxLCAy MDIwIDU6MTMgQU0NCj4gVG86IGRldkBkcGRrLm9yZzsgWGlhLCBDaGVuYm8gPGNoZW5iby54aWFA aW50ZWwuY29tPjsgb2xpdmllci5tYXR6QDZ3aW5kLmNvbTsNCj4gYW1vcmVub3pAcmVkaGF0LmNv bTsgZGF2aWQubWFyY2hhbmRAcmVkaGF0LmNvbQ0KPiBDYzogTWF4aW1lIENvcXVlbGluIDxtYXhp bWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4gU3ViamVjdDogW1BBVENIIDAzLzQwXSBuZXQvdmly dGlvOiByZWZhY3RvciB2aXJ0aW8tdXNlciBkZXZpY2UNCj4gDQo+IFRoaXMgcGF0Y2ggbW92ZXMg dGhlIHZpcnRpb19odyBzdHJ1Y3R1cmUgaW50byB0aGUgdmlydGlvX3VzZXJfZGV2DQo+IHN0cnVj dHVyZSwgd2l0aCB0aGUgZ29hbCBvZiBtYWtpbmcgdmlydGlvX2h3IGJ1cy1hZ25vc3RpYy4NCj4g DQo+IFNpZ25lZC1vZmYtYnk6IE1heGltZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhh dC5jb20+DQo+IC0tLQ0KPiAgZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19ldGhkZXYuYyAgICAg ICAgICAgIHwgIDIgKy0NCj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fcGNpLmggICAgICAg ICAgICAgICB8ICAxIC0NCj4gIC4uLi9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3ZpcnRpb191c2Vy X2Rldi5oICB8ICAxICsNCj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlcl9ldGhkZXYu YyAgICAgICB8IDYyICsrKysrKysrLS0tLS0tLS0tLS0NCj4gIDQgZmlsZXMgY2hhbmdlZCwgMjcg aW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvdmlydGlvL3ZpcnRpb19ldGhkZXYuYw0KPiBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0 aW9fZXRoZGV2LmMNCj4gaW5kZXggYjMwODYyOTdjMC4uM2FjZTI1YWM4MCAxMDA2NDQNCj4gLS0t IGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19ldGhkZXYuYw0KPiArKysgYi9kcml2ZXJzL25l dC92aXJ0aW8vdmlydGlvX2V0aGRldi5jDQo+IEBAIC03NDcsNyArNzQ3LDcgQEAgdmlydGlvX2Rl dl9jbG9zZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gDQo+ICAjaWZkZWYgUlRFX1ZJUlRJ T19VU0VSDQo+ICAJaWYgKGh3LT5idXNfdHlwZSA9PSBWSVJUSU9fQlVTX1VTRVIpDQo+IC0JCXZp cnRpb191c2VyX2Rldl91bmluaXQoaHctPnZpcnRpb191c2VyX2Rldik7DQo+ICsJCXZpcnRpb191 c2VyX2Rldl91bmluaXQoZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7DQo+ICAJZWxzZQ0KPiAgI2Vu ZGlmDQo+ICAJaWYgKGRldi0+ZGV2aWNlKSB7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92 aXJ0aW8vdmlydGlvX3BjaS5oIGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19wY2kuaA0KPiBp bmRleCA2Mzg4ZjBhNzRkLi5iMzVhNTk2MTY5IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC92 aXJ0aW8vdmlydGlvX3BjaS5oDQo+ICsrKyBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fcGNp LmgNCj4gQEAgLTI3Nyw3ICsyNzcsNiBAQCBzdHJ1Y3QgdmlydGlvX2h3IHsNCj4gIAl1aW50MTZf dCAgICAqbm90aWZ5X2Jhc2U7DQo+ICAJc3RydWN0IHZpcnRpb19wY2lfY29tbW9uX2NmZyAqY29t bW9uX2NmZzsNCj4gIAlzdHJ1Y3QgdmlydGlvX25ldF9jb25maWcgKmRldl9jZmc7DQo+IC0Jdm9p ZAkgICAgKnZpcnRpb191c2VyX2RldjsNCj4gIAkvKg0KPiAgCSAqIEFwcCBtYW5hZ2VtZW50IHRo cmVhZCBhbmQgdmlydGlvIGludGVycnVwdCBoYW5kbGVyIHRocmVhZA0KPiAgCSAqIGJvdGggY2Fu IGNoYW5nZSBkZXZpY2Ugc3RhdGUsIHRoaXMgbG9jayBpcyBtZWFudCB0byBhdm9pZA0KPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3ZpcnRpb191c2VyX2Rldi5o DQo+IGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3ZpcnRpb191c2VyX2Rldi5oDQo+ IGluZGV4IGUwNTM4OTdkOGYuLjU5ZjRkZDFmMjQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0 L3ZpcnRpby92aXJ0aW9fdXNlci92aXJ0aW9fdXNlcl9kZXYuaA0KPiArKysgYi9kcml2ZXJzL25l dC92aXJ0aW8vdmlydGlvX3VzZXIvdmlydGlvX3VzZXJfZGV2LmgNCj4gQEAgLTI0LDYgKzI0LDcg QEAgc3RydWN0IHZpcnRpb191c2VyX3F1ZXVlIHsNCj4gIH07DQo+IA0KPiAgc3RydWN0IHZpcnRp b191c2VyX2RldiB7DQo+ICsJc3RydWN0IHZpcnRpb19odyBodzsNCj4gIAllbnVtIHZpcnRpb191 c2VyX2JhY2tlbmRfdHlwZSBiYWNrZW5kX3R5cGU7DQo+ICAJLyogZm9yIHZob3N0X3VzZXIgYmFj a2VuZCAqLw0KPiAgCWludAkJdmhvc3RmZDsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3Zp cnRpby92aXJ0aW9fdXNlcl9ldGhkZXYuYw0KPiBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9f dXNlcl9ldGhkZXYuYw0KPiBpbmRleCA1MTZkMGVlNTc3Li4xZjFmNjNhMWE1IDEwMDY0NA0KPiAt LS0gYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXJfZXRoZGV2LmMNCj4gKysrIGIvZHJp dmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyX2V0aGRldi5jDQo+IEBAIC0yNiwxMyArMjYsMTMg QEANCj4gICNpbmNsdWRlICJ2aXJ0aW9fdXNlci92aXJ0aW9fdXNlcl9kZXYuaCINCj4gICNpbmNs dWRlICJ2aXJ0aW9fdXNlci92aG9zdC5oIg0KPiANCj4gLSNkZWZpbmUgdmlydGlvX3VzZXJfZ2V0 X2RldihodykgXA0KPiAtCSgoc3RydWN0IHZpcnRpb191c2VyX2RldiAqKShodyktPnZpcnRpb191 c2VyX2RldikNCj4gKyNkZWZpbmUgdmlydGlvX3VzZXJfZ2V0X2RldihodykgY29udGFpbmVyX29m KGh3LCBzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2LCBodykNCj4gDQo+ICBzdGF0aWMgdm9pZA0KPiAt dmlydGlvX3VzZXJfcmVzZXRfcXVldWVzX3BhY2tlZChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikN Cj4gK3ZpcnRpb191c2VyX3Jlc2V0X3F1ZXVlc19wYWNrZWQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpl dGhfZGV2KQ0KPiAgew0KPiAtCXN0cnVjdCB2aXJ0aW9faHcgKmh3ID0gZGV2LT5kYXRhLT5kZXZf cHJpdmF0ZTsNCj4gKwlzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYgPSBldGhfZGV2LT5kYXRh LT5kZXZfcHJpdmF0ZTsNCj4gKwlzdHJ1Y3QgdmlydGlvX2h3ICpodyA9ICZkZXYtPmh3Ow0KPiAg CXN0cnVjdCB2aXJ0bmV0X3J4ICpyeHZxOw0KPiAgCXN0cnVjdCB2aXJ0bmV0X3R4ICp0eHZxOw0K PiAgCXVpbnQxNl90IGk7DQo+IEBAIC00OCwxNCArNDgsMTQgQEAgdmlydGlvX3VzZXJfcmVzZXRf cXVldWVzX3BhY2tlZChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gIAlydGVfZGVsYXlfbXMo MSk7DQo+IA0KPiAgCS8qIFZyaW5nIHJlc2V0IGZvciBlYWNoIFR4IHF1ZXVlIGFuZCBSeCBxdWV1 ZS4gKi8NCj4gLQlmb3IgKGkgPSAwOyBpIDwgZGV2LT5kYXRhLT5uYl9yeF9xdWV1ZXM7IGkrKykg ew0KPiAtCQlyeHZxID0gZGV2LT5kYXRhLT5yeF9xdWV1ZXNbaV07DQo+ICsJZm9yIChpID0gMDsg aSA8IGV0aF9kZXYtPmRhdGEtPm5iX3J4X3F1ZXVlczsgaSsrKSB7DQo+ICsJCXJ4dnEgPSBldGhf ZGV2LT5kYXRhLT5yeF9xdWV1ZXNbaV07DQo+ICAJCXZpcnRxdWV1ZV9yeHZxX3Jlc2V0X3BhY2tl ZChyeHZxLT52cSk7DQo+IC0JCXZpcnRpb19kZXZfcnhfcXVldWVfc2V0dXBfZmluaXNoKGRldiwg aSk7DQo+ICsJCXZpcnRpb19kZXZfcnhfcXVldWVfc2V0dXBfZmluaXNoKGV0aF9kZXYsIGkpOw0K PiAgCX0NCj4gDQo+IC0JZm9yIChpID0gMDsgaSA8IGRldi0+ZGF0YS0+bmJfdHhfcXVldWVzOyBp KyspIHsNCj4gLQkJdHh2cSA9IGRldi0+ZGF0YS0+dHhfcXVldWVzW2ldOw0KPiArCWZvciAoaSA9 IDA7IGkgPCBldGhfZGV2LT5kYXRhLT5uYl90eF9xdWV1ZXM7IGkrKykgew0KPiArCQl0eHZxID0g ZXRoX2Rldi0+ZGF0YS0+dHhfcXVldWVzW2ldOw0KPiAgCQl2aXJ0cXVldWVfdHh2cV9yZXNldF9w YWNrZWQodHh2cS0+dnEpOw0KPiAgCX0NCj4gDQo+IEBAIC02OSw3ICs2OSw3IEBAIHZpcnRpb191 c2VyX3NlcnZlcl9yZWNvbm5lY3Qoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2KQ0KPiAgew0K PiAgCWludCByZXQsIGNvbm5lY3RmZCwgb2xkX3N0YXR1czsNCj4gIAlzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmV0aF9kZXYgPSAmcnRlX2V0aF9kZXZpY2VzW2Rldi0+cG9ydF9pZF07DQo+IC0Jc3RydWN0 IHZpcnRpb19odyAqaHcgPSBldGhfZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gKwlzdHJ1Y3Qg dmlydGlvX2h3ICpodyA9ICZkZXYtPmh3Ow0KPiAgCXVpbnQ2NF90IHByb3RvY29sX2ZlYXR1cmVz Ow0KPiANCj4gIAljb25uZWN0ZmQgPSBhY2NlcHQoZGV2LT5saXN0ZW5mZCwgTlVMTCwgTlVMTCk7 DQo+IEBAIC02MDUsMjEgKzYwNSwxNSBAQCB2aXJ0aW9fdXNlcl9ldGhfZGV2X2FsbG9jKHN0cnVj dCBydGVfdmRldl9kZXZpY2UgKnZkZXYpDQo+ICAJc3RydWN0IHZpcnRpb19odyAqaHc7DQo+ICAJ c3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2Ow0KPiANCj4gLQlldGhfZGV2ID0gcnRlX2V0aF92 ZGV2X2FsbG9jYXRlKHZkZXYsIHNpemVvZigqaHcpKTsNCj4gKwlldGhfZGV2ID0gcnRlX2V0aF92 ZGV2X2FsbG9jYXRlKHZkZXYsIHNpemVvZigqZGV2KSk7DQo+ICAJaWYgKCFldGhfZGV2KSB7DQo+ ICAJCVBNRF9JTklUX0xPRyhFUlIsICJjYW5ub3QgYWxsb2MgcnRlX2V0aF9kZXYiKTsNCj4gIAkJ cmV0dXJuIE5VTEw7DQo+ICAJfQ0KPiANCj4gIAlkYXRhID0gZXRoX2Rldi0+ZGF0YTsNCj4gLQlo dyA9IGV0aF9kZXYtPmRhdGEtPmRldl9wcml2YXRlOw0KPiAtDQo+IC0JZGV2ID0gcnRlX3ptYWxs b2MoTlVMTCwgc2l6ZW9mKCpkZXYpLCAwKTsNCj4gLQlpZiAoIWRldikgew0KPiAtCQlQTURfSU5J VF9MT0coRVJSLCAibWFsbG9jIHZpcnRpb191c2VyX2RldiBmYWlsZWQiKTsNCj4gLQkJcnRlX2V0 aF9kZXZfcmVsZWFzZV9wb3J0KGV0aF9kZXYpOw0KPiAtCQlyZXR1cm4gTlVMTDsNCj4gLQl9DQo+ ICsJZGV2ID0gZXRoX2Rldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ICsJaHcgPSAmZGV2LT5odzsN Cj4gDQo+ICAJaHctPnBvcnRfaWQgPSBkYXRhLT5wb3J0X2lkOw0KPiAgCWRldi0+cG9ydF9pZCA9 IGRhdGEtPnBvcnRfaWQ7DQo+IEBAIC02MzQsMTcgKzYyOCwxMyBAQCB2aXJ0aW9fdXNlcl9ldGhf ZGV2X2FsbG9jKHN0cnVjdCBydGVfdmRldl9kZXZpY2UgKnZkZXYpDQo+ICAJaHctPnVzZV92ZWNf dHggPSAwOw0KPiAgCWh3LT51c2VfaW5vcmRlcl9yeCA9IDA7DQo+ICAJaHctPnVzZV9pbm9yZGVy X3R4ID0gMDsNCj4gLQlody0+dmlydGlvX3VzZXJfZGV2ID0gZGV2Ow0KPiArDQo+ICAJcmV0dXJu IGV0aF9kZXY7DQo+ICB9DQo+IA0KPiAgc3RhdGljIHZvaWQNCj4gIHZpcnRpb191c2VyX2V0aF9k ZXZfZnJlZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYpDQo+ICB7DQo+IC0Jc3RydWN0IHJ0 ZV9ldGhfZGV2X2RhdGEgKmRhdGEgPSBldGhfZGV2LT5kYXRhOw0KPiAtCXN0cnVjdCB2aXJ0aW9f aHcgKmh3ID0gZGF0YS0+ZGV2X3ByaXZhdGU7DQo+IC0NCj4gLQlydGVfZnJlZShody0+dmlydGlv X3VzZXJfZGV2KTsNCj4gIAlydGVfZXRoX2Rldl9yZWxlYXNlX3BvcnQoZXRoX2Rldik7DQo+ICB9 DQo+IA0KPiBAQCAtNjUzLDExICs2NDMsMTIgQEAgdmlydGlvX3VzZXJfZXRoX2Rldl9mcmVlKHN0 cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldikNCj4gICAqIFJldHVybnMgMCBvbiBzdWNjZXNzLg0K PiAgICovDQo+ICBzdGF0aWMgaW50DQo+IC12aXJ0aW9fdXNlcl9wbWRfcHJvYmUoc3RydWN0IHJ0 ZV92ZGV2X2RldmljZSAqZGV2KQ0KPiArdmlydGlvX3VzZXJfcG1kX3Byb2JlKHN0cnVjdCBydGVf dmRldl9kZXZpY2UgKnZkZXYpDQo+ICB7DQo+ICAJc3RydWN0IHJ0ZV9rdmFyZ3MgKmt2bGlzdCA9 IE5VTEw7DQo+ICAJc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2Ow0KPiAgCXN0cnVjdCB2aXJ0 aW9faHcgKmh3Ow0KPiArCXN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldjsNCj4gIAllbnVtIHZp cnRpb191c2VyX2JhY2tlbmRfdHlwZSBiYWNrZW5kX3R5cGUgPSBWSVJUSU9fVVNFUl9CQUNLRU5E X1VOS05PV047DQo+ICAJdWludDY0X3QgcXVldWVzID0gVklSVElPX1VTRVJfREVGX1FfTlVNOw0K PiAgCXVpbnQ2NF90IGNxID0gVklSVElPX1VTRVJfREVGX0NRX0VOOw0KPiBAQCAtNjczLDcgKzY2 NCw3IEBAIHZpcnRpb191c2VyX3BtZF9wcm9iZShzdHJ1Y3QgcnRlX3ZkZXZfZGV2aWNlICpkZXYp DQo+ICAJaW50IHJldCA9IC0xOw0KPiANCj4gIAlpZiAocnRlX2VhbF9wcm9jZXNzX3R5cGUoKSA9 PSBSVEVfUFJPQ19TRUNPTkRBUlkpIHsNCj4gLQkJY29uc3QgY2hhciAqbmFtZSA9IHJ0ZV92ZGV2 X2RldmljZV9uYW1lKGRldik7DQo+ICsJCWNvbnN0IGNoYXIgKm5hbWUgPSBydGVfdmRldl9kZXZp Y2VfbmFtZSh2ZGV2KTsNCj4gIAkJZXRoX2RldiA9IHJ0ZV9ldGhfZGV2X2F0dGFjaF9zZWNvbmRh cnkobmFtZSk7DQo+ICAJCWlmICghZXRoX2Rldikgew0KPiAgCQkJUE1EX0lOSVRfTE9HKEVSUiwg IkZhaWxlZCB0byBwcm9iZSAlcyIsIG5hbWUpOw0KPiBAQCAtNjg3LDEyICs2NzgsMTIgQEAgdmly dGlvX3VzZXJfcG1kX3Byb2JlKHN0cnVjdCBydGVfdmRldl9kZXZpY2UgKmRldikNCj4gIAkJfQ0K PiANCj4gIAkJZXRoX2Rldi0+ZGV2X29wcyA9ICZ2aXJ0aW9fdXNlcl9zZWNvbmRhcnlfZXRoX2Rl dl9vcHM7DQo+IC0JCWV0aF9kZXYtPmRldmljZSA9ICZkZXYtPmRldmljZTsNCj4gKwkJZXRoX2Rl di0+ZGV2aWNlID0gJnZkZXYtPmRldmljZTsNCj4gIAkJcnRlX2V0aF9kZXZfcHJvYmluZ19maW5p c2goZXRoX2Rldik7DQo+ICAJCXJldHVybiAwOw0KPiAgCX0NCj4gDQo+IC0Ja3ZsaXN0ID0gcnRl X2t2YXJnc19wYXJzZShydGVfdmRldl9kZXZpY2VfYXJncyhkZXYpLCB2YWxpZF9hcmdzKTsNCj4g Kwlrdmxpc3QgPSBydGVfa3ZhcmdzX3BhcnNlKHJ0ZV92ZGV2X2RldmljZV9hcmdzKHZkZXYpLCB2 YWxpZF9hcmdzKTsNCj4gIAlpZiAoIWt2bGlzdCkgew0KPiAgCQlQTURfSU5JVF9MT0coRVJSLCAi ZXJyb3Igd2hlbiBwYXJzaW5nIHBhcmFtIik7DQo+ICAJCWdvdG8gZW5kOw0KPiBAQCAtODMyLDE0 ICs4MjMsMTUgQEAgdmlydGlvX3VzZXJfcG1kX3Byb2JlKHN0cnVjdCBydGVfdmRldl9kZXZpY2Ug KmRldikNCj4gIAkJfQ0KPiAgCX0NCj4gDQo+IC0JZXRoX2RldiA9IHZpcnRpb191c2VyX2V0aF9k ZXZfYWxsb2MoZGV2KTsNCj4gKwlldGhfZGV2ID0gdmlydGlvX3VzZXJfZXRoX2Rldl9hbGxvYyh2 ZGV2KTsNCj4gIAlpZiAoIWV0aF9kZXYpIHsNCj4gIAkJUE1EX0lOSVRfTE9HKEVSUiwgInZpcnRp b191c2VyIGZhaWxzIHRvIGFsbG9jIGRldmljZSIpOw0KPiAgCQlnb3RvIGVuZDsNCj4gIAl9DQo+ IA0KPiAtCWh3ID0gZXRoX2Rldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+IC0JaWYgKHZpcnRpb191 c2VyX2Rldl9pbml0KGh3LT52aXJ0aW9fdXNlcl9kZXYsIHBhdGgsIHF1ZXVlcywgY3EsDQo+ICsJ ZGV2ID0gZXRoX2Rldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ICsJaHcgPSAmZGV2LT5odzsNCj4g KwlpZiAodmlydGlvX3VzZXJfZGV2X2luaXQoZGV2LCBwYXRoLCBxdWV1ZXMsIGNxLA0KPiAgCQkJ IHF1ZXVlX3NpemUsIG1hY19hZGRyLCAmaWZuYW1lLCBzZXJ2ZXJfbW9kZSwNCj4gIAkJCSBtcmdf cnhidWYsIGluX29yZGVyLCBwYWNrZWRfdnEsIGJhY2tlbmRfdHlwZSkgPCAwKSB7DQo+ICAJCVBN RF9JTklUX0xPRyhFUlIsICJ2aXJ0aW9fdXNlcl9kZXZfaW5pdCBmYWlscyIpOw0KPiBAQCAtOTEy LDcgKzkwNCw2IEBAIHN0YXRpYyBpbnQgdmlydGlvX3VzZXJfcG1kX2RtYV9tYXAoc3RydWN0IHJ0 ZV92ZGV2X2RldmljZQ0KPiAqdmRldiwgdm9pZCAqYWRkciwNCj4gIAljb25zdCBjaGFyICpuYW1l Ow0KPiAgCXN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldjsNCj4gIAlzdHJ1Y3QgdmlydGlvX3Vz ZXJfZGV2ICpkZXY7DQo+IC0Jc3RydWN0IHZpcnRpb19odyAqaHc7DQo+IA0KPiAgCWlmICghdmRl dikNCj4gIAkJcmV0dXJuIC1FSU5WQUw7DQo+IEBAIC05MjMsOCArOTE0LDcgQEAgc3RhdGljIGlu dCB2aXJ0aW9fdXNlcl9wbWRfZG1hX21hcChzdHJ1Y3QgcnRlX3ZkZXZfZGV2aWNlDQo+ICp2ZGV2 LCB2b2lkICphZGRyLA0KPiAgCWlmICghZXRoX2RldikNCj4gIAkJcmV0dXJuIDA7DQo+IA0KPiAt CWh3ID0gKHN0cnVjdCB2aXJ0aW9faHcgKilldGhfZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4g LQlkZXYgPSBody0+dmlydGlvX3VzZXJfZGV2Ow0KPiArCWRldiA9IGV0aF9kZXYtPmRhdGEtPmRl dl9wcml2YXRlOw0KPiANCj4gIAlpZiAoZGV2LT5vcHMtPmRtYV9tYXApDQo+ICAJCXJldHVybiBk ZXYtPm9wcy0+ZG1hX21hcChkZXYsIGFkZHIsIGlvdmEsIGxlbik7DQo+IEBAIC05MzgsNyArOTI4 LDYgQEAgc3RhdGljIGludCB2aXJ0aW9fdXNlcl9wbWRfZG1hX3VubWFwKHN0cnVjdA0KPiBydGVf dmRldl9kZXZpY2UgKnZkZXYsIHZvaWQgKmFkZHIsDQo+ICAJY29uc3QgY2hhciAqbmFtZTsNCj4g IAlzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXY7DQo+ICAJc3RydWN0IHZpcnRpb191c2VyX2Rl diAqZGV2Ow0KPiAtCXN0cnVjdCB2aXJ0aW9faHcgKmh3Ow0KPiANCj4gIAlpZiAoIXZkZXYpDQo+ ICAJCXJldHVybiAtRUlOVkFMOw0KPiBAQCAtOTQ5LDggKzkzOCw3IEBAIHN0YXRpYyBpbnQgdmly dGlvX3VzZXJfcG1kX2RtYV91bm1hcChzdHJ1Y3QNCj4gcnRlX3ZkZXZfZGV2aWNlICp2ZGV2LCB2 b2lkICphZGRyLA0KPiAgCWlmICghZXRoX2RldikNCj4gIAkJcmV0dXJuIDA7DQo+IA0KPiAtCWh3 ID0gKHN0cnVjdCB2aXJ0aW9faHcgKilldGhfZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gLQlk ZXYgPSBody0+dmlydGlvX3VzZXJfZGV2Ow0KPiArCWRldiA9IGV0aF9kZXYtPmRhdGEtPmRldl9w cml2YXRlOw0KPiANCj4gIAlpZiAoZGV2LT5vcHMtPmRtYV91bm1hcCkNCj4gIAkJcmV0dXJuIGRl di0+b3BzLT5kbWFfdW5tYXAoZGV2LCBhZGRyLCBpb3ZhLCBsZW4pOw0KPiAtLQ0KPiAyLjI5LjIN Cg0KUmV2aWV3ZWQtYnk6IENoZW5ibyBYaWEgPGNoZW5iby54aWFAaW50ZWwuY29tPg0K