This took a while because I had other distractions and I spent some time studying how all this vmstate code works, and that itself got to be a distraction.
I'm not 100% sure what I have done is right. Maybe there is a way to do a backwards migration for KCS, but I'm not sure how. Changes from v1: * Validate the data values in a pre_load functions. * For KCS, instead of an old function, create a separate vmstate structure for the new version. The name on the old vmstate structure wasn't specific enough, so a new name was needed, The old structure is set up to never be sent, but it can be received.