All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <1535752180.31230.4.camel@intel.com>

diff --git a/a/content_digest b/N1/content_digest
index 9001c88..a88c925 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -47,11 +47,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"
@@ -145,4 +141,4 @@
   "}"
 ]
 
-f537d77d8294e6ee7f99b462cea60cfccda52c074fee78d6e97f46f3337a4297
+b7517239d06aa30caff223d345eb026f22bb632b7e6456e4889ba9b9fdc9d45d

diff --git a/a/1.txt b/N2/1.txt
index 42760aa..3b6b401 100644
--- a/a/1.txt
+++ b/N2/1.txt
@@ -12,12 +12,12 @@ On Thu, 2018-08-30 at 09:22 -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.
 > > > > 
 > > > > Signed-off-by: Yu-cheng Yu <yu-cheng.yu@intel.com>
@@ -27,16 +27,16 @@ On Thu, 2018-08-30 at 09:22 -0700, Yu-cheng Yu 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,
@@ -47,12 +47,12 @@ On Thu, 2018-08-30 at 09:22 -0700, Yu-cheng Yu 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
@@ -60,22 +60,22 @@ On Thu, 2018-08-30 at 09:22 -0700, Yu-cheng Yu 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.
 
-Maybe something like this?  It looks simple now.
+Maybe something like this? A It looks simple now.
 
 static inline int write_user_shstk_64(unsigned long addr, unsigned
 long val)
 {
 	asm_volatile_goto("wrussq %1, (%0)\n"
-		     "jmp %l[ok]\n"
-		     ".section .fixup,\"ax\"n"
-		     "jmp %l[fail]\n"
-		     ".previous\n"
-		     :: "r" (addr), "r" (val)
-		     :: ok, fail);
+		A A A A A "jmp %l[ok]\n"
+		A A A A A ".section .fixup,\"ax\"n"
+		A A A A A "jmp %l[fail]\n"
+		A A A A A ".previous\n"
+		A A A A A :: "r" (addr), "r" (val)
+		A A A A A :: ok, fail);
 ok:
 	return 0;
 fail:
diff --git a/a/content_digest b/N2/content_digest
index 9001c88..23b3d64 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -74,12 +74,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",
@@ -89,16 +89,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\n",
   "> > > it,\n",
@@ -109,12 +109,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",
@@ -122,22 +122,22 @@
   "> > > \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\n",
-  "> > that?\302\240\302\240You\n",
+  "> > We require asm goto support these days.A A How about using\n",
+  "> > that?A A You\n",
   "> > won't even need a special exception handler.\n",
   "\n",
-  "Maybe something like this? \302\240It looks simple now.\n",
+  "Maybe something like this? A It looks simple now.\n",
   "\n",
   "static inline int write_user_shstk_64(unsigned long addr, unsigned\n",
   "long val)\n",
   "{\n",
   "\tasm_volatile_goto(\"wrussq %1, (%0)\\n\"\n",
-  "\t\t\302\240\302\240\302\240\302\240\302\240\"jmp %l[ok]\\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\"jmp %l[fail]\\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:: \"r\" (addr), \"r\" (val)\n",
-  "\t\t\302\240\302\240\302\240\302\240\302\240:: ok, fail);\n",
+  "\t\tA A A A A \"jmp %l[ok]\\n\"\n",
+  "\t\tA A A A A \".section .fixup,\\\"ax\\\"n\"\n",
+  "\t\tA A A A A \"jmp %l[fail]\\n\"\n",
+  "\t\tA A A A A \".previous\\n\"\n",
+  "\t\tA A A A A :: \"r\" (addr), \"r\" (val)\n",
+  "\t\tA A A A A :: ok, fail);\n",
   "ok:\n",
   "\treturn 0;\n",
   "fail:\n",
@@ -145,4 +145,4 @@
   "}"
 ]
 
-f537d77d8294e6ee7f99b462cea60cfccda52c074fee78d6e97f46f3337a4297
+cadb5806853f5a619aa5a23b58c22399ef32220d08e96faf24fc21cd9e980d7d

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.