Received: by 2002:a05:7412:518d:b0:e2:908c:2ebd with SMTP id fn13csp316272rdb; Thu, 5 Oct 2023 06:57:23 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHeLV2ohiuULTUom+RC3hTFJjIivt5LKL6RtbE9GqSKx19+xT9WWpg/+JL72pesw17dVkWN X-Received: by 2002:a05:6e02:1c4d:b0:34b:ac73:eb97 with SMTP id d13-20020a056e021c4d00b0034bac73eb97mr6388703ilg.14.1696514242692; Thu, 05 Oct 2023 06:57:22 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1696514242; cv=pass; d=google.com; s=arc-20160816; b=Ei9lYuA2WfHD9mipfNfV46M553p7uoMhmulfFsv8Z7z7061D6Udf02XS+xYWwjdAMl ISHYaq/hqoMbw6sGNlfiADBDk4PCd4wCnwc58T4x5Pjrqu1KCL3Y14ewLY37KbGPLcay Ie8Str7YEMMSZlH5oDAmlpPm76F27fsSEXP42G8TQTuReUm4jq5XE04iBhgb6SJdMyrf N5I9wppZ6jYoGrUB8d2f9zY5B2w4xyozYy8YxwhU8zBfdHmdZo0Zz4XbFpYc5uXXhaae cwq7wTGvBgr6mErju0hdKwuwRv2KWkAn/GEWkoC9pZJU7CED0hR/kJrHDEOxPvBLs3kv Lm0Q== 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-id:user-agent:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:dkim-signature; bh=vW8ANML9XRW23CcYhE/Oz4u59BcmE1x/VATuS2kF1hQ=; fh=jf0NJrVVGLire29KH62yDErChGO1DKk0BZK6p1kjKkg=; b=c7afq/MpK6RxU7fxClvZzA707SESj2DqQml0Z7KRomVcBXXW61juZ6jICxBZzs5lel higFAFQRMjwqAHVfJxhZfXvfEPm8XwplPrmfhKK6VuPpfzvcnmKrGfmwWKP7otE7WBf0 9y63HfjjWiUCOiE1a/J2D6QM2ByuhspjTrKUMHAXhYqAFna1S25rtytVQHvHiEPNdPjR cN/sx/yKm7Ytr/5Il6mEOmPdHrMHGjzbL6FsagOxh4UhyyT+5v+McQk3uEna/Hc5zNfE unzlzY0BRUrKBniDjwcMJF6/HBhLiFySCfcdaNgQjyyW/SF8JrdQxmjAsaKq9VYUTLm/ gqaQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@Nvidia.com header.s=selector2 header.b=PSzwneSM; 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::3:7 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 snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id v70-20020a638949000000b005653316de6fsi1475667pgd.271.2023.10.05.06.57.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Oct 2023 06:57:22 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; dkim=pass header.i=@Nvidia.com header.s=selector2 header.b=PSzwneSM; 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::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=nvidia.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 9F28C802D536; Thu, 5 Oct 2023 06:57:02 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231726AbjJEN4k (ORCPT + 99 others); Thu, 5 Oct 2023 09:56:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60500 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240519AbjJENyz (ORCPT ); Thu, 5 Oct 2023 09:54:55 -0400 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on20607.outbound.protection.outlook.com [IPv6:2a01:111:f400:7eaa::607]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1472A261A8 for ; Thu, 5 Oct 2023 05:17:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FM3Vkd2F8Guz2JjvJVkyxC81KiGzoV3gR74ARYYj+qmaSndE3hnK7PuiOX83J/x+qfiLPp8vIUpVCwYk3Ekp/G3tzbquw/wO1V31zkXHcD0FMSMHgwLYhxOc28K2tJ4311b0vsMu0nM8QfSXerzvrUtk6yW6NzAcOBKa5yv0fzPt/eVi3TrzngInTSteX0kTLHKvwX1yG4koO32Fj73TCs4Sfi7Jlv8B+bp7yX8YwX5CFhimS1rTz3V3KsfHE2I+KB50K7Z96XkeofkaAeV0aZQUSqxD2q5QhdZM6Ow7/7qWvqK4tpYoSrE1jgT9lq+S33Ir2ivq64/cPm1JtRCl5A== 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=vW8ANML9XRW23CcYhE/Oz4u59BcmE1x/VATuS2kF1hQ=; b=nh8pGvF0Ld7xpxe2g+XUIHWNevIuk+5gWfruSxj/9CcR+ZMIfsc/vdP3VWQ7JdLKwkrp5fbaUxJX0H3R7pfGvw5bk/EgvA6Z+K+clSOrS0bA6wrXdIWlSCn5Ac3IcXxkoJ4R7MLiHOqFXzz6srhOqnP0SitKsUuql64zKI223OAesfpSfsxU+r6Mdjun/TkAIkzoBKWhoQcFJXsmTvETfDZuEfuOT6cl7xNiFXHJnjGAx5s+oX3Rij2t6yPIuULWc23BQhoL4+M0Ke4hx0fRkesvmpYJLlLl6xe6JQlmm373249Xmp2Hif2OK+gNZptYsrFDkzgX2VlRDApNCpw7cg== 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=vW8ANML9XRW23CcYhE/Oz4u59BcmE1x/VATuS2kF1hQ=; b=PSzwneSMqfk67Tt4dnivk+9qkMojxJEbukgLDmux+icpKLsB4Jt93pEBoR5OO5YOiJUuLoykxhZTzTunEXnqJ/8yfPVJITc0Ooyh6bJrPOqVer8zT7RCbEAza83gj62ekcdtomXqg9klKg6OHxO9c+DSs4FslO04tEcrjXvM2hm1NOZF6hi9E0Hwzo5fQfXx5koA/8JRJXL/BOVc39DYoJGjbkAiF7QVl87qd0gOxO3LWVpdD/CM6ZS3cz4z0NtmpGCZEzkpdbsHfNRYU2Ys76rJRboW1h2C8Ae+JJVEYe7aWK+EslWstnmGERYlcv13MIga3Wk/gVNOb4OQJypdIg== Received: from DM6PR12MB5565.namprd12.prod.outlook.com (2603:10b6:5:1b6::13) by CY8PR12MB7313.namprd12.prod.outlook.com (2603:10b6:930:53::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.20; Thu, 5 Oct 2023 12:16:58 +0000 Received: from DM6PR12MB5565.namprd12.prod.outlook.com ([fe80::fddf:d4b8:44d9:d378]) by DM6PR12MB5565.namprd12.prod.outlook.com ([fe80::fddf:d4b8:44d9:d378%7]) with mapi id 15.20.6838.033; Thu, 5 Oct 2023 12:16:58 +0000 From: Dragos Tatulea To: "eperezma@redhat.com" CC: "virtualization@lists.linux-foundation.org" , Gal Pressman , "mst@redhat.com" , "linux-kernel@vger.kernel.org" , "jasowang@redhat.com" , "xuanzhuo@linux.alibaba.com" Subject: Re: [PATCH vhost 15/16] vdpa/mlx5: Make iotlb helper functions more generic Thread-Topic: [PATCH vhost 15/16] vdpa/mlx5: Make iotlb helper functions more generic Thread-Index: AQHZ8ivjlxjS2LcKd0WMuwpYKO6cabA7BR0AgAAiNoA= Date: Thu, 5 Oct 2023 12:16:58 +0000 Message-ID: <2f11f0c6744e40fe36b5a7429ceb7c88f0e8c91d.camel@nvidia.com> References: <20230928164550.980832-2-dtatulea@nvidia.com> <20230928164550.980832-17-dtatulea@nvidia.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.48.4 (3.48.4-1.fc38) 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: DM6PR12MB5565:EE_|CY8PR12MB7313:EE_ x-ms-office365-filtering-correlation-id: 862cfe61-dad6-4ed6-6558-08dbc59cf8fc x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: rGTDkzTli2v4OoK3Zh44F2Z1hXldmrXhQwCqkoFJYpFhsjYGXSznSQ7ZIeM2bZza5faoXmp+aOFjW9QMW+YavrhvzTzuxIoaoVnT7AjisYihIkso52ot8RmQBQD/0/4ADjOGJNCCTDOahRpmZdCAuIYgXzWf9BfRJ1f8o4j3/FNQA0G/XtwqRsW0/ms8Ods9+5aDWxdsC9LZRkcDn/dHsAwkoZNorEC4PkH1TGX8P+kr4x79u4jjx8NnNECkqqqsyz0OxOtU15wTV/WX6SQTPuRcVo+IYv2qfq9T2/oJqY1BelaUtlUMQemNLhwhORYdpnhyj56OPAZbstXp4xaigwxMcpyecSQSMl8DxvEJqZ75mEF0NTrYlntx1SyZoyszvgxxww9KdphOxrpC75/SQnLsvkdI3aDbh8kwz5Y75BFffKkLM7Xax9lZhZmkFBKCjC1D4ax+RuvIyyruY688t91u03lI6nuSS+6+BCAe9/UUZDQjLai4hKoPoWhptIzEDAE0g/TSeDR0oNR2pa0lPi0CByUn7ShfvZ+jb0LzLS9rUy96JpcFZDjKsOw7pQjsSX58vMHv3AZXsLGE2oSJ/fOAXSM6QJ57q+Zn8ItiDZijh0j5tfUbhzKSvl70yhAeLGiKhGsahEI3PN8NijN8+g== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR12MB5565.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(136003)(346002)(396003)(376002)(39860400002)(230922051799003)(64100799003)(451199024)(186009)(1800799009)(86362001)(5660300002)(2906002)(4326008)(8936002)(41300700001)(83380400001)(122000001)(6506007)(38070700005)(38100700002)(66574015)(8676002)(2616005)(53546011)(478600001)(66556008)(91956017)(316002)(6916009)(76116006)(66476007)(66946007)(66446008)(54906003)(64756008)(6486002)(6512007)(71200400001)(36756003)(41533002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RWZyVnhkbU9ESmIwZzhoQWlFUjZUZ0JsVlIrSEpHSHcvRUhIOUZnMEpvUHV4?= =?utf-8?B?S2wvb3pSSGFPOWpZVWlsSkxaVHRRd0dXejJINDZJd2ZVenJIS0ZOejIxSXBX?= =?utf-8?B?MjZEZ3dDVm5TSjEwWWJhT2pPSnlhaVFEWWtNeDdxQWNTbnlhNjcxd1hEUzF3?= =?utf-8?B?emt5aHM2OXFwaDF5VEhFbkNNQkUvek8rUWpIOERpbnNTTFIrYTJIQ0ZUWHE4?= =?utf-8?B?RmhCWFRQWXcwbmtlallMZFpxWEdZZU5PS2xiMlc3MkNMKzZGbFptcmxQRTNn?= =?utf-8?B?N3dqNjhNNDhFM3VWT1IrN2VYYmpWK1VmYjdqUG9JOERLVWRhaVFoWmUvOWZv?= =?utf-8?B?ekRrdXZOK0RVRk5zNHBHSU9iZTF0UHFMb1B5M0FOakxLcFdsaFNlL0t2c0hu?= =?utf-8?B?R0V0NTEzeUFPQ1lTMEl3VDhTVjVqTU1XOXZNaXhYQzRkRjZhdjNXdGR2QXdL?= =?utf-8?B?REIwT0g4NkRhbGRXSUQvSW1BNHNYeFVwVTFidEM5WmhndzZTb0hra0MwZWVn?= =?utf-8?B?dDVhTmRrU1NjYjN5ODYzQ3RzeExpT1lwZ1Q5ZThxUG5nY3VSU2U1VWFQSnVx?= =?utf-8?B?MHVVNDF6eTBaUDBuVmg0WWVabU0zZGhjQUFSWWx3N2FmdkxlVklPTnBRaTBF?= =?utf-8?B?M0NCM3ppcDJrOVFmc2FENnZHbEw1WGdHVUtnckYvdG9Ud0VFL2dFTzh0bVda?= =?utf-8?B?UHpGRTlJdGplbG1icDRpd21MU3FCckJ3YXdkRDNPbHZCTDNuYlk0Q2JKMEIw?= =?utf-8?B?QXA1L2FBRjJIcFFUSUNxbXVaRTJhamhPTTZCenoyOEdyQ3ExTWQ0cmszTHEx?= =?utf-8?B?S3Z1ZDhreVB2dHBjUEVZYU9WbXdVM0pOWStWV0Nqd2tjYklYWTNkQ0VGZFV4?= =?utf-8?B?ekVnYm9aM2xKNlZTcWZaZlRzYVRwc040UDJjVVVGYWdTSGVnYWNiQmRNaFJl?= =?utf-8?B?ZVdMOWFXeGMvUHZvQ05aV25LZVVCRFVRRHJOTHYwdEp5b2g2Q2xtaWtsVVNy?= =?utf-8?B?MlJVZUdISEpna0dkdDJxYTlYRjg3NUNnUzl3YUdmTFRDRHU3VzhmbnZiZUll?= =?utf-8?B?bERkR3lSVG9pTG1rb3VscHlsRjYwWCtUMUZMd0luQk8wb3RnNGNWQmpMRXFr?= =?utf-8?B?NStOMTJqOTRCQXoyUXFUUzZlbGdCUEkwMlBYcXE3Nm9qdXU0TnI0cHJtQWRt?= =?utf-8?B?WW01UWpDUThBcXNYMVdkbDZKYXRHY0Vjem9DaVMvSmZPTUs1anlRaWVlWW5D?= =?utf-8?B?bnNLb01lcnp6SGdTZXcyVFM0TGIxanRIYkhpK2psZ2Rma0RxM3VJY1A1V3ND?= =?utf-8?B?YTdRbkVnUkVEZDBWYXBkdUY2UDJPbU1ldDA0T0tCMWdPdUR1QXUwelltak1M?= =?utf-8?B?R0U1bzUrd0hyVEZrUG0razFrWEdNSzI0R0RhRVJRZnZlVUZUZ3lzWi9SOWRQ?= =?utf-8?B?K25EZk5JUXVPUVpYWnU2ejBNUXFBVUR5bFlQVjdiWlYvcHRGUHpubUV0b3Mx?= =?utf-8?B?NGtHZy9ONnZjamhrb1BmWEczWlZEQm5qTzV2K0x3N2hzRFJPdGpERUFzdWhR?= =?utf-8?B?eUNCZ3VaRzRCc3oyQjhDUDAzVmJqSGU0Unl4UGYzUEUxNzNiSXNTbXJWUVlw?= =?utf-8?B?S1pNTWppQzQrSm1MOWx6ZjhVQ0tMcCt1SXZEWFdXZjVsQjFrV0Mxc3d3c0dE?= =?utf-8?B?cEVMdkRCcjF6WmZjQ1BHZDBxd2VPekhMV3ZNVGxpT3dJZUFtVlJ2NEcreUNv?= =?utf-8?B?RUk5Z1JTcXBIajBTdHZmdC94Z1ZacFFWcDIrUXQ2TnRZYnQzMlJJU0RnMk4y?= =?utf-8?B?UGFTTEcvbVM5NFgzTVRjRU1rQWxCVmVWVXRrcW9OL2JmSEZVT01DZ1JRUDZB?= =?utf-8?B?Zk1nNDVaZGFLZUZaM3BQWHNkNm5LSmlLQXlCc1c2WERZcGdyejRueDdVWFoz?= =?utf-8?B?MmFSTmdOTHkxUnE2MXdVY2pEalZ1S0xmTUlsK08yYzUvd0VOTVQ2bUY4cWky?= =?utf-8?B?RWdJcGdBR0NsQ2Q5MGE3bGNvaWZUd0hzaTZFOWREaGlTaXpIM3ZuUzAyUnYz?= =?utf-8?B?U1VHYkJsRGplSVkvVTFXc0FLQWI0MGN5eVJIRGV5OURCUzFobThuUWphV2RY?= =?utf-8?B?c3ZWMU1TdElXSmhseW4xMDR5eDZON0xlY0dEMjZpODZHNkE0aVMzY2ZPM1lS?= =?utf-8?Q?bBQcC6sVbpFdKdqS3oLXwxCDcmXhniBLJmjloid+panq?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB5565.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 862cfe61-dad6-4ed6-6558-08dbc59cf8fc X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Oct 2023 12:16:58.5658 (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: jKUyb+BnIciG0wEa4gJBsJ3q+EZeDPO9ce3VaS3Gi0eqfw+geG+wZDFRcijzW0W73neqBdMf3VYoDN3rBGrT2w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7313 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, SPF_HELO_PASS,SPF_NONE,URIBL_BLOCKED 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 X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Thu, 05 Oct 2023 06:57:10 -0700 (PDT) T24gVGh1LCAyMDIzLTEwLTA1IGF0IDEyOjE0ICswMjAwLCBFdWdlbmlvIFBlcmV6IE1hcnRpbiB3 cm90ZToKPiBPbiBUaHUsIFNlcCAyOCwgMjAyMyBhdCA2OjUw4oCvUE0gRHJhZ29zIFRhdHVsZWEg PGR0YXR1bGVhQG52aWRpYS5jb20+IHdyb3RlOgo+ID4gCj4gPiBUaGV5IHdpbGwgYmUgdXNlZCBp biBhIGZvbGxvd3VwIHBhdGNoLgo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBEcmFnb3MgVGF0dWxl YSA8ZHRhdHVsZWFAbnZpZGlhLmNvbT4KPiA+IC0tLQo+ID4gwqBkcml2ZXJzL3ZkcGEvbWx4NS9j b3JlL21yLmMgfCAxNiArKysrKysrKy0tLS0tLS0tCj4gPiDCoDEgZmlsZSBjaGFuZ2VkLCA4IGlu c2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L3ZkcGEvbWx4NS9jb3JlL21yLmMgYi9kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMKPiA+IGlu ZGV4IDNkZWU2ZDliZWQ2Yi4uYTQxMzVjMTZiNWJmIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy92 ZHBhL21seDUvY29yZS9tci5jCj4gPiArKysgYi9kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMK PiA+IEBAIC00NTQsMjAgKzQ1NCwyMCBAQCBzdGF0aWMgdm9pZCBkZXN0cm95X2RtYV9tcihzdHJ1 Y3QgbWx4NV92ZHBhX2Rldgo+ID4gKm12ZGV2LCBzdHJ1Y3QgbWx4NV92ZHBhX21yICptcikKPiA+ IMKgwqDCoMKgwqDCoMKgIG1seDVfdmRwYV9kZXN0cm95X21rZXkobXZkZXYsIG1yLT5ta2V5KTsK PiA+IMKgfQo+ID4gCj4gPiAtc3RhdGljIGludCBkdXBfaW90bGIoc3RydWN0IG1seDVfdmRwYV9k ZXYgKm12ZGV2LCBzdHJ1Y3Qgdmhvc3RfaW90bGIgKnNyYykKPiA+ICtzdGF0aWMgaW50IGR1cF9p b3RsYihzdHJ1Y3Qgdmhvc3RfaW90bGIgKmlvdGxiLCBzdHJ1Y3Qgdmhvc3RfaW90bGIgKnNyYykK PiAKPiBJdCB3b3VsZCBiZSBncmVhdCB0byBtb3ZlIHRoaXMgcGF0Y2ggdG8gdmhvc3QvaW90bGIs IGVzcGVjaWFsbHkKPiBiZWNhdXNlIGl0IGNhbiBiZSByZXVzZWQgYnkgdmRwYV9zaW0uIEJ1dCBp dCBjYW4gYmUgZG9uZSBvbiB0b3AgZm9yCj4gc3VyZSwKPiAKQWNrLiBXaWxsIGNyZWF0ZSBhIHNl cGFyYXRlIHBhdGNoIGZvciB0aGlzIGFmdGVyIHRoZSBzZXJpZXMuCgpUaGFua3MsCkRyYWdvcwoK PiBBY2tlZC1ieTogRXVnZW5pbyBQw6lyZXogPGVwZXJlem1hQHJlZGhhdC5jb20+Cj4gCj4gPiDC oHsKPiA+IMKgwqDCoMKgwqDCoMKgIHN0cnVjdCB2aG9zdF9pb3RsYl9tYXAgKm1hcDsKPiA+IMKg wqDCoMKgwqDCoMKgIHU2NCBzdGFydCA9IDAsIGxhc3QgPSBVTExPTkdfTUFYOwo+ID4gwqDCoMKg wqDCoMKgwqAgaW50IGVycjsKPiA+IAo+ID4gwqDCoMKgwqDCoMKgwqAgaWYgKCFzcmMpIHsKPiA+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVyciA9IHZob3N0X2lvdGxiX2FkZF9yYW5n ZShtdmRldi0+Y3ZxLmlvdGxiLCBzdGFydCwgbGFzdCwKPiA+IHN0YXJ0LCBWSE9TVF9BQ0NFU1Nf UlcpOwo+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZXJyID0gdmhvc3RfaW90bGJf YWRkX3JhbmdlKGlvdGxiLCBzdGFydCwgbGFzdCwgc3RhcnQsCj4gPiBWSE9TVF9BQ0NFU1NfUlcp Owo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBlcnI7Cj4gPiDCoMKg wqDCoMKgwqDCoCB9Cj4gPiAKPiA+IMKgwqDCoMKgwqDCoMKgIGZvciAobWFwID0gdmhvc3RfaW90 bGJfaXRyZWVfZmlyc3Qoc3JjLCBzdGFydCwgbGFzdCk7IG1hcDsKPiA+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBtYXAgPSB2aG9zdF9pb3RsYl9pdHJlZV9uZXh0KG1hcCwgc3RhcnQs IGxhc3QpKSB7Cj4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlcnIgPSB2aG9zdF9p b3RsYl9hZGRfcmFuZ2UobXZkZXYtPmN2cS5pb3RsYiwgbWFwLT5zdGFydCwKPiA+IG1hcC0+bGFz dCwKPiA+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVyciA9IHZob3N0X2lvdGxiX2Fk ZF9yYW5nZShpb3RsYiwgbWFwLT5zdGFydCwgbWFwLT5sYXN0LAo+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgbWFwLT5hZGRyLCBtYXAtPnBlcm0pOwo+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGlmIChlcnIpCj4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBlcnI7Cj4gPiBAQCAtNDc1LDkgKzQ3NSw5IEBAIHN0 YXRpYyBpbnQgZHVwX2lvdGxiKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0Cj4g PiB2aG9zdF9pb3RsYiAqc3JjKQo+ID4gwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4gPiDCoH0K PiA+IAo+ID4gLXN0YXRpYyB2b2lkIHBydW5lX2lvdGxiKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICpt dmRldikKPiA+ICtzdGF0aWMgdm9pZCBwcnVuZV9pb3RsYihzdHJ1Y3Qgdmhvc3RfaW90bGIgKmlv dGxiKQo+ID4gwqB7Cj4gPiAtwqDCoMKgwqDCoMKgIHZob3N0X2lvdGxiX2RlbF9yYW5nZShtdmRl di0+Y3ZxLmlvdGxiLCAwLCBVTExPTkdfTUFYKTsKPiA+ICvCoMKgwqDCoMKgwqAgdmhvc3RfaW90 bGJfZGVsX3JhbmdlKGlvdGxiLCAwLCBVTExPTkdfTUFYKTsKPiA+IMKgfQo+ID4gCj4gPiDCoHN0 YXRpYyB2b2lkIGRlc3Ryb3lfdXNlcl9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHN0 cnVjdAo+ID4gbWx4NV92ZHBhX21yICptcikKPiA+IEBAIC01NDQsNyArNTQ0LDcgQEAgdm9pZCBt bHg1X3ZkcGFfZGVzdHJveV9tcl9yZXNvdXJjZXMoc3RydWN0IG1seDVfdmRwYV9kZXYKPiA+ICpt dmRldikKPiA+IMKgwqDCoMKgwqDCoMKgIGZvciAoaW50IGkgPSAwOyBpIDwgTUxYNV9WRFBBX05V TV9BUzsgaSsrKQo+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1seDVfdmRwYV9k ZXN0cm95X21yKG12ZGV2LCBtdmRldi0+bXJbaV0pOwo+ID4gCj4gPiAtwqDCoMKgwqDCoMKgIHBy dW5lX2lvdGxiKG12ZGV2KTsKPiA+ICvCoMKgwqDCoMKgwqAgcHJ1bmVfaW90bGIobXZkZXYtPmN2 cS5pb3RsYik7Cj4gPiDCoH0KPiA+IAo+ID4gwqBzdGF0aWMgaW50IF9tbHg1X3ZkcGFfY3JlYXRl X21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwKPiA+IEBAIC01OTYsOCArNTk2LDggQEAg aW50IG1seDVfdmRwYV91cGRhdGVfY3ZxX2lvdGxiKHN0cnVjdCBtbHg1X3ZkcGFfZGV2Cj4gPiAq bXZkZXYsCj4gPiAKPiA+IMKgwqDCoMKgwqDCoMKgIHNwaW5fbG9jaygmbXZkZXYtPmN2cS5pb21t dV9sb2NrKTsKPiA+IAo+ID4gLcKgwqDCoMKgwqDCoCBwcnVuZV9pb3RsYihtdmRldik7Cj4gPiAt wqDCoMKgwqDCoMKgIGVyciA9IGR1cF9pb3RsYihtdmRldiwgaW90bGIpOwo+ID4gK8KgwqDCoMKg wqDCoCBwcnVuZV9pb3RsYihtdmRldi0+Y3ZxLmlvdGxiKTsKPiA+ICvCoMKgwqDCoMKgwqAgZXJy ID0gZHVwX2lvdGxiKG12ZGV2LT5jdnEuaW90bGIsIGlvdGxiKTsKPiA+IAo+ID4gwqDCoMKgwqDC oMKgwqAgc3Bpbl91bmxvY2soJm12ZGV2LT5jdnEuaW9tbXVfbG9jayk7Cj4gPiAKPiA+IC0tCj4g PiAyLjQxLjAKPiA+IAo+IAoK