From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 65FECA052A; Tue, 26 Jan 2021 06:54:03 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D01CE140CFB; Tue, 26 Jan 2021 06:54:02 +0100 (CET) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id BCA35141222 for ; Tue, 26 Jan 2021 06:53:58 +0100 (CET) IronPort-SDR: C1LsK+P0fpomCXjFw2qvVaBEmoP/i/OmNnA/hxqhRtaWcU+eqSIlJ/JB7Jl5Nh1swR1uIDlWYl 0VJInt8E7rJA== X-IronPort-AV: E=McAfee;i="6000,8403,9875"; a="159628349" X-IronPort-AV: E=Sophos;i="5.79,375,1602572400"; d="scan'208";a="159628349" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jan 2021 21:53:57 -0800 IronPort-SDR: afp3kvpS0E1blf8vtJ0ho+T0Q3ng/9hdFaPqqZftmgoSCcAaVRg1TaMgHKZexm9UJRGtgb1LUF A8oSI9LnKZXQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,375,1602572400"; d="scan'208";a="361859915" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga008.fm.intel.com with ESMTP; 25 Jan 2021 21:53:57 -0800 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Mon, 25 Jan 2021 21:53:56 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) 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; Mon, 25 Jan 2021 21:53:56 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Mon, 25 Jan 2021 21:53:56 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.174) 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; Mon, 25 Jan 2021 21:53:56 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AvMZ3yf3z5tevHNEniWkj8sObeMMk88qfOb+t5TmK7CrdTjb1+SbYIPvMdGz07bO8j+CEZBmeMchGhnwzn5z4i6erQZDoFX211kChMJ2UUTibiCEDgbT8ulwoPG1qXXjycCLztPRk1c/xZay/kXq3Z9/2+Xgn0Gc3K/OQkj9W3RBd/hgLjp5o8KGbQia4mn+seLnKh85A02kl23j6fjKEQvtw7/TOGc3lsSlaYaRI1jDzvq2JV1kVmNrPyYD264dTgvnXDNWBDVTCpV0VaN1UJ7eOcETLTJMI+dR5jrPwOMZua3fCM7pnPvHstSJJaV6G98C0ZahadG6/WkLbcTrYw== 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=rMtNy57rtZl3qHKtKN8Lhg405SDMf7Ygpa6l4JrGIJk=; b=c0FqixRfnlwZ+/SorfcAX22JS5QhuuYFAndgbpaRlF/LHuETwF7uBpGr00X6UFPfYFXiVDLdVGKqF4EjgDaOfMKkfVTvK3I6XJQAWD08Zkl/HGZBtYywFF6OwkTREWzscm6EYeuiBcrXMl6MxXkdCvjo6/OTJClu80D+4yxXv+xveN9UoB0WcNeua8cDSCva3VjIjguk5bXQkQrzNAnJFHsiDyPY4NjF1LzzZ3Nmlkn6vxcZ9GDhBX2MmoG/z9OjXteGmDN9NUFn3iisffXboA57Lsq/R93O5TiHlG5bHXWzjr/JuhNb40qNYKdOJUCHBs0gJfWoCMZq2GwZVMSZeg== 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=rMtNy57rtZl3qHKtKN8Lhg405SDMf7Ygpa6l4JrGIJk=; b=HxbaTR9imQEILz9Y50eoVIRiafVAUG3kYYMVxFKRwNgHfMDPgVjmBL3fEoTysN1kqVVUpNEwfY4k2riH6L6zLjM00RTWW1oVhejvtd75J2k0eYhtjdyWOV2LHa6xx8Jiujv+TZ3NkQyX7Ohm3FZLn6uldSmdDwnvLTC8tlLtDtU= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3614.namprd11.prod.outlook.com (2603:10b6:208:ea::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.15; Tue, 26 Jan 2021 05:53:54 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::4c5:a27c:aab2:a2ed]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::4c5:a27c:aab2:a2ed%7]) with mapi id 15.20.3784.017; Tue, 26 Jan 2021 05:53:54 +0000 From: "Xia, Chenbo" To: Maxime Coquelin , "dev@dpdk.org" , "olivier.matz@6wind.com" , "amorenoz@redhat.com" , "david.marchand@redhat.com" Thread-Topic: [PATCH v3 09/44] net/virtio: move MSIX detection to PCI ethdev Thread-Index: AQHW8z3FLEI/d6qcmkew5YtruKbqG6o5aJTQ Date: Tue, 26 Jan 2021 05:53:54 +0000 Message-ID: References: <20210125171444.167241-1-maxime.coquelin@redhat.com> <20210125171444.167241-10-maxime.coquelin@redhat.com> In-Reply-To: <20210125171444.167241-10-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.55.46.39] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 2d1f78f5-047b-479a-86af-08d8c1bec3f2 x-ms-traffictypediagnostic: MN2PR11MB3614: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6790; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Vnhno2uxRNvo+Fwgweuue7UMaIOXJj54ZFbuqo4hkFPsf+ZSvARtBePb/DdKH2xErHpy9Td47mVEoP8fXM27UaS64/5kxsJyfbuKhSvFtEXL3zwtPt6MKS0oCPsGCQ5f2AMg7x+LwAMqvdjbFz0Uj5YevqiP4Z7mPLOguKfWX2vNAqbgTRL2agWhfSdP4QtK6UM7btYD5mVCBrc4Qu2ijG4JLJg0fWrcL5z9hjy8zc3WBPdexWV0pDVxlc9/MBvDODzyaNGAD7d4ER9G5gOEXqBdguQwi2N5bLbh5woPd2vw/CFctv5UnGfqhFSYAfzGdecvA7HQz15CI7BNcRSFJOOKRa5PH3bge7oR1QuEzGDFYNGOiiLTcH4EY81M6iUZnsIGlc4f8GFMG9wHgwyiiOIn5SFe0YQuzQmeYwtAd+haP9TNhOnuxQcaY7ubh71nEZ/JrM4WSjJ/EbZAhO86LD0vvuf9AQl0iB7nNniAea3DKPiX6Gmlb3TNwOZCEsOeGOWESzvmPF7/GUPVkivV90kbBLjr+FyC2P5SXd40ZhdDRJBAEWhDGqopE5m+yJXFJcgQwZDvjijINZwBkOoVww== 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)(136003)(39860400002)(366004)(376002)(346002)(396003)(52536014)(110136005)(966005)(478600001)(55016002)(5660300002)(33656002)(9686003)(2906002)(8676002)(64756008)(86362001)(66556008)(66446008)(83380400001)(26005)(7696005)(66476007)(53546011)(8936002)(186003)(316002)(6506007)(71200400001)(66946007)(76116006); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?N2dHcGw0TGE2UDZncE55RCtuWkRRNnhHQjNkb3l1VFc2NHJpWkw1KzNRVnVF?= =?utf-8?B?NWtBQ1RMcGxkZ3pXVnArWVZjWlh1TjRXb3pYQ3JQVWV4d3JpY2FyZXRSYk1R?= =?utf-8?B?bFhuYUxkbzJKMTVWRERzVm1DaXMxU05PdW0zMUl6R1RpVlo0YkhyUUJ6YTBy?= =?utf-8?B?dGRWQ2I2b3dWWEtqSE8zck0rVjUwWk5YQXJlYXQySUE5dWZKY0xiSURuSFlt?= =?utf-8?B?YThUcmVGajRkUTVCbkkwdy9YbzVrbDV6cXRJaGlnelQvT2h6cHNuTW5Ickty?= =?utf-8?B?TkhUUzJRUTA1S0YydCswK29LNnpHSHpMTnZlMGwvQVhjbzNBeWltaUI1QzZK?= =?utf-8?B?djg0eHkvVDNwL212SmhGRGFaWW9kSmhPOWg2SWk1RHVncXdnbC83SFpuZFRp?= =?utf-8?B?alhGLzIwVVYxRDI1NjcxbjhyYjM0Nmd0ZWp4cW1NZFZEL0xIcHdBdlNXZmZV?= =?utf-8?B?QVpiM1dPTm0xVlN5dTU1OG95VVdjNkh4a0dOQzlTZXdRZUQ1ajI1RGdVNmdv?= =?utf-8?B?Nk1yb0lmL2lML3A4WW4zVjEveDlCbnhrWHJJRHF3d21aNXMzdjdiL2RBZ2Iw?= =?utf-8?B?em5ydVNyMWVKVXcyN3FWSnNtTldudVUrcTBrdERDL0VjdDZnNDNlcVhxTG1K?= =?utf-8?B?cDJ1eUVFZDdRQS9oQ0xqcFl4OVpETU9XQWY5eFhNeUZEUzd3ZkFHM2ZlMzVU?= =?utf-8?B?cE92dVNxNWpXZGsxTXIxSlB0RWc5NmZhbHAwbUpiZmtPeGNhcWpHMEpETVRM?= =?utf-8?B?MmhzeUxmbXFidEdac2JQcG5OZzRycVdseitzemdPSkF2cHgzWlhwWEJ1Y3VM?= =?utf-8?B?eGlVaDRJa3ZBVHFFdlhkNXE2QzM5MVdHaVNsdG5xdER2eUFXZzVzblFiekFs?= =?utf-8?B?WU9UN3g5Y3JkU2V1UitNWW9JZTNoSStDeW00bzZQc3poYVh2dThDVjVUMDlB?= =?utf-8?B?NnlvRlNxOFExVEg0MjRONTRuMllWZkVJdFdjQnphNkR1ZWl4aXZTRThydnNE?= =?utf-8?B?NHVWcVdhY3VSeTlZRGloWWs1b00wWkhVanhBOE1ZUVA4ZWZudGRpcnNCbzAy?= =?utf-8?B?RnVaMUUxN0NJWk5sTnVzOFpZeGtMcUFXa3IzdGFWUGpVTWVHWDZ6S1hhbE9N?= =?utf-8?B?eUxLelBqSWVjT1BWV3NhbEpsN05sd0s5eHpMN3h2ZDJRcjE1b2djWmNVOHp6?= =?utf-8?B?M21HQytlU0lvVXBPaHhmcnVSek9ldUY4dmdjNUlVNUVXeWFrV25RMUQ5MVlU?= =?utf-8?B?Q2dxOCtkS3FRWnNxVW1BYkdGVGpWUDFlZkd6cnZUUHJPRFNTM3QvcHM5Wkdx?= =?utf-8?B?TllSNFVlbS9PSzA0Mm1ta1VwTjdmVXZQOUdOdVVENjN3bVE5dE01UlZ1VjVm?= =?utf-8?B?QnhEOXJxUGh0cTJWS3pLTDFBSHlBMm1rMWJHNVFGV2xLRjJxL1BhSU45Q09O?= =?utf-8?Q?RcC2UqI5?= 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: 2d1f78f5-047b-479a-86af-08d8c1bec3f2 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Jan 2021 05:53:54.7144 (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: ZbzIFamRK7tfRhS2SFlypCCgmKcsUvt7qW5knfTULJBbdVn4qBPFXXknBsDPgKKXLx/+AAmJNpC5WcWnwP9GbA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3614 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v3 09/44] net/virtio: move MSIX detection to PCI ethdev X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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 eGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBKYW51YXJ5IDI2LCAy MDIxIDE6MTQgQU0NCj4gVG86IGRldkBkcGRrLm9yZzsgWGlhLCBDaGVuYm8gPGNoZW5iby54aWFA aW50ZWwuY29tPjsgb2xpdmllci5tYXR6QDZ3aW5kLmNvbTsNCj4gYW1vcmVub3pAcmVkaGF0LmNv bTsgZGF2aWQubWFyY2hhbmRAcmVkaGF0LmNvbQ0KPiBDYzogTWF4aW1lIENvcXVlbGluIDxtYXhp bWUuY29xdWVsaW5AcmVkaGF0LmNvbT4NCj4gU3ViamVjdDogW1BBVENIIHYzIDA5LzQ0XSBuZXQv dmlydGlvOiBtb3ZlIE1TSVggZGV0ZWN0aW9uIHRvIFBDSSBldGhkZXYNCj4gDQo+IFRoaXMgcGF0 Y2ggaW50cm9kdWNlcyBhIG5ldyBjYWxsYmFjayB0byBub3RpZnkgdGhlIGJ1cw0KPiBkcml2ZXIg c29tZSBpbnRlcnJ1cHQgcmVsYXRlZCBvcGVyYXRpb24gd2FzIGRvbmUuDQo+IA0KPiBUaGlzIGlz IHVzZWQgYnkgVmlydGlvIFBDSSBkcml2ZXIgdG8gY2hlY2sgbXNpeCBzdGF0dXMuDQo+IA0KPiBT aWduZWQtb2ZmLWJ5OiBNYXhpbWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29t Pg0KPiAtLS0NCj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fZXRoZGV2LmMgICAgIHwgIDEy ICstLQ0KPiAgZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19wY2kuYyAgICAgICAgfCAxMjAgKysr KysrKysrKysrKystLS0tLS0tLS0tLQ0KPiAgZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19wY2ku aCAgICAgICAgfCAgIDYgKy0NCj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fcGNpX2V0aGRl di5jIHwgICAyICsNCj4gIDQgZmlsZXMgY2hhbmdlZCwgODIgaW5zZXJ0aW9ucygrKSwgNTggZGVs ZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb19l dGhkZXYuYw0KPiBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fZXRoZGV2LmMNCj4gaW5kZXgg YTNlODFmMzM2ZC4uNTJlYjg3OGM0MiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvdmlydGlv L3ZpcnRpb19ldGhkZXYuYw0KPiArKysgYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX2V0aGRl di5jDQo+IEBAIC0xMjg3LDggKzEyODcsOCBAQCB2aXJ0aW9faW50cl91bm1hc2soc3RydWN0IHJ0 ZV9ldGhfZGV2ICpkZXYpDQo+ICAJaWYgKHJ0ZV9pbnRyX2FjayhkZXYtPmludHJfaGFuZGxlKSA8 IDApDQo+ICAJCXJldHVybiAtMTsNCj4gDQo+IC0JaWYgKGh3LT5idXNfdHlwZSA9PSBWSVJUSU9f QlVTX1BDSV9MRUdBQ1kgfHwgaHctPmJ1c190eXBlID09DQo+IFZJUlRJT19CVVNfUENJX01PREVS TikNCj4gLQkJaHctPnVzZV9tc2l4ID0gdnRwY2lfbXNpeF9kZXRlY3QoUlRFX0VUSF9ERVZfVE9f UENJKGRldikpOw0KPiArCWlmIChWVFBDSV9PUFMoaHcpLT5pbnRyX2RldGVjdCkNCj4gKwkJVlRQ Q0lfT1BTKGh3KS0+aW50cl9kZXRlY3QoaHcpOw0KPiANCj4gIAlyZXR1cm4gMDsNCj4gIH0NCj4g QEAgLTEzMDEsOCArMTMwMSw4IEBAIHZpcnRpb19pbnRyX2VuYWJsZShzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmRldikNCj4gIAlpZiAocnRlX2ludHJfZW5hYmxlKGRldi0+aW50cl9oYW5kbGUpIDwgMCkN Cj4gIAkJcmV0dXJuIC0xOw0KPiANCj4gLQlpZiAoaHctPmJ1c190eXBlID09IFZJUlRJT19CVVNf UENJX0xFR0FDWSB8fCBody0+YnVzX3R5cGUgPT0NCj4gVklSVElPX0JVU19QQ0lfTU9ERVJOKQ0K PiAtCQlody0+dXNlX21zaXggPSB2dHBjaV9tc2l4X2RldGVjdChSVEVfRVRIX0RFVl9UT19QQ0ko ZGV2KSk7DQo+ICsJaWYgKFZUUENJX09QUyhodyktPmludHJfZGV0ZWN0KQ0KPiArCQlWVFBDSV9P UFMoaHcpLT5pbnRyX2RldGVjdChodyk7DQo+IA0KPiAgCXJldHVybiAwOw0KPiAgfQ0KPiBAQCAt MTMxNSw4ICsxMzE1LDggQEAgdmlydGlvX2ludHJfZGlzYWJsZShzdHJ1Y3QgcnRlX2V0aF9kZXYg KmRldikNCj4gIAlpZiAocnRlX2ludHJfZGlzYWJsZShkZXYtPmludHJfaGFuZGxlKSA8IDApDQo+ ICAJCXJldHVybiAtMTsNCj4gDQo+IC0JaWYgKGh3LT5idXNfdHlwZSA9PSBWSVJUSU9fQlVTX1BD SV9MRUdBQ1kgfHwgaHctPmJ1c190eXBlID09DQo+IFZJUlRJT19CVVNfUENJX01PREVSTikNCj4g LQkJaHctPnVzZV9tc2l4ID0gdnRwY2lfbXNpeF9kZXRlY3QoUlRFX0VUSF9ERVZfVE9fUENJKGRl dikpOw0KPiArCWlmIChWVFBDSV9PUFMoaHcpLT5pbnRyX2RldGVjdCkNCj4gKwkJVlRQQ0lfT1BT KGh3KS0+aW50cl9kZXRlY3QoaHcpOw0KPiANCj4gIAlyZXR1cm4gMDsNCj4gIH0NCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fcGNpLmMgYi9kcml2ZXJzL25ldC92aXJ0 aW8vdmlydGlvX3BjaS5jDQo+IGluZGV4IDM0NWQ3M2Y4NjguLjU1NmJlMWUzZGEgMTAwNjQ0DQo+ IC0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fcGNpLmMNCj4gKysrIGIvZHJpdmVycy9u ZXQvdmlydGlvL3ZpcnRpb19wY2kuYw0KPiBAQCAtNDcsNiArNDcsNTYgQEAgY2hlY2tfdnFfcGh5 c19hZGRyX29rKHN0cnVjdCB2aXJ0cXVldWUgKnZxKQ0KPiAgCXJldHVybiAxOw0KPiAgfQ0KPiAN Cj4gKyNkZWZpbmUgUENJX01TSVhfRU5BQkxFIDB4ODAwMA0KPiArDQo+ICtzdGF0aWMgZW51bSB2 aXJ0aW9fbXNpeF9zdGF0dXMNCj4gK3Z0cGNpX21zaXhfZGV0ZWN0KHN0cnVjdCBydGVfcGNpX2Rl dmljZSAqZGV2KQ0KPiArew0KPiArCXVpbnQ4X3QgcG9zOw0KPiArCWludCByZXQ7DQo+ICsNCj4g KwlyZXQgPSBydGVfcGNpX3JlYWRfY29uZmlnKGRldiwgJnBvcywgMSwgUENJX0NBUEFCSUxJVFlf TElTVCk7DQo+ICsJaWYgKHJldCAhPSAxKSB7DQo+ICsJCVBNRF9JTklUX0xPRyhERUJVRywNCj4g KwkJCSAgICAgImZhaWxlZCB0byByZWFkIHBjaSBjYXBhYmlsaXR5IGxpc3QsIHJldCAlZCIsIHJl dCk7DQo+ICsJCXJldHVybiBWSVJUSU9fTVNJWF9OT05FOw0KPiArCX0NCj4gKw0KPiArCXdoaWxl IChwb3MpIHsNCj4gKwkJdWludDhfdCBjYXBbMl07DQo+ICsNCj4gKwkJcmV0ID0gcnRlX3BjaV9y ZWFkX2NvbmZpZyhkZXYsIGNhcCwgc2l6ZW9mKGNhcCksIHBvcyk7DQo+ICsJCWlmIChyZXQgIT0g c2l6ZW9mKGNhcCkpIHsNCj4gKwkJCVBNRF9JTklUX0xPRyhERUJVRywNCj4gKwkJCQkgICAgICJm YWlsZWQgdG8gcmVhZCBwY2kgY2FwIGF0IHBvczogJXggcmV0ICVkIiwNCj4gKwkJCQkgICAgIHBv cywgcmV0KTsNCj4gKwkJCWJyZWFrOw0KPiArCQl9DQo+ICsNCj4gKwkJaWYgKGNhcFswXSA9PSBQ Q0lfQ0FQX0lEX01TSVgpIHsNCj4gKwkJCXVpbnQxNl90IGZsYWdzOw0KPiArDQo+ICsJCQlyZXQg PSBydGVfcGNpX3JlYWRfY29uZmlnKGRldiwgJmZsYWdzLCBzaXplb2YoZmxhZ3MpLA0KPiArCQkJ CQlwb3MgKyBzaXplb2YoY2FwKSk7DQo+ICsJCQlpZiAocmV0ICE9IHNpemVvZihmbGFncykpIHsN Cj4gKwkJCQlQTURfSU5JVF9MT0coREVCVUcsDQo+ICsJCQkJCSAgICAgImZhaWxlZCB0byByZWFk IHBjaSBjYXAgYXQgcG9zOiINCj4gKwkJCQkJICAgICAiICV4IHJldCAlZCIsIHBvcyArIDIsIHJl dCk7DQo+ICsJCQkJYnJlYWs7DQo+ICsJCQl9DQo+ICsNCj4gKwkJCWlmIChmbGFncyAmIFBDSV9N U0lYX0VOQUJMRSkNCj4gKwkJCQlyZXR1cm4gVklSVElPX01TSVhfRU5BQkxFRDsNCj4gKwkJCWVs c2UNCj4gKwkJCQlyZXR1cm4gVklSVElPX01TSVhfRElTQUJMRUQ7DQo+ICsJCX0NCj4gKw0KPiAr CQlwb3MgPSBjYXBbMV07DQo+ICsJfQ0KPiArDQo+ICsJcmV0dXJuIFZJUlRJT19NU0lYX05PTkU7 DQo+ICt9DQo+ICsNCj4gIC8qDQo+ICAgKiBTaW5jZSB3ZSBhcmUgaW4gbGVnYWN5IG1vZGU6DQo+ ICAgKiBodHRwOi8vb3psYWJzLm9yZy9+cnVzdHkvdmlydGlvLXNwZWMvdmlydGlvLTAuOS41LnBk Zg0KPiBAQCAtMjQxLDYgKzI5MSwxMiBAQCBsZWdhY3lfbm90aWZ5X3F1ZXVlKHN0cnVjdCB2aXJ0 aW9faHcgKmh3LCBzdHJ1Y3QNCj4gdmlydHF1ZXVlICp2cSkNCj4gIAkJVklSVElPX1BDSV9RVUVV RV9OT1RJRlkpOw0KPiAgfQ0KPiANCj4gK3N0YXRpYyB2b2lkDQo+ICtsZWdhY3lfaW50cl9kZXRl Y3Qoc3RydWN0IHZpcnRpb19odyAqaHcpDQo+ICt7DQo+ICsJaHctPnVzZV9tc2l4ID0gdnRwY2lf bXNpeF9kZXRlY3QoVlRQQ0lfREVWKGh3KSk7DQo+ICt9DQo+ICsNCj4gIGNvbnN0IHN0cnVjdCB2 aXJ0aW9fcGNpX29wcyBsZWdhY3lfb3BzID0gew0KPiAgCS5yZWFkX2Rldl9jZmcJPSBsZWdhY3lf cmVhZF9kZXZfY29uZmlnLA0KPiAgCS53cml0ZV9kZXZfY2ZnCT0gbGVnYWN5X3dyaXRlX2Rldl9j b25maWcsDQo+IEBAIC0yNTUsNiArMzExLDcgQEAgY29uc3Qgc3RydWN0IHZpcnRpb19wY2lfb3Bz IGxlZ2FjeV9vcHMgPSB7DQo+ICAJLnNldHVwX3F1ZXVlCT0gbGVnYWN5X3NldHVwX3F1ZXVlLA0K PiAgCS5kZWxfcXVldWUJPSBsZWdhY3lfZGVsX3F1ZXVlLA0KPiAgCS5ub3RpZnlfcXVldWUJPSBs ZWdhY3lfbm90aWZ5X3F1ZXVlLA0KPiArCS5pbnRyX2RldGVjdAk9IGxlZ2FjeV9pbnRyX2RldGVj dCwNCj4gIH07DQo+IA0KPiAgc3RhdGljIGlubGluZSB2b2lkDQo+IEBAIC00NDYsNiArNTAzLDE0 IEBAIG1vZGVybl9ub3RpZnlfcXVldWUoc3RydWN0IHZpcnRpb19odyAqaHcsIHN0cnVjdA0KPiB2 aXJ0cXVldWUgKnZxKQ0KPiAgCXJ0ZV93cml0ZTMyKG5vdGlmeV9kYXRhLCB2cS0+bm90aWZ5X2Fk ZHIpOw0KPiAgfQ0KPiANCj4gKw0KPiArDQo+ICtzdGF0aWMgdm9pZA0KPiArbW9kZXJuX2ludHJf ZGV0ZWN0KHN0cnVjdCB2aXJ0aW9faHcgKmh3KQ0KPiArew0KPiArCWh3LT51c2VfbXNpeCA9IHZ0 cGNpX21zaXhfZGV0ZWN0KFZUUENJX0RFVihodykpOw0KPiArfQ0KPiArDQo+ICBjb25zdCBzdHJ1 Y3QgdmlydGlvX3BjaV9vcHMgbW9kZXJuX29wcyA9IHsNCj4gIAkucmVhZF9kZXZfY2ZnCT0gbW9k ZXJuX3JlYWRfZGV2X2NvbmZpZywNCj4gIAkud3JpdGVfZGV2X2NmZwk9IG1vZGVybl93cml0ZV9k ZXZfY29uZmlnLA0KPiBAQCAtNDYwLDYgKzUyNSw3IEBAIGNvbnN0IHN0cnVjdCB2aXJ0aW9fcGNp X29wcyBtb2Rlcm5fb3BzID0gew0KPiAgCS5zZXR1cF9xdWV1ZQk9IG1vZGVybl9zZXR1cF9xdWV1 ZSwNCj4gIAkuZGVsX3F1ZXVlCT0gbW9kZXJuX2RlbF9xdWV1ZSwNCj4gIAkubm90aWZ5X3F1ZXVl CT0gbW9kZXJuX25vdGlmeV9xdWV1ZSwNCj4gKwkuaW50cl9kZXRlY3QJPSBtb2Rlcm5faW50cl9k ZXRlY3QsDQo+ICB9Ow0KPiANCj4gDQo+IEBAIC01NjIsOCArNjI4LDYgQEAgZ2V0X2NmZ19hZGRy KHN0cnVjdCBydGVfcGNpX2RldmljZSAqZGV2LCBzdHJ1Y3QNCj4gdmlydGlvX3BjaV9jYXAgKmNh cCkNCj4gIAlyZXR1cm4gYmFzZSArIG9mZnNldDsNCj4gIH0NCj4gDQo+IC0jZGVmaW5lIFBDSV9N U0lYX0VOQUJMRSAweDgwMDANCj4gLQ0KPiAgc3RhdGljIGludA0KPiAgdmlydGlvX3JlYWRfY2Fw cyhzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UgKmRldiwgc3RydWN0IHZpcnRpb19odyAqaHcpDQo+ICB7 DQo+IEBAIC03MDAsNyArNzY0LDcgQEAgdnRwY2lfaW5pdChzdHJ1Y3QgcnRlX3BjaV9kZXZpY2Ug KmRldiwgc3RydWN0IHZpcnRpb19odw0KPiAqaHcpDQo+ICAJCVBNRF9JTklUX0xPRyhJTkZPLCAi bW9kZXJuIHZpcnRpbyBwY2kgZGV0ZWN0ZWQuIik7DQo+ICAJCXZpcnRpb19od19pbnRlcm5hbFto dy0+cG9ydF9pZF0udnRwY2lfb3BzID0gJm1vZGVybl9vcHM7DQo+ICAJCWh3LT5idXNfdHlwZSA9 IFZJUlRJT19CVVNfUENJX01PREVSTjsNCj4gLQkJcmV0dXJuIDA7DQo+ICsJCWdvdG8gbXNpeF9k ZXRlY3Q7DQo+ICAJfQ0KPiANCj4gIAlQTURfSU5JVF9MT0coSU5GTywgInRyeWluZyB3aXRoIGxl Z2FjeSB2aXJ0aW8gcGNpLiIpOw0KPiBAQCAtNzIwLDUzICs3ODQsOSBAQCB2dHBjaV9pbml0KHN0 cnVjdCBydGVfcGNpX2RldmljZSAqZGV2LCBzdHJ1Y3QgdmlydGlvX2h3DQo+ICpodykNCj4gIAl2 aXJ0aW9faHdfaW50ZXJuYWxbaHctPnBvcnRfaWRdLnZ0cGNpX29wcyA9ICZsZWdhY3lfb3BzOw0K PiAgCWh3LT5idXNfdHlwZSA9IFZJUlRJT19CVVNfUENJX0xFR0FDWTsNCj4gDQo+ICttc2l4X2Rl dGVjdDoNCj4gKwlWVFBDSV9PUFMoaHcpLT5pbnRyX2RldGVjdChodyk7DQo+ICsNCj4gIAlyZXR1 cm4gMDsNCj4gIH0NCj4gDQo+IC1lbnVtIHZpcnRpb19tc2l4X3N0YXR1cw0KPiAtdnRwY2lfbXNp eF9kZXRlY3Qoc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpkZXYpDQo+IC17DQo+IC0JdWludDhfdCBw b3M7DQo+IC0JaW50IHJldDsNCj4gLQ0KPiAtCXJldCA9IHJ0ZV9wY2lfcmVhZF9jb25maWcoZGV2 LCAmcG9zLCAxLCBQQ0lfQ0FQQUJJTElUWV9MSVNUKTsNCj4gLQlpZiAocmV0ICE9IDEpIHsNCj4g LQkJUE1EX0lOSVRfTE9HKERFQlVHLA0KPiAtCQkJICAgICAiZmFpbGVkIHRvIHJlYWQgcGNpIGNh cGFiaWxpdHkgbGlzdCwgcmV0ICVkIiwgcmV0KTsNCj4gLQkJcmV0dXJuIFZJUlRJT19NU0lYX05P TkU7DQo+IC0JfQ0KPiAtDQo+IC0Jd2hpbGUgKHBvcykgew0KPiAtCQl1aW50OF90IGNhcFsyXTsN Cj4gLQ0KPiAtCQlyZXQgPSBydGVfcGNpX3JlYWRfY29uZmlnKGRldiwgY2FwLCBzaXplb2YoY2Fw KSwgcG9zKTsNCj4gLQkJaWYgKHJldCAhPSBzaXplb2YoY2FwKSkgew0KPiAtCQkJUE1EX0lOSVRf TE9HKERFQlVHLA0KPiAtCQkJCSAgICAgImZhaWxlZCB0byByZWFkIHBjaSBjYXAgYXQgcG9zOiAl eCByZXQgJWQiLA0KPiAtCQkJCSAgICAgcG9zLCByZXQpOw0KPiAtCQkJYnJlYWs7DQo+IC0JCX0N Cj4gLQ0KPiAtCQlpZiAoY2FwWzBdID09IFBDSV9DQVBfSURfTVNJWCkgew0KPiAtCQkJdWludDE2 X3QgZmxhZ3M7DQo+IC0NCj4gLQkJCXJldCA9IHJ0ZV9wY2lfcmVhZF9jb25maWcoZGV2LCAmZmxh Z3MsIHNpemVvZihmbGFncyksDQo+IC0JCQkJCXBvcyArIHNpemVvZihjYXApKTsNCj4gLQkJCWlm IChyZXQgIT0gc2l6ZW9mKGZsYWdzKSkgew0KPiAtCQkJCVBNRF9JTklUX0xPRyhERUJVRywNCj4g LQkJCQkJICAgICAiZmFpbGVkIHRvIHJlYWQgcGNpIGNhcCBhdCBwb3M6Ig0KPiAtCQkJCQkgICAg ICIgJXggcmV0ICVkIiwgcG9zICsgMiwgcmV0KTsNCj4gLQkJCQlicmVhazsNCj4gLQkJCX0NCj4g LQ0KPiAtCQkJaWYgKGZsYWdzICYgUENJX01TSVhfRU5BQkxFKQ0KPiAtCQkJCXJldHVybiBWSVJU SU9fTVNJWF9FTkFCTEVEOw0KPiAtCQkJZWxzZQ0KPiAtCQkJCXJldHVybiBWSVJUSU9fTVNJWF9E SVNBQkxFRDsNCj4gLQkJfQ0KPiAtDQo+IC0JCXBvcyA9IGNhcFsxXTsNCj4gLQl9DQo+IC0NCj4g LQlyZXR1cm4gVklSVElPX01TSVhfTk9ORTsNCj4gLX0NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L3ZpcnRpby92aXJ0aW9fcGNpLmggYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3BjaS5o DQo+IGluZGV4IDU5ZjY2ODgyMTguLmIyOWJiYjgwNzQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMv bmV0L3ZpcnRpby92aXJ0aW9fcGNpLmgNCj4gKysrIGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRp b19wY2kuaA0KPiBAQCAtMjM5LDYgKzIzOSw3IEBAIHN0cnVjdCB2aXJ0aW9fcGNpX29wcyB7DQo+ ICAJaW50ICgqc2V0dXBfcXVldWUpKHN0cnVjdCB2aXJ0aW9faHcgKmh3LCBzdHJ1Y3QgdmlydHF1 ZXVlICp2cSk7DQo+ICAJdm9pZCAoKmRlbF9xdWV1ZSkoc3RydWN0IHZpcnRpb19odyAqaHcsIHN0 cnVjdCB2aXJ0cXVldWUgKnZxKTsNCj4gIAl2b2lkICgqbm90aWZ5X3F1ZXVlKShzdHJ1Y3Qgdmly dGlvX2h3ICpodywgc3RydWN0IHZpcnRxdWV1ZSAqdnEpOw0KPiArCXZvaWQgKCppbnRyX2RldGVj dCkoc3RydWN0IHZpcnRpb19odyAqaHcpOw0KPiAgfTsNCj4gDQo+ICBzdHJ1Y3QgdmlydGlvX25l dF9jb25maWc7DQo+IEBAIC0zMDMsMTAgKzMwNCwxMyBAQCBzdHJ1Y3QgdmlydGlvX3BjaV9kZXYg ew0KPiAgc3RydWN0IHZpcnRpb19od19pbnRlcm5hbCB7DQo+ICAJY29uc3Qgc3RydWN0IHZpcnRp b19wY2lfb3BzICp2dHBjaV9vcHM7DQo+ICAJc3RydWN0IHJ0ZV9wY2lfaW9wb3J0IGlvOw0KPiAr CXN0cnVjdCBydGVfcGNpX2RldmljZSAqZGV2Ow0KPiAgfTsNCj4gDQo+ICAjZGVmaW5lIFZUUENJ X09QUyhodykJKHZpcnRpb19od19pbnRlcm5hbFsoaHcpLT5wb3J0X2lkXS52dHBjaV9vcHMpDQo+ ICAjZGVmaW5lIFZUUENJX0lPKGh3KQkoJnZpcnRpb19od19pbnRlcm5hbFsoaHcpLT5wb3J0X2lk XS5pbykNCj4gKyNkZWZpbmUgVlRQQ0lfREVWKGh3KQkodmlydGlvX2h3X2ludGVybmFsWyhodykt PnBvcnRfaWRdLmRldikNCj4gKw0KPiANCj4gIGV4dGVybiBzdHJ1Y3QgdmlydGlvX2h3X2ludGVy bmFsIHZpcnRpb19od19pbnRlcm5hbFtSVEVfTUFYX0VUSFBPUlRTXTsNCj4gDQo+IEBAIC0zODMs OCArMzg3LDYgQEAgdm9pZCB2dHBjaV9yZWFkX2Rldl9jb25maWcoc3RydWN0IHZpcnRpb19odyAq LCBzaXplX3QsDQo+IHZvaWQgKiwgaW50KTsNCj4gDQo+ICB1aW50OF90IHZ0cGNpX2lzcihzdHJ1 Y3QgdmlydGlvX2h3ICopOw0KPiANCj4gLWVudW0gdmlydGlvX21zaXhfc3RhdHVzIHZ0cGNpX21z aXhfZGV0ZWN0KHN0cnVjdCBydGVfcGNpX2RldmljZSAqZGV2KTsNCj4gLQ0KPiAgZXh0ZXJuIGNv bnN0IHN0cnVjdCB2aXJ0aW9fcGNpX29wcyBsZWdhY3lfb3BzOw0KPiAgZXh0ZXJuIGNvbnN0IHN0 cnVjdCB2aXJ0aW9fcGNpX29wcyBtb2Rlcm5fb3BzOw0KPiAgZXh0ZXJuIGNvbnN0IHN0cnVjdCB2 aXJ0aW9fcGNpX29wcyB2aXJ0aW9fdXNlcl9vcHM7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC92aXJ0aW8vdmlydGlvX3BjaV9ldGhkZXYuYw0KPiBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0 aW9fcGNpX2V0aGRldi5jDQo+IGluZGV4IDZhMGVmNmVkYzMuLjA0NWIxMzRlZjIgMTAwNjQ0DQo+ IC0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fcGNpX2V0aGRldi5jDQo+ICsrKyBiL2Ry aXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fcGNpX2V0aGRldi5jDQo+IEBAIC03Myw2ICs3Myw4IEBA IGV0aF92aXJ0aW9fcGNpX2luaXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2KQ0KPiAgCXN0 cnVjdCBydGVfcGNpX2RldmljZSAqcGNpX2RldiA9IFJURV9FVEhfREVWX1RPX1BDSShldGhfZGV2 KTsNCj4gIAlpbnQgcmV0Ow0KPiANCj4gKwlWVFBDSV9ERVYoaHcpID0gcGNpX2RldjsNCj4gKw0K PiAgCWlmIChydGVfZWFsX3Byb2Nlc3NfdHlwZSgpID09IFJURV9QUk9DX1BSSU1BUlkpIHsNCj4g IAkJcmV0ID0gdnRwY2lfaW5pdChSVEVfRVRIX0RFVl9UT19QQ0koZXRoX2RldiksIGh3KTsNCj4g IAkJaWYgKHJldCkgew0KPiAtLQ0KPiAyLjI5LjINCg0KUmV2aWV3ZWQtYnk6IENoZW5ibyBYaWEg PGNoZW5iby54aWFAaW50ZWwuY29tPg0K