Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/281/?format=api
{ "id": 281, "url": "http://patchwork.ozlabs.org/api/patches/281/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/adak5ddf8co.fsf@cisco.com/", "project": { "id": 2, "url": "http://patchwork.ozlabs.org/api/projects/2/?format=api", "name": "Linux PPC development", "link_name": "linuxppc-dev", "list_id": "linuxppc-dev.lists.ozlabs.org", "list_email": "linuxppc-dev@lists.ozlabs.org", "web_url": "https://github.com/linuxppc/wiki/wiki", "scm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git", "webscm_url": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/", "list_archive_url": "https://lore.kernel.org/linuxppc-dev/", "list_archive_url_format": "https://lore.kernel.org/linuxppc-dev/{}/", "commit_url_format": "https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/commit/?id={}" }, "msgid": "<adak5ddf8co.fsf@cisco.com>", "list_archive_url": "https://lore.kernel.org/linuxppc-dev/adak5ddf8co.fsf@cisco.com/", "date": "2008-09-15T20:43:35", "name": "powerpc: Avoid integer overflow in page_is_ram()", "commit_ref": "a880e7623397bcb44877b012cd65baa11ad1bbf8", "pull_url": null, "state": "accepted", "archived": true, "hash": "0e5cb05026d3047aaab2423611195e547cb89e3d", "submitter": { "id": 64, "url": "http://patchwork.ozlabs.org/api/people/64/?format=api", "name": "Roland Dreier", "email": "rdreier@cisco.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/adak5ddf8co.fsf@cisco.com/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/281/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/281/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<linuxppc-dev-bounces+patchwork=ozlabs.org@ozlabs.org>", "X-Original-To": [ "patchwork@ozlabs.org", "linuxppc-dev@ozlabs.org" ], "Delivered-To": [ "patchwork@ozlabs.org", "linuxppc-dev@ozlabs.org" ], "Received": [ "from ozlabs.org (localhost [127.0.0.1])\n\tby ozlabs.org (Postfix) with ESMTP id EA06CDE66A\n\tfor <patchwork@ozlabs.org>; Tue, 16 Sep 2008 06:43:58 +1000 (EST)", "from sj-iport-3.cisco.com (sj-iport-3.cisco.com [171.71.176.72])\n\t(using TLSv1 with cipher RC4-SHA (128/128 bits))\n\t(Client CN \"sj-iport-3.cisco.com\", Issuer \"Cisco SSCA\" (not verified))\n\tby ozlabs.org (Postfix) with ESMTPS id 00CD3DE304\n\tfor <linuxppc-dev@ozlabs.org>; Tue, 16 Sep 2008 06:43:39 +1000 (EST)", "from sj-dkim-2.cisco.com ([171.71.179.186])\n\tby sj-iport-3.cisco.com with ESMTP; 15 Sep 2008 20:43:36 +0000", "from sj-core-5.cisco.com (sj-core-5.cisco.com [171.71.177.238])\n\tby sj-dkim-2.cisco.com (8.12.11/8.12.11) with ESMTP id m8FKhaaw020983;\n\tMon, 15 Sep 2008 13:43:36 -0700", "from xbh-sjc-211.amer.cisco.com (xbh-sjc-211.cisco.com\n\t[171.70.151.144])\n\tby sj-core-5.cisco.com (8.13.8/8.13.8) with ESMTP id m8FKha5F026997; \n\tMon, 15 Sep 2008 20:43:36 GMT", "from xfe-sjc-212.amer.cisco.com ([171.70.151.187]) by\n\txbh-sjc-211.amer.cisco.com with Microsoft SMTPSVC(6.0.3790.1830); \n\tMon, 15 Sep 2008 13:43:36 -0700", "from roland-conroe ([10.33.42.9]) by xfe-sjc-212.amer.cisco.com\n\twith\n\tMicrosoft SMTPSVC(6.0.3790.1830); Mon, 15 Sep 2008 13:43:35 -0700", "by roland-conroe (Postfix, from userid 33217)\n\tid BAB061B64DA; Mon, 15 Sep 2008 13:43:35 -0700 (PDT)" ], "From": "Roland Dreier <rdreier@cisco.com>", "To": "Paul Mackerras <paulus@samba.org>", "Subject": "[PATCH] powerpc: Avoid integer overflow in page_is_ram()", "References": "<18638.50702.962371.862911@cargo.ozlabs.ibm.com>", "X-Message-Flag": "Warning: May contain useful information", "Date": "Mon, 15 Sep 2008 13:43:35 -0700", "In-Reply-To": "<18638.50702.962371.862911@cargo.ozlabs.ibm.com> (Paul\n\tMackerras's message of \"Mon, 15 Sep 2008 13:31:10 -0700\")", "Message-ID": "<adak5ddf8co.fsf@cisco.com>", "User-Agent": "Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux)", "MIME-Version": "1.0", "X-OriginalArrivalTime": "15 Sep 2008 20:43:35.0889 (UTC)\n\tFILETIME=[B9935C10:01C91773]", "DKIM-Signature": "v=1; a=rsa-sha256; q=dns/txt; l=1823; t=1221511416;\n\tx=1222375416; c=relaxed/simple; s=sjdkim2002;\n\th=Content-Type:From:Subject:Content-Transfer-Encoding:MIME-Version;\n\td=cisco.com; i=rdreier@cisco.com;\n\tz=From:=20Roland=20Dreier=20<rdreier@cisco.com>\n\t|Subject:=20[PATCH]=20powerpc=3A=20Avoid=20integer=20overfl\n\tow=20in=20page_is_ram() |Sender:=20;\n\tbh=bq+G/nGjSqguYyakt09h2WWTWQoj3E0vVA5XsqOwo6k=;\n\tb=08YsSIzL3MRqv9DOV5Gp1EUucW15FjdGBSyuqiyz7qxm6W081+YRP947DC\n\tSjDs5b1ZEiqCy1ul0ZCNeffWL3ZgQdPP57o3ggMLqTtMJwZhsratTXa3+AEk\n\t8BiEmtDzai;", "Authentication-Results": "sj-dkim-2; header.From=rdreier@cisco.com; dkim=pass (\n\tsig from cisco.com/sjdkim2002 verified; ); ", "Cc": "linuxppc-dev@ozlabs.org", "X-BeenThere": "linuxppc-dev@ozlabs.org", "X-Mailman-Version": "2.1.11", "Precedence": "list", "List-Id": "Linux on PowerPC Developers Mail List <linuxppc-dev.ozlabs.org>", "List-Unsubscribe": "<https://ozlabs.org/mailman/options/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@ozlabs.org?subject=unsubscribe>", "List-Archive": "<http://ozlabs.org/pipermail/linuxppc-dev>", "List-Post": "<mailto:linuxppc-dev@ozlabs.org>", "List-Help": "<mailto:linuxppc-dev-request@ozlabs.org?subject=help>", "List-Subscribe": "<https://ozlabs.org/mailman/listinfo/linuxppc-dev>,\n\t<mailto:linuxppc-dev-request@ozlabs.org?subject=subscribe>", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "7bit", "Sender": "linuxppc-dev-bounces+patchwork=ozlabs.org@ozlabs.org", "Errors-To": "linuxppc-dev-bounces+patchwork=ozlabs.org@ozlabs.org" }, "content": "Commit 8b150478 (\"ppc: make phys_mem_access_prot() work with pfns\ninstead of addresses\") fixed page_is_ram() in arch/ppc to avoid overflow\nfor addresses above 4G on 32-bit kernels. However arch/powerpc's\npage_is_ram() is missing the same fix -- it computes a physical address\nby doing pfn << PAGE_SHIFT, which overflows if pfn corresponds to a page\nabove 4G.\n\nIn particular this causes pages above 4G to be mapped with the wrong\ncaching attribute; for example many ppc440-based SoCs have PCI space\nabove 4G, and mmap()ing MMIO space may end up with a mapping that has\ncaching enabled.\n\nFix this by working with the pfn and avoiding the conversion to\nphysical address that causes the overflow. This patch compares the\npfn to max_pfn, which is a semantic change from the old code -- that\ncode compared the physical address to high_memory, which corresponds\nto max_low_pfn. However, I think that was is another bug, since\nhighmem pages are still RAM.\n\nReported-by: vb <vb@vsbe.com>\nSigned-off-by: Roland Dreier <rolandd@cisco.com>\nAcked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>", "diff": "diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c\nindex 1c93c25..98d7bf9 100644\n--- a/arch/powerpc/mm/mem.c\n+++ b/arch/powerpc/mm/mem.c\n@@ -75,11 +75,10 @@ static inline pte_t *virt_to_kpte(unsigned long vaddr)\n \n int page_is_ram(unsigned long pfn)\n {\n-\tunsigned long paddr = (pfn << PAGE_SHIFT);\n-\n #ifndef CONFIG_PPC64\t/* XXX for now */\n-\treturn paddr < __pa(high_memory);\n+\treturn pfn < max_pfn;\n #else\n+\tunsigned long paddr = (pfn << PAGE_SHIFT);\n \tint i;\n \tfor (i=0; i < lmb.memory.cnt; i++) {\n \t\tunsigned long base;\n", "prefixes": [] }