Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
There were quite a few overlapping sets of changes here. Daniel's bug fix for off-by-ones in the new BPF branch instructions, along with the added allowances for "data_end > ptr + x" forms collided with the metadata additions. Along with those three changes came veritifer test cases, which in their final form I tried to group together properly. If I had just trimmed GIT's conflict tags as-is, this would have split up the meta tests unnecessarily. In the socketmap code, a set of preemption disabling changes overlapped with the rename of bpf_compute_data_end() to bpf_compute_data_pointers(). Changes were made to the mv88e6060.c driver set addr method which got removed in net-next. The hyperv transport socket layer had a locking change in 'net' which overlapped with a change of socket state macro usage in 'net-next'. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -310,11 +310,15 @@ static void hvs_close_connection(struct vmbus_channel *chan)
|
||||
struct sock *sk = get_per_channel_state(chan);
|
||||
struct vsock_sock *vsk = vsock_sk(sk);
|
||||
|
||||
lock_sock(sk);
|
||||
|
||||
sk->sk_state = TCP_CLOSE;
|
||||
sock_set_flag(sk, SOCK_DONE);
|
||||
vsk->peer_shutdown |= SEND_SHUTDOWN | RCV_SHUTDOWN;
|
||||
|
||||
sk->sk_state_change(sk);
|
||||
|
||||
release_sock(sk);
|
||||
}
|
||||
|
||||
static void hvs_open_connection(struct vmbus_channel *chan)
|
||||
@@ -344,6 +348,7 @@ static void hvs_open_connection(struct vmbus_channel *chan)
|
||||
if (!sk)
|
||||
return;
|
||||
|
||||
lock_sock(sk);
|
||||
if ((conn_from_host && sk->sk_state != TCP_LISTEN) ||
|
||||
(!conn_from_host && sk->sk_state != TCP_SYN_SENT))
|
||||
goto out;
|
||||
@@ -395,9 +400,7 @@ static void hvs_open_connection(struct vmbus_channel *chan)
|
||||
|
||||
vsock_insert_connected(vnew);
|
||||
|
||||
lock_sock(sk);
|
||||
vsock_enqueue_accept(sk, new);
|
||||
release_sock(sk);
|
||||
} else {
|
||||
sk->sk_state = TCP_ESTABLISHED;
|
||||
sk->sk_socket->state = SS_CONNECTED;
|
||||
@@ -410,6 +413,8 @@ static void hvs_open_connection(struct vmbus_channel *chan)
|
||||
out:
|
||||
/* Release refcnt obtained when we called vsock_find_bound_socket() */
|
||||
sock_put(sk);
|
||||
|
||||
release_sock(sk);
|
||||
}
|
||||
|
||||
static u32 hvs_get_local_cid(void)
|
||||
@@ -476,13 +481,21 @@ out:
|
||||
|
||||
static void hvs_release(struct vsock_sock *vsk)
|
||||
{
|
||||
struct sock *sk = sk_vsock(vsk);
|
||||
struct hvsock *hvs = vsk->trans;
|
||||
struct vmbus_channel *chan = hvs->chan;
|
||||
struct vmbus_channel *chan;
|
||||
|
||||
lock_sock(sk);
|
||||
|
||||
sk->sk_state = SS_DISCONNECTING;
|
||||
vsock_remove_sock(vsk);
|
||||
|
||||
release_sock(sk);
|
||||
|
||||
chan = hvs->chan;
|
||||
if (chan)
|
||||
hvs_shutdown(vsk, RCV_SHUTDOWN | SEND_SHUTDOWN);
|
||||
|
||||
vsock_remove_sock(vsk);
|
||||
}
|
||||
|
||||
static void hvs_destruct(struct vsock_sock *vsk)
|
||||
|
Reference in New Issue
Block a user