Re: dcache BUG()
From: Gabriel Paubert <hidden>
Date: 2001-05-07 23:28:02
On Mon, 7 May 2001, Dan Malek wrote:
Gabriel Paubert wrote:quoted
10) swtcx. atomic_var, succeeds, but the variable has been modified in the meantime, chaos ensuesHow can this happen? The reservation for the lwarx in 1) has long been broken, so this swtcx. will fail.....
Because the reservation has been set by the interrupt handler. Read the scenario again, it's not the reservation from step 1), it's been cleared twice, it's the stale reservation from an unmatched lwarx from step 6) in a fainled down_trylock() in the interrupt handler. Duh, I should go to bed, there is no step 7) in my mail :-) What I claim is that the stwcx. in transfer_to_handler is useless (but harmless) but we should always clear the reservation before an rfi in case a dangling reservation was left by the handler and the return address of the rfi is between a lwarx and its matching stwcx. Regards, Gabriel. ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/