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 B07DEA04BC; Fri, 9 Oct 2020 13:16:25 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 644841D412; Fri, 9 Oct 2020 13:16:24 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id BC9061D407 for ; Fri, 9 Oct 2020 13:16:21 +0200 (CEST) IronPort-SDR: tisNhPc17DC8NyUL05CKEDtQYaiLsqC5/oKZVbH/1zR/xBMX5qetvz92FwZgLPsDFLUHLApG0F pocssr+c+EXA== X-IronPort-AV: E=McAfee;i="6000,8403,9768"; a="145336506" X-IronPort-AV: E=Sophos;i="5.77,354,1596524400"; d="scan'208";a="145336506" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Oct 2020 04:16:20 -0700 IronPort-SDR: wgYrbdmFaqvHO1hHIb+e9NG5XuQrRMNowO8Jpe703Eta1r4U435k8hTdOX9Pr54VxPH5K9jDwK +If2zsVE7lSQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,354,1596524400"; d="scan'208";a="354823870" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by FMSMGA003.fm.intel.com with ESMTP; 09 Oct 2020 04:16:20 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 9 Oct 2020 04:16:17 -0700 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) 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; Fri, 9 Oct 2020 04:16:16 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Fri, 9 Oct 2020 04:16:16 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.175) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Fri, 9 Oct 2020 04:16:15 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WpjUkuea3/0C/gf62vQtH9OqZTw2waXORRBbqHsluNE5FsOm9MvtOF+o22+tJUE92ELA32fivR01BdH2rl6YicpMxI23hJz/b1GyzKNr91HmZGqn6PbBRg1F7znvngJyInii99tn/D1440LcIqwutF/dq1tRRJ/ebxQYons1JUL6OhNLPabyeBb5+L6v6rZ6CEAlWLo6NStmMqN0sKNOipKJDFnpuSgNHf9eQe0nAbDu9DvLkBvx+NZK1ARiFq94S4B1G6DPcdDRwfudg7CUhzGWs3xcVfuoeTW75GgIa1DPGrVY9XDCUAW8SP6JKRhiFtVJsQ/1uNMb2cVIlqNfcA== 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=dqb7FHVVpoX5C/tC/gcMJK0X5FVzQqKrbsdAl9LjJ+0=; b=Xa9A+4nwRwT9LcJHn4ixvSmzmkME4H7+NKyyZVGMuhqFWXFXEMyKe8NGmucDysm5C48aPgtiPv4F96op/QcJUnPHDwLlsJ413QYY6pfabss0DJFATu/X6Y8pRhoRexYrppZN2S2aiJs1dq5hfmA0BPGvMWzNrgzx0282kVrtktvnaygv4sbeVzi+jxyeC6M1OusyqlOjxu/Y9mlJ1u4NiC2Y8s0dJnlkJC4wv5NdN1p/rXSO7o+Rct/6PNbwZ9hlWE2EfPJKoePr51KPWiyTUG/Ns5HuYBHxG+2HvOl0miIuZKUeadoUPT29PeMbtokb/sDE4UO0QwgeAF9V/yorKQ== 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=dqb7FHVVpoX5C/tC/gcMJK0X5FVzQqKrbsdAl9LjJ+0=; b=arukUS3JIsYUU2QYE7oj1nBa8swCtUueXGeal+yhpBK5oGReX16H4tfsUA9aTB7DRGjB2DnVhPOjS1abB2Z9QqMapV8/dXq9N46QRD+c9sIpl6yo1Z/BUNk+IvkRkmTc9yfyp+5T7kCD0CB0HqYaFBXncrTvFoMBaZQ47RLFuHU= Received: from MWHPR11MB0032.namprd11.prod.outlook.com (2603:10b6:301:63::28) by MWHPR11MB1551.namprd11.prod.outlook.com (2603:10b6:301:d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3455.27; Fri, 9 Oct 2020 11:16:13 +0000 Received: from MWHPR11MB0032.namprd11.prod.outlook.com ([fe80::88c9:ad8c:fcf2:9177]) by MWHPR11MB0032.namprd11.prod.outlook.com ([fe80::88c9:ad8c:fcf2:9177%6]) with mapi id 15.20.3412.028; Fri, 9 Oct 2020 11:16:13 +0000 From: "Fu, Patrick" To: Maxime Coquelin , "dev@dpdk.org" , "Xia, Chenbo" CC: "Wang, Zhihong" , "Jiang, Cheng1" Thread-Topic: [PATCH v3 1/4] vhost: simplify async copy completion Thread-Index: AQHWlkRH3jLRcCL1nUGEV/SKdbpXLamJD2eAgAYZTAA= Date: Fri, 9 Oct 2020 11:16:13 +0000 Message-ID: References: <20200911015316.1903181-1-patrick.fu@intel.com> <20200929092955.2848419-1-patrick.fu@intel.com> <20200929092955.2848419-2-patrick.fu@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action 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.200] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: fa427e79-2467-45a7-ec17-08d86c44bbda x-ms-traffictypediagnostic: MWHPR11MB1551: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: AejERClOnFZHfa0Pki8netSxWFNLMQMpJDmU4Lc2IKUlKBJQpHHwDdJzuwjo5XIS0RbW98s+YKEzNjEbJlKkHgEuHZBGj2p3NXqea9sFex4fTvGr0Qq478Kv3RsDXxDJoGowV+9vTrp+jXfWIFVwnByUJLvS6vuxHWU8Q0Mtv8wCvwt4EqmbGCQrWIgBpxwwGo4oVKSzxQQ5U4QUCyRJX6mxuPwzn4oaCVOIdrrqmVYtn0Dx9MDqGCrZ15Pgv6XnAY5fwwIGzOUDHdaEM+GEbKSVen10kg0kGrJU9Eo92SaJaNifvZ8zLq/7r4zfAVqpc/sa8R9lT3HTsAbk3PA0qA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MWHPR11MB0032.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(396003)(376002)(346002)(136003)(39860400002)(66556008)(64756008)(66946007)(66446008)(107886003)(478600001)(33656002)(76116006)(2906002)(186003)(316002)(66476007)(86362001)(6636002)(52536014)(26005)(54906003)(4326008)(110136005)(9686003)(5660300002)(30864003)(7696005)(53546011)(6506007)(55016002)(8676002)(71200400001)(8936002)(83380400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: x5sbVgJAWZMe5z27uUfERdtTvOQqzqCIe3SljNPJyeowQsWs0lE3sjpbZ9pwkYriZB9b5hJkej9hSelNDSftZ68NyP+bq2fzpkkIV5kDJKzkYzj4A+q65EloVoYLxFrIxdrwcwuTbNfJTEfdHf7BF/8Ga2y6FKiX6a1s7eQYF0sQ5XUfuXZ8bf/RSWzUyUMNNdKtYWmGVol7pWk6vxTZb3AlwfvY22brF6OhYRw4fVve559/7vVn9AB7qhWwd/0dbF+WCFsCXYztL1pXgVXcKiaUasFWApbQ4IhtfY2JFJ2A6P13wcPl+cN7OGGfdc96trpAw442IfgZj4hidz/Z0mQEUnvtJOhNAy7dypf0YT5pxmEoF3On1J44xZCPpyyDRXBrKSxXJvh5d51DqPCh88wJjm+or0xeOAWDpgfFX1qgHDRmDJnwR5DR/ysT88OrAkbwGpLUOmnQhX4+PbjaCrJJqIEmHYYFYBA7kRtLoWGtN0dsha1f/k4fPu852re4Y+JLugkpZBqQrWIQ7e6EKrcQZl5Xir6YKFXPjV6WbZYp8RsldT3pdf6HSVpwQGga5kfZi5XDkntVLi8Zs+oiZb4PILpeidi5rETurldor6xz4zzN7QWWLyCUnpRfYKH3bhEVgWFuomEinaP9Pc089Q== 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: MWHPR11MB0032.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fa427e79-2467-45a7-ec17-08d86c44bbda X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Oct 2020 11:16:13.6448 (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: bft66jqyQ5vQl18XXwhAjEK7iFd6rCFDIhAWkTff0lfziu/o3/TIcDmx1hFuM8vTA5WX80ZQCr9BxbUOi9/8WQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1551 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v3 1/4] vhost: simplify async copy completion 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" PiA+IE9uIDkvMjkvMjAgMTE6MjkgQU0sIFBhdHJpY2sgRnUgd3JvdGU6DQo+ID4gQ3VycmVudCBh c3luYyBvcHMgYWxsb3dzIGNoZWNrX2NvbXBsZXRlZF9jb3BpZXMoKSBjYWxsYmFjayB0byByZXR1 cm4NCj4gPiBhcmJpdHJhcnkgbnVtYmVyIG9mIGFzeW5jIGlvdiBzZWdtZW50cyBmaW5pc2hlZCBm cm9tIGJhY2tlbmQgYXN5bmMNCj4gPiBkZXZpY2VzLiBUaGlzIGRlc2lnbiBjcmVhdGVzIGNvbXBs ZXhpdHkgZm9yIHZob3N0IHRvIGhhbmRsZSBicmVha2luZw0KPiA+IHRyYW5zZmVyIG9mIGEgc2lu Z2xlIHBhY2tldCAoaS5lLiB0cmFuc2ZlciBjb21wbGV0ZXMgaW4gdGhlIG1pZGRsZQ0KPiA+IG9m IGEgYXN5bmMgZGVzY3JpcHRvcikgYW5kIHByZXZlbnRzIGFwcGxpY2F0aW9uIGNhbGxiYWNrcyBm cm9tDQo+ID4gbGV2ZXJhZ2luZyBoYXJkd2FyZSBjYXBhYmlsaXR5IHRvIG9mZmxvYWQgdGhlIHdv cmsuIFRodXMsIHRoaXMgcGF0Y2gNCj4gPiBlbmZvcmNlcyB0aGUgY2hlY2tfY29tcGxldGVkX2Nv cGllcygpIGNhbGxiYWNrIHRvIHJldHVybiB0aGUgbnVtYmVyDQo+ID4gb2YgYXN5bmMgbWVtb3J5 IGRlc2NyaXB0b3JzLCB3aGljaCBpcyBhbGlnbmVkIHdpdGggYXN5bmMgdHJhbnNmZXINCj4gPiBk YXRhIG9wcyBjYWxsYmFja3MuIHZIb3N0IGFzeW5jIGRhdGEgcGF0aCBhcmUgcmV2aXNlZCB0byB3 b3JrIHdpdGgNCj4gPiBuZXcgb3BzIGRlZmluZSwgd2hpY2ggcHJvdmlkZXMgYSBjbGVhbiBhbmQg c2ltcGxpZmllZCBwcm9jZXNzaW5nLg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogUGF0cmljayBG dSA8cGF0cmljay5mdUBpbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4gIGxpYi9saWJydGVfdmhvc3Qv cnRlX3Zob3N0X2FzeW5jLmggfCAgMTUgKystDQo+ID4gIGxpYi9saWJydGVfdmhvc3Qvdmhvc3Qu YyAgICAgICAgICAgfCAgMjAgKystLQ0KPiA+ICBsaWIvbGlicnRlX3Zob3N0L3Zob3N0LmggICAg ICAgICAgIHwgICA4ICstDQo+ID4gIGxpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jICAgICAg fCAgIDYgKy0NCj4gPiAgbGliL2xpYnJ0ZV92aG9zdC92aXJ0aW9fbmV0LmMgICAgICB8IDE1MSAr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICA1IGZpbGVzIGNoYW5nZWQsIDkwIGlu c2VydGlvbnMoKyksIDExMCBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9saWIv bGlicnRlX3Zob3N0L3J0ZV92aG9zdF9hc3luYy5oDQo+IGIvbGliL2xpYnJ0ZV92aG9zdC9ydGVf dmhvc3RfYXN5bmMuaA0KPiA+IGluZGV4IGNiNjI4NDUzOS4uYzczYmQ3Yzk5IDEwMDY0NA0KPiA+ IC0tLSBhL2xpYi9saWJydGVfdmhvc3QvcnRlX3Zob3N0X2FzeW5jLmgNCj4gPiArKysgYi9saWIv bGlicnRlX3Zob3N0L3J0ZV92aG9zdF9hc3luYy5oDQo+ID4gQEAgLTc2LDEzICs3NiwyNiBAQCBz dHJ1Y3QgcnRlX3Zob3N0X2FzeW5jX2NoYW5uZWxfb3BzIHsNCj4gPiAgCSAqIEBwYXJhbSBtYXhf cGFja2V0cw0KPiA+ICAJICogIG1heCBudW1iZXIgb2YgcGFja2V0cyBjb3VsZCBiZSBjb21wbGV0 ZWQNCj4gPiAgCSAqIEByZXR1cm4NCj4gPiAtCSAqICBudW1iZXIgb2YgaW92IHNlZ21lbnRzIGNv bXBsZXRlZA0KPiA+ICsJICogIG51bWJlciBvZiBhc3luYyBkZXNjcyBjb21wbGV0ZWQNCj4gPiAg CSAqLw0KPiA+ICAJdWludDMyX3QgKCpjaGVja19jb21wbGV0ZWRfY29waWVzKShpbnQgdmlkLCB1 aW50MTZfdCBxdWV1ZV9pZCwNCj4gPiAgCQlzdHJ1Y3QgcnRlX3Zob3N0X2FzeW5jX3N0YXR1cyAq b3BhcXVlX2RhdGEsDQo+ID4gIAkJdWludDE2X3QgbWF4X3BhY2tldHMpOw0KPiA+ICB9Ow0KPiA+ DQo+ID4gKy8qKg0KPiA+ICsgKiBpbmZsaWdodCBhc3luYyBwYWNrZXQgaW5mb3JtYXRpb24NCj4g PiArICovDQo+ID4gK3N0cnVjdCBhc3luY19pbmZsaWdodF9pbmZvIHsNCj4gPiArCXVuaW9uIHsN Cj4gPiArCQl1aW50MzJfdCBpbmZvOw0KPiA+ICsJCXN0cnVjdCB7DQo+ID4gKwkJCXVpbnQxNl90 IGRlc2NzOyAvKiBudW0gb2YgZGVzY3MgaW5mbGlnaHQgKi8NCj4gPiArCQkJdWludDE2X3Qgc2Vn czsgLyogaW92IHNlZ3MgaW5mbGlnaHQgKi8NCj4gPiArCQl9Ow0KPiA+ICsJfTsNCj4gDQo+IEkg dGhpbmsgeW91IGNhbiByZW1vdmluZyB0aGUgdW5pb24uDQo+IA0KVGhlcmUgYXJlIHNvbWUgY2Fz ZXMgaW4gdGhlIGNvZGUgdGhhdCB3ZSB3YW50IHRvIHNldCBkZXNjcz1OIGFuZCBzZXQgc2Vncz0w LiBJbiBzdWNoIGNhc2VzLCByZWZlcmVuY2UgaW5mbz1OIGRpcmVjdGx5IHdpbGwgYmUgZmFzdGVy IHRoYW4gc2V0dGluZyBkZXNjcyAmIHNlZ3Mgc2VwYXJhdGVseS4gIFNvIEkgd291bGQgcHJlZmVy IHRvIGtlZXAgdGhlIHVuaW9uLg0KDQo+ID4gK307DQo+ID4gKw0KPiA+ICAvKioNCj4gPiAgICog IGRtYSBjaGFubmVsIGZlYXR1cmUgYml0IGRlZmluaXRpb24NCj4gPiAgICovDQo+ID4gZGlmZiAt LWdpdCBhL2xpYi9saWJydGVfdmhvc3Qvdmhvc3QuYyBiL2xpYi9saWJydGVfdmhvc3Qvdmhvc3Qu Yw0KPiA+IGluZGV4IDhmMjBhMDgxOC4uZWNhNTA3ODM2IDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9s aWJydGVfdmhvc3Qvdmhvc3QuYw0KPiA+ICsrKyBiL2xpYi9saWJydGVfdmhvc3Qvdmhvc3QuYw0K PiA+IEBAIC0zMzMsOCArMzMzLDggQEAgZnJlZV92cShzdHJ1Y3QgdmlydGlvX25ldCAqZGV2LCBz dHJ1Y3QNCj4gdmhvc3RfdmlydHF1ZXVlICp2cSkNCj4gPiAgCQlydGVfZnJlZSh2cS0+c2hhZG93 X3VzZWRfc3BsaXQpOw0KPiA+ICAJCWlmICh2cS0+YXN5bmNfcGt0c19wZW5kaW5nKQ0KPiA+ICAJ CQlydGVfZnJlZSh2cS0+YXN5bmNfcGt0c19wZW5kaW5nKTsNCj4gPiAtCQlpZiAodnEtPmFzeW5j X3BlbmRpbmdfaW5mbykNCj4gPiAtCQkJcnRlX2ZyZWUodnEtPmFzeW5jX3BlbmRpbmdfaW5mbyk7 DQo+ID4gKwkJaWYgKHZxLT5hc3luY19wa3RzX2luZm8pDQo+ID4gKwkJCXJ0ZV9mcmVlKHZxLT5h c3luY19wa3RzX2luZm8pOw0KPiA+ICAJfQ0KPiA+ICAJcnRlX2ZyZWUodnEtPmJhdGNoX2NvcHlf ZWxlbXMpOw0KPiA+ICAJcnRlX21lbXBvb2xfZnJlZSh2cS0+aW90bGJfcG9vbCk7DQo+ID4gQEAg LTE1NzMsMTUgKzE1NzMsMTUgQEAgaW50IHJ0ZV92aG9zdF9hc3luY19jaGFubmVsX3JlZ2lzdGVy KGludCB2aWQsDQo+IHVpbnQxNl90IHF1ZXVlX2lkLA0KPiA+ICAJdnEtPmFzeW5jX3BrdHNfcGVu ZGluZyA9IHJ0ZV9tYWxsb2MoTlVMTCwNCj4gPiAgCQkJdnEtPnNpemUgKiBzaXplb2YodWludHB0 cl90KSwNCj4gPiAgCQkJUlRFX0NBQ0hFX0xJTkVfU0laRSk7DQo+ID4gLQl2cS0+YXN5bmNfcGVu ZGluZ19pbmZvID0gcnRlX21hbGxvYyhOVUxMLA0KPiA+IC0JCQl2cS0+c2l6ZSAqIHNpemVvZih1 aW50NjRfdCksDQo+ID4gKwl2cS0+YXN5bmNfcGt0c19pbmZvID0gcnRlX21hbGxvYyhOVUxMLA0K PiA+ICsJCQl2cS0+c2l6ZSAqIHNpemVvZihzdHJ1Y3QgYXN5bmNfaW5mbGlnaHRfaW5mbyksDQo+ ID4gIAkJCVJURV9DQUNIRV9MSU5FX1NJWkUpOw0KPiA+IC0JaWYgKCF2cS0+YXN5bmNfcGt0c19w ZW5kaW5nIHx8ICF2cS0+YXN5bmNfcGVuZGluZ19pbmZvKSB7DQo+ID4gKwlpZiAoIXZxLT5hc3lu Y19wa3RzX3BlbmRpbmcgfHwgIXZxLT5hc3luY19wa3RzX2luZm8pIHsNCj4gPiAgCQlpZiAodnEt PmFzeW5jX3BrdHNfcGVuZGluZykNCj4gPiAgCQkJcnRlX2ZyZWUodnEtPmFzeW5jX3BrdHNfcGVu ZGluZyk7DQo+ID4NCj4gPiAtCQlpZiAodnEtPmFzeW5jX3BlbmRpbmdfaW5mbykNCj4gPiAtCQkJ cnRlX2ZyZWUodnEtPmFzeW5jX3BlbmRpbmdfaW5mbyk7DQo+ID4gKwkJaWYgKHZxLT5hc3luY19w a3RzX2luZm8pDQo+ID4gKwkJCXJ0ZV9mcmVlKHZxLT5hc3luY19wa3RzX2luZm8pOw0KPiA+DQo+ ID4gIAkJVkhPU1RfTE9HX0NPTkZJRyhFUlIsDQo+ID4gIAkJCQkiYXN5bmMgcmVnaXN0ZXIgZmFp bGVkOiBjYW5ub3QgYWxsb2NhdGUNCj4gbWVtb3J5IGZvciB2cSBkYXRhICINCj4gPiBAQCAtMTYz NSw5ICsxNjM1LDkgQEAgaW50IHJ0ZV92aG9zdF9hc3luY19jaGFubmVsX3VucmVnaXN0ZXIoaW50 IHZpZCwNCj4gdWludDE2X3QgcXVldWVfaWQpDQo+ID4gIAkJdnEtPmFzeW5jX3BrdHNfcGVuZGlu ZyA9IE5VTEw7DQo+ID4gIAl9DQo+ID4NCj4gPiAtCWlmICh2cS0+YXN5bmNfcGVuZGluZ19pbmZv KSB7DQo+ID4gLQkJcnRlX2ZyZWUodnEtPmFzeW5jX3BlbmRpbmdfaW5mbyk7DQo+ID4gLQkJdnEt PmFzeW5jX3BlbmRpbmdfaW5mbyA9IE5VTEw7DQo+ID4gKwlpZiAodnEtPmFzeW5jX3BrdHNfaW5m bykgew0KPiA+ICsJCXJ0ZV9mcmVlKHZxLT5hc3luY19wa3RzX2luZm8pOw0KPiA+ICsJCXZxLT5h c3luY19wa3RzX2luZm8gPSBOVUxMOw0KPiA+ICAJfQ0KPiA+DQo+ID4gIAl2cS0+YXN5bmNfb3Bz LnRyYW5zZmVyX2RhdGEgPSBOVUxMOw0KPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3Zob3N0 L3Zob3N0LmggYi9saWIvbGlicnRlX3Zob3N0L3Zob3N0LmgNCj4gPiBpbmRleCA3M2ExZWQ4ODku LjE1NWE4MzJjMSAxMDA2NDQNCj4gPiAtLS0gYS9saWIvbGlicnRlX3Zob3N0L3Zob3N0LmgNCj4g PiArKysgYi9saWIvbGlicnRlX3Zob3N0L3Zob3N0LmgNCj4gPiBAQCAtNDYsOCArNDYsNiBAQA0K PiA+DQo+ID4gICNkZWZpbmUgTUFYX1BLVF9CVVJTVCAzMg0KPiA+DQo+ID4gLSNkZWZpbmUgQVNZ TkNfTUFYX1BPTExfU0VHIDI1NQ0KPiA+IC0NCj4gPiAgI2RlZmluZSBWSE9TVF9NQVhfQVNZTkNf SVQgKE1BWF9QS1RfQlVSU1QgKiAyKQ0KPiA+ICAjZGVmaW5lIFZIT1NUX01BWF9BU1lOQ19WRUMg KEJVRl9WRUNUT1JfTUFYICogMikNCj4gPg0KPiA+IEBAIC0yMjUsMTIgKzIyMywxMCBAQCBzdHJ1 Y3Qgdmhvc3RfdmlydHF1ZXVlIHsNCj4gPg0KPiA+ICAJLyogYXN5bmMgZGF0YSB0cmFuc2ZlciBz dGF0dXMgKi8NCj4gPiAgCXVpbnRwdHJfdAkqKmFzeW5jX3BrdHNfcGVuZGluZzsNCj4gPiAtCSNk ZWZpbmUJCUFTWU5DX1BFTkRJTkdfSU5GT19OX01TSyAweEZGRkYNCj4gPiAtCSNkZWZpbmUJCUFT WU5DX1BFTkRJTkdfSU5GT19OX1NGVCAxNg0KPiA+IC0JdWludDY0X3QJKmFzeW5jX3BlbmRpbmdf aW5mbzsNCj4gPiArCXN0cnVjdCBhc3luY19pbmZsaWdodF9pbmZvICphc3luY19wa3RzX2luZm87 DQo+ID4gIAl1aW50MTZfdAlhc3luY19wa3RzX2lkeDsNCj4gPiAgCXVpbnQxNl90CWFzeW5jX3Br dHNfaW5mbGlnaHRfbjsNCj4gPiAtCXVpbnQxNl90CWFzeW5jX2xhc3Rfc2VnX247DQo+ID4gKwl1 aW50MTZfdAlhc3luY19sYXN0X3BrdHNfbjsNCj4gPg0KPiA+ICAJLyogdnEgYXN5bmMgZmVhdHVy ZXMgKi8NCj4gPiAgCWJvb2wJCWFzeW5jX2lub3JkZXI7DQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9s aWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jIGIvbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmMN Cj4gPiBpbmRleCA1MDEyMThlMTkuLjY3ZDJhMmQ0MyAxMDA2NDQNCj4gPiAtLS0gYS9saWIvbGli cnRlX3Zob3N0L3Zob3N0X3VzZXIuYw0KPiA+ICsrKyBiL2xpYi9saWJydGVfdmhvc3Qvdmhvc3Rf dXNlci5jDQo+ID4gQEAgLTIwMDYsMTAgKzIwMDYsMTAgQEAgdmhvc3RfdXNlcl9nZXRfdnJpbmdf YmFzZShzdHJ1Y3QgdmlydGlvX25ldA0KPiAqKnBkZXYsDQo+ID4gIAkJdnEtPnNoYWRvd191c2Vk X3NwbGl0ID0gTlVMTDsNCj4gPiAgCQlpZiAodnEtPmFzeW5jX3BrdHNfcGVuZGluZykNCj4gPiAg CQkJcnRlX2ZyZWUodnEtPmFzeW5jX3BrdHNfcGVuZGluZyk7DQo+ID4gLQkJaWYgKHZxLT5hc3lu Y19wZW5kaW5nX2luZm8pDQo+ID4gLQkJCXJ0ZV9mcmVlKHZxLT5hc3luY19wZW5kaW5nX2luZm8p Ow0KPiA+ICsJCWlmICh2cS0+YXN5bmNfcGt0c19pbmZvKQ0KPiA+ICsJCQlydGVfZnJlZSh2cS0+ YXN5bmNfcGt0c19pbmZvKTsNCj4gPiAgCQl2cS0+YXN5bmNfcGt0c19wZW5kaW5nID0gTlVMTDsN Cj4gPiAtCQl2cS0+YXN5bmNfcGVuZGluZ19pbmZvID0gTlVMTDsNCj4gPiArCQl2cS0+YXN5bmNf cGt0c19pbmZvID0gTlVMTDsNCj4gPiAgCX0NCj4gPg0KPiA+ICAJcnRlX2ZyZWUodnEtPmJhdGNo X2NvcHlfZWxlbXMpOw0KPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3Zob3N0L3ZpcnRpb19u ZXQuYyBiL2xpYi9saWJydGVfdmhvc3QvdmlydGlvX25ldC5jDQo+ID4gaW5kZXggYmQ5MzAzYzhh Li42OGVhZDlhNzEgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2xpYnJ0ZV92aG9zdC92aXJ0aW9fbmV0 LmMNCj4gPiArKysgYi9saWIvbGlicnRlX3Zob3N0L3ZpcnRpb19uZXQuYw0KPiA+IEBAIC0xNDcz LDM3ICsxNDczLDYgQEAgdmlydGlvX2Rldl9yeF9hc3luY19nZXRfaW5mb19pZHgodWludDE2X3QN Cj4gcGt0c19pZHgsDQo+ID4gIAkJKHZxX3NpemUgLSBuX2luZmxpZ2h0ICsgcGt0c19pZHgpICYg KHZxX3NpemUgLSAxKTsNCj4gPiAgfQ0KPiA+DQo+ID4gLXN0YXRpYyBfX3J0ZV9hbHdheXNfaW5s aW5lIHZvaWQNCj4gPiAtdmlydGlvX2Rldl9yeF9hc3luY19zdWJtaXRfc3BsaXRfZXJyKHN0cnVj dCB2aXJ0aW9fbmV0ICpkZXYsDQo+ID4gLQlzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICp2cSwgdWlu dDE2X3QgcXVldWVfaWQsDQo+ID4gLQl1aW50MTZfdCBsYXN0X2lkeCwgdWludDE2X3Qgc2hhZG93 X2lkeCkNCj4gPiAtew0KPiA+IC0JdWludDE2X3Qgc3RhcnRfaWR4LCBwa3RzX2lkeCwgdnFfc2l6 ZTsNCj4gPiAtCXVpbnQ2NF90ICphc3luY19wZW5kaW5nX2luZm87DQo+ID4gLQ0KPiA+IC0JcGt0 c19pZHggPSB2cS0+YXN5bmNfcGt0c19pZHg7DQo+ID4gLQlhc3luY19wZW5kaW5nX2luZm8gPSB2 cS0+YXN5bmNfcGVuZGluZ19pbmZvOw0KPiA+IC0JdnFfc2l6ZSA9IHZxLT5zaXplOw0KPiA+IC0J c3RhcnRfaWR4ID0gdmlydGlvX2Rldl9yeF9hc3luY19nZXRfaW5mb19pZHgocGt0c19pZHgsDQo+ ID4gLQkJdnFfc2l6ZSwgdnEtPmFzeW5jX3BrdHNfaW5mbGlnaHRfbik7DQo+ID4gLQ0KPiA+IC0J d2hpbGUgKGxpa2VseSgoc3RhcnRfaWR4ICYgKHZxX3NpemUgLSAxKSkgIT0gcGt0c19pZHgpKSB7 DQo+ID4gLQkJdWludDY0X3Qgbl9zZWcgPQ0KPiA+IC0JCQlhc3luY19wZW5kaW5nX2luZm9bKHN0 YXJ0X2lkeCkgJiAodnFfc2l6ZSAtIDEpXSA+Pg0KPiA+IC0JCQlBU1lOQ19QRU5ESU5HX0lORk9f Tl9TRlQ7DQo+ID4gLQ0KPiA+IC0JCXdoaWxlIChuX3NlZykNCj4gPiAtCQkJbl9zZWcgLT0gdnEt DQo+ID5hc3luY19vcHMuY2hlY2tfY29tcGxldGVkX2NvcGllcyhkZXYtPnZpZCwNCj4gPiAtCQkJ CXF1ZXVlX2lkLCAwLCAxKTsNCj4gPiAtCX0NCj4gPiAtDQo+ID4gLQl2cS0+YXN5bmNfcGt0c19p bmZsaWdodF9uID0gMDsNCj4gPiAtCXZxLT5iYXRjaF9jb3B5X25iX2VsZW1zID0gMDsNCj4gPiAt DQo+ID4gLQl2cS0+c2hhZG93X3VzZWRfaWR4ID0gc2hhZG93X2lkeDsNCj4gPiAtCXZxLT5sYXN0 X2F2YWlsX2lkeCA9IGxhc3RfaWR4Ow0KPiA+IC19DQo+ID4gLQ0KPiA+ICBzdGF0aWMgX19ydGVf bm9pbmxpbmUgdWludDMyX3QNCj4gPiAgdmlydGlvX2Rldl9yeF9hc3luY19zdWJtaXRfc3BsaXQo c3RydWN0IHZpcnRpb19uZXQgKmRldiwNCj4gPiAgCXN0cnVjdCB2aG9zdF92aXJ0cXVldWUgKnZx LCB1aW50MTZfdCBxdWV1ZV9pZCwNCj4gPiBAQCAtMTUxMiw3ICsxNDgxLDcgQEAgdmlydGlvX2Rl dl9yeF9hc3luY19zdWJtaXRfc3BsaXQoc3RydWN0DQo+IHZpcnRpb19uZXQgKmRldiwNCj4gPiAg CXVpbnQzMl90IHBrdF9pZHggPSAwLCBwa3RfYnVyc3RfaWR4ID0gMDsNCj4gPiAgCXVpbnQxNl90 IG51bV9idWZmZXJzOw0KPiA+ICAJc3RydWN0IGJ1Zl92ZWN0b3IgYnVmX3ZlY1tCVUZfVkVDVE9S X01BWF07DQo+ID4gLQl1aW50MTZfdCBhdmFpbF9oZWFkLCBsYXN0X2lkeCwgc2hhZG93X2lkeDsN Cj4gPiArCXVpbnQxNl90IGF2YWlsX2hlYWQ7DQo+ID4NCj4gPiAgCXN0cnVjdCBydGVfdmhvc3Rf aW92X2l0ZXIgKml0X3Bvb2wgPSB2cS0+aXRfcG9vbDsNCj4gPiAgCXN0cnVjdCBpb3ZlYyAqdmVj X3Bvb2wgPSB2cS0+dmVjX3Bvb2w7DQo+ID4gQEAgLTE1MjIsMTEgKzE0OTEsMTEgQEAgdmlydGlv X2Rldl9yeF9hc3luY19zdWJtaXRfc3BsaXQoc3RydWN0DQo+IHZpcnRpb19uZXQgKmRldiwNCj4g PiAgCXN0cnVjdCBydGVfdmhvc3RfaW92X2l0ZXIgKnNyY19pdCA9IGl0X3Bvb2w7DQo+ID4gIAlz dHJ1Y3QgcnRlX3Zob3N0X2lvdl9pdGVyICpkc3RfaXQgPSBpdF9wb29sICsgMTsNCj4gPiAgCXVp bnQxNl90IG5fZnJlZV9zbG90LCBzbG90X2lkeDsNCj4gPiArCXVpbnQxNl90IHBrdF9lcnIgPSAw Ow0KPiA+ICsJc3RydWN0IGFzeW5jX2luZmxpZ2h0X2luZm8gKnBrdHNfaW5mbyA9IHZxLT5hc3lu Y19wa3RzX2luZm87DQo+ID4gIAlpbnQgbl9wa3RzID0gMDsNCj4gPg0KPiA+ICAJYXZhaWxfaGVh ZCA9IF9fYXRvbWljX2xvYWRfbigmdnEtPmF2YWlsLT5pZHgsDQo+IF9fQVRPTUlDX0FDUVVJUkUp Ow0KPiA+IC0JbGFzdF9pZHggPSB2cS0+bGFzdF9hdmFpbF9pZHg7DQo+ID4gLQlzaGFkb3dfaWR4 ID0gdnEtPnNoYWRvd191c2VkX2lkeDsNCj4gPg0KPiA+ICAJLyoNCj4gPiAgCSAqIFRoZSBvcmRl cmluZyBiZXR3ZWVuIGF2YWlsIGluZGV4IGFuZA0KPiA+IEBAIC0xNTY1LDE0ICsxNTM0LDE0IEBA IHZpcnRpb19kZXZfcnhfYXN5bmNfc3VibWl0X3NwbGl0KHN0cnVjdA0KPiB2aXJ0aW9fbmV0ICpk ZXYsDQo+ID4gIAkJaWYgKHNyY19pdC0+Y291bnQpIHsNCj4gPiAgCQkJYXN5bmNfZmlsbF9kZXNj KCZ0ZGVzW3BrdF9idXJzdF9pZHhdLCBzcmNfaXQsIGRzdF9pdCk7DQo+ID4gIAkJCXBrdF9idXJz dF9pZHgrKzsNCj4gPiAtCQkJdnEtPmFzeW5jX3BlbmRpbmdfaW5mb1tzbG90X2lkeF0gPQ0KPiA+ IC0JCQkJbnVtX2J1ZmZlcnMgfCAoc3JjX2l0LT5ucl9zZWdzIDw8IDE2KTsNCj4gPiArCQkJcGt0 c19pbmZvW3Nsb3RfaWR4XS5kZXNjcyA9IG51bV9idWZmZXJzOw0KPiA+ICsJCQlwa3RzX2luZm9b c2xvdF9pZHhdLnNlZ3MgPSBzcmNfaXQtPm5yX3NlZ3M7DQo+ID4gIAkJCXNyY19pb3ZlYyArPSBz cmNfaXQtPm5yX3NlZ3M7DQo+ID4gIAkJCWRzdF9pb3ZlYyArPSBkc3RfaXQtPm5yX3NlZ3M7DQo+ ID4gIAkJCXNyY19pdCArPSAyOw0KPiA+ICAJCQlkc3RfaXQgKz0gMjsNCj4gPiAgCQl9IGVsc2Ug ew0KPiA+IC0JCQl2cS0+YXN5bmNfcGVuZGluZ19pbmZvW3Nsb3RfaWR4XSA9IG51bV9idWZmZXJz Ow0KPiA+ICsJCQlwa3RzX2luZm9bc2xvdF9pZHhdLmluZm8gPSBudW1fYnVmZmVyczsNCj4gPiAg CQkJdnEtPmFzeW5jX3BrdHNfaW5mbGlnaHRfbisrOw0KPiA+ICAJCX0NCj4gPg0KPiA+IEBAIC0x NTg2LDM1ICsxNTU1LDQ2IEBAIHZpcnRpb19kZXZfcnhfYXN5bmNfc3VibWl0X3NwbGl0KHN0cnVj dA0KPiB2aXJ0aW9fbmV0ICpkZXYsDQo+ID4gIAkJCWRzdF9pb3ZlYyA9IHZlY19wb29sICsgKFZI T1NUX01BWF9BU1lOQ19WRUMgPj4NCj4gMSk7DQo+ID4gIAkJCXNyY19pdCA9IGl0X3Bvb2w7DQo+ ID4gIAkJCWRzdF9pdCA9IGl0X3Bvb2wgKyAxOw0KPiA+ICsJCQl2cS0+YXN5bmNfcGt0c19pbmZs aWdodF9uICs9IG5fcGt0czsNCj4gPg0KPiA+ICAJCQlpZiAodW5saWtlbHkobl9wa3RzIDwgKGlu dClwa3RfYnVyc3RfaWR4KSkgew0KPiA+IC0JCQkJdnEtPmFzeW5jX3BrdHNfaW5mbGlnaHRfbiAr PQ0KPiA+IC0JCQkJCW5fcGt0cyA+IDAgPyBuX3BrdHMgOiAwOw0KPiA+IC0JCQkJdmlydGlvX2Rl dl9yeF9hc3luY19zdWJtaXRfc3BsaXRfZXJyKGRldiwNCj4gPiAtCQkJCQl2cSwgcXVldWVfaWQs IGxhc3RfaWR4LCBzaGFkb3dfaWR4KTsNCj4gPiAtCQkJCXJldHVybiAwOw0KPiA+ICsJCQkJLyoN Cj4gPiArCQkJCSAqIGxvZyBlcnJvciBwYWNrZXRzIG51bWJlciBoZXJlIGFuZCBkbw0KPiBhY3R1 YWwNCj4gPiArCQkJCSAqIGVycm9yIHByb2Nlc3Npbmcgd2hlbiBhcHBsaWNhdGlvbnMgcG9sbA0K PiA+ICsJCQkJICogY29tcGxldGlvbg0KPiA+ICsJCQkJICovDQo+ID4gKwkJCQlwa3RfZXJyID0g cGt0X2J1cnN0X2lkeCAtIG5fcGt0czsNCj4gPiArCQkJCXBrdF9idXJzdF9pZHggPSAwOw0KPiA+ ICsJCQkJYnJlYWs7DQo+ID4gIAkJCX0NCj4gPg0KPiA+ICAJCQlwa3RfYnVyc3RfaWR4ID0gMDsN Cj4gPiAtCQkJdnEtPmFzeW5jX3BrdHNfaW5mbGlnaHRfbiArPSBuX3BrdHM7DQo+ID4gIAkJfQ0K PiA+ICAJfQ0KPiA+DQo+ID4gIAlpZiAocGt0X2J1cnN0X2lkeCkgew0KPiA+ICAJCW5fcGt0cyA9 IHZxLT5hc3luY19vcHMudHJhbnNmZXJfZGF0YShkZXYtPnZpZCwNCj4gPiAgCQkJCXF1ZXVlX2lk LCB0ZGVzLCAwLCBwa3RfYnVyc3RfaWR4KTsNCj4gPiAtCQlpZiAodW5saWtlbHkobl9wa3RzIDwg KGludClwa3RfYnVyc3RfaWR4KSkgew0KPiA+IC0JCQl2cS0+YXN5bmNfcGt0c19pbmZsaWdodF9u ICs9IG5fcGt0cyA+IDAgPyBuX3BrdHMgOiAwOw0KPiA+IC0JCQl2aXJ0aW9fZGV2X3J4X2FzeW5j X3N1Ym1pdF9zcGxpdF9lcnIoZGV2LCB2cSwNCj4gcXVldWVfaWQsDQo+ID4gLQkJCQlsYXN0X2lk eCwgc2hhZG93X2lkeCk7DQo+ID4gLQkJCXJldHVybiAwOw0KPiA+IC0JCX0NCj4gPiAtDQo+ID4g IAkJdnEtPmFzeW5jX3BrdHNfaW5mbGlnaHRfbiArPSBuX3BrdHM7DQo+ID4gKw0KPiA+ICsJCWlm ICh1bmxpa2VseShuX3BrdHMgPCAoaW50KXBrdF9idXJzdF9pZHgpKQ0KPiA+ICsJCQlwa3RfZXJy ID0gcGt0X2J1cnN0X2lkeCAtIG5fcGt0czsNCj4gPiAgCX0NCj4gPg0KPiA+ICAJZG9fZGF0YV9j b3B5X2VucXVldWUoZGV2LCB2cSk7DQo+ID4NCj4gPiArCWlmICh1bmxpa2VseShwa3RfZXJyKSkg ew0KPiA+ICsJCWRvIHsNCj4gPiArCQkJaWYgKHBrdHNfaW5mb1tzbG90X2lkeF0uc2VncykNCj4g PiArCQkJCXBrdF9lcnItLTsNCj4gPiArCQkJdnEtPmxhc3RfYXZhaWxfaWR4IC09IHBrdHNfaW5m b1tzbG90X2lkeF0uZGVzY3M7DQo+ID4gKwkJCXZxLT5zaGFkb3dfdXNlZF9pZHggLT0gcGt0c19p bmZvW3Nsb3RfaWR4XS5kZXNjczsNCj4gPiArCQkJdnEtPmFzeW5jX3BrdHNfaW5mbGlnaHRfbi0t Ow0KPiA+ICsJCQlzbG90X2lkeC0tOw0KPiA+ICsJCQlwa3RfaWR4LS07DQo+ID4gKwkJfSB3aGls ZSAocGt0X2Vycik7DQo+IA0KPiBUaGF0IGRvZXMgbm90IHNvdW5kIHJlYWxseSByb2J1c3QuDQo+ IE1heWJlIHlvdSBjb3VsZCBleGl0IGFsc28gb24gc2xvdF9pZHggPCAwIHRvIGF2b2lkIG91dCBv ZiByYW5nZQ0KPiBhY2Nlc3Nlcz8NCj4gDQo+IH0gd2hpbGUgKHBrdF9lcnIgJiYgc2xvdF9pZHgg Pj0gMCkNCj4NCnNsb3RfaWR4IGlzIHVuc2lnbmVkIHR5cGUgYW5kIGl0J3MgZGVzaWduIHRvIGJl IHdvcmtpbmcgbGlrZSBhIHJpbmcgaW5kZXguIEJ1dCBJIGRvIG5lZWQgdG8gc2VuZCBhIG5ldyBw YXRjaCB0byBoYW5kbGUgdGhlIGNhc2UgdGhhdCAic2xvdF9pZHg9PTAiLg0KRm9yIHRoZSByb2J1 c3QsIEkgY2FuIGFkZCBhIGNoZWNrOiAicGt0X2lkeCA+IDAiLg0KDQpUaGFua3MsDQoNClBhdHJp Y2sNCg0K