Changeset 93d66ef in mainline for kernel/arch/ia64/src/mm/tlb.c


Ignore:
Timestamp:
2009-09-04T18:07:09Z (15 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
40240b1
Parents:
5bda2f3e
Message:

GCC 4.4.1 with -O3 uses speculative memory access
add basic support for deffering TLB faults on speculative access
this makes ia64 port work in Ski again (fixes ticket #115)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia64/src/mm/tlb.c

    r5bda2f3e r93d66ef  
    573573void alternate_data_tlb_fault(uint64_t vector, istate_t *istate)
    574574{
     575        if (istate->cr_isr.sp) {
     576                /* Speculative load. Deffer the exception
     577                   until a more clever approach can be used.
     578                   
     579                   Currently if we try to find the mapping
     580                   for the speculative load while in the kernel,
     581                   we might introduce a livelock because of
     582                   the possibly invalid values of the address. */
     583                istate->cr_ipsr.ed = true;
     584                return;
     585        }
     586       
    575587        uintptr_t va = istate->cr_ifa;  /* faulting address */
    576588       
Note: See TracChangeset for help on using the changeset viewer.