• David S. Miller's avatar
    [SPARC64]: Fix lockdep, particularly on SMP. · 301feb65
    David S. Miller authored
    As noted by Al Viro, when we try to call prom_set_trap_table()
    in the SMP trampoline code we try to take the PROM call spinlock
    which doesn't work because the current thread pointer isn't
    valid yet and lockdep depends upon that being correct.
    
    Furthermore, we cannot set the current thread pointer register
    because it can't be properly dereferenced until we return from
    prom_set_trap_table().  Kernel TLB misses only work after that
    call.
    
    So do the PROM call to set the trap table directly instead of
    going through the OBP library C code, and thus avoid the lock
    altogether.
    
    These calls are guarenteed to be serialized fully.
    
    Since there are now no calls to the prom_set_trap_table{_sun4v}()
    library functions, they can be deleted.
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    301feb65
head.S 20.7 KB