mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-19 02:37:24 +08:00
fix(host): hot add usb device
This commit is contained in:
@@ -995,7 +995,7 @@ func (t *SGuestIsolatedDeviceSyncTask) addDevice(dev *desc.SGuestIsolatedDevice)
|
||||
}
|
||||
}
|
||||
|
||||
opts, err := devObj.GetHotPlugOptions(dev)
|
||||
opts, err := devObj.GetHotPlugOptions(dev, t.guest.Desc)
|
||||
if err != nil {
|
||||
cb(errors.Wrap(err, "GetHotPlugOptions").Error())
|
||||
return
|
||||
|
||||
@@ -99,7 +99,7 @@ type IDevice interface {
|
||||
GetMdevId() string
|
||||
GetNVIDIAVgpuProfile() map[string]string
|
||||
|
||||
GetHotPlugOptions(isolatedDev *desc.SGuestIsolatedDevice) ([]*HotPlugOption, error)
|
||||
GetHotPlugOptions(isolatedDev *desc.SGuestIsolatedDevice, guestDesc *desc.SGuestDesc) ([]*HotPlugOption, error)
|
||||
GetHotUnplugOptions(isolatedDev *desc.SGuestIsolatedDevice) ([]*HotUnplugOption, error)
|
||||
|
||||
// Get extra PCIE information
|
||||
@@ -639,7 +639,7 @@ func (dev *sBaseDevice) CustomProbe(idx int) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (dev *sBaseDevice) GetHotPlugOptions(isolatedDev *desc.SGuestIsolatedDevice) ([]*HotPlugOption, error) {
|
||||
func (dev *sBaseDevice) GetHotPlugOptions(isolatedDev *desc.SGuestIsolatedDevice, guestDesc *desc.SGuestDesc) ([]*HotPlugOption, error) {
|
||||
ret := make([]*HotPlugOption, 0)
|
||||
|
||||
var masterDevOpt *HotPlugOption
|
||||
|
||||
@@ -160,7 +160,7 @@ func (dev *sNVIDIAVgpuDevice) GetQemuId() string {
|
||||
return "dev_" + dev.mdevId
|
||||
}
|
||||
|
||||
func (dev *sNVIDIAVgpuDevice) GetHotPlugOptions(isolatedDev *desc.SGuestIsolatedDevice) ([]*HotPlugOption, error) {
|
||||
func (dev *sNVIDIAVgpuDevice) GetHotPlugOptions(isolatedDev *desc.SGuestIsolatedDevice, guestDesc *desc.SGuestDesc) ([]*HotPlugOption, error) {
|
||||
ret := make([]*HotPlugOption, 0)
|
||||
|
||||
var masterDevOpt *HotPlugOption
|
||||
|
||||
@@ -121,11 +121,13 @@ func (dev *sUSBDevice) GetPassthroughCmd(index int) string {
|
||||
return opt
|
||||
}
|
||||
|
||||
func (dev *sUSBDevice) GetHotPlugOptions(*desc.SGuestIsolatedDevice) ([]*HotPlugOption, error) {
|
||||
func (dev *sUSBDevice) GetHotPlugOptions(isolatedDev *desc.SGuestIsolatedDevice, guestDesc *desc.SGuestDesc) ([]*HotPlugOption, error) {
|
||||
opts, err := GetUSBDevQemuOptions(dev.dev.GetVendorDeviceId(), dev.dev.Addr)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "GetUSBDevQemuOptions")
|
||||
}
|
||||
opts["id"] = isolatedDev.Usb.Id
|
||||
opts["bus"] = fmt.Sprintf("%s.0", guestDesc.Usb.Id)
|
||||
return []*HotPlugOption{
|
||||
{
|
||||
Device: "usb-host",
|
||||
|
||||
Reference in New Issue
Block a user