• D
    [PATCH] powerpc: Merge thread_info.h · 6cb7bfeb
    David Gibson 提交于
    Merge ppc32 and ppc64 versions of thread_info.h.  They were pretty
    similar already, the chief changes are:
    
    	- Instead of inline asm to implement current_thread_info(),
    which needs to be different for ppc32 and ppc64, we use C with an
    asm("r1") register variable.  gcc turns it into the same asm as we
    used to have for both platforms.
    	- We replace ppc32's 'local_flags' with the ppc64
    'syscall_noerror' field.  The noerror flag was in fact the only thing
    in the local_flags field anyway, so the ppc64 approach is simpler, and
    means we only need a load-immediate/store instead of load/mask/store
    when clearing the flag.
    	- In readiness for 64k pages, when THREAD_SIZE will be less
    than a page, ppc64 used kmalloc() rather than get_free_pages() to
    allocate the kernel stack.  With this patch we do the same for ppc32,
    since there's no strong reason not to.
    	- For ppc64, we no longer export THREAD_SHIFT and THREAD_SIZE
    via asm-offsets, thread_info.h can now be safely included in asm, as
    on ppc32.
    
    Built and booted on G4 Powerbook (ARCH=ppc and ARCH=powerpc) and
    Power5 (ARCH=ppc64 and ARCH=powerpc).
    Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
    Signed-off-by: NPaul Mackerras <paulus@samba.org>
    6cb7bfeb
head_64.S 50.2 KB