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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 400AECAC59A for ; Thu, 18 Sep 2025 15:06:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version: Content-Transfer-Encoding:Content-Type:In-Reply-To:From:References:Cc:To: Subject:Date:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=xmjL/ihV8nH83nq+IwRnCZ0BbhKT8EB6qqrT440A+Qc=; b=Cw6zhqCH4zV0TnypdZ0T8wiOYB XahZcLUIWtQI1fbIg73fhcSM+UHXhV7YcB5ozj7mF1gzbtM6B6mOTZ3/Tf6dpM3K7h0yYR8qmu9yA SVhK+1dkSqNZbb1HSeJr0+5tumrQAtlH1WkvykP/0qXb1ktljKfrhUo4653hgnssqWLg5HavG+MOA 9R/XfrzGIImQQS08FL5t7WrFJDbgjidBY/4YJjHGpUuHNx56SBXmQzKR/WqB+SdL5SkS0us56CJv5 ShUdtSLhalK15+AnhM6TELaZlrosJl6vYo5y/HD1h11zuErHyHt6CqcbcEEZZ+3trk3braW+R3I25 wvS6d5Gw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1uzGD7-00000000GtJ-3G3y; Thu, 18 Sep 2025 15:06:13 +0000 Received: from mail-northcentralusazlp170100001.outbound.protection.outlook.com ([2a01:111:f403:c105::1] helo=CH1PR05CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1uzGD3-00000000Gqi-3AKR for linux-arm-kernel@lists.infradead.org; Thu, 18 Sep 2025 15:06:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CJLDYFIZZx2InxHBfSOxztXj+6oHdcHHNYIymsBB23KkeJfkZDlssB317TB3xvRDCB/YnRASHyDr7NkIwyrUzVlSgx1TO659FyaFw4vbvYVLP5kxamAwXrSUw0MET0O7/AnSo/jPq4udxVPN0Q3i978y+cQzejL3DTf4nfOzmsxttfTe/V0ZyUvqF5lwkLrc61ICLkm3EQy6Lc8Qedm0IX+oeahFfgt2CqM9J5eP6BDzEomViOOOrLoIr1qffw6IJevmA6gSrDrWphaSUD1o3od9SteS02IUtIkVUYzyP4z1BSiI8MF19MeCoRKqRPAyHXnMcN4hN51YE/MrXyI4XA== 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=xmjL/ihV8nH83nq+IwRnCZ0BbhKT8EB6qqrT440A+Qc=; b=qvSwoC1xxPLYstrhPnZwA8EfTPayFsKMoE4wZ0pKYmkQZNvjyuF6YqZluAbQ0ks81v/o2qQA7avA23RPv41J9SLVXK9sPRgTUdLh6DjtKMfXdaJHnc2tyoDzDBODCFhRmYSoqDeIteTwNU0o+dbL7VH6pwuLUVBKhUU00XNF6V2+Ym6FymKEc2HpVk5kW8XP00GSkRsoJr67HUqfb5awKdWhxKOlp/7iEPBNwwn3l6rkXnvpRGHVH/Ksiv+f+X5FEXLO11wlnGyTuF2mLeTWxHUr78lAJPAqZrG2Rm8DIJZ4mYAPAUgtt064XAXF8jECo21LjaabF/Z7VWvZLNXVsw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xmjL/ihV8nH83nq+IwRnCZ0BbhKT8EB6qqrT440A+Qc=; b=npHkftkZN/Mk2BWS8L2ZqL/b1bv66umlTFyy17nDsJ7UC0ZLNz0iSg0mkN35VTGuoQdo0m8zqWIj7SHLBMGAkS6hOQnktLFDQ1AfElhwElE0IDVkksWGsoBu2bljL8RNDEcLhS50IXCMkgHuhoCgw3AeCBzkP186WoqmP6QWKik= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=os.amperecomputing.com; Received: from CH0PR01MB6873.prod.exchangelabs.com (2603:10b6:610:112::22) by PH0PR01MB6326.prod.exchangelabs.com (2603:10b6:510:a::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.13; Thu, 18 Sep 2025 15:06:01 +0000 Received: from CH0PR01MB6873.prod.exchangelabs.com ([fe80::3850:9112:f3bf:6460]) by CH0PR01MB6873.prod.exchangelabs.com ([fe80::3850:9112:f3bf:6460%3]) with mapi id 15.20.9137.012; Thu, 18 Sep 2025 15:06:01 +0000 Message-ID: <22732cbe-20f8-4d1e-b086-e34d0f9bbb35@os.amperecomputing.com> Date: Thu, 18 Sep 2025 08:05:55 -0700 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v8 5/5] arm64: kprobes: call set_memory_rox() for kprobe page To: Catalin Marinas Cc: will@kernel.org, ryan.roberts@arm.com, akpm@linux-foundation.org, david@redhat.com, lorenzo.stoakes@oracle.com, ardb@kernel.org, dev.jain@arm.com, scott@os.amperecomputing.com, cl@gentwo.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org References: <20250917190323.3828347-1-yang@os.amperecomputing.com> <20250917190323.3828347-6-yang@os.amperecomputing.com> Content-Language: en-US From: Yang Shi In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SJ0PR05CA0100.namprd05.prod.outlook.com (2603:10b6:a03:334::15) To CH0PR01MB6873.prod.exchangelabs.com (2603:10b6:610:112::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH0PR01MB6873:EE_|PH0PR01MB6326:EE_ X-MS-Office365-Filtering-Correlation-Id: 804b2b98-8cb6-45c2-ea0d-08ddf6c4e120 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024|7416014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?amdBKzd0Vnl6Vlphd0FaTjB0eVNEdUNISXY1R1I0MDV3WFJpOFpPdHh1NXhH?= =?utf-8?B?ZUV1ei9uODMyMWpXN3BlcEJMQy9ocklRYnR0VW02am9SVUZ3YWNNMWlOTWpV?= =?utf-8?B?VXNZdUVPc3JNYjl3MWxLQ1NjSURIYlBmUWs4OEhsVUgvN1JXRS85RkRNWnZ0?= =?utf-8?B?aGhTN2s2cThROFdmdnRobzArcUplTTA5eG9wT1kyR2RsbktERWJtUUIrS0dY?= =?utf-8?B?SWVNQ1pPSTRiSVJQQnVtRGszS1ozcEZ3b1Bqb1hnVUo4Z1ZZZFAvVldKWnVG?= =?utf-8?B?cUVyQjQrbHRweXdsakRraFlxS0tHcmY4cDd0ejVJZ3B6YnludFdlcW83UjZn?= =?utf-8?B?U0g5OE1KZ2dYLzV3SE5tdjR4eS9FVmdnVlFTQ2J3SFBvYSt3L0ZCMFVkbGpW?= =?utf-8?B?VnZsL0hncnBnMVF4Q2xINURUbVBDVFJuR3N1UU80Q3RVRTMwMEZqTXRIUUZj?= =?utf-8?B?RmZsNDV6SUl4cjg3cDVCY2sxM0RmMkxERS9LbWN2VTZlekR6djNJOGxWZjlI?= =?utf-8?B?cW02TVo1V2lSVjZ1dm9jODFDeHZwczlnNnVQeTJ1Y2IzY3Rma1BXbGl1SlJW?= =?utf-8?B?cE1kcHgwQVZYN2FZQTJIbExCRlVxdG56YU1XYXhGRU1NaDF4TE43N1JCaThJ?= =?utf-8?B?ekxUR2ZZMk1KbzhPY1pLMXRDK3VWODBnV2dVakJYeTVPZGpxSlFkSFF3bTht?= =?utf-8?B?bTVRUjJzVHBJa21ta0VBOUtCbHlKTmlwdzJ6ZmtQZGI0emF6YXpZRTlmdnc3?= =?utf-8?B?WDV2SHJHV0gxK2xYcTdWV3lvamF3U1NDUGJtaFJpV0tEZzg2ZE95M0RpbzFU?= =?utf-8?B?U3dHZEczeU9JV2FLaGlXNHFBZGJFWm5DYmdGY0FjNDZVTlQya0JlekNvZEo4?= =?utf-8?B?LzB5TzlyaEY0dDZqbmNVMU4vZzhJekVZRmc0R2Vtck01cnR1M3EyZzNEMkhp?= =?utf-8?B?SlE2Wi9YQjFXdzkyQUtPTU5mUmttVVVKM2FWTktYZzI5WjhMYjVKMWxWL2xS?= =?utf-8?B?V1JoRDVZMzdRQTRaMnVwbVZlRi8waDRWRGUzNmZmckNwTHF1enIxaW5QMjJ3?= =?utf-8?B?SlFDbFdsU2NIazV4Sk5ZZU1GM1hQUTI0TWdNYVR6Y0lTbDRURFdObGt4K0U0?= =?utf-8?B?NVpCNXEzZ0VXSFRiS2RLa0tYMnRUbEJzaCsvb1E1bWFTMnorYUozeThrSmpC?= =?utf-8?B?T2syZ2xMQVR4MVNYZEhRN201WHRqTitjaDNEaCthdDNycXNrdkxJQlpMVC9K?= =?utf-8?B?cGR4cnJEZ0tFUnh5bS9kT1N3cU42U2lMd3ZHcDFQTHR3blRLaW4yYWRrZm9z?= =?utf-8?B?clZuN3ZXQmlCM3o1TmhDYkhMWndIZWRueVZ5SHlHRy9SL3QxZ1h6UUhNb216?= =?utf-8?B?K0YzaXVDdWtmYWxxMWdvUlIzcTB4WWJLYytEZEMwYUFwUzhtQ0kxV3pYVi9t?= =?utf-8?B?MVhmK25HSFphR1hhVHlLbG5sZVFJZ3AzSnZPaExxVnJxR2J6SE5DMWw1TzVM?= =?utf-8?B?cHFRaFI3Y0IzU1NjYU1KMG11MmxWVW95N1F4WE9rTDhIemJqN2U2ZHlyQy93?= =?utf-8?B?Q0ZuWm5xVWVuSHZWWk1RcmZHeE9JaEhuNFdqSkVnMVg5MDVjNzZiQktEY3pn?= =?utf-8?B?MXZ6azVSMS8rTGZuMW1Nd3ZRa1BGcFZkblRFRUpodDdBTmVlcXNUVTlkVjh3?= =?utf-8?B?OGtSK04vcUxNc3NadHEvQ0xzNXV5cXZTMzJsclVxaENRLzI2NlFvUS9pTUNt?= =?utf-8?B?b2dhWmVTNENWM1krZW0rV0dyVkZtVThZM0dPL05ZdEx6R1RJMXlScTAyYXBR?= =?utf-8?B?TWlycG5GZlV3UjdSMDRVVDd5d2FNa2luY0dOcmpHWUM5cmpMaWV0Y3dQb1Nt?= =?utf-8?B?OXdQWGdvbHdTRHpPTG95cWcybnBGUnR4dEZFUnlFMXFTbWlMZnMwWmNETU52?= =?utf-8?Q?3YCwVeeyKk0=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH0PR01MB6873.prod.exchangelabs.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024)(7416014);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?c1E1TE9sRUZwVDV0ZzErMGY2b1Uxd2g1U3dEdzFlK2dmQ2lHTGQ2TjVDQWdJ?= =?utf-8?B?QUdIa2VDYWttb2Jhd05XVkMxQzFSbUk3TXRnV0lBalRGd0RtekRhYmpSVHVj?= =?utf-8?B?YXB2UmVpYUtrY0RFWG1jZmlTeUhZMWpKbytRYTBkSUprQzhDMGJYU3BsT3Fn?= =?utf-8?B?MktuWmNjQUd1T0h0WVN3UzNwdCtuOTBkVzl1QmtZYTNJNWZtVWdQN3FYLzZ4?= =?utf-8?B?UTU2SG5xb0RRL1NpSVErWGtuamN1d3lDd1ZsRkJvSEpSSG5odUg4Z014S1dk?= =?utf-8?B?M3ZYaGx5UVhwd3l5eHh3RzQrN2RQMG15bzNwa01iZ0c4OU5hTjVVbndueWtF?= =?utf-8?B?TkkxdFpCTGxlamlOQjVWT0FWaVRreTRnYkxDWEh2TG8xQ1hqYy9udytyeU5P?= =?utf-8?B?TjNzd1E1QmJpSkozMEhreFNwcm5xeFgwMFR3Zi9sVnRKVks2UXM1NHNSbktr?= =?utf-8?B?SGRzdzBOY0NWMzBySkdtdzJMYldGLzZuaTErOWZTVHI3dlZNVkZWZ3dYTjRP?= =?utf-8?B?NHRCWWNFaU5zYmhlTlhZNXdSS1NRUkxXUVh0NGM3NkZ5S0tjR2s4R0tGSXZ4?= =?utf-8?B?aGRLbThiVjRpT09ob2xNaTU0T2FsL1ZqZnd3Y01PYTdnRTdSbjN4UmF1S05X?= =?utf-8?B?dHVDeXFTUmFvOU1ZeGxXYW5vbVVRaVdIVk02ZGs0SCs3YU56UFRmWjVHZHRk?= =?utf-8?B?cXMzc3VpeU5VR2hCQzl2VWQrR1dMVFlMRk1DSDgwdXJTUlhDS3NOdGhNVzhI?= =?utf-8?B?cmxVeUY0cXNHV3p6OUJFWDNpVStLdGJ5UnJ1ckdqQ3NldmQ4OFZrZzVRMEtG?= =?utf-8?B?WTBabnBiaHVFSDlGcEdZM3FMRkJWN3ozV0JvSkY4dklhVXEwYWlsUzlkZENW?= =?utf-8?B?SkhKTDRJc2lYby9WYksxcHVlK2NodTJtRDdYcGFJOXF4d1hGcjFzeDEzbjRk?= =?utf-8?B?K2JaZGkxWHh3c0trcVh5KzA3dlgrWDl0L0RrTkdsUGs5blgxalJQdWRlRTZh?= =?utf-8?B?K0NOeVpVVXVuWGNXcWM2VEpISEVmOENKQjEzRFFYQWpMUlNlclVJUXVOTzJj?= =?utf-8?B?bmEyQXRtcXZ4SW4rRkloSkVaYWlyeCtZMjU1bWxIWThDeWx3N1Z6WGtzQ2JZ?= =?utf-8?B?UnFzSytobm0weWtvYXNGeDZaZU9LZGszdy93MjJGL29MOGZjSjBxcUJYRGRn?= =?utf-8?B?MW0rZ0xIVE9PV0JjSEpQazZuV09pUkZFNzRKaitGWVFBZGMwWndqd29aMGQw?= =?utf-8?B?N09YUjZLY3prWWxPMmNJWFhTbmF1VWpqL01RTnFBNFordlRBSjU1TEg4NTZz?= =?utf-8?B?TU1mOHBSWkxuTStwUDVHckN0NVE5dUtzWk5sK21IR29ncXhMbDA2MzNBc2pR?= =?utf-8?B?SWpERnBwalQ0dDQ2S2NUOWxFTVR2M1cycnM0b0o0RXhENS80UUxaSDgyeU9O?= =?utf-8?B?QnhqSkZodGdlVTVyNkdlcHFuWGFUSHNPbUhGNVhEN3NOVFl3U2tUdThHSGxQ?= =?utf-8?B?c09rb1haV0gxN2t5bXh1UUh1eEptcGJieVRTdjZybzZhdzk5aWFSdE90WC9H?= =?utf-8?B?c0IyQUlNTldSSHorOWpxMUZYdjUzZ3VhZ2lwcTRrUGtnZ1VaVDR4NmJyeGhn?= =?utf-8?B?Q1pJOVptQURXWHg1cllLcXI0WnkxWkZGUXVteWlOc0RvWmJ2SmtDbE1GaHRE?= =?utf-8?B?UG9CNXUvTEVRSE8xMDRBa3hGOHRPZFZObkJGRTM1UXpReWJWM3pBdXVqYU1q?= =?utf-8?B?K0dKbDd0U1FuRDJSYUF0UjVZVEZ6WmlZbmEzWHhlWGlvR3Y1ek5sVTlsMWJq?= =?utf-8?B?OXhaMHI4WjJtdTNRcERmNDh5V1NLalpyZW5vdDFTdVpSZ2tzU0xrL0NVendP?= =?utf-8?B?NDRSOWVnTFlrVksrSlhvWS9Tc2FSL2dyWDZReTNQcFV4cGg3Rk04cloyTUtD?= =?utf-8?B?TVBQL2lhQnJvRk81eTlTR1dobmMvU2hId0hCL21wekhiY3JxQ09pK0dMa05T?= =?utf-8?B?dEpxVzZ4YTMzNkJDT01aNkllUUNVbmxrWkdkWUNuaWw3ZCt0SnJBRFAzYnFD?= =?utf-8?B?ZFkzci9HbDZFQ3dpYjJ5TWNlTEQ4aGM0ZndJL1h5M3FQalY2eFVpVThMTlRG?= =?utf-8?B?Ty9FRHFZMmRRTnRJVmJZQ2FvbHVQRFFVcFdnanhUa2dmS3FDdHF4alBDMFIr?= =?utf-8?Q?wmwUaw+S/QheTLLkLknJyv0=3D?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 804b2b98-8cb6-45c2-ea0d-08ddf6c4e120 X-MS-Exchange-CrossTenant-AuthSource: CH0PR01MB6873.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Sep 2025 15:06:00.9295 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: /xWO2FXZg4eBUiE6KtZqa1e3aQev/J2iOcdEl+KoEQQuJHX2pG8+b8IGuUBV1jxpU2bR/v+lWlAg7VNdKQKy9t/68AwencgCkj3VSh7Ulxw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR01MB6326 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250918_080609_816013_1091961E X-CRM114-Status: GOOD ( 19.89 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 9/18/25 5:48 AM, Catalin Marinas wrote: > On Wed, Sep 17, 2025 at 12:02:11PM -0700, Yang Shi wrote: >> The kprobe page is allocated by execmem allocator with ROX permission. >> It needs to call set_memory_rox() to set proper permission for the >> direct map too. It was missed. >> >> And the set_memory_rox() guarantees the direct map will be split if it >> needs so that set_direct_map calls in vfree() won't fail. >> >> Fixes: 10d5e97c1bf8 ("arm64: use PAGE_KERNEL_ROX directly in alloc_insn_page") >> Signed-off-by: Yang Shi >> --- >> arch/arm64/kernel/probes/kprobes.c | 12 ++++++++++++ >> 1 file changed, 12 insertions(+) >> >> diff --git a/arch/arm64/kernel/probes/kprobes.c b/arch/arm64/kernel/probes/kprobes.c >> index 0c5d408afd95..c4f8c4750f1e 100644 >> --- a/arch/arm64/kernel/probes/kprobes.c >> +++ b/arch/arm64/kernel/probes/kprobes.c >> @@ -10,6 +10,7 @@ >> >> #define pr_fmt(fmt) "kprobes: " fmt >> >> +#include >> #include >> #include >> #include >> @@ -41,6 +42,17 @@ DEFINE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk); >> static void __kprobes >> post_kprobe_handler(struct kprobe *, struct kprobe_ctlblk *, struct pt_regs *); >> >> +void *alloc_insn_page(void) >> +{ >> + void *page; > Nit: I'd call this 'addr'. 'page' makes me think of a struct page. Sure. > >> + >> + page = execmem_alloc(EXECMEM_KPROBES, PAGE_SIZE); >> + if (!page) >> + return NULL; >> + set_memory_rox((unsigned long)page, 1); > It's unfortunate that we change the attributes of the ROX vmap first to > RO, then to back to ROX so that we get the linear map changed. Maybe > factor out some of the code in change_memory_common() to only change the > linear map. I want to make sure I understand you correctly, you meant set_memory_rox() should do: change linear map to RO (call a new helper, for example, set_direct_map_ro()) change vmap to ROX (call change_memory_common()) Is it correct? If so set_memory_ro() should do the similar thing. And I think we should have the cleanup patch separate from this bug fix patch because the bug fix patch should be applied to -stable release too. Keeping it simpler makes the backport easier. Shall I squash the cleanup patch into patch #1? Thanks, Yang > > Otherwise it looks fine. >