Received: by 2002:a05:6358:16cc:b0:ea:6187:17c9 with SMTP id r12csp9440496rwl; Wed, 11 Jan 2023 05:52:08 -0800 (PST) X-Google-Smtp-Source: AMrXdXua0NRsXFT7dDuCAudfsCbN9ce6OwGWGjYzRYFR+0F9tR67TaL+LWKjiiWePUGJLEoeRGrc X-Received: by 2002:a05:6a20:2ca:b0:b6:4ca8:eb7d with SMTP id 10-20020a056a2002ca00b000b64ca8eb7dmr1695404pzb.50.1673445128299; Wed, 11 Jan 2023 05:52:08 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1673445128; cv=pass; d=google.com; s=arc-20160816; b=wCcTM2YgNy60xMFGLJIN7SYn3r7KTug5refsHr8KB4yXJJbo9aZDSTld2/oO9bBuXY vH3Z7JGjcuuwIj7Jy6993ZPNaRDRoKM0FMzQgcwYWU9I6Ed6ptpoDmjDdK5zAmgfp7U7 eyphDXlFFyiR1lKTzPgpDJjA/twY5t3G7fswCEx00Gu6W7HPHzbsI59OTObajothjmTu 9RVqi1y7rdFQlWdpoN200IQnQOmNYcAM8Cawo888CG/J38EHpQPAexoe4Cpafe8eNy1h oVtY7P9UhAsgU3Dg3qhMhgDLhK2Db9W9zzQK+yaATuwvyI32EM73d/oUrRP8QV8gy6MF wY0A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=xSbpN90dAJabHceiCSgE+xCHmogFWxcF42ltD42P7aI=; b=OkGjyJ5t+KLkvZy6OpX3y7C3GMArcq3CCGpW5sX0yFUJTi3Nmnts5ugn5yFKZ8VN3r ukzeTBc4SrI7yHeD+TSN9TDKsnbSUd3xS9Ztex/0oXhOxogySIs7oA8rwOysbnAZBQrV KG1PD1erDhWFbZ8wjkgsubYOueCaLiokQDqwEHfSButpS31r7/hqwXZnU1lL9LrYWq9P iYr/RtXGGF+1Khf30+lWgLy22zrgpelxhAbJltSZ97FU+nYxaMRcm0vxjhw7t89rG09M ikJm8V3Te5YqkL//rh/IFHF7Rhl5KjSGJPNr/Z7nsSPshTfJz/5S2Lpg1o5HXbs0iNHa +Tng== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@Nvidia.com header.s=selector2 header.b=Wrh1k281; arc=pass (i=1 spf=pass spfdomain=nvidia.com dkim=pass dkdomain=nvidia.com dmarc=pass fromdomain=nvidia.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=nvidia.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w4-20020a170902e88400b001890b070acesi15974174plg.38.2023.01.11.05.52.01; Wed, 11 Jan 2023 05:52:08 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@Nvidia.com header.s=selector2 header.b=Wrh1k281; arc=pass (i=1 spf=pass spfdomain=nvidia.com dkim=pass dkdomain=nvidia.com dmarc=pass fromdomain=nvidia.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=nvidia.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S239067AbjAKNeb (ORCPT + 53 others); Wed, 11 Jan 2023 08:34:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53852 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239284AbjAKNdD (ORCPT ); Wed, 11 Jan 2023 08:33:03 -0500 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2069.outbound.protection.outlook.com [40.107.92.69]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4A8591ADA8 for ; Wed, 11 Jan 2023 05:32:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WA3dnl/Jc66u8nPEvv6xiLETSWqfQJHXqJeMcAmKApWlGXihFbemROfCZI13z0wbbjQfsEhJzCRIp3cJbU7kqqfsqLMqgbRMeY6c6H/MYADtv4JUC0bdupsQa30ZRxrdxyuvSHkzMPvP8I2wMLhar2r0zCFcToRcdFWCdrzXtiW3dUQA18gIoSXtBzkgaBwAAz0oU5ezdWXyYQfk6dLdvzKv4IXBt0UphrDEDQ+v1JjtdrdhzVg062P03fGtOE2qf6XFh/WAzXs+4Fhf1kXafPifwnMyALGUSwiC6LlGHdAkPwUTc/U5VNN6h/Ft9M5Y+vmmxhYMIf122Bljog7f6A== 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=xSbpN90dAJabHceiCSgE+xCHmogFWxcF42ltD42P7aI=; b=dbZ1of9fFEbel9DznzOwgrOM/h+urfQ7jub/mkIBjjX2TWhhGXz3iSlSHizOeuP7uKoX3cbbXq3FQMevNR/87nyTynQC58gCWQnphRTzh8zeWl6WK5UI4o6NVoQFGY5bmOfDbkJpRtp2aDtVnBXixUQOrtrgKLlF8pWoeRoV9XtzsAouTnmy+iR+yND/aLRD/Jd28uodSUr44wXCYmTcVdHQIKjleAtLHzwkvsWnUX4afgDu2BvneezNr8IcyKCSf22WA3iFoGh4WxFALzyjxbt5KzWxof03TU2dzNC242IXYX/L/JqrxpBjNL9uEs3kNBuyolRSJan6yNSYTf0wMg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xSbpN90dAJabHceiCSgE+xCHmogFWxcF42ltD42P7aI=; b=Wrh1k281rGUnmrB0T5whC/7uu+6Vze+RpCq9NJnXZ2vbW9U5znOeQdB269M7IMrdztaNzMh92+pHnUvD4xjPmxO9Z6SoCKm1jXnKrdFgZlkrvVZUZsQe0NSJ3EXAYQ8RETTu1/pH/kPwBD20xXy6ErnMpfBZ+tIjZBmWUmFoNUBTHGcGL3AvxOi2pUzENyp9WFr4dnjdehHSUMp9EaQNSf7cmURtj6dMY9U6sWpe9kNvWUbRL9+7Zds4hl8ZB6Z68GWXESXUDfoXqT43HR/ffNCuXSMEk7w8KuaseeVeDpbRJJBHPM1OKCl1KLoYNEfF1u25SWgY8xHeP5pqmIbs5w== Received: from DM8PR12MB5400.namprd12.prod.outlook.com (2603:10b6:8:3b::12) by PH0PR12MB7864.namprd12.prod.outlook.com (2603:10b6:510:26c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.13; Wed, 11 Jan 2023 13:32:20 +0000 Received: from DM8PR12MB5400.namprd12.prod.outlook.com ([fe80::70c6:a62a:4199:b8ed]) by DM8PR12MB5400.namprd12.prod.outlook.com ([fe80::70c6:a62a:4199:b8ed%4]) with mapi id 15.20.5986.018; Wed, 11 Jan 2023 13:32:20 +0000 From: Eli Cohen To: Jason Wang , "mst@redhat.com" CC: "gdawar@amd.com" , "virtualization@lists.linux-foundation.org" , "linux-kernel@vger.kernel.org" , "tanuj.kamde@amd.com" Subject: RE: [PATCH 1/5] virtio_ring: per virtqueue dma device Thread-Topic: [PATCH 1/5] virtio_ring: per virtqueue dma device Thread-Index: AQHZJYXp/exib+Y5JEShlN8ZA2yzKK6ZNvrw Date: Wed, 11 Jan 2023 13:32:20 +0000 Message-ID: References: <20230111062809.25020-1-jasowang@redhat.com> <20230111062809.25020-2-jasowang@redhat.com> In-Reply-To: <20230111062809.25020-2-jasowang@redhat.com> Accept-Language: en-US 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=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM8PR12MB5400:EE_|PH0PR12MB7864:EE_ x-ms-office365-filtering-correlation-id: 38faae8c-3e99-40ae-628d-08daf3d843c1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: euLcAqoTiv1T44aVcexkmIG2K1PLfXlatalQosoVqqzZ6vEQGjMkPYaUajSxcUhyBaunAaYhiW5An7scIMxKFNToOx3typPhOZclnTdnQEPdZsyUjvnIig6VM2iM8HQTPebDzeOd855eD59TF3a1BLVzkq8brYfTrHPx1En3jwF70v8v1A1aNlTjOLR92W9z2gBZAdjHYbz5mvGZetNHu+X20Jy1A8/8Y1qhIv4GXBzaKZnnVgsgszpBGbPB69SHwgpZSyDF5nC7+4reTN1TDPq6KSOqO+SxdcdQnPDOoITrofCJob7nhMIzY1vCgALW676/wgG4KJCQ/XUaOAg3X6aUDUuCB7jjskMrirON7uJo5pOGU1ujE5fItlBtKN1Ad/auZcggOmDAfyX1f9RpbMjWKCimcAc1oq5z9dgp+rqf5/0e+OuSYwgkRWVpwRfbG9qyVhzLHV8u0hZkzh2A3BA9XYQV4t14PWfVgyvjgGiJsT5N2GRxvXGVLTc5IF2nhyLZAEL35dqObTWHEbpkbfYQVWh7rEzcWLO+VaS6wfXSqxM/L/JdW80WGJ+lob8+zSaXNk/Sdm2ntUb5lY6yyefotYDvFMRa9fPdA1qAui+OwEOPN9t0deFP4cJwW/1gfny5QRunZLOrswi/5EwdgyUfw3wiIVRg14SngwekwaKOOrp6jw1KxY9LRJcqgJ5y2Fw/85jaKga7C8UN4fFqpw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM8PR12MB5400.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(346002)(39860400002)(396003)(136003)(376002)(366004)(451199015)(6506007)(2906002)(8676002)(4326008)(64756008)(66446008)(53546011)(5660300002)(83380400001)(8936002)(52536014)(122000001)(30864003)(9686003)(38100700002)(33656002)(41300700001)(478600001)(38070700005)(26005)(66476007)(66946007)(76116006)(66556008)(186003)(7696005)(55016003)(86362001)(71200400001)(110136005)(54906003)(316002)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?enVmTXVlWEtpekJFZnBnbmphRE9naWpBTm54aEFsenhzS0F0S3BjbGRxM3k0?= =?utf-8?B?SmY5SHVJYVhhL2ZZN0tycVY4cUZVaC9XWDZ4WmdxSlUwWGRrRG5XdVdrVVVw?= =?utf-8?B?ZzhqRUR6cWlGQUtwclR0OGJmTzYyQmFrUHdhcURvUTNaWHNUeW9BaUZIeStN?= =?utf-8?B?ZnN4NVRPNlhKSnNDSzIwTmxFekZ6anlsU0V5UUZ5RW5ndGp1L0VMR01XMUdX?= =?utf-8?B?RjlCMDU5b2dMekFOUHhocFpVenBZVmpYMndxd1B3MFoyMnQrMWt3OGNuOUJF?= =?utf-8?B?TkgyM3ZaZzNYVlh5ck5JSVdoSVVEa1VrZFp0S0FsT29OMzdONlhVTUdzWXlS?= =?utf-8?B?Z1pwRm1MK2F0U2ovM0pycGZzZ25PUXl6NmwxTjFucFJZSmtWc2JyWElUM2lC?= =?utf-8?B?ZTNveWJjVk5vYStSb2ZORFRjVHVTcG5nWGRzRm4yNUtTV1VDRCt5aXl3a0JC?= =?utf-8?B?QzYxOTNNTm9INENlaGVTaVFiUnBBRlFQd3VBTXM3anJ6bENGSC9hbmUwd2V4?= =?utf-8?B?V3RZN0FDczV4TlJqbGFVbzZGUW9JQUllOXp4S2NkbU1aYTdXS0o4VnM1b2RR?= =?utf-8?B?ZHNaemJ3NEhGbmxBWGdGUHA4QjR4M21sSTh1Tmdia055MHU4OWczazU2ek1i?= =?utf-8?B?K1cyQlZ3akN1SkdFaWtXazFTeFEzcUtIU3hjQTJWOWFTczhQaDZpMGZJbzRl?= =?utf-8?B?R3lQN2tEelVjbC9YUGpPNGlYRU1KOTl2ZjN1anZxY01VM3JIOTJhSWttcVZQ?= =?utf-8?B?REhjK0h1SitSdEpXeFlGSFdVY0lQR3g3L1lHa05aNS9DVHMrU2gxK3NrSXJj?= =?utf-8?B?dUw4L1dNZ25ncWxXczFGUUM0R1dSMGw4V2ZraDg1cGwySUNUOS9HakxHUUow?= =?utf-8?B?bVZzZjFUU3Y5TFdvSVlVenVHWGllSnpyVW1pYXhJUkVtVmZ6R2V1TXh6VzBB?= =?utf-8?B?NVM0MWRMQjVtanlDdzRITmdiNGxid24zYkNtUFpSR1NFWFZTbjBpRGNUMWZT?= =?utf-8?B?N1dmNEJMZ0ZabWZmQ1hRdlQxUGRtZk9TS0VPMjMwVmdJRXhxTlg2S044U1h5?= =?utf-8?B?emNpUTA2bktocEtXbk5zODlJd2o4Y09mUUg2OXEvNWpscUJwd0pGL3ZyOWJa?= =?utf-8?B?cVVhWk5rRlZPdDNGVWc2QmhMbmtodnY2RGlGSmVDc0dKSEgwczg4TkZjQ0xQ?= =?utf-8?B?ZGhXV1NLajVIdmQzUmFxR2tKb1NEYWlOYTh2VGc3aHpacmNleFFISEQ1NEYz?= =?utf-8?B?am90dFA2dTEvamxuNXlsaVgxQitiVXhMaXoxTytxbTBkRWhldmJBUU0wQkRi?= =?utf-8?B?MGh5NFZmMlNwY1pLRVRGUFNVOTFWaUZ2eExDOVp0cjdsS2lydlIrWnJHT2Qr?= =?utf-8?B?VzF0ZVhxUEZ3U1Yzc0ZoQzF3OGY1WUdjN1g0S09hZ3VoYjdudzFpT1hncUxp?= =?utf-8?B?bHMyKzBmTiswem5QVkpDUkpkZ3FYcGFFOG9kSWwwTEtOTGZrQVJVYzdRbGlt?= =?utf-8?B?YlVxMjNvMVdTUkN3UkZtQTZPbFNyb3hxdmVCTGNNSlBxV1NZKzNqUElhT1gz?= =?utf-8?B?Y1JwalcvcTJPYTdhdGprNGFCa3RWRnpPUzhWdFg5RFlIQzM5VFJ0SmFCNFZF?= =?utf-8?B?SlJBOTRtaVJrSFY5YXdEMFpoMGEya0ZYYkxrMTJ2dysvNllrZ201RVUvdGp1?= =?utf-8?B?VnZiQUpzd29aVytwZUQrS2kyZEpJcUd1cVJOTWw3MytIYmJWRWFPQ1NDb1V2?= =?utf-8?B?MXhHQmYxUFEwbk0vOWp6UTVWeUVBSDJlei9SQy91S1gvNFRERUMrbmQzcXo4?= =?utf-8?B?UHk1cUlNN2EyeXNqSjNHRkZ1TnJCb2wvTFlXcUwwWmhsVTBBTStLUUk4NWQv?= =?utf-8?B?c0lrZFVpM2JYaTJnZEdBcXZtVGordmhDNFFXM0lFa2ErWTE5dnV6WmxobEVW?= =?utf-8?B?bGUzaGo5RzVKQlBoTDZpWXRNWVNMRVkxNm0wUllmMjN5R1BhQ0JJVCtjeGRu?= =?utf-8?B?VHZGMC8yUVNQUjJGN3VnWFhwN3MrTUwrN1NHaHRHdDZsOUlCVnNrTUFPOUox?= =?utf-8?B?M0VNSUsxT3lKWWRJMGF1Wi82ZTV3dlBjK0dseUhQTUVtWEI0czF5RWpzdVFR?= =?utf-8?Q?3qkw=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8PR12MB5400.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 38faae8c-3e99-40ae-628d-08daf3d843c1 X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jan 2023 13:32:20.1110 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: VcUSZV8upTuYxmWOsNHF8wTkmHEWWVI/DNKFSBY/ZELVUojYjfx2xtLW4OetIiJY X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7864 X-Spam-Status: No, score=-1.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PiBGcm9tOiBKYXNvbiBXYW5nIDxqYXNvd2FuZ0ByZWRoYXQuY29tPg0KPiBTZW50OiBXZWRuZXNk YXksIDExIEphbnVhcnkgMjAyMyA4OjI4DQo+IFRvOiBtc3RAcmVkaGF0LmNvbTsgamFzb3dhbmdA cmVkaGF0LmNvbQ0KPiBDYzogRWxpIENvaGVuIDxlbGljQG52aWRpYS5jb20+OyBnZGF3YXJAYW1k LmNvbTsNCj4gdmlydHVhbGl6YXRpb25AbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmc7IGxpbnV4 LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7DQo+IHRhbnVqLmthbWRlQGFtZC5jb20NCj4gU3ViamVj dDogW1BBVENIIDEvNV0gdmlydGlvX3Jpbmc6IHBlciB2aXJ0cXVldWUgZG1hIGRldmljZQ0KPiAN Cj4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgcGVyIHZpcnRxdWV1ZSBkbWEgZGV2aWNlLiBUaGlz IHdpbGwgYmUgdXNlZA0KPiBmb3IgdmlydGlvIGRldmljZXMgd2hvc2UgdmlydHF1ZXVlIGFyZSBi YWNrZWQgYnkgZGlmZmVyZW50IHVuZGVybGF5ZXINCj4gZGV2aWNlcy4NCj4gDQo+IE9uZSBleGFt cGxlIGlzIHRoZSB2RFBBIHRoYXQgd2hlcmUgdGhlIGNvbnRyb2wgdmlydHF1ZXVlIGNvdWxkIGJl DQo+IGltcGxlbWVudGVkIHRocm91Z2ggc29mdHdhcmUgbWVkaWF0aW9uLg0KPiANCj4gU29tZSBv ZiB0aGUgd29yayBhcmUgYWN0dWFsbHkgZG9uZSBiZWZvcmUgc2luY2UgdGhlIGhlbHBlciBsaWtl DQo+IHZyaW5nX2RtYV9kZXZpY2UoKS4gVGhpcyB3b3JrIGxlZnQgYXJlOg0KPiANCj4gLSBMZXQg dnJpbmdfZG1hX2RldmljZSgpIHJldHVybiB0aGUgcGVyIHZpcnRxdWV1ZSBkbWEgZGV2aWNlIGlu c3RlYWQNCj4gICBvZiB0aGUgdmRldidzIHBhcmVudC4NCj4gLSBBbGxvdyBwYXNzaW5nIGEgZG1h X2RldmljZSB3aGVuIGNyZWF0aW5nIHRoZSB2aXJ0cXVldWUgdGhyb3VnaCBhIG5ldw0KPiAgIGhl bHBlciwgb2xkIHZyaW5nIGNyZWF0aW9uIGhlbHBlciB3aWxsIGtlZXAgdXNpbmcgdmRldidzIHBh cmVudC4NCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEphc29uIFdhbmcgPGphc293YW5nQHJlZGhhdC5j b20+DQo+IC0tLQ0KPiAgZHJpdmVycy92aXJ0aW8vdmlydGlvX3JpbmcuYyB8IDEzMyArKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQ0KPiAgaW5jbHVkZS9saW51eC92aXJ0aW9fcmlu Zy5oICB8ICAxNiArKysrKw0KPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMDkgaW5zZXJ0aW9ucygrKSwg NDAgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy92aXJ0aW8vdmlydGlv X3JpbmcuYyBiL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19yaW5nLmMNCj4gaW5kZXggNzIzYzRlMjll MWQzLi40MTE0NGI1MjQ2YTggMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19y aW5nLmMNCj4gKysrIGIvZHJpdmVycy92aXJ0aW8vdmlydGlvX3JpbmcuYw0KPiBAQCAtMjAyLDYg KzIwMiw5IEBAIHN0cnVjdCB2cmluZ192aXJ0cXVldWUgew0KPiAgCS8qIERNQSwgYWxsb2NhdGlv biwgYW5kIHNpemUgaW5mb3JtYXRpb24gKi8NCj4gIAlib29sIHdlX293bl9yaW5nOw0KPiANCj4g KwkvKiBEZXZpY2UgdXNlZCBmb3IgZG9pbmcgRE1BICovDQo+ICsJc3RydWN0IGRldmljZSAqZG1h X2RldjsNCj4gKw0KPiAgI2lmZGVmIERFQlVHDQo+ICAJLyogVGhleSdyZSBzdXBwb3NlZCB0byBs b2NrIGZvciB1cy4gKi8NCj4gIAl1bnNpZ25lZCBpbnQgaW5fdXNlOw0KPiBAQCAtMjE5LDcgKzIy Miw4IEBAIHN0YXRpYyBzdHJ1Y3QgdmlydHF1ZXVlDQo+ICpfX3ZyaW5nX25ld192aXJ0cXVldWUo dW5zaWduZWQgaW50IGluZGV4LA0KPiAgCQkJCQkgICAgICAgYm9vbCBjb250ZXh0LA0KPiAgCQkJ CQkgICAgICAgYm9vbCAoKm5vdGlmeSkoc3RydWN0IHZpcnRxdWV1ZSAqKSwNCj4gIAkJCQkJICAg ICAgIHZvaWQgKCpjYWxsYmFjaykoc3RydWN0IHZpcnRxdWV1ZQ0KPiAqKSwNCj4gLQkJCQkJICAg ICAgIGNvbnN0IGNoYXIgKm5hbWUpOw0KPiArCQkJCQkgICAgICAgY29uc3QgY2hhciAqbmFtZSwN Cj4gKwkJCQkJICAgICAgIHN0cnVjdCBkZXZpY2UgKmRtYV9kZXYpOw0KPiAgc3RhdGljIHN0cnVj dCB2cmluZ19kZXNjX2V4dHJhICp2cmluZ19hbGxvY19kZXNjX2V4dHJhKHVuc2lnbmVkIGludCBu dW0pOw0KPiAgc3RhdGljIHZvaWQgdnJpbmdfZnJlZShzdHJ1Y3QgdmlydHF1ZXVlICpfdnEpOw0K PiANCj4gQEAgLTI5NywxMCArMzAxLDExIEBAIHNpemVfdCB2aXJ0aW9fbWF4X2RtYV9zaXplKHN0 cnVjdCB2aXJ0aW9fZGV2aWNlDQo+ICp2ZGV2KQ0KPiAgRVhQT1JUX1NZTUJPTF9HUEwodmlydGlv X21heF9kbWFfc2l6ZSk7DQo+IA0KPiAgc3RhdGljIHZvaWQgKnZyaW5nX2FsbG9jX3F1ZXVlKHN0 cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2LCBzaXplX3Qgc2l6ZSwNCj4gLQkJCSAgICAgIGRtYV9h ZGRyX3QgKmRtYV9oYW5kbGUsIGdmcF90IGZsYWcpDQo+ICsJCQkgICAgICAgZG1hX2FkZHJfdCAq ZG1hX2hhbmRsZSwgZ2ZwX3QgZmxhZywNCj4gKwkJCSAgICAgICBzdHJ1Y3QgZGV2aWNlICpkbWFf ZGV2KQ0KPiAgew0KPiAgCWlmICh2cmluZ191c2VfZG1hX2FwaSh2ZGV2KSkgew0KPiAtCQlyZXR1 cm4gZG1hX2FsbG9jX2NvaGVyZW50KHZkZXYtPmRldi5wYXJlbnQsIHNpemUsDQo+ICsJCXJldHVy biBkbWFfYWxsb2NfY29oZXJlbnQoZG1hX2Rldiwgc2l6ZSwNCj4gIAkJCQkJICBkbWFfaGFuZGxl LCBmbGFnKTsNCj4gIAl9IGVsc2Ugew0KPiAgCQl2b2lkICpxdWV1ZSA9IGFsbG9jX3BhZ2VzX2V4 YWN0KFBBR0VfQUxJR04oc2l6ZSksIGZsYWcpOw0KPiBAQCAtMzMwLDEwICszMzUsMTEgQEAgc3Rh dGljIHZvaWQgKnZyaW5nX2FsbG9jX3F1ZXVlKHN0cnVjdCB2aXJ0aW9fZGV2aWNlDQo+ICp2ZGV2 LCBzaXplX3Qgc2l6ZSwNCj4gIH0NCj4gDQo+ICBzdGF0aWMgdm9pZCB2cmluZ19mcmVlX3F1ZXVl KHN0cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2LCBzaXplX3Qgc2l6ZSwNCj4gLQkJCSAgICAgdm9p ZCAqcXVldWUsIGRtYV9hZGRyX3QgZG1hX2hhbmRsZSkNCj4gKwkJCSAgICAgdm9pZCAqcXVldWUs IGRtYV9hZGRyX3QgZG1hX2hhbmRsZSwNCj4gKwkJCSAgICAgc3RydWN0IGRldmljZSAqZG1hX2Rl dikNCj4gIHsNCj4gIAlpZiAodnJpbmdfdXNlX2RtYV9hcGkodmRldikpDQo+IC0JCWRtYV9mcmVl X2NvaGVyZW50KHZkZXYtPmRldi5wYXJlbnQsIHNpemUsIHF1ZXVlLA0KPiBkbWFfaGFuZGxlKTsN Cj4gKwkJZG1hX2ZyZWVfY29oZXJlbnQoZG1hX2Rldiwgc2l6ZSwgcXVldWUsIGRtYV9oYW5kbGUp Ow0KPiAgCWVsc2UNCj4gIAkJZnJlZV9wYWdlc19leGFjdChxdWV1ZSwgUEFHRV9BTElHTihzaXpl KSk7DQo+ICB9DQo+IEBAIC0zNDEsMTEgKzM0NywxMSBAQCBzdGF0aWMgdm9pZCB2cmluZ19mcmVl X3F1ZXVlKHN0cnVjdCB2aXJ0aW9fZGV2aWNlDQo+ICp2ZGV2LCBzaXplX3Qgc2l6ZSwNCj4gIC8q DQo+ICAgKiBUaGUgRE1BIG9wcyBvbiB2YXJpb3VzIGFyY2hlcyBhcmUgcmF0aGVyIGduYXJseSBy aWdodCBub3csIGFuZA0KPiAgICogbWFraW5nIGFsbCBvZiB0aGUgYXJjaCBETUEgb3BzIHdvcmsg b24gdGhlIHZyaW5nIGRldmljZSBpdHNlbGYNCj4gLSAqIGlzIGEgbWVzcy4gIEZvciBub3csIHdl IHVzZSB0aGUgcGFyZW50IGRldmljZSBmb3IgRE1BIG9wcy4NCj4gKyAqIGlzIGEgbWVzcy4NCj4g ICAqLw0KPiAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZGV2aWNlICp2cmluZ19kbWFfZGV2KGNvbnN0 IHN0cnVjdCB2cmluZ192aXJ0cXVldWUgKnZxKQ0KPiAgew0KPiAtCXJldHVybiB2cS0+dnEudmRl di0+ZGV2LnBhcmVudDsNCj4gKwlyZXR1cm4gdnEtPmRtYV9kZXY7DQo+ICB9DQoNCkhvdyBhYm91 dCBnZXR0aW5nIHJpZCBvZiB0aGlzIGZ1bmN0aW9uIGFuZCBqdXN0IHVzZSB2cS0+ZG1hX2Rldj8N Cg0KPiANCj4gIC8qIE1hcCBvbmUgc2cgZW50cnkuICovDQo+IEBAIC0xMDMyLDExICsxMDM4LDEy IEBAIHN0YXRpYyBpbnQgdnJpbmdfYWxsb2Nfc3RhdGVfZXh0cmFfc3BsaXQoc3RydWN0DQo+IHZy aW5nX3ZpcnRxdWV1ZV9zcGxpdCAqdnJpbmdfc3BsDQo+ICB9DQo+IA0KPiAgc3RhdGljIHZvaWQg dnJpbmdfZnJlZV9zcGxpdChzdHJ1Y3QgdnJpbmdfdmlydHF1ZXVlX3NwbGl0ICp2cmluZ19zcGxp dCwNCj4gLQkJCSAgICAgc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYpDQo+ICsJCQkgICAgIHN0 cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2LCBzdHJ1Y3QgZGV2aWNlICpkbWFfZGV2KQ0KPiAgew0K PiAgCXZyaW5nX2ZyZWVfcXVldWUodmRldiwgdnJpbmdfc3BsaXQtPnF1ZXVlX3NpemVfaW5fYnl0 ZXMsDQo+ICAJCQkgdnJpbmdfc3BsaXQtPnZyaW5nLmRlc2MsDQo+IC0JCQkgdnJpbmdfc3BsaXQt PnF1ZXVlX2RtYV9hZGRyKTsNCj4gKwkJCSB2cmluZ19zcGxpdC0+cXVldWVfZG1hX2FkZHIsDQo+ ICsJCQkgZG1hX2Rldik7DQo+IA0KPiAgCWtmcmVlKHZyaW5nX3NwbGl0LT5kZXNjX3N0YXRlKTsN Cj4gIAlrZnJlZSh2cmluZ19zcGxpdC0+ZGVzY19leHRyYSk7DQo+IEBAIC0xMDQ2LDcgKzEwNTMs OCBAQCBzdGF0aWMgaW50IHZyaW5nX2FsbG9jX3F1ZXVlX3NwbGl0KHN0cnVjdA0KPiB2cmluZ192 aXJ0cXVldWVfc3BsaXQgKnZyaW5nX3NwbGl0LA0KPiAgCQkJCSAgIHN0cnVjdCB2aXJ0aW9fZGV2 aWNlICp2ZGV2LA0KPiAgCQkJCSAgIHUzMiBudW0sDQo+ICAJCQkJICAgdW5zaWduZWQgaW50IHZy aW5nX2FsaWduLA0KPiAtCQkJCSAgIGJvb2wgbWF5X3JlZHVjZV9udW0pDQo+ICsJCQkJICAgYm9v bCBtYXlfcmVkdWNlX251bSwNCj4gKwkJCQkgICBzdHJ1Y3QgZGV2aWNlICpkbWFfZGV2KQ0KPiAg ew0KPiAgCXZvaWQgKnF1ZXVlID0gTlVMTDsNCj4gIAlkbWFfYWRkcl90IGRtYV9hZGRyOw0KPiBA QCAtMTA2MSw3ICsxMDY5LDggQEAgc3RhdGljIGludCB2cmluZ19hbGxvY19xdWV1ZV9zcGxpdChz dHJ1Y3QNCj4gdnJpbmdfdmlydHF1ZXVlX3NwbGl0ICp2cmluZ19zcGxpdCwNCj4gIAlmb3IgKDsg bnVtICYmIHZyaW5nX3NpemUobnVtLCB2cmluZ19hbGlnbikgPiBQQUdFX1NJWkU7IG51bSAvPSAy KSB7DQo+ICAJCXF1ZXVlID0gdnJpbmdfYWxsb2NfcXVldWUodmRldiwgdnJpbmdfc2l6ZShudW0s IHZyaW5nX2FsaWduKSwNCj4gIAkJCQkJICAmZG1hX2FkZHIsDQo+IC0JCQkJCSAgR0ZQX0tFUk5F TCB8IF9fR0ZQX05PV0FSTiB8DQo+IF9fR0ZQX1pFUk8pOw0KPiArCQkJCQkgIEdGUF9LRVJORUwg fCBfX0dGUF9OT1dBUk4gfA0KPiBfX0dGUF9aRVJPLA0KPiArCQkJCQkgIGRtYV9kZXYpOw0KPiAg CQlpZiAocXVldWUpDQo+ICAJCQlicmVhazsNCj4gIAkJaWYgKCFtYXlfcmVkdWNlX251bSkNCj4g QEAgLTEwNzQsNyArMTA4Myw4IEBAIHN0YXRpYyBpbnQgdnJpbmdfYWxsb2NfcXVldWVfc3BsaXQo c3RydWN0DQo+IHZyaW5nX3ZpcnRxdWV1ZV9zcGxpdCAqdnJpbmdfc3BsaXQsDQo+ICAJaWYgKCFx dWV1ZSkgew0KPiAgCQkvKiBUcnkgdG8gZ2V0IGEgc2luZ2xlIHBhZ2UuIFlvdSBhcmUgbXkgb25s eSBob3BlISAqLw0KPiAgCQlxdWV1ZSA9IHZyaW5nX2FsbG9jX3F1ZXVlKHZkZXYsIHZyaW5nX3Np emUobnVtLCB2cmluZ19hbGlnbiksDQo+IC0JCQkJCSAgJmRtYV9hZGRyLCBHRlBfS0VSTkVMIHwN Cj4gX19HRlBfWkVSTyk7DQo+ICsJCQkJCSAgJmRtYV9hZGRyLCBHRlBfS0VSTkVMIHwNCj4gX19H RlBfWkVSTywNCj4gKwkJCQkJICBkbWFfZGV2KTsNCj4gIAl9DQo+ICAJaWYgKCFxdWV1ZSkNCj4g IAkJcmV0dXJuIC1FTk9NRU07DQo+IEBAIC0xMTAwLDIxICsxMTEwLDIyIEBAIHN0YXRpYyBzdHJ1 Y3QgdmlydHF1ZXVlDQo+ICp2cmluZ19jcmVhdGVfdmlydHF1ZXVlX3NwbGl0KA0KPiAgCWJvb2wg Y29udGV4dCwNCj4gIAlib29sICgqbm90aWZ5KShzdHJ1Y3QgdmlydHF1ZXVlICopLA0KPiAgCXZv aWQgKCpjYWxsYmFjaykoc3RydWN0IHZpcnRxdWV1ZSAqKSwNCj4gLQljb25zdCBjaGFyICpuYW1l KQ0KPiArCWNvbnN0IGNoYXIgKm5hbWUsDQo+ICsJc3RydWN0IGRldmljZSAqZG1hX2RldikNCj4g IHsNCj4gIAlzdHJ1Y3QgdnJpbmdfdmlydHF1ZXVlX3NwbGl0IHZyaW5nX3NwbGl0ID0ge307DQo+ ICAJc3RydWN0IHZpcnRxdWV1ZSAqdnE7DQo+ICAJaW50IGVycjsNCj4gDQo+ICAJZXJyID0gdnJp bmdfYWxsb2NfcXVldWVfc3BsaXQoJnZyaW5nX3NwbGl0LCB2ZGV2LCBudW0sIHZyaW5nX2FsaWdu LA0KPiAtCQkJCSAgICAgIG1heV9yZWR1Y2VfbnVtKTsNCj4gKwkJCQkgICAgICBtYXlfcmVkdWNl X251bSwgZG1hX2Rldik7DQo+ICAJaWYgKGVycikNCj4gIAkJcmV0dXJuIE5VTEw7DQo+IA0KPiAg CXZxID0gX192cmluZ19uZXdfdmlydHF1ZXVlKGluZGV4LCAmdnJpbmdfc3BsaXQsIHZkZXYsIHdl YWtfYmFycmllcnMsDQo+IC0JCQkJICAgY29udGV4dCwgbm90aWZ5LCBjYWxsYmFjaywgbmFtZSk7 DQo+ICsJCQkJICAgY29udGV4dCwgbm90aWZ5LCBjYWxsYmFjaywgbmFtZSwgZG1hX2Rldik7DQo+ ICAJaWYgKCF2cSkgew0KPiAtCQl2cmluZ19mcmVlX3NwbGl0KCZ2cmluZ19zcGxpdCwgdmRldik7 DQo+ICsJCXZyaW5nX2ZyZWVfc3BsaXQoJnZyaW5nX3NwbGl0LCB2ZGV2LCBkbWFfZGV2KTsNCj4g IAkJcmV0dXJuIE5VTEw7DQo+ICAJfQ0KPiANCj4gQEAgLTExMzIsNyArMTE0Myw4IEBAIHN0YXRp YyBpbnQgdmlydHF1ZXVlX3Jlc2l6ZV9zcGxpdChzdHJ1Y3QgdmlydHF1ZXVlDQo+ICpfdnEsIHUz MiBudW0pDQo+IA0KPiAgCWVyciA9IHZyaW5nX2FsbG9jX3F1ZXVlX3NwbGl0KCZ2cmluZ19zcGxp dCwgdmRldiwgbnVtLA0KPiAgCQkJCSAgICAgIHZxLT5zcGxpdC52cmluZ19hbGlnbiwNCj4gLQkJ CQkgICAgICB2cS0+c3BsaXQubWF5X3JlZHVjZV9udW0pOw0KPiArCQkJCSAgICAgIHZxLT5zcGxp dC5tYXlfcmVkdWNlX251bSwNCj4gKwkJCQkgICAgICB2cmluZ19kbWFfZGV2KHZxKSk7DQo+ICAJ aWYgKGVycikNCj4gIAkJZ290byBlcnI7DQo+IA0KPiBAQCAtMTE1MCw3ICsxMTYyLDcgQEAgc3Rh dGljIGludCB2aXJ0cXVldWVfcmVzaXplX3NwbGl0KHN0cnVjdCB2aXJ0cXVldWUNCj4gKl92cSwg dTMyIG51bSkNCj4gIAlyZXR1cm4gMDsNCj4gDQo+ICBlcnJfc3RhdGVfZXh0cmE6DQo+IC0JdnJp bmdfZnJlZV9zcGxpdCgmdnJpbmdfc3BsaXQsIHZkZXYpOw0KPiArCXZyaW5nX2ZyZWVfc3BsaXQo JnZyaW5nX3NwbGl0LCB2ZGV2LCB2cmluZ19kbWFfZGV2KHZxKSk7DQo+ICBlcnI6DQo+ICAJdmly dHF1ZXVlX3JlaW5pdF9zcGxpdCh2cSk7DQo+ICAJcmV0dXJuIC1FTk9NRU07DQo+IEBAIC0xODQx LDIyICsxODUzLDI2IEBAIHN0YXRpYyBzdHJ1Y3QgdnJpbmdfZGVzY19leHRyYQ0KPiAqdnJpbmdf YWxsb2NfZGVzY19leHRyYSh1bnNpZ25lZCBpbnQgbnVtKQ0KPiAgfQ0KPiANCj4gIHN0YXRpYyB2 b2lkIHZyaW5nX2ZyZWVfcGFja2VkKHN0cnVjdCB2cmluZ192aXJ0cXVldWVfcGFja2VkICp2cmlu Z19wYWNrZWQsDQo+IC0JCQkgICAgICBzdHJ1Y3QgdmlydGlvX2RldmljZSAqdmRldikNCj4gKwkJ CSAgICAgIHN0cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2LA0KPiArCQkJICAgICAgc3RydWN0IGRl dmljZSAqZG1hX2RldikNCj4gIHsNCj4gIAlpZiAodnJpbmdfcGFja2VkLT52cmluZy5kZXNjKQ0K PiAgCQl2cmluZ19mcmVlX3F1ZXVlKHZkZXYsIHZyaW5nX3BhY2tlZC0+cmluZ19zaXplX2luX2J5 dGVzLA0KPiAgCQkJCSB2cmluZ19wYWNrZWQtPnZyaW5nLmRlc2MsDQo+IC0JCQkJIHZyaW5nX3Bh Y2tlZC0+cmluZ19kbWFfYWRkcik7DQo+ICsJCQkJIHZyaW5nX3BhY2tlZC0+cmluZ19kbWFfYWRk ciwNCj4gKwkJCQkgZG1hX2Rldik7DQo+IA0KPiAgCWlmICh2cmluZ19wYWNrZWQtPnZyaW5nLmRy aXZlcikNCj4gIAkJdnJpbmdfZnJlZV9xdWV1ZSh2ZGV2LCB2cmluZ19wYWNrZWQtPmV2ZW50X3Np emVfaW5fYnl0ZXMsDQo+ICAJCQkJIHZyaW5nX3BhY2tlZC0+dnJpbmcuZHJpdmVyLA0KPiAtCQkJ CSB2cmluZ19wYWNrZWQtPmRyaXZlcl9ldmVudF9kbWFfYWRkcik7DQo+ICsJCQkJIHZyaW5nX3Bh Y2tlZC0+ZHJpdmVyX2V2ZW50X2RtYV9hZGRyLA0KPiArCQkJCSBkbWFfZGV2KTsNCj4gDQo+ICAJ aWYgKHZyaW5nX3BhY2tlZC0+dnJpbmcuZGV2aWNlKQ0KPiAgCQl2cmluZ19mcmVlX3F1ZXVlKHZk ZXYsIHZyaW5nX3BhY2tlZC0+ZXZlbnRfc2l6ZV9pbl9ieXRlcywNCj4gIAkJCQkgdnJpbmdfcGFj a2VkLT52cmluZy5kZXZpY2UsDQo+IC0JCQkJIHZyaW5nX3BhY2tlZC0+ZGV2aWNlX2V2ZW50X2Rt YV9hZGRyKTsNCj4gKwkJCQkgdnJpbmdfcGFja2VkLT5kZXZpY2VfZXZlbnRfZG1hX2FkZHIsDQo+ ICsJCQkJIGRtYV9kZXYpOw0KPiANCj4gIAlrZnJlZSh2cmluZ19wYWNrZWQtPmRlc2Nfc3RhdGUp Ow0KPiAgCWtmcmVlKHZyaW5nX3BhY2tlZC0+ZGVzY19leHRyYSk7DQo+IEBAIC0xODY0LDcgKzE4 ODAsNyBAQCBzdGF0aWMgdm9pZCB2cmluZ19mcmVlX3BhY2tlZChzdHJ1Y3QNCj4gdnJpbmdfdmly dHF1ZXVlX3BhY2tlZCAqdnJpbmdfcGFja2VkLA0KPiANCj4gIHN0YXRpYyBpbnQgdnJpbmdfYWxs b2NfcXVldWVfcGFja2VkKHN0cnVjdCB2cmluZ192aXJ0cXVldWVfcGFja2VkDQo+ICp2cmluZ19w YWNrZWQsDQo+ICAJCQkJICAgIHN0cnVjdCB2aXJ0aW9fZGV2aWNlICp2ZGV2LA0KPiAtCQkJCSAg ICB1MzIgbnVtKQ0KPiArCQkJCSAgICB1MzIgbnVtLCBzdHJ1Y3QgZGV2aWNlICpkbWFfZGV2KQ0K PiAgew0KPiAgCXN0cnVjdCB2cmluZ19wYWNrZWRfZGVzYyAqcmluZzsNCj4gIAlzdHJ1Y3QgdnJp bmdfcGFja2VkX2Rlc2NfZXZlbnQgKmRyaXZlciwgKmRldmljZTsNCj4gQEAgLTE4NzUsNyArMTg5 MSw4IEBAIHN0YXRpYyBpbnQgdnJpbmdfYWxsb2NfcXVldWVfcGFja2VkKHN0cnVjdA0KPiB2cmlu Z192aXJ0cXVldWVfcGFja2VkICp2cmluZ19wYWNrZWQsDQo+IA0KPiAgCXJpbmcgPSB2cmluZ19h bGxvY19xdWV1ZSh2ZGV2LCByaW5nX3NpemVfaW5fYnl0ZXMsDQo+ICAJCQkJICZyaW5nX2RtYV9h ZGRyLA0KPiAtCQkJCSBHRlBfS0VSTkVMIHwgX19HRlBfTk9XQVJOIHwNCj4gX19HRlBfWkVSTyk7 DQo+ICsJCQkJIEdGUF9LRVJORUwgfCBfX0dGUF9OT1dBUk4gfA0KPiBfX0dGUF9aRVJPLA0KPiAr CQkJCSBkbWFfZGV2KTsNCj4gIAlpZiAoIXJpbmcpDQo+ICAJCWdvdG8gZXJyOw0KPiANCj4gQEAg LTE4ODcsNyArMTkwNCw4IEBAIHN0YXRpYyBpbnQgdnJpbmdfYWxsb2NfcXVldWVfcGFja2VkKHN0 cnVjdA0KPiB2cmluZ192aXJ0cXVldWVfcGFja2VkICp2cmluZ19wYWNrZWQsDQo+IA0KPiAgCWRy aXZlciA9IHZyaW5nX2FsbG9jX3F1ZXVlKHZkZXYsIGV2ZW50X3NpemVfaW5fYnl0ZXMsDQo+ICAJ CQkJICAgJmRyaXZlcl9ldmVudF9kbWFfYWRkciwNCj4gLQkJCQkgICBHRlBfS0VSTkVMIHwgX19H RlBfTk9XQVJOIHwNCj4gX19HRlBfWkVSTyk7DQo+ICsJCQkJICAgR0ZQX0tFUk5FTCB8IF9fR0ZQ X05PV0FSTiB8DQo+IF9fR0ZQX1pFUk8sDQo+ICsJCQkJICAgZG1hX2Rldik7DQo+ICAJaWYgKCFk cml2ZXIpDQo+ICAJCWdvdG8gZXJyOw0KPiANCj4gQEAgLTE4OTcsNyArMTkxNSw4IEBAIHN0YXRp YyBpbnQgdnJpbmdfYWxsb2NfcXVldWVfcGFja2VkKHN0cnVjdA0KPiB2cmluZ192aXJ0cXVldWVf cGFja2VkICp2cmluZ19wYWNrZWQsDQo+IA0KPiAgCWRldmljZSA9IHZyaW5nX2FsbG9jX3F1ZXVl KHZkZXYsIGV2ZW50X3NpemVfaW5fYnl0ZXMsDQo+ICAJCQkJICAgJmRldmljZV9ldmVudF9kbWFf YWRkciwNCj4gLQkJCQkgICBHRlBfS0VSTkVMIHwgX19HRlBfTk9XQVJOIHwNCj4gX19HRlBfWkVS Tyk7DQo+ICsJCQkJICAgR0ZQX0tFUk5FTCB8IF9fR0ZQX05PV0FSTiB8DQo+IF9fR0ZQX1pFUk8s DQo+ICsJCQkJICAgZG1hX2Rldik7DQo+ICAJaWYgKCFkZXZpY2UpDQo+ICAJCWdvdG8gZXJyOw0K PiANCj4gQEAgLTE5MDksNyArMTkyOCw3IEBAIHN0YXRpYyBpbnQgdnJpbmdfYWxsb2NfcXVldWVf cGFja2VkKHN0cnVjdA0KPiB2cmluZ192aXJ0cXVldWVfcGFja2VkICp2cmluZ19wYWNrZWQsDQo+ ICAJcmV0dXJuIDA7DQo+IA0KPiAgZXJyOg0KPiAtCXZyaW5nX2ZyZWVfcGFja2VkKHZyaW5nX3Bh Y2tlZCwgdmRldik7DQo+ICsJdnJpbmdfZnJlZV9wYWNrZWQodnJpbmdfcGFja2VkLCB2ZGV2LCBk bWFfZGV2KTsNCj4gIAlyZXR1cm4gLUVOT01FTTsNCj4gIH0NCj4gDQo+IEBAIC0xOTg3LDEzICsy MDA2LDE0IEBAIHN0YXRpYyBzdHJ1Y3QgdmlydHF1ZXVlDQo+ICp2cmluZ19jcmVhdGVfdmlydHF1 ZXVlX3BhY2tlZCgNCj4gIAlib29sIGNvbnRleHQsDQo+ICAJYm9vbCAoKm5vdGlmeSkoc3RydWN0 IHZpcnRxdWV1ZSAqKSwNCj4gIAl2b2lkICgqY2FsbGJhY2spKHN0cnVjdCB2aXJ0cXVldWUgKiks DQo+IC0JY29uc3QgY2hhciAqbmFtZSkNCj4gKwljb25zdCBjaGFyICpuYW1lLA0KPiArCXN0cnVj dCBkZXZpY2UgKmRtYV9kZXYpDQo+ICB7DQo+ICAJc3RydWN0IHZyaW5nX3ZpcnRxdWV1ZV9wYWNr ZWQgdnJpbmdfcGFja2VkID0ge307DQo+ICAJc3RydWN0IHZyaW5nX3ZpcnRxdWV1ZSAqdnE7DQo+ ICAJaW50IGVycjsNCj4gDQo+IC0JaWYgKHZyaW5nX2FsbG9jX3F1ZXVlX3BhY2tlZCgmdnJpbmdf cGFja2VkLCB2ZGV2LCBudW0pKQ0KPiArCWlmICh2cmluZ19hbGxvY19xdWV1ZV9wYWNrZWQoJnZy aW5nX3BhY2tlZCwgdmRldiwgbnVtLCBkbWFfZGV2KSkNCj4gIAkJZ290byBlcnJfcmluZzsNCj4g DQo+ICAJdnEgPSBrbWFsbG9jKHNpemVvZigqdnEpLCBHRlBfS0VSTkVMKTsNCj4gQEAgLTIwMTQs NiArMjAzNCw3IEBAIHN0YXRpYyBzdHJ1Y3QgdmlydHF1ZXVlDQo+ICp2cmluZ19jcmVhdGVfdmly dHF1ZXVlX3BhY2tlZCgNCj4gIAl2cS0+YnJva2VuID0gZmFsc2U7DQo+ICAjZW5kaWYNCj4gIAl2 cS0+cGFja2VkX3JpbmcgPSB0cnVlOw0KPiArCXZxLT5kbWFfZGV2ID0gZG1hX2RldjsNCj4gIAl2 cS0+dXNlX2RtYV9hcGkgPSB2cmluZ191c2VfZG1hX2FwaSh2ZGV2KTsNCj4gDQo+ICAJdnEtPmlu ZGlyZWN0ID0gdmlydGlvX2hhc19mZWF0dXJlKHZkZXYsDQo+IFZJUlRJT19SSU5HX0ZfSU5ESVJF Q1RfREVTQykgJiYNCj4gQEAgLTIwNDAsNyArMjA2MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgdmlydHF1 ZXVlDQo+ICp2cmluZ19jcmVhdGVfdmlydHF1ZXVlX3BhY2tlZCgNCj4gIGVycl9zdGF0ZV9leHRy YToNCj4gIAlrZnJlZSh2cSk7DQo+ICBlcnJfdnE6DQo+IC0JdnJpbmdfZnJlZV9wYWNrZWQoJnZy aW5nX3BhY2tlZCwgdmRldik7DQo+ICsJdnJpbmdfZnJlZV9wYWNrZWQoJnZyaW5nX3BhY2tlZCwg dmRldiwgZG1hX2Rldik7DQo+ICBlcnJfcmluZzoNCj4gIAlyZXR1cm4gTlVMTDsNCj4gIH0NCj4g QEAgLTIwNTIsNyArMjA3Myw3IEBAIHN0YXRpYyBpbnQgdmlydHF1ZXVlX3Jlc2l6ZV9wYWNrZWQo c3RydWN0IHZpcnRxdWV1ZQ0KPiAqX3ZxLCB1MzIgbnVtKQ0KPiAgCXN0cnVjdCB2aXJ0aW9fZGV2 aWNlICp2ZGV2ID0gX3ZxLT52ZGV2Ow0KPiAgCWludCBlcnI7DQo+IA0KPiAtCWlmICh2cmluZ19h bGxvY19xdWV1ZV9wYWNrZWQoJnZyaW5nX3BhY2tlZCwgdmRldiwgbnVtKSkNCj4gKwlpZiAodnJp bmdfYWxsb2NfcXVldWVfcGFja2VkKCZ2cmluZ19wYWNrZWQsIHZkZXYsIG51bSwNCj4gdnJpbmdf ZG1hX2Rldih2cSkpKQ0KPiAgCQlnb3RvIGVycl9yaW5nOw0KPiANCj4gIAllcnIgPSB2cmluZ19h bGxvY19zdGF0ZV9leHRyYV9wYWNrZWQoJnZyaW5nX3BhY2tlZCk7DQo+IEBAIC0yMDY5LDcgKzIw OTAsNyBAQCBzdGF0aWMgaW50IHZpcnRxdWV1ZV9yZXNpemVfcGFja2VkKHN0cnVjdCB2aXJ0cXVl dWUNCj4gKl92cSwgdTMyIG51bSkNCj4gIAlyZXR1cm4gMDsNCj4gDQo+ICBlcnJfc3RhdGVfZXh0 cmE6DQo+IC0JdnJpbmdfZnJlZV9wYWNrZWQoJnZyaW5nX3BhY2tlZCwgdmRldik7DQo+ICsJdnJp bmdfZnJlZV9wYWNrZWQoJnZyaW5nX3BhY2tlZCwgdmRldiwgdnJpbmdfZG1hX2Rldih2cSkpOw0K PiAgZXJyX3Jpbmc6DQo+ICAJdmlydHF1ZXVlX3JlaW5pdF9wYWNrZWQodnEpOw0KPiAgCXJldHVy biAtRU5PTUVNOw0KPiBAQCAtMjQ4MSw3ICsyNTAyLDggQEAgc3RhdGljIHN0cnVjdCB2aXJ0cXVl dWUNCj4gKl9fdnJpbmdfbmV3X3ZpcnRxdWV1ZSh1bnNpZ25lZCBpbnQgaW5kZXgsDQo+ICAJCQkJ CSAgICAgICBib29sIGNvbnRleHQsDQo+ICAJCQkJCSAgICAgICBib29sICgqbm90aWZ5KShzdHJ1 Y3QgdmlydHF1ZXVlICopLA0KPiAgCQkJCQkgICAgICAgdm9pZCAoKmNhbGxiYWNrKShzdHJ1Y3Qg dmlydHF1ZXVlDQo+ICopLA0KPiAtCQkJCQkgICAgICAgY29uc3QgY2hhciAqbmFtZSkNCj4gKwkJ CQkJICAgICAgIGNvbnN0IGNoYXIgKm5hbWUsDQo+ICsJCQkJCSAgICAgICBzdHJ1Y3QgZGV2aWNl ICpkbWFfZGV2KQ0KPiAgew0KPiAgCXN0cnVjdCB2cmluZ192aXJ0cXVldWUgKnZxOw0KPiAgCWlu dCBlcnI7DQo+IEBAIC0yNTA3LDYgKzI1MjksNyBAQCBzdGF0aWMgc3RydWN0IHZpcnRxdWV1ZQ0K PiAqX192cmluZ19uZXdfdmlydHF1ZXVlKHVuc2lnbmVkIGludCBpbmRleCwNCj4gICNlbHNlDQo+ ICAJdnEtPmJyb2tlbiA9IGZhbHNlOw0KPiAgI2VuZGlmDQo+ICsJdnEtPmRtYV9kZXYgPSBkbWFf ZGV2Ow0KPiAgCXZxLT51c2VfZG1hX2FwaSA9IHZyaW5nX3VzZV9kbWFfYXBpKHZkZXYpOw0KPiAN Cj4gIAl2cS0+aW5kaXJlY3QgPSB2aXJ0aW9faGFzX2ZlYXR1cmUodmRldiwNCj4gVklSVElPX1JJ TkdfRl9JTkRJUkVDVF9ERVNDKSAmJg0KPiBAQCAtMjU0OSwxNCArMjU3MiwzOSBAQCBzdHJ1Y3Qg dmlydHF1ZXVlICp2cmluZ19jcmVhdGVfdmlydHF1ZXVlKA0KPiAgCWlmICh2aXJ0aW9faGFzX2Zl YXR1cmUodmRldiwgVklSVElPX0ZfUklOR19QQUNLRUQpKQ0KPiAgCQlyZXR1cm4gdnJpbmdfY3Jl YXRlX3ZpcnRxdWV1ZV9wYWNrZWQoaW5kZXgsIG51bSwNCj4gdnJpbmdfYWxpZ24sDQo+ICAJCQkJ dmRldiwgd2Vha19iYXJyaWVycywgbWF5X3JlZHVjZV9udW0sDQo+IC0JCQkJY29udGV4dCwgbm90 aWZ5LCBjYWxsYmFjaywgbmFtZSk7DQo+ICsJCQkJY29udGV4dCwgbm90aWZ5LCBjYWxsYmFjaywg bmFtZSwgdmRldi0NCj4gPmRldi5wYXJlbnQpOw0KPiANCj4gIAlyZXR1cm4gdnJpbmdfY3JlYXRl X3ZpcnRxdWV1ZV9zcGxpdChpbmRleCwgbnVtLCB2cmluZ19hbGlnbiwNCj4gIAkJCXZkZXYsIHdl YWtfYmFycmllcnMsIG1heV9yZWR1Y2VfbnVtLA0KPiAtCQkJY29udGV4dCwgbm90aWZ5LCBjYWxs YmFjaywgbmFtZSk7DQo+ICsJCQljb250ZXh0LCBub3RpZnksIGNhbGxiYWNrLCBuYW1lLCB2ZGV2 LT5kZXYucGFyZW50KTsNCj4gIH0NCj4gIEVYUE9SVF9TWU1CT0xfR1BMKHZyaW5nX2NyZWF0ZV92 aXJ0cXVldWUpOw0KPiANCj4gK3N0cnVjdCB2aXJ0cXVldWUgKnZyaW5nX2NyZWF0ZV92aXJ0cXVl dWVfZG1hKA0KPiArCXVuc2lnbmVkIGludCBpbmRleCwNCj4gKwl1bnNpZ25lZCBpbnQgbnVtLA0K PiArCXVuc2lnbmVkIGludCB2cmluZ19hbGlnbiwNCj4gKwlzdHJ1Y3QgdmlydGlvX2RldmljZSAq dmRldiwNCj4gKwlib29sIHdlYWtfYmFycmllcnMsDQo+ICsJYm9vbCBtYXlfcmVkdWNlX251bSwN Cj4gKwlib29sIGNvbnRleHQsDQo+ICsJYm9vbCAoKm5vdGlmeSkoc3RydWN0IHZpcnRxdWV1ZSAq KSwNCj4gKwl2b2lkICgqY2FsbGJhY2spKHN0cnVjdCB2aXJ0cXVldWUgKiksDQo+ICsJY29uc3Qg Y2hhciAqbmFtZSwNCj4gKwlzdHJ1Y3QgZGV2aWNlICpkbWFfZGV2KQ0KPiArew0KPiArDQo+ICsJ aWYgKHZpcnRpb19oYXNfZmVhdHVyZSh2ZGV2LCBWSVJUSU9fRl9SSU5HX1BBQ0tFRCkpDQo+ICsJ CXJldHVybiB2cmluZ19jcmVhdGVfdmlydHF1ZXVlX3BhY2tlZChpbmRleCwgbnVtLA0KPiB2cmlu Z19hbGlnbiwNCj4gKwkJCQl2ZGV2LCB3ZWFrX2JhcnJpZXJzLCBtYXlfcmVkdWNlX251bSwNCj4g KwkJCQljb250ZXh0LCBub3RpZnksIGNhbGxiYWNrLCBuYW1lLCBkbWFfZGV2KTsNCj4gKw0KPiAr CXJldHVybiB2cmluZ19jcmVhdGVfdmlydHF1ZXVlX3NwbGl0KGluZGV4LCBudW0sIHZyaW5nX2Fs aWduLA0KPiArCQkJdmRldiwgd2Vha19iYXJyaWVycywgbWF5X3JlZHVjZV9udW0sDQo+ICsJCQlj b250ZXh0LCBub3RpZnksIGNhbGxiYWNrLCBuYW1lLCBkbWFfZGV2KTsNCj4gK30NCj4gK0VYUE9S VF9TWU1CT0xfR1BMKHZyaW5nX2NyZWF0ZV92aXJ0cXVldWVfZG1hKTsNCj4gKw0KPiAgLyoqDQo+ ICAgKiB2aXJ0cXVldWVfcmVzaXplIC0gcmVzaXplIHRoZSB2cmluZyBvZiB2cQ0KPiAgICogQF92 cTogdGhlIHN0cnVjdCB2aXJ0cXVldWUgd2UncmUgdGFsa2luZyBhYm91dC4NCj4gQEAgLTI2NDUs NyArMjY5Myw4IEBAIHN0cnVjdCB2aXJ0cXVldWUgKnZyaW5nX25ld192aXJ0cXVldWUodW5zaWdu ZWQNCj4gaW50IGluZGV4LA0KPiANCj4gIAl2cmluZ19pbml0KCZ2cmluZ19zcGxpdC52cmluZywg bnVtLCBwYWdlcywgdnJpbmdfYWxpZ24pOw0KPiAgCXJldHVybiBfX3ZyaW5nX25ld192aXJ0cXVl dWUoaW5kZXgsICZ2cmluZ19zcGxpdCwgdmRldiwNCj4gd2Vha19iYXJyaWVycywNCj4gLQkJCQkg ICAgIGNvbnRleHQsIG5vdGlmeSwgY2FsbGJhY2ssIG5hbWUpOw0KPiArCQkJCSAgICAgY29udGV4 dCwgbm90aWZ5LCBjYWxsYmFjaywgbmFtZSwNCj4gKwkJCQkgICAgIHZkZXYtPmRldi5wYXJlbnQp Ow0KPiAgfQ0KPiAgRVhQT1JUX1NZTUJPTF9HUEwodnJpbmdfbmV3X3ZpcnRxdWV1ZSk7DQo+IA0K PiBAQCAtMjY1OCwxNyArMjcwNywyMCBAQCBzdGF0aWMgdm9pZCB2cmluZ19mcmVlKHN0cnVjdCB2 aXJ0cXVldWUgKl92cSkNCj4gIAkJCXZyaW5nX2ZyZWVfcXVldWUodnEtPnZxLnZkZXYsDQo+ICAJ CQkJCSB2cS0+cGFja2VkLnJpbmdfc2l6ZV9pbl9ieXRlcywNCj4gIAkJCQkJIHZxLT5wYWNrZWQu dnJpbmcuZGVzYywNCj4gLQkJCQkJIHZxLT5wYWNrZWQucmluZ19kbWFfYWRkcik7DQo+ICsJCQkJ CSB2cS0+cGFja2VkLnJpbmdfZG1hX2FkZHIsDQo+ICsJCQkJCSB2cmluZ19kbWFfZGV2KHZxKSk7 DQo+IA0KPiAgCQkJdnJpbmdfZnJlZV9xdWV1ZSh2cS0+dnEudmRldiwNCj4gIAkJCQkJIHZxLT5w YWNrZWQuZXZlbnRfc2l6ZV9pbl9ieXRlcywNCj4gIAkJCQkJIHZxLT5wYWNrZWQudnJpbmcuZHJp dmVyLA0KPiAtCQkJCQkgdnEtPnBhY2tlZC5kcml2ZXJfZXZlbnRfZG1hX2FkZHIpOw0KPiArCQkJ CQkgdnEtPnBhY2tlZC5kcml2ZXJfZXZlbnRfZG1hX2FkZHIsDQo+ICsJCQkJCSB2cmluZ19kbWFf ZGV2KHZxKSk7DQo+IA0KPiAgCQkJdnJpbmdfZnJlZV9xdWV1ZSh2cS0+dnEudmRldiwNCj4gIAkJ CQkJIHZxLT5wYWNrZWQuZXZlbnRfc2l6ZV9pbl9ieXRlcywNCj4gIAkJCQkJIHZxLT5wYWNrZWQu dnJpbmcuZGV2aWNlLA0KPiAtCQkJCQkgdnEtDQo+ID5wYWNrZWQuZGV2aWNlX2V2ZW50X2RtYV9h ZGRyKTsNCj4gKwkJCQkJIHZxLT5wYWNrZWQuZGV2aWNlX2V2ZW50X2RtYV9hZGRyLA0KPiArCQkJ CQkgdnJpbmdfZG1hX2Rldih2cSkpOw0KPiANCj4gIAkJCWtmcmVlKHZxLT5wYWNrZWQuZGVzY19z dGF0ZSk7DQo+ICAJCQlrZnJlZSh2cS0+cGFja2VkLmRlc2NfZXh0cmEpOw0KPiBAQCAtMjY3Niw3 ICsyNzI4LDggQEAgc3RhdGljIHZvaWQgdnJpbmdfZnJlZShzdHJ1Y3QgdmlydHF1ZXVlICpfdnEp DQo+ICAJCQl2cmluZ19mcmVlX3F1ZXVlKHZxLT52cS52ZGV2LA0KPiAgCQkJCQkgdnEtPnNwbGl0 LnF1ZXVlX3NpemVfaW5fYnl0ZXMsDQo+ICAJCQkJCSB2cS0+c3BsaXQudnJpbmcuZGVzYywNCj4g LQkJCQkJIHZxLT5zcGxpdC5xdWV1ZV9kbWFfYWRkcik7DQo+ICsJCQkJCSB2cS0+c3BsaXQucXVl dWVfZG1hX2FkZHIsDQo+ICsJCQkJCSB2cmluZ19kbWFfZGV2KHZxKSk7DQo+ICAJCX0NCj4gIAl9 DQo+ICAJaWYgKCF2cS0+cGFja2VkX3JpbmcpIHsNCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvdmlydGlvX3JpbmcuaCBiL2luY2x1ZGUvbGludXgvdmlydGlvX3JpbmcuaA0KPiBpbmRleCA4 YjhhZjFhMzg5OTEuLjhiOTViNjllZjY5NCAxMDA2NDQNCj4gLS0tIGEvaW5jbHVkZS9saW51eC92 aXJ0aW9fcmluZy5oDQo+ICsrKyBiL2luY2x1ZGUvbGludXgvdmlydGlvX3JpbmcuaA0KPiBAQCAt NzYsNiArNzYsMjIgQEAgc3RydWN0IHZpcnRxdWV1ZSAqdnJpbmdfY3JlYXRlX3ZpcnRxdWV1ZSh1 bnNpZ25lZCBpbnQNCj4gaW5kZXgsDQo+ICAJCQkJCSB2b2lkICgqY2FsbGJhY2spKHN0cnVjdCB2 aXJ0cXVldWUNCj4gKnZxKSwNCj4gIAkJCQkJIGNvbnN0IGNoYXIgKm5hbWUpOw0KPiANCj4gKy8q DQo+ICsgKiBDcmVhdGVzIGEgdmlydHF1ZXVlIGFuZCBhbGxvY2F0ZXMgdGhlIGRlc2NyaXB0b3Ig cmluZyB3aXRoIHBlcg0KPiArICogdmlydHF1ZXVlIERNQSBkZXZpY2UuDQo+ICsgKi8NCj4gK3N0 cnVjdCB2aXJ0cXVldWUgKnZyaW5nX2NyZWF0ZV92aXJ0cXVldWVfZG1hKHVuc2lnbmVkIGludCBp bmRleCwNCj4gKwkJCQkJICAgICB1bnNpZ25lZCBpbnQgbnVtLA0KPiArCQkJCQkgICAgIHVuc2ln bmVkIGludCB2cmluZ19hbGlnbiwNCj4gKwkJCQkJICAgICBzdHJ1Y3QgdmlydGlvX2RldmljZSAq dmRldiwNCj4gKwkJCQkJICAgICBib29sIHdlYWtfYmFycmllcnMsDQo+ICsJCQkJCSAgICAgYm9v bCBtYXlfcmVkdWNlX251bSwNCj4gKwkJCQkJICAgICBib29sIGN0eCwNCj4gKwkJCQkJICAgICBi b29sICgqbm90aWZ5KShzdHJ1Y3QgdmlydHF1ZXVlDQo+ICp2cSksDQo+ICsJCQkJCSAgICAgdm9p ZCAoKmNhbGxiYWNrKShzdHJ1Y3QgdmlydHF1ZXVlDQo+ICp2cSksDQo+ICsJCQkJCSAgICAgY29u c3QgY2hhciAqbmFtZSwNCj4gKwkJCQkJICAgICBzdHJ1Y3QgZGV2aWNlICpkbWFfZGV2KTsNCj4g Kw0KPiAgLyoNCj4gICAqIENyZWF0ZXMgYSB2aXJ0cXVldWUgd2l0aCBhIHN0YW5kYXJkIGxheW91 dCBidXQgYSBjYWxsZXItYWxsb2NhdGVkDQo+ICAgKiByaW5nLg0KPiAtLQ0KPiAyLjI1LjENCg0K