diff options
| author | Grissiom <[email protected]> | 2013-08-22 16:43:06 +0800 |
|---|---|---|
| committer | Grissiom <[email protected]> | 2013-08-22 16:43:06 +0800 |
| commit | 246bdde8de4167065b4a52530a9c7be85c189dd8 (patch) | |
| tree | b46fcf3ed4f7d49034cbb55ed4b9c1c314c6c058 /components/drivers | |
| parent | 824261d3bc8467f6220061f43d22321f1ce50bc3 (diff) | |
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.
Diffstat (limited to 'components/drivers')
| -rw-r--r-- | components/drivers/src/portal.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/components/drivers/src/portal.c b/components/drivers/src/portal.c index 26977a8259..779812e9ca 100644 --- a/components/drivers/src/portal.c +++ b/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; } |
