From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9F3E5FD007A for ; Sun, 1 Mar 2026 18:58:13 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0948C10E401; Sun, 1 Mar 2026 18:58:08 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.b="kCz0FYs+"; dkim-atps=neutral Received: from BL2PR02CU003.outbound.protection.outlook.com (mail-eastusazon11011004.outbound.protection.outlook.com [52.101.52.4]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1D7C610E3F6; Sun, 1 Mar 2026 18:58:06 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=q9PYcU5e/kJDfLNjgblrCYWrhUbrBQIKBqebZ/vIG1z9DOdOMo92d8j8ypT6u58OuuwrVtPy+/Xw6312Nbvgbe0jCQFQg3zhyUwIWG7nDOm7zx+Z89GhBwq4bSFcJXVCwGdmx62h1c+6uzdHJs5iYEiIVzH/mdNPgJjFXdNNABDP8oEQebzWBdod+iBBXpS+fILT0kHkV8ZKNB5TzgbhSAu5C4i5Q8Ado8M6P4eGMWorSZ7xkGU98zFl9sIezcCYwiClHN3ghAtPweYKlFFJK58NtxSWWM/lNJJgTa+7YrZQ1CVSI724BLhLaBtKCcx3YiOExIYDymdlOeA64OLZ3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=lz4990U5peHB+guUcGVvhQ3px+EmAIMqj2P8VyHOg1U=; b=Xmat8gtqFdH4CbdT1UEnECEEBwtacQcq/3UupXxs2U1gwQS8Kxk5N4VCgKY6eGgYNCgoY2VEF0bx3/51+g0Ylm7Nsf7gbIx1hVk2DNQHYklKaZD9U1v71WzSJ8tDrIR/KvIJS1GZdVcOk8OeBLfV0aGneu+ZTUi7P/1gFKLlZzIPBbJ8k8ijQiK6Fr30E/RiUYbtYAn7NZLNn0j4l55LJNPfiBF1javiaAw9+MiKGjIn2QUlJGOvE0QBYg985otIsqxgDj815hPJElyKwSlSo3MBcyr6fWn4q6n8anI0IOylwmOWDmXYiJqLRgSTc/Do8k6xMsDsleowllJjlFuTiQ== 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=lz4990U5peHB+guUcGVvhQ3px+EmAIMqj2P8VyHOg1U=; b=kCz0FYs+r1B4HB6z4hB2g6hY0lGt573Uyuf3r2ky7k/8JBIC9CR7RBLzdetY6BR2zMbjLgyb8FomEQ3FR5eqh6ZMKNsgepBS5sTd4eGTBG5dp26Q+kvsQEMIndRRvWZR+FuDVSUdqZGEkonD+CjxAC8k8v1dU0GBBssVriG6x+zp7lpEEkdEE8VKdR8DurTbqdvU37xpIn+jdRQEP534ccTRv2HyjcYp0RtH5zUksAZMtJMzaMItbGnCq2u4h5Hp/SvueO8GgsQbkCTS2WzKWaRD599rL6mYlUDzGxxrVXi61eHc6Hujp+Et8V208SWl+JvDPA2ZG0c+6nFjP0zOTw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV8PR12MB9620.namprd12.prod.outlook.com (2603:10b6:408:2a1::19) by BL1PR12MB5993.namprd12.prod.outlook.com (2603:10b6:208:399::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.18; Sun, 1 Mar 2026 18:58:01 +0000 Received: from LV8PR12MB9620.namprd12.prod.outlook.com ([fe80::299d:f5e0:3550:1528]) by LV8PR12MB9620.namprd12.prod.outlook.com ([fe80::299d:f5e0:3550:1528%5]) with mapi id 15.20.9654.014; Sun, 1 Mar 2026 18:58:01 +0000 From: Jason Gunthorpe To: David Airlie , =?utf-8?q?Christian_K=C3=B6nig?= , dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, Jani Nikula , Joonas Lahtinen , linaro-mm-sig@lists.linaro.org, linux-media@vger.kernel.org, Rodrigo Vivi , Simona Vetter , Sumit Semwal , Tvrtko Ursulin Cc: patches@lists.linux.dev Subject: [PATCH 1/5] dma-buf: Change st-dma-resv.c to use kunit Date: Sun, 1 Mar 2026 14:57:53 -0400 Message-ID: <1-v1-0a349a394eff+14110-dmabuf_kunit_jgg@nvidia.com> In-Reply-To: <0-v1-0a349a394eff+14110-dmabuf_kunit_jgg@nvidia.com> References: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-ClientProxiedBy: BLAPR03CA0153.namprd03.prod.outlook.com (2603:10b6:208:32f::19) To LV8PR12MB9620.namprd12.prod.outlook.com (2603:10b6:408:2a1::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV8PR12MB9620:EE_|BL1PR12MB5993:EE_ X-MS-Office365-Filtering-Correlation-Id: 1702019c-4534-4c61-272f-08de77c4755c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|7416014|366016|1800799024|921020; X-Microsoft-Antispam-Message-Info: hLdlHQtWwVl5sSjtDwYbtvK8g2bPXBS6BN+v9p7jcHnygkzggK3znVX0onwrj163KdUmnWxZ3ayhPDISEn90po/dkIsHp2FdQqwFC9+QLmkhDWgYgWgHL+gg5R9ftCr0MVzuUhc4+nbDZY9DSsSjPKP2O/RB5w+E287rhrIEf5WFU7yRAIR5ImaAjfH2YuXkyeStaeRWl13rOdnU6MzYizLn2YHzJEk3ybi44fsASZ2ss87esPyC3ej1Ggk/3oSlCmfAbS6R3oQ1sUjNg896r7L7LDXGCvPDdtO84nJuso6J3dBV9REGMLw22cpqnAw6t8s8atXQ3iPaZhEBERvNp05q8i+gIDpNrL8Eb2n5DouDWuDNI+8HEZ1BU2f9pb9wmB4s3RNOAIgPQE+nLgQ8AvjkgNv40JlvJX5ZmoJ5E9OiFL/dDSHgUM4jAfz1OEw28OJH7CW/j1WksVdPVANWso5YnvaaifDl8PWVosh6XHIaDvtlwEw7Pnx750VG7Sd6D6RsjUkkSUjA401hGHkPhBDZNXkbp3PH/F6u5rDqnDak+ofWS7uOMAhpCtvZYddu/l0dVOO8h4uZcLc7gLbg2ruRzVthSZzi7anAstelJV3C7RuIndMtF9w1awvptCX4jEazsmRlokDMc+dLBB5TVhE1+dv84bpI5CnuNYe4g/J9P24JJ/3OHktBFChZa6saz7EOCFsmHO82FYhr5bsjHpa2kWfOp7UlYxv2hsV5Ya3KFrBJeKoFeC283CghcLV8ZU+yvMEB8K8Fk5e06TG5nQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:LV8PR12MB9620.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(7416014)(366016)(1800799024)(921020); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?T1VzbXN3ckJiVGJaUVpRZmFaRHB4dXdibkJFWGFrTzhUMXgyUUdZaTQ4djZ1?= =?utf-8?B?ak5JYzgrd2JGQXhyQVU2QnJNd1pGQW1qalVSdzBkTXE1L2NkdHAybmFSTEND?= =?utf-8?B?cFBEQkNaRzlEL004QTJDMVlySW9USnV3MmtvMC8zZE0zaGhoTnVpN2ZzdThT?= =?utf-8?B?UTRKS0I2QXFPSTg3SUFmdlNVblpBU2JobU8xdCtHSVd1VE5aVmdNQURxM1l3?= =?utf-8?B?aXE4QTJpcHQ4RnNDWEJFUHJ4V201UGN1MnZQY0xndGlNZW80bk1HMkoydmI0?= =?utf-8?B?dmlxV3U5Tzkxc1Q5dTRMSGdaSWxBcGdUMll1QmJFK25abU13bnlGVktYUEN6?= =?utf-8?B?V1oxbWIraWl3Tndia1hWYUs0LzIwWVZyY1k1bTNVOVpMZVhMak1MVSt4SkMx?= =?utf-8?B?cU1FYkNZRDI3OTBXUVpjNTBsUXJ4RUYxQXlOeEJWQTUvRjJPb1E0NHI1SmxD?= =?utf-8?B?R2QxYWhUWjVNL1ZYa29DbTY4VXFaaGJ6NU9heS8vR2xMUVhYMFQxbVBLRUZk?= =?utf-8?B?cU5rckVtRHIzcG0xUGZGYUJ3MFN3WDJ6OElEN1dpTmx1eE05R2liMm13UnE3?= =?utf-8?B?eUNKK3hPUldldmM4VUtLU3p4eEpFMWlUTStJdll4b2tScFBJdzlpbldvUXhQ?= =?utf-8?B?ckVkb0xXUklhZmhOMk84cDBVZDFINkZ4QjVxc2V3NjNIL0dKS2crRFlpZHJt?= =?utf-8?B?TUc1WlE1QmZ3WHlEL1Y2b2REM3hQb25qdGZNL1RRWkRsTWR3QldZZWVGWVpL?= =?utf-8?B?UlExQml1SUgyRlhjQ25haGVMdVpVY0lGVTBhdXVhSWViTTVaMHNKc1JsZnhr?= =?utf-8?B?cTVoRUVhaTU4ejAwZ2h5RWR6YUZmYjdQRmNIMUxES1Q5OXN5MkdsS0ZkRTAr?= =?utf-8?B?NzBkbmpqTVV3bHZ3NWlHNm9KcTFpRnp6RGViaDFrdVBnbVhPamdKYVFTeU5r?= =?utf-8?B?QzA2b0JneWR5QWIyNXdUUWc5Q1p2MUdERUtsMzFVMVNYQjB0WVBMSnlkWHBO?= =?utf-8?B?TWNOYmFLRGNXN3JiZWFwZFN5NWYzVFR3Qnd0RzI1N1RjbEhvSHpjMDB3Unpk?= =?utf-8?B?TGxleFBEaVRLaE1sN2VIaC9qUDJQY2d0UXpleFY1OEpJV21JbVJlckdPY2hH?= =?utf-8?B?OG9QTzhHbGIvazVNcHI5WkxGUHA4aW90cytjV0ZVTUQ3SXZ4Mlo2dDdSenpl?= =?utf-8?B?emsxS25oUitXWDBDRm42NnJrTHFKZXc2Yi9WM0Z0OTZGN0V2VjMvQk1nQk03?= =?utf-8?B?Njd2b0o0YmMrYlR2NVA5Y3ZqVWtGQldpZ0t6dENTYXZOYlhDZUdsWEJOMlFS?= =?utf-8?B?bkxKQzZBSk81ZDI5WHNyK1UyWGwra0NROVROYWcrVzhYOHVRcWNDd1JjWFpW?= =?utf-8?B?VC9vWlFYKzQyNWZIZVdiTXZqT2ZVNzU2K0hiZGlzcmFoQWV6dXYxZ3Z5Y29T?= =?utf-8?B?cjB4VitFNCt6OHM3VGl1dGFESlhnemlSZmlFd2c3WXFNRkNHaFJ6SEhzNG5x?= =?utf-8?B?RjdVZ0ZWVUQ4ZlhFbkwvWnFoZVQvOTBIbWxLZU8reENSUnZMSmNVdU16LzJU?= =?utf-8?B?U1hWVFhmS2ZDZzRiT0NKWElHK3MvTGx2dkZaN2VSM01LVnMxdklSUmJsMkZ4?= =?utf-8?B?OUZPdTNLcWFDMlhRcElaMFpWbEtZc2cydDRVME1XTDZpeXdzWG1EUkFZWjlG?= =?utf-8?B?S0J6dDFmaGhUZzJXRWExYTc0cmtHYktVSVJvVG5URXQ1aE9hcDBENEpQQXhN?= =?utf-8?B?SUFOZHdaZnBwdDREVHNoaDVISzhEb1FTVzIxdFNSeDBUVmpzTERCekFTczQw?= =?utf-8?B?OGluMmowTmpVMk9ISHdqbk8wRm93SkZ0QS9rRCtsaTg1UDlBSDZJa0dhUDZ0?= =?utf-8?B?ODZXcjRNcFp5eStZbGhkUVQvOXRUTXVwaTNJTGw2K1RVR0JET0llYzNHbURE?= =?utf-8?B?Q3hyUENLb0dvV1ZZcktpRGZKOGwyOE1nUjlvaVQ2RTBOSUlGVGgyQnhYRmYr?= =?utf-8?B?OHg3Tm01YW5xSUQxMCticDRkZDJrb0FBMnIvb280b1ZzNWs5Y0xxc3kxT2xt?= =?utf-8?B?V3MycmY0VisrSTN6YW1zNUg1aStoOXIxZVRDc2N1RDg4Z2lNclQ1TkVpdmhJ?= =?utf-8?B?R3h3K1pYSUVDZDdQMVJuUzd1bFNPcWg5d3pyRXJha2JXOVhhUzB3a1FwSXNN?= =?utf-8?B?cklnNUdxU3d6T2ZMK1ZtcG41ZkJUV2lYUGl0MmYrTVJBRmE0U3Z5b0g5MEgz?= =?utf-8?B?QXcyL0tPRUV5VWtJL3BJOGd4WXBsSVpZZnpjL0ZZS0t1ZHkrUjBySHQvNEZi?= =?utf-8?B?blFRME9UdzR5UFM0OEJabElBNkMvTVF3SVN0TnhlQnBxYzBLV0N3Zz09?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1702019c-4534-4c61-272f-08de77c4755c X-MS-Exchange-CrossTenant-AuthSource: LV8PR12MB9620.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Mar 2026 18:58:00.4646 (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: 1sId4k0YuNzbi5DQe3ykVPcsIGQBgGbfMjoi9hIocoAubRk2VOWNZha21IMaU8Hp X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5993 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" TW9kZXJuaXplIHRoZSBvcGVuIGNvZGVkIHRlc3QgZnJhbWV3b3JrIGJ5IHVzaW5nIGt1bml0LgoK VGhlIGt1bml0IHRvb2wgY2FuIGJlIHVzZWQgdG8gYnVpbGQgYSBrZXJuZWwgYW5kIHJ1biBpdCBp biBhIFZNIHdpdGg6CgokIHRvb2xzL3Rlc3Rpbmcva3VuaXQva3VuaXQucHkgcnVuIC0tYnVpbGRf ZGlyIGJ1aWxkX2t1bml0X3g4Nl82NCAtLWFyY2ggeDg2XzY0IC0ta3VuaXRjb25maWcgLi9kcml2 ZXJzL2RtYS1idWYvLmt1bml0Y29uZmlnCgpBbG9uZyB3aXRoIHRoZSBvdGhlciB3YXlzIHRvIHJ1 biBrdW5pdHMuCgpUbyBtYWtlIHRoZSBrdW5pdCB0b29sIHdvcmsgbGlrZSB0aGlzIHRoZSBETUFC VUZfS1VOSVRfVEVTVCBrY29uZmlnIG11c3QKc2VsZWN0IERNQV9TSEFSRURfQlVGRkVSIHRvIGdl dCBpdCB0dXJuZWQgb24gd2l0aG91dCBidWlsZGluZyBhIGRyaXZlcgp1c2luZyBpdC4KClNpZ25l ZC1vZmYtYnk6IEphc29uIEd1bnRob3JwZSA8amdnQG52aWRpYS5jb20+Ci0tLQogZHJpdmVycy9k bWEtYnVmLy5rdW5pdGNvbmZpZyAgfCAgIDIgKwogZHJpdmVycy9kbWEtYnVmL0tjb25maWcgICAg ICAgfCAgIDggKysKIGRyaXZlcnMvZG1hLWJ1Zi9NYWtlZmlsZSAgICAgIHwgICA4ICstCiBkcml2 ZXJzL2RtYS1idWYvc2VsZnRlc3RzLmggICB8ICAgMSAtCiBkcml2ZXJzL2RtYS1idWYvc3QtZG1h LXJlc3YuYyB8IDE0NSArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCiA1IGZpbGVz IGNoYW5nZWQsIDg4IGluc2VydGlvbnMoKyksIDc2IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvZG1hLWJ1Zi8ua3VuaXRjb25maWcKCmRpZmYgLS1naXQgYS9kcml2ZXJz L2RtYS1idWYvLmt1bml0Y29uZmlnIGIvZHJpdmVycy9kbWEtYnVmLy5rdW5pdGNvbmZpZwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMC4uMWNlNWZiN2U2Y2Y5ZmYKLS0t IC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2RtYS1idWYvLmt1bml0Y29uZmlnCkBAIC0wLDAgKzEs MiBAQAorQ09ORklHX0tVTklUPXkKK0NPTkZJR19ETUFCVUZfS1VOSVRfVEVTVD15CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2RtYS1idWYvS2NvbmZpZyBiL2RyaXZlcnMvZG1hLWJ1Zi9LY29uZmlnCmlu ZGV4IDhkNGYyZjg5ZjI0ZTNjLi43ZDEzYzhmNDQ4NGRkMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9k bWEtYnVmL0tjb25maWcKKysrIGIvZHJpdmVycy9kbWEtYnVmL0tjb25maWcKQEAgLTU0LDYgKzU0 LDE0IEBAIGNvbmZpZyBETUFCVUZfU0VMRlRFU1RTCiAJZGVmYXVsdCBuCiAJZGVwZW5kcyBvbiBE TUFfU0hBUkVEX0JVRkZFUgogCitjb25maWcgRE1BQlVGX0tVTklUX1RFU1QKKwl0cmlzdGF0ZSAi S1VuaXQgdGVzdHMgZm9yIERNQS1CVUYiIGlmICFLVU5JVF9BTExfVEVTVFMKKwlkZXBlbmRzIG9u IEtVTklUCisJc2VsZWN0IERNQV9TSEFSRURfQlVGRkVSCisJZGVmYXVsdCBLVU5JVF9BTExfVEVT VFMKKwloZWxwCisJICAgRW5hYmxlIGt1bml0IHRlc3RzIGZvciBETUEtQlVGCisKIG1lbnVjb25m aWcgRE1BQlVGX0hFQVBTCiAJYm9vbCAiRE1BLUJVRiBVc2VybGFuZCBNZW1vcnkgSGVhcHMiCiAJ c2VsZWN0IERNQV9TSEFSRURfQlVGRkVSCmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvTWFr ZWZpbGUgYi9kcml2ZXJzL2RtYS1idWYvTWFrZWZpbGUKaW5kZXggN2E4NTU2NWQ5MDZiYTEuLjJl N2ExNDUzZTJmZTA0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2RtYS1idWYvTWFrZWZpbGUKKysrIGIv ZHJpdmVycy9kbWEtYnVmL01ha2VmaWxlCkBAIC0xMSw3ICsxMSwxMSBAQCBkbWFidWZfc2VsZnRl c3RzLXkgOj0gXAogCXNlbGZ0ZXN0Lm8gXAogCXN0LWRtYS1mZW5jZS5vIFwKIAlzdC1kbWEtZmVu Y2UtY2hhaW4ubyBcCi0Jc3QtZG1hLWZlbmNlLXVud3JhcC5vIFwKLQlzdC1kbWEtcmVzdi5vCisJ c3QtZG1hLWZlbmNlLXVud3JhcC5vCiAKIG9iai0kKENPTkZJR19ETUFCVUZfU0VMRlRFU1RTKQkr PSBkbWFidWZfc2VsZnRlc3RzLm8KKworZG1hYnVmX2t1bml0LXkgOj0gXAorCXN0LWRtYS1yZXN2 Lm8KKworb2JqLSQoQ09ORklHX0RNQUJVRl9LVU5JVF9URVNUKSArPSBkbWFidWZfa3VuaXQubwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEtYnVmL3NlbGZ0ZXN0cy5oIGIvZHJpdmVycy9kbWEtYnVm L3NlbGZ0ZXN0cy5oCmluZGV4IDg1MTk2NTg2N2Q5YzdmLi4yZmRhY2E2YjNlOTJlMiAxMDA2NDQK LS0tIGEvZHJpdmVycy9kbWEtYnVmL3NlbGZ0ZXN0cy5oCisrKyBiL2RyaXZlcnMvZG1hLWJ1Zi9z ZWxmdGVzdHMuaApAQCAtMTMsNCArMTMsMyBAQCBzZWxmdGVzdChzYW5pdHljaGVjaywgX19zYW5p dHljaGVja19fKSAvKiBrZWVwIGZpcnN0IChpZ3Qgc2VsZmNoZWNrKSAqLwogc2VsZnRlc3QoZG1h X2ZlbmNlLCBkbWFfZmVuY2UpCiBzZWxmdGVzdChkbWFfZmVuY2VfY2hhaW4sIGRtYV9mZW5jZV9j aGFpbikKIHNlbGZ0ZXN0KGRtYV9mZW5jZV91bndyYXAsIGRtYV9mZW5jZV91bndyYXApCi1zZWxm dGVzdChkbWFfcmVzdiwgZG1hX3Jlc3YpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS1idWYvc3Qt ZG1hLXJlc3YuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9zdC1kbWEtcmVzdi5jCmluZGV4IGFkNGRmYjQ5 ZGNkOWZhLi45NWE0YmVjZGI4OTI2ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9kbWEtYnVmL3N0LWRt YS1yZXN2LmMKKysrIGIvZHJpdmVycy9kbWEtYnVmL3N0LWRtYS1yZXN2LmMKQEAgLTUsMTMgKzUs MTcgQEAKICogQ29weXJpZ2h0IMKpIDIwMjEgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgog Ki8KIAorI2luY2x1ZGUgPGt1bml0L3Rlc3QuaD4KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+CiAj aW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtcmVzdi5oPgog Ci0jaW5jbHVkZSAic2VsZnRlc3QuaCIKK3N0YXRpYyBERUZJTkVfU1BJTkxPQ0soZmVuY2VfbG9j ayk7CiAKLXN0YXRpYyBzdHJ1Y3Qgc3BpbmxvY2sgZmVuY2VfbG9jazsKK3N0cnVjdCBkbWFfcmVz dl91c2FnZV9wYXJhbSB7CisJZW51bSBkbWFfcmVzdl91c2FnZSB1c2FnZTsKKwljb25zdCBjaGFy ICpkZXNjOworfTsKIAogc3RhdGljIGNvbnN0IGNoYXIgKmZlbmNlX25hbWUoc3RydWN0IGRtYV9m ZW5jZSAqZikKIHsKQEAgLTM1LDE1ICszOSwxNCBAQCBzdGF0aWMgc3RydWN0IGRtYV9mZW5jZSAq YWxsb2NfZmVuY2Uodm9pZCkKIAlyZXR1cm4gZjsKIH0KIAotc3RhdGljIGludCBzYW5pdHljaGVj ayh2b2lkICphcmcpCitzdGF0aWMgdm9pZCB0ZXN0X3Nhbml0eWNoZWNrKHN0cnVjdCBrdW5pdCAq dGVzdCkKIHsKIAlzdHJ1Y3QgZG1hX3Jlc3YgcmVzdjsKIAlzdHJ1Y3QgZG1hX2ZlbmNlICpmOwog CWludCByOwogCiAJZiA9IGFsbG9jX2ZlbmNlKCk7Ci0JaWYgKCFmKQotCQlyZXR1cm4gLUVOT01F TTsKKwlLVU5JVF9BU1NFUlRfTk9UX05VTEwodGVzdCwgZik7CiAKIAlkbWFfZmVuY2VfZW5hYmxl X3N3X3NpZ25hbGluZyhmKTsKIApAQCAtNTMsNDkgKzU2LDQ2IEBAIHN0YXRpYyBpbnQgc2FuaXR5 Y2hlY2sodm9pZCAqYXJnKQogCWRtYV9yZXN2X2luaXQoJnJlc3YpOwogCXIgPSBkbWFfcmVzdl9s b2NrKCZyZXN2LCBOVUxMKTsKIAlpZiAocikKLQkJcHJfZXJyKCJSZXN2IGxvY2tpbmcgZmFpbGVk XG4iKTsKKwkJS1VOSVRfRkFJTCh0ZXN0LCAiUmVzdiBsb2NraW5nIGZhaWxlZFxuIik7CiAJZWxz ZQogCQlkbWFfcmVzdl91bmxvY2soJnJlc3YpOwogCWRtYV9yZXN2X2ZpbmkoJnJlc3YpOwotCXJl dHVybiByOwogfQogCi1zdGF0aWMgaW50IHRlc3Rfc2lnbmFsaW5nKHZvaWQgKmFyZykKK3N0YXRp YyB2b2lkIHRlc3Rfc2lnbmFsaW5nKHN0cnVjdCBrdW5pdCAqdGVzdCkKIHsKLQllbnVtIGRtYV9y ZXN2X3VzYWdlIHVzYWdlID0gKHVuc2lnbmVkIGxvbmcpYXJnOworCWNvbnN0IHN0cnVjdCBkbWFf cmVzdl91c2FnZV9wYXJhbSAqcGFyYW0gPSB0ZXN0LT5wYXJhbV92YWx1ZTsKKwllbnVtIGRtYV9y ZXN2X3VzYWdlIHVzYWdlID0gcGFyYW0tPnVzYWdlOwogCXN0cnVjdCBkbWFfcmVzdiByZXN2Owog CXN0cnVjdCBkbWFfZmVuY2UgKmY7CiAJaW50IHI7CiAKIAlmID0gYWxsb2NfZmVuY2UoKTsKLQlp ZiAoIWYpCi0JCXJldHVybiAtRU5PTUVNOworCUtVTklUX0FTU0VSVF9OT1RfTlVMTCh0ZXN0LCBm KTsKIAogCWRtYV9mZW5jZV9lbmFibGVfc3dfc2lnbmFsaW5nKGYpOwogCiAJZG1hX3Jlc3ZfaW5p dCgmcmVzdik7CiAJciA9IGRtYV9yZXN2X2xvY2soJnJlc3YsIE5VTEwpOwogCWlmIChyKSB7Ci0J CXByX2VycigiUmVzdiBsb2NraW5nIGZhaWxlZFxuIik7CisJCUtVTklUX0ZBSUwodGVzdCwgIlJl c3YgbG9ja2luZyBmYWlsZWQiKTsKIAkJZ290byBlcnJfZnJlZTsKIAl9CiAKIAlyID0gZG1hX3Jl c3ZfcmVzZXJ2ZV9mZW5jZXMoJnJlc3YsIDEpOwogCWlmIChyKSB7Ci0JCXByX2VycigiUmVzdiBz aGFyZWQgc2xvdCBhbGxvY2F0aW9uIGZhaWxlZFxuIik7CisJCUtVTklUX0ZBSUwodGVzdCwgIlJl c3Ygc2hhcmVkIHNsb3QgYWxsb2NhdGlvbiBmYWlsZWQiKTsKIAkJZ290byBlcnJfdW5sb2NrOwog CX0KIAogCWRtYV9yZXN2X2FkZF9mZW5jZSgmcmVzdiwgZiwgdXNhZ2UpOwogCWlmIChkbWFfcmVz dl90ZXN0X3NpZ25hbGVkKCZyZXN2LCB1c2FnZSkpIHsKLQkJcHJfZXJyKCJSZXN2IHVuZXhwZWN0 ZWRseSBzaWduYWxlZFxuIik7Ci0JCXIgPSAtRUlOVkFMOworCQlLVU5JVF9GQUlMKHRlc3QsICJS ZXN2IHVuZXhwZWN0ZWRseSBzaWduYWxlZCIpOwogCQlnb3RvIGVycl91bmxvY2s7CiAJfQogCWRt YV9mZW5jZV9zaWduYWwoZik7CiAJaWYgKCFkbWFfcmVzdl90ZXN0X3NpZ25hbGVkKCZyZXN2LCB1 c2FnZSkpIHsKLQkJcHJfZXJyKCJSZXN2IG5vdCByZXBvcnRpbmcgc2lnbmFsZWRcbiIpOwotCQly ID0gLUVJTlZBTDsKKwkJS1VOSVRfRkFJTCh0ZXN0LCAiUmVzdiBub3QgcmVwb3J0aW5nIHNpZ25h bGVkIik7CiAJCWdvdG8gZXJyX3VubG9jazsKIAl9CiBlcnJfdW5sb2NrOgpAQCAtMTAzLDMzICsx MDMsMzIgQEAgc3RhdGljIGludCB0ZXN0X3NpZ25hbGluZyh2b2lkICphcmcpCiBlcnJfZnJlZToK IAlkbWFfcmVzdl9maW5pKCZyZXN2KTsKIAlkbWFfZmVuY2VfcHV0KGYpOwotCXJldHVybiByOwog fQogCi1zdGF0aWMgaW50IHRlc3RfZm9yX2VhY2godm9pZCAqYXJnKQorc3RhdGljIHZvaWQgdGVz dF9mb3JfZWFjaChzdHJ1Y3Qga3VuaXQgKnRlc3QpCiB7Ci0JZW51bSBkbWFfcmVzdl91c2FnZSB1 c2FnZSA9ICh1bnNpZ25lZCBsb25nKWFyZzsKKwljb25zdCBzdHJ1Y3QgZG1hX3Jlc3ZfdXNhZ2Vf cGFyYW0gKnBhcmFtID0gdGVzdC0+cGFyYW1fdmFsdWU7CisJZW51bSBkbWFfcmVzdl91c2FnZSB1 c2FnZSA9IHBhcmFtLT51c2FnZTsKIAlzdHJ1Y3QgZG1hX3Jlc3ZfaXRlciBjdXJzb3I7CiAJc3Ry dWN0IGRtYV9mZW5jZSAqZiwgKmZlbmNlOwogCXN0cnVjdCBkbWFfcmVzdiByZXN2OwogCWludCBy OwogCiAJZiA9IGFsbG9jX2ZlbmNlKCk7Ci0JaWYgKCFmKQotCQlyZXR1cm4gLUVOT01FTTsKKwlL VU5JVF9BU1NFUlRfTk9UX05VTEwodGVzdCwgZik7CiAKIAlkbWFfZmVuY2VfZW5hYmxlX3N3X3Np Z25hbGluZyhmKTsKIAogCWRtYV9yZXN2X2luaXQoJnJlc3YpOwogCXIgPSBkbWFfcmVzdl9sb2Nr KCZyZXN2LCBOVUxMKTsKIAlpZiAocikgewotCQlwcl9lcnIoIlJlc3YgbG9ja2luZyBmYWlsZWRc biIpOworCQlLVU5JVF9GQUlMKHRlc3QsICJSZXN2IGxvY2tpbmcgZmFpbGVkIik7CiAJCWdvdG8g ZXJyX2ZyZWU7CiAJfQogCiAJciA9IGRtYV9yZXN2X3Jlc2VydmVfZmVuY2VzKCZyZXN2LCAxKTsK IAlpZiAocikgewotCQlwcl9lcnIoIlJlc3Ygc2hhcmVkIHNsb3QgYWxsb2NhdGlvbiBmYWlsZWRc biIpOworCQlLVU5JVF9GQUlMKHRlc3QsICJSZXN2IHNoYXJlZCBzbG90IGFsbG9jYXRpb24gZmFp bGVkIik7CiAJCWdvdG8gZXJyX3VubG9jazsKIAl9CiAKQEAgLTEzOCwyNCArMTM3LDIzIEBAIHN0 YXRpYyBpbnQgdGVzdF9mb3JfZWFjaCh2b2lkICphcmcpCiAJciA9IC1FTk9FTlQ7CiAJZG1hX3Jl c3ZfZm9yX2VhY2hfZmVuY2UoJmN1cnNvciwgJnJlc3YsIHVzYWdlLCBmZW5jZSkgewogCQlpZiAo IXIpIHsKLQkJCXByX2VycigiTW9yZSB0aGFuIG9uZSBmZW5jZSBmb3VuZFxuIik7Ci0JCQlyID0g LUVJTlZBTDsKKwkJCUtVTklUX0ZBSUwodGVzdCwgIk1vcmUgdGhhbiBvbmUgZmVuY2UgZm91bmQi KTsKIAkJCWdvdG8gZXJyX3VubG9jazsKIAkJfQogCQlpZiAoZiAhPSBmZW5jZSkgewotCQkJcHJf ZXJyKCJVbmV4cGVjdGVkIGZlbmNlXG4iKTsKKwkJCUtVTklUX0ZBSUwodGVzdCwgIlVuZXhwZWN0 ZWQgZmVuY2UiKTsKIAkJCXIgPSAtRUlOVkFMOwogCQkJZ290byBlcnJfdW5sb2NrOwogCQl9CiAJ CWlmIChkbWFfcmVzdl9pdGVyX3VzYWdlKCZjdXJzb3IpICE9IHVzYWdlKSB7Ci0JCQlwcl9lcnIo IlVuZXhwZWN0ZWQgZmVuY2UgdXNhZ2VcbiIpOworCQkJS1VOSVRfRkFJTCh0ZXN0LCAiVW5leHBl Y3RlZCBmZW5jZSB1c2FnZSIpOwogCQkJciA9IC1FSU5WQUw7CiAJCQlnb3RvIGVycl91bmxvY2s7 CiAJCX0KIAkJciA9IDA7CiAJfQogCWlmIChyKSB7Ci0JCXByX2VycigiTm8gZmVuY2UgZm91bmRc biIpOworCQlLVU5JVF9GQUlMKHRlc3QsICJObyBmZW5jZSBmb3VuZCIpOwogCQlnb3RvIGVycl91 bmxvY2s7CiAJfQogCWRtYV9mZW5jZV9zaWduYWwoZik7CkBAIC0xNjQsMzMgKzE2MiwzMiBAQCBz dGF0aWMgaW50IHRlc3RfZm9yX2VhY2godm9pZCAqYXJnKQogZXJyX2ZyZWU6CiAJZG1hX3Jlc3Zf ZmluaSgmcmVzdik7CiAJZG1hX2ZlbmNlX3B1dChmKTsKLQlyZXR1cm4gcjsKIH0KIAotc3RhdGlj IGludCB0ZXN0X2Zvcl9lYWNoX3VubG9ja2VkKHZvaWQgKmFyZykKK3N0YXRpYyB2b2lkIHRlc3Rf Zm9yX2VhY2hfdW5sb2NrZWQoc3RydWN0IGt1bml0ICp0ZXN0KQogewotCWVudW0gZG1hX3Jlc3Zf dXNhZ2UgdXNhZ2UgPSAodW5zaWduZWQgbG9uZylhcmc7CisJY29uc3Qgc3RydWN0IGRtYV9yZXN2 X3VzYWdlX3BhcmFtICpwYXJhbSA9IHRlc3QtPnBhcmFtX3ZhbHVlOworCWVudW0gZG1hX3Jlc3Zf dXNhZ2UgdXNhZ2UgPSBwYXJhbS0+dXNhZ2U7CiAJc3RydWN0IGRtYV9yZXN2X2l0ZXIgY3Vyc29y OwogCXN0cnVjdCBkbWFfZmVuY2UgKmYsICpmZW5jZTsKIAlzdHJ1Y3QgZG1hX3Jlc3YgcmVzdjsK IAlpbnQgcjsKIAogCWYgPSBhbGxvY19mZW5jZSgpOwotCWlmICghZikKLQkJcmV0dXJuIC1FTk9N RU07CisJS1VOSVRfQVNTRVJUX05PVF9OVUxMKHRlc3QsIGYpOwogCiAJZG1hX2ZlbmNlX2VuYWJs ZV9zd19zaWduYWxpbmcoZik7CiAKIAlkbWFfcmVzdl9pbml0KCZyZXN2KTsKIAlyID0gZG1hX3Jl c3ZfbG9jaygmcmVzdiwgTlVMTCk7CiAJaWYgKHIpIHsKLQkJcHJfZXJyKCJSZXN2IGxvY2tpbmcg ZmFpbGVkXG4iKTsKKwkJS1VOSVRfRkFJTCh0ZXN0LCAiUmVzdiBsb2NraW5nIGZhaWxlZCIpOwog CQlnb3RvIGVycl9mcmVlOwogCX0KIAogCXIgPSBkbWFfcmVzdl9yZXNlcnZlX2ZlbmNlcygmcmVz diwgMSk7CiAJaWYgKHIpIHsKLQkJcHJfZXJyKCJSZXN2IHNoYXJlZCBzbG90IGFsbG9jYXRpb24g ZmFpbGVkXG4iKTsKKwkJS1VOSVRfRkFJTCh0ZXN0LCAiUmVzdiBzaGFyZWQgc2xvdCBhbGxvY2F0 aW9uIGZhaWxlZCIpOwogCQlkbWFfcmVzdl91bmxvY2soJnJlc3YpOwogCQlnb3RvIGVycl9mcmVl OwogCX0KQEAgLTIwMiwyMSArMTk5LDIwIEBAIHN0YXRpYyBpbnQgdGVzdF9mb3JfZWFjaF91bmxv Y2tlZCh2b2lkICphcmcpCiAJZG1hX3Jlc3ZfaXRlcl9iZWdpbigmY3Vyc29yLCAmcmVzdiwgdXNh Z2UpOwogCWRtYV9yZXN2X2Zvcl9lYWNoX2ZlbmNlX3VubG9ja2VkKCZjdXJzb3IsIGZlbmNlKSB7 CiAJCWlmICghcikgewotCQkJcHJfZXJyKCJNb3JlIHRoYW4gb25lIGZlbmNlIGZvdW5kXG4iKTsK LQkJCXIgPSAtRUlOVkFMOworCQkJS1VOSVRfRkFJTCh0ZXN0LCAiTW9yZSB0aGFuIG9uZSBmZW5j ZSBmb3VuZCIpOwogCQkJZ290byBlcnJfaXRlcl9lbmQ7CiAJCX0KIAkJaWYgKCFkbWFfcmVzdl9p dGVyX2lzX3Jlc3RhcnRlZCgmY3Vyc29yKSkgewotCQkJcHJfZXJyKCJObyByZXN0YXJ0IGZsYWdc biIpOworCQkJS1VOSVRfRkFJTCh0ZXN0LCAiTm8gcmVzdGFydCBmbGFnIik7CiAJCQlnb3RvIGVy cl9pdGVyX2VuZDsKIAkJfQogCQlpZiAoZiAhPSBmZW5jZSkgewotCQkJcHJfZXJyKCJVbmV4cGVj dGVkIGZlbmNlXG4iKTsKKwkJCUtVTklUX0ZBSUwodGVzdCwgIlVuZXhwZWN0ZWQgZmVuY2UiKTsK IAkJCXIgPSAtRUlOVkFMOwogCQkJZ290byBlcnJfaXRlcl9lbmQ7CiAJCX0KIAkJaWYgKGRtYV9y ZXN2X2l0ZXJfdXNhZ2UoJmN1cnNvcikgIT0gdXNhZ2UpIHsKLQkJCXByX2VycigiVW5leHBlY3Rl ZCBmZW5jZSB1c2FnZVxuIik7CisJCQlLVU5JVF9GQUlMKHRlc3QsICJVbmV4cGVjdGVkIGZlbmNl IHVzYWdlIik7CiAJCQlyID0gLUVJTlZBTDsKIAkJCWdvdG8gZXJyX2l0ZXJfZW5kOwogCQl9CkBA IC0yMzAsNDAgKzIyNiwzOCBAQCBzdGF0aWMgaW50IHRlc3RfZm9yX2VhY2hfdW5sb2NrZWQodm9p ZCAqYXJnKQogCQkJciA9IDA7CiAJCX0KIAl9Ci0JaWYgKHIpCi0JCXByX2VycigiTm8gZmVuY2Ug Zm91bmRcbiIpOworCUtVTklUX0VYUEVDVF9FUSh0ZXN0LCByLCAwKTsKIGVycl9pdGVyX2VuZDoK IAlkbWFfcmVzdl9pdGVyX2VuZCgmY3Vyc29yKTsKIAlkbWFfZmVuY2Vfc2lnbmFsKGYpOwogZXJy X2ZyZWU6CiAJZG1hX3Jlc3ZfZmluaSgmcmVzdik7CiAJZG1hX2ZlbmNlX3B1dChmKTsKLQlyZXR1 cm4gcjsKIH0KIAotc3RhdGljIGludCB0ZXN0X2dldF9mZW5jZXModm9pZCAqYXJnKQorc3RhdGlj IHZvaWQgdGVzdF9nZXRfZmVuY2VzKHN0cnVjdCBrdW5pdCAqdGVzdCkKIHsKLQllbnVtIGRtYV9y ZXN2X3VzYWdlIHVzYWdlID0gKHVuc2lnbmVkIGxvbmcpYXJnOworCWNvbnN0IHN0cnVjdCBkbWFf cmVzdl91c2FnZV9wYXJhbSAqcGFyYW0gPSB0ZXN0LT5wYXJhbV92YWx1ZTsKKwllbnVtIGRtYV9y ZXN2X3VzYWdlIHVzYWdlID0gcGFyYW0tPnVzYWdlOwogCXN0cnVjdCBkbWFfZmVuY2UgKmYsICoq ZmVuY2VzID0gTlVMTDsKIAlzdHJ1Y3QgZG1hX3Jlc3YgcmVzdjsKIAlpbnQgciwgaTsKIAogCWYg PSBhbGxvY19mZW5jZSgpOwotCWlmICghZikKLQkJcmV0dXJuIC1FTk9NRU07CisJS1VOSVRfQVNT RVJUX05PVF9OVUxMKHRlc3QsIGYpOwogCiAJZG1hX2ZlbmNlX2VuYWJsZV9zd19zaWduYWxpbmco Zik7CiAKIAlkbWFfcmVzdl9pbml0KCZyZXN2KTsKIAlyID0gZG1hX3Jlc3ZfbG9jaygmcmVzdiwg TlVMTCk7CiAJaWYgKHIpIHsKLQkJcHJfZXJyKCJSZXN2IGxvY2tpbmcgZmFpbGVkXG4iKTsKKwkJ S1VOSVRfRkFJTCh0ZXN0LCAiUmVzdiBsb2NraW5nIGZhaWxlZCIpOwogCQlnb3RvIGVycl9yZXN2 OwogCX0KIAogCXIgPSBkbWFfcmVzdl9yZXNlcnZlX2ZlbmNlcygmcmVzdiwgMSk7CiAJaWYgKHIp IHsKLQkJcHJfZXJyKCJSZXN2IHNoYXJlZCBzbG90IGFsbG9jYXRpb24gZmFpbGVkXG4iKTsKKwkJ S1VOSVRfRkFJTCh0ZXN0LCAiUmVzdiBzaGFyZWQgc2xvdCBhbGxvY2F0aW9uIGZhaWxlZCIpOwog CQlkbWFfcmVzdl91bmxvY2soJnJlc3YpOwogCQlnb3RvIGVycl9yZXN2OwogCX0KQEAgLTI3Mywx MiArMjY3LDEyIEBAIHN0YXRpYyBpbnQgdGVzdF9nZXRfZmVuY2VzKHZvaWQgKmFyZykKIAogCXIg PSBkbWFfcmVzdl9nZXRfZmVuY2VzKCZyZXN2LCB1c2FnZSwgJmksICZmZW5jZXMpOwogCWlmIChy KSB7Ci0JCXByX2VycigiZ2V0X2ZlbmNlcyBmYWlsZWRcbiIpOworCQlLVU5JVF9GQUlMKHRlc3Qs ICJnZXRfZmVuY2VzIGZhaWxlZCIpOwogCQlnb3RvIGVycl9mcmVlOwogCX0KIAogCWlmIChpICE9 IDEgfHwgZmVuY2VzWzBdICE9IGYpIHsKLQkJcHJfZXJyKCJnZXRfZmVuY2VzIHJldHVybmVkIHVu ZXhwZWN0ZWQgZmVuY2VcbiIpOworCQlLVU5JVF9GQUlMKHRlc3QsICJnZXRfZmVuY2VzIHJldHVy bmVkIHVuZXhwZWN0ZWQgZmVuY2UiKTsKIAkJZ290byBlcnJfZnJlZTsKIAl9CiAKQEAgLTI5MCwy NyArMjg0LDMyIEBAIHN0YXRpYyBpbnQgdGVzdF9nZXRfZmVuY2VzKHZvaWQgKmFyZykKIGVycl9y ZXN2OgogCWRtYV9yZXN2X2ZpbmkoJnJlc3YpOwogCWRtYV9mZW5jZV9wdXQoZik7Ci0JcmV0dXJu IHI7CiB9CiAKLWludCBkbWFfcmVzdih2b2lkKQotewotCXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3Vi dGVzdCB0ZXN0c1tdID0gewotCQlTVUJURVNUKHNhbml0eWNoZWNrKSwKLQkJU1VCVEVTVCh0ZXN0 X3NpZ25hbGluZyksCi0JCVNVQlRFU1QodGVzdF9mb3JfZWFjaCksCi0JCVNVQlRFU1QodGVzdF9m b3JfZWFjaF91bmxvY2tlZCksCi0JCVNVQlRFU1QodGVzdF9nZXRfZmVuY2VzKSwKLQl9OwotCWVu dW0gZG1hX3Jlc3ZfdXNhZ2UgdXNhZ2U7Ci0JaW50IHI7CitzdGF0aWMgY29uc3Qgc3RydWN0IGRt YV9yZXN2X3VzYWdlX3BhcmFtIGRtYV9yZXN2X3VzYWdlX3BhcmFtc1tdID0geworCXsgRE1BX1JF U1ZfVVNBR0VfS0VSTkVMLCAia2VybmVsIiB9LAorCXsgRE1BX1JFU1ZfVVNBR0VfV1JJVEUsICJ3 cml0ZSIgfSwKKwl7IERNQV9SRVNWX1VTQUdFX1JFQUQsICJyZWFkIiB9LAorCXsgRE1BX1JFU1Zf VVNBR0VfQk9PS0tFRVAsICJib29ra2VlcCIgfSwKK307CiAKLQlzcGluX2xvY2tfaW5pdCgmZmVu Y2VfbG9jayk7Ci0JZm9yICh1c2FnZSA9IERNQV9SRVNWX1VTQUdFX0tFUk5FTDsgdXNhZ2UgPD0g RE1BX1JFU1ZfVVNBR0VfQk9PS0tFRVA7Ci0JICAgICArK3VzYWdlKSB7Ci0JCXIgPSBzdWJ0ZXN0 cyh0ZXN0cywgKHZvaWQgKikodW5zaWduZWQgbG9uZyl1c2FnZSk7Ci0JCWlmIChyKQotCQkJcmV0 dXJuIHI7Ci0JfQotCXJldHVybiAwOwotfQorS1VOSVRfQVJSQVlfUEFSQU1fREVTQyhkbWFfcmVz dl91c2FnZSwgZG1hX3Jlc3ZfdXNhZ2VfcGFyYW1zLCBkZXNjKTsKKworc3RhdGljIHN0cnVjdCBr dW5pdF9jYXNlIGRtYV9yZXN2X2Nhc2VzW10gPSB7CisJS1VOSVRfQ0FTRSh0ZXN0X3Nhbml0eWNo ZWNrKSwKKwlLVU5JVF9DQVNFX1BBUkFNKHRlc3Rfc2lnbmFsaW5nLCBkbWFfcmVzdl91c2FnZV9n ZW5fcGFyYW1zKSwKKwlLVU5JVF9DQVNFX1BBUkFNKHRlc3RfZm9yX2VhY2gsIGRtYV9yZXN2X3Vz YWdlX2dlbl9wYXJhbXMpLAorCUtVTklUX0NBU0VfUEFSQU0odGVzdF9mb3JfZWFjaF91bmxvY2tl ZCwgZG1hX3Jlc3ZfdXNhZ2VfZ2VuX3BhcmFtcyksCisJS1VOSVRfQ0FTRV9QQVJBTSh0ZXN0X2dl dF9mZW5jZXMsIGRtYV9yZXN2X3VzYWdlX2dlbl9wYXJhbXMpLAorCXt9Cit9OworCitzdGF0aWMg c3RydWN0IGt1bml0X3N1aXRlIGRtYV9yZXN2X3Rlc3Rfc3VpdGUgPSB7CisJLm5hbWUgPSAiZG1h LWJ1Zi1yZXN2IiwKKwkudGVzdF9jYXNlcyA9IGRtYV9yZXN2X2Nhc2VzLAorfTsKKwora3VuaXRf dGVzdF9zdWl0ZShkbWFfcmVzdl90ZXN0X3N1aXRlKTsKKworTU9EVUxFX0RFU0NSSVBUSU9OKCJL VW5pdCB0ZXN0cyBmb3IgRE1BLUJVRiIpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwotLSAKMi40 My4wCgo=