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.