diff for duplicates of <1535646146.26689.11.camel@intel.com>
diff --git a/a/content_digest b/N1/content_digest
index e1d8101..4f16cf4 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -44,11 +44,7 @@
" Mike Kravetz <mike.kravetz\@oracle.com>",
" Nadav Amit <nadav.amit\@gmail.com>",
" Oleg Nesterov <oleg\@redhat.com>",
- " Pavel Machek <pavel\@ucw.cz>",
- " Peter Zijlstra <peterz\@infradead.org>",
- " Ravi V. Shankar <ravi.v.shankar\@intel.com>",
- " Shanbhogue",
- " Vedvyas <vedvyas.shanbhogue\@intel.com>\0"
+ " Pavel Machek <pavel\@ucw.cz>\0"
]
[
"\0000:1\0"
@@ -123,4 +119,4 @@
"Yu-cheng"
]
-7dc91e61338b3bede4a5f74a2b4070dd67b2932a33cefebd92bb84b2b86777e5
+9f29037332e5441ec160ae5ffa97af4f8af8ee029bd2d0c1ac50643ec50cd2c8
diff --git a/a/1.txt b/N2/1.txt
index a3b10f5..080d197 100644
--- a/a/1.txt
+++ b/N2/1.txt
@@ -6,12 +6,12 @@ On Thu, 2018-08-30 at 08:55 -0700, Andy Lutomirski 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.
> > >
> > > Signed-off-by: Yu-cheng Yu <yu-cheng.yu@intel.com>
@@ -20,16 +20,16 @@ On Thu, 2018-08-30 at 08:55 -0700, Andy Lutomirski wrote:
> > > +static inline int write_user_shstk_64(unsigned long addr,
> > > unsigned long val)
> > > +{
-> > > + int err = 0;
+> > > +A A A A A A A int err = 0;
> > > +
-> > > + asm volatile("1: wrussq %1, (%0)\n"
-> > > + "2:\n"
-> > > + _ASM_EXTABLE_HANDLE(1b, 2b,
+> > > +A A A A A A A asm volatile("1: wrussq %1, (%0)\n"
+> > > +A A A A A A A A A A A A A A A A A A A A "2:\n"
+> > > +A A A A A A A A A A A A A A A A A A A A _ASM_EXTABLE_HANDLE(1b, 2b,
> > > ex_handler_wruss)
-> > > + :
-> > > + : "r" (addr), "r" (val));
+> > > +A A A A A A A A A A A A A A A A A A A A :
+> > > +A A A A A A A A A A A A A A A A A A A A : "r" (addr), "r" (val));
> > > +
-> > > + return err;
+> > > +A A A A A A A return err;
> > > +}
> > What's up with "err"? You set it to zero, and then you return it,
> > but
@@ -38,12 +38,12 @@ On Thu, 2018-08-30 at 08:55 -0700, Andy Lutomirski wrote:
> > >
> > > +__visible bool ex_handler_wruss(const struct
> > > exception_table_entry *fixup,
-> > > + struct pt_regs *regs, int
+> > > +A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A struct pt_regs *regs, int
> > > trapnr)
> > > +{
-> > > + regs->ip = ex_fixup_addr(fixup);
-> > > + regs->ax = -1;
-> > > + return true;
+> > > +A A A A A A A regs->ip = ex_fixup_addr(fixup);
+> > > +A A A A A A A regs->ax = -1;
+> > > +A A A A A A A return true;
> > > +}
> > And here you just write into regs->ax, but your "asm volatile"
> > doesn't
@@ -51,11 +51,11 @@ On Thu, 2018-08-30 at 08:55 -0700, Andy Lutomirski wrote:
> >
> > I think you probably want to add something like an explicit
> > `"+&a"(err)` output to the asm statements.
-> We require asm goto support these days. How about using that? You
+> We require asm goto support these days.A A How about using that?A A You
> won't even need a special exception handler.
>
> Also, please change the BUG to WARN in the you-did-it-wrong 32-bit
-> case. And return -EFAULT.
+> case.A A And return -EFAULT.
>
> --Andy
diff --git a/a/content_digest b/N2/content_digest
index e1d8101..cb4cd53 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -65,12 +65,12 @@
"> > > \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",
"> > > Signed-off-by: Yu-cheng Yu <yu-cheng.yu\@intel.com>\n",
@@ -79,16 +79,16 @@
"> > > +static inline int write_user_shstk_64(unsigned long addr,\n",
"> > > unsigned long val)\n",
"> > > +{\n",
- "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240int err = 0;\n",
+ "> > > +A A A A A A A int err = 0;\n",
"> > > +\n",
- "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240asm volatile(\"1: wrussq %1, (%0)\\n\"\n",
- "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\"2:\\n\"\n",
- "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240_ASM_EXTABLE_HANDLE(1b, 2b,\n",
+ "> > > +A A A A A A A asm volatile(\"1: wrussq %1, (%0)\\n\"\n",
+ "> > > +A A A A A A A A A A A A A A A A A A A A \"2:\\n\"\n",
+ "> > > +A A A A A A A A A A A A A A A A A A A A _ASM_EXTABLE_HANDLE(1b, 2b,\n",
"> > > ex_handler_wruss)\n",
- "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240:\n",
- "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240: \"r\" (addr), \"r\" (val));\n",
+ "> > > +A A A A A A A A A A A A A A A A A A A A :\n",
+ "> > > +A A A A A A A A A A A A A A A A A A A A : \"r\" (addr), \"r\" (val));\n",
"> > > +\n",
- "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240return err;\n",
+ "> > > +A A A A A A A return err;\n",
"> > > +}\n",
"> > What's up with \"err\"? You set it to zero, and then you return it,\n",
"> > but\n",
@@ -97,12 +97,12 @@
"> > > \n",
"> > > +__visible bool ex_handler_wruss(const struct\n",
"> > > exception_table_entry *fixup,\n",
- "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240struct pt_regs *regs, int\n",
+ "> > > +A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A struct pt_regs *regs, int\n",
"> > > trapnr)\n",
"> > > +{\n",
- "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240regs->ip = ex_fixup_addr(fixup);\n",
- "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240regs->ax = -1;\n",
- "> > > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240return true;\n",
+ "> > > +A A A A A A A regs->ip = ex_fixup_addr(fixup);\n",
+ "> > > +A A A A A A A regs->ax = -1;\n",
+ "> > > +A A A A A A A return true;\n",
"> > > +}\n",
"> > And here you just write into regs->ax, but your \"asm volatile\"\n",
"> > doesn't\n",
@@ -110,11 +110,11 @@
"> > \n",
"> > I think you probably want to add something like an explicit\n",
"> > `\"+&a\"(err)` output to the asm statements.\n",
- "> We require asm goto support these days.\302\240\302\240How about using that?\302\240\302\240You\n",
+ "> We require asm goto support these days.A A How about using that?A A You\n",
"> won't even need a special exception handler.\n",
"> \n",
"> Also, please change the BUG to WARN in the you-did-it-wrong 32-bit\n",
- "> case.\302\240\302\240And return -EFAULT.\n",
+ "> case.A A And return -EFAULT.\n",
"> \n",
"> --Andy\n",
"\n",
@@ -123,4 +123,4 @@
"Yu-cheng"
]
-7dc91e61338b3bede4a5f74a2b4070dd67b2932a33cefebd92bb84b2b86777e5
+f87fa779d4674cdc3041d2820ed6e5e00fc10a34afe0a97038debfba73824284
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.