Hi,
What is exactly the logic of the calls to coherence?
When do we need to call coherence in the kernel?
For example I see this code in bcm/taslock.c
coherence();
l->key = 0;
coherence();
bcm/taslock.c seems actually mostly a copy paste of port/taslock.c
with an extra call to coherence before the assignment above.
Also, in the code of coherence for ARM,
what is the meaning of the instructions ISB and DSB?
The I and D seems to corrrespond to instruction vs data cache,
but I fail to understand the meaning of S and B.