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 738E7A0032; Mon, 15 Nov 2021 13:11:39 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E821440E01; Mon, 15 Nov 2021 13:11:38 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id A4CE440141 for ; Mon, 15 Nov 2021 13:11:37 +0100 (CET) X-IronPort-AV: E=McAfee;i="6200,9189,10168"; a="230888238" X-IronPort-AV: E=Sophos;i="5.87,236,1631602800"; d="scan'208";a="230888238" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Nov 2021 04:11:36 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,236,1631602800"; d="scan'208";a="471886297" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga002.jf.intel.com with ESMTP; 15 Nov 2021 04:11:36 -0800 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) 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.2242.12; Mon, 15 Nov 2021 04:11:36 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Mon, 15 Nov 2021 04:11:36 -0800 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.168) 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.12; Mon, 15 Nov 2021 04:11:36 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ndeqBH+BmoScpqa8YbujM8RInAmldwgP6m7xWLOEF1Pk8i04TNc9ozPt+Dw7z8BxuHxIsrHC8ciEWL31LgArFuBT+A/HK8Ly1l8BvzRJU3Q/zCP50t9UZ1KaWfsXfBjm7Iv0pfuDStAiMn1IsLKK2c1wLQGnROTwtIZd2rl8YHgUE53gw9FpaZDLN/uhnE/tc4Bk1+hWmuLcK9Bx3RTCUbtFuKs7toOCZoGAzu6L3hApoUrGUFd1EReYrrVPM1+1CQsTCkcE6QmuRQTs38Sc1bjOfDuMIwKk3bAOjvNOMy4XT1mPFfwUPXetJSnTyBrG6pMAOp6K0mMZNT1kNUTblw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=i9ZfEdulXNye7lSBlV56BHESRvlxltwSJJA05r3oFC4=; b=aN3pvbAslZnnHgPlN/h7O48CI82vxd6+oSCvRUwpI/J1YxA0xLDQQYbsi+Qy+YzT8uwRLdjNETV9IbRneS5ev6niOWbp4BzI3KYH/tRhiexW3MnKpWnfcWgldOUdQ2FKROO2gHxAWr08YZwr/oC8+K5+Jf23mCieVunVTiEtX/wRKXSz2a792Spqq2fr7YMQYgEPbYIw1jrVlrYjB59/r58z4CPOUbmOyOlv9ZQD0HN9h6RhtaSVwKn4v7PO2k9+nFWhQZDX3yjbEii+YEYla17ivxdCy/3mlIZDouFBUe5LwcCo3rKHiJpyz8R5fJlIfTZJ8F+wRuc6f5N6z5NaAg== 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=i9ZfEdulXNye7lSBlV56BHESRvlxltwSJJA05r3oFC4=; b=fYx8rRQL4Afnu9MxxU7ZACp8Bq7VUVAS385lY2Mu6A+BYrmH6Td4is8uAe0HEzQGJMvQLZzYMM8AcR5mxl8WCjtXZRJNNOBvWrnuV2CZnXdiLE5fEs7YdbocuESCIlhAr9L/0l58OEkv41KnT4To5/j8n1jXysaRZGjXDFNp5PE= Received: from SN6PR11MB3504.namprd11.prod.outlook.com (2603:10b6:805:d0::17) by SA1PR11MB5779.namprd11.prod.outlook.com (2603:10b6:806:232::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.16; Mon, 15 Nov 2021 12:11:31 +0000 Received: from SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::94ce:97cd:1b5f:b511]) by SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::94ce:97cd:1b5f:b511%7]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021 12:11:31 +0000 From: "Xia, Chenbo" To: "Ding, Xuan" , "maxime.coquelin@redhat.com" CC: "dev@dpdk.org" , "Hu, Jiayu" , "Wang, YuanX" , "He, Xingguang" , "Burakov, Anatoly" Subject: RE: [PATCH v3] vhost: fix physical address mapping Thread-Topic: [PATCH v3] vhost: fix physical address mapping Thread-Index: AQHX1fsGxO7//q0120SaxoIJj2LNUawEMrvwgAASn4CAAD0AgA== Date: Mon, 15 Nov 2021 12:11:31 +0000 Message-ID: References: <20211110054630.61524-1-xuan.ding@intel.com> <20211110060641.7666-1-xuan.ding@intel.com> In-Reply-To: Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 0379a78c-76ea-4425-3dc5-08d9a8310f85 x-ms-traffictypediagnostic: SA1PR11MB5779: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: GL+DdAi8E44t0+3z5gCv+Op1Cwbw3FjwaMEnBnSyPQcNunR/PoIe1BlEkRFBocvq7IY1aZtjq3eWNp4VDWVSwLK24qPZxaWuNt940nuGQQHfSSHTDUySXb2ZiMIYCNsCU8DVODTKR10ylzBGsKKClxIIn3T6w1SnPamlhFq7cpOOMKL9kgo8+ExXV2KznQ17g52TgkYB8V3YQ9tMuJExCX6Gwb1D/LHTJJrFFnI/vU8EnxSmkm+RvH6RnO8GZfvrK7pt+o8GjmjBYJKMxw24s20gMNcY5+DaEISs89bCrByE2uS03uZEcgdgMcoqBIFKEPYsX9JFoDfW6/tvoEXxh1gyb1Ns6kFcBPc3NVEK+O0BecumGbx5Br9aEYvG/RxADR9uwfm10hK+67VutaYtEKWszs2dbN9zrFN4ZOvHygxK3D2GnVnlKFVfoK94m4HhRvLqH8GFhFikT2hD/HDR2rTxPFJSAr9Tx98deWV6vfmrvos9rll2f0TCankSs87e3tbgFyJeru1/mVFMYf8Vui8YyPyFmkbpTGrnofWDLDnJ30p7vpeoznjdfbk5aFZEbzMt12z7dotVCFSN7euqE7I3wP5T3nVDIUvrDpjGYo2yH2HOxvo4KKbFEezTcVmgZDw9yi+HdHkNal/APF2/ZWCtAyuq6SRNxYniiD9yjvHsMbE/Z3/KKw8AZs8Td5THPHvi+A7Xw17v3f9FtDODKA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR11MB3504.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(110136005)(26005)(508600001)(38100700002)(122000001)(52536014)(54906003)(53546011)(9686003)(6506007)(55016002)(4326008)(33656002)(38070700005)(5660300002)(8676002)(66946007)(30864003)(86362001)(66556008)(64756008)(66446008)(83380400001)(107886003)(66476007)(71200400001)(8936002)(186003)(2906002)(76116006)(7696005)(316002)(82960400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?U0lsT2w0Q3UxNkJINVAxM1ozWklVNUFWa0E1RGVOT3htbmxsZXZFNWt4Q3pN?= =?utf-8?B?b1VpYXhoMDhBcTVWT29FQVNVbEZkWHZ3MHdSTmNHUEIzNlVzS1EvT25waGZ1?= =?utf-8?B?Z01wSk92cmVJeGZnbk5aMGNNRFExNmM4cFhlWFVJUnJsZHlPVkIyMkRxMi9r?= =?utf-8?B?THJPc1ZRYzMzYS9YemJBYVhubVdHVjlkQ0xOVWZwTk9zY3BydVFDN1lUWDRC?= =?utf-8?B?UTlobFQvNFhyS0lwS1FYMnFNZWhBTEt3WmVOV0xyWlRDSmZ6RW5GRnZkeVk4?= =?utf-8?B?eU5IY25GNW5HZ0w5cGVGSjA2Z2dsT0hlZitUUFh3bWd6dkZkcTh0Rmp1eWF6?= =?utf-8?B?UHVwbElzaGpOeXZFQzdacGszeTY0WnNZYXlEbTFBeHl5bHRjWUFzVXpGOE11?= =?utf-8?B?Z0xlUkhZVU02cW5TTnlKTUc4VTIxZnJBVCtXcXlHbFN0SlU2SUpLM0hVZFRQ?= =?utf-8?B?bnh2cG5DdFZHbFJRS3ZIdkx4SE8vOUgyVnNWSnNCZ0llYXhwNWxoZURDME81?= =?utf-8?B?VWNtNE9PcjNLZ3FQQnpIUWhhR1AzQTJJNGEvSmdsNkFZbUROdm5WSzlxU09U?= =?utf-8?B?UHM4cnFmRi9oUFMvTkRjLzVqUmZrTjhkNjFJd05COUgxSjBZUU9obWlGbkFw?= =?utf-8?B?WUZxNVhJSFJFRlh4Yk1xeE9Qa05kV0IwMDZpSC9sZGRhaHRGWVJDdUkxRGw1?= =?utf-8?B?MGpuelRZUVpmVm9wdFhzSDgxWVFmVzhxdVhLZmxFbVRJK3ZDMmRwNUV2a0Jn?= =?utf-8?B?SFhLUEdJckxnU3hGWXZzMVUxL1laa2NhRW90VU5ScXNCUDZkQ3FJVFdRdlUz?= =?utf-8?B?ck1abWVWREk4UFg1aUFsK096YkkreWVxbDBVSXJIWG8zLzFRdDZDbGxYVFBV?= =?utf-8?B?SWlvYjg2WS93cmE1Nm5ROHBMd2NIWmM1UUNRSFJmTEtyN3psRzZ0OWc3b1Vl?= =?utf-8?B?RVlWMTNYMVU4dml0MWExV3NFSFVUZUFDaVdhWVFwR3FrekVGdkVJMnV4NStR?= =?utf-8?B?WUt0YUFZQlludDA2c2Y4OU5ydXkxdzdXRTRqNE1uMjBZZ00veW1BRE5hR1Bw?= =?utf-8?B?YTRXcDlpRFR1c25zajBNMUdYR21UYy9NSDlVcGNuUkMvRU9JSTE1ZTNXTGlW?= =?utf-8?B?Y0EwMVZuS29GS1lMVU1DVEVSNThPSC9JWlh0M2JvNXlORFVJVUFKbFFRYWxs?= =?utf-8?B?Z2FRR1ZPZzRGUUlVWTVLVU1BVzRwWDlCbFBJaEdyVU9kZCtQSWhOb0k2RXVr?= =?utf-8?B?b1NNdTBVRmR3OURYaWJMUkw1ZEdqcGoxeXc1RjJJOCtzbUZLZG1CaVJhVDBk?= =?utf-8?B?QlgyWndaYnMvZGNYT0lsTTY1OXRnMXB4cXFvamMwbzQ5bDROeWRsSFBZK3px?= =?utf-8?B?RTlnRFNRNE1NdEk1Z2VRZjhxdWFmazlSZU1DNDk4UjIrOUlaT3lOa01JeEJw?= =?utf-8?B?a1hqOEl6R1RGMUNoTUt4bUFKQzh2cGR4YjY3WFNJaUxOZ0U0WXNZU2E4dUtC?= =?utf-8?B?R1luOUo0Y2k3bVFFNmQwcS9LSlpaOXY1UiswQ2NRMXVUV0dTUWd4dXFGQ2Mz?= =?utf-8?B?dG0zMmlZSktBQzFUeFQxei94SmxkcExkRVRUWlhWR2Z3bHZxQ2trUzlVZkQ2?= =?utf-8?B?WGFpb3VmbzNSelJRS1BFbm8wNGF1NUdRRzZMenNjUThnUXJZb0lkUTllSDEz?= =?utf-8?B?VDI1QzhXRXYvNHhqaHNCWjBUNnJEcVRIVWU3Y0haRklDdCt6djNiSjFiZVgw?= =?utf-8?B?R1lab0JyYXRCaklzdEluUnI2TW56UkhZeWs0bkNUMmkwZWxGYXNoaDEyelE0?= =?utf-8?B?cmtncVRoUGJtRHVCdHlmV0NmNDdoWkU0QXE0UU9IMG91S2RLWVNIelFjaXR2?= =?utf-8?B?cVZUQ3BVK0FCMUc2Y2N3ZjhDVzZMWm1QYXNaSmlZTURsYTQyeTJuQ29jYjJQ?= =?utf-8?B?QlNiRG83YVRqakYrMncwTFpTL1ovV2l6QzYyZ3VwUjNUUkxrczJVOEJoYjFR?= =?utf-8?B?TEs2d0VTOTArK0VCNWZxYmtXV1dYdVFCZmVGS3F4TkZUbjAzYnlGbU9JYUF3?= =?utf-8?B?M2xEdm5GK1hsZzF2TUJZODBIdjRlTTRTQkZQS3lJTFhYM3BCOVRpR00vOUxu?= =?utf-8?B?R1RPbTJ0T0hvaVhGQTVQcS9NKzBXeGpydm8vNis3WEhXcThHZ1oyaXBtc2Uw?= =?utf-8?Q?0LqiJ88u+Ydc5qJE7V/uIgI=3D?= 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: SN6PR11MB3504.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0379a78c-76ea-4425-3dc5-08d9a8310f85 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Nov 2021 12:11:31.5480 (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: N2SCLYztBPbIMjD5Nmgx3t1B16++TG1hIsO8ji2DwqrMln8HLMDpIOsMDw+VwJM5V+TF7CmxiiwBweF2KTuWOg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB5779 X-OriginatorOrg: intel.com 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 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBEaW5nLCBYdWFuIDx4dWFuLmRp bmdAaW50ZWwuY29tPg0KPiBTZW50OiBNb25kYXksIE5vdmVtYmVyIDE1LCAyMDIxIDQ6MTMgUE0N Cj4gVG86IFhpYSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGludGVsLmNvbT47IG1heGltZS5jb3F1ZWxp bkByZWRoYXQuY29tDQo+IENjOiBkZXZAZHBkay5vcmc7IEh1LCBKaWF5dSA8amlheXUuaHVAaW50 ZWwuY29tPjsgV2FuZywgWXVhblgNCj4gPHl1YW54LndhbmdAaW50ZWwuY29tPjsgSGUsIFhpbmdn dWFuZyA8eGluZ2d1YW5nLmhlQGludGVsLmNvbT47IEJ1cmFrb3YsDQo+IEFuYXRvbHkgPGFuYXRv bHkuYnVyYWtvdkBpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggdjNdIHZob3N0OiBm aXggcGh5c2ljYWwgYWRkcmVzcyBtYXBwaW5nDQo+IA0KPiBIaSBDaGVuYm8sDQo+IA0KPiA+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogWGlhLCBDaGVuYm8gPGNoZW5iby54 aWFAaW50ZWwuY29tPg0KPiA+IFNlbnQ6IDIwMjHlubQxMeaciDE15pelIDE1OjIxDQo+ID4gVG86 IERpbmcsIFh1YW4gPHh1YW4uZGluZ0BpbnRlbC5jb20+OyBtYXhpbWUuY29xdWVsaW5AcmVkaGF0 LmNvbQ0KPiA+IENjOiBkZXZAZHBkay5vcmc7IEh1LCBKaWF5dSA8amlheXUuaHVAaW50ZWwuY29t PjsgV2FuZywgWXVhblgNCj4gPiA8eXVhbngud2FuZ0BpbnRlbC5jb20+OyBIZSwgWGluZ2d1YW5n IDx4aW5nZ3VhbmcuaGVAaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggdjNdIHZo b3N0OiBmaXggcGh5c2ljYWwgYWRkcmVzcyBtYXBwaW5nDQo+ID4NCj4gPiBIaSBYdWFuLA0KPiA+ DQo+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gRnJvbTogRGluZywgWHVh biA8eHVhbi5kaW5nQGludGVsLmNvbT4NCj4gPiA+IFNlbnQ6IFdlZG5lc2RheSwgTm92ZW1iZXIg MTAsIDIwMjEgMjowNyBQTQ0KPiA+ID4gVG86IG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tOyBY aWEsIENoZW5ibyA8Y2hlbmJvLnhpYUBpbnRlbC5jb20+DQo+ID4gPiBDYzogZGV2QGRwZGsub3Jn OyBIdSwgSmlheXUgPGppYXl1Lmh1QGludGVsLmNvbT47IFdhbmcsIFl1YW5YDQo+ID4gPiA8eXVh bngud2FuZ0BpbnRlbC5jb20+OyBIZSwgWGluZ2d1YW5nIDx4aW5nZ3VhbmcuaGVAaW50ZWwuY29t PjsgRGluZywNCj4gPiA+IFh1YW4gPHh1YW4uZGluZ0BpbnRlbC5jb20+DQo+ID4gPiBTdWJqZWN0 OiBbUEFUQ0ggdjNdIHZob3N0OiBmaXggcGh5c2ljYWwgYWRkcmVzcyBtYXBwaW5nDQo+ID4gPg0K PiA+ID4gV2hlbiBjaG9vc2luZyBJT1ZBIGFzIFBBIG1vZGUsIElPVkEgaXMgbGlrZWx5IHRvIGJl IGRpc2NvbnRpbnVvdXMsDQo+ID4gPiB3aGljaCByZXF1aXJlcyBwYWdlIGJ5IHBhZ2UgbWFwcGlu ZyBmb3IgRE1BIGRldmljZXMuIFRvIGJlIGNvbnNpc3RlbnQsDQo+ID4gPiB0aGlzIHBhdGNoIGlt cGxlbWVudHMgcGFnZSBieSBwYWdlIG1hcHBpbmcgaW5zdGVhZCBvZiBtYXBwaW5nIGF0IHRoZQ0K PiA+ID4gcmVnaW9uIGdyYW51bGFyaXR5IGZvciBib3RoIElPVkEgYXMgVkEgYW5kIFBBIG1vZGUu DQo+ID4gPg0KPiA+ID4gRml4ZXM6IDdjNjFmYTA4YjcxNiAoInZob3N0OiBlbmFibGUgSU9NTVUg Zm9yIGFzeW5jIHZob3N0IikNCj4gPiA+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBYdWFuIERpbmcg PHh1YW4uZGluZ0BpbnRlbC5jb20+DQo+ID4gPiAtLS0NCj4gPiA+DQo+ID4gPiB2MzoNCj4gPiA+ ICogRml4IGNvbW1pdCB0aXRsZS4NCj4gPiA+DQo+ID4gPiB2MjoNCj4gPiA+ICogRml4IGEgZm9y bWF0IGlzc3VlLg0KPiA+ID4gLS0tDQo+ID4gPiAgbGliL3Zob3N0L3Zob3N0LmggICAgICB8ICAg MSArDQo+ID4gPiAgbGliL3Zob3N0L3Zob3N0X3VzZXIuYyB8IDEwNQ0KPiA+ID4gKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+ICAyIGZpbGVzIGNoYW5nZWQs IDUzIGluc2VydGlvbnMoKyksIDUzIGRlbGV0aW9ucygtKQ0KPiA+ID4NCj4gPiA+IGRpZmYgLS1n aXQgYS9saWIvdmhvc3Qvdmhvc3QuaCBiL2xpYi92aG9zdC92aG9zdC5oIGluZGV4DQo+ID4gPiA3 MDg1ZTA4ODVjLi5kMjQ2NTM4Y2E1IDEwMDY0NA0KPiA+ID4gLS0tIGEvbGliL3Zob3N0L3Zob3N0 LmgNCj4gPiA+ICsrKyBiL2xpYi92aG9zdC92aG9zdC5oDQo+ID4gPiBAQCAtMzU1LDYgKzM1NSw3 IEBAIHN0cnVjdCB2cmluZ19wYWNrZWRfZGVzY19ldmVudCB7ICBzdHJ1Y3QNCj4gPiA+IGd1ZXN0 X3BhZ2Ugew0KPiA+ID4gIAl1aW50NjRfdCBndWVzdF9waHlzX2FkZHI7DQo+ID4gPiAgCXVpbnQ2 NF90IGhvc3RfcGh5c19hZGRyOw0KPiA+ID4gKwl1aW50NjRfdCBob3N0X3VzZXJfYWRkcjsNCj4g PiA+ICAJdWludDY0X3Qgc2l6ZTsNCj4gPiA+ICB9Ow0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQg YS9saWIvdmhvc3Qvdmhvc3RfdXNlci5jIGIvbGliL3Zob3N0L3Zob3N0X3VzZXIuYyBpbmRleA0K PiA+ID4gYTc4MTM0NmM0ZC4uMzdjZGVkZGEzYyAxMDA2NDQNCj4gPiA+IC0tLSBhL2xpYi92aG9z dC92aG9zdF91c2VyLmMNCj4gPiA+ICsrKyBiL2xpYi92aG9zdC92aG9zdF91c2VyLmMNCj4gPiA+ IEBAIC0xNDQsNTIgKzE0NCw1NSBAQCBnZXRfYmxrX3NpemUoaW50IGZkKSAgfQ0KPiA+ID4NCj4g PiA+ICBzdGF0aWMgaW50DQo+ID4gPiAtYXN5bmNfZG1hX21hcChzdHJ1Y3QgcnRlX3Zob3N0X21l bV9yZWdpb24gKnJlZ2lvbiwgYm9vbCBkb19tYXApDQo+ID4gPiArYXN5bmNfZG1hX21hcChzdHJ1 Y3QgdmlydGlvX25ldCAqZGV2LCBib29sIGRvX21hcCkNCj4gPiA+ICB7DQo+ID4gPiAtCXVpbnQ2 NF90IGhvc3RfaW92YTsNCj4gPiA+ICAJaW50IHJldCA9IDA7DQo+ID4gPiAtDQo+ID4gPiAtCWhv c3RfaW92YSA9IHJ0ZV9tZW1fdmlydDJpb3ZhKCh2b2lkICopKHVpbnRwdHJfdClyZWdpb24tDQo+ ID4gPmhvc3RfdXNlcl9hZGRyKTsNCj4gPiA+ICsJdWludDMyX3QgaTsNCj4gPiA+ICsJc3RydWN0 IGd1ZXN0X3BhZ2UgKnBhZ2U7DQo+ID4gPiAgCWlmIChkb19tYXApIHsNCj4gPiA+IC0JCS8qIEFk ZCBtYXBwZWQgcmVnaW9uIGludG8gdGhlIGRlZmF1bHQgY29udGFpbmVyIG9mIERQREsuICovDQo+ ID4gPiAtCQlyZXQgPQ0KPiA+IHJ0ZV92ZmlvX2NvbnRhaW5lcl9kbWFfbWFwKFJURV9WRklPX0RF RkFVTFRfQ09OVEFJTkVSX0ZELA0KPiA+ID4gLQkJCQkJCSByZWdpb24tPmhvc3RfdXNlcl9hZGRy LA0KPiA+ID4gLQkJCQkJCSBob3N0X2lvdmEsDQo+ID4gPiAtCQkJCQkJIHJlZ2lvbi0+c2l6ZSk7 DQo+ID4gPiAtCQlpZiAocmV0KSB7DQo+ID4gPiAtCQkJLyoNCj4gPiA+IC0JCQkgKiBETUEgZGV2 aWNlIG1heSBiaW5kIHdpdGgga2VybmVsIGRyaXZlciwgaW4gdGhpcyBjYXNlLA0KPiA+ID4gLQkJ CSAqIHdlIGRvbid0IG5lZWQgdG8gcHJvZ3JhbSBJT01NVSBtYW51YWxseS4NCj4gPiBIb3dldmVy LCBpZiBubw0KPiA+ID4gLQkJCSAqIGRldmljZSBpcyBib3VuZCB3aXRoIHZmaW8vdWlvIGluIERQ REssIGFuZCB2ZmlvIGtlcm5lbA0KPiA+ID4gLQkJCSAqIG1vZHVsZSBpcyBsb2FkZWQsIHRoZSBB UEkgd2lsbCBzdGlsbCBiZSBjYWxsZWQgYW5kDQo+ID4gcmV0dXJuDQo+ID4gPiAtCQkJICogd2l0 aCBFTk9ERVYvRU5PU1VQLg0KPiA+ID4gLQkJCSAqDQo+ID4gPiAtCQkJICogRFBESyB2ZmlvIG9u bHkgcmV0dXJucyBFTk9ERVYvRU5PU1VQIGluIHZlcnkNCj4gPiBzaW1pbGFyDQo+ID4gPiAtCQkJ ICogc2l0dWF0aW9ucyh2ZmlvIGVpdGhlciB1bnN1cHBvcnRlZCwgb3Igc3VwcG9ydGVkDQo+ID4g PiAtCQkJICogYnV0IG5vIGRldmljZXMgZm91bmQpLiBFaXRoZXIgd2F5LCBubyBtYXBwaW5ncyBj b3VsZA0KPiA+IGJlDQo+ID4gPiAtCQkJICogcGVyZm9ybWVkLiBXZSB0cmVhdCBpdCBhcyBub3Jt YWwgY2FzZSBpbiBhc3luYyBwYXRoLg0KPiA+ID4gLQkJCSAqLw0KPiA+ID4gLQkJCWlmIChydGVf ZXJybm8gPT0gRU5PREVWIHx8IHJ0ZV9lcnJubyA9PSBFTk9UU1VQKQ0KPiA+ID4gKwkJZm9yIChp ID0gMDsgaSA8IGRldi0+bnJfZ3Vlc3RfcGFnZXM7IGkrKykgew0KPiA+ID4gKwkJCXBhZ2UgPSAm ZGV2LT5ndWVzdF9wYWdlc1tpXTsNCj4gPiA+ICsJCQlyZXQgPQ0KPiA+ID4gcnRlX3ZmaW9fY29u dGFpbmVyX2RtYV9tYXAoUlRFX1ZGSU9fREVGQVVMVF9DT05UQUlORVJfRkQsDQo+ID4gPiArCQkJ CQkJCSBwYWdlLQ0KPiA+ID5ob3N0X3VzZXJfYWRkciwNCj4gPiA+ICsJCQkJCQkJIHBhZ2UtDQo+ ID4gPmhvc3RfcGh5c19hZGRyLA0KPiA+ID4gKwkJCQkJCQkgcGFnZS0+c2l6ZSk7DQo+ID4gPiAr CQkJaWYgKHJldCkgew0KPiA+ID4gKwkJCQkvKg0KPiA+ID4gKwkJCQkgKiBETUEgZGV2aWNlIG1h eSBiaW5kIHdpdGgga2VybmVsIGRyaXZlciwgaW4NCj4gPiB0aGlzDQo+ID4gPiBjYXNlLA0KPiA+ ID4gKwkJCQkgKiB3ZSBkb24ndCBuZWVkIHRvIHByb2dyYW0gSU9NTVUgbWFudWFsbHkuDQo+ID4g SG93ZXZlciwNCj4gPiA+IGlmIG5vDQo+ID4gPiArCQkJCSAqIGRldmljZSBpcyBib3VuZCB3aXRo IHZmaW8vdWlvIGluIERQREssIGFuZA0KPiA+IHZmaW8NCj4gPiA+IGtlcm5lbA0KPiA+ID4gKwkJ CQkgKiBtb2R1bGUgaXMgbG9hZGVkLCB0aGUgQVBJIHdpbGwgc3RpbGwgYmUgY2FsbGVkDQo+ID4g YW5kDQo+ID4gPiByZXR1cm4NCj4gPiA+ICsJCQkJICogd2l0aCBFTk9ERVYvRU5PU1VQLg0KPiA+ ID4gKwkJCQkgKg0KPiA+ID4gKwkJCQkgKiBEUERLIHZmaW8gb25seSByZXR1cm5zIEVOT0RFVi9F Tk9TVVAgaW4NCj4gPiB2ZXJ5DQo+ID4gPiBzaW1pbGFyDQo+ID4gPiArCQkJCSAqIHNpdHVhdGlv bnModmZpbyBlaXRoZXIgdW5zdXBwb3J0ZWQsIG9yDQo+ID4gc3VwcG9ydGVkDQo+ID4gPiArCQkJ CSAqIGJ1dCBubyBkZXZpY2VzIGZvdW5kKS4gRWl0aGVyIHdheSwgbm8NCj4gPiBtYXBwaW5ncw0K PiA+ID4gY291bGQgYmUNCj4gPiA+ICsJCQkJICogcGVyZm9ybWVkLiBXZSB0cmVhdCBpdCBhcyBu b3JtYWwgY2FzZSBpbg0KPiA+IGFzeW5jIHBhdGguDQo+ID4gPiArCQkJCSAqLw0KPiA+ID4gKwkJ CQlpZiAocnRlX2Vycm5vID09IEVOT0RFViB8fCBydGVfZXJybm8gPT0NCj4gPiBFTk9UU1VQKQ0K PiA+ID4gKwkJCQkJcmV0dXJuIDA7DQo+ID4NCj4gPiBJIGRvbid0IHRoaW5rIHRoaXMgbG9naWMg aXMgZ29vZCBlbm91Z2ggdG8gb25seSBpbmNsdWRlIHRoZSBjYXNlIG9mIGtlcm5lbA0KPiBkcml2 ZXIgKw0KPiA+IHVubmVlZGVkIG1hcHBpbmcuIENvdWxkIGFsc28gYmUgdmZpbyBkcml2ZXIgKyBp bmNvcnJlY3QgbWFwcGluZy4gSXQncyBub3QNCj4gZ29vZA0KPiA+IHRvIGFzc3VtZSBFTk9ERVYg YW5kIEVOT1RTVVAgb25seSBjb21lcyBmcm9tIERQREssIGl0IGNvdWxkIGJlIGZyb20NCj4gPiBr ZXJuZWwuDQo+IA0KPiBUaGUgY29kZSBoZXJlIGlzIGEgd29ya2Fyb3VuZCB0byBiZSBjb21wYXRp YmxlIHdpdGgga2VybmVsIGRyaXZlciwgc2luY2Ugd2UNCj4gY2FuJ3QNCj4ga25vdyB0aGUgZGV2 aWNlIGRyaXZlciBpbiB2aG9zdCBmb3Igbm93LiBJbiBmYWN0LCB0aGUgYXBwcm9wcmlhdGUgYXBw cm9hY2ggZm9yDQo+IGp1c3RpZnlpbmcNCj4gd2hldGhlciBwZXJmb3JtIG1hcHBpbmcgaGVyZSBz aG91bGQgYmFzZSBvbiB0aGUgZGV2aWNlIGRyaXZlci4NCg0KT0suIEJ1dCBzaW5jZSB0aGlzIGNv ZGUgZG9lcyBub3QgY29uc2lkZXIgdGhlIGNhc2Ugb2YgRnJlZUJTRCwgY2hlY2tpbmcgRU5PREVW IA0KaXMgZW5vdWdoLg0KDQo+IA0KPiA+DQo+ID4gPiArDQo+ID4gPiArCQkJCVZIT1NUX0xPR19D T05GSUcoRVJSLCAiRE1BIGVuZ2luZSBtYXANCj4gPiBmYWlsZWRcbiIpOw0KPiA+ID4gKwkJCQkv KiBETUEgbWFwcGluZyBlcnJvcnMgd29uJ3Qgc3RvcA0KPiA+ID4gVkhTVF9VU0VSX1NFVF9NRU1f VEFCTEUuICovDQoNClZIU1QgLT4gVkhPU1QNCg0KPiA+ID4gIAkJCQlyZXR1cm4gMDsNCj4gPg0K PiA+IEkgdW5kZXJzdGFuZCB0aGlzIGZ1bmN0aW9uIGNvdmVycyBtYW55IGNhc2VzIGFuZCBpdCdz IGRpZmZpY3VsdCB0bw0KPiBkaWZmZXJlbnRpYXRlLCBTbw0KPiA+IHlvdSBkb24ndCBjaGVjayB0 aGUgcmV0dXJuIHZhbHVlIGJ1dCB1c2UgdGhlIGxvZyBoZXJlIHRvIGluZm9ybSB1c2Vycy4NCj4g Pg0KPiA+IEkgc3VnZ2VzdCB0byB1c2UgYSBXQVJOSU5HIGxvZyAoc2luY2UgdGhpcyBjb3VsZCBm YWlsIHdpdGgga2VybmVsIGRyaXZlcg0KPiBjYXNlIGJ1dA0KPiA+IGl0J3MgYWN0dWFsbHkgY29y cmVjdCkgYW5kIHByaW50IHRoZSBlcnJubyBpbmZvIGZvciB1c2Vycy4NCj4gDQo+IFRoYW5rcyBm b3IgeW91ciBzdWdnZXN0aW9uLiBBY2NvcmRpbmdseSwgSSB3aWxsIHVwZGF0ZSB0aGUgZG9jIHRv IGluZm9ybSB1c2VyDQo+IHNob3VsZA0KPiB0YWtlIHdoaWNoIGFjdGlvbiBhY2NvcmRpbmcgdG8g ZGlmZmVyZW50IHdhcm5pbmcgbWVzc2FnZS4NCg0KSWYgRU5PREVWIGlzIHVzZWQgdG8gZmlsdGVy IHRoZSBlcnJvciBidXQgY29ycmVjdCBjYXNlICh1c2luZyBrZXJuZWwgZHJpdmVyKSwNCnlvdSBj YW4ganVzdCB1c2UgRVJSIGxvZyBoZXJlLiBCdXQgcmV0dXJuIHR5cGUgc2hvdWxkIGJlIHZvaWQu DQoNClRoYW5rcywNCkNoZW5ibw0KDQo+IA0KPiA+DQo+ID4gTm90ZTogdGhpcyBpcyBvbmx5IGEg d29ya2Fyb3VuZCwgbm90IGEgcGVyZmVjdCBzb2x1dGlvbi4gQnV0IHNpbmNlIHZob3N0DQo+IHdp dGgNCj4gPiBkbWFkZXYgaXMgaW4gcHJvZ3Jlc3MgYW5kIG1vc3QgbGlrZWx5IHZob3N0IGxpYiB3 aWxsIGF3YXJlIG9mIGRtYWRldiBpZC4gVGhlDQo+ID4gcHJvYmxlbSBjb3VsZCBiZSBzb2x2ZWQg bGF0ZXIgKHNvbWUgZG1hZGV2IGFwaSBjb3VsZCBiZSB1c2VkIHRvIGtub3cgVkEvUEENCj4gPiBt b2RlIGFuZCBrZXJuZWwvdXNlciBkcml2ZXI/KQ0KPiANCj4gV2l0aCBydGVfaW92YV9tb2RlKCks IHdlIGNhbiBrbm93IGN1cnJlbnQgSU9WQSBtb2RlIGluIERQREsuIEl0IHdpbGwgbm90DQo+IGFm ZmVjdA0KPiB2ZmlvIG1hcHBpbmcgYmVjYXVzZSBib3VuZCBhIGRldmljZSB0byB2ZmlvIGFsd2F5 cyByZXF1aXJlcyBtYXBwaW5nLiBGb3INCj4gZG1hZGV2LA0KPiBpdCBpcyBwb3NzaWJsZSB0byBr bm93IGN1cnJlbnQgZHJpdmVyLCBzaW5jZSB0aGUgaW50ZWdyYXRpb24gZm9yIGFzeW5jIHZob3N0 DQo+IHdpdGggZG1hZGV2DQo+IGlzIGluIHByb2dyZXNzLCBzbyBsZXQncyB1c2UgdGhpcyBzb2x1 dGlvbiBmb3Igbm93Lg0KPiANCj4gPg0KPiA+ID4gLQ0KPiA+ID4gLQkJCVZIT1NUX0xPR19DT05G SUcoRVJSLCAiRE1BIGVuZ2luZSBtYXAgZmFpbGVkXG4iKTsNCj4gPiA+IC0JCQkvKiBETUEgbWFw cGluZyBlcnJvcnMgd29uJ3Qgc3RvcA0KPiA+IFZIU1RfVVNFUl9TRVRfTUVNX1RBQkxFLiAqLw0K PiA+ID4gLQkJCXJldHVybiAwOw0KPiA+ID4gKwkJCX0NCj4gPiA+ICAJCX0NCj4gPiA+DQo+ID4g PiAgCX0gZWxzZSB7DQo+ID4gPiAtCQkvKiBSZW1vdmUgbWFwcGVkIHJlZ2lvbiBmcm9tIHRoZSBk ZWZhdWx0IGNvbnRhaW5lciBvZiBEUERLLg0KPiA+ICovDQo+ID4gPiAtCQlyZXQgPQ0KPiA+IHJ0 ZV92ZmlvX2NvbnRhaW5lcl9kbWFfdW5tYXAoUlRFX1ZGSU9fREVGQVVMVF9DT05UQUlORVJfRkQs DQo+ID4gPiAtCQkJCQkJICAgcmVnaW9uLT5ob3N0X3VzZXJfYWRkciwNCj4gPiA+IC0JCQkJCQkg ICBob3N0X2lvdmEsDQo+ID4gPiAtCQkJCQkJICAgcmVnaW9uLT5zaXplKTsNCj4gPiA+IC0JCWlm IChyZXQpIHsNCj4gPiA+IC0JCQkvKiBsaWtlIERNQSBtYXAsIGlnbm9yZSB0aGUga2VybmVsIGRy aXZlciBjYXNlIHdoZW4NCj4gPiB1bm1hcC4NCj4gPiA+ICovDQo+ID4gPiAtCQkJaWYgKHJ0ZV9l cnJubyA9PSBFSU5WQUwpDQo+ID4gPiAtCQkJCXJldHVybiAwOw0KPiA+ID4gKwkJZm9yIChpID0g MDsgaSA8IGRldi0+bnJfZ3Vlc3RfcGFnZXM7IGkrKykgew0KPiA+ID4gKwkJCXBhZ2UgPSAmZGV2 LT5ndWVzdF9wYWdlc1tpXTsNCj4gPiA+ICsJCQlyZXQgPQ0KPiA+ID4gcnRlX3ZmaW9fY29udGFp bmVyX2RtYV91bm1hcChSVEVfVkZJT19ERUZBVUxUX0NPTlRBSU5FUl9GRCwNCj4gPiA+ICsJCQkJ CQkJICAgcGFnZS0NCj4gPiA+aG9zdF91c2VyX2FkZHIsDQo+ID4gPiArCQkJCQkJCSAgIHBhZ2Ut DQo+ID4gPmhvc3RfcGh5c19hZGRyLA0KPiA+ID4gKwkJCQkJCQkgICBwYWdlLT5zaXplKTsNCj4g PiA+ICsJCQlpZiAocmV0KSB7DQo+ID4gPiArCQkJCS8qIGxpa2UgRE1BIG1hcCwgaWdub3JlIHRo ZSBrZXJuZWwgZHJpdmVyIGNhc2UNCj4gPiB3aGVuDQo+ID4gPiB1bm1hcC4gKi8NCj4gPiA+ICsJ CQkJaWYgKHJ0ZV9lcnJubyA9PSBFSU5WQUwpDQo+ID4gPiArCQkJCQlyZXR1cm4gMDsNCj4gPiA+ DQo+ID4gPiAtCQkJVkhPU1RfTE9HX0NPTkZJRyhFUlIsICJETUEgZW5naW5lIHVubWFwDQo+ID4g ZmFpbGVkXG4iKTsNCj4gPiA+IC0JCQlyZXR1cm4gcmV0Ow0KPiA+ID4gKwkJCQlWSE9TVF9MT0df Q09ORklHKEVSUiwgIkRNQSBlbmdpbmUNCj4gPiB1bm1hcCBmYWlsZWRcbiIpOw0KPiA+ID4gKwkJ CQlyZXR1cm4gcmV0Ow0KPiA+DQo+ID4gU2FtZSBoZXJlLg0KPiA+DQo+ID4gQW5kIHNpbmNlIHlv dSBkb24ndCBjaGVjayByZXR1cm4gdmFsdWUsIHlvdSBjYW4ganVzdCBkb24ndCByZXR1cm4gYW55 dGhpbmcNCj4gYW5kDQo+ID4gcmV0dXJuIHR5cGUgY2FuIGJlIHZvaWQNCj4gDQo+IEdvb2QgY2F0 Y2gsIHBscyBzZWUgbmV4dCB2ZXJzaW9uLg0KPiANCj4gVGhhbmtzLA0KPiBYdWFuDQo+IA0KPiA+ DQo+ID4gVGhhbmtzLA0KPiA+IENoZW5ibw0KPiA+DQo+ID4NCj4gPiA+ICsJCQl9DQo+ID4gPiAg CQl9DQo+ID4gPiAgCX0NCj4gPiA+DQo+ID4gPiBAQCAtMjA1LDEyICsyMDgsMTIgQEAgZnJlZV9t ZW1fcmVnaW9uKHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYpDQo+ID4gPiAgCWlmICghZGV2IHx8ICFk ZXYtPm1lbSkNCj4gPiA+ICAJCXJldHVybjsNCj4gPiA+DQo+ID4gPiArCWlmIChkZXYtPmFzeW5j X2NvcHkgJiYgcnRlX3ZmaW9faXNfZW5hYmxlZCgidmZpbyIpKQ0KPiA+ID4gKwkJYXN5bmNfZG1h X21hcChkZXYsIGZhbHNlKTsNCj4gPiA+ICsNCj4gPiA+ICAJZm9yIChpID0gMDsgaSA8IGRldi0+ bWVtLT5ucmVnaW9uczsgaSsrKSB7DQo+ID4gPiAgCQlyZWcgPSAmZGV2LT5tZW0tPnJlZ2lvbnNb aV07DQo+ID4gPiAgCQlpZiAocmVnLT5ob3N0X3VzZXJfYWRkcikgew0KPiA+ID4gLQkJCWlmIChk ZXYtPmFzeW5jX2NvcHkgJiYgcnRlX3ZmaW9faXNfZW5hYmxlZCgidmZpbyIpKQ0KPiA+ID4gLQkJ CQlhc3luY19kbWFfbWFwKHJlZywgZmFsc2UpOw0KPiA+ID4gLQ0KPiA+ID4gIAkJCW11bm1hcChy ZWctPm1tYXBfYWRkciwgcmVnLT5tbWFwX3NpemUpOw0KPiA+ID4gIAkJCWNsb3NlKHJlZy0+ZmQp Ow0KPiA+ID4gIAkJfQ0KPiA+ID4gQEAgLTk3OCw3ICs5ODEsNyBAQCB2aG9zdF91c2VyX3NldF92 cmluZ19iYXNlKHN0cnVjdCB2aXJ0aW9fbmV0DQo+ID4gPiAqKnBkZXYsDQo+ID4gPg0KPiA+ID4g IHN0YXRpYyBpbnQNCj4gPiA+ICBhZGRfb25lX2d1ZXN0X3BhZ2Uoc3RydWN0IHZpcnRpb19uZXQg KmRldiwgdWludDY0X3QgZ3Vlc3RfcGh5c19hZGRyLA0KPiA+ID4gLQkJICAgdWludDY0X3QgaG9z dF9waHlzX2FkZHIsIHVpbnQ2NF90IHNpemUpDQo+ID4gPiArCQkgICB1aW50NjRfdCBob3N0X3Bo eXNfYWRkciwgdWludDY0X3QgaG9zdF91c2VyX2FkZHIsIHVpbnQ2NF90DQo+ID4gc2l6ZSkNCj4g PiA+ICB7DQo+ID4gPiAgCXN0cnVjdCBndWVzdF9wYWdlICpwYWdlLCAqbGFzdF9wYWdlOw0KPiA+ ID4gIAlzdHJ1Y3QgZ3Vlc3RfcGFnZSAqb2xkX3BhZ2VzOw0KPiA+ID4gQEAgLTEwMDksNiArMTAx Miw3IEBAIGFkZF9vbmVfZ3Vlc3RfcGFnZShzdHJ1Y3QgdmlydGlvX25ldCAqZGV2LA0KPiA+ID4g dWludDY0X3QgZ3Vlc3RfcGh5c19hZGRyLA0KPiA+ID4gIAlwYWdlID0gJmRldi0+Z3Vlc3RfcGFn ZXNbZGV2LT5ucl9ndWVzdF9wYWdlcysrXTsNCj4gPiA+ICAJcGFnZS0+Z3Vlc3RfcGh5c19hZGRy ID0gZ3Vlc3RfcGh5c19hZGRyOw0KPiA+ID4gIAlwYWdlLT5ob3N0X3BoeXNfYWRkciAgPSBob3N0 X3BoeXNfYWRkcjsNCj4gPiA+ICsJcGFnZS0+aG9zdF91c2VyX2FkZHIgPSBob3N0X3VzZXJfYWRk cjsNCj4gPiA+ICAJcGFnZS0+c2l6ZSA9IHNpemU7DQo+ID4gPg0KPiA+ID4gIAlyZXR1cm4gMDsN Cj4gPiA+IEBAIC0xMDI4LDcgKzEwMzIsOCBAQCBhZGRfZ3Vlc3RfcGFnZXMoc3RydWN0IHZpcnRp b19uZXQgKmRldiwgc3RydWN0DQo+ID4gPiBydGVfdmhvc3RfbWVtX3JlZ2lvbiAqcmVnLA0KPiA+ ID4gIAlzaXplID0gcGFnZV9zaXplIC0gKGd1ZXN0X3BoeXNfYWRkciAmIChwYWdlX3NpemUgLSAx KSk7DQo+ID4gPiAgCXNpemUgPSBSVEVfTUlOKHNpemUsIHJlZ19zaXplKTsNCj4gPiA+DQo+ID4g PiAtCWlmIChhZGRfb25lX2d1ZXN0X3BhZ2UoZGV2LCBndWVzdF9waHlzX2FkZHIsIGhvc3RfcGh5 c19hZGRyLCBzaXplKSA8DQo+ID4gMCkNCj4gPiA+ICsJaWYgKGFkZF9vbmVfZ3Vlc3RfcGFnZShk ZXYsIGd1ZXN0X3BoeXNfYWRkciwgaG9zdF9waHlzX2FkZHIsDQo+ID4gPiArCQkJICAgICAgIGhv c3RfdXNlcl9hZGRyLCBzaXplKSA8IDApDQo+ID4gPiAgCQlyZXR1cm4gLTE7DQo+ID4gPg0KPiA+ ID4gIAlob3N0X3VzZXJfYWRkciAgKz0gc2l6ZTsNCj4gPiA+IEBAIC0xMDQwLDcgKzEwNDUsNyBA QCBhZGRfZ3Vlc3RfcGFnZXMoc3RydWN0IHZpcnRpb19uZXQgKmRldiwgc3RydWN0DQo+ID4gPiBy dGVfdmhvc3RfbWVtX3JlZ2lvbiAqcmVnLA0KPiA+ID4gIAkJaG9zdF9waHlzX2FkZHIgPSBydGVf bWVtX3ZpcnQyaW92YSgodm9pZCAqKSh1aW50cHRyX3QpDQo+ID4gPiAgCQkJCQkJICBob3N0X3Vz ZXJfYWRkcik7DQo+ID4gPiAgCQlpZiAoYWRkX29uZV9ndWVzdF9wYWdlKGRldiwgZ3Vlc3RfcGh5 c19hZGRyLCBob3N0X3BoeXNfYWRkciwNCj4gPiA+IC0JCQkJc2l6ZSkgPCAwKQ0KPiA+ID4gKwkJ CQkgICAgICAgaG9zdF91c2VyX2FkZHIsIHNpemUpIDwgMCkNCj4gPiA+ICAJCQlyZXR1cm4gLTE7 DQo+ID4gPg0KPiA+ID4gIAkJaG9zdF91c2VyX2FkZHIgICs9IHNpemU7DQo+ID4gPiBAQCAtMTIx NSw3ICsxMjIwLDYgQEAgdmhvc3RfdXNlcl9tbWFwX3JlZ2lvbihzdHJ1Y3QgdmlydGlvX25ldCAq ZGV2LA0KPiA+ID4gIAl1aW50NjRfdCBtbWFwX3NpemU7DQo+ID4gPiAgCXVpbnQ2NF90IGFsaWdu bWVudDsNCj4gPiA+ICAJaW50IHBvcHVsYXRlOw0KPiA+ID4gLQlpbnQgcmV0Ow0KPiA+ID4NCj4g PiA+ICAJLyogQ2hlY2sgZm9yIG1lbW9yeV9zaXplICsgbW1hcF9vZmZzZXQgb3ZlcmZsb3cgKi8N Cj4gPiA+ICAJaWYgKG1tYXBfb2Zmc2V0ID49IC1yZWdpb24tPnNpemUpIHsNCj4gPiA+IEBAIC0x Mjc0LDE0ICsxMjc4LDYgQEAgdmhvc3RfdXNlcl9tbWFwX3JlZ2lvbihzdHJ1Y3QgdmlydGlvX25l dCAqZGV2LA0KPiA+ID4gIAkJCVZIT1NUX0xPR19DT05GSUcoRVJSLCAiYWRkaW5nIGd1ZXN0IHBh Z2VzIHRvDQo+ID4gcmVnaW9uIGZhaWxlZC5cbiIpOw0KPiA+ID4gIAkJCXJldHVybiAtMTsNCj4g PiA+ICAJCX0NCj4gPiA+IC0NCj4gPiA+IC0JCWlmIChydGVfdmZpb19pc19lbmFibGVkKCJ2Zmlv IikpIHsNCj4gPiA+IC0JCQlyZXQgPSBhc3luY19kbWFfbWFwKHJlZ2lvbiwgdHJ1ZSk7DQo+ID4g PiAtCQkJaWYgKHJldCkgew0KPiA+ID4gLQkJCQlWSE9TVF9MT0dfQ09ORklHKEVSUiwgIkNvbmZp Z3VyZSBJT01NVQ0KPiA+IGZvciBETUEgZW5naW5lDQo+ID4gPiBmYWlsZWRcbiIpOw0KPiA+ID4g LQkJCQlyZXR1cm4gLTE7DQo+ID4gPiAtCQkJfQ0KPiA+ID4gLQkJfQ0KPiA+ID4gIAl9DQo+ID4g Pg0KPiA+ID4gIAlWSE9TVF9MT0dfQ09ORklHKElORk8sDQo+ID4gPiBAQCAtMTQyMCw2ICsxNDE2 LDkgQEAgdmhvc3RfdXNlcl9zZXRfbWVtX3RhYmxlKHN0cnVjdCB2aXJ0aW9fbmV0DQo+ID4gPiAq KnBkZXYsIHN0cnVjdCBWaG9zdFVzZXJNc2cgKm1zZywNCj4gPiA+ICAJCWRldi0+bWVtLT5ucmVn aW9ucysrOw0KPiA+ID4gIAl9DQo+ID4gPg0KPiA+ID4gKwlpZiAoZGV2LT5hc3luY19jb3B5ICYm IHJ0ZV92ZmlvX2lzX2VuYWJsZWQoInZmaW8iKSkNCj4gPiA+ICsJCWFzeW5jX2RtYV9tYXAoZGV2 LCB0cnVlKTsNCj4gPiA+ICsNCj4gPiA+ICAJaWYgKHZob3N0X3VzZXJfcG9zdGNvcHlfcmVnaXN0 ZXIoZGV2LCBtYWluX2ZkLCBtc2cpIDwgMCkNCj4gPiA+ICAJCWdvdG8gZnJlZV9tZW1fdGFibGU7 DQo+ID4gPg0KPiA+ID4gLS0NCj4gPiA+IDIuMTcuMQ0KDQo=