From a0e09df1df6ce203cc46bd0da7691300948bee4b Mon Sep 17 00:00:00 2001 From: Alice Frosi Date: Mon, 26 Aug 2019 14:21:13 +0200 Subject: [PATCH] s390x: add appendVSock with devno Reimplementation of appendVSock in order to assign the devno to the vsock device. Fixes: #2033 Signed-off-by: Alice Frosi --- virtcontainers/qemu_s390x.go | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/virtcontainers/qemu_s390x.go b/virtcontainers/qemu_s390x.go index 25350a46ff..8c9dc8ff18 100644 --- a/virtcontainers/qemu_s390x.go +++ b/virtcontainers/qemu_s390x.go @@ -7,11 +7,10 @@ package virtcontainers import ( "fmt" - "time" - govmmQemu "github.com/intel/govmm/qemu" "github.com/kata-containers/runtime/virtcontainers/device/config" "github.com/kata-containers/runtime/virtcontainers/types" + "time" ) type qemuS390x struct { @@ -257,3 +256,28 @@ func (q *qemuS390x) appendSCSIController(devices []govmmQemu.Device, enableIOThr devices = append(devices, d) return devices, t } + +func (q *qemuS390x) appendVSock(devices []govmmQemu.Device, vsock kataVSOCK) ([]govmmQemu.Device, error) { + var devno string + id := fmt.Sprintf("vsock-%d", vsock.contextID) + addr, b, err := q.addDeviceToBridge(id, types.CCW) + if err != nil { + return devices, fmt.Errorf("Failed to append VSock: %v", err) + } + devno, err = b.AddressFormatCCW(addr) + if err != nil { + return devices, fmt.Errorf("Failed to append VSock: %v", err) + } + devices = append(devices, + govmmQemu.VSOCKDevice{ + ID: id, + ContextID: vsock.contextID, + VHostFD: vsock.vhostFd, + DisableModern: false, + DevNo: devno, + }, + ) + + return devices, nil + +}