@@ -148,6 +148,7 @@ static int rpmsg_virtio_enqueue_buffer(struct rpmsg_virtio_device *rvdev,
148148 void * buffer , uint32_t len ,
149149 uint16_t idx )
150150{
151+ int ret ;
151152 BUFFER_FLUSH (buffer , len );
152153
153154 if (VIRTIO_ROLE_IS_DRIVER (rvdev -> vdev )) {
@@ -157,12 +158,17 @@ static int rpmsg_virtio_enqueue_buffer(struct rpmsg_virtio_device *rvdev,
157158 /* Initialize buffer node */
158159 vqbuf .buf = buffer ;
159160 vqbuf .len = len ;
160- return virtqueue_add_buffer (rvdev -> svq , & vqbuf , 1 , 0 , buffer );
161+
162+ ret = virtqueue_add_buffer (rvdev -> svq , & vqbuf , 1 , 0 , buffer );
163+ rpmsg_device_trace_release_tx_buffer (& rvdev -> rdev , buffer );
164+ return ret ;
161165 }
162166
163167 if (VIRTIO_ROLE_IS_DEVICE (rvdev -> vdev )) {
164168 (void )buffer ;
165- return virtqueue_add_consumed_buffer (rvdev -> svq , idx , len );
169+ ret = virtqueue_add_consumed_buffer (rvdev -> svq , idx , len );
170+ rpmsg_device_trace_release_tx_buffer (& rvdev -> rdev , buffer );
171+ return ret ;
166172 }
167173
168174 return 0 ;
@@ -210,6 +216,8 @@ static void *rpmsg_virtio_get_tx_buffer(struct rpmsg_virtio_device *rvdev,
210216 data = virtqueue_get_available_buffer (rvdev -> svq , idx , len );
211217 }
212218
219+ rpmsg_device_trace_get_tx_buffer (& rvdev -> rdev , data );
220+
213221 return data ;
214222}
215223
@@ -482,6 +490,7 @@ static int rpmsg_virtio_release_tx_buffer(struct rpmsg_device *rdev, void *txbuf
482490 */
483491 r_desc -> idx = RPMSG_BUF_INDEX (rp_hdr );
484492 metal_list_add_tail (& rvdev -> reclaimer , & r_desc -> node );
493+ rpmsg_device_trace_release_tx_buffer (& rvdev -> rdev , rp_hdr );
485494 }
486495
487496 metal_mutex_release (& rdev -> lock );
0 commit comments