mem: fix ivshmem freeing
There is no sync between host and guest to allow removal of memzones,
and freeing them result in undefined behavior.
In the guest, we identify IVSHMEM memsegs/memzones by having
ioremap_addr != 0. In the host, nothing is done to the memzone, meaning
ioremap_addr == 0.
As a solution, mark memzones being added to IVSHMEM in the host, by
setting ioremap_addr, then return an error whenever we try to free an
IVSHMEM memzone.
Fixes:
ff909fe21f0 ("mem: introduce memzone freeing")
Signed-off-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>