Changeset 36f19c0 in mainline for kernel/arch/sparc64/include/mm/tlb.h


Ignore:
Timestamp:
2007-04-09T16:21:47Z (18 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
ec5b3204
Parents:
183788f1
Message:

Fix a nasty bug in the TLB miss handlers on sparc64.
After we no longer lock the kernel stack in the DTLB,
there is a real danger of nested DTLB misses. The nested
miss can very easily clobber the DTLB Tag Access register.
Therefore, the original miss may not read this register, but
it has to receive its value as an argument. The argument
value is saved in the trap table when it is guaranteed that
the nested TLB miss will not occur.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/include/mm/tlb.h

    r183788f1 r36f19c0  
    429429}
    430430
    431 extern void fast_instruction_access_mmu_miss(int n, istate_t *istate);
    432 extern void fast_data_access_mmu_miss(int n, istate_t *istate);
    433 extern void fast_data_access_protection(int n, istate_t *istate);
     431extern void fast_instruction_access_mmu_miss(unative_t unused, istate_t *istate);
     432extern void fast_data_access_mmu_miss(tlb_tag_access_reg_t tag, istate_t *istate);
     433extern void fast_data_access_protection(tlb_tag_access_reg_t tag , istate_t *istate);
    434434
    435435extern void dtlb_insert_mapping(uintptr_t page, uintptr_t frame, int pagesize, bool locked, bool cacheable);
Note: See TracChangeset for help on using the changeset viewer.