1. 13 4月, 2016 6 次提交
  2. 23 3月, 2016 1 次提交
  3. 18 2月, 2016 1 次提交
  4. 21 4月, 2012 1 次提交
    • H
      x86, extable: Switch to relative exception table entries · 70627654
      H. Peter Anvin 提交于
      Switch to using relative exception table entries on x86.  On i386,
      this has the advantage that the exception table entries don't need to
      be relocated; on x86-64 this means the exception table entries take up
      only half the space.
      
      In either case, a 32-bit delta is sufficient, as the range of kernel
      code addresses is limited.
      
      Since part of the goal is to avoid needing to adjust the entries when
      the kernel is relocated, the old trick of using addresses in the NULL
      pointer range to indicate uaccess_err no longer works (and unlike RISC
      architectures we can't use a flag bit); instead use an delta just
      below +2G to indicate these special entries.  The reach is still
      limited to a single instruction.
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      Cc: David Daney <david.daney@cavium.com>
      Link: http://lkml.kernel.org/r/CA%2B55aFyijf43qSu3N9nWHEBwaGbb7T2Oq9A=9EyR=Jtyqfq_cQ@mail.gmail.com
      70627654
  5. 20 4月, 2012 1 次提交
  6. 05 12月, 2011 1 次提交
  7. 13 10月, 2009 1 次提交
  8. 24 1月, 2009 1 次提交
    • H
      x86: uaccess: introduce try and catch framework · fe40c0af
      Hiroshi Shimamoto 提交于
      Impact: introduce new uaccess exception handling framework
      
      Introduce {get|put}_user_try and {get|put}_user_catch as new uaccess exception
      handling framework.
      {get|put}_user_try begins exception block and {get|put}_user_catch(err) ends
      the block and gets err if an exception occured in {get|put}_user_ex() in the
      block. The exception is stored thread_info->uaccess_err.
      
      The example usage of this framework is below;
      int func()
      {
      	int err = 0;
      
      	get_user_try {
      		get_user_ex(...);
      		get_user_ex(...);
      		:
      	} get_user_catch(err);
      
      	return err;
      }
      
      Note: get_user_ex() is not clear the value when an exception occurs, it's
      different from the behavior of __get_user(), but I think it doesn't matter.
      Signed-off-by: NHiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
      Signed-off-by: NH. Peter Anvin <hpa@linux.intel.com>
      fe40c0af
  9. 30 1月, 2008 1 次提交