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

diff --git a/a/content_digest b/N1/content_digest
index d98a230..84de3b6 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -26,7 +26,10 @@
   Mike Kravetz <mike.kravetz@oracle.com>
   Nadav Amit <nadav.amit@gmail.com>
   Oleg Nesterov <oleg@redhat.com>
- " Pavel Machek <pavel@ucw.cz>Pete\0"
+  Pavel Machek <pavel@ucw.cz>
+  Peter Zijlstra <peterz@infradead.org>
+  ravi.v.shankar@intel.com
+ " vedvyas.shanbhogue@intel.com\0"
  "\00:1\0"
  "b\0"
  "On Wed, 2018-07-11 at 12:45 -0700, Jann Horn wrote:\n"
@@ -139,4 +142,4 @@
  "\n"
  Yu-cheng
 
-3132acfc88cb509a2a3d45ba8433ad2256936260b1d27e2c2792d150c77ff5e7
+31f5a2318182584b96a98e41e372f5ff7f46158538ff3fe33e2026fc077a12e3

diff --git a/a/1.txt b/N2/1.txt
index 5b2f899..614b08b 100644
--- a/a/1.txt
+++ b/N2/1.txt
@@ -107,3 +107,7 @@ On Wed, 2018-07-11 at 12:45 -0700, Jann Horn wrote:
 Yes, that simplifies the code.  I will make that change.
 
 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 d98a230..a5dbbc6 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -26,7 +26,10 @@
   Mike Kravetz <mike.kravetz@oracle.com>
   Nadav Amit <nadav.amit@gmail.com>
   Oleg Nesterov <oleg@redhat.com>
- " Pavel Machek <pavel@ucw.cz>Pete\0"
+  Pavel Machek <pavel@ucw.cz>
+  Peter Zijlstra <peterz@infradead.org>
+  ravi.v.shankar@intel.com
+ " vedvyas.shanbhogue@intel.com\0"
  "\00:1\0"
  "b\0"
  "On Wed, 2018-07-11 at 12:45 -0700, Jann Horn wrote:\n"
@@ -137,6 +140,10 @@
  "\n"
  "Yes, that simplifies the code. \302\240I will make that change.\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
 
-3132acfc88cb509a2a3d45ba8433ad2256936260b1d27e2c2792d150c77ff5e7
+b6840220fdfc015814b923ffd85dc363211e140c0f691ba70a42c094f4e3c960

diff --git a/a/1.txt b/N3/1.txt
index 5b2f899..a7bfaad 100644
--- a/a/1.txt
+++ b/N3/1.txt
@@ -4,42 +4,42 @@ On Wed, 2018-07-11 at 12:45 -0700, Jann Horn wrote:
 > > 
 > > 
 > > arch_prctl(ARCH_CET_STATUS, unsigned long *addr)
-> >     Return CET feature status.
+> > A A A A Return CET feature status.
 > > 
-> >     The parameter 'addr' is a pointer to a user buffer.
-> >     On returning to the caller, the kernel fills the following
-> >     information:
+> > A A A A The parameter 'addr' is a pointer to a user buffer.
+> > A A A A On returning to the caller, the kernel fills the following
+> > A A A A information:
 > > 
-> >     *addr = SHSTK/IBT status
-> >     *(addr + 1) = SHSTK base address
-> >     *(addr + 2) = SHSTK size
+> > A A A A *addr = SHSTK/IBT status
+> > A A A A *(addr + 1) = SHSTK base address
+> > A A A A *(addr + 2) = SHSTK size
 > > 
 > > arch_prctl(ARCH_CET_DISABLE, unsigned long features)
-> >     Disable SHSTK and/or IBT specified in 'features'.  Return
+> > A A A A Disable SHSTK and/or IBT specified in 'features'.A A Return
 > > -EPERM
-> >     if CET is locked out.
+> > A A A A if CET is locked out.
 > > 
 > > arch_prctl(ARCH_CET_LOCK)
-> >     Lock out CET feature.
+> > A A A A Lock out CET feature.
 > > 
 > > arch_prctl(ARCH_CET_ALLOC_SHSTK, unsigned long *addr)
-> >     Allocate a new SHSTK.
+> > A A A A Allocate a new SHSTK.
 > > 
-> >     The parameter 'addr' is a pointer to a user buffer and
+> > A A A A The parameter 'addr' is a pointer to a user buffer and
 > > indicates
-> >     the desired SHSTK size to allocate.  On returning to the caller
-> >     the buffer contains the address of the new SHSTK.
+> > A A A A the desired SHSTK size to allocate.A A On returning to the caller
+> > A A A A the buffer contains the address of the new SHSTK.
 > > 
 > > arch_prctl(ARCH_CET_LEGACY_BITMAP, unsigned long *addr)
