We had reports of users always getting:
IOServiceGetMatchingServices failed, data changed while iterating
The issue seems related to the function getMatchingServices that
returns an always-invalid iterator even if there are no actual services.
This is a workaround for this issue.
This is needed starting with Go 1.21 due to stricter enforcement of rules
about adding methods to existing types, now including C types.
See https://github.com/golang/go/issues/60725 for further details.
Signed-off-by: deadprogram <ron@hybridgroup.com>
We observer errors getting the IOCalloutDevice string, this is a
tentative fix based on the hypotesis that the enumerator is
called too early during the USB enumeration phase.