I think I know why we're catching VCE exceptions even though we try to
avoid them at any price - the reason spells ``empty_zero_page''. This
page is filled with zeros and is being mapped to arbitrary addresses
at the same time. Arbitrary addresses means also bits 14:12 of the
virtual address may be different, welcome VCED. This also means that
at least sane code should never cause VCEI exceptions. The text of
the panic message ``should not happend'' is therefore wrong as well ...
Whatever, the fact that the hardware causes VCE exceptions which don't
help us at all forces us to handle them somehow. How handy, they'll
fit quite well in the revamped interface for board caches :-)
Another way to finally eleminate the virtual coherency problem from
KSEG0's landscape would be to actually use 8 pages as an array of
empty_zero_pages, so we would be able to map one wherever we want
such that we never run into virtual coherency trouble.