On Fri, Dec 09, 2016 at 01:12:34AM +0800, Peng Tao wrote: > To allow canceling all packets of a connection. > > Reviewed-by: Stefan Hajnoczi <stefanha@xxxxxxxxxx> > Signed-off-by: Peng Tao <bergwolf@xxxxxxxxx> > --- > drivers/vhost/vsock.c | 41 +++++++++++++++++++++++++++++++++++++++++ > include/net/af_vsock.h | 3 +++ > 2 files changed, 44 insertions(+) > > diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c > index a504e2e0..db64d51 100644 > --- a/drivers/vhost/vsock.c > +++ b/drivers/vhost/vsock.c > @@ -218,6 +218,46 @@ vhost_transport_send_pkt(struct virtio_vsock_pkt *pkt) > return len; > } > > +static int > +vhost_transport_cancel_pkt(struct vsock_sock *vsk) > +{ > + struct vhost_vsock *vsock; > + struct virtio_vsock_pkt *pkt, *n; > + int cnt = 0; > + LIST_HEAD(freeme); > + > + /* Find the vhost_vsock according to guest context id */ > + vsock = vhost_vsock_get(vsk->remote_addr.svm_cid); > + if (!vsock) > + return -ENODEV; > + > + spin_lock_bh(&vsock->send_pkt_list_lock); > + list_for_each_entry_safe(pkt, n, &vsock->send_pkt_list, list) { > + if (pkt->cancel_token != (void *)vsk) It's not necessary to cast to void* in C. All pointers cast to void* automatically without compiler warnings. The warnings and explicit casts are a C++ thing.
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization