The following pull request was submitted through Github. It can be accessed and reviewed at: https://github.com/lxc/lxd/pull/6836
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) === For example: ACTION=add EVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/0003:093A:2510.0003/input/input20 SUBSYSTEM=input RODUCT=3/93a/2510/111 NAME="PixArt USB Optical Mouse" PHYS="usb-0000:00:14.0-1/input0" UNIQ="" PROP=0 EV=17 KEY=70000 0 0 0 0 REL=903 MSC=10 MODALIAS=input:b0003v093Ap2510e0111-e0,1,2,4,k110,111,112,r0,1,8,B,am4,lsfw SEQNUM=38896 USEC_INITIALIZED=64404346109 ID_INPUT=1 ID_INPUT_MOUSE=1 ID_VENDOR=PixArt ID_VENDOR_ENC=PixArt ID_VENDOR_ID=093a ID_MODEL=USB_Optical_Mouse ID_MODEL_ENC=USB\x20Optical\x20Mouse ID_MODEL_ID=2510 ID_REVISION=0100 ID_SERIAL=PixArt_USB_Optical_Mouse ID_TYPE=hid ID_BUS=usb ID_USB_INTERFACES=:030102: ID_USB_INTERFACE_NUM=00 ID_USB_DRIVER=usbhid .INPUT_CLASS=mouse ID_PATH=pci-0000:00:14.0-usb-0:1:1.0 ID_PATH_TAG=pci-0000_00_14_0-usb-0_1_1_0 TAGS=:seat: ID_FOR_SEAT=input-pci-0000_00_14_0-usb-0_1_1_0 Signed-off-by: Christian Brauner <christian.brau...@ubuntu.com>
From db89ce45a0bd43bc7245b2ee750c3b06645a7f2c Mon Sep 17 00:00:00 2001 From: Christian Brauner <christian.brau...@ubuntu.com> Date: Wed, 5 Feb 2020 11:46:28 +0100 Subject: [PATCH] unix hotplug: skip devices without associated devpath or major/minor For example: ACTION=add EVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/0003:093A:2510.0003/input/input20 SUBSYSTEM=input RODUCT=3/93a/2510/111 NAME="PixArt USB Optical Mouse" PHYS="usb-0000:00:14.0-1/input0" UNIQ="" PROP=0 EV=17 KEY=70000 0 0 0 0 REL=903 MSC=10 MODALIAS=input:b0003v093Ap2510e0111-e0,1,2,4,k110,111,112,r0,1,8,B,am4,lsfw SEQNUM=38896 USEC_INITIALIZED=64404346109 ID_INPUT=1 ID_INPUT_MOUSE=1 ID_VENDOR=PixArt ID_VENDOR_ENC=PixArt ID_VENDOR_ID=093a ID_MODEL=USB_Optical_Mouse ID_MODEL_ENC=USB\x20Optical\x20Mouse ID_MODEL_ID=2510 ID_REVISION=0100 ID_SERIAL=PixArt_USB_Optical_Mouse ID_TYPE=hid ID_BUS=usb ID_USB_INTERFACES=:030102: ID_USB_INTERFACE_NUM=00 ID_USB_DRIVER=usbhid .INPUT_CLASS=mouse ID_PATH=pci-0000:00:14.0-usb-0:1:1.0 ID_PATH_TAG=pci-0000_00_14_0-usb-0_1_1_0 TAGS=:seat: ID_FOR_SEAT=input-pci-0000_00_14_0-usb-0_1_1_0 Signed-off-by: Christian Brauner <christian.brau...@ubuntu.com> --- lxd/device/unix_hotplug.go | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/lxd/device/unix_hotplug.go b/lxd/device/unix_hotplug.go index 628b580077..2c02a3a2c7 100644 --- a/lxd/device/unix_hotplug.go +++ b/lxd/device/unix_hotplug.go @@ -4,7 +4,6 @@ package device import ( "fmt" - "strconv" "strings" udev "github.com/farjump/go-libudev" @@ -138,18 +137,12 @@ func (d *unixHotplug) Start() (*deviceConfig.RunConfig, error) { return &runConf, nil } - i, err := strconv.ParseUint(device.PropertyValue("MAJOR"), 10, 32) - if err != nil { - return nil, err - } - major := uint32(i) - j, err := strconv.ParseUint(device.PropertyValue("MINOR"), 10, 32) - if err != nil { - return nil, err - } - minor := uint32(j) + devnum := device.Devnum() + major := uint32(devnum.Major()) + minor := uint32(devnum.Minor()) // setup device + var err error if device.Subsystem() == "block" { err = unixDeviceSetupBlockNum(d.state, d.inst.DevicesPath(), "unix", d.name, d.config, major, minor, device.Devnode(), false, &runConf) } else { @@ -203,10 +196,21 @@ func (d *unixHotplug) loadUnixDevice() *udev.Device { e.AddMatchProperty("ID_MODEL_ID", d.config["productid"]) } e.AddMatchIsInitialized() + devices, _ := e.Devices() var device *udev.Device for i := range devices { device = devices[i] + + devnum := device.Devnum() + if devnum.Major() == 0 || devnum.Minor() == 0 { + continue + } + + if device.Devnode() == "" { + continue + } + if !strings.HasPrefix(device.Subsystem(), "usb") { return device }
_______________________________________________ lxc-devel mailing list lxc-devel@lists.linuxcontainers.org http://lists.linuxcontainers.org/listinfo/lxc-devel