Merge branch 'vhost-net-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mst...
authorDavid S. Miller <davem@davemloft.net>
Tue, 14 Dec 2010 19:33:23 +0000 (11:33 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 14 Dec 2010 19:33:23 +0000 (11:33 -0800)
1  2 
drivers/vhost/net.c

diff --combined drivers/vhost/net.c
@@@ -10,7 -10,6 +10,6 @@@
  #include <linux/eventfd.h>
  #include <linux/vhost.h>
  #include <linux/virtio_net.h>
- #include <linux/mmu_context.h>
  #include <linux/miscdevice.h>
  #include <linux/module.h>
  #include <linux/mutex.h>
@@@ -129,9 -128,8 +128,9 @@@ static void handle_tx(struct vhost_net 
        size_t hdr_size;
        struct socket *sock;
  
 -      sock = rcu_dereference_check(vq->private_data,
 -                                   lockdep_is_held(&vq->mutex));
 +      /* 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);
        if (!sock)
                return;
  
                return;
        }
  
-       use_mm(net->dev.mm);
        mutex_lock(&vq->mutex);
        vhost_disable_notify(vq);
  
        }
  
        mutex_unlock(&vq->mutex);
-       unuse_mm(net->dev.mm);
  }
  
  static int peek_head_len(struct sock *sk)
@@@ -313,7 -309,6 +310,6 @@@ static void handle_rx_big(struct vhost_
        if (!sock || skb_queue_empty(&sock->sk->sk_receive_queue))
                return;
  
-       use_mm(net->dev.mm);
        mutex_lock(&vq->mutex);
        vhost_disable_notify(vq);
        hdr_size = vq->vhost_hlen;
        }
  
        mutex_unlock(&vq->mutex);
-       unuse_mm(net->dev.mm);
  }
  
  /* Expects to be always run from workqueue - which acts as
@@@ -424,7 -418,6 +419,6 @@@ static void handle_rx_mergeable(struct 
        if (!sock || skb_queue_empty(&sock->sk->sk_receive_queue))
                return;
  
-       use_mm(net->dev.mm);
        mutex_lock(&vq->mutex);
        vhost_disable_notify(vq);
        vhost_hlen = vq->vhost_hlen;
                        move_iovec_hdr(vq->iov, vq->hdr, vhost_hlen, in);
                else
                        /* Copy the header for use in VIRTIO_NET_F_MRG_RXBUF:
-                        * needed because sendmsg can modify msg_iov. */
+                        * needed because recvmsg can modify msg_iov. */
                        copy_iovec_hdr(vq->iov, vq->hdr, sock_hlen, in);
                msg.msg_iovlen = in;
                err = sock->ops->recvmsg(NULL, sock, &msg,
        }
  
        mutex_unlock(&vq->mutex);
-       unuse_mm(net->dev.mm);
  }
  
  static void handle_rx(struct vhost_net *net)