mirror of
https://github.com/torvalds/linux.git
synced 2024-12-26 04:42:12 +00:00
net: Eliminate no_check from protosw
It doesn't seem like an protocols are setting anything other than the default, and allowing to arbitrarily disable checksums for a whole protocol seems dangerous. This can be done on a per socket basis. Signed-off-by: Tom Herbert <therbert@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0f8066bd48
commit
b26ba202e0
@ -86,7 +86,6 @@ struct inet_protosw {
|
||||
struct proto *prot;
|
||||
const struct proto_ops *ops;
|
||||
|
||||
char no_check; /* checksum on rcv/xmit/none? */
|
||||
unsigned char flags; /* See INET_PROTOSW_* below. */
|
||||
};
|
||||
#define INET_PROTOSW_REUSE 0x01 /* Are ports automatically reusable? */
|
||||
|
@ -1024,7 +1024,6 @@ static struct inet_protosw dccp_v4_protosw = {
|
||||
.protocol = IPPROTO_DCCP,
|
||||
.prot = &dccp_v4_prot,
|
||||
.ops = &inet_dccp_ops,
|
||||
.no_check = 0,
|
||||
.flags = INET_PROTOSW_ICSK,
|
||||
};
|
||||
|
||||
|
@ -254,7 +254,6 @@ static int inet_create(struct net *net, struct socket *sock, int protocol,
|
||||
struct inet_sock *inet;
|
||||
struct proto *answer_prot;
|
||||
unsigned char answer_flags;
|
||||
char answer_no_check;
|
||||
int try_loading_module = 0;
|
||||
int err;
|
||||
|
||||
@ -312,7 +311,6 @@ lookup_protocol:
|
||||
|
||||
sock->ops = answer->ops;
|
||||
answer_prot = answer->prot;
|
||||
answer_no_check = answer->no_check;
|
||||
answer_flags = answer->flags;
|
||||
rcu_read_unlock();
|
||||
|
||||
@ -324,7 +322,6 @@ lookup_protocol:
|
||||
goto out;
|
||||
|
||||
err = 0;
|
||||
sk->sk_no_check = answer_no_check;
|
||||
if (INET_PROTOSW_REUSE & answer_flags)
|
||||
sk->sk_reuse = SK_CAN_REUSE;
|
||||
|
||||
@ -1002,7 +999,6 @@ static struct inet_protosw inetsw_array[] =
|
||||
.protocol = IPPROTO_TCP,
|
||||
.prot = &tcp_prot,
|
||||
.ops = &inet_stream_ops,
|
||||
.no_check = 0,
|
||||
.flags = INET_PROTOSW_PERMANENT |
|
||||
INET_PROTOSW_ICSK,
|
||||
},
|
||||
@ -1012,7 +1008,6 @@ static struct inet_protosw inetsw_array[] =
|
||||
.protocol = IPPROTO_UDP,
|
||||
.prot = &udp_prot,
|
||||
.ops = &inet_dgram_ops,
|
||||
.no_check = UDP_CSUM_DEFAULT,
|
||||
.flags = INET_PROTOSW_PERMANENT,
|
||||
},
|
||||
|
||||
@ -1021,7 +1016,6 @@ static struct inet_protosw inetsw_array[] =
|
||||
.protocol = IPPROTO_ICMP,
|
||||
.prot = &ping_prot,
|
||||
.ops = &inet_dgram_ops,
|
||||
.no_check = UDP_CSUM_DEFAULT,
|
||||
.flags = INET_PROTOSW_REUSE,
|
||||
},
|
||||
|
||||
@ -1030,7 +1024,6 @@ static struct inet_protosw inetsw_array[] =
|
||||
.protocol = IPPROTO_IP, /* wild card */
|
||||
.prot = &raw_prot,
|
||||
.ops = &inet_sockraw_ops,
|
||||
.no_check = UDP_CSUM_DEFAULT,
|
||||
.flags = INET_PROTOSW_REUSE,
|
||||
}
|
||||
};
|
||||
|
@ -70,7 +70,6 @@ static struct inet_protosw udplite4_protosw = {
|
||||
.protocol = IPPROTO_UDPLITE,
|
||||
.prot = &udplite_prot,
|
||||
.ops = &inet_dgram_ops,
|
||||
.no_check = 0, /* must checksum (RFC 3828) */
|
||||
.flags = INET_PROTOSW_PERMANENT,
|
||||
};
|
||||
|
||||
|
@ -106,7 +106,6 @@ static int inet6_create(struct net *net, struct socket *sock, int protocol,
|
||||
struct inet_protosw *answer;
|
||||
struct proto *answer_prot;
|
||||
unsigned char answer_flags;
|
||||
char answer_no_check;
|
||||
int try_loading_module = 0;
|
||||
int err;
|
||||
|
||||
@ -162,7 +161,6 @@ lookup_protocol:
|
||||
|
||||
sock->ops = answer->ops;
|
||||
answer_prot = answer->prot;
|
||||
answer_no_check = answer->no_check;
|
||||
answer_flags = answer->flags;
|
||||
rcu_read_unlock();
|
||||
|
||||
@ -176,7 +174,6 @@ lookup_protocol:
|
||||
sock_init_data(sock, sk);
|
||||
|
||||
err = 0;
|
||||
sk->sk_no_check = answer_no_check;
|
||||
if (INET_PROTOSW_REUSE & answer_flags)
|
||||
sk->sk_reuse = SK_CAN_REUSE;
|
||||
|
||||
|
@ -51,7 +51,6 @@ static struct inet_protosw pingv6_protosw = {
|
||||
.protocol = IPPROTO_ICMPV6,
|
||||
.prot = &pingv6_prot,
|
||||
.ops = &inet6_dgram_ops,
|
||||
.no_check = UDP_CSUM_DEFAULT,
|
||||
.flags = INET_PROTOSW_REUSE,
|
||||
};
|
||||
|
||||
|
@ -1322,7 +1322,6 @@ static struct inet_protosw rawv6_protosw = {
|
||||
.protocol = IPPROTO_IP, /* wild card */
|
||||
.prot = &rawv6_prot,
|
||||
.ops = &inet6_sockraw_ops,
|
||||
.no_check = UDP_CSUM_DEFAULT,
|
||||
.flags = INET_PROTOSW_REUSE,
|
||||
};
|
||||
|
||||
|
@ -1992,7 +1992,6 @@ static struct inet_protosw tcpv6_protosw = {
|
||||
.protocol = IPPROTO_TCP,
|
||||
.prot = &tcpv6_prot,
|
||||
.ops = &inet6_stream_ops,
|
||||
.no_check = 0,
|
||||
.flags = INET_PROTOSW_PERMANENT |
|
||||
INET_PROTOSW_ICSK,
|
||||
};
|
||||
|
@ -1507,7 +1507,6 @@ static struct inet_protosw udpv6_protosw = {
|
||||
.protocol = IPPROTO_UDP,
|
||||
.prot = &udpv6_prot,
|
||||
.ops = &inet6_dgram_ops,
|
||||
.no_check = UDP_CSUM_DEFAULT,
|
||||
.flags = INET_PROTOSW_PERMANENT,
|
||||
};
|
||||
|
||||
|
@ -64,7 +64,6 @@ static struct inet_protosw udplite6_protosw = {
|
||||
.protocol = IPPROTO_UDPLITE,
|
||||
.prot = &udplitev6_prot,
|
||||
.ops = &inet6_dgram_ops,
|
||||
.no_check = 0,
|
||||
.flags = INET_PROTOSW_PERMANENT,
|
||||
};
|
||||
|
||||
|
@ -606,7 +606,6 @@ static struct inet_protosw l2tp_ip_protosw = {
|
||||
.protocol = IPPROTO_L2TP,
|
||||
.prot = &l2tp_ip_prot,
|
||||
.ops = &l2tp_ip_ops,
|
||||
.no_check = 0,
|
||||
};
|
||||
|
||||
static struct net_protocol l2tp_ip_protocol __read_mostly = {
|
||||
|
@ -755,7 +755,6 @@ static struct inet_protosw l2tp_ip6_protosw = {
|
||||
.protocol = IPPROTO_L2TP,
|
||||
.prot = &l2tp_ip6_prot,
|
||||
.ops = &l2tp_ip6_ops,
|
||||
.no_check = 0,
|
||||
};
|
||||
|
||||
static struct inet6_protocol l2tp_ip6_protocol __read_mostly = {
|
||||
|
@ -943,7 +943,6 @@ static struct inet_protosw sctpv6_seqpacket_protosw = {
|
||||
.protocol = IPPROTO_SCTP,
|
||||
.prot = &sctpv6_prot,
|
||||
.ops = &inet6_seqpacket_ops,
|
||||
.no_check = 0,
|
||||
.flags = SCTP_PROTOSW_FLAG
|
||||
};
|
||||
static struct inet_protosw sctpv6_stream_protosw = {
|
||||
@ -951,7 +950,6 @@ static struct inet_protosw sctpv6_stream_protosw = {
|
||||
.protocol = IPPROTO_SCTP,
|
||||
.prot = &sctpv6_prot,
|
||||
.ops = &inet6_seqpacket_ops,
|
||||
.no_check = 0,
|
||||
.flags = SCTP_PROTOSW_FLAG,
|
||||
};
|
||||
|
||||
|
@ -1017,7 +1017,6 @@ static struct inet_protosw sctp_seqpacket_protosw = {
|
||||
.protocol = IPPROTO_SCTP,
|
||||
.prot = &sctp_prot,
|
||||
.ops = &inet_seqpacket_ops,
|
||||
.no_check = 0,
|
||||
.flags = SCTP_PROTOSW_FLAG
|
||||
};
|
||||
static struct inet_protosw sctp_stream_protosw = {
|
||||
@ -1025,7 +1024,6 @@ static struct inet_protosw sctp_stream_protosw = {
|
||||
.protocol = IPPROTO_SCTP,
|
||||
.prot = &sctp_prot,
|
||||
.ops = &inet_seqpacket_ops,
|
||||
.no_check = 0,
|
||||
.flags = SCTP_PROTOSW_FLAG
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user