[OSy] nejasnost v kodu

Jiří Tlach jiri.tlach at centrum.cz
Wed Jan 10 19:22:37 CET 2007


Zdravim,

jsem clenem tymu, ktery vyvijel Sirius kernel a uz jsem Ti vcera posilal
patch na e-mail odstranujici problemy, ktere v Siriovi vznikaji pri pouzivani 
vice virtualnich adresovych prostoru a uzivatelskych vlaken. Takze pokud 
tento patch aplikujes, chyba o ktere ses zminoval uz by se nemela 
vyskytnout. Pokud budes mit s patchem nejake problemy, napis mi
e-mail a muzeme je spolu vyresit.

S pozdravem
Jiri Tlach

>Zdravim
>
>Tusim ze je chyba v teto rutine. Nachazi se v arch/sys.S
>Vsimnete si ze kdyz se ukladaji cp0 registry do bezpecneho mista,
>posledni hodnota kterou nabyva $k0 je epc registr
>
>Potom se na zaklade epc vytvori nova hodnota pro status registr misto
>aby se vytvarela na zaklade puvodni hodnoty statusu
>
>handle_general_exception:
>        /*
>         * Save registers that hold information about the exception to
>a safe place.
>         * We will need them later.
>         */
>        lui     $k1, (SAFE_PLACE) >> 16
>        or      $k1, (SAFE_PLACE) & 0xffff
>
>        mfc0    $k0, $context
>        sw      $k0, OFFSET_SAFE_CONTEXT($k1)
>        mfc0    $k0, $badvaddr
>        sw      $k0, OFFSET_SAFE_BADVADDR($k1)
>        mfc0    $k0, $entryhi
>        sw      $k0, OFFSET_SAFE_ENTRYHI($k1)
>        mfc0    $k0, $status
>        sw      $k0, OFFSET_SAFE_STATUS($k1)
>        mfc0    $k0, $cause
>        sw      $k0, OFFSET_SAFE_CAUSE($k1)
>        mfc0    $k0, $epc
>        sw      $k0, OFFSET_SAFE_EPC($k1)
>
>        /*
>         * Leave exception level and disable interrupts. This is because
we
>         * need to store general registers on the stack frame which could
>         * cause a TLB exception. A recursive exception call would
overwrite
>         * the return address and the kernel registers (k0, k1).
>         */
>        xor     $k1, $k1
>        lui     $k1, 0xffff
>        ori     $k1, $k1, 0xffc0 /* disable interrupts & leave
>exception level */
>        and     $k0, $k1
>        mtc0    $k0, $status
>_______________________________________________
>OSy mailing list
>OSy at dsrg.mff.cuni.cz
>http://dsrg.mff.cuni.cz/mailman/listinfo/osy
>




More information about the NSWI004 mailing list