04 Nov, 2010

1 commit

  • This patch removes the domain switching functionality via the set_fs and
    __switch_to functions on cores that have a TLS register.

    Currently, the ioremap and vmalloc areas share the same level 1 page
    tables and therefore have the same domain (DOMAIN_KERNEL). When the
    kernel domain is modified from Client to Manager (via the __set_fs or in
    the __switch_to function), the XN (eXecute Never) bit is overridden and
    newer CPUs can speculatively prefetch the ioremap'ed memory.

    Linux performs the kernel domain switching to allow user-specific
    functions (copy_to/from_user, get/put_user etc.) to access kernel
    memory. In order for these functions to work with the kernel domain set
    to Client, the patch modifies the LDRT/STRT and related instructions to
    the LDR/STR ones.

    The user pages access rights are also modified for kernel read-only
    access rather than read/write so that the copy-on-write mechanism still
    works. CPU_USE_DOMAINS gets disabled only if the hardware has a TLS register
    (CPU_32v6K is defined) since writing the TLS value to the high vectors page
    isn't possible.

    The user addresses passed to the kernel are checked by the access_ok()
    function so that they do not point to the kernel space.

    Tested-by: Anton Vorontsov
    Cc: Tony Lindgren
    Signed-off-by: Catalin Marinas
    Signed-off-by: Russell King

    Catalin Marinas
     

21 Apr, 2010

1 commit

  • /tmp/ccJ3ssZW.s: Assembler messages:
    /tmp/ccJ3ssZW.s:1952: Error: can't resolve `.text' {.text section} - `.LFB1077'

    This is caused because:

    .section .data
    .section .text
    .section .text
    .previous

    does not return us to the .text section, but the .data section; this
    makes use of .previous dangerous if the ordering of previous sections
    is not known.

    Fix up the other users of .previous; .pushsection and .popsection are
    a safer pairing to use than .section and .previous.

    Signed-off-by: Russell King

    Russell King
     

01 Sep, 2008

1 commit


29 Jun, 2006

1 commit


25 Jun, 2006

1 commit


12 Nov, 2005

1 commit


05 Nov, 2005

1 commit


02 Nov, 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