Loading drivers/vhost/net.c +5 −4 Original line number Original line Diff line number Diff line Loading @@ -128,8 +128,7 @@ static void handle_tx(struct vhost_net *net) size_t hdr_size; size_t hdr_size; struct socket *sock; struct socket *sock; /* TODO: check that we are running from vhost_worker? /* TODO: check that we are running from vhost_worker? */ * Not sure it's worth it, it's straight-forward enough. */ sock = rcu_dereference_check(vq->private_data, 1); sock = rcu_dereference_check(vq->private_data, 1); if (!sock) if (!sock) return; return; Loading Loading @@ -306,7 +305,8 @@ static void handle_rx_big(struct vhost_net *net) size_t len, total_len = 0; size_t len, total_len = 0; int err; int err; size_t hdr_size; size_t hdr_size; struct socket *sock = rcu_dereference(vq->private_data); /* TODO: check that we are running from vhost_worker? */ struct socket *sock = rcu_dereference_check(vq->private_data, 1); if (!sock || skb_queue_empty(&sock->sk->sk_receive_queue)) if (!sock || skb_queue_empty(&sock->sk->sk_receive_queue)) return; return; Loading Loading @@ -415,7 +415,8 @@ static void handle_rx_mergeable(struct vhost_net *net) int err, headcount; int err, headcount; size_t vhost_hlen, sock_hlen; size_t vhost_hlen, sock_hlen; size_t vhost_len, sock_len; size_t vhost_len, sock_len; struct socket *sock = rcu_dereference(vq->private_data); /* TODO: check that we are running from vhost_worker? */ struct socket *sock = rcu_dereference_check(vq->private_data, 1); if (!sock || skb_queue_empty(&sock->sk->sk_receive_queue)) if (!sock || skb_queue_empty(&sock->sk->sk_receive_queue)) return; return; Loading drivers/vhost/vhost.h +3 −3 Original line number Original line Diff line number Diff line Loading @@ -173,9 +173,9 @@ static inline int vhost_has_feature(struct vhost_dev *dev, int bit) { { unsigned acked_features; unsigned acked_features; acked_features = /* TODO: check that we are running from vhost_worker or dev mutex is rcu_dereference_index_check(dev->acked_features, * held? */ lockdep_is_held(&dev->mutex)); acked_features = rcu_dereference_index_check(dev->acked_features, 1); return acked_features & (1 << bit); return acked_features & (1 << bit); } } Loading Loading
drivers/vhost/net.c +5 −4 Original line number Original line Diff line number Diff line Loading @@ -128,8 +128,7 @@ static void handle_tx(struct vhost_net *net) size_t hdr_size; size_t hdr_size; struct socket *sock; struct socket *sock; /* TODO: check that we are running from vhost_worker? /* TODO: check that we are running from vhost_worker? */ * Not sure it's worth it, it's straight-forward enough. */ sock = rcu_dereference_check(vq->private_data, 1); sock = rcu_dereference_check(vq->private_data, 1); if (!sock) if (!sock) return; return; Loading Loading @@ -306,7 +305,8 @@ static void handle_rx_big(struct vhost_net *net) size_t len, total_len = 0; size_t len, total_len = 0; int err; int err; size_t hdr_size; size_t hdr_size; struct socket *sock = rcu_dereference(vq->private_data); /* TODO: check that we are running from vhost_worker? */ struct socket *sock = rcu_dereference_check(vq->private_data, 1); if (!sock || skb_queue_empty(&sock->sk->sk_receive_queue)) if (!sock || skb_queue_empty(&sock->sk->sk_receive_queue)) return; return; Loading Loading @@ -415,7 +415,8 @@ static void handle_rx_mergeable(struct vhost_net *net) int err, headcount; int err, headcount; size_t vhost_hlen, sock_hlen; size_t vhost_hlen, sock_hlen; size_t vhost_len, sock_len; size_t vhost_len, sock_len; struct socket *sock = rcu_dereference(vq->private_data); /* TODO: check that we are running from vhost_worker? */ struct socket *sock = rcu_dereference_check(vq->private_data, 1); if (!sock || skb_queue_empty(&sock->sk->sk_receive_queue)) if (!sock || skb_queue_empty(&sock->sk->sk_receive_queue)) return; return; Loading
drivers/vhost/vhost.h +3 −3 Original line number Original line Diff line number Diff line Loading @@ -173,9 +173,9 @@ static inline int vhost_has_feature(struct vhost_dev *dev, int bit) { { unsigned acked_features; unsigned acked_features; acked_features = /* TODO: check that we are running from vhost_worker or dev mutex is rcu_dereference_index_check(dev->acked_features, * held? */ lockdep_is_held(&dev->mutex)); acked_features = rcu_dereference_index_check(dev->acked_features, 1); return acked_features & (1 << bit); return acked_features & (1 << bit); } } Loading