From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Mon, 14 May 2001 13:21:37 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Mon, 14 May 2001 13:21:27 -0400 Received: from penguin.e-mind.com ([195.223.140.120]:14962 "EHLO penguin.e-mind.com") by vger.kernel.org with ESMTP id ; Mon, 14 May 2001 13:21:17 -0400 Date: Mon, 14 May 2001 19:21:10 +0200 From: Andrea Arcangeli To: Linus Torvalds Cc: linux-kernel@vger.kernel.org Subject: msync over reserved mem Message-ID: <20010514192110.Y14200@athlon.random> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-GnuPG-Key-URL: http://e-mind.com/~andrea/aa.gnupg.asc X-PGP-Key-URL: http://e-mind.com/~andrea/aa.asc Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org This patch fixes the troubles generated by msync on /dev/fb0 or any other device driver that exports reserved memory to userspace via shared mapping. --- 2.4.5pre1aa3/mm/filemap.c.~1~ Fri May 11 02:08:28 2001 +++ 2.4.5pre1aa3/mm/filemap.c Mon May 14 18:48:59 2001 @@ -1808,10 +1808,12 @@ { pte_t pte = *ptep; - if (pte_present(pte) && ptep_test_and_clear_dirty(ptep)) { + if (pte_present(pte)) { struct page *page = pte_page(pte); - flush_tlb_page(vma, address); - set_page_dirty(page); + if (VALID_PAGE(page) && !PageReserved(page) && ptep_test_and_clear_dirty(ptep)) { + flush_tlb_page(vma, address); + set_page_dirty(page); + } } return 0; } Andrea