From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S261257AbVFVNB3 (ORCPT ); Wed, 22 Jun 2005 09:01:29 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S261266AbVFVNB3 (ORCPT ); Wed, 22 Jun 2005 09:01:29 -0400 Received: from gold.veritas.com ([143.127.12.110]:1312 "EHLO gold.veritas.com") by vger.kernel.org with ESMTP id S261257AbVFVNB1 (ORCPT ); Wed, 22 Jun 2005 09:01:27 -0400 Date: Wed, 22 Jun 2005 14:02:41 +0100 (BST) From: Hugh Dickins X-X-Sender: hugh@goblin.wat.veritas.com To: Andrew Morton cc: "Richard B. Johnson" , stable@kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] fix remap_pte_range BUG Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-OriginalArrivalTime: 22 Jun 2005 13:01:26.0291 (UTC) FILETIME=[7F97BE30:01C5772A] Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Out-of-tree user of remap_pfn_range hit kernel BUG at mm/memory.c:1112! It passes an unrounded size to remap_pfn_range, which was okay before 2.6.12, but misses remap_pte_range's new end condition. An audit of all the other ptwalks confirms that this is the only one so exposed. Signed-off-by: Hugh Dickins --- 2.6.12/mm/memory.c 2005-06-17 20:48:29.000000000 +0100 +++ linux/mm/memory.c 2005-06-21 20:31:42.000000000 +0100 @@ -1164,7 +1164,7 @@ int remap_pfn_range(struct vm_area_struc { pgd_t *pgd; unsigned long next; - unsigned long end = addr + size; + unsigned long end = addr + PAGE_ALIGN(size); struct mm_struct *mm = vma->vm_mm; int err;