Explorar el Código

dev/portal: fix bug in portal callback forwarding

When forwarding rx/tx callback from the underlaying device(pipe), the
"dev" argument should be the portal. So the portal callback could think
itself as called.
Grissiom hace 12 años
padre
commit
246bdde8de
Se han modificado 1 ficheros con 4 adiciones y 2 borrados
  1. 4 2
      components/drivers/src/portal.c

+ 4 - 2
components/drivers/src/portal.c

@@ -116,7 +116,8 @@ static rt_err_t _portal_rx_indicate(rt_device_t dev, rt_size_t size)
     pipe = (struct rt_pipe_device*)dev;
 
     if (pipe->read_portal->parent.rx_indicate)
-        return pipe->read_portal->parent.rx_indicate(dev, size);
+        return pipe->read_portal->parent.rx_indicate(
+                (rt_device_t)pipe->read_portal, size);
 
     return -RT_ENOSYS;
 }
@@ -130,7 +131,8 @@ static rt_err_t _portal_tx_complete(rt_device_t dev, void *buf)
     pipe = (struct rt_pipe_device*)dev;
 
     if (pipe->write_portal->parent.tx_complete)
-        return pipe->write_portal->parent.tx_complete(dev, buf);
+        return pipe->write_portal->parent.tx_complete(
+                (rt_device_t)pipe->write_portal, buf);
 
     return -RT_ENOSYS;
 }