Patches and a test case speak volumes. Any chance ?
First I wanted to be sure that it's as I say, i.e. that I haven't overlooked something. Then I provide a patch and perhaps a simple test case, but it's really random (as sometimes the icache is forced to load new content, sometimes it's not).
Btw I have noticed another bug, documentation says Ssytem( S_FLUSHCACHE, ...) invalidates both caches what is not true, it invalidates only the instruction cache. But I'm not sure if it's a bug in the documentation or in the code :)
--