The following pull request was submitted through Github. It can be accessed and reviewed at: https://github.com/lxc/lxd/pull/8067
This e-mail was sent by the LXC bot, direct replies will not reach the author unless they happen to be subscribed to this list. === Description (from pull-request) ===
From 524c519eefe8a87b6152e152f04e1755fc0d1fcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgra...@ubuntu.com> Date: Tue, 20 Oct 2020 14:35:03 -0400 Subject: [PATCH 1/3] lxd/seccomp: Fix go vet MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber <stgra...@ubuntu.com> --- lxd/seccomp/seccomp.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/seccomp/seccomp.go b/lxd/seccomp/seccomp.go index 3959fab4b4..90be41223e 100644 --- a/lxd/seccomp/seccomp.go +++ b/lxd/seccomp/seccomp.go @@ -2026,7 +2026,7 @@ func (s *Server) MountSyscallShift(c Instance) bool { return false } -var pageSize int = 4096 +var pageSize = 4096 func init() { tmp := unix.Getpagesize() From a4f287312fb03f3b3d58201fa9e7ec568d5e7176 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgra...@ubuntu.com> Date: Tue, 20 Oct 2020 14:57:22 -0400 Subject: [PATCH 2/3] lxd/instance: Add Architecture to common MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber <stgra...@ubuntu.com> --- lxd/instance/drivers/driver_common.go | 6 ++++++ lxd/instance/drivers/driver_lxc.go | 10 ++-------- lxd/instance/drivers/driver_qemu.go | 10 ++-------- lxd/instance/instance_interface.go | 2 +- 4 files changed, 11 insertions(+), 17 deletions(-) diff --git a/lxd/instance/drivers/driver_common.go b/lxd/instance/drivers/driver_common.go index 7f3e9da6dd..05cc85be09 100644 --- a/lxd/instance/drivers/driver_common.go +++ b/lxd/instance/drivers/driver_common.go @@ -11,6 +11,7 @@ import ( // common provides structure common to all instance types. type common struct { dbType instancetype.Type + architecture int devPaths []string expandedConfig map[string]string expandedDevices deviceConfig.Devices @@ -31,6 +32,11 @@ func (c *common) Type() instancetype.Type { return c.dbType } +// Architecture returns the instance's architecture. +func (c *common) Architecture() int { + return c.architecture +} + // ExpandedConfig returns instance's expanded config. func (c *common) ExpandedConfig() map[string]string { return c.expandedConfig diff --git a/lxd/instance/drivers/driver_lxc.go b/lxd/instance/drivers/driver_lxc.go index 81d814e3df..c5b694e0ee 100644 --- a/lxd/instance/drivers/driver_lxc.go +++ b/lxd/instance/drivers/driver_lxc.go @@ -145,6 +145,7 @@ func lxcCreate(s *state.State, args db.InstanceArgs) (instance.Instance, error) c := &lxc{ common: common{ dbType: args.Type, + architecture: args.Architecture, localConfig: args.Config, localDevices: args.Devices, project: args.Project, @@ -156,7 +157,6 @@ func lxcCreate(s *state.State, args db.InstanceArgs) (instance.Instance, error) node: args.Node, description: args.Description, ephemeral: args.Ephemeral, - architecture: args.Architecture, snapshot: args.Snapshot, stateful: args.Stateful, creationDate: args.CreationDate, @@ -403,6 +403,7 @@ func lxcInstantiate(s *state.State, args db.InstanceArgs, expandedDevices device c := &lxc{ common: common{ dbType: args.Type, + architecture: args.Architecture, localConfig: args.Config, localDevices: args.Devices, project: args.Project, @@ -413,7 +414,6 @@ func lxcInstantiate(s *state.State, args db.InstanceArgs, expandedDevices device name: args.Name, description: args.Description, ephemeral: args.Ephemeral, - architecture: args.Architecture, snapshot: args.Snapshot, creationDate: args.CreationDate, lastUsedDate: args.LastUsedDate, @@ -448,7 +448,6 @@ type lxc struct { common // Properties - architecture int snapshot bool creationDate time.Time lastUsedDate time.Time @@ -6638,11 +6637,6 @@ func (c *lxc) IsSnapshot() bool { return c.snapshot } -// Architecture returns architecture of instance. -func (c *lxc) Architecture() int { - return c.architecture -} - // CreationDate returns creation date of instance. func (c *lxc) CreationDate() time.Time { return c.creationDate diff --git a/lxd/instance/drivers/driver_qemu.go b/lxd/instance/drivers/driver_qemu.go index 733a868605..9f433b2112 100644 --- a/lxd/instance/drivers/driver_qemu.go +++ b/lxd/instance/drivers/driver_qemu.go @@ -103,6 +103,7 @@ func qemuInstantiate(s *state.State, args db.InstanceArgs, expandedDevices devic vm := &qemu{ common: common{ dbType: args.Type, + architecture: args.Architecture, localConfig: args.Config, localDevices: args.Devices, project: args.Project, @@ -113,7 +114,6 @@ func qemuInstantiate(s *state.State, args db.InstanceArgs, expandedDevices devic name: args.Name, description: args.Description, ephemeral: args.Ephemeral, - architecture: args.Architecture, snapshot: args.Snapshot, creationDate: args.CreationDate, lastUsedDate: args.LastUsedDate, @@ -155,6 +155,7 @@ func qemuCreate(s *state.State, args db.InstanceArgs) (instance.Instance, error) vm := &qemu{ common: common{ dbType: args.Type, + architecture: args.Architecture, localConfig: args.Config, localDevices: args.Devices, state: s, @@ -166,7 +167,6 @@ func qemuCreate(s *state.State, args db.InstanceArgs) (instance.Instance, error) node: args.Node, description: args.Description, ephemeral: args.Ephemeral, - architecture: args.Architecture, snapshot: args.Snapshot, stateful: args.Stateful, creationDate: args.CreationDate, @@ -312,7 +312,6 @@ type qemu struct { common // Properties. - architecture int snapshot bool creationDate time.Time lastUsedDate time.Time @@ -4367,11 +4366,6 @@ func (vm *qemu) Description() string { return vm.description } -// Architecture returns the instance's architecture. -func (vm *qemu) Architecture() int { - return vm.architecture -} - // CreationDate returns the instance's creation date. func (vm *qemu) CreationDate() time.Time { return vm.creationDate diff --git a/lxd/instance/instance_interface.go b/lxd/instance/instance_interface.go index e49458bd86..a19cdccba8 100644 --- a/lxd/instance/instance_interface.go +++ b/lxd/instance/instance_interface.go @@ -35,6 +35,7 @@ const ( type ConfigReader interface { Project() string Type() instancetype.Type + Architecture() int ExpandedConfig() map[string]string ExpandedDevices() deviceConfig.Devices LocalConfig() map[string]string @@ -105,7 +106,6 @@ type Instance interface { Location() string Name() string Description() string - Architecture() int CreationDate() time.Time LastUsedDate() time.Time From fce5ee2821b109a013c91fe8b2a64c6b89c92d72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgra...@ubuntu.com> Date: Tue, 20 Oct 2020 14:57:50 -0400 Subject: [PATCH 3/3] lxd/devices: Disable USB on s390x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber <stgra...@ubuntu.com> --- lxd/device/usb.go | 5 +++++ lxd/instance/drivers/driver_qemu.go | 21 ++++++++++++--------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/lxd/device/usb.go b/lxd/device/usb.go index 4c6efea101..e668acf278 100644 --- a/lxd/device/usb.go +++ b/lxd/device/usb.go @@ -11,6 +11,7 @@ import ( "github.com/lxc/lxd/lxd/instance" "github.com/lxc/lxd/lxd/instance/instancetype" "github.com/lxc/lxd/shared" + "github.com/lxc/lxd/shared/osarch" "github.com/lxc/lxd/shared/validate" ) @@ -49,6 +50,10 @@ func (d *usb) validateConfig(instConf instance.ConfigReader) error { return ErrUnsupportedDevType } + if instConf.Architecture() == osarch.ARCH_64BIT_S390_BIG_ENDIAN { + return fmt.Errorf("USB devices aren't supported on s390x") + } + rules := map[string]func(string) error{ "vendorid": validate.Optional(validate.IsDeviceID), "productid": validate.Optional(validate.IsDeviceID), diff --git a/lxd/instance/drivers/driver_qemu.go b/lxd/instance/drivers/driver_qemu.go index 9f433b2112..b1932e5fad 100644 --- a/lxd/instance/drivers/driver_qemu.go +++ b/lxd/instance/drivers/driver_qemu.go @@ -1755,15 +1755,18 @@ func (vm *qemu) generateQemuConfigFile(busName string, devConfs []*deviceConfig. return "", err } - devBus, devAddr, multi = bus.allocate(busFunctionGroupGeneric) - err = qemuUSB.Execute(sb, map[string]interface{}{ - "bus": bus.name, - "devBus": devBus, - "devAddr": devAddr, - "multifunction": multi, - }) - if err != nil { - return "", err + // s390x doesn't really have USB. + if vm.architecture != osarch.ARCH_64BIT_S390_BIG_ENDIAN { + devBus, devAddr, multi = bus.allocate(busFunctionGroupGeneric) + err = qemuUSB.Execute(sb, map[string]interface{}{ + "bus": bus.name, + "devBus": devBus, + "devAddr": devAddr, + "multifunction": multi, + }) + if err != nil { + return "", err + } } devBus, devAddr, multi = bus.allocate(busFunctionGroupNone)
_______________________________________________ lxc-devel mailing list lxc-devel@lists.linuxcontainers.org http://lists.linuxcontainers.org/listinfo/lxc-devel