-> >     Allocate an IBT legacy code bitmap if the current task does not
-> >     have one.
+> > A A A A Allocate an IBT legacy code bitmap if the current task does not
+> > A A A A have one.
 > > 
-> >     The parameter 'addr' is a pointer to a user buffer.
-> >     On returning to the caller, the kernel fills the following
-> >     information:
+> > A A A A The parameter 'addr' is a pointer to a user buffer.
+> > A A A A On returning to the caller, the kernel fills the following
+> > A A A A information:
 > > 
-> >     *addr = IBT bitmap base address
-> >     *(addr + 1) = IBT bitmap size
+> > A A A A *addr = IBT bitmap base address
+> > A A A A *(addr + 1) = IBT bitmap size
 > > 
 > > Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
 > > Signed-off-by: Yu-cheng Yu <yu-cheng.yu@intel.com>
@@ -68,42 +68,42 @@ On Wed, 2018-07-11 at 12:45 -0700, Jann Horn wrote:
 > > +
 > > +static int handle_get_status(unsigned long arg2)
 > > +{
-> > +       unsigned int features = 0;
-> > +       unsigned long shstk_base, shstk_size;
+> > +A A A A A A A unsigned int features = 0;
+> > +A A A A A A A unsigned long shstk_base, shstk_size;
 > > +
-> > +       if (current->thread.cet.shstk_enabled)
-> > +               features |= GNU_PROPERTY_X86_FEATURE_1_SHSTK;
-> > +       if (current->thread.cet.ibt_enabled)
-> > +               features |= GNU_PROPERTY_X86_FEATURE_1_IBT;
+> > +A A A A A A A if (current->thread.cet.shstk_enabled)
+> > +A A A A A A A A A A A A A A A features |= GNU_PROPERTY_X86_FEATURE_1_SHSTK;
+> > +A A A A A A A if (current->thread.cet.ibt_enabled)
+> > +A A A A A A A A A A A A A A A features |= GNU_PROPERTY_X86_FEATURE_1_IBT;
 > > +
-> > +       shstk_base = current->thread.cet.shstk_base;
-> > +       shstk_size = current->thread.cet.shstk_size;
+> > +A A A A A A A shstk_base = current->thread.cet.shstk_base;
+> > +A A A A A A A shstk_size = current->thread.cet.shstk_size;
 > > +
-> > +       if (in_ia32_syscall()) {
-> > +               unsigned int buf[3];
+> > +A A A A A A A if (in_ia32_syscall()) {
+> > +A A A A A A A A A A A A A A A unsigned int buf[3];
 > > +
-> > +               buf[0] = features;
-> > +               buf[1] = (unsigned int)shstk_base;
-> > +               buf[2] = (unsigned int)shstk_size;
-> > +               return copy_to_user((unsigned int __user *)arg2,
+> > +A A A A A A A A A A A A A A A buf[0] = features;
+> > +A A A A A A A A A A A A A A A buf[1] = (unsigned int)shstk_base;
+> > +A A A A A A A A A A A A A A A buf[2] = (unsigned int)shstk_size;
+> > +A A A A A A A A A A A A A A A return copy_to_user((unsigned int __user *)arg2,
 > > buf,
-> > +                                   sizeof(buf));
-> > +       } else {
-> > +               unsigned long buf[3];
+> > +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 sizeof(buf));
+> > +A A A A A A A } else {
+> > +A A A A A A A A A A A A A A A unsigned long buf[3];
 > > +
-> > +               buf[0] = (unsigned long)features;
-> > +               buf[1] = shstk_base;
-> > +               buf[2] = shstk_size;
-> > +               return copy_to_user((unsigned long __user *)arg2,
+> > +A A A A A A A A A A A A A A A buf[0] = (unsigned long)features;
+> > +A A A A A A A A A A A A A A A buf[1] = shstk_base;
+> > +A A A A A A A A A A A A A A A buf[2] = shstk_size;
+> > +A A A A A A A A A A A A A A A return copy_to_user((unsigned long __user *)arg2,
 > > buf,
-> > +                                   sizeof(buf));
-> > +       }
+> > +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 sizeof(buf));
+> > +A A A A A A A }
 > Other places in the kernel (e.g. the BPF subsystem) just
 > unconditionally use u64 instead of unsigned long to avoid having to
 > switch between different sizes. I wonder whether that would make
 > sense
 > here?
 
-Yes, that simplifies the code.  I will make that change.
+Yes, that simplifies the code. A I will make that change.
 
 Yu-cheng
diff --git a/a/content_digest b/N3/content_digest
index d98a230..3066b30 100644
--- a/a/content_digest
+++ b/N3/content_digest
@@ -26,7 +26,10 @@
   Mike Kravetz <mike.kravetz@oracle.com>
   Nadav Amit <nadav.amit@gmail.com>
   Oleg Nesterov <oleg@redhat.com>
- " Pavel Machek <pavel@ucw.cz>Pete\0"
+  Pavel Machek <pavel@ucw.cz>
+  Peter Zijlstra <peterz@infradead.org>
+  ravi.v.shankar@intel.com
+ " vedvyas.shanbhogue@intel.com\0"
  "\00:1\0"
  "b\0"
  "On Wed, 2018-07-11 at 12:45 -0700, Jann Horn wrote:\n"
@@ -35,42 +38,42 @@
  "> > \n"
  "> > \n"
  "> > arch_prctl(ARCH_CET_STATUS, unsigned long *addr)\n"
- "> > \302\240\302\240\302\240\302\240Return CET feature status.\n"
+ "> > A A A A Return CET feature status.\n"
  "> > \n"
- "> > \302\240\302\240\302\240\302\240The parameter 'addr' is a pointer to a user buffer.\n"
- "> > \302\240\302\240\302\240\302\240On returning to the caller, the kernel fills the following\n"
- "> > \302\240\302\240\302\240\302\240information:\n"
+ "> > A A A A The parameter 'addr' is a pointer to a user buffer.\n"
+ "> > A A A A On returning to the caller, the kernel fills the following\n"
+ "> > A A A A information:\n"
  "> > \n"
- "> > \302\240\302\240\302\240\302\240*addr = SHSTK/IBT status\n"
- "> > \302\240\302\240\302\240\302\240*(addr + 1) = SHSTK base address\n"
- "> > \302\240\302\240\302\240\302\240*(addr + 2) = SHSTK size\n"
+ "> > A A A A *addr = SHSTK/IBT status\n"
+ "> > A A A A *(addr + 1) = SHSTK base address\n"
+ "> > A A A A *(addr + 2) = SHSTK size\n"
  "> > \n"
  "> > arch_prctl(ARCH_CET_DISABLE, unsigned long features)\n"
- "> > \302\240\302\240\302\240\302\240Disable SHSTK and/or IBT specified in 'features'.\302\240\302\240Return\n"
+ "> > A A A A Disable SHSTK and/or IBT specified in 'features'.A A Return\n"
  "> > -EPERM\n"
- "> > \302\240\302\240\302\240\302\240if CET is locked out.\n"
+ "> > A A A A if CET is locked out.\n"
  "> > \n"
  "> > arch_prctl(ARCH_CET_LOCK)\n"
- "> > \302\240\302\240\302\240\302\240Lock out CET feature.\n"
+ "> > A A A A Lock out CET feature.\n"
  "> > \n"
  "> > arch_prctl(ARCH_CET_ALLOC_SHSTK, unsigned long *addr)\n"
- "> > \302\240\302\240\302\240\302\240Allocate a new SHSTK.\n"
+ "> > A A A A Allocate a new SHSTK.\n"
  "> > \n"
- "> > \302\240\302\240\302\240\302\240The parameter 'addr' is a pointer to a user buffer and\n"
+ "> > A A A A The parameter 'addr' is a pointer to a user buffer and\n"
  "> > indicates\n"
- "> > \302\240\302\240\302\240\302\240the desired SHSTK size to allocate.\302\240\302\240On returning to the caller\n"
- "> > \302\240\302\240\302\240\302\240the buffer contains the address of the new SHSTK.\n"
+ "> > A A A A the desired SHSTK size to allocate.A A On returning to the caller\n"
+ "> > A A A A the buffer contains the address of the new SHSTK.\n"
  "> > \n"
  "> > arch_prctl(ARCH_CET_LEGACY_BITMAP, unsigned long *addr)\n"
- "> > \302\240\302\240\302\240\302\240Allocate an IBT legacy code bitmap if the current task does not\n"
- "> > \302\240\302\240\302\240\302\240have one.\n"
+ "> > A A A A Allocate an IBT legacy code bitmap if the current task does not\n"
+ "> > A A A A have one.\n"
  "> > \n"
- "> > \302\240\302\240\302\240\302\240The parameter 'addr' is a pointer to a user buffer.\n"
- "> > \302\240\302\240\302\240\302\240On returning to the caller, the kernel fills the following\n"
- "> > \302\240\302\240\302\240\302\240information:\n"
+ "> > A A A A The parameter 'addr' is a pointer to a user buffer.\n"
+ "> > A A A A On returning to the caller, the kernel fills the following\n"
+ "> > A A A A information:\n"
  "> > \n"
- "> > \302\240\302\240\302\240\302\240*addr = IBT bitmap base address\n"
- "> > \302\240\302\240\302\240\302\240*(addr + 1) = IBT bitmap size\n"
+ "> > A A A A *addr = IBT bitmap base address\n"
+ "> > A A A A *(addr + 1) = IBT bitmap size\n"
  "> > \n"
  "> > Signed-off-by: H.J. Lu <hjl.tools@gmail.com>\n"
  "> > Signed-off-by: Yu-cheng Yu <yu-cheng.yu@intel.com>\n"
@@ -99,44 +102,44 @@
  "> > +\n"
  "> > +static int handle_get_status(unsigned long arg2)\n"
  "> > +{\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240unsigned int features = 0;\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240unsigned long shstk_base, shstk_size;\n"
+ "> > +A A A A A A A unsigned int features = 0;\n"
+ "> > +A A A A A A A unsigned long shstk_base, shstk_size;\n"
  "> > +\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (current->thread.cet.shstk_enabled)\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\240features |= GNU_PROPERTY_X86_FEATURE_1_SHSTK;\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (current->thread.cet.ibt_enabled)\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\240features |= GNU_PROPERTY_X86_FEATURE_1_IBT;\n"
+ "> > +A A A A A A A if (current->thread.cet.shstk_enabled)\n"
+ "> > +A A A A A A A A A A A A A A A features |= GNU_PROPERTY_X86_FEATURE_1_SHSTK;\n"
+ "> > +A A A A A A A if (current->thread.cet.ibt_enabled)\n"
+ "> > +A A A A A A A A A A A A A A A features |= GNU_PROPERTY_X86_FEATURE_1_IBT;\n"
  "> > +\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240shstk_base = current->thread.cet.shstk_base;\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240shstk_size = current->thread.cet.shstk_size;\n"
+ "> > +A A A A A A A shstk_base = current->thread.cet.shstk_base;\n"
+ "> > +A A A A A A A shstk_size = current->thread.cet.shstk_size;\n"
  "> > +\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240if (in_ia32_syscall()) {\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\240unsigned int buf[3];\n"
+ "> > +A A A A A A A if (in_ia32_syscall()) {\n"
+ "> > +A A A A A A A A A A A A A A A unsigned int buf[3];\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\240buf[0] = features;\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\240buf[1] = (unsigned int)shstk_base;\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\240buf[2] = (unsigned int)shstk_size;\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\240return copy_to_user((unsigned int __user *)arg2,\n"
+ "> > +A A A A A A A A A A A A A A A buf[0] = features;\n"
+ "> > +A A A A A A A A A A A A A A A buf[1] = (unsigned int)shstk_base;\n"
+ "> > +A A A A A A A A A A A A A A A buf[2] = (unsigned int)shstk_size;\n"
+ "> > +A A A A A A A A A A A A A A A return copy_to_user((unsigned int __user *)arg2,\n"
  "> > buf,\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\240\302\240\302\240\302\240\302\240sizeof(buf));\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240} else {\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\240unsigned long buf[3];\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 A A A A sizeof(buf));\n"
+ "> > +A A A A A A A } else {\n"
+ "> > +A A A A A A A A A A A A A A A unsigned long buf[3];\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\240buf[0] = (unsigned long)features;\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\240buf[1] = shstk_base;\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\240buf[2] = shstk_size;\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\240return copy_to_user((unsigned long __user *)arg2,\n"
+ "> > +A A A A A A A A A A A A A A A buf[0] = (unsigned long)features;\n"
+ "> > +A A A A A A A A A A A A A A A buf[1] = shstk_base;\n"
+ "> > +A A A A A A A A A A A A A A A buf[2] = shstk_size;\n"
+ "> > +A A A A A A A A A A A A A A A return copy_to_user((unsigned long __user *)arg2,\n"
  "> > buf,\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\240\302\240\302\240\302\240\302\240sizeof(buf));\n"
- "> > +\302\240\302\240\302\240\302\240\302\240\302\240\302\240}\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 A A A A sizeof(buf));\n"
+ "> > +A A A A A A A }\n"
  "> Other places in the kernel (e.g. the BPF subsystem) just\n"
  "> unconditionally use u64 instead of unsigned long to avoid having to\n"
  "> switch between different sizes. I wonder whether that would make\n"
  "> sense\n"
  "> here?\n"
  "\n"
- "Yes, that simplifies the code. \302\240I will make that change.\n"
+ "Yes, that simplifies the code. A I will make that change.\n"
  "\n"
  Yu-cheng
 
-3132acfc88cb509a2a3d45ba8433ad2256936260b1d27e2c2792d150c77ff5e7
+4c48498c6d40200f2a0ff705d918e925440206fce6aa1003a5b4fdc00b585009

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.