From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (xvm-189-124.dc0.ghst.net [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 37085A09FF; Wed, 6 Jan 2021 13:09:31 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id F349C1608F1; Wed, 6 Jan 2021 13:09:30 +0100 (CET) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mails.dpdk.org (Postfix) with ESMTP id 9E94A160868 for ; Wed, 6 Jan 2021 13:09:29 +0100 (CET) IronPort-SDR: bAQhtoeRCo5DzJ21xWqvIFXDFcB25/9sbQkYl0f24H+ncxzjrxyD2jIMTAGFSvtQ/fj0VG/wzG 9LkzBLBRzC/A== X-IronPort-AV: E=McAfee;i="6000,8403,9855"; a="195813923" X-IronPort-AV: E=Sophos;i="5.78,480,1599548400"; d="scan'208";a="195813923" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2021 04:09:28 -0800 IronPort-SDR: jX0qe1ON0aYI1Z7O6g24YTHOgYEBiMoVdj4atlNdrrWr+tlCSddaV1sEZf0D60G85gXzfkBIwR tebSbrcIHl1w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,480,1599548400"; d="scan'208";a="570063214" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by fmsmga005.fm.intel.com with ESMTP; 06 Jan 2021 04:09:28 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 6 Jan 2021 04:09:27 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) 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; Wed, 6 Jan 2021 04:09:27 -0800 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.43) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Wed, 6 Jan 2021 04:09:26 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZutIuSV2v7LndBOaHgS+faPtVnxSuJ0fn6oRPMwBi1V9MfFCJ3LwDXDnLpCu4i3khcxcycN4wFOwjMRMVlmZEyqBWzHf6l3OnH+hhIVh9GXR9imzLSc+a+KLkCrgZil/GbuT2vKOTCxeO7+oLgVQqK9TZUT2DnSWMqQLv3Bzaat47VX5Eb6NjmpnHxR/vOVzMuVZtOQgj/A6oSwato/h2m36fkpRQ+Db/LnpwFL00y2Z1SNjHhUqZrR6Y38/FG75AFElofXzDC/qFhx7ZLQonJsb2k8tSXe6ECEssSJEqVbAYW0BVONkoLPAJbMQz+mHv1NTACmXLUr3hT8PEqHMlw== 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=EmIDT3wnHrK3ZzXOn2/5Gr2cx6LfdBZm3CRLyxjoR8k=; b=Bpb0YOhN3DZ0S6HgEnQaAK80dW2cferHuZ31vy5ib9Iykvv4+rMRWe207T8PRdN5JMSVpkQIMJ2Clleq5491NZ5XTYvm3M4ZISNBf6QG75IxwIVDpGun53PIGLucTnON5PGKlhtYKRiaM1jWgo+w5MozrW7Ds+6oyeua5YF83WSNbJwbgbH+3tdguWpccT/CnhVNFYwRJ4e6M7KyReSdk9DFWNVW2WsH7Mq/aZ+5lRZ9wNcQpzDPSLv8FJJbVmC7ujDw906urMMlWHPRTmsQuxDowgeRP1wEZjftm/sBkup0izSVPNBbXfjHgTx88kbXMLKRICKcYUwsG2SYZkj9ZA== 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=EmIDT3wnHrK3ZzXOn2/5Gr2cx6LfdBZm3CRLyxjoR8k=; b=XnfCNup09dmV8DaX7BeIvyRRijmNtsyvKDhlK5iVVr9ip0mIZ6ipUKADN6ldrJZvj/hMwBUYj5wGpQi/dPlwM74QOPc+uAh0FLQvnFsQwCI3swqXrOKqXTukLI7qoLtnoxpMhGGZAhb8uvH0ssnbS8xEVSqhPsndmMgP0QiDKsA= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3551.namprd11.prod.outlook.com (2603:10b6:208:ea::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6; Wed, 6 Jan 2021 12:09:26 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::74f2:ba7f:cb22:5272]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::74f2:ba7f:cb22:5272%7]) with mapi id 15.20.3721.024; Wed, 6 Jan 2021 12:09:26 +0000 From: "Xia, Chenbo" To: Maxime Coquelin , "dev@dpdk.org" , "olivier.matz@6wind.com" , "amorenoz@redhat.com" , "david.marchand@redhat.com" Thread-Topic: [PATCH 31/40] net/virtio: add Virtio-user status ops Thread-Index: AQHW1xVkBjO4TqTn+ka4JTvF1EyYyqoamnIw Date: Wed, 6 Jan 2021 12:09:25 +0000 Message-ID: References: <20201220211405.313012-1-maxime.coquelin@redhat.com> <20201220211405.313012-32-maxime.coquelin@redhat.com> In-Reply-To: <20201220211405.313012-32-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.102.204.37] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 7f65a25e-3fc3-46d1-4486-08d8b23be957 x-ms-traffictypediagnostic: MN2PR11MB3551: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:497; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: UDStfGALdYsPa3GN8laDe8oroqNJj67tLcO+UlbkuGZXK30bKfND2326s+FpyeiIuw6pcY5x+9kcx0+83xEmiwkpLziZLhLeI57hPp3KHiyFbP2ZZKmjmkaBzOnfMwS3TF4GwqydmQreKANtjzkWRW+vANcfmzO26R1cD864tW1svEu96VMs87vjWMg646iamlTz3OjgeOCjUPIdhDOGqlwlk17vTjudC12d1o10ZW6RWoHzZfaxqqbUCKhHy0n0vce9IdXe+U/9zE/I2BndDkUDDJJFvZFGuh2tM0aLXcvs1HBTcDnBbLT3R/luD+1zZOGJB+zjUQNzs7Yjz+KvFLAZU/s7q5S9ag1dLN1t+i4sbVPidBhLPaLPSu6QAknXFRO1+pZWabBk7aHKm8y7zQ== 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)(136003)(366004)(396003)(346002)(39860400002)(33656002)(30864003)(9686003)(8676002)(8936002)(316002)(86362001)(186003)(5660300002)(26005)(83380400001)(71200400001)(66556008)(66476007)(64756008)(76116006)(66446008)(66946007)(2906002)(55016002)(478600001)(7696005)(53546011)(52536014)(6506007)(110136005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?SXJrWmU5UHEvYllmZUhYbkdaOEVVUEVLL1pFNXZPTnpmQnAwZG4vdGRnczkr?= =?utf-8?B?OUNkdFpSTSt1SWtyK0RqVHM1SkZXd2dGRUkyalMvUERXUEc5R3Z5R0JPSko4?= =?utf-8?B?OVRYZHc3ZWQvdU94Qms0MEZFc1hJSkVjSS8rV0JVZXFGTDhhUXdCelRabkdC?= =?utf-8?B?MnNiMGo4MEZPcFlOZEFwRkhZeXBnc3JVYW80b1p1aHhTQlFNQTRPOVZ6V0pZ?= =?utf-8?B?UCsrdzJwSmtUbGhjZGFTOTdDRFlyQ3BCYUtJTWtSNEc4YTlVa1VqRE5OZUVm?= =?utf-8?B?MHpmelg3c1RXcWNtYW5JRUJTTDVId3FENDF0aHJMajZJelBETFNUdDRESkQr?= =?utf-8?B?L2I4SHNkNis4bFFtWDdTL1QzZjdSTDdrQ0N4MXk4cmtoeUxIZm4rbzhvLzFa?= =?utf-8?B?b3BlRG9EVG9HSGJKZ05raEZiZ0tndVJxNjV1VHZQRTNJRmpGV3JLYTRVUUNl?= =?utf-8?B?a3lpZllTWUFmTXp0ZndOSTQxZEdtcHpYTXFmN24yT0lkVGJqcG50SGk4dmhZ?= =?utf-8?B?NlQ2aE4yd25LN3h4dlBWNDZqMFE1RUI5TEJNa25KTzV5YXVld2Z2Z24vZUVI?= =?utf-8?B?TStjOWV6cEhzZjNLbXpjWDhjNHVVcUl3MEJ4NHRMdjRKL2JTQ0ZUWnRISFhC?= =?utf-8?B?cEs5bGU4UnNOaVRaYzA3Z3k3T0Z2V09yVUZ4bU9zUGhkOFZEN1F6UTMvYUpT?= =?utf-8?B?enRmRXVWUnUxM3RkWVRZV0UyMTRtbHcvaTdXQ2U1VXdwcytDd1hUeElLTkNE?= =?utf-8?B?MTBId2NiWUhZTVZkbU9yMjNCK2xuTzRCOXBlem1tNGJZQVRnZ1ZERVhEaGRQ?= =?utf-8?B?aS9TMmVOSUVLemhGMGxjUXEzN1o5TjNuMDdqelJDRGlKUTNWRGZtSGpvNVcv?= =?utf-8?B?S3pGYy9oWldXVzkvNVFvdGlYVmtBU1dubVR0VTBlSUlPelVTQmRuQ01KSkEv?= =?utf-8?B?dVFYM3RHN3dzS3gwNFFxN1BDcEhEVjdFaWNOS3NBUGUzclNRUWVHaHpjeEFF?= =?utf-8?B?d1NwYnRmVzViN3dVTmd1QjVMV1dDTUkxeCtGeElSRUJRTVlBTzFqRDQzSWpT?= =?utf-8?B?Y1JWNm5MZjR5YVQ1a0pEbHpPd05DMUFhbzNGbnJsRCsrZS9JdkozK0xQbHR1?= =?utf-8?B?SlRxQzBKcjFUanYwMTlJcGRncGh2QVFSNzFySlNxL1hpSzM4NDFaRGl6SkZX?= =?utf-8?B?cEl4VlgydG1qZFZhZjdtcVE5Q2IvcDZ4ajViR1lOeWdMTU5Hbk8rRjVuMG93?= =?utf-8?B?bXhrUWVBbFJJdUtKdGhBRkRUWVZsZzlKTmVUMEpxbEptZGc4bm5KTEJacEpP?= =?utf-8?Q?ll2Rg8EenDu78=3D?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4063.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7f65a25e-3fc3-46d1-4486-08d8b23be957 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jan 2021 12:09:25.8981 (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: frjhufK6GVvSxdV11dv8sxRUDV3pPEnKUUqxRopZ5NenroMOBLg0qIJxLQP7T1D1Eb4q3LOA/9NRlNwvbq4i8g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3551 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH 31/40] net/virtio: add Virtio-user status ops 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+IFNlbnQ6IE1vbmRheSwg RGVjZW1iZXIgMjEsIDIwMjAgNToxNCBBTQ0KPiBUbzogZGV2QGRwZGsub3JnOyBYaWEsIENoZW5i byA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+OyBvbGl2aWVyLm1hdHpANndpbmQuY29tOw0KPiBhbW9y ZW5vekByZWRoYXQuY29tOyBkYXZpZC5tYXJjaGFuZEByZWRoYXQuY29tDQo+IENjOiBNYXhpbWUg Q29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTdWJqZWN0OiBbUEFUQ0gg MzEvNDBdIG5ldC92aXJ0aW86IGFkZCBWaXJ0aW8tdXNlciBzdGF0dXMgb3BzDQo+IA0KPiBUaGlz IHBhdGNoIGludHJvZHVjZXMgbmV3IGNhbGxiYWNrcyB0bw0KPiBnZXQgYW5kIHNldCB0aGUgZGV2 aWNlIHN0YXR1cy4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IE1heGltZSBDb3F1ZWxpbiA8bWF4aW1l LmNvcXVlbGluQHJlZGhhdC5jb20+DQo+IC0tLQ0KPiAgZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRp b191c2VyL3Zob3N0LmggICAgICAgIHwgICAyICsNCj4gIGRyaXZlcnMvbmV0L3ZpcnRpby92aXJ0 aW9fdXNlci92aG9zdF9rZXJuZWwuYyB8ICAxNCArKw0KPiAgZHJpdmVycy9uZXQvdmlydGlvL3Zp cnRpb191c2VyL3Zob3N0X3VzZXIuYyAgIHwgMTIxICsrKysrKysrKysrKystLS0tLQ0KPiAgZHJp dmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X3ZkcGEuYyAgIHwgIDE2ICsrLQ0KPiAg Li4uL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmlydGlvX3VzZXJfZGV2LmMgIHwgIDQyICsrLS0t LQ0KPiAgNSBmaWxlcyBjaGFuZ2VkLCAxMjkgaW5zZXJ0aW9ucygrKSwgNjYgZGVsZXRpb25zKC0p DQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0 LmgNCj4gYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3QuaA0KPiBpbmRleCA5 NTZlYjU4NzI4Li5jODViYTlhNDdiIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC92aXJ0aW8v dmlydGlvX3VzZXIvdmhvc3QuaA0KPiArKysgYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3Vz ZXIvdmhvc3QuaA0KPiBAQCAtMTE0LDYgKzExNCw4IEBAIHN0cnVjdCB2aXJ0aW9fdXNlcl9iYWNr ZW5kX29wcyB7DQo+ICAJaW50ICgqc2V0X3ZyaW5nX2NhbGwpKHN0cnVjdCB2aXJ0aW9fdXNlcl9k ZXYgKmRldiwgc3RydWN0DQo+IHZob3N0X3ZyaW5nX2ZpbGUgKmZpbGUpOw0KPiAgCWludCAoKnNl dF92cmluZ19raWNrKShzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYsIHN0cnVjdA0KPiB2aG9z dF92cmluZ19maWxlICpmaWxlKTsNCj4gIAlpbnQgKCpzZXRfdnJpbmdfYWRkcikoc3RydWN0IHZp cnRpb191c2VyX2RldiAqZGV2LCBzdHJ1Y3QNCj4gdmhvc3RfdnJpbmdfYWRkciAqYWRkcik7DQo+ ICsJaW50ICgqZ2V0X3N0YXR1cykoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LCB1aW50OF90 ICpzdGF0dXMpOw0KPiArCWludCAoKnNldF9zdGF0dXMpKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYg KmRldiwgdWludDhfdCBzdGF0dXMpOw0KPiAgCWludCAoKnNlbmRfcmVxdWVzdCkoc3RydWN0IHZp cnRpb191c2VyX2RldiAqZGV2LA0KPiAgCQkJICAgIGVudW0gdmhvc3RfdXNlcl9yZXF1ZXN0IHJl cSwNCj4gIAkJCSAgICB2b2lkICphcmcpOw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmly dGlvL3ZpcnRpb191c2VyL3Zob3N0X2tlcm5lbC5jDQo+IGIvZHJpdmVycy9uZXQvdmlydGlvL3Zp cnRpb191c2VyL3Zob3N0X2tlcm5lbC5jDQo+IGluZGV4IDhjZDg2YjcyYzYuLjBiNzRmNzNjOTcg MTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF9rZXJu ZWwuYw0KPiArKysgYi9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3Rfa2VybmVs LmMNCj4gQEAgLTMxNiw2ICszMTYsMTggQEAgdmhvc3Rfa2VybmVsX3NldF92cmluZ19hZGRyKHN0 cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldiwNCj4gc3RydWN0IHZob3N0X3ZyaW5nX2FkZHINCj4g IAlyZXR1cm4gMDsNCj4gIH0NCj4gDQo+ICtzdGF0aWMgaW50DQo+ICt2aG9zdF9rZXJuZWxfZ2V0 X3N0YXR1cyhzdHJ1Y3QgdmlydGlvX3VzZXJfZGV2ICpkZXYgX19ydGVfdW51c2VkLCB1aW50OF90 DQo+ICpzdGF0dXMgX19ydGVfdW51c2VkKQ0KPiArew0KPiArCXJldHVybiAtRU5PVFNVUDsNCj4g K30NCj4gKw0KPiArc3RhdGljIGludA0KPiArdmhvc3Rfa2VybmVsX3NldF9zdGF0dXMoc3RydWN0 IHZpcnRpb191c2VyX2RldiAqZGV2IF9fcnRlX3VudXNlZCwgdWludDhfdA0KPiBzdGF0dXMgX19y dGVfdW51c2VkKQ0KPiArew0KPiArCXJldHVybiAtRU5PVFNVUDsNCj4gK30NCj4gKw0KPiAgc3Rh dGljIHVpbnQ2NF90IHZob3N0X3JlcV91c2VyX3RvX2tlcm5lbFtdID0gew0KPiAgCVtWSE9TVF9V U0VSX1JFU0VUX09XTkVSXSA9IFZIT1NUX1JFU0VUX09XTkVSLA0KPiAgfTsNCj4gQEAgLTQ4Nyw2 ICs0OTksOCBAQCBzdHJ1Y3QgdmlydGlvX3VzZXJfYmFja2VuZF9vcHMgdmlydGlvX29wc19rZXJu ZWwgPSB7DQo+ICAJLnNldF92cmluZ19jYWxsID0gdmhvc3Rfa2VybmVsX3NldF92cmluZ19jYWxs LA0KPiAgCS5zZXRfdnJpbmdfa2ljayA9IHZob3N0X2tlcm5lbF9zZXRfdnJpbmdfa2ljaywNCj4g IAkuc2V0X3ZyaW5nX2FkZHIgPSB2aG9zdF9rZXJuZWxfc2V0X3ZyaW5nX2FkZHIsDQo+ICsJLmdl dF9zdGF0dXMgPSB2aG9zdF9rZXJuZWxfZ2V0X3N0YXR1cywNCj4gKwkuc2V0X3N0YXR1cyA9IHZo b3N0X2tlcm5lbF9zZXRfc3RhdHVzLA0KPiAgCS5zZW5kX3JlcXVlc3QgPSB2aG9zdF9rZXJuZWxf c2VuZF9yZXF1ZXN0LA0KPiAgCS5lbmFibGVfcXAgPSB2aG9zdF9rZXJuZWxfZW5hYmxlX3F1ZXVl X3BhaXINCj4gIH07DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3Vz ZXIvdmhvc3RfdXNlci5jDQo+IGIvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0 X3VzZXIuYw0KPiBpbmRleCA1OWNmMzY2NjgzLi5kNDI2YjQ0ZmU3IDEwMDY0NA0KPiAtLS0gYS9k cml2ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3RfdXNlci5jDQo+ICsrKyBiL2RyaXZl cnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9zdF91c2VyLmMNCj4gQEAgLTU0NCwxMyArNTQ0 LDEwMCBAQCB2aG9zdF91c2VyX3NldF92cmluZ19hZGRyKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYg KmRldiwNCj4gc3RydWN0IHZob3N0X3ZyaW5nX2FkZHIgKg0KPiAgCXJldHVybiAwOw0KPiAgfQ0K PiANCj4gK3N0YXRpYyBpbnQNCj4gK3Zob3N0X3VzZXJfZ2V0X3N0YXR1cyhzdHJ1Y3QgdmlydGlv X3VzZXJfZGV2ICpkZXYsIHVpbnQ4X3QgKnN0YXR1cykNCj4gK3sNCj4gKwlpbnQgcmV0Ow0KPiAr CXN0cnVjdCB2aG9zdF91c2VyX21zZyBtc2cgPSB7DQo+ICsJCS5yZXF1ZXN0ID0gVkhPU1RfVVNF Ul9HRVRfU1RBVFVTLA0KPiArCQkuZmxhZ3MgPSBWSE9TVF9VU0VSX1ZFUlNJT04sDQo+ICsJfTsN Cj4gKw0KPiArCS8qDQo+ICsJICogSWYgZmVhdHVyZXMgaGF2ZSBub3QgYmVlbiBuZWdvdGlhdGVk LCB3ZSBkb24ndCBrbm93IGlmIHRoZSBiYWNrZW5kDQo+ICsJICogc3VwcG9ydHMgcHJvdG9jb2wg ZmVhdHVyZXMNCj4gKwkgKi8NCj4gKwlpZiAoIShkZXYtPnN0YXR1cyAmIFZJUlRJT19DT05GSUdf U1RBVFVTX0ZFQVRVUkVTX09LKSkNCj4gKwkJcmV0dXJuIC1FTk9UU1VQOw0KPiArDQo+ICsJLyog U3RhdHVzIHByb3RvY29sIGZlYXR1cmUgcmVxdWlyZXMgcHJvdG9jb2wgZmVhdHVyZXMgc3VwcG9y dCAqLw0KPiArCWlmICghKGRldi0+ZGV2aWNlX2ZlYXR1cmVzICYgKDFVTEwgPDwgVkhPU1RfVVNF Ul9GX1BST1RPQ09MX0ZFQVRVUkVTKSkpDQo+ICsJCXJldHVybiAtRU5PVFNVUDsNCj4gKw0KPiAr CWlmICghKGRldi0+cHJvdG9jb2xfZmVhdHVyZXMgJiAoMVVMTCA8PCBWSE9TVF9VU0VSX1BST1RP Q09MX0ZfU1RBVFVTKSkpDQo+ICsJCXJldHVybiAtRU5PVFNVUDsNCj4gKw0KPiArCXJldCA9IHZo b3N0X3VzZXJfd3JpdGUoZGV2LT52aG9zdGZkLCAmbXNnLCBOVUxMLCAwKTsNCj4gKwlpZiAocmV0 IDwgMCkgew0KPiArCQlQTURfRFJWX0xPRyhFUlIsICJGYWlsZWQgdG8gc2VuZCByZXF1ZXN0Iik7 DQo+ICsJCWdvdG8gZXJyOw0KPiArCX0NCj4gKw0KPiArCXJldCA9IHZob3N0X3VzZXJfcmVhZChk ZXYtPnZob3N0ZmQsICZtc2cpOw0KPiArCWlmIChyZXQgPCAwKSB7DQo+ICsJCVBNRF9EUlZfTE9H KEVSUiwgIkZhaWxlZCB0byByZWN2IHJlcXVlc3QiKTsNCj4gKwkJZ290byBlcnI7DQo+ICsJfQ0K PiArDQo+ICsJaWYgKG1zZy5yZXF1ZXN0ICE9IFZIT1NUX1VTRVJfR0VUX1NUQVRVUykgew0KPiAr CQlQTURfRFJWX0xPRyhFUlIsICJVbmV4cGVjdGVkIHJlcXVlc3QgdHlwZSAoJWQpIiwgbXNnLnJl cXVlc3QpOw0KPiArCQlnb3RvIGVycjsNCj4gKwl9DQo+ICsNCj4gKwlpZiAobXNnLnNpemUgIT0g c2l6ZW9mKG1zZy5wYXlsb2FkLnU2NCkpIHsNCj4gKwkJUE1EX0RSVl9MT0coRVJSLCAiVW5leHBl Y3RlZCBwYXlsb2FkIHNpemUgKCVkKSIsIG1zZy5zaXplKTsNCg0KQmV0dGVyIHVzZSAldSBoZXJl PyBJZiB5b3Ugd2lsbCBjaGFuZ2UgdGhpcywgcGxlYXNlIGNoYW5nZSBvdGhlciBsb2dzIGluDQp2 aG9zdF91c2VyX2dldF9wcm90b2NvbF9mZWF0dXJlcyBhbmQgdmhvc3RfdXNlcl9nZXRfZmVhdHVy ZXMgdG9vLiBTb3JyeQ0KdGhhdCBJIG1pc3MgdGhlbSBpbiBwcmV2aW91cyBwYXRjaGVzLi4uDQoN Cj4gKwkJZ290byBlcnI7DQo+ICsJfQ0KPiArDQo+ICsJKnN0YXR1cyA9ICh1aW50OF90KW1zZy5w YXlsb2FkLnU2NDsNCj4gKw0KPiArCXJldHVybiAwOw0KPiArZXJyOg0KPiArCVBNRF9EUlZfTE9H KEVSUiwgIkZhaWxlZCB0byBnZXQgZGV2aWNlIHN0YXR1cyIpOw0KPiArCXJldHVybiAtMTsNCj4g K30NCj4gKw0KPiArc3RhdGljIGludA0KPiArdmhvc3RfdXNlcl9zZXRfc3RhdHVzKHN0cnVjdCB2 aXJ0aW9fdXNlcl9kZXYgKmRldiwgdWludDhfdCBzdGF0dXMpDQo+ICt7DQo+ICsJaW50IHJldDsN Cj4gKwlzdHJ1Y3Qgdmhvc3RfdXNlcl9tc2cgbXNnID0gew0KPiArCQkucmVxdWVzdCA9IFZIT1NU X1VTRVJfU0VUX1NUQVRVUywNCj4gKwkJLmZsYWdzID0gVkhPU1RfVVNFUl9WRVJTSU9OLA0KPiAr CQkuc2l6ZSA9IHNpemVvZihtc2cucGF5bG9hZC51NjQpLA0KPiArCQkucGF5bG9hZC51NjQgPSBz dGF0dXMsDQo+ICsJfTsNCj4gKw0KPiArCWlmIChkZXYtPnByb3RvY29sX2ZlYXR1cmVzICYgKDFV TEwgPDwgVkhPU1RfVVNFUl9QUk9UT0NPTF9GX1JFUExZX0FDSykpDQo+ICsJCW1zZy5mbGFncyB8 PSBWSE9TVF9VU0VSX05FRURfUkVQTFlfTUFTSzsNCg0KTW92ZSB0aGUgYWJvdmUgY2hlY2sgYWZ0 ZXIgY2hlY2tpbmcgZGV2aWNlIHN1cHBvcnRzIFZIT1NUX1VTRVJfRl9QUk9UT0NPTF9GRUFUVVJF Uz8NCkxvZ2ljYWxseSwgaXQncyBtZWFuaW5nbGVzcyB0byBjaGVjayB3ZSBzdXBwb3J0cyBjZXJ0 YWluIHByb3RvY29sIGZlYXR1cmUgaWYgd2UgZG8NCm5vdCBzdXBwb3J0IHByb3RvY29sIGZlYXR1 cmUgYXQgYWxsIDopDQoNClRoYW5rcywNCkNoZW5ibw0KDQo+ICsNCj4gKwkvKg0KPiArCSAqIElm IGZlYXR1cmVzIGhhdmUgbm90IGJlZW4gbmVnb3RpYXRlZCwgd2UgZG9uJ3Qga25vdyBpZiB0aGUg YmFja2VuZA0KPiArCSAqIHN1cHBvcnRzIHByb3RvY29sIGZlYXR1cmVzDQo+ICsJICovDQo+ICsJ aWYgKCEoZGV2LT5zdGF0dXMgJiBWSVJUSU9fQ09ORklHX1NUQVRVU19GRUFUVVJFU19PSykpDQo+ ICsJCXJldHVybiAtRU5PVFNVUDsNCj4gKw0KPiArCS8qIFN0YXR1cyBwcm90b2NvbCBmZWF0dXJl IHJlcXVpcmVzIHByb3RvY29sIGZlYXR1cmVzIHN1cHBvcnQgKi8NCj4gKwlpZiAoIShkZXYtPmRl dmljZV9mZWF0dXJlcyAmICgxVUxMIDw8IFZIT1NUX1VTRVJfRl9QUk9UT0NPTF9GRUFUVVJFUykp KQ0KPiArCQlyZXR1cm4gLUVOT1RTVVA7DQo+ICsNCj4gKwlpZiAoIShkZXYtPnByb3RvY29sX2Zl YXR1cmVzICYgKDFVTEwgPDwgVkhPU1RfVVNFUl9QUk9UT0NPTF9GX1NUQVRVUykpKQ0KPiArCQly ZXR1cm4gLUVOT1RTVVA7DQo+ICsNCj4gKwlyZXQgPSB2aG9zdF91c2VyX3dyaXRlKGRldi0+dmhv c3RmZCwgJm1zZywgTlVMTCwgMCk7DQo+ICsJaWYgKHJldCA8IDApIHsNCj4gKwkJUE1EX0RSVl9M T0coRVJSLCAiRmFpbGVkIHRvIHNlbmQgZ2V0IHN0YXR1cyByZXF1ZXN0Iik7DQo+ICsJCXJldHVy biAtMTsNCj4gKwl9DQo+ICsNCj4gKwlyZXR1cm4gdmhvc3RfdXNlcl9jaGVja19yZXBseV9hY2so ZGV2LCAmbXNnKTsNCj4gK30NCj4gDQo+ICBzdGF0aWMgc3RydWN0IHZob3N0X3VzZXJfbXNnIG07 DQo+IA0KPiAgY29uc3QgY2hhciAqIGNvbnN0IHZob3N0X21zZ19zdHJpbmdzW10gPSB7DQo+ICAJ W1ZIT1NUX1VTRVJfUkVTRVRfT1dORVJdID0gIlZIT1NUX1JFU0VUX09XTkVSIiwNCj4gLQlbVkhP U1RfVVNFUl9TRVRfU1RBVFVTXSA9ICJWSE9TVF9TRVRfU1RBVFVTIiwNCj4gLQlbVkhPU1RfVVNF Ul9HRVRfU1RBVFVTXSA9ICJWSE9TVF9HRVRfU1RBVFVTIiwNCj4gIH07DQo+IA0KPiAgc3RhdGlj IGludA0KPiBAQCAtNTYxLDcgKzY0OCw2IEBAIHZob3N0X3VzZXJfc29jayhzdHJ1Y3QgdmlydGlv X3VzZXJfZGV2ICpkZXYsDQo+ICAJc3RydWN0IHZob3N0X3VzZXJfbXNnIG1zZzsNCj4gIAlzdHJ1 Y3Qgdmhvc3RfdnJpbmdfZmlsZSAqZmlsZSA9IDA7DQo+ICAJaW50IG5lZWRfcmVwbHkgPSAwOw0K PiAtCWludCBoYXNfcmVwbHlfYWNrID0gMDsNCj4gIAlpbnQgZmRzW1ZIT1NUX01FTU9SWV9NQVhf TlJFR0lPTlNdOw0KPiAgCWludCBmZF9udW0gPSAwOw0KPiAgCWludCB2aG9zdGZkID0gZGV2LT52 aG9zdGZkOw0KPiBAQCAtNTczLDMxICs2NTksMTEgQEAgdmhvc3RfdXNlcl9zb2NrKHN0cnVjdCB2 aXJ0aW9fdXNlcl9kZXYgKmRldiwNCj4gIAlpZiAoZGV2LT5pc19zZXJ2ZXIgJiYgdmhvc3RmZCA8 IDApDQo+ICAJCXJldHVybiAtMTsNCj4gDQo+IC0JaWYgKGRldi0+cHJvdG9jb2xfZmVhdHVyZXMg JiAoMVVMTCA8PCBWSE9TVF9VU0VSX1BST1RPQ09MX0ZfUkVQTFlfQUNLKSkNCj4gLQkJaGFzX3Jl cGx5X2FjayA9IDE7DQo+IC0NCj4gIAltc2cucmVxdWVzdCA9IHJlcTsNCj4gIAltc2cuZmxhZ3Mg PSBWSE9TVF9VU0VSX1ZFUlNJT047DQo+ICAJbXNnLnNpemUgPSAwOw0KPiANCj4gIAlzd2l0Y2gg KHJlcSkgew0KPiAtCWNhc2UgVkhPU1RfVVNFUl9HRVRfU1RBVFVTOg0KPiAtCQlpZiAoIShkZXYt PnN0YXR1cyAmIFZJUlRJT19DT05GSUdfU1RBVFVTX0ZFQVRVUkVTX09LKSB8fA0KPiAtCQkgICAg KCEoZGV2LT5wcm90b2NvbF9mZWF0dXJlcyAmDQo+IC0JCQkJKDFVTEwgPDwgVkhPU1RfVVNFUl9Q Uk9UT0NPTF9GX1NUQVRVUykpKSkNCj4gLQkJCXJldHVybiAtRU5PVFNVUDsNCj4gLQkJbmVlZF9y ZXBseSA9IDE7DQo+IC0JCWJyZWFrOw0KPiAtDQo+IC0JY2FzZSBWSE9TVF9VU0VSX1NFVF9TVEFU VVM6DQo+IC0JCWlmICghKGRldi0+c3RhdHVzICYgVklSVElPX0NPTkZJR19TVEFUVVNfRkVBVFVS RVNfT0spIHx8DQo+IC0JCSAgICAoIShkZXYtPnByb3RvY29sX2ZlYXR1cmVzICYNCj4gLQkJCQko MVVMTCA8PCBWSE9TVF9VU0VSX1BST1RPQ09MX0ZfU1RBVFVTKSkpKQ0KPiAtCQkJcmV0dXJuIC1F Tk9UU1VQOw0KPiAtDQo+IC0JCWlmIChoYXNfcmVwbHlfYWNrKQ0KPiAtCQkJbXNnLmZsYWdzIHw9 IFZIT1NUX1VTRVJfTkVFRF9SRVBMWV9NQVNLOw0KPiAtCQkvKiBGYWxsdGhyb3VnaCAqLw0KPiAg CWNhc2UgVkhPU1RfVVNFUl9TRVRfTE9HX0JBU0U6DQo+ICAJCW1zZy5wYXlsb2FkLnU2NCA9ICoo KF9fdTY0ICopYXJnKTsNCj4gIAkJbXNnLnNpemUgPSBzaXplb2YobS5wYXlsb2FkLnU2NCk7DQo+ IEBAIC02NDQsMTMgKzcxMCw2IEBAIHZob3N0X3VzZXJfc29jayhzdHJ1Y3QgdmlydGlvX3VzZXJf ZGV2ICpkZXYsDQo+ICAJCX0NCj4gDQo+ICAJCXN3aXRjaCAocmVxKSB7DQo+IC0JCWNhc2UgVkhP U1RfVVNFUl9HRVRfU1RBVFVTOg0KPiAtCQkJaWYgKG1zZy5zaXplICE9IHNpemVvZihtLnBheWxv YWQudTY0KSkgew0KPiAtCQkJCVBNRF9EUlZfTE9HKEVSUiwgIlJlY2VpdmVkIGJhZCBtc2cgc2l6 ZSIpOw0KPiAtCQkJCXJldHVybiAtMTsNCj4gLQkJCX0NCj4gLQkJCSooKF9fdTY0ICopYXJnKSA9 IG1zZy5wYXlsb2FkLnU2NDsNCj4gLQkJCWJyZWFrOw0KPiAgCQlkZWZhdWx0Og0KPiAgCQkJLyog UmVwbHktYWNrIGhhbmRsaW5nICovDQo+ICAJCQlpZiAobXNnLnNpemUgIT0gc2l6ZW9mKG0ucGF5 bG9hZC51NjQpKSB7DQo+IEBAIC03ODQsNiArODQzLDggQEAgc3RydWN0IHZpcnRpb191c2VyX2Jh Y2tlbmRfb3BzIHZpcnRpb19vcHNfdXNlciA9IHsNCj4gIAkuc2V0X3ZyaW5nX2NhbGwgPSB2aG9z dF91c2VyX3NldF92cmluZ19jYWxsLA0KPiAgCS5zZXRfdnJpbmdfa2ljayA9IHZob3N0X3VzZXJf c2V0X3ZyaW5nX2tpY2ssDQo+ICAJLnNldF92cmluZ19hZGRyID0gdmhvc3RfdXNlcl9zZXRfdnJp bmdfYWRkciwNCj4gKwkuZ2V0X3N0YXR1cyA9IHZob3N0X3VzZXJfZ2V0X3N0YXR1cywNCj4gKwku c2V0X3N0YXR1cyA9IHZob3N0X3VzZXJfc2V0X3N0YXR1cywNCj4gIAkuc2VuZF9yZXF1ZXN0ID0g dmhvc3RfdXNlcl9zb2NrLA0KPiAgCS5lbmFibGVfcXAgPSB2aG9zdF91c2VyX2VuYWJsZV9xdWV1 ZV9wYWlyDQo+ICB9Ow0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191 c2VyL3Zob3N0X3ZkcGEuYw0KPiBiL2RyaXZlcnMvbmV0L3ZpcnRpby92aXJ0aW9fdXNlci92aG9z dF92ZHBhLmMNCj4gaW5kZXggZTA5ZTdjOWZiOC4uZjQzMzE4ODRjMyAxMDA2NDQNCj4gLS0tIGEv ZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3Zob3N0X3ZkcGEuYw0KPiArKysgYi9kcml2 ZXJzL25ldC92aXJ0aW8vdmlydGlvX3VzZXIvdmhvc3RfdmRwYS5jDQo+IEBAIC0zNiw4ICszNiw2 IEBADQo+IA0KPiAgc3RhdGljIHVpbnQ2NF90IHZob3N0X3JlcV91c2VyX3RvX3ZkcGFbXSA9IHsN Cj4gIAlbVkhPU1RfVVNFUl9SRVNFVF9PV05FUl0gPSBWSE9TVF9SRVNFVF9PV05FUiwNCj4gLQlb VkhPU1RfVVNFUl9TRVRfU1RBVFVTXSA9IFZIT1NUX1ZEUEFfU0VUX1NUQVRVUywNCj4gLQlbVkhP U1RfVVNFUl9HRVRfU1RBVFVTXSA9IFZIT1NUX1ZEUEFfR0VUX1NUQVRVUywNCj4gIH07DQo+IA0K PiAgLyogbm8gYWxpZ25tZW50IHJlcXVpcmVtZW50ICovDQo+IEBAIC0yNTMsNiArMjUxLDE4IEBA IHZob3N0X3ZkcGFfc2V0X3ZyaW5nX2FkZHIoc3RydWN0IHZpcnRpb191c2VyX2RldiAqZGV2LA0K PiBzdHJ1Y3Qgdmhvc3RfdnJpbmdfYWRkciAqDQo+ICAJcmV0dXJuIHZob3N0X3ZkcGFfaW9jdGwo ZGV2LT52aG9zdGZkLCBWSE9TVF9TRVRfVlJJTkdfQUREUiwgYWRkcik7DQo+ICB9DQo+IA0KPiAr c3RhdGljIGludA0KPiArdmhvc3RfdmRwYV9nZXRfc3RhdHVzKHN0cnVjdCB2aXJ0aW9fdXNlcl9k ZXYgKmRldiwgdWludDhfdCAqc3RhdHVzKQ0KPiArew0KPiArCXJldHVybiB2aG9zdF92ZHBhX2lv Y3RsKGRldi0+dmhvc3RmZCwgVkhPU1RfVkRQQV9HRVRfU1RBVFVTLCBzdGF0dXMpOw0KPiArfQ0K PiArDQo+ICtzdGF0aWMgaW50DQo+ICt2aG9zdF92ZHBhX3NldF9zdGF0dXMoc3RydWN0IHZpcnRp b191c2VyX2RldiAqZGV2LCB1aW50OF90IHN0YXR1cykNCj4gK3sNCj4gKwlyZXR1cm4gdmhvc3Rf dmRwYV9pb2N0bChkZXYtPnZob3N0ZmQsIFZIT1NUX1ZEUEFfU0VUX1NUQVRVUywgJnN0YXR1cyk7 DQo+ICt9DQo+ICsNCj4gIC8qIHdpdGggYmVsb3cgZmVhdHVyZXMsIHZob3N0IHZkcGEgZG9lcyBu b3QgbmVlZCB0byBkbyB0aGUgY2hlY2tzdW0gYW5kIFRTTywNCj4gICAqIHRoZXNlIGluZm8gd2ls bCBiZSBwYXNzZWQgdG8gdmlydGlvX3VzZXIgdGhyb3VnaCB2aXJ0aW8gbmV0IGhlYWRlci4NCj4g ICAqLw0KPiBAQCAtMzYzLDYgKzM3Myw4IEBAIHN0cnVjdCB2aXJ0aW9fdXNlcl9iYWNrZW5kX29w cyB2aXJ0aW9fb3BzX3ZkcGEgPSB7DQo+ICAJLnNldF92cmluZ19jYWxsID0gdmhvc3RfdmRwYV9z ZXRfdnJpbmdfY2FsbCwNCj4gIAkuc2V0X3ZyaW5nX2tpY2sgPSB2aG9zdF92ZHBhX3NldF92cmlu Z19raWNrLA0KPiAgCS5zZXRfdnJpbmdfYWRkciA9IHZob3N0X3ZkcGFfc2V0X3ZyaW5nX2FkZHIs DQo+ICsJLmdldF9zdGF0dXMgPSB2aG9zdF92ZHBhX2dldF9zdGF0dXMsDQo+ICsJLnNldF9zdGF0 dXMgPSB2aG9zdF92ZHBhX3NldF9zdGF0dXMsDQo+ICAJLnNlbmRfcmVxdWVzdCA9IHZob3N0X3Zk cGFfc2VuZF9yZXF1ZXN0LA0KPiAgCS5lbmFibGVfcXAgPSB2aG9zdF92ZHBhX2VuYWJsZV9xdWV1 ZV9wYWlyLA0KPiAgCS5kbWFfbWFwID0gdmhvc3RfdmRwYV9kbWFfbWFwLA0KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3ZpcnRpb191c2VyX2Rldi5jDQo+IGIv ZHJpdmVycy9uZXQvdmlydGlvL3ZpcnRpb191c2VyL3ZpcnRpb191c2VyX2Rldi5jDQo+IGluZGV4 IDQ4Y2E3YTI1NDguLmUxZjAxNmFhOGMgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0L3ZpcnRp by92aXJ0aW9fdXNlci92aXJ0aW9fdXNlcl9kZXYuYw0KPiArKysgYi9kcml2ZXJzL25ldC92aXJ0 aW8vdmlydGlvX3VzZXIvdmlydGlvX3VzZXJfZGV2LmMNCj4gQEAgLTgwNSwyMSArODA1LDEyIEBA IGludA0KPiAgdmlydGlvX3VzZXJfZGV2X3NldF9zdGF0dXMoc3RydWN0IHZpcnRpb191c2VyX2Rl diAqZGV2LCB1aW50OF90IHN0YXR1cykNCj4gIHsNCj4gIAlpbnQgcmV0Ow0KPiAtCXVpbnQ2NF90 IGFyZyA9IHN0YXR1czsNCj4gDQo+ICAJcHRocmVhZF9tdXRleF9sb2NrKCZkZXYtPm11dGV4KTsN Cj4gIAlkZXYtPnN0YXR1cyA9IHN0YXR1czsNCj4gLQlpZiAoZGV2LT5iYWNrZW5kX3R5cGUgPT0g VklSVElPX1VTRVJfQkFDS0VORF9WSE9TVF9VU0VSKQ0KPiAtCQlyZXQgPSBkZXYtPm9wcy0+c2Vu ZF9yZXF1ZXN0KGRldiwNCj4gLQkJCQlWSE9TVF9VU0VSX1NFVF9TVEFUVVMsICZhcmcpOw0KPiAt CWVsc2UgaWYgKGRldi0+YmFja2VuZF90eXBlID09IFZJUlRJT19VU0VSX0JBQ0tFTkRfVkhPU1Rf VkRQQSkNCj4gLQkJcmV0ID0gZGV2LT5vcHMtPnNlbmRfcmVxdWVzdChkZXYsDQo+IC0JCQkJVkhP U1RfVVNFUl9TRVRfU1RBVFVTLCAmc3RhdHVzKTsNCj4gLQllbHNlDQo+IC0JCXJldCA9IC1FTk9U U1VQOw0KPiAtDQo+ICsJcmV0ID0gZGV2LT5vcHMtPnNldF9zdGF0dXMoZGV2LCBzdGF0dXMpOw0K PiAgCWlmIChyZXQgJiYgcmV0ICE9IC1FTk9UU1VQKSB7DQo+IC0JCVBNRF9JTklUX0xPRyhFUlIs ICJWSE9TVF9VU0VSX1NFVF9TVEFUVVMgZmFpbGVkICglZCk6ICVzIiwgcmV0LA0KPiArCQlQTURf SU5JVF9MT0coRVJSLCAiVmlydGlvLXVzZXIgc2V0IHN0YXR1cyBmYWlsZWQgKCVkKTogJXMiLCBy ZXQsDQo+ICAJCQkgICAgIHN0cmVycm9yKGVycm5vKSk7DQo+ICAJfQ0KPiANCj4gQEAgLTgzMCwy OSArODIxLDEzIEBAIHZpcnRpb191c2VyX2Rldl9zZXRfc3RhdHVzKHN0cnVjdCB2aXJ0aW9fdXNl cl9kZXYgKmRldiwNCj4gdWludDhfdCBzdGF0dXMpDQo+ICBpbnQNCj4gIHZpcnRpb191c2VyX2Rl dl91cGRhdGVfc3RhdHVzKHN0cnVjdCB2aXJ0aW9fdXNlcl9kZXYgKmRldikNCj4gIHsNCj4gLQl1 aW50NjRfdCByZXQ7DQo+ICsJaW50IHJldDsNCj4gIAl1aW50OF90IHN0YXR1czsNCj4gLQlpbnQg ZXJyOw0KPiANCj4gIAlwdGhyZWFkX211dGV4X2xvY2soJmRldi0+bXV0ZXgpOw0KPiAtCWlmIChk ZXYtPmJhY2tlbmRfdHlwZSA9PSBWSVJUSU9fVVNFUl9CQUNLRU5EX1ZIT1NUX1VTRVIpIHsNCj4g LQkJZXJyID0gZGV2LT5vcHMtPnNlbmRfcmVxdWVzdChkZXYsIFZIT1NUX1VTRVJfR0VUX1NUQVRV UywgJnJldCk7DQo+IC0JCWlmICghZXJyICYmIHJldCA+IFVJTlQ4X01BWCkgew0KPiAtCQkJUE1E X0lOSVRfTE9HKEVSUiwgIkludmFsaWQgVkhPU1RfVVNFUl9HRVRfU1RBVFVTICINCj4gLQkJCQkJ InJlc3BvbnNlIDB4JSIgUFJJeDY0ICJcbiIsIHJldCk7DQo+IC0JCQllcnIgPSAtMTsNCj4gLQkJ CWdvdG8gZXJyb3I7DQo+IC0JCX0NCj4gDQo+IC0JCXN0YXR1cyA9IHJldDsNCj4gLQl9IGVsc2Ug aWYgKGRldi0+YmFja2VuZF90eXBlID09IFZJUlRJT19VU0VSX0JBQ0tFTkRfVkhPU1RfVkRQQSkg ew0KPiAtCQllcnIgPSBkZXYtPm9wcy0+c2VuZF9yZXF1ZXN0KGRldiwgVkhPU1RfVVNFUl9HRVRf U1RBVFVTLA0KPiAtCQkJCSZzdGF0dXMpOw0KPiAtCX0gZWxzZSB7DQo+IC0JCWVyciA9IC1FTk9U U1VQOw0KPiAtCX0NCj4gLQ0KPiAtCWlmICghZXJyKSB7DQo+ICsJcmV0ID0gZGV2LT5vcHMtPmdl dF9zdGF0dXMoZGV2LCAmc3RhdHVzKTsNCj4gKwlpZiAoIXJldCkgew0KPiAgCQlkZXYtPnN0YXR1 cyA9IHN0YXR1czsNCj4gIAkJUE1EX0lOSVRfTE9HKERFQlVHLCAiVXBkYXRlZCBEZXZpY2UgU3Rh dHVzKDB4JTA4eCk6XG4iDQo+ICAJCQkiXHQtUkVTRVQ6ICV1XG4iDQo+IEBAIC04NzAsMTIgKzg0 NSwxMSBAQCB2aXJ0aW9fdXNlcl9kZXZfdXBkYXRlX3N0YXR1cyhzdHJ1Y3QgdmlydGlvX3VzZXJf ZGV2DQo+ICpkZXYpDQo+ICAJCQkhIShkZXYtPnN0YXR1cyAmIFZJUlRJT19DT05GSUdfU1RBVFVT X0ZFQVRVUkVTX09LKSwNCj4gIAkJCSEhKGRldi0+c3RhdHVzICYgVklSVElPX0NPTkZJR19TVEFU VVNfREVWX05FRURfUkVTRVQpLA0KPiAgCQkJISEoZGV2LT5zdGF0dXMgJiBWSVJUSU9fQ09ORklH X1NUQVRVU19GQUlMRUQpKTsNCj4gLQl9IGVsc2UgaWYgKGVyciAhPSAtRU5PVFNVUCkgew0KPiAt CQlQTURfSU5JVF9MT0coRVJSLCAiVkhPU1RfVVNFUl9HRVRfU1RBVFVTIGZhaWxlZCAoJWQpOiAl cyIsIGVyciwNCj4gKwl9IGVsc2UgaWYgKHJldCAhPSAtRU5PVFNVUCkgew0KPiArCQlQTURfSU5J VF9MT0coRVJSLCAiVmlydGlvLXVzZXIgZ2V0IHN0YXR1cyBmYWlsZWQgKCVkKTogJXMiLCByZXQs DQo+ICAJCQkgICAgIHN0cmVycm9yKGVycm5vKSk7DQo+ICAJfQ0KPiANCj4gLWVycm9yOg0KPiAg CXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZkZXYtPm11dGV4KTsNCj4gLQlyZXR1cm4gZXJyOw0KPiAr CXJldHVybiByZXQ7DQo+ICB9DQo+IC0tDQo+IDIuMjkuMg0KDQo=