1. 12 6月, 2009 1 次提交
    • R
      module: trim exception table on init free. · ad6561df
      Rusty Russell 提交于
      It's theoretically possible that there are exception table entries
      which point into the (freed) init text of modules.  These could cause
      future problems if other modules get loaded into that memory and cause
      an exception as we'd see the wrong fixup.  The only case I know of is
      kvm-intel.ko (when CONFIG_CC_OPTIMIZE_FOR_SIZE=n).
      
      Amerigo fixed this long-standing FIXME in the x86 version, but this
      patch is more general.
      
      This implements trim_init_extable(); most archs are simple since they
      use the standard lib/extable.c sort code.  Alpha and IA64 use relative
      addresses in their fixups, so thier trimming is a slight variation.
      
      Sparc32 is unique; it doesn't seem to define ARCH_HAS_SORT_EXTABLE,
      yet it defines its own sort_extable() which overrides the one in lib.
      It doesn't sort, so we have to mark deleted entries instead of
      actually trimming them.
      Inspired-by: NAmerigo Wang <amwang@redhat.com>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Cc: linux-alpha@vger.kernel.org
      Cc: sparclinux@vger.kernel.org
      Cc: linux-ia64@vger.kernel.org
      ad6561df
  2. 07 2月, 2008 1 次提交
    • E
      lib/extable.c: remove an expensive integer divide in search_extable() · 15ae02ba
      Eric Dumazet 提交于
      Actual code let compiler generates idiv instruction on x86.
      
      Using a right shift is OK here and readable as well.
      
      Before patch
         10:   57                      push   %edi
         11:   56                      push   %esi
         12:   89 d6                   mov    %edx,%esi
         14:   53                      push   %ebx
         15:   89 c3                   mov    %eax,%ebx
         17:   eb 22                   jmp    3b <search_extable+0x2b>
         19:   89 f0                   mov    %esi,%eax
         1b:   ba 02 00 00 00          mov    $0x2,%edx
         20:   29 d8                   sub    %ebx,%eax
         22:   89 d7                   mov    %edx,%edi
         24:   c1 f8 03                sar    $0x3,%eax
         27:   99                      cltd
         28:   f7 ff                   idiv   %edi
         2a:   8d 04 c3                lea    (%ebx,%eax,8),%eax
         2d:   39 08                   cmp    %ecx,(%eax)
      ...
      
      After patch
      
      00000010 <search_extable>:
         10:   53                      push   %ebx
         11:   89 c3                   mov    %eax,%ebx
         13:   eb 18                   jmp    2d <search_extable+0x1d>
         15:   89 d0                   mov    %edx,%eax
         17:   29 d8                   sub    %ebx,%eax
         19:   c1 f8 04                sar    $0x4,%eax
         1c:   8d 04 c3                lea    (%ebx,%eax,8),%eax
         1f:   39 08                   cmp    %ecx,(%eax)
      ...
      Signed-off-by: NEric Dumazet <dada1@cosmosbay.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      15ae02ba
  3. 01 7月, 2006 1 次提交
  4. 10 2月, 2006 1 次提交
  5. 31 10月, 2005 1 次提交
  6. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4
新手
引导
客服 返回
顶部