diff --git a/internal/usbgadget/changeset_resolver.go b/internal/usbgadget/changeset_resolver.go index 9369daf..3dfffa3 100644 --- a/internal/usbgadget/changeset_resolver.go +++ b/internal/usbgadget/changeset_resolver.go @@ -48,6 +48,11 @@ func (c *ChangeSetResolver) doResolveChanges(initial bool) error { for _, key := range c.orderedChanges { change := c.changesMap[key.(string)] + if change == nil { + c.l.Error().Str("key", key.(string)).Msg("fileChange not found") + continue + } + if !initial { change.ResetActionResolution() } diff --git a/internal/usbgadget/config.go b/internal/usbgadget/config.go index bdc1849..e2959f3 100644 --- a/internal/usbgadget/config.go +++ b/internal/usbgadget/config.go @@ -177,12 +177,7 @@ func (u *UsbGadget) Init() error { u.udc = udcs[0] - err := u.WithTransaction(func() error { - u.tx.MountConfigFS() - u.tx.CreateConfigPath() - u.tx.WriteGadgetConfig() - return nil - }) + err := u.configureUsbGadget() if err != nil { return u.logError("unable to initialize USB stack", err) } @@ -196,13 +191,19 @@ func (u *UsbGadget) UpdateGadgetConfig() error { u.loadGadgetConfig() - err := u.WithTransaction(func() error { - u.tx.WriteGadgetConfig() - return nil - }) + err := u.configureUsbGadget() if err != nil { return u.logError("unable to update gadget config", err) } return nil } + +func (u *UsbGadget) configureUsbGadget() error { + return u.WithTransaction(func() error { + u.tx.MountConfigFS() + u.tx.CreateConfigPath() + u.tx.WriteGadgetConfig() + return nil + }) +}