diff for duplicates of <1531321615.13297.9.camel@intel.com> diff --git a/a/content_digest b/N1/content_digest index d501038..3bfeb26 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -28,7 +28,8 @@ Nadav Amit <nadav.amit@gmail.com> Oleg Nesterov <oleg@redhat.com> Pavel Machek <pavel@ucw.cz> - " Ravi V. Shan\0" + Ravi V. Shankar <ravi.v.shankar@intel.com> + " Vedvyas Shanbhogue <vedvyas.shanbhogue@intel.com>\0" "\00:1\0" "b\0" "On Wed, 2018-07-11 at 11:44 +0200, Peter Zijlstra wrote:\n" @@ -80,4 +81,4 @@ "\n" Yu-cheng -21fefd1967837d5e32fd9f51eda31d5b6e5de926d54bad968ab82997d1bd58fe +0c01739796cd65898bee0933fd3848650b07aba4d3bbed48a0a9997ff788431d
diff --git a/a/1.txt b/N2/1.txt index 5f88bf4..63e6af3 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -46,3 +46,7 @@ instruction and return err. Do you think we still need a handler for that? Yu-cheng +-- +To unsubscribe from this list: send the line "unsubscribe linux-doc" in +the body of a message to majordomo@vger.kernel.org +More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/a/content_digest b/N2/content_digest index d501038..9af143f 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -28,7 +28,8 @@ Nadav Amit <nadav.amit@gmail.com> Oleg Nesterov <oleg@redhat.com> Pavel Machek <pavel@ucw.cz> - " Ravi V. Shan\0" + Ravi V. Shankar <ravi.v.shankar@intel.com> + " Vedvyas Shanbhogue <vedvyas.shanbhogue@intel.com>\0" "\00:1\0" "b\0" "On Wed, 2018-07-11 at 11:44 +0200, Peter Zijlstra wrote:\n" @@ -78,6 +79,10 @@ "instruction and return err. \302\240Do you think we still need a handler for\n" "that?\n" "\n" - Yu-cheng + "Yu-cheng\n" + "--\n" + "To unsubscribe from this list: send the line \"unsubscribe linux-doc\" in\n" + "the body of a message to majordomo@vger.kernel.org\n" + More majordomo info at http://vger.kernel.org/majordomo-info.html -21fefd1967837d5e32fd9f51eda31d5b6e5de926d54bad968ab82997d1bd58fe +e9c5cef110e1d4d59561e64d2c69aa056fd87a3e280724d791b607efc409357d
diff --git a/a/1.txt b/N3/1.txt index 5f88bf4..8d8a121 100644 --- a/a/1.txt +++ b/N3/1.txt @@ -2,12 +2,12 @@ On Wed, 2018-07-11 at 11:44 +0200, Peter Zijlstra wrote: > On Tue, Jul 10, 2018 at 03:26:30PM -0700, Yu-cheng Yu wrote: > > > > WRUSS is a new kernel-mode instruction but writes directly -> > to user shadow stack memory. This is used to construct +> > to user shadow stack memory.A A This is used to construct > > a return address on the shadow stack for the signal > > handler. > > > > This instruction can fault if the user shadow stack is -> > invalid shadow stack memory. In that case, the kernel does +> > invalid shadow stack memory.A A In that case, the kernel does > > fixup. > > > > @@ -17,32 +17,32 @@ On Wed, 2018-07-11 at 11:44 +0200, Peter Zijlstra wrote: > > + int err = 0; > > + > > + asm volatile("1: wrussq %[val], (%[addr])\n" -> > + "xor %[err], %[err]\n" +> > + A A A A A "xor %[err], %[err]\n" > this XOR is superfluous, you already cleared @err above. I will fix it. > > > -> > + "2:\n" -> > + ".section .fixup,\"ax\"\n" -> > + "3: mov $-1, %[err]; jmp 2b\n" -> > + ".previous\n" -> > + _ASM_EXTABLE(1b, 3b) -> > + : [err] "=a" (err) -> > + : [val] "S" (val), [addr] "D" (addr)); +> > + A A A A A "2:\n" +> > + A A A A A ".section .fixup,\"ax\"\n" +> > + A A A A A "3: mov $-1, %[err]; jmp 2b\n" +> > + A A A A A ".previous\n" +> > + A A A A A _ASM_EXTABLE(1b, 3b) +> > + A A A A A : [err] "=a" (err) +> > + A A A A A : [val] "S" (val), [addr] "D" (addr)); > > + > > + return err; > > +} > > +#endif /* CONFIG_X86_INTEL_CET */ > > + -> > #define nop() asm volatile ("nop") +> > A #define nop() asm volatile ("nop") > What happened to: > -> https://lkml.kernel.org/r/1528729376.4526.0.camel@2b52.sc.intel.com +> A https://lkml.kernel.org/r/1528729376.4526.0.camel@2b52.sc.intel.com Yes, I put that in once and realized we only need to skip the -instruction and return err. Do you think we still need a handler for +instruction and return err. A Do you think we still need a handler for that? Yu-cheng diff --git a/a/content_digest b/N3/content_digest index d501038..90c624f 100644 --- a/a/content_digest +++ b/N3/content_digest @@ -28,19 +28,20 @@ Nadav Amit <nadav.amit@gmail.com> Oleg Nesterov <oleg@redhat.com> Pavel Machek <pavel@ucw.cz> - " Ravi V. Shan\0" + Ravi V. Shankar <ravi.v.shankar@intel.com> + " Vedvyas Shanbhogue <vedvyas.shanbhogue@intel.com>\0" "\00:1\0" "b\0" "On Wed, 2018-07-11 at 11:44 +0200, Peter Zijlstra wrote:\n" "> On Tue, Jul 10, 2018 at 03:26:30PM -0700, Yu-cheng Yu wrote:\n" "> > \n" "> > WRUSS is a new kernel-mode instruction but writes directly\n" - "> > to user shadow stack memory.\302\240\302\240This is used to construct\n" + "> > to user shadow stack memory.A A This is used to construct\n" "> > a return address on the shadow stack for the signal\n" "> > handler.\n" "> > \n" "> > This instruction can fault if the user shadow stack is\n" - "> > invalid shadow stack memory.\302\240\302\240In that case, the kernel does\n" + "> > invalid shadow stack memory.A A In that case, the kernel does\n" "> > fixup.\n" "> > \n" "> > \n" @@ -50,34 +51,34 @@ "> > +\tint err = 0;\n" "> > +\n" "> > +\tasm volatile(\"1: wrussq %[val], (%[addr])\\n\"\n" - "> > +\t\t\302\240\302\240\302\240\302\240\302\240\"xor %[err], %[err]\\n\"\n" + "> > +\t\tA A A A A \"xor %[err], %[err]\\n\"\n" "> this XOR is superfluous, you already cleared @err above.\n" "\n" "I will fix it.\n" "\n" "> \n" "> > \n" - "> > +\t\t\302\240\302\240\302\240\302\240\302\240\"2:\\n\"\n" - "> > +\t\t\302\240\302\240\302\240\302\240\302\240\".section .fixup,\\\"ax\\\"\\n\"\n" - "> > +\t\t\302\240\302\240\302\240\302\240\302\240\"3: mov $-1, %[err]; jmp 2b\\n\"\n" - "> > +\t\t\302\240\302\240\302\240\302\240\302\240\".previous\\n\"\n" - "> > +\t\t\302\240\302\240\302\240\302\240\302\240_ASM_EXTABLE(1b, 3b)\n" - "> > +\t\t\302\240\302\240\302\240\302\240\302\240: [err] \"=a\" (err)\n" - "> > +\t\t\302\240\302\240\302\240\302\240\302\240: [val] \"S\" (val), [addr] \"D\" (addr));\n" + "> > +\t\tA A A A A \"2:\\n\"\n" + "> > +\t\tA A A A A \".section .fixup,\\\"ax\\\"\\n\"\n" + "> > +\t\tA A A A A \"3: mov $-1, %[err]; jmp 2b\\n\"\n" + "> > +\t\tA A A A A \".previous\\n\"\n" + "> > +\t\tA A A A A _ASM_EXTABLE(1b, 3b)\n" + "> > +\t\tA A A A A : [err] \"=a\" (err)\n" + "> > +\t\tA A A A A : [val] \"S\" (val), [addr] \"D\" (addr));\n" "> > +\n" "> > +\treturn err;\n" "> > +}\n" "> > +#endif /* CONFIG_X86_INTEL_CET */\n" "> > +\n" - "> > \302\240#define nop() asm volatile (\"nop\")\n" + "> > A #define nop() asm volatile (\"nop\")\n" "> What happened to:\n" "> \n" - "> \302\240 https://lkml.kernel.org/r/1528729376.4526.0.camel@2b52.sc.intel.com\n" + "> A https://lkml.kernel.org/r/1528729376.4526.0.camel@2b52.sc.intel.com\n" "\n" "Yes, I put that in once and realized we only need to skip the\n" - "instruction and return err. \302\240Do you think we still need a handler for\n" + "instruction and return err. A Do you think we still need a handler for\n" "that?\n" "\n" Yu-cheng -21fefd1967837d5e32fd9f51eda31d5b6e5de926d54bad968ab82997d1bd58fe +536c8e079c3a6e65ef990a689894394779e0b3cf20e6773e3c8b2f5531f3a900
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.