From 145a43d68887bb94ebead9615b7176f5dae36e7e Mon Sep 17 00:00:00 2001 From: scpcom Date: Fri, 10 Oct 2025 20:56:42 +0200 Subject: [PATCH 1/2] server: hid: lock before reset --- server/service/hid/reset.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server/service/hid/reset.go b/server/service/hid/reset.go index c9b883e..4cdbffa 100644 --- a/server/service/hid/reset.go +++ b/server/service/hid/reset.go @@ -12,6 +12,14 @@ import ( func (s *Service) Reset(c *gin.Context) { var rsp proto.Response + h := GetHid() + h.Lock() + h.CloseNoLock() + defer func() { + h.OpenNoLock() + h.Unlock() + }() + // reset USB f, err := os.OpenFile("/sys/kernel/config/usb_gadget/g0/UDC", os.O_WRONLY, 0644) if err != nil { From 81a6e5d152ab0ecb3522a2a975aabf253b383d05 Mon Sep 17 00:00:00 2001 From: scpcom Date: Fri, 10 Oct 2025 21:00:54 +0200 Subject: [PATCH 2/2] server: storage: mount: lock hid --- server/service/storage/image.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/server/service/storage/image.go b/server/service/storage/image.go index 63360ed..35eff32 100644 --- a/server/service/storage/image.go +++ b/server/service/storage/image.go @@ -12,6 +12,7 @@ import ( log "github.com/sirupsen/logrus" "NanoKVM-Server/proto" + "NanoKVM-Server/service/hid" ) const ( @@ -103,6 +104,14 @@ func (s *Service) MountImage(c *gin.Context) { return } + h := hid.GetHid() + h.Lock() + h.CloseNoLock() + defer func() { + h.OpenNoLock() + h.Unlock() + }() + // reset usb commands := []string{ "echo > /sys/kernel/config/usb_gadget/g0/UDC",