Skip to content
Snippets Groups Projects
  1. Jul 10, 2017
  2. Dec 24, 2016
  3. Feb 24, 2016
  4. Jun 12, 2009
    • Rusty Russell's avatar
      module: trim exception table on init free. · ad6561df
      Rusty Russell authored
      
      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: default avatarAmerigo Wang <amwang@redhat.com>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Cc: linux-alpha@vger.kernel.org
      Cc: sparclinux@vger.kernel.org
      Cc: linux-ia64@vger.kernel.org
      ad6561df
  5. Feb 06, 2008
    • Eric Dumazet's avatar
      lib/extable.c: remove an expensive integer divide in search_extable() · 15ae02ba
      Eric Dumazet authored
      
      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: default avatarEric Dumazet <dada1@cosmosbay.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      15ae02ba
  6. Jun 30, 2006
  7. Feb 10, 2006
  8. Oct 31, 2005
  9. Apr 16, 2005
    • Linus Torvalds's avatar
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds authored
      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!
Loading