qemu: change of ContextID from uint32 to uint64

The correct type used by qemu and in kernel is uint64 and this leads to
an endianess problem with ioctl system call. See the issue
https://github.com/kata-containers/runtime/issues/947

Fixes: #70

Signed-off-by: Alice Frosi <afrosi@de.ibm.com>
This commit is contained in:
Alice Frosi 2018-11-29 13:07:54 +01:00
parent 60a5f7ca7f
commit 3becff5f4e

View File

@ -1014,7 +1014,7 @@ func (bridgeDev BridgeDevice) QemuParams(config *Config) []string {
type VSOCKDevice struct {
ID string
ContextID uint32
ContextID uint64
// VHostFD vhost file descriptor that holds the ContextID
VHostFD *os.File
@ -1028,7 +1028,10 @@ type VSOCKDevice struct {
const (
// MinimalGuestCID is the smallest valid context ID for a guest.
MinimalGuestCID uint32 = 3
MinimalGuestCID uint64 = 3
// MaxGuestCID is the largest valid context ID for a guest.
MaxGuestCID uint64 = 1<<32 - 1
)
const (
@ -1038,7 +1041,7 @@ const (
// Valid returns true if the VSOCKDevice structure is valid and complete.
func (vsock VSOCKDevice) Valid() bool {
if vsock.ID == "" || vsock.ContextID < MinimalGuestCID {
if vsock.ID == "" || vsock.ContextID < MinimalGuestCID || vsock.ContextID > MaxGuestCID {
return false
}