01 Nov, 2011

1 commit


24 Jul, 2011

1 commit

  • This patch removes all the module loader hook implementations in the
    architecture specific code where the functionality is the same as that
    now provided by the recently added default hooks.

    Signed-off-by: Jonas Bonn
    Acked-by: Mike Frysinger
    Acked-by: Geert Uytterhoeven
    Tested-by: Michal Simek
    Signed-off-by: Rusty Russell

    Jonas Bonn
     

19 Jan, 2011

1 commit

  • In order not to be left behind, we add jump label support for MIPS.

    Tested on 64-bit big endian (Octeon), and 32-bit little endian
    (malta/qemu).

    Signed-off-by: David Daney
    To: linux-mips@linux-mips.org
    Cc: Steven Rostedt
    Cc: Jason Baron
    Patchwork: https://patchwork.linux-mips.org/patch/1923/
    Signed-off-by: Ralf Baechle

    David Daney
     

14 Jan, 2011

1 commit

  • Four architectures (arm, mips, sparc, x86) use __vmalloc_area() for
    module_init(). Much of the code is duplicated and can be generalized in a
    globally accessible function, __vmalloc_node_range().

    __vmalloc_node() now calls into __vmalloc_node_range() with a range of
    [VMALLOC_START, VMALLOC_END) for functionally equivalent behavior.

    Each architecture may then use __vmalloc_node_range() directly to remove
    the duplication of code.

    Signed-off-by: David Rientjes
    Cc: Christoph Lameter
    Cc: Russell King
    Cc: Ralf Baechle
    Cc: "David S. Miller"
    Cc: Ingo Molnar
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     

04 Aug, 2009

2 commits

  • There were three different errors resulting in a "dangerous relocation"
    message. Add the relocation type to the messgages to make them more
    useful.

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • Loading of modules with unresolved weak symbols fails on MIPS
    since '88173507e4fc1e7ecd111b0565e8cba0cb7dae6d'.

    Modules: handle symbols that have a zero value

    The module subsystem cannot handle symbols that are zero. If symbols
    are present that have a zero value then the module resolver prints out a
    message that these symbols are unresolved.

    We have to use IS_ERR_VALUE() to check that a symbol has been resolved
    or not.

    Signed-off-by: Gabor Juhos
    Signed-off-by: Ralf Baechle

    Gabor Juhos
     

12 Jun, 2009

1 commit


25 Jul, 2008

1 commit

  • On 32-bit architectures PAGE_ALIGN() truncates 64-bit values to the 32-bit
    boundary. For example:

    u64 val = PAGE_ALIGN(size);

    always returns a value < 4GB even if size is greater than 4GB.

    The problem resides in PAGE_MASK definition (from include/asm-x86/page.h for
    example):

    #define PAGE_SHIFT 12
    #define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT)
    #define PAGE_MASK (~(PAGE_SIZE-1))
    ...
    #define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK)

    The "~" is performed on a 32-bit value, so everything in "and" with
    PAGE_MASK greater than 4GB will be truncated to the 32-bit boundary.
    Using the ALIGN() macro seems to be the right way, because it uses
    typeof(addr) for the mask.

    Also move the PAGE_ALIGN() definitions out of include/asm-*/page.h in
    include/linux/mm.h.

    See also lkml discussion: http://lkml.org/lkml/2008/6/11/237

    [akpm@linux-foundation.org: fix drivers/media/video/uvc/uvc_queue.c]
    [akpm@linux-foundation.org: fix v850]
    [akpm@linux-foundation.org: fix powerpc]
    [akpm@linux-foundation.org: fix arm]
    [akpm@linux-foundation.org: fix mips]
    [akpm@linux-foundation.org: fix drivers/media/video/pvrusb2/pvrusb2-dvb.c]
    [akpm@linux-foundation.org: fix drivers/mtd/maps/uclinux.c]
    [akpm@linux-foundation.org: fix powerpc]
    Signed-off-by: Andrea Righi
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrea Righi
     

20 Oct, 2007

1 commit


30 Nov, 2006

1 commit

  • This is a patch to load 64-bit modules to CKSEG0 so that can be
    compiled with -msym32 option. This makes each module ~10% smaller.

    * introduce MODULE_START and MODULE_END
    * custom module_alloc()
    * PGD for modules
    * change XTLB refill handler synthesizer
    * enable -msym32 for modules again
    (revert ca78b1a5c6a6e70e052d3ea253828e49b5d07c8a)

    New XTLB refill handler looks like this:

    80000080 dmfc0 k0,C0_BADVADDR
    80000084 bltz k0,800000e4 # goto l_module_alloc
    80000088 lui k1,0x8046 # %high(pgd_current)
    8000008c ld k1,24600(k1) # %low(pgd_current)
    80000090 dsrl k0,k0,0x1b # l_vmalloc_done:
    80000094 andi k0,k0,0x1ff8
    80000098 daddu k1,k1,k0
    8000009c dmfc0 k0,C0_BADVADDR
    800000a0 ld k1,0(k1)
    800000a4 dsrl k0,k0,0x12
    800000a8 andi k0,k0,0xff8
    800000ac daddu k1,k1,k0
    800000b0 dmfc0 k0,C0_XCONTEXT
    800000b4 ld k1,0(k1)
    800000b8 andi k0,k0,0xff0
    800000bc daddu k1,k1,k0
    800000c0 ld k0,0(k1)
    800000c4 ld k1,8(k1)
    800000c8 dsrl k0,k0,0x6
    800000cc mtc0 k0,C0_ENTRYLO0
    800000d0 dsrl k1,k1,0x6
    800000d4 mtc0 k1,C0_ENTRYL01
    800000d8 nop
    800000dc tlbwr
    800000e0 eret
    800000e4 dsll k1,k0,0x2 # l_module_alloc:
    800000e8 bgez k1,80000008 # goto l_vmalloc
    800000ec lui k1,0xc000
    800000f0 dsubu k0,k0,k1
    800000f4 lui k1,0x8046 # %high(module_pg_dir)
    800000f8 beq zero,zero,80000000
    800000fc nop
    80000000 beq zero,zero,80000090 # goto l_vmalloc_done
    80000004 daddiu k1,k1,0x4000
    80000008 dsll32 k1,k1,0x0 # l_vmalloc:
    8000000c dsubu k0,k0,k1
    80000010 beq zero,zero,80000090 # goto l_vmalloc_done
    80000014 lui k1,0x8046 # %high(swapper_pg_dir)

    Signed-off-by: Atsushi Nemoto
    Signed-off-by: Ralf Baechle

    Atsushi Nemoto
     

06 Jun, 2006

1 commit


30 Oct, 2005

1 commit


17 Apr, 2005

1 commit

  • 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!

    Linus Torvalds