Cool.
I'd guess that the entire cache line gets invalidate as I can't see how the HW logic of the design could do it on a byte by byte basis.
I don't know (any maybe that is what you are asking), if another part of that block is dirty (modified data that hasn't been written back out yet), will it get written back out to RAM before the entire line is invalidated??
But, my guess is, assuming the D cache was set up as write-through, that wouldn't matter.
Meaning, you should see no bad effects of doing what you are doing....which is why it's done that way in the Linux kernel.