diff for duplicates of <1373415151.8183.213@snotra> diff --git a/a/1.txt b/N1/1.txt index 526abc1..238afca 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,28 +1,28 @@ On 07/09/2013 04:45:10 PM, Alexander Graf wrote: -> +>=20 > On 28.06.2013, at 11:20, Mihai Caraman wrote: -> +>=20 > > + /* Get page size */ -> > + if (MAS0_GET_TLBSEL(mfspr(SPRN_MAS0)) = 0) -> > + psize_shift = PAGE_SHIFT; +> > + if (MAS0_GET_TLBSEL(mfspr(SPRN_MAS0)) =3D=3D 0) +> > + psize_shift =3D PAGE_SHIFT; > > + else -> > + psize_shift = MAS1_GET_TSIZE(mas1) + 10; +> > + psize_shift =3D MAS1_GET_TSIZE(mas1) + 10; > > + -> > + mas7_mas3 = (((u64) mfspr(SPRN_MAS7)) << 32) | +> > + mas7_mas3 =3D (((u64) mfspr(SPRN_MAS7)) << 32) | > > + mfspr(SPRN_MAS3); -> > + addr = (mas7_mas3 & (~0ULL << psize_shift)) | +> > + addr =3D (mas7_mas3 & (~0ULL << psize_shift)) | > > + (geaddr & ((1ULL << psize_shift) - 1ULL)); > > + > > + /* Map a page and get guest's instruction */ -> > + page = pfn_to_page(addr >> PAGE_SHIFT); -> -> While looking at this I just realized that you're missing a check -> here. What if our IP is in some PCI BAR? Or can't we execute from +> > + page =3D pfn_to_page(addr >> PAGE_SHIFT); +>=20 +> While looking at this I just realized that you're missing a check =20 +> here. What if our IP is in some PCI BAR? Or can't we execute from =20 > those? -We at least need to check pfn_valid() first. That'll just keep us from -accessing a bad pointer in the host kernel, though -- it won't make the -emulation actually work. If we need that, we'll probably need to +We at least need to check pfn_valid() first. That'll just keep us from =20 +accessing a bad pointer in the host kernel, though -- it won't make the =20 +emulation actually work. If we need that, we'll probably need to =20 create a temporary TLB entry manually. --Scott +-Scott= diff --git a/a/content_digest b/N1/content_digest index 27d4d45..e446eb4 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,41 +1,41 @@ "ref\0D6991806-B666-4043-8D74-1465B855DE3B@suse.de\0" "From\0Scott Wood <scottwood@freescale.com>\0" "Subject\0Re: [PATCH 2/2] KVM: PPC: Book3E: Get vcpu's last instruction for emulation\0" - "Date\0Wed, 10 Jul 2013 00:12:31 +0000\0" + "Date\0Tue, 9 Jul 2013 19:12:31 -0500\0" "To\0Alexander Graf <agraf@suse.de>\0" "Cc\0Mihai Caraman <mihai.caraman@freescale.com>" - kvm-ppc@vger.kernel.org + linuxppc-dev@lists.ozlabs.org kvm@vger.kernel.org - " linuxppc-dev@lists.ozlabs.org\0" + " kvm-ppc@vger.kernel.org\0" "\00:1\0" "b\0" "On 07/09/2013 04:45:10 PM, Alexander Graf wrote:\n" - "> \n" + ">=20\n" "> On 28.06.2013, at 11:20, Mihai Caraman wrote:\n" - "> \n" + ">=20\n" "> > +\t/* Get page size */\n" - "> > +\tif (MAS0_GET_TLBSEL(mfspr(SPRN_MAS0)) = 0)\n" - "> > +\t\tpsize_shift = PAGE_SHIFT;\n" + "> > +\tif (MAS0_GET_TLBSEL(mfspr(SPRN_MAS0)) =3D=3D 0)\n" + "> > +\t\tpsize_shift =3D PAGE_SHIFT;\n" "> > +\telse\n" - "> > +\t\tpsize_shift = MAS1_GET_TSIZE(mas1) + 10;\n" + "> > +\t\tpsize_shift =3D MAS1_GET_TSIZE(mas1) + 10;\n" "> > +\n" - "> > +\tmas7_mas3 = (((u64) mfspr(SPRN_MAS7)) << 32) |\n" + "> > +\tmas7_mas3 =3D (((u64) mfspr(SPRN_MAS7)) << 32) |\n" "> > +\t\t mfspr(SPRN_MAS3);\n" - "> > +\taddr = (mas7_mas3 & (~0ULL << psize_shift)) |\n" + "> > +\taddr =3D (mas7_mas3 & (~0ULL << psize_shift)) |\n" "> > +\t (geaddr & ((1ULL << psize_shift) - 1ULL));\n" "> > +\n" "> > +\t/* Map a page and get guest's instruction */\n" - "> > +\tpage = pfn_to_page(addr >> PAGE_SHIFT);\n" - "> \n" - "> While looking at this I just realized that you're missing a check \n" - "> here. What if our IP is in some PCI BAR? Or can't we execute from \n" + "> > +\tpage =3D pfn_to_page(addr >> PAGE_SHIFT);\n" + ">=20\n" + "> While looking at this I just realized that you're missing a check =20\n" + "> here. What if our IP is in some PCI BAR? Or can't we execute from =20\n" "> those?\n" "\n" - "We at least need to check pfn_valid() first. That'll just keep us from \n" - "accessing a bad pointer in the host kernel, though -- it won't make the \n" - "emulation actually work. If we need that, we'll probably need to \n" + "We at least need to check pfn_valid() first. That'll just keep us from =20\n" + "accessing a bad pointer in the host kernel, though -- it won't make the =20\n" + "emulation actually work. If we need that, we'll probably need to =20\n" "create a temporary TLB entry manually.\n" "\n" - -Scott + -Scott= -e2706cf9b416940bc8974a3c18f094cb16ccb1c9b528ca481bb8ac316cdfe71b +a1f1679adf4f23fbe7a1ceac4a8cf9afe41f84db68d830587384931b1284b774
diff --git a/a/1.txt b/N2/1.txt index 526abc1..0701ce3 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -3,7 +3,7 @@ On 07/09/2013 04:45:10 PM, Alexander Graf wrote: > On 28.06.2013, at 11:20, Mihai Caraman wrote: > > > + /* Get page size */ -> > + if (MAS0_GET_TLBSEL(mfspr(SPRN_MAS0)) = 0) +> > + if (MAS0_GET_TLBSEL(mfspr(SPRN_MAS0)) == 0) > > + psize_shift = PAGE_SHIFT; > > + else > > + psize_shift = MAS1_GET_TSIZE(mas1) + 10; diff --git a/a/content_digest b/N2/content_digest index 27d4d45..aaf5159 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -1,12 +1,12 @@ "ref\0D6991806-B666-4043-8D74-1465B855DE3B@suse.de\0" "From\0Scott Wood <scottwood@freescale.com>\0" "Subject\0Re: [PATCH 2/2] KVM: PPC: Book3E: Get vcpu's last instruction for emulation\0" - "Date\0Wed, 10 Jul 2013 00:12:31 +0000\0" + "Date\0Tue, 9 Jul 2013 19:12:31 -0500\0" "To\0Alexander Graf <agraf@suse.de>\0" "Cc\0Mihai Caraman <mihai.caraman@freescale.com>" - kvm-ppc@vger.kernel.org - kvm@vger.kernel.org - " linuxppc-dev@lists.ozlabs.org\0" + <kvm-ppc@vger.kernel.org> + <kvm@vger.kernel.org> + " <linuxppc-dev@lists.ozlabs.org>\0" "\00:1\0" "b\0" "On 07/09/2013 04:45:10 PM, Alexander Graf wrote:\n" @@ -14,7 +14,7 @@ "> On 28.06.2013, at 11:20, Mihai Caraman wrote:\n" "> \n" "> > +\t/* Get page size */\n" - "> > +\tif (MAS0_GET_TLBSEL(mfspr(SPRN_MAS0)) = 0)\n" + "> > +\tif (MAS0_GET_TLBSEL(mfspr(SPRN_MAS0)) == 0)\n" "> > +\t\tpsize_shift = PAGE_SHIFT;\n" "> > +\telse\n" "> > +\t\tpsize_shift = MAS1_GET_TSIZE(mas1) + 10;\n" @@ -38,4 +38,4 @@ "\n" -Scott -e2706cf9b416940bc8974a3c18f094cb16ccb1c9b528ca481bb8ac316cdfe71b +9e7ae17108a68044637f4e2740e8a2fe058ccdebeb0d77fec342be59a373e2d0
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.