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 13FB1A0C46; Tue, 31 Aug 2021 07:37:49 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 86A6B40141; Tue, 31 Aug 2021 07:37:48 +0200 (CEST) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 5AD7540042 for ; Tue, 31 Aug 2021 07:37:46 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10092"; a="218413976" X-IronPort-AV: E=Sophos;i="5.84,365,1620716400"; d="scan'208";a="218413976" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Aug 2021 22:37:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.84,365,1620716400"; d="scan'208";a="577013732" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga004.jf.intel.com with ESMTP; 30 Aug 2021 22:37:41 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) 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.2242.10; Mon, 30 Aug 2021 22:37:41 -0700 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by ORSMSX608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10; Mon, 30 Aug 2021 22:37:40 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.10 via Frontend Transport; Mon, 30 Aug 2021 22:37:40 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.177) 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.2242.10; Mon, 30 Aug 2021 22:37:40 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hVQXqRg+LA5sOtNx/FErDc7qZ86515tTjiMZ7TSgT8Cu5RGsvC8n5HVPoL0eUnDKe+Wc8DBloKZdoxNEyYsD1ltOtrqR6v4NdvlSB18AU2fJnBUf7k1lJU5mVJs73wpHJATN7o4I6xZ0d390WXAl4S6YK3ANl64mRXbNBTv2GXFDxRyaETvqm+XI8iZSzstvZfCGla9pYkxMDnK53zoqYqGr7VM4mPT6lbL3HeleKYAHjUJIgnsTT2UPMFuZmCxngrmZOlHpdGNoLuCCkB2zgkKfJ/opp9b+E/Bg/X3ByUm/lS0Wea/A361aoFd7FYwI9sqUJFQ48Nw/YsTMdVzX9Q== 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=94es+CbBNLjx35bBOW4vav2A+j/Zqs+CmDLk16/RsBc=; b=GP7v8hDHwchsHXTxo1vbRIJUhE1idoRfMipzrL+pr626Sr70mbO3kj30o8YzI1MgNXkDxVu/ROW12MfY7jh+T7BxY/2Vbp2EH2Ya75WaHhitAcWKgHtlGkklqdfIrgrwrBhbLIUq1HCJoRLOd2w4ZtPxhS1I1f7Sd+muqI6I8riNk7z0iGlkDtES3TwLrz8Wx2DOPcB7IJihcHU+zqdjrh0T9s8t3SBnviPU18f0mVWluAzG14EnagO3DEt4Z5RV+FsJk37/FUgnbD4FD2nsnNYRZzZmV83UxIqxRu2OkhjKwLaJFc/verRurhknR5T3hrGbDSqJAk/94qqd8vpkJw== 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=94es+CbBNLjx35bBOW4vav2A+j/Zqs+CmDLk16/RsBc=; b=FJ70aRG0hOXs0oZrCCvIlXP8oDmMkO75WqIgPhJpUJUtk1S8lqpaYmUKFoknq6YcT3vDG8LketO954gUt8IUU0cZd2QdQi65krnwM8rtQ8uz9B3SaPhp05Ur12k7gDB3At/OrChxBQm1YNxYgIDrPiEqlgXkLK26WHheTTRSy04= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3568.namprd11.prod.outlook.com (2603:10b6:208:ee::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4457.19; Tue, 31 Aug 2021 05:37:39 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::6873:dced:7f68:801]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::6873:dced:7f68:801%3]) with mapi id 15.20.4457.024; Tue, 31 Aug 2021 05:37:39 +0000 From: "Xia, Chenbo" To: Gaoxiang Liu , "maxime.coquelin@redhat.com" CC: "dev@dpdk.org" , "liugaoxiang@huawei.com" Thread-Topic: [PATCH v6] vhost: fix crash on port deletion Thread-Index: AQHXm06eukMSOYcvcEatnvCo1pxhx6uNHDJg Date: Tue, 31 Aug 2021 05:37:38 +0000 Message-ID: References: <20210820154615.551-1-gaoxiangliu0@163.com> <20210827141925.1500-1-gaoxiangliu0@163.com> In-Reply-To: <20210827141925.1500-1-gaoxiangliu0@163.com> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: 163.com; dkim=none (message not signed) header.d=none;163.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e4bb8caf-7b4c-4b37-6c5e-08d96c4171fa x-ms-traffictypediagnostic: MN2PR11MB3568: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2803; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: BSkmhZGie3U3uAKtVCZTND2mzQh9RMJcEvWCq0Pw7yDsQxFA/mU8LOYJ9c0H77YX/o17lj6MtzzRUcOTpfAgmiuwqjeOEjOxtsNE4izQuHo4ebaouuHuZAB2fr4SH31l50g7uRoiJlIbWryMS9tjoUYeDoHp0xGEnsqCMtF1db4/Ddh1ZQtCzaxy1z3zTAFtUrqiTA2lB4KY5i0Ze1WHxeUvLBbwEmLYUS/MQJqZt3e8gmZLFUsV3srDK/bASnAA0wSLrbjkE4SEDu+s5iI9ppKP3rrJiukMRnxqFNmOcaOZlcMdMMQGpiNmiVYTGbwHk6QO8vgmzKKbtLQZiKrT3uJ0ZIzcE73nF3o/U7QGNsd08GIpucDTfLmW7SgI9wBDwqU4SIrIEAK+WO9PIfWUZzIjDzYKFTLE5f85ih4h97HWZYTC4tK/1G5wLHE7gCKEqw005gDestMMfPUMbej+nl2AlRT84aaZx84G7MluXUvskLkmdMxmNcieLvfbcCTLek8IGY1G94b0+mgNK8BwkRJ/1yWGJMCgr+oLtqgznmTv4s8vPcUlgf4r5eAgQ5nCvEjutIUcNxkUwrm33necin8/LfjNtJA6k/Rt+VA3GX0mUwbm32vMYECaXz6zQEM7bLZ8tt3LbSyWSV6mb7Qdas+uWpGWYOsc2lpM5OGi5PF4EdJVk7iqdUZ67RVGDnVtbwfiODdgqX1k+MDGvOsYeg== 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)(376002)(346002)(366004)(396003)(39860400002)(52536014)(66556008)(4326008)(9686003)(5660300002)(38070700005)(110136005)(55016002)(66476007)(64756008)(66946007)(66446008)(478600001)(71200400001)(54906003)(76116006)(38100700002)(316002)(7696005)(53546011)(33656002)(83380400001)(6506007)(26005)(186003)(86362001)(8676002)(8936002)(2906002)(122000001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Zmt4dnFJdmNiVWFSN2taMEZ5Sk1JcmRJUUlZdEh6Q0hrNlBhYTIxYlp3ckR0?= =?utf-8?B?R2NLSkVXRVVaK3BrbVFOMHJDU3V3bml0M0JmcFUzWm5xVUwzRW9MOGRQYnA2?= =?utf-8?B?N0dlYk1CQXlDSEZPRFZ6YVJudmNrOXhEUVpUS2dUa0tFeUtrczdrVHlHT09J?= =?utf-8?B?cGtJK3JHazFMVkNtTVRPczNDT1pWeGVMWVZiOXVicXhmSWVtM2taOHNxUkNK?= =?utf-8?B?TWU2L2V5RHluOHRJNkphZWMrakFBOGdIbVBCNStvUFNnTDNPK2RISzlwcGZB?= =?utf-8?B?QkRwemxGVUYwL2dFSm1TZnF1OEh6S1ZrYm5aTTFmMUJ2K202eXJRMTBMSkRh?= =?utf-8?B?VS9RN3VjZno2dEh0Qk4zdEpkTzNsYmpSOUROaUt2MjhLVVcwTUJJbVBEa3Z6?= =?utf-8?B?dWs1QjlOUW5TNi9aWU51b25PSEYyYTR3aHFGZi9DU3BtRndNTlRwWDNiYXZj?= =?utf-8?B?Yjh6UjZhYUdadlB2d2JkRU5kZXQ2dm9vOWhhVHVLTGp3SGdsZTdGeGdUOVZj?= =?utf-8?B?RHBDKzdpZnI1cGZuT1pEbmx5MVdFbFRVcExpSHNCalgvL3NJcHVGb2J4Q1JE?= =?utf-8?B?TytmSmlpM2s5YTJyVHY0VzJGT3lBWGRIR0ZOY0ZWZHA5aG5VN0dYTEFWTGtP?= =?utf-8?B?a1Bod25MMXJlZWdESUJGMFk4d29hUnVhZCtpT0FsVnh4QjhRSDBndTdsKzRl?= =?utf-8?B?S1NBWnNjNEhqb2UzVndaSkp4TzhzaTlySDd3QXpsVFRxcmo0czhXWE1JbDBy?= =?utf-8?B?Y1FHTklOK3FBVEZoOVdNMmtzN0lTYTZHcUNkdnV1MVV0T1dMeXdZdlBqTi9i?= =?utf-8?B?aUx1MTUxb1daZ09rU2xkWGpJbTRxNmFoR0NScHl0VHpqbGtsSEowTDZGVFdS?= =?utf-8?B?MGJacVo3dU14M1pTamlubWl2dWcwMHZwNkNXVjJOMG53NW5IcWowYmxIU3NP?= =?utf-8?B?akUzU0gySG5HbVhlNllSWVRocmV0cmtvcnJFYjJFaDZQem9SUTF2SnN5anlT?= =?utf-8?B?Z1RxeXlaTGQ3QkJOeVBxeHh1eDF3ZkhmOU54cEIzd3RnRlhMQXJXYWpoOC9E?= =?utf-8?B?T0liTGx1T0dHWVFJZEJERWxUa0g2N2pRTTl3ZEZkbnNaNGFLWXZTaW51YVpl?= =?utf-8?B?emJWNmFxOG9XNE82TFVUY3F4Z1B3anZob0ZpWENNVW9xRmhqS1VQMUdTbnll?= =?utf-8?B?MXRSbmVUZ0dOVXJ2TVoza3R5eUFhdUNObU5PSWJ5aVk1ODdWNFk4ZmdhNnNz?= =?utf-8?B?S3F1VWg4WllMRExoeG9aZjR3N2p0T0ZyOGhWRExNcHU5YTQvaFhUcjlWOWRw?= =?utf-8?B?aEFIQXIzUHlkRmhyZkxmNU43VjlJWUFLYXQ2aDZDTkNkRHh0WW9vNDg2UDZS?= =?utf-8?B?MmtFa3dKUE55SGFrRFFUekVtUVd2RFVvMGI1U2dNMjV2c1dCUy8xTjB1OU53?= =?utf-8?B?eHNZY09ua01rc045ZDQ3TnRDUnNNSXVHcVVJWEUrNFRCdVR2SjEyWWY5SGQw?= =?utf-8?B?b2oyUnRnTnU4alNXcThGc0NweXpDaG5PWlZrMC8raVJXTmd5cE0zMDRqOC9a?= =?utf-8?B?L0l5TXFYQi9HUnJUQWRPb0VaWGxEa285aWFTRlZKYWZrTHlWMXdnRElIY042?= =?utf-8?B?MHZneDRtZmZTTXhjWDRrUG9IK1FOS2lpUFE1ME9QaUZSNjlxb0dobXVBUGY0?= =?utf-8?B?cnZYcmt5ZHdUQ3dpaWlwVTcvYlpUZi82b1MzY2l1WFJPYkVkSFVCVFhXd05U?= =?utf-8?Q?pMZyluJRtbYKZi5IjA/YAUCZnRSSzrpthgpLXhO?= 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: e4bb8caf-7b4c-4b37-6c5e-08d96c4171fa X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Aug 2021 05:37:38.9587 (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: zYWpV50FGWrHflGvvB/OKx7HeyOM9gkpgBhQHlynGIW/eIcY2hDwdHPi50eEgCswv9MA1nrvNe95FEf2I34qeA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3568 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v6] vhost: fix crash on port deletion 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" SGkgR2FveGlhbmcsDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogR2Fv eGlhbmcgTGl1IDxnYW94aWFuZ2xpdTBAMTYzLmNvbT4NCj4gU2VudDogRnJpZGF5LCBBdWd1c3Qg MjcsIDIwMjEgMTA6MTkgUE0NCj4gVG86IG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tOyBYaWEs IENoZW5ibyA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+DQo+IENjOiBkZXZAZHBkay5vcmc7IGxpdWdh b3hpYW5nQGh1YXdlaS5jb207IEdhb3hpYW5nIExpdSA8Z2FveGlhbmdsaXUwQDE2My5jb20+DQo+ IFN1YmplY3Q6IFtQQVRDSCB2Nl0gdmhvc3Q6IGZpeCBjcmFzaCBvbiBwb3J0IGRlbGV0aW9uDQo+ IA0KPiBUaGUgcnRlX3Zob3N0X2RyaXZlcl91bnJlZ2lzdGVyKCkgYW5kIHZob3N0X3VzZXJfcmVh ZF9jYigpDQo+IGNhbiBiZSBjYWxsZWQgYXQgdGhlIHNhbWUgdGltZSBieSAyIHRocmVhZHMuDQo+ IHdoZW4gbWVtb3J5IG9mIHZzb2NrZXQgaXMgZnJlZWQgaW4gcnRlX3Zob3N0X2RyaXZlcl91bnJl Z2lzdGVyKCksDQo+IHRoZSBpbnZhbGlkIG1lbW9yeSBvZiB2c29ja2V0IGlzIGFjY2Vzc2VkIGlu IHZob3N0X3VzZXJfcmVhZF9jYigpLg0KPiBJdCdzIGEgYnVnIG9mIGJvdGggbW9kZSBmb3Igdmhv c3QgYXMgc2VydmVyIG9yIGNsaWVudC4NCj4gDQo+IEUuZy4sdmhvc3R1c2VyIHBvcnQgaXMgY3Jl YXRlZCBhcyBzZXJ2ZXIuDQoNClB1dCBhIHNwYWNlIGFmdGVyICcsJw0KDQo+IFRocmVhZDEgY2Fs bHMgcnRlX3Zob3N0X2RyaXZlcl91bnJlZ2lzdGVyKCkuDQo+IEJlZm9yZSB0aGUgbGlzdGVuIGZk IGlzIGRlbGV0ZWQgZnJvbSBwb2xsIHdhaXRpbmcgZmRzLA0KPiAidmhvc3QtZXZlbnRzIiB0aHJl YWQgdGhlbiBjYWxscyB2aG9zdF91c2VyX3NlcnZlcl9uZXdfY29ubmVjdGlvbigpLA0KPiB0aGVu IGEgbmV3IGNvbm4gZmQgaXMgYWRkZWQgaW4gZmRzZXQgd2hlbiB0cnlpbmcgdG8gcmVjb25uZWN0 Lg0KPiAidmhvc3QtZXZlbnRzIiB0aHJlYWQgdGhlbiBjYWxscyB2aG9zdF91c2VyX3JlYWRfY2Io KSBhbmQNCj4gYWNjZXNzZXMgaW52YWxpZCBtZW1vcnkgb2Ygc29ja2V0IHdoaWxlIHRocmVhZDEg ZnJlZXMgdGhlIG1lbW9yeSBvZg0KPiB2c29ja2V0Lg0KPiANCj4gRS5nLix2aG9zdHVzZXIgcG9y dCBpcyBjcmVhdGVkIGFzIGNsaWVudC4NCg0KU2FtZSBoZXJlLg0KDQo+IFRocmVhZDEgY2FsbHMg cnRlX3Zob3N0X2RyaXZlcl91bnJlZ2lzdGVyKCkuDQo+IEJlZm9yZSB2c29ja2V0IG9mIHJlY29u biBpcyBkZWxldGVkIGZyb20gcmVjb25uIGxpc3QsDQo+ICJ2aG9zdF9yZWNvbm4iIHRocmVhZCB0 aGVuIGNhbGxzIHZob3N0X3VzZXJfYWRkX2Nvbm5lY3Rpb24oKQ0KPiB0aGVuIGEgbmV3IGNvbm4g ZmQgaXMgYWRkZWQgaW4gZmRzZXQgd2hlbiB0cnlpbmcgdG8gcmVjb25uZWN0Lg0KPiAidmhvc3Qt ZXZlbnRzIiB0aHJlYWQgdGhlbiBjYWxscyB2aG9zdF91c2VyX3JlYWRfY2IoKSBhbmQNCj4gYWNj ZXNzZXMgaW52YWxpZCBtZW1vcnkgb2Ygc29ja2V0IHdoaWxlIHRocmVhZDEgZnJlZXMgdGhlIG1l bW9yeSBvZg0KPiB2c29ja2V0Lg0KPiANCj4gVGhlIGZpeCBpcyB0byBtb3ZlIHRoZSAiZmRzZXRf dHJ5X2RlbCIgaW4gZnJvbnQgb2YgZnJlZSBtZW1vcnkgb2YgY29ubiwNCj4gdGhlbiBhdm9pZCB0 aGUgcmFjZSBjb25kaXRpb24uDQo+IA0KPiBUaGUgY29yZSB0cmFjZSBpczoNCj4gUHJvZ3JhbSB0 ZXJtaW5hdGVkIHdpdGggc2lnbmFsIDExLCBTZWdtZW50YXRpb24gZmF1bHQuDQo+IA0KPiBGaXhl czogNTJkODc0ZGM2NzA1ICgidmhvc3Q6IGZpeCBjcmFzaCBvbiBjbG9zaW5nIGluIGNsaWVudCBt b2RlIikNCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEdhb3hpYW5nIExpdSA8bGl1Z2FveGlhbmdAaHVh d2VpLmNvbT4NCj4gLS0tDQo+IA0KPiB2MjoNCj4gKiBGaXggY29kaW5nIHN0eWxlIGlzc3Vlcy4N Cj4gDQo+IHYzOg0KPiAqIEFkZCBkZXRhaWxlZCBsb2cuDQo+IA0KPiB2NDoNCj4gKiBBZGQgdGhl IHJlYXNvbiwgd2hlbiB2aG9zdHVzZXIgcG9ydCBpcyBjcmVhdGVkIGFzIHNlcnZlci4NCj4gDQo+ IHY1Og0KPiAqIEFkZCBkZXRhaWxlZCBsb2cgd2hlbiB2aG9zdHVzZXIgcG9ydCBpcyBjcmVhdGVk IGFzIGNsaWVudA0KPiANCj4gdjY6DQo+ICogQWRkICdwYXRoJyBjaGVjayBiZWZvcmUgZGVsZXRp bmcgbGlzdGVuIGZkDQo+ICogRml4IHNwZWxsaW5nIGlzc3Vlcw0KPiAtLS0NCj4gIGxpYi92aG9z dC9zb2NrZXQuYyB8IDEwOCArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0NCj4gIDEgZmlsZSBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCA1NCBkZWxldGlvbnMo LSkNCj4gDQo+IGRpZmYgLS1naXQgYS9saWIvdmhvc3Qvc29ja2V0LmMgYi9saWIvdmhvc3Qvc29j a2V0LmMNCj4gaW5kZXggNWQwZDcyOGQ1Li4yN2Q1ZTg2OTUgMTAwNjQ0DQo+IC0tLSBhL2xpYi92 aG9zdC9zb2NrZXQuYw0KPiArKysgYi9saWIvdmhvc3Qvc29ja2V0LmMNCj4gQEAgLTEwMjMsNjYg KzEwMjMsNjYgQEAgcnRlX3Zob3N0X2RyaXZlcl91bnJlZ2lzdGVyKGNvbnN0IGNoYXIgKnBhdGgp DQo+IA0KPiAgCWZvciAoaSA9IDA7IGkgPCB2aG9zdF91c2VyLnZzb2NrZXRfY250OyBpKyspIHsN Cj4gIAkJc3RydWN0IHZob3N0X3VzZXJfc29ja2V0ICp2c29ja2V0ID0gdmhvc3RfdXNlci52c29j a2V0c1tpXTsNCj4gKwkJaWYgKHN0cmNtcCh2c29ja2V0LT5wYXRoLCBwYXRoKSkgew0KPiArCQkJ Y29udGludWU7DQo+ICsJCX0NCg0KYnJhY2VzIHt9IGFyZSBub3QgbmVjZXNzYXJ5IGZvciBzaW5n bGUgc3RhdGVtZW50IGJsb2Nrcw0KDQo+IA0KPiAtCQlpZiAoIXN0cmNtcCh2c29ja2V0LT5wYXRo LCBwYXRoKSkgew0KPiAtCQkJcHRocmVhZF9tdXRleF9sb2NrKCZ2c29ja2V0LT5jb25uX211dGV4 KTsNCj4gLQkJCWZvciAoY29ubiA9IFRBSUxRX0ZJUlNUKCZ2c29ja2V0LT5jb25uX2xpc3QpOw0K PiAtCQkJICAgICBjb25uICE9IE5VTEw7DQo+IC0JCQkgICAgIGNvbm4gPSBuZXh0KSB7DQo+IC0J CQkJbmV4dCA9IFRBSUxRX05FWFQoY29ubiwgbmV4dCk7DQo+IC0NCj4gLQkJCQkvKg0KPiAtCQkJ CSAqIElmIHIvd2NiIGlzIGV4ZWN1dGluZywgcmVsZWFzZSB2c29ja2V0J3MNCj4gLQkJCQkgKiBj b25uX211dGV4IGFuZCB2aG9zdF91c2VyJ3MgbXV0ZXggbG9ja3MsIGFuZA0KPiAtCQkJCSAqIHRy eSBhZ2FpbiBzaW5jZSB0aGUgci93Y2IgbWF5IHVzZSB0aGUNCj4gLQkJCQkgKiBjb25uX211dGV4 IGFuZCBtdXRleCBsb2Nrcy4NCj4gLQkJCQkgKi8NCj4gLQkJCQlpZiAoZmRzZXRfdHJ5X2RlbCgm dmhvc3RfdXNlci5mZHNldCwNCj4gLQkJCQkJCSAgY29ubi0+Y29ubmZkKSA9PSAtMSkgew0KPiAt CQkJCQlwdGhyZWFkX211dGV4X3VubG9jaygNCj4gLQkJCQkJCQkmdnNvY2tldC0+Y29ubl9tdXRl eCk7DQo+IC0JCQkJCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZ2aG9zdF91c2VyLm11dGV4KTsNCj4g LQkJCQkJZ290byBhZ2FpbjsNCj4gLQkJCQl9DQo+IC0NCj4gLQkJCQlWSE9TVF9MT0dfQ09ORklH KElORk8sDQo+IC0JCQkJCSJmcmVlIGNvbm5mZCA9ICVkIGZvciBkZXZpY2UgJyVzJ1xuIiwNCj4g LQkJCQkJY29ubi0+Y29ubmZkLCBwYXRoKTsNCj4gLQkJCQljbG9zZShjb25uLT5jb25uZmQpOw0K PiAtCQkJCXZob3N0X2Rlc3Ryb3lfZGV2aWNlKGNvbm4tPnZpZCk7DQo+IC0JCQkJVEFJTFFfUkVN T1ZFKCZ2c29ja2V0LT5jb25uX2xpc3QsIGNvbm4sIG5leHQpOw0KPiAtCQkJCWZyZWUoY29ubik7 DQo+IC0JCQl9DQo+IC0JCQlwdGhyZWFkX211dGV4X3VubG9jaygmdnNvY2tldC0+Y29ubl9tdXRl eCk7DQo+IC0NCj4gLQkJCWlmICh2c29ja2V0LT5pc19zZXJ2ZXIpIHsNCj4gLQkJCQkvKg0KPiAt CQkJCSAqIElmIHIvd2NiIGlzIGV4ZWN1dGluZywgcmVsZWFzZSB2aG9zdF91c2VyJ3MNCj4gLQkJ CQkgKiBtdXRleCBsb2NrLCBhbmQgdHJ5IGFnYWluIHNpbmNlIHRoZSByL3djYg0KPiAtCQkJCSAq IG1heSB1c2UgdGhlIG11dGV4IGxvY2suDQo+IC0JCQkJICovDQo+IC0JCQkJaWYgKGZkc2V0X3Ry eV9kZWwoJnZob3N0X3VzZXIuZmRzZXQsDQo+IC0JCQkJCQl2c29ja2V0LT5zb2NrZXRfZmQpID09 IC0xKSB7DQo+IC0JCQkJCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZ2aG9zdF91c2VyLm11dGV4KTsN Cj4gLQkJCQkJZ290byBhZ2FpbjsNCj4gLQkJCQl9DQo+IC0NCj4gLQkJCQljbG9zZSh2c29ja2V0 LT5zb2NrZXRfZmQpOw0KPiAtCQkJCXVubGluayhwYXRoKTsNCj4gLQkJCX0gZWxzZSBpZiAodnNv Y2tldC0+cmVjb25uZWN0KSB7DQo+IC0JCQkJdmhvc3RfdXNlcl9yZW1vdmVfcmVjb25uZWN0KHZz b2NrZXQpOw0KPiArCQlpZiAodnNvY2tldC0+aXNfc2VydmVyKSB7DQo+ICsJCQkvKg0KPiArCQkJ ICogSWYgci93Y2IgaXMgZXhlY3V0aW5nLCByZWxlYXNlIHZob3N0X3VzZXIncw0KPiArCQkJICog bXV0ZXggbG9jaywgYW5kIHRyeSBhZ2FpbiBzaW5jZSB0aGUgci93Y2INCj4gKwkJCSAqIG1heSB1 c2UgdGhlIG11dGV4IGxvY2suDQo+ICsJCQkgKi8NCj4gKwkJCWlmIChmZHNldF90cnlfZGVsKCZ2 aG9zdF91c2VyLmZkc2V0LCB2c29ja2V0LT5zb2NrZXRfZmQpID09DQo+IC0xKSB7DQo+ICsJCQkJ cHRocmVhZF9tdXRleF91bmxvY2soJnZob3N0X3VzZXIubXV0ZXgpOw0KPiArCQkJCWdvdG8gYWdh aW47DQo+ICAJCQl9DQo+ICsJCX0gZWxzZSBpZiAodnNvY2tldC0+cmVjb25uZWN0KSB7DQo+ICsJ CQl2aG9zdF91c2VyX3JlbW92ZV9yZWNvbm5lY3QodnNvY2tldCk7DQo+ICsJCX0NCj4gDQo+IC0J CQlwdGhyZWFkX211dGV4X2Rlc3Ryb3koJnZzb2NrZXQtPmNvbm5fbXV0ZXgpOw0KPiAtCQkJdmhv c3RfdXNlcl9zb2NrZXRfbWVtX2ZyZWUodnNvY2tldCk7DQo+ICsJCXB0aHJlYWRfbXV0ZXhfbG9j aygmdnNvY2tldC0+Y29ubl9tdXRleCk7DQo+ICsJCWZvciAoY29ubiA9IFRBSUxRX0ZJUlNUKCZ2 c29ja2V0LT5jb25uX2xpc3QpOw0KPiArCQkJIGNvbm4gIT0gTlVMTDsNCj4gKwkJCSBjb25uID0g bmV4dCkgew0KPiArCQkJbmV4dCA9IFRBSUxRX05FWFQoY29ubiwgbmV4dCk7DQo+IA0KPiAtCQkJ Y291bnQgPSAtLXZob3N0X3VzZXIudnNvY2tldF9jbnQ7DQo+IC0JCQl2aG9zdF91c2VyLnZzb2Nr ZXRzW2ldID0gdmhvc3RfdXNlci52c29ja2V0c1tjb3VudF07DQo+IC0JCQl2aG9zdF91c2VyLnZz b2NrZXRzW2NvdW50XSA9IE5VTEw7DQo+IC0JCQlwdGhyZWFkX211dGV4X3VubG9jaygmdmhvc3Rf dXNlci5tdXRleCk7DQo+ICsJCQkvKg0KPiArCQkJICogSWYgci93Y2IgaXMgZXhlY3V0aW5nLCBy ZWxlYXNlIHZzb2NrZXQncw0KPiArCQkJICogY29ubl9tdXRleCBhbmQgdmhvc3RfdXNlcidzIG11 dGV4IGxvY2tzLCBhbmQNCj4gKwkJCSAqIHRyeSBhZ2FpbiBzaW5jZSB0aGUgci93Y2IgbWF5IHVz ZSB0aGUNCj4gKwkJCSAqIGNvbm5fbXV0ZXggYW5kIG11dGV4IGxvY2tzLg0KPiArCQkJICovDQo+ ICsJCQlpZiAoZmRzZXRfdHJ5X2RlbCgmdmhvc3RfdXNlci5mZHNldCwNCj4gKwkJCQkJICBjb25u LT5jb25uZmQpID09IC0xKSB7DQo+ICsJCQkJcHRocmVhZF9tdXRleF91bmxvY2soJnZzb2NrZXQt PmNvbm5fbXV0ZXgpOw0KPiArCQkJCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZ2aG9zdF91c2VyLm11 dGV4KTsNCj4gKwkJCQlnb3RvIGFnYWluOw0KPiArCQkJfQ0KPiArDQo+ICsJCQlWSE9TVF9MT0df Q09ORklHKElORk8sDQo+ICsJCQkJImZyZWUgY29ubmZkID0gJWQgZm9yIGRldmljZSAnJXMnXG4i LA0KPiArCQkJCWNvbm4tPmNvbm5mZCwgcGF0aCk7DQo+ICsJCQljbG9zZShjb25uLT5jb25uZmQp Ow0KPiArCQkJdmhvc3RfZGVzdHJveV9kZXZpY2UoY29ubi0+dmlkKTsNCj4gKwkJCVRBSUxRX1JF TU9WRSgmdnNvY2tldC0+Y29ubl9saXN0LCBjb25uLCBuZXh0KTsNCj4gKwkJCWZyZWUoY29ubik7 DQo+ICsJCX0NCj4gKwkJcHRocmVhZF9tdXRleF91bmxvY2soJnZzb2NrZXQtPmNvbm5fbXV0ZXgp Ow0KPiANCj4gLQkJCXJldHVybiAwOw0KPiArCQlpZiAodnNvY2tldC0+aXNfc2VydmVyKSB7DQo+ ICsJCQljbG9zZSh2c29ja2V0LT5zb2NrZXRfZmQpOw0KPiArCQkJdW5saW5rKHBhdGgpOw0KPiAg CQl9DQoNCkkgdGhpbmsgeW91IG1pc3MgbXkgY29tbWVudCBpbiBWNSBvZiBhc2tpbmcgd2h5IHRo aXMgaXMgbm90IG1vdmVkIHVwIGFmdGVyDQpmZHNldF90cnlfZGVsIHNlcnZlciBzb2NrZXQgZmQu DQoNClRoYW5rcywNCkNoZW5ibw0KDQo+ICsNCj4gKwkJcHRocmVhZF9tdXRleF9kZXN0cm95KCZ2 c29ja2V0LT5jb25uX211dGV4KTsNCj4gKwkJdmhvc3RfdXNlcl9zb2NrZXRfbWVtX2ZyZWUodnNv Y2tldCk7DQo+ICsNCj4gKwkJY291bnQgPSAtLXZob3N0X3VzZXIudnNvY2tldF9jbnQ7DQo+ICsJ CXZob3N0X3VzZXIudnNvY2tldHNbaV0gPSB2aG9zdF91c2VyLnZzb2NrZXRzW2NvdW50XTsNCj4g KwkJdmhvc3RfdXNlci52c29ja2V0c1tjb3VudF0gPSBOVUxMOw0KPiArCQlwdGhyZWFkX211dGV4 X3VubG9jaygmdmhvc3RfdXNlci5tdXRleCk7DQo+ICsJCXJldHVybiAwOw0KPiAgCX0NCj4gIAlw dGhyZWFkX211dGV4X3VubG9jaygmdmhvc3RfdXNlci5tdXRleCk7DQo+IA0KPiAtLQ0KPiAyLjMy LjANCj4gDQoNCg==