From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6D49B31F99B for ; Wed, 1 Apr 2026 02:57:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=192.198.163.17 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775012243; cv=fail; b=DCH+HxQWXleYK3q2u/Qx0OyveURe24U68My0FN2nHikUoqsXvJa6Sjvbl8mlENKKafttETc1ZXxt7HPVVC3p48PLMWK1TKBrXG8GkHXk0Nyxl+ZJ6enNtvpUeaJsEuymaSyFIPNARYMA2ov45eP/VeelkrNl/C26Z027RgTAJcc= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775012243; c=relaxed/simple; bh=lXYvGGxIoAyKfvvGUueyxowK7sgw5UO+MBZ46tSZQnE=; h=Content-Type:Message-ID:Date:Subject:To:CC:References:From: In-Reply-To:MIME-Version; b=O2v8z91L27hmErpu7tvtOIawdUIAhnVupROeiWcUBhzkDTbOyLM9nO7HsZohoYt3JzLk08839E3sMnUFKiniACGulHiLf6OnTzHqa41AyrIQ9yEHeNjpCmhj1gXj4Ioq/ZWiitU+yHoMunHnZDMTxd8oUj3RHlkolCVCwDffG0I= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=QXgvEsVj; arc=fail smtp.client-ip=192.198.163.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="QXgvEsVj" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1775012239; x=1806548239; h=message-id:date:subject:to:cc:references:from: in-reply-to:mime-version; bh=lXYvGGxIoAyKfvvGUueyxowK7sgw5UO+MBZ46tSZQnE=; b=QXgvEsVjYeeVgLWyDbnqDOTJJP0zXC/ySosKIm5R4zby/QrWJHQdz9zv P6OeU9tcKP+UzpqqPGtrAe0UrJOQEtNvy2JnAw3UdhouEiN2tOkV0xpwi f5iWOIqB6psED6h6Zrthrj55Usw+H2a72yi6gVENndfN5SeSyWBHGislh z8JinYvVS38x9kQJtTztGFWZoVnynUy50mQwcrUz5nc0pUGNLRr7eepI4 JZTNqdoRkjBBdz4CO12Yev7RdqMe1qS2Utj+gqdzDn7EjJMtSPmkvlT3i BNJrIbMSekJJLvAsXEo/m0GhT64TbZH0YIIpuiPcllM0RTCQ6ufpFxR6Z Q==; X-CSE-ConnectionGUID: Nd2pGhv4RIuTXk51LUQ9gA== X-CSE-MsgGUID: +BrVNWk2R5qKRIn3cySyBQ== X-IronPort-AV: E=McAfee;i="6800,10657,11745"; a="75932786" X-IronPort-AV: E=Sophos;i="6.23,153,1770624000"; d="diff'?scan'208";a="75932786" Received: from orviesa010.jf.intel.com ([10.64.159.150]) by fmvoesa111.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Mar 2026 19:57:19 -0700 X-CSE-ConnectionGUID: moQz1YSqQbGc7uHukaFMbA== X-CSE-MsgGUID: IWCL4SgZRqegcB3DIpO/CQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,153,1770624000"; d="diff'?scan'208";a="225716686" Received: from fmsmsx901.amr.corp.intel.com ([10.18.126.90]) by orviesa010.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Mar 2026 19:57:18 -0700 Received: from FMSMSX901.amr.corp.intel.com (10.18.126.90) by fmsmsx901.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Tue, 31 Mar 2026 19:57:17 -0700 Received: from fmsedg902.ED.cps.intel.com (10.1.192.144) by FMSMSX901.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37 via Frontend Transport; Tue, 31 Mar 2026 19:57:17 -0700 Received: from MW6PR02CU001.outbound.protection.outlook.com (52.101.48.64) by edgegateway.intel.com (192.55.55.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Tue, 31 Mar 2026 19:57:17 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jKppSkmPmfd/GypWLyi6SXegV3BFvmbV5IcSFs+/Ndd9Ma8Y3gn74zI6ynaiJkhs7c8rJ+ItRl65C82dLfnnGdAGSfDNelIJ73BkY6gpVO1iSEJtSo/aabdn1DOgqg3nikFu1vr1WHkufHAa+N538CgCm2rxp7/TDoScDmS7PtVHIo+Hrp7OqgjibfPv7ZBNRMMSrSrFh9PVVQxNHIyfmDdvyZzETsv4J7nLeCXkB+cMLFK0ElJQmYgZrBXmxy7Ee0sI0fOx6SF65xcvSJbHluXHjEcFfdYh41ZSQsulvJRjxe0rBDCWg05ojLdWoJRHiqX6+OxrrFLqGXPHVwhyOw== 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=Hs7htlI+C4hG6ktnW0rY0r4kUv1LZEevQBIGrB+2YCM=; b=D+mIv40AkwApYwZW3OffhfZ/l9jbmF82s9GnGTeg5EedTM7dtPSQYI9dRtFHWt13rEaHGVWTyU7v0oyW2uzFg4kZh7yqcjuQ70eUV8WsWRWZtkSc5wmvwUD5oftjdd/sUUpIq4SYoqbvMxDwBHb7jBlihKs2dKCmg/rOOdVtYUAmt5MQV5qjmFJcLblbr09foFdOP5hizLdrgLsA5oGigdwHBvzi8BKEU3FOwmU6n+qIrcH++76fce/l56U1eduk12KDgw+bugLUgYGGqjDltynKLzCTneIMQVvS2SCa5VC9t4qt2uABf1OZejm1f2RjPYxXD4qR+DJbKMP21l3BwQ== 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 Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; Received: from IA1PR11MB7917.namprd11.prod.outlook.com (2603:10b6:208:3fe::19) by SJ5PPFC35D45AFD.namprd11.prod.outlook.com (2603:10b6:a0f:fc02::853) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.7; Wed, 1 Apr 2026 02:57:15 +0000 Received: from IA1PR11MB7917.namprd11.prod.outlook.com ([fe80::7f71:9797:c718:c891]) by IA1PR11MB7917.namprd11.prod.outlook.com ([fe80::7f71:9797:c718:c891%6]) with mapi id 15.20.9769.006; Wed, 1 Apr 2026 02:57:14 +0000 Content-Type: multipart/mixed; boundary="------------Y2H3niMrjmqBh80X0ccHYlAW" Message-ID: <7e7c9797-2f8b-4dde-b2f0-549a8816d8da@intel.com> Date: Tue, 31 Mar 2026 19:57:12 -0700 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 04/11] stop_machine: Add NMI-based execution path To: CC: , , , , , , References: <20260331014251.86353-1-chang.seok.bae@intel.com> <20260331014251.86353-5-chang.seok.bae@intel.com> Content-Language: en-US From: "Chang S. Bae" In-Reply-To: <20260331014251.86353-5-chang.seok.bae@intel.com> X-ClientProxiedBy: BYAPR08CA0036.namprd08.prod.outlook.com (2603:10b6:a03:100::49) To IA1PR11MB7917.namprd11.prod.outlook.com (2603:10b6:208:3fe::19) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: IA1PR11MB7917:EE_|SJ5PPFC35D45AFD:EE_ X-MS-Office365-Filtering-Correlation-Id: ed9009c5-b60f-4d41-91c1-08de8f9a60b7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|6049299003|1800799024|366016|18002099003|4053099003|56012099003|22082099003; X-Microsoft-Antispam-Message-Info: 2iYCwhvUjsyTuLwvAkVf3Izw2YIxvXcBn6To1rwlX+Mc0WIVMZque/QSfUyg/Jw7dhD054OmaTVZ7SbjwCwMA2InembO/K1YcP4hqOnwXmatJaGVfpt3/G2E+h4piR5f/cepyMuDpaIu0xh2ojUmvkNyDZQbuDTfShjqzLTq7bL9+rep6SSppEfMoPii0FtQO/jCzM5+gsGDZPVWH2sre1OCGiWLyi3LC04kHJh2CvRhLq7lky1SBSIwkcVgRUzjTPBBCRzQQsJ9/EJVMzW6zDwRtCfEj3IACp1sEDxPKpkfJ/gR/0j+OxG97oJQugvBjkyOk7oLmIr0dC3v8+uDuXtja+mqgXg66msPKukTTwsI2PK2MQSnTVbX7ZVtdLXRYA0SUWFn8jL+1AWDA7esVuFappmH8gYUO0HJpEUxPSKomIIi6ad1C9K0SaGDJ/TQr8Wu8sQJE9iqLcvhB4YoT+c8ch88ZptbWjwNNWULIArmytQVKFtBOgnPV7y3LPrZmkSSdjsYDp327L0O1KiKxUBnV5uzXQ+Tf+v/r2mcb/M1SSygwht689rVocXD1IuPPi1DTIGEUOp+psJeWHZeNDUMx7P9rClI6P9nSv6uIGmDIDPJthJl+kIyN0KOACy1OwhizJu/PYrWcdEPut6SQFXaZhJZ5Fkpz/LFyzt/vrM= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA1PR11MB7917.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(6049299003)(1800799024)(366016)(18002099003)(4053099003)(56012099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZVhpeGxPYjZ0WGNCeHR5N3FKb0NERFlyeUwyYnYxTFpaVDkwWjlscVdCWDRr?= =?utf-8?B?SlRaUXlYWlBuY3hYUnRjOS8xOThwTnlUMmlPTmF2S0N5dlZJaDJCRUExVVpk?= =?utf-8?B?T040MkZFN25LSHRQZWh3RzhjalFMWFZqeVVXbU9QaGlPK0RHeXkxZENJc3FE?= =?utf-8?B?a2NZR1BvMUQ5NGZkeFh1Zi9VOWd4bm8rcWFMR09VYjd3VE1XdnFyMEVDS0FB?= =?utf-8?B?RjNMRGVBUmpvQTZkZTJNVEFLSWI1RU83UG53dFVkZG1zQWRvT2txUnlGeXIy?= =?utf-8?B?U2JqRjcvVlVmRkliZVkwMzV2YVRxR0p4eklKeU5Rd05mc2Ryd2kvclNSeG5K?= =?utf-8?B?V1AzV0hqWEdHcTg1dmgzK2FpY1dEaGM2SUpNbXoyK0pPUlNHTDAycUdIcE5I?= =?utf-8?B?ZUZQd2ZXZ2lLMkVDWVNaOU5nNnl2ZnlUOGVHOHpQZ3ZLRktWR0ZBanVLVWky?= =?utf-8?B?L2hJRUxralJMRTI4aHpPamlvS1NmcUZxaEp5Sm8vaXlzOTZ2cXhsVXM3Mm1D?= =?utf-8?B?WStKWU1rOG0xTUNXTit1V0daQVJockViZXBvSkNpR1V0UDhOd2UvTktPd1lL?= =?utf-8?B?VHM1bzl0RDdNRjBwWTRZQ2VBYlFodUJzU0F1RnhNRVVBak9GaVJFcUhPRHN1?= =?utf-8?B?SDZIMUs2U29Ba2VFZFJHVTFwL0haZUJBVHVqNktVRTNpNWtmOXVnRzdyTVdK?= =?utf-8?B?OXBvVzRaNWpqb01EbzlCSThhNCtZVFo5ZmxJS3hEM2JhclkwVzZZcXpraFFE?= =?utf-8?B?eFBWRVBrYy9nbE9pRXZVdmZxUEtpeFZWSGtiSnVPZFZaR3EwQTlFMTFwblgx?= =?utf-8?B?cjBnMFB1Sm1uWTB3RDdRU1k1TkJ4b3RzNHlPK0FGVVhWTFoxT3dZWDhnZkV4?= =?utf-8?B?VVlicjZhT0g3YTVFUHZUc2MzNExNeW1HZVE4OFluNGdmOEhRNzdYQ20xM0lp?= =?utf-8?B?b2JHUmh2MWcxTklkK0FIOUY1WllzV1VaT0V4Z2huaXA1dm0zcUUyRitMWlNu?= =?utf-8?B?RjhvR3FPaTNudW00WmVFai81MUJ4VEc4RmNNNEUwdDhjVTAxR1gwN1N1TkRU?= =?utf-8?B?Y0tia0E4TnduNG1iK0RhRGU1alhpUzBYYUZvUnZHeHRPQ000d2IrVWM2bi9X?= =?utf-8?B?L05UbUlmMSszRkJhV1FHQzB0V21mMGV1dzRlTkdjMDA0UVNtaFU3bmpIWjlm?= =?utf-8?B?TVNKTEhUZG41aFdMS0JKWmpUMHZDU2ViekJoTzBXcmZNc2pmSEJmamxOTWY1?= =?utf-8?B?K1NRdGI2YXN5NlBGaUU3eTlzZGlqbXdldDBrWit2c0JKUDl6d2Nmc3NSVjFz?= =?utf-8?B?UUdWbDZYNkcraTZrZFF5SnlxL3dCRGVmTHpVTnBwaUNuMlpqbzFrWnpxRUg5?= =?utf-8?B?MVZ6NUROWkJjb21ha3hTdStwc1k0Mkh4V3h2UU1vM1UvZXp5SGYwcTcwZ3h2?= =?utf-8?B?OHN1ZU1QS1hLMDRld2I5NmhLZDZIZzVxcXZFcDBqclFvNzBSSmRRU2dxaG5L?= =?utf-8?B?SVZBQjJNYnluY1laUXRxV3RPVVZWdTZPNjM3R0RYSCtlcXU4KytBbCs5aE9t?= =?utf-8?B?ekh0eXU4VnNNdkRseVFkNURjeXBWUUkzRWx4OVJDQmVNMUtUUWtXZDF6Znoy?= =?utf-8?B?dDg0cExCM0JPZDN1bnM1d3pvRnl3dHFLN2kzeFZUZmEveHRTRnBYQzhkTGI3?= =?utf-8?B?b1VhSjloelVkVWVEVDVTMlpzZ0w0eUNya1dWTWpGMWJrSW5SZTFiZVBWVU9x?= =?utf-8?B?Vmhhb3AwZytZRXRneE14azNwN2h5Z29uMVA1S1FLRXd4M3RjenZncUp4T1Fs?= =?utf-8?B?aDBBdk5kYjhlQlpXZFc2K1RWMUVIbEcxRFRwM2tFV3VmbzIyTlVCY0FzMlIv?= =?utf-8?B?UVdXcFhCbDkrVzlSNy9kK3RUdTNMK3hlakd0UW1KWWNkZWE3NFhyMGlteW12?= =?utf-8?B?cW5mZndUUTA0NzhmS2tjTDhhRkhNRzl1TEZINzE3N3JMSXVGRGMrT1NaSjIz?= =?utf-8?B?QWZiQ3BxbkFPcUdrTDE5NWJQRXF6WXF4QlV1Y3NTOGwrK0RoV1FuWVpwOE8z?= =?utf-8?B?cU1ObEtSenRVTjZFRXV4SzdwdHdqRHdxdXVCbUVLeG8yS0lXTUVMNnUySERu?= =?utf-8?B?TURhdkpHb3g1TVFXZ2svYVl5c0pJY3RFdE5Bc0dramJiUDFSNkRKVHpRMy8r?= =?utf-8?B?ZEUxY1d3djBYOVJQc2oyejI3b0poWGN5V3NJdXI2OVNJWlpHNE9oTnJSNlVz?= =?utf-8?B?MFRaOHlzeWcySVVIa043UDcxRDJrZXpoZ1pHa3pYYWVHMkVmWHJXbW50dGR3?= =?utf-8?B?VG96RTJFSnNKKzZvM2Zlb1Vwb3VDMkVZcnJJdW1Fcm81bzhESC9Bdz09?= X-Exchange-RoutingPolicyChecked: WrLibzVpmCnidpaTD5SOB9WIIyLT3l91GW6H58eOakiL3OwppwSJKS8wwzHaQ8G9ef0KFDgUqG+pHupF1hfb/oSIzwNXEPEwW/45xMMs4/cPiLV4FEYrmfy8wGPH9UmYx2Ev6mrxLROZa9oX3CItwB9kmxCHotzw6l1wT7p21u6Vz3vToBCi1ly21X1cfHOBWvhhYtCYJEW2FfWMGSETqEGLtCA3YIO8yOdqiHz+HME2bL114f3PtOvDW/mBfgLnLjMqlAy5WnB/+rrg/w1du1PxOwuZAebKpO96yjzY8xBWAJyMw5xnMZtZ5Uvbjnfd/MFEUwtCB4ZzgaakqajmrQ== X-MS-Exchange-CrossTenant-Network-Message-Id: ed9009c5-b60f-4d41-91c1-08de8f9a60b7 X-MS-Exchange-CrossTenant-AuthSource: IA1PR11MB7917.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2026 02:57:14.8548 (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: wrU842iHFOApM4aHIduZSBOUFt4jlSSHT0RR7GoF26H4pbGCfKzdIMl+Om8akJk8u8Z0aGKxTkqYJlHdhBmyqYwkuP9yfeQOk7YSggRBIGQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ5PPFC35D45AFD X-OriginatorOrg: intel.com --------------Y2H3niMrjmqBh80X0ccHYlAW Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit Like others, I also checked the review bot: https://sashiko.dev/#/patchset/20260331014251.86353-1-chang.seok.bae@intel.com I thought all of comments could be converged in this patch. My take is below. On 3/30/2026 6:42 PM, Chang S. Bae wrote: > > +struct nmi_stop { > + struct multi_stop_data *data; > + int ret; > + bool done; The intention was to make it clear at the waiting loop. But ->data == NULL check can substitute it and a single variable looks to make it more robust and simple. > +bool noinstr stop_machine_nmi_handler(void) > +{ > + struct multi_stop_data *msdata = raw_cpu_read(nmi_stop.data); > + unsigned int cpu = smp_processor_id(); > + int ret; > + > + if (!msdata || !cpumask_test_and_clear_cpu(cpu, msdata->nmi_cpus)) > + return false; smp_processor_id() and cpumask_test_and_clear_cpu() are wrappers that could include instrumentation, so not suitable here. Instead, raw_smp_processor_id() and arch_test_and_clear_bit() are inner functions. > + /* Ensure the handler went through before reading the result */ > + if (!wait_for_nmi_handler()) > + return -ETIMEDOUT; On error exit, the stop_data pointer should be cleaned up as well before it is freed later. Attached is the diff addressing them. --------------Y2H3niMrjmqBh80X0ccHYlAW Content-Type: text/plain; charset="UTF-8"; name="patch4.diff" Content-Disposition: attachment; filename="patch4.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2tlcm5lbC9zdG9wX21hY2hpbmUuYyBiL2tlcm5lbC9zdG9wX21hY2hpbmUu YwppbmRleCA0NWVhNjJmMWIyYjUuLjViZDExMDVkMWExMSAxMDA2NDQKLS0tIGEva2VybmVsL3N0 b3BfbWFjaGluZS5jCisrKyBiL2tlcm5lbC9zdG9wX21hY2hpbmUuYwpAQCAtNzMwLDcgKzczMCw2 IEBAIGludCBzdG9wX21hY2hpbmVfZnJvbV9pbmFjdGl2ZV9jcHUoY3B1X3N0b3BfZm5fdCBmbiwg dm9pZCAqZGF0YSwKIHN0cnVjdCBubWlfc3RvcCB7CiAJc3RydWN0IG11bHRpX3N0b3BfZGF0YQkq ZGF0YTsKIAlpbnQJCQlyZXQ7Ci0JYm9vbAkJCWRvbmU7CiB9OwogCiBzdGF0aWMgREVGSU5FX1BF Ul9DUFUoc3RydWN0IG5taV9zdG9wLCBubWlfc3RvcCk7CkBAIC03NDMsMTAgKzc0MiwxMCBAQCBz dGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IG5taV9zdG9wLCBubWlfc3RvcCk7CiBib29sIG5v aW5zdHIgc3RvcF9tYWNoaW5lX25taV9oYW5kbGVyKHZvaWQpCiB7CiAJc3RydWN0IG11bHRpX3N0 b3BfZGF0YSAqbXNkYXRhID0gcmF3X2NwdV9yZWFkKG5taV9zdG9wLmRhdGEpOwotCXVuc2lnbmVk IGludCBjcHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CisJdW5zaWduZWQgaW50IGNwdSA9IHJhd19z bXBfcHJvY2Vzc29yX2lkKCk7CiAJaW50IHJldDsKIAotCWlmICghbXNkYXRhIHx8ICFjcHVtYXNr X3Rlc3RfYW5kX2NsZWFyX2NwdShjcHUsIG1zZGF0YS0+bm1pX2NwdXMpKQorCWlmICghbXNkYXRh IHx8ICFhcmNoX3Rlc3RfYW5kX2NsZWFyX2JpdChjcHUsIGNwdW1hc2tfYml0cyhtc2RhdGEtPm5t aV9jcHVzKSkpCiAJCXJldHVybiBmYWxzZTsKIAogCS8qCkBAIC03NTksNyArNzU4LDYgQEAgYm9v bCBub2luc3RyIHN0b3BfbWFjaGluZV9ubWlfaGFuZGxlcih2b2lkKQogCWluc3RydW1lbnRhdGlv bl9lbmQoKTsKIAogCXJhd19jcHVfd3JpdGUobm1pX3N0b3AucmV0LCAgcmV0KTsKLQlyYXdfY3B1 X3dyaXRlKG5taV9zdG9wLmRvbmUsIHRydWUpOwogCXJhd19jcHVfd3JpdGUobm1pX3N0b3AuZGF0 YSwgTlVMTCk7CiAKIAlyZXR1cm4gdHJ1ZTsKQEAgLTc3MCwxMCArNzY4LDExIEBAIHN0YXRpYyBi b29sIHdhaXRfZm9yX25taV9oYW5kbGVyKHZvaWQpCiAJLyogQ29uc2VydmF0aXZlIHRpbWVvdXQg Ki8KIAl1bnNpZ25lZCBsb25nIHRpbWVvdXQgPSBVU0VDX1BFUl9TRUM7CiAKLQl3aGlsZSAoIXRo aXNfY3B1X3JlYWQobm1pX3N0b3AuZG9uZSkgJiYgdGltZW91dC0tKQorCS8qIFRoZSBoYW5kbGVy IGNsZWFycyB1cCBhdCB0aGUgZW5kICovCisJd2hpbGUgKHRoaXNfY3B1X3JlYWQobm1pX3N0b3Au ZGF0YSkgJiYgdGltZW91dC0tKQogCQl1ZGVsYXkoMSk7CiAKLQlyZXR1cm4gdGhpc19jcHVfcmVh ZChubWlfc3RvcC5kb25lKTsKKwlyZXR1cm4gIXRoaXNfY3B1X3JlYWQobm1pX3N0b3AuZGF0YSk7 CiB9CiAKIHN0YXRpYyBpbnQgbm1pX3N0b3BfcnVuKHN0cnVjdCBtdWx0aV9zdG9wX2RhdGEgKm1z ZGF0YSkKQEAgLTc4MywxMiArNzgyLDE2IEBAIHN0YXRpYyBpbnQgbm1pX3N0b3BfcnVuKHN0cnVj dCBtdWx0aV9zdG9wX2RhdGEgKm1zZGF0YSkKIAkgKiBzZWxmLU5NSSB0byBleGVjdXRlIHRoZSBz dG9wIGZ1bmN0aW9uIGZyb20gdGhlIE5NSSBoYW5kbGVyCiAJICovCiAJdGhpc19jcHVfd3JpdGUo bm1pX3N0b3AuZGF0YSwgbXNkYXRhKTsKLQl0aGlzX2NwdV93cml0ZShubWlfc3RvcC5kb25lLCBm YWxzZSk7CiAJYXJjaF9zZW5kX3NlbGZfbm1pKCk7CiAKLQkvKiBFbnN1cmUgdGhlIGhhbmRsZXIg d2VudCB0aHJvdWdoIGJlZm9yZSByZWFkaW5nIHRoZSByZXN1bHQgKi8KLQlpZiAoIXdhaXRfZm9y X25taV9oYW5kbGVyKCkpCisJLyoKKwkgKiBFbnN1cmUgdGhlIGhhbmRsZXIgd2VudCB0aHJvdWdo IGJlZm9yZSByZWFkaW5nIHRoZSByZXN1bHQuCisJICogT3RoZXJ3aXNlLCBtYWtlIG5vIHN0YWxl IHN0YXRlIGxlZnQgYmVoaW5kLgorCSAqLworCWlmICghd2FpdF9mb3Jfbm1pX2hhbmRsZXIoKSkg eworCQl0aGlzX2NwdV93cml0ZShubWlfc3RvcC5kYXRhLCBOVUxMKTsKIAkJcmV0dXJuIC1FVElN RURPVVQ7CisJfQogCiAJcmV0dXJuIHRoaXNfY3B1X3JlYWQobm1pX3N0b3AucmV0KTsKIH0KCg== --------------Y2H3niMrjmqBh80X0ccHYlAW--