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 C8810A0A0A; Fri, 22 Jan 2021 10:07:03 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id ABEA6140DD3; Fri, 22 Jan 2021 10:07:03 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 51A52140DC6 for ; Fri, 22 Jan 2021 10:07:01 +0100 (CET) IronPort-SDR: BEUZRj9XDFp7cjdDxyNm0XkZCYYdbcVrKdFH3J7jgb+tyoO6ZNMfRm/G5QMdAO/UOsEAtT1f1M 3by9yUgTPkeA== X-IronPort-AV: E=McAfee;i="6000,8403,9871"; a="240962523" X-IronPort-AV: E=Sophos;i="5.79,366,1602572400"; d="scan'208";a="240962523" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Jan 2021 01:07:00 -0800 IronPort-SDR: zi9rNJqB7qWCI/sHQQbBTrRJJsvQhwly1JUSLcMwIwj2Asg5b+zT8ffYHpfdonHUDp8fRVEnL/ PEUjZdT9hCxw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,366,1602572400"; d="scan'208";a="392245790" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga007.jf.intel.com with ESMTP; 22 Jan 2021 01:07:00 -0800 Received: from orsmsx607.amr.corp.intel.com (10.22.229.20) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 22 Jan 2021 01:07:00 -0800 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX607.amr.corp.intel.com (10.22.229.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 22 Jan 2021 01:06:59 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx603.amr.corp.intel.com (10.22.229.16) 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, 22 Jan 2021 01:06:59 -0800 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.177) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Fri, 22 Jan 2021 01:06:59 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GXvxgkcEOnrMrnrrj0DVS7UuQUWoxpGuiCMm2Lm01Ys6J7vpMX3pg968YgCozr3aYtE3z6+e1TTkEaaITiobu/Eh+OpcHgWSIi7rwfHExrUc4ybN9++rYg68Pd3dw4ZP6NtEDWysIZ/4m1I8NRaS0FNX/oeaDjY/tiURKXmwZajcFb3fMv8lrQM26eIbknO+NCAlQWBgIccsxc+PrOSWk/SosyGR1yC658URV5ayIH3/o4Xoe3NEer+ffDz2TB6ARnapC8m06vK62TNAd1+YfKwywVgWyFZOPJOuy2B2ZneKYmHR4xYAFm/hY6d04N0LO4tYQeC46DxsltRucFQS3g== 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=LQ4UFxAdy4jQ7wj5CllMaSqPFCnbQb38Xe8OgQOzz+w=; b=V9/NXtBuV2/PqWZSxULdRaRueklGwu7R5cAj+UClsPmz/yGkXYd6RKaDmKVI9ykJQM4UbFIvONr3CubVHfcCKQ3YxI7tdauZ4yZi97YSi2gOLOijwAU6aYHw3H/3XT5mk4DkwFRoQXhFF6MwF7AbLQ9ouJaqeb8DEIf1rI5DYjpi55AEBsgxuL5gdJmkkAoxVNQRnhWxozkIE7KrTaXpOGpStd1S6gPjuFsfaXzIpJ73MPwSA1jR87tgi2/CMsLxGqQaocKYs750QGoiID+66UpUh+1Boh7VGZWOVI46H00VB9K6zab+LZCHBCpulwt6NlZkpsXfbaIDjXEug1UaFw== 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=LQ4UFxAdy4jQ7wj5CllMaSqPFCnbQb38Xe8OgQOzz+w=; b=wn6t55m3eVZ9KQmz3BHRA7sCMVnsb3KU1TTnhdvBfNpKNE3VdBfavk9Y+p+GFDJSEF48fqi5nXX7QkBkORiEd5VESk3m6zMSQGk6/XUeFpXkkVWtsefpNIzCmI+WZbWNh0tA4b4aM2U+9v0V4y/dD3FQO3XPlnlevgjHisKy+ZM= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3728.namprd11.prod.outlook.com (2603:10b6:208:f4::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.11; Fri, 22 Jan 2021 09:06:57 +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.3763.014; Fri, 22 Jan 2021 09:06:57 +0000 From: "Xia, Chenbo" To: Maxime Coquelin , "dev@dpdk.org" , "olivier.matz@6wind.com" , "amorenoz@redhat.com" , "david.marchand@redhat.com" Thread-Topic: [PATCH v2 42/44] net/virtio: move Vhost-vDPA data to its backend Thread-Index: AQHW7qoVU6vhJR6WikaNVtD8LbYoPaozXHug Date: Fri, 22 Jan 2021 09:06:57 +0000 Message-ID: References: <20210119212507.1043636-1-maxime.coquelin@redhat.com> <20210119212507.1043636-43-maxime.coquelin@redhat.com> In-Reply-To: <20210119212507.1043636-43-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: a429b656-5009-4042-b8d8-08d8beb5120f x-ms-traffictypediagnostic: MN2PR11MB3728: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:47; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: dSA46BcVv9Nm574HFFdANT4YJl1LiFv2LBE8pSYwXd6Ihv+WXsLW1F8/ZX9gbyF0+5FKcIJkkpTUggNI8Z5AAd0RV9wN+3SOERUaflLp6VFw7MHZciCA2XFt4/ESMgSAb1G73oGGJli+Q1V1fNbGZIxO8vKFxR4/3yPKjAqsE2+HV+C3i0xOoCGYRfJrFQRL7fYN0LnkerlZmtTSK0eKwlf/L27m7Tnx8qXzzz83qm+lXSwkoryYZZNdoOMRt+4c0vU5Vaq7vopE3rebwIiB30p9f/LfDH9WqJ1mh4nzGVLLIBKP8ASYy8UJYrsos/32s46gqXTWPRiRczNZWwuXmIiWO/OlRa1Bd5vnLqlsJycyIUhiZpX6Long7CdLX57p 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)(366004)(39860400002)(396003)(136003)(346002)(7696005)(30864003)(110136005)(2906002)(478600001)(316002)(52536014)(8676002)(66556008)(76116006)(55016002)(66446008)(9686003)(71200400001)(53546011)(5660300002)(6506007)(8936002)(66476007)(86362001)(26005)(66946007)(186003)(33656002)(83380400001)(64756008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?dysvU0REWjhqNzRiU3VQWGs1Rk50eXExaEdHOUNkTXArNHhHQ2RGU2FiQjJS?= =?utf-8?B?YytVMHdGcDRyZ1dhazQveXFDUGhOVHlIdkdtMEI5VFRjdytXN2hnaWlnTUxI?= =?utf-8?B?bUdRc0FjN1BGSEpzZHFPRTVuM3hscG5teEZoeElaVFVIcjZkZjlncXNJeWx4?= =?utf-8?B?dkZZbmwyZStrQkNtVnVzVTJhMUZQY0Q5ZEQxTitmV0VXMnpOdkJSYmJjL3V6?= =?utf-8?B?bTlMb1I3TVJhaHNYVW5Sb2o3enFqL2c5UjdWbEtpaFRjSFdIT0cyb003bjlS?= =?utf-8?B?TFZ4VTVaMmdOMm1vSmRVSk9hU2FmcXRRY09RR2M4WFpBYzZEY2dYcjhsNHRy?= =?utf-8?B?eTdlUDdRRThCUVdPWkg1QVI5N09yMVQzRkRzYnhlWnU5dXprR05Wd244bHh3?= =?utf-8?B?WWRkQmxqL2sxT2xKdjNud09taGVyU3RwOW90dlJXTU5pV2pTbDRlVlhYMDVB?= =?utf-8?B?cGJPdm1mRHlNVXBYdVNpaVdWMW5pMHo4WkJKSTYzZE9nayt6VzlmWTZxTkl0?= =?utf-8?B?MXlZazRLVklhcHlSL0htZUQ4TEJXTzRKV09XNVkvY1FyYkMvczRlVGxtY1J4?= =?utf-8?B?dHI3ZjBFMUxnSVVtSjRoQXZSQ08vT29ub0xwSllBM0QzWW0vdDZHU2l0VTQ4?= =?utf-8?B?WjFpN3hGMnIzSWw4MmxFNWhOTGJSQUpsTS9KVjFJd3JRSFB4RW42SHM2TEtQ?= =?utf-8?B?STJuUng2cjYvS0F4b08zaGpGOHZGcVVMNXE3NTdXU2o1WkRkRWVUcUhmWHkx?= =?utf-8?B?OFN1SFF2dDVPL1lqRUd6OFpNU1Q0WmFQQ2JaWVNOOFVHUkJYUHZwNWJNd0ZG?= =?utf-8?B?REQ1VEhFSWxnVXVacElCVlpaRHNRQ0VTV3pnMjN3WVdySlNaaTAxNVo1cG41?= =?utf-8?B?N1B2ZVRJTCszcTkrWXBEUjNCMnJMR1Vwdmg3YXZmL0NHMnZucjh4elNrMVFy?= =?utf-8?B?enZRMGx5QnFTeUNmYzZXMXU5ZFlFVHdGMm5vWU1CN01mRVBwTlphbWxTMFJG?= =?utf-8?B?QjB1cjhySmgvdkVBblpFSzE0MmxOYkdUMTR3Z3JXZER6WnlNQW10MnZoYm5K?= =?utf-8?B?dVFuNnY2bUhXL2VjTG5YS2hDbTVEcG0yVHQwaU13ZE1aMGRJUlBwVXFYdWYr?= =?utf-8?B?SWJUa3pkWHFVOWZmUGxldEU0bEYyRFl0ZURGQnFQYUNWcTVGYndrNGZsWXpY?= =?utf-8?B?dkNYaGN0TU1Gd0NYTEFBZG1yOWVrdUlYZDhjcEdGSVM3MjRIWGE0cjRscFo3?= =?utf-8?B?dmtNUUFPWHBDczB1TzRBNVBPTk5KWXhFMi9PQUpvTDdyS2dUdU1LbU10alE3?= =?utf-8?Q?DZuLmCJqtYeI7hbUxTddkACcyWhe+5Fvra?= 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: a429b656-5009-4042-b8d8-08d8beb5120f X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jan 2021 09:06:57.3054 (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: p8b9MIKmdiF9fC0esfjmwJxN+/abciCWZuyLOV6Ivm9BKLs8MGfMGsQsd9TJNrUZLRRrWu2gE36lDxUZBkuX2A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3728 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v2 42/44] net/virtio: move Vhost-vDPA data to its backend 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" SGkgTWF4aW1lLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1heGlt ZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+IFNlbnQ6IFdlZG5lc2Rh eSwgSmFudWFyeSAyMCwgMjAyMSA1OjI1IEFNDQo+IFRvOiBkZXZAZHBkay5vcmc7IFhpYSwgQ2hl bmJvIDxjaGVuYm8ueGlhQGludGVsLmNvbT47IG9saXZpZXIubWF0ekA2d2luZC5jb207DQo+IGFt b3Jlbm96QHJlZGhhdC5jb207IGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20NCj4gQ2M6IE1heGlt ZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+IFN1YmplY3Q6IFtQQVRD SCB2MiA0Mi80NF0gbmV0L3ZpcnRpbzogbW92ZSBWaG9zdC12RFBBIGRhdGEgdG8gaXRzIGJhY2tl bmQNCj4gDQo+IEFzIGRvbmUgZWFybGllciBmb3IgVmhvc3QtdXNlciBhbmQgVmhvc3Qta2VybmVs LCB0aGlzDQo+IHBhdGNoIG1vdmVzIHRoZSBWaG9zdC12RFBBIHNwZWNpZmljIGRhdGEgdG8gaXRz IGJhY2tlbmQNCj4gZmlsZS4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE1heGltZSBDb3F1ZWxpbiA8 bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+IC0tLQ0KPiAgZHJpdmVycy9uZXQvdmlydGlv L3ZpcnRpb191c2VyL3Zob3N0X3ZkcGEuYyAgIHwgMTIwICsrKysrKysrKysrKystLS0tLQ0KPiAg Li4uL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmlydGlvX3VzZXJfZGV2LmggIHwgICA0IC0NCj4g IDIgZmlsZXMgY2hhbmdlZCwgODkgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pDQo+IA0K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X3ZkcGEu Yw0KPiBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF92ZHBhLmMNCj4gaW5k ZXggNWUzNzc4YjY4Mi4uZTJkNmQzNTA0ZCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvdmly dGlvL3ZpcnRpb191c2VyL3Zob3N0X3ZkcGEuYw0KPiArKysgYi9kcml2ZXJzL25ldC92aXJ0aW8v dmlydGlvX3VzZXIvdmhvc3RfdmRwYS5jDQo+IEBAIC0xMyw2ICsxMywxMSBAQA0KPiAgI2luY2x1 ZGUgInZob3N0LmgiDQo+ICAjaW5jbHVkZSAidmlydGlvX3VzZXJfZGV2LmgiDQo+IA0KPiArc3Ry dWN0IHZob3N0X3ZkcGFfZGF0YSB7DQo+ICsJaW50IHZob3N0ZmQ7DQo+ICsJdWludDY0X3QgcHJv dG9jb2xfZmVhdHVyZXM7DQo+ICt9Ow0KPiArDQo+ICAjZGVmaW5lIFZIT1NUX1ZEUEFfU1VQUE9S VEVEX0JBQ0tFTkRfRkVBVFVSRVMJCVwNCj4gIAkoMVVMTCA8PCBWSE9TVF9CQUNLRU5EX0ZfSU9U TEJfTVNHX1YyCXwJXA0KPiAgCTFVTEwgPDwgVkhPU1RfQkFDS0VORF9GX0lPVExCX0JBVENIKQ0K PiBAQCAtODgsMjcgKzkzLDM0IEBAIHZob3N0X3ZkcGFfaW9jdGwoaW50IGZkLCB1aW50NjRfdCBy ZXF1ZXN0LCB2b2lkICphcmcpDQo+ICBzdGF0aWMgaW50DQo+ICB2aG9zdF92ZHBhX3NldF9vd25l cihzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYpDQo+ICB7DQo+IC0JcmV0dXJuIHZob3N0X3Zk cGFfaW9jdGwoZGV2LT52aG9zdGZkLCBWSE9TVF9TRVRfT1dORVIsIE5VTEwpOw0KPiArCXN0cnVj dCB2aG9zdF92ZHBhX2RhdGEgKmRhdGEgPSBkZXYtPmJhY2tlbmRfZGF0YTsNCj4gKw0KPiArCXJl dHVybiB2aG9zdF92ZHBhX2lvY3RsKGRhdGEtPnZob3N0ZmQsIFZIT1NUX1NFVF9PV05FUiwgTlVM TCk7DQo+ICB9DQo+IA0KPiAgc3RhdGljIGludA0KPiAgdmhvc3RfdmRwYV9nZXRfcHJvdG9jb2xf ZmVhdHVyZXMoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LCB1aW50NjRfdA0KPiAqZmVhdHVy ZXMpDQo+ICB7DQo+IC0JcmV0dXJuIHZob3N0X3ZkcGFfaW9jdGwoZGV2LT52aG9zdGZkLCBWSE9T VF9HRVRfQkFDS0VORF9GRUFUVVJFUywNCj4gZmVhdHVyZXMpOw0KPiArCXN0cnVjdCB2aG9zdF92 ZHBhX2RhdGEgKmRhdGEgPSBkZXYtPmJhY2tlbmRfZGF0YTsNCj4gKw0KPiArCXJldHVybiB2aG9z dF92ZHBhX2lvY3RsKGRhdGEtPnZob3N0ZmQsIFZIT1NUX0dFVF9CQUNLRU5EX0ZFQVRVUkVTLA0K PiBmZWF0dXJlcyk7DQo+ICB9DQo+IA0KPiAgc3RhdGljIGludA0KPiAgdmhvc3RfdmRwYV9zZXRf cHJvdG9jb2xfZmVhdHVyZXMoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LCB1aW50NjRfdA0K PiBmZWF0dXJlcykNCj4gIHsNCj4gLQlyZXR1cm4gdmhvc3RfdmRwYV9pb2N0bChkZXYtPnZob3N0 ZmQsIFZIT1NUX1NFVF9CQUNLRU5EX0ZFQVRVUkVTLA0KPiAmZmVhdHVyZXMpOw0KPiArCXN0cnVj dCB2aG9zdF92ZHBhX2RhdGEgKmRhdGEgPSBkZXYtPmJhY2tlbmRfZGF0YTsNCj4gKw0KPiArCXJl dHVybiB2aG9zdF92ZHBhX2lvY3RsKGRhdGEtPnZob3N0ZmQsIFZIT1NUX1NFVF9CQUNLRU5EX0ZF QVRVUkVTLA0KPiAmZmVhdHVyZXMpOw0KPiAgfQ0KPiANCj4gIHN0YXRpYyBpbnQNCj4gIHZob3N0 X3ZkcGFfZ2V0X2ZlYXR1cmVzKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgdWludDY0X3Qg KmZlYXR1cmVzKQ0KPiAgew0KPiArCXN0cnVjdCB2aG9zdF92ZHBhX2RhdGEgKmRhdGEgPSBkZXYt PmJhY2tlbmRfZGF0YTsNCj4gIAlpbnQgcmV0Ow0KPiANCj4gLQlyZXQgPSB2aG9zdF92ZHBhX2lv Y3RsKGRldi0+dmhvc3RmZCwgVkhPU1RfR0VUX0ZFQVRVUkVTLCBmZWF0dXJlcyk7DQo+ICsJcmV0 ID0gdmhvc3RfdmRwYV9pb2N0bChkYXRhLT52aG9zdGZkLCBWSE9TVF9HRVRfRkVBVFVSRVMsIGZl YXR1cmVzKTsNCj4gIAlpZiAocmV0KSB7DQo+ICAJCVBNRF9EUlZfTE9HKEVSUiwgIkZhaWxlZCB0 byBnZXQgZmVhdHVyZXMiKTsNCj4gIAkJcmV0dXJuIC0xOw0KPiBAQCAtMTE4LDE1ICsxMzAsMTUg QEAgdmhvc3RfdmRwYV9nZXRfZmVhdHVyZXMoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LA0K PiB1aW50NjRfdCAqZmVhdHVyZXMpDQo+ICAJKmZlYXR1cmVzICY9IH4oMVVMTCA8PCBWSVJUSU9f TkVUX0ZfTVEpOw0KPiANCj4gIAkvKiBOZWdvdGlhdGVkIHZEUEEgYmFja2VuZCBmZWF0dXJlcyAq Lw0KPiAtCXJldCA9IHZob3N0X3ZkcGFfZ2V0X3Byb3RvY29sX2ZlYXR1cmVzKGRldiwgJmRldi0+ cHJvdG9jb2xfZmVhdHVyZXMpOw0KPiArCXJldCA9IHZob3N0X3ZkcGFfZ2V0X3Byb3RvY29sX2Zl YXR1cmVzKGRldiwgJmRhdGEtPnByb3RvY29sX2ZlYXR1cmVzKTsNCj4gIAlpZiAocmV0IDwgMCkg ew0KPiAgCQlQTURfRFJWX0xPRyhFUlIsICJGYWlsZWQgdG8gZ2V0IGJhY2tlbmQgZmVhdHVyZXMi KTsNCj4gIAkJcmV0dXJuIC0xOw0KPiAgCX0NCj4gDQo+IC0JZGV2LT5wcm90b2NvbF9mZWF0dXJl cyAmPSBWSE9TVF9WRFBBX1NVUFBPUlRFRF9CQUNLRU5EX0ZFQVRVUkVTOw0KPiArCWRhdGEtPnBy b3RvY29sX2ZlYXR1cmVzICY9IFZIT1NUX1ZEUEFfU1VQUE9SVEVEX0JBQ0tFTkRfRkVBVFVSRVM7 DQo+IA0KPiAtCXJldCA9IHZob3N0X3ZkcGFfc2V0X3Byb3RvY29sX2ZlYXR1cmVzKGRldiwgZGV2 LT5wcm90b2NvbF9mZWF0dXJlcyk7DQo+ICsJcmV0ID0gdmhvc3RfdmRwYV9zZXRfcHJvdG9jb2xf ZmVhdHVyZXMoZGV2LCBkYXRhLT5wcm90b2NvbF9mZWF0dXJlcyk7DQo+ICAJaWYgKHJldCA8IDAp IHsNCj4gIAkJUE1EX0RSVl9MT0coRVJSLCAiRmFpbGVkIHRvIHNldCBiYWNrZW5kIGZlYXR1cmVz Iik7DQo+ICAJCXJldHVybiAtMTsNCj4gQEAgLTEzOCwyMSArMTUwLDI0IEBAIHZob3N0X3ZkcGFf Z2V0X2ZlYXR1cmVzKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwNCj4gdWludDY0X3QgKmZl YXR1cmVzKQ0KPiAgc3RhdGljIGludA0KPiAgdmhvc3RfdmRwYV9zZXRfZmVhdHVyZXMoc3RydWN0 IHZpcnRpb191c2VyX2RldiAqZGV2LCB1aW50NjRfdCBmZWF0dXJlcykNCj4gIHsNCj4gKwlzdHJ1 Y3Qgdmhvc3RfdmRwYV9kYXRhICpkYXRhID0gZGV2LT5iYWNrZW5kX2RhdGE7DQo+ICsNCj4gIAkv KiBXT1JLQVJPVU5EICovDQo+ICAJZmVhdHVyZXMgfD0gMVVMTCA8PCBWSVJUSU9fRl9JT01NVV9Q TEFURk9STTsNCj4gDQo+IC0JcmV0dXJuIHZob3N0X3ZkcGFfaW9jdGwoZGV2LT52aG9zdGZkLCBW SE9TVF9TRVRfRkVBVFVSRVMsICZmZWF0dXJlcyk7DQo+ICsJcmV0dXJuIHZob3N0X3ZkcGFfaW9j dGwoZGF0YS0+dmhvc3RmZCwgVkhPU1RfU0VUX0ZFQVRVUkVTLCAmZmVhdHVyZXMpOw0KPiAgfQ0K PiANCj4gIHN0YXRpYyBpbnQNCj4gIHZob3N0X3ZkcGFfaW90bGJfYmF0Y2hfYmVnaW4oc3RydWN0 IHZpcnRpb191c2VyX2RldiAqZGV2KQ0KPiAgew0KPiArCXN0cnVjdCB2aG9zdF92ZHBhX2RhdGEg KmRhdGEgPSBkZXYtPmJhY2tlbmRfZGF0YTsNCj4gIAlzdHJ1Y3Qgdmhvc3RfbXNnIG1zZyA9IHt9 Ow0KPiANCj4gLQlpZiAoIShkZXYtPnByb3RvY29sX2ZlYXR1cmVzICYgKDFVTEwgPDwgVkhPU1Rf QkFDS0VORF9GX0lPVExCX0JBVENIKSkpDQo+ICsJaWYgKCEoZGF0YS0+cHJvdG9jb2xfZmVhdHVy ZXMgJiAoMVVMTCA8PCBWSE9TVF9CQUNLRU5EX0ZfSU9UTEJfQkFUQ0gpKSkNCj4gIAkJcmV0dXJu IDA7DQo+IA0KPiAtCWlmICghKGRldi0+cHJvdG9jb2xfZmVhdHVyZXMgJiAoMVVMTCA8PCBWSE9T VF9CQUNLRU5EX0ZfSU9UTEJfTVNHX1YyKSkpDQo+IHsNCj4gKwlpZiAoIShkYXRhLT5wcm90b2Nv bF9mZWF0dXJlcyAmICgxVUxMIDw8IFZIT1NUX0JBQ0tFTkRfRl9JT1RMQl9NU0dfVjIpKSkNCj4g ew0KPiAgCQlQTURfRFJWX0xPRyhFUlIsICJJT1RMQl9NU0dfVjIgbm90IHN1cHBvcnRlZCBieSB0 aGUgYmFja2VuZC4iKTsNCj4gIAkJcmV0dXJuIC0xOw0KPiAgCX0NCj4gQEAgLTE2MCw3ICsxNzUs NyBAQCB2aG9zdF92ZHBhX2lvdGxiX2JhdGNoX2JlZ2luKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYg KmRldikNCj4gIAltc2cudHlwZSA9IFZIT1NUX0lPVExCX01TR19WMjsNCj4gIAltc2cuaW90bGIu dHlwZSA9IFZIT1NUX0lPVExCX0JBVENIX0JFR0lOOw0KPiANCj4gLQlpZiAod3JpdGUoZGV2LT52 aG9zdGZkLCAmbXNnLCBzaXplb2YobXNnKSkgIT0gc2l6ZW9mKG1zZykpIHsNCj4gKwlpZiAod3Jp dGUoZGF0YS0+dmhvc3RmZCwgJm1zZywgc2l6ZW9mKG1zZykpICE9IHNpemVvZihtc2cpKSB7DQo+ ICAJCVBNRF9EUlZfTE9HKEVSUiwgIkZhaWxlZCB0byBzZW5kIElPVExCIGJhdGNoIGJlZ2luICgl cykiLA0KPiAgCQkJCXN0cmVycm9yKGVycm5vKSk7DQo+ICAJCXJldHVybiAtMTsNCj4gQEAgLTE3 MiwxMiArMTg3LDEzIEBAIHZob3N0X3ZkcGFfaW90bGJfYmF0Y2hfYmVnaW4oc3RydWN0IHZpcnRp b191c2VyX2RldiAqZGV2KQ0KPiAgc3RhdGljIGludA0KPiAgdmhvc3RfdmRwYV9pb3RsYl9iYXRj aF9lbmQoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2KQ0KPiAgew0KPiArCXN0cnVjdCB2aG9z dF92ZHBhX2RhdGEgKmRhdGEgPSBkZXYtPmJhY2tlbmRfZGF0YTsNCj4gIAlzdHJ1Y3Qgdmhvc3Rf bXNnIG1zZyA9IHt9Ow0KPiANCj4gLQlpZiAoIShkZXYtPnByb3RvY29sX2ZlYXR1cmVzICYgKDFV TEwgPDwgVkhPU1RfQkFDS0VORF9GX0lPVExCX0JBVENIKSkpDQo+ICsJaWYgKCEoZGF0YS0+cHJv dG9jb2xfZmVhdHVyZXMgJiAoMVVMTCA8PCBWSE9TVF9CQUNLRU5EX0ZfSU9UTEJfQkFUQ0gpKSkN Cj4gIAkJcmV0dXJuIDA7DQo+IA0KPiAtCWlmICghKGRldi0+cHJvdG9jb2xfZmVhdHVyZXMgJiAo MVVMTCA8PCBWSE9TVF9CQUNLRU5EX0ZfSU9UTEJfTVNHX1YyKSkpDQo+IHsNCj4gKwlpZiAoIShk YXRhLT5wcm90b2NvbF9mZWF0dXJlcyAmICgxVUxMIDw8IFZIT1NUX0JBQ0tFTkRfRl9JT1RMQl9N U0dfVjIpKSkNCj4gew0KPiAgCQlQTURfRFJWX0xPRyhFUlIsICJJT1RMQl9NU0dfVjIgbm90IHN1 cHBvcnRlZCBieSB0aGUgYmFja2VuZC4iKTsNCj4gIAkJcmV0dXJuIC0xOw0KPiAgCX0NCj4gQEAg LTE4NSw3ICsyMDEsNyBAQCB2aG9zdF92ZHBhX2lvdGxiX2JhdGNoX2VuZChzdHJ1Y3QgdmlydGlv X3VzZXJfZGV2ICpkZXYpDQo+ICAJbXNnLnR5cGUgPSBWSE9TVF9JT1RMQl9NU0dfVjI7DQo+ICAJ bXNnLmlvdGxiLnR5cGUgPSBWSE9TVF9JT1RMQl9CQVRDSF9FTkQ7DQo+IA0KPiAtCWlmICh3cml0 ZShkZXYtPnZob3N0ZmQsICZtc2csIHNpemVvZihtc2cpKSAhPSBzaXplb2YobXNnKSkgew0KPiAr CWlmICh3cml0ZShkYXRhLT52aG9zdGZkLCAmbXNnLCBzaXplb2YobXNnKSkgIT0gc2l6ZW9mKG1z ZykpIHsNCj4gIAkJUE1EX0RSVl9MT0coRVJSLCAiRmFpbGVkIHRvIHNlbmQgSU9UTEIgYmF0Y2gg ZW5kICglcykiLA0KPiAgCQkJCXN0cmVycm9yKGVycm5vKSk7DQo+ICAJCXJldHVybiAtMTsNCj4g QEAgLTE5OCw5ICsyMTQsMTAgQEAgc3RhdGljIGludA0KPiAgdmhvc3RfdmRwYV9kbWFfbWFwKHN0 cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgdm9pZCAqYWRkciwNCj4gIAkJCQkgIHVpbnQ2NF90 IGlvdmEsIHNpemVfdCBsZW4pDQo+ICB7DQo+ICsJc3RydWN0IHZob3N0X3ZkcGFfZGF0YSAqZGF0 YSA9IGRldi0+YmFja2VuZF9kYXRhOw0KPiAgCXN0cnVjdCB2aG9zdF9tc2cgbXNnID0ge307DQo+ IA0KPiAtCWlmICghKGRldi0+cHJvdG9jb2xfZmVhdHVyZXMgJiAoMVVMTCA8PCBWSE9TVF9CQUNL RU5EX0ZfSU9UTEJfTVNHX1YyKSkpDQo+IHsNCj4gKwlpZiAoIShkYXRhLT5wcm90b2NvbF9mZWF0 dXJlcyAmICgxVUxMIDw8IFZIT1NUX0JBQ0tFTkRfRl9JT1RMQl9NU0dfVjIpKSkNCj4gew0KPiAg CQlQTURfRFJWX0xPRyhFUlIsICJJT1RMQl9NU0dfVjIgbm90IHN1cHBvcnRlZCBieSB0aGUgYmFj a2VuZC4iKTsNCj4gIAkJcmV0dXJuIC0xOw0KPiAgCX0NCj4gQEAgLTIxNSw3ICsyMzIsNyBAQCB2 aG9zdF92ZHBhX2RtYV9tYXAoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LCB2b2lkICphZGRy LA0KPiAgCVBNRF9EUlZfTE9HKERFQlVHLCAiJXM6IGlvdmE6IDB4JSIgUFJJeDY0ICIsIGFkZHI6 ICVwLCBsZW46IDB4JXp4IiwNCj4gIAkJCV9fZnVuY19fLCBpb3ZhLCBhZGRyLCBsZW4pOw0KPiAN Cj4gLQlpZiAod3JpdGUoZGV2LT52aG9zdGZkLCAmbXNnLCBzaXplb2YobXNnKSkgIT0gc2l6ZW9m KG1zZykpIHsNCj4gKwlpZiAod3JpdGUoZGF0YS0+dmhvc3RmZCwgJm1zZywgc2l6ZW9mKG1zZykp ICE9IHNpemVvZihtc2cpKSB7DQo+ICAJCVBNRF9EUlZfTE9HKEVSUiwgIkZhaWxlZCB0byBzZW5k IElPVExCIHVwZGF0ZSAoJXMpIiwNCj4gIAkJCQlzdHJlcnJvcihlcnJubykpOw0KPiAgCQlyZXR1 cm4gLTE7DQo+IEBAIC0yMjgsOSArMjQ1LDEwIEBAIHN0YXRpYyBpbnQNCj4gIHZob3N0X3ZkcGFf ZG1hX3VubWFwKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgX19ydGVfdW51c2VkIHZvaWQg KmFkZHIsDQo+ICAJCQkJICB1aW50NjRfdCBpb3ZhLCBzaXplX3QgbGVuKQ0KPiAgew0KPiArCXN0 cnVjdCB2aG9zdF92ZHBhX2RhdGEgKmRhdGEgPSBkZXYtPmJhY2tlbmRfZGF0YTsNCj4gIAlzdHJ1 Y3Qgdmhvc3RfbXNnIG1zZyA9IHt9Ow0KPiANCj4gLQlpZiAoIShkZXYtPnByb3RvY29sX2ZlYXR1 cmVzICYgKDFVTEwgPDwgVkhPU1RfQkFDS0VORF9GX0lPVExCX01TR19WMikpKQ0KPiB7DQo+ICsJ aWYgKCEoZGF0YS0+cHJvdG9jb2xfZmVhdHVyZXMgJiAoMVVMTCA8PCBWSE9TVF9CQUNLRU5EX0Zf SU9UTEJfTVNHX1YyKSkpDQo+IHsNCj4gIAkJUE1EX0RSVl9MT0coRVJSLCAiSU9UTEJfTVNHX1Yy IG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGJhY2tlbmQuIik7DQo+ICAJCXJldHVybiAtMTsNCj4gIAl9 DQo+IEBAIC0yNDMsNyArMjYxLDcgQEAgdmhvc3RfdmRwYV9kbWFfdW5tYXAoc3RydWN0IHZpcnRp b191c2VyX2RldiAqZGV2LA0KPiBfX3J0ZV91bnVzZWQgdm9pZCAqYWRkciwNCj4gIAlQTURfRFJW X0xPRyhERUJVRywgIiVzOiBpb3ZhOiAweCUiIFBSSXg2NCAiLCBsZW46IDB4JXp4IiwNCj4gIAkJ CV9fZnVuY19fLCBpb3ZhLCBsZW4pOw0KPiANCj4gLQlpZiAod3JpdGUoZGV2LT52aG9zdGZkLCAm bXNnLCBzaXplb2YobXNnKSkgIT0gc2l6ZW9mKG1zZykpIHsNCj4gKwlpZiAod3JpdGUoZGF0YS0+ dmhvc3RmZCwgJm1zZywgc2l6ZW9mKG1zZykpICE9IHNpemVvZihtc2cpKSB7DQo+ICAJCVBNRF9E UlZfTE9HKEVSUiwgIkZhaWxlZCB0byBzZW5kIElPVExCIGludmFsaWRhdGUgKCVzKSIsDQo+ICAJ CQkJc3RyZXJyb3IoZXJybm8pKTsNCj4gIAkJcmV0dXJuIC0xOw0KPiBAQCAtMzUzLDU1ICszNzEs NzMgQEAgdmhvc3RfdmRwYV9zZXRfbWVtb3J5X3RhYmxlKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYg KmRldikNCj4gIHN0YXRpYyBpbnQNCj4gIHZob3N0X3ZkcGFfc2V0X3ZyaW5nX2VuYWJsZShzdHJ1 Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIHN0cnVjdA0KPiB2aG9zdF92cmluZ19zdGF0ZSAqc3Rh dGUpDQo+ICB7DQo+IC0JcmV0dXJuIHZob3N0X3ZkcGFfaW9jdGwoZGV2LT52aG9zdGZkLCBWSE9T VF9WRFBBX1NFVF9WUklOR19FTkFCTEUsDQo+IHN0YXRlKTsNCj4gKwlzdHJ1Y3Qgdmhvc3RfdmRw YV9kYXRhICpkYXRhID0gZGV2LT5iYWNrZW5kX2RhdGE7DQo+ICsNCj4gKwlyZXR1cm4gdmhvc3Rf dmRwYV9pb2N0bChkYXRhLT52aG9zdGZkLCBWSE9TVF9WRFBBX1NFVF9WUklOR19FTkFCTEUsDQo+ IHN0YXRlKTsNCj4gIH0NCj4gDQo+ICBzdGF0aWMgaW50DQo+ICB2aG9zdF92ZHBhX3NldF92cmlu Z19udW0oc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LCBzdHJ1Y3QNCj4gdmhvc3RfdnJpbmdf c3RhdGUgKnN0YXRlKQ0KPiAgew0KPiAtCXJldHVybiB2aG9zdF92ZHBhX2lvY3RsKGRldi0+dmhv c3RmZCwgVkhPU1RfU0VUX1ZSSU5HX05VTSwgc3RhdGUpOw0KPiArCXN0cnVjdCB2aG9zdF92ZHBh X2RhdGEgKmRhdGEgPSBkZXYtPmJhY2tlbmRfZGF0YTsNCj4gKw0KPiArCXJldHVybiB2aG9zdF92 ZHBhX2lvY3RsKGRhdGEtPnZob3N0ZmQsIFZIT1NUX1NFVF9WUklOR19OVU0sIHN0YXRlKTsNCj4g IH0NCj4gDQo+ICBzdGF0aWMgaW50DQo+ICB2aG9zdF92ZHBhX3NldF92cmluZ19iYXNlKHN0cnVj dCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwgc3RydWN0DQo+IHZob3N0X3ZyaW5nX3N0YXRlICpzdGF0 ZSkNCj4gIHsNCj4gLQlyZXR1cm4gdmhvc3RfdmRwYV9pb2N0bChkZXYtPnZob3N0ZmQsIFZIT1NU X1NFVF9WUklOR19CQVNFLCBzdGF0ZSk7DQo+ICsJc3RydWN0IHZob3N0X3ZkcGFfZGF0YSAqZGF0 YSA9IGRldi0+YmFja2VuZF9kYXRhOw0KPiArDQo+ICsJcmV0dXJuIHZob3N0X3ZkcGFfaW9jdGwo ZGF0YS0+dmhvc3RmZCwgVkhPU1RfU0VUX1ZSSU5HX0JBU0UsIHN0YXRlKTsNCj4gIH0NCj4gDQo+ ICBzdGF0aWMgaW50DQo+ICB2aG9zdF92ZHBhX2dldF92cmluZ19iYXNlKHN0cnVjdCB2aXJ0aW9f dXNlcl9kZXYgKmRldiwgc3RydWN0DQo+IHZob3N0X3ZyaW5nX3N0YXRlICpzdGF0ZSkNCj4gIHsN Cj4gLQlyZXR1cm4gdmhvc3RfdmRwYV9pb2N0bChkZXYtPnZob3N0ZmQsIFZIT1NUX0dFVF9WUklO R19CQVNFLCBzdGF0ZSk7DQo+ICsJc3RydWN0IHZob3N0X3ZkcGFfZGF0YSAqZGF0YSA9IGRldi0+ YmFja2VuZF9kYXRhOw0KPiArDQo+ICsJcmV0dXJuIHZob3N0X3ZkcGFfaW9jdGwoZGF0YS0+dmhv c3RmZCwgVkhPU1RfR0VUX1ZSSU5HX0JBU0UsIHN0YXRlKTsNCj4gIH0NCj4gDQo+ICBzdGF0aWMg aW50DQo+ICB2aG9zdF92ZHBhX3NldF92cmluZ19jYWxsKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYg KmRldiwgc3RydWN0DQo+IHZob3N0X3ZyaW5nX2ZpbGUgKmZpbGUpDQo+ICB7DQo+IC0JcmV0dXJu IHZob3N0X3ZkcGFfaW9jdGwoZGV2LT52aG9zdGZkLCBWSE9TVF9TRVRfVlJJTkdfQ0FMTCwgZmls ZSk7DQo+ICsJc3RydWN0IHZob3N0X3ZkcGFfZGF0YSAqZGF0YSA9IGRldi0+YmFja2VuZF9kYXRh Ow0KPiArDQo+ICsJcmV0dXJuIHZob3N0X3ZkcGFfaW9jdGwoZGF0YS0+dmhvc3RmZCwgVkhPU1Rf U0VUX1ZSSU5HX0NBTEwsIGZpbGUpOw0KPiAgfQ0KPiANCj4gIHN0YXRpYyBpbnQNCj4gIHZob3N0 X3ZkcGFfc2V0X3ZyaW5nX2tpY2soc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LCBzdHJ1Y3QN Cj4gdmhvc3RfdnJpbmdfZmlsZSAqZmlsZSkNCj4gIHsNCj4gLQlyZXR1cm4gdmhvc3RfdmRwYV9p b2N0bChkZXYtPnZob3N0ZmQsIFZIT1NUX1NFVF9WUklOR19LSUNLLCBmaWxlKTsNCj4gKwlzdHJ1 Y3Qgdmhvc3RfdmRwYV9kYXRhICpkYXRhID0gZGV2LT5iYWNrZW5kX2RhdGE7DQo+ICsNCj4gKwly ZXR1cm4gdmhvc3RfdmRwYV9pb2N0bChkYXRhLT52aG9zdGZkLCBWSE9TVF9TRVRfVlJJTkdfS0lD SywgZmlsZSk7DQo+ICB9DQo+IA0KPiAgc3RhdGljIGludA0KPiAgdmhvc3RfdmRwYV9zZXRfdnJp bmdfYWRkcihzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIHN0cnVjdA0KPiB2aG9zdF92cmlu Z19hZGRyICphZGRyKQ0KPiAgew0KPiAtCXJldHVybiB2aG9zdF92ZHBhX2lvY3RsKGRldi0+dmhv c3RmZCwgVkhPU1RfU0VUX1ZSSU5HX0FERFIsIGFkZHIpOw0KPiArCXN0cnVjdCB2aG9zdF92ZHBh X2RhdGEgKmRhdGEgPSBkZXYtPmJhY2tlbmRfZGF0YTsNCj4gKw0KPiArCXJldHVybiB2aG9zdF92 ZHBhX2lvY3RsKGRhdGEtPnZob3N0ZmQsIFZIT1NUX1NFVF9WUklOR19BRERSLCBhZGRyKTsNCj4g IH0NCj4gDQo+ICBzdGF0aWMgaW50DQo+ICB2aG9zdF92ZHBhX2dldF9zdGF0dXMoc3RydWN0IHZp cnRpb191c2VyX2RldiAqZGV2LCB1aW50OF90ICpzdGF0dXMpDQo+ICB7DQo+IC0JcmV0dXJuIHZo b3N0X3ZkcGFfaW9jdGwoZGV2LT52aG9zdGZkLCBWSE9TVF9WRFBBX0dFVF9TVEFUVVMsIHN0YXR1 cyk7DQo+ICsJc3RydWN0IHZob3N0X3ZkcGFfZGF0YSAqZGF0YSA9IGRldi0+YmFja2VuZF9kYXRh Ow0KPiArDQo+ICsJcmV0dXJuIHZob3N0X3ZkcGFfaW9jdGwoZGF0YS0+dmhvc3RmZCwgVkhPU1Rf VkRQQV9HRVRfU1RBVFVTLCBzdGF0dXMpOw0KPiAgfQ0KPiANCj4gIHN0YXRpYyBpbnQNCj4gIHZo b3N0X3ZkcGFfc2V0X3N0YXR1cyhzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIHVpbnQ4X3Qg c3RhdHVzKQ0KPiAgew0KPiAtCXJldHVybiB2aG9zdF92ZHBhX2lvY3RsKGRldi0+dmhvc3RmZCwg VkhPU1RfVkRQQV9TRVRfU1RBVFVTLCAmc3RhdHVzKTsNCj4gKwlzdHJ1Y3Qgdmhvc3RfdmRwYV9k YXRhICpkYXRhID0gZGV2LT5iYWNrZW5kX2RhdGE7DQo+ICsNCj4gKwlyZXR1cm4gdmhvc3RfdmRw YV9pb2N0bChkYXRhLT52aG9zdGZkLCBWSE9TVF9WRFBBX1NFVF9TVEFUVVMsICZzdGF0dXMpOw0K PiAgfQ0KPiANCj4gIC8qKg0KPiBAQCAtNDE0LDI3ICs0NTAsNDkgQEAgdmhvc3RfdmRwYV9zZXRf c3RhdHVzKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwNCj4gdWludDhfdCBzdGF0dXMpDQo+ ICBzdGF0aWMgaW50DQo+ICB2aG9zdF92ZHBhX3NldHVwKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYg KmRldikNCj4gIHsNCj4gKwlzdHJ1Y3Qgdmhvc3RfdmRwYV9kYXRhICpkYXRhOw0KPiAgCXVpbnQz Ml90IGRpZCA9ICh1aW50MzJfdCktMTsNCj4gDQo+IC0JZGV2LT52aG9zdGZkID0gb3BlbihkZXYt PnBhdGgsIE9fUkRXUik7DQo+IC0JaWYgKGRldi0+dmhvc3RmZCA8IDApIHsNCj4gKwlkYXRhID0g bWFsbG9jKHNpemVvZigqZGF0YSkpOw0KPiArCWlmICghZGF0YSkgew0KPiArCQlQTURfRFJWX0xP RyhFUlIsICIoJXMpIEZhaWRsZSB0byBhbGxvY2F0ZSBiYWNrZW5kIGRhdGEiLCBkZXYtDQo+ID5w YXRoKTsNCj4gKwkJcmV0dXJuIC0xOw0KPiArCX0NCj4gKw0KPiArCWRhdGEtPnZob3N0ZmQgPSBv cGVuKGRldi0+cGF0aCwgT19SRFdSKTsNCj4gKwlpZiAoZGF0YS0+dmhvc3RmZCA8IDApIHsNCj4g IAkJUE1EX0RSVl9MT0coRVJSLCAiRmFpbGVkIHRvIG9wZW4gJXM6ICVzXG4iLA0KPiAgCQkJCWRl di0+cGF0aCwgc3RyZXJyb3IoZXJybm8pKTsNCj4gKwkJZnJlZShkYXRhKTsNCj4gIAkJcmV0dXJu IC0xOw0KPiAgCX0NCj4gDQo+IC0JaWYgKGlvY3RsKGRldi0+dmhvc3RmZCwgVkhPU1RfVkRQQV9H RVRfREVWSUNFX0lELCAmZGlkKSA8IDAgfHwNCj4gKwlpZiAoaW9jdGwoZGF0YS0+dmhvc3RmZCwg VkhPU1RfVkRQQV9HRVRfREVWSUNFX0lELCAmZGlkKSA8IDAgfHwNCj4gIAkJCWRpZCAhPSBWSVJU SU9fSURfTkVUV09SSykgew0KPiAgCQlQTURfRFJWX0xPRyhFUlIsICJJbnZhbGlkIHZkcGEgZGV2 aWNlIElEOiAldVxuIiwgZGlkKTsNCj4gKwkJY2xvc2UoZGF0YS0+dmhvc3RmZCk7DQo+ICsJCWZy ZWUoZGF0YSk7DQo+ICAJCXJldHVybiAtMTsNCj4gIAl9DQo+IA0KPiArCWRldi0+YmFja2VuZF9k YXRhID0gZGF0YTsNCj4gKw0KPiAgCXJldHVybiAwOw0KPiAgfQ0KPiANCj4gIHN0YXRpYyBpbnQN Cj4gLXZob3N0X3ZkcGFfZGVzdHJveShzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYgX19ydGVf dW51c2VkKQ0KPiArdmhvc3RfdmRwYV9kZXN0cm95KHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRl dikNCj4gIHsNCj4gKwlzdHJ1Y3Qgdmhvc3RfdmRwYV9kYXRhICpkYXRhID0gZGV2LT5iYWNrZW5k X2RhdGE7DQo+ICsNCj4gKwlpZiAoIWRhdGEpDQo+ICsJCXJldHVybiAwOw0KPiArDQo+ICsJY2xv c2UoZGF0YS0+dmhvc3RmZCk7DQo+ICsNCj4gKwlmcmVlKGRhdGEpOw0KPiArCWRldi0+YmFja2Vu ZF9kYXRhID0gTlVMTDsNCj4gKw0KPiAgCXJldHVybiAwOw0KPiAgfQ0KPiANCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aXJ0aW9fdXNlcl9kZXYuaA0KPiBi L2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aXJ0aW9fdXNlcl9kZXYuaA0KPiBpbmRl eCAzNmE5Y2FkY2FkLi45YTY3MjNkYTI0IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC92aXJ0 aW8vdmlydGlvX3VzZXIvdmlydGlvX3VzZXJfZGV2LmgNCj4gKysrIGIvZHJpdmVycy9uZXQvdmly dGlvL3ZpcnRpb191c2VyL3ZpcnRpb191c2VyX2Rldi5oDQo+IEBAIC0yOSw5ICsyOSw2IEBAIHN0 cnVjdCB2aXJ0aW9fdXNlcl9kZXYgew0KPiAgCWVudW0gdmlydGlvX3VzZXJfYmFja2VuZF90eXBl IGJhY2tlbmRfdHlwZTsNCj4gIAlib29sCQlpc19zZXJ2ZXI7ICAvKiBzZXJ2ZXIgb3IgY2xpZW50 IG1vZGUgKi8NCj4gDQo+IC0JLyogZm9yIHZob3N0X3ZkcGEgYmFja2VuZCAqLw0KPiAtCWludAkJ dmhvc3RmZDsNCj4gLQ0KPiAgCS8qIGZvciBib3RoIHZob3N0X3VzZXIgYW5kIHZob3N0X2tlcm5l bCAqLw0KDQpJIHJlbWVtYmVyIHlvdSBhZ3JlZWQgdGhhdCB0aGlzIGNvbW1lbnQgaXMgbm8gbG9u Z2VyIG5lZWRlZD8NCg0KSSBhbHNvIG5vdGljZWQgdGhhdCB0aGVyZSdyZSBtdWx0aXBsZSBjYWxs cyBvZiBQTURfRFJWX0xPRyB0aGF0IGFkZA0KJ1xuJyBpbiB0aGUgZW5kLCB3aGljaCBpcyBuZWNl c3NhcnkuIEJ1dCwgbGV0J3MgY2xlYW4gaXQgdXAgbGF0ZXIuLg0KDQpXaXRoIGFib3ZlIGZpeGVk Og0KDQpSZXZpZXdlZC1ieTogQ2hlbmJvIFhpYSA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+DQoNCj4g IAlpbnQJCWNhbGxmZHNbVklSVElPX01BWF9WSVJUUVVFVUVTXTsNCj4gIAlpbnQJCWtpY2tmZHNb VklSVElPX01BWF9WSVJUUVVFVUVTXTsNCj4gQEAgLTQ1LDcgKzQyLDYgQEAgc3RydWN0IHZpcnRp b191c2VyX2RldiB7DQo+ICAJdWludDY0X3QJZGV2aWNlX2ZlYXR1cmVzOyAvKiBzdXBwb3J0ZWQg ZmVhdHVyZXMgYnkgZGV2aWNlICovDQo+ICAJdWludDY0X3QJZnJvbnRlbmRfZmVhdHVyZXM7IC8q IGVuYWJsZWQgZnJvbnRlbmQgZmVhdHVyZXMgKi8NCj4gIAl1aW50NjRfdAl1bnN1cHBvcnRlZF9m ZWF0dXJlczsgLyogdW5zdXBwb3J0ZWQgZmVhdHVyZXMgbWFzayAqLw0KPiAtCXVpbnQ2NF90CXBy b3RvY29sX2ZlYXR1cmVzOyAvKiBuZWdvdGlhdGVkIHByb3RvY29sIGZlYXR1cmVzICovDQo+ICAJ dWludDhfdAkJc3RhdHVzOw0KPiAgCXVpbnQxNl90CW5ldF9zdGF0dXM7DQo+ICAJdWludDE2X3QJ cG9ydF9pZDsNCj4gLS0NCj4gMi4yOS4yDQoNCg==