rio: include handle size in ioctl datalen
Change-Id: I09ba469647051d6644c822add2501bb4a4f803af
diff --git a/src/syscall/mx/mxio/rio/client.go b/src/syscall/mx/mxio/rio/client.go
index 564c751..12fbf10 100644
--- a/src/syscall/mx/mxio/rio/client.go
+++ b/src/syscall/mx/mxio/rio/client.go
@@ -305,6 +305,8 @@
return ro.Handle[:ro.Hcount], nil
}
+const handleSize = uint32(unsafe.Sizeof(mx.Handle(0)))
+
func (r *RemoteIO) IoctlSetHandle(op uint32, in mx.Handle) error {
if mxio.IoctlKind(op) != mxio.IoctlKindSetHandle {
return mx.Error{Status: mx.ErrInvalidArgs, Text: "RemoteIO"}
@@ -313,6 +315,7 @@
msg.SetOp(OpIoctlOneHandle)
msg.Handle[0] = in
msg.Hcount = 1
+ msg.Datalen = handleSize
msg.SetIoctlOp(op)
if _, err := r.txn(&msg); err != nil {
@@ -328,7 +331,6 @@
}
msg.SetOp(OpIoctl)
msg.Datalen = uint32(len(in))
- const handleSize = uint32(unsafe.Sizeof(mx.Handle(0)))
switch mxio.IoctlKind(op) {
case mxio.IoctlKindGetHandle:
msg.Arg = int32(handleSize)