Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/339/?format=api
{ "id": 339, "url": "http://patchwork.ozlabs.org/api/patches/339/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/1221590264-3368-3-git-send-email-galak@kernel.crashing.org/", "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": "<1221590264-3368-3-git-send-email-galak@kernel.crashing.org>", "list_archive_url": "https://lore.kernel.org/linuxppc-dev/1221590264-3368-3-git-send-email-galak@kernel.crashing.org/", "date": "2008-09-16T18:37:43", "name": "[v6,3/4] powerpc/fsl-booke: Fixup 64-bit PTE reading for SMP support", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "8d3505b0ad34c1052e6a21de5e8046983ad30f4d", "submitter": { "id": 5, "url": "http://patchwork.ozlabs.org/api/people/5/?format=api", "name": "Kumar Gala", "email": "galak@kernel.crashing.org" }, "delegate": { "id": 9, "url": "http://patchwork.ozlabs.org/api/users/9/?format=api", "username": "galak", "first_name": "Kumar", "last_name": "Gala", "email": "galak@kernel.crashing.org" }, "mbox": "http://patchwork.ozlabs.org/project/linuxppc-dev/patch/1221590264-3368-3-git-send-email-galak@kernel.crashing.org/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/339/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/339/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 0BEE9DED3E\n\tfor <patchwork@ozlabs.org>; Wed, 17 Sep 2008 04:40:14 +1000 (EST)", "from gate.crashing.org (gate.crashing.org [63.228.1.57])\n\t(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))\n\t(Client did not present a certificate)\n\tby ozlabs.org (Postfix) with ESMTPS id BF9A4DE508\n\tfor <linuxppc-dev@ozlabs.org>; Wed, 17 Sep 2008 04:37:50 +1000 (EST)", "from localhost (localhost.localdomain [127.0.0.1])\n\tby gate.crashing.org (8.14.1/8.13.8) with ESMTP id m8GIbkMk006364\n\tfor <linuxppc-dev@ozlabs.org>; Tue, 16 Sep 2008 13:37:46 -0500" ], "From": "Kumar Gala <galak@kernel.crashing.org>", "To": "linuxppc-dev@ozlabs.org", "Subject": "[PATCH v6 3/4] powerpc/fsl-booke: Fixup 64-bit PTE reading for SMP\n\tsupport", "Date": "Tue, 16 Sep 2008 13:37:43 -0500", "Message-Id": "<1221590264-3368-3-git-send-email-galak@kernel.crashing.org>", "X-Mailer": "git-send-email 1.5.5.1", "In-Reply-To": "<1221590264-3368-2-git-send-email-galak@kernel.crashing.org>", "References": "<1221590264-3368-1-git-send-email-galak@kernel.crashing.org>\n\t<1221590264-3368-2-git-send-email-galak@kernel.crashing.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>", "MIME-Version": "1.0", "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": "We need to create a false data dependency to ensure the loads of\nthe pte are done in the right order.\n\nSigned-off-by: Kumar Gala <galak@kernel.crashing.org>", "diff": "diff --git a/arch/powerpc/kernel/head_fsl_booke.S b/arch/powerpc/kernel/head_fsl_booke.S\nindex 3cb52fa..377e0c1 100644\n--- a/arch/powerpc/kernel/head_fsl_booke.S\n+++ b/arch/powerpc/kernel/head_fsl_booke.S\n@@ -579,13 +579,19 @@ interrupt_base:\n \n \tFIND_PTE\n \tandc.\tr13,r13,r11\t\t/* Check permission */\n-\tbne\t2f\t\t\t/* Bail if permission mismach */\n \n #ifdef CONFIG_PTE_64BIT\n-\tlwz\tr13, 0(r12)\n+#ifdef CONFIG_SMP\n+\tsubf\tr10,r11,r12\t\t/* create false data dep */\n+\tlwzx\tr13,r11,r10\t\t/* Get upper pte bits */\n+#else\n+\tlwz\tr13,0(r12)\t\t/* Get upper pte bits */\n+#endif\n #endif\n \n-\t /* Jump to common tlb load */\n+\tbne\t2f\t\t\t/* Bail if permission/valid mismach */\n+\n+\t/* Jump to common tlb load */\n \tb\tfinish_tlb_load\n 2:\n \t/* The bailout. Restore registers to pre-exception conditions\n@@ -640,10 +646,20 @@ interrupt_base:\n \n \tFIND_PTE\n \tandc.\tr13,r13,r11\t\t/* Check permission */\n+\n+#ifdef CONFIG_PTE_64BIT\n+#ifdef CONFIG_SMP\n+\tsubf\tr10,r11,r12\t\t/* create false data dep */\n+\tlwzx\tr13,r11,r10\t\t/* Get upper pte bits */\n+#else\n+\tlwz\tr13,0(r12)\t\t/* Get upper pte bits */\n+#endif\n+#endif\n+\n \tbne\t2f\t\t\t/* Bail if permission mismach */\n \n #ifdef CONFIG_PTE_64BIT\n-\tlwz\tr13, 0(r12)\n+\tlwz\tr13,0(r12)\n #endif\n \n \t/* Jump to common TLB load point */\n@@ -702,7 +718,7 @@ interrupt_base:\n /*\n * Both the instruction and data TLB miss get to this\n * point to load the TLB.\n- *\tr10 - EA of fault\n+ *\tr10 - available to use\n *\tr11 - TLB (info from Linux PTE)\n *\tr12 - available to use\n *\tr13 - upper bits of PTE (if PTE_64BIT) or available to use\n", "prefixes": [ "v6", "3/4" ] }