diff options
author | Eric Paris <eparis@redhat.com> | 2009-11-05 23:44:37 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-11-06 00:40:17 -0500 |
commit | 13f18aa05f5abe135f47b6417537ae2b2fedc18c (patch) | |
tree | 3bcf8c52bd9d957fd09a87224c9d44566071f981 /net | |
parent | 89794a6f3bf6db552b1ff4d2ad42fdd8739ac2a2 (diff) |
net: drop capability from protocol definitions
struct can_proto had a capability field which wasn't ever used. It is
dropped entirely.
struct inet_protosw had a capability field which can be more clearly
expressed in the code by just checking if sock->type = SOCK_RAW.
Signed-off-by: Eric Paris <eparis@redhat.com>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/can/af_can.c | 5 | ||||
-rw-r--r-- | net/can/bcm.c | 1 | ||||
-rw-r--r-- | net/can/raw.c | 1 | ||||
-rw-r--r-- | net/dccp/ipv4.c | 1 | ||||
-rw-r--r-- | net/dccp/ipv6.c | 1 | ||||
-rw-r--r-- | net/ipv4/af_inet.c | 5 | ||||
-rw-r--r-- | net/ipv4/udplite.c | 1 | ||||
-rw-r--r-- | net/ipv6/af_inet6.c | 2 | ||||
-rw-r--r-- | net/ipv6/raw.c | 1 | ||||
-rw-r--r-- | net/ipv6/tcp_ipv6.c | 1 | ||||
-rw-r--r-- | net/ipv6/udp.c | 1 | ||||
-rw-r--r-- | net/ipv6/udplite.c | 1 | ||||
-rw-r--r-- | net/sctp/ipv6.c | 2 | ||||
-rw-r--r-- | net/sctp/protocol.c | 2 |
14 files changed, 2 insertions, 23 deletions
diff --git a/net/can/af_can.c b/net/can/af_can.c index 3f2eb27e1ffb..9c0426dc3184 100644 --- a/net/can/af_can.c +++ b/net/can/af_can.c | |||
@@ -160,11 +160,6 @@ static int can_create(struct net *net, struct socket *sock, int protocol) | |||
160 | goto errout; | 160 | goto errout; |
161 | } | 161 | } |
162 | 162 | ||
163 | if (cp->capability >= 0 && !capable(cp->capability)) { | ||
164 | err = -EPERM; | ||
165 | goto errout; | ||
166 | } | ||
167 | |||
168 | sock->ops = cp->ops; | 163 | sock->ops = cp->ops; |
169 | 164 | ||
170 | sk = sk_alloc(net, PF_CAN, GFP_KERNEL, cp->prot); | 165 | sk = sk_alloc(net, PF_CAN, GFP_KERNEL, cp->prot); |
diff --git a/net/can/bcm.c b/net/can/bcm.c index 2f47039c79dd..67b5433db13b 100644 --- a/net/can/bcm.c +++ b/net/can/bcm.c | |||
@@ -1576,7 +1576,6 @@ static struct proto bcm_proto __read_mostly = { | |||
1576 | static struct can_proto bcm_can_proto __read_mostly = { | 1576 | static struct can_proto bcm_can_proto __read_mostly = { |
1577 | .type = SOCK_DGRAM, | 1577 | .type = SOCK_DGRAM, |
1578 | .protocol = CAN_BCM, | 1578 | .protocol = CAN_BCM, |
1579 | .capability = -1, | ||
1580 | .ops = &bcm_ops, | 1579 | .ops = &bcm_ops, |
1581 | .prot = &bcm_proto, | 1580 | .prot = &bcm_proto, |
1582 | }; | 1581 | }; |
diff --git a/net/can/raw.c b/net/can/raw.c index 6e77db58b9e6..abca920440b5 100644 --- a/net/can/raw.c +++ b/net/can/raw.c | |||
@@ -742,7 +742,6 @@ static struct proto raw_proto __read_mostly = { | |||
742 | static struct can_proto raw_can_proto __read_mostly = { | 742 | static struct can_proto raw_can_proto __read_mostly = { |
743 | .type = SOCK_RAW, | 743 | .type = SOCK_RAW, |
744 | .protocol = CAN_RAW, | 744 | .protocol = CAN_RAW, |
745 | .capability = -1, | ||
746 | .ops = &raw_ops, | 745 | .ops = &raw_ops, |
747 | .prot = &raw_proto, | 746 | .prot = &raw_proto, |
748 | }; | 747 | }; |
diff --git a/net/dccp/ipv4.c b/net/dccp/ipv4.c index 00028d4b09d9..2423a0866733 100644 --- a/net/dccp/ipv4.c +++ b/net/dccp/ipv4.c | |||
@@ -991,7 +991,6 @@ static struct inet_protosw dccp_v4_protosw = { | |||
991 | .protocol = IPPROTO_DCCP, | 991 | .protocol = IPPROTO_DCCP, |
992 | .prot = &dccp_v4_prot, | 992 | .prot = &dccp_v4_prot, |
993 | .ops = &inet_dccp_ops, | 993 | .ops = &inet_dccp_ops, |
994 | .capability = -1, | ||
995 | .no_check = 0, | 994 | .no_check = 0, |
996 | .flags = INET_PROTOSW_ICSK, | 995 | .flags = INET_PROTOSW_ICSK, |
997 | }; | 996 | }; |
diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c index 6d89f9f7d5d8..50ea91a77705 100644 --- a/net/dccp/ipv6.c +++ b/net/dccp/ipv6.c | |||
@@ -1185,7 +1185,6 @@ static struct inet_protosw dccp_v6_protosw = { | |||
1185 | .protocol = IPPROTO_DCCP, | 1185 | .protocol = IPPROTO_DCCP, |
1186 | .prot = &dccp_v6_prot, | 1186 | .prot = &dccp_v6_prot, |
1187 | .ops = &inet6_dccp_ops, | 1187 | .ops = &inet6_dccp_ops, |
1188 | .capability = -1, | ||
1189 | .flags = INET_PROTOSW_ICSK, | 1188 | .flags = INET_PROTOSW_ICSK, |
1190 | }; | 1189 | }; |
1191 | 1190 | ||
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c index 538e84d0bcba..180ec4c94919 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c | |||
@@ -325,7 +325,7 @@ lookup_protocol: | |||
325 | } | 325 | } |
326 | 326 | ||
327 | err = -EPERM; | 327 | err = -EPERM; |
328 | if (answer->capability > 0 && !capable(answer->capability)) | 328 | if (sock->type == SOCK_RAW && !capable(CAP_NET_RAW)) |
329 | goto out_rcu_unlock; | 329 | goto out_rcu_unlock; |
330 | 330 | ||
331 | err = -EAFNOSUPPORT; | 331 | err = -EAFNOSUPPORT; |
@@ -947,7 +947,6 @@ static struct inet_protosw inetsw_array[] = | |||
947 | .protocol = IPPROTO_TCP, | 947 | .protocol = IPPROTO_TCP, |
948 | .prot = &tcp_prot, | 948 | .prot = &tcp_prot, |
949 | .ops = &inet_stream_ops, | 949 | .ops = &inet_stream_ops, |
950 | .capability = -1, | ||
951 | .no_check = 0, | 950 | .no_check = 0, |
952 | .flags = INET_PROTOSW_PERMANENT | | 951 | .flags = INET_PROTOSW_PERMANENT | |
953 | INET_PROTOSW_ICSK, | 952 | INET_PROTOSW_ICSK, |
@@ -958,7 +957,6 @@ static struct inet_protosw inetsw_array[] = | |||
958 | .protocol = IPPROTO_UDP, | 957 | .protocol = IPPROTO_UDP, |
959 | .prot = &udp_prot, | 958 | .prot = &udp_prot, |
960 | .ops = &inet_dgram_ops, | 959 | .ops = &inet_dgram_ops, |
961 | .capability = -1, | ||
962 | .no_check = UDP_CSUM_DEFAULT, | 960 | .no_check = UDP_CSUM_DEFAULT, |
963 | .flags = INET_PROTOSW_PERMANENT, | 961 | .flags = INET_PROTOSW_PERMANENT, |
964 | }, | 962 | }, |
@@ -969,7 +967,6 @@ static struct inet_protosw inetsw_array[] = | |||
969 | .protocol = IPPROTO_IP, /* wild card */ | 967 | .protocol = IPPROTO_IP, /* wild card */ |
970 | .prot = &raw_prot, | 968 | .prot = &raw_prot, |
971 | .ops = &inet_sockraw_ops, | 969 | .ops = &inet_sockraw_ops, |
972 | .capability = CAP_NET_RAW, | ||
973 | .no_check = UDP_CSUM_DEFAULT, | 970 | .no_check = UDP_CSUM_DEFAULT, |
974 | .flags = INET_PROTOSW_REUSE, | 971 | .flags = INET_PROTOSW_REUSE, |
975 | } | 972 | } |
diff --git a/net/ipv4/udplite.c b/net/ipv4/udplite.c index 470c504b9554..66f79513f4a5 100644 --- a/net/ipv4/udplite.c +++ b/net/ipv4/udplite.c | |||
@@ -64,7 +64,6 @@ static struct inet_protosw udplite4_protosw = { | |||
64 | .protocol = IPPROTO_UDPLITE, | 64 | .protocol = IPPROTO_UDPLITE, |
65 | .prot = &udplite_prot, | 65 | .prot = &udplite_prot, |
66 | .ops = &inet_dgram_ops, | 66 | .ops = &inet_dgram_ops, |
67 | .capability = -1, | ||
68 | .no_check = 0, /* must checksum (RFC 3828) */ | 67 | .no_check = 0, /* must checksum (RFC 3828) */ |
69 | .flags = INET_PROTOSW_PERMANENT, | 68 | .flags = INET_PROTOSW_PERMANENT, |
70 | }; | 69 | }; |
diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c index 9105b25defe5..1b3889356599 100644 --- a/net/ipv6/af_inet6.c +++ b/net/ipv6/af_inet6.c | |||
@@ -158,7 +158,7 @@ lookup_protocol: | |||
158 | } | 158 | } |
159 | 159 | ||
160 | err = -EPERM; | 160 | err = -EPERM; |
161 | if (answer->capability > 0 && !capable(answer->capability)) | 161 | if (sock->type == SOCK_RAW && !capable(CAP_NET_RAW)) |
162 | goto out_rcu_unlock; | 162 | goto out_rcu_unlock; |
163 | 163 | ||
164 | sock->ops = answer->ops; | 164 | sock->ops = answer->ops; |
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c index cb834ab7f071..818ef21ba76d 100644 --- a/net/ipv6/raw.c +++ b/net/ipv6/raw.c | |||
@@ -1336,7 +1336,6 @@ static struct inet_protosw rawv6_protosw = { | |||
1336 | .protocol = IPPROTO_IP, /* wild card */ | 1336 | .protocol = IPPROTO_IP, /* wild card */ |
1337 | .prot = &rawv6_prot, | 1337 | .prot = &rawv6_prot, |
1338 | .ops = &inet6_sockraw_ops, | 1338 | .ops = &inet6_sockraw_ops, |
1339 | .capability = CAP_NET_RAW, | ||
1340 | .no_check = UDP_CSUM_DEFAULT, | 1339 | .no_check = UDP_CSUM_DEFAULT, |
1341 | .flags = INET_PROTOSW_REUSE, | 1340 | .flags = INET_PROTOSW_REUSE, |
1342 | }; | 1341 | }; |
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 34925f089e07..696a22f034e8 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c | |||
@@ -2112,7 +2112,6 @@ static struct inet_protosw tcpv6_protosw = { | |||
2112 | .protocol = IPPROTO_TCP, | 2112 | .protocol = IPPROTO_TCP, |
2113 | .prot = &tcpv6_prot, | 2113 | .prot = &tcpv6_prot, |
2114 | .ops = &inet6_stream_ops, | 2114 | .ops = &inet6_stream_ops, |
2115 | .capability = -1, | ||
2116 | .no_check = 0, | 2115 | .no_check = 0, |
2117 | .flags = INET_PROTOSW_PERMANENT | | 2116 | .flags = INET_PROTOSW_PERMANENT | |
2118 | INET_PROTOSW_ICSK, | 2117 | INET_PROTOSW_ICSK, |
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index d3b59d73f507..bbe2f3e445fc 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c | |||
@@ -1286,7 +1286,6 @@ static struct inet_protosw udpv6_protosw = { | |||
1286 | .protocol = IPPROTO_UDP, | 1286 | .protocol = IPPROTO_UDP, |
1287 | .prot = &udpv6_prot, | 1287 | .prot = &udpv6_prot, |
1288 | .ops = &inet6_dgram_ops, | 1288 | .ops = &inet6_dgram_ops, |
1289 | .capability =-1, | ||
1290 | .no_check = UDP_CSUM_DEFAULT, | 1289 | .no_check = UDP_CSUM_DEFAULT, |
1291 | .flags = INET_PROTOSW_PERMANENT, | 1290 | .flags = INET_PROTOSW_PERMANENT, |
1292 | }; | 1291 | }; |
diff --git a/net/ipv6/udplite.c b/net/ipv6/udplite.c index d737a27ee010..6ea6938919e6 100644 --- a/net/ipv6/udplite.c +++ b/net/ipv6/udplite.c | |||
@@ -62,7 +62,6 @@ static struct inet_protosw udplite6_protosw = { | |||
62 | .protocol = IPPROTO_UDPLITE, | 62 | .protocol = IPPROTO_UDPLITE, |
63 | .prot = &udplitev6_prot, | 63 | .prot = &udplitev6_prot, |
64 | .ops = &inet6_dgram_ops, | 64 | .ops = &inet6_dgram_ops, |
65 | .capability = -1, | ||
66 | .no_check = 0, | 65 | .no_check = 0, |
67 | .flags = INET_PROTOSW_PERMANENT, | 66 | .flags = INET_PROTOSW_PERMANENT, |
68 | }; | 67 | }; |
diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c index bb280e60e00a..bacd6a7318be 100644 --- a/net/sctp/ipv6.c +++ b/net/sctp/ipv6.c | |||
@@ -930,7 +930,6 @@ static struct inet_protosw sctpv6_seqpacket_protosw = { | |||
930 | .protocol = IPPROTO_SCTP, | 930 | .protocol = IPPROTO_SCTP, |
931 | .prot = &sctpv6_prot, | 931 | .prot = &sctpv6_prot, |
932 | .ops = &inet6_seqpacket_ops, | 932 | .ops = &inet6_seqpacket_ops, |
933 | .capability = -1, | ||
934 | .no_check = 0, | 933 | .no_check = 0, |
935 | .flags = SCTP_PROTOSW_FLAG | 934 | .flags = SCTP_PROTOSW_FLAG |
936 | }; | 935 | }; |
@@ -939,7 +938,6 @@ static struct inet_protosw sctpv6_stream_protosw = { | |||
939 | .protocol = IPPROTO_SCTP, | 938 | .protocol = IPPROTO_SCTP, |
940 | .prot = &sctpv6_prot, | 939 | .prot = &sctpv6_prot, |
941 | .ops = &inet6_seqpacket_ops, | 940 | .ops = &inet6_seqpacket_ops, |
942 | .capability = -1, | ||
943 | .no_check = 0, | 941 | .no_check = 0, |
944 | .flags = SCTP_PROTOSW_FLAG, | 942 | .flags = SCTP_PROTOSW_FLAG, |
945 | }; | 943 | }; |
diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c index fe44c57101de..08ef203d36ac 100644 --- a/net/sctp/protocol.c +++ b/net/sctp/protocol.c | |||
@@ -909,7 +909,6 @@ static struct inet_protosw sctp_seqpacket_protosw = { | |||
909 | .protocol = IPPROTO_SCTP, | 909 | .protocol = IPPROTO_SCTP, |
910 | .prot = &sctp_prot, | 910 | .prot = &sctp_prot, |
911 | .ops = &inet_seqpacket_ops, | 911 | .ops = &inet_seqpacket_ops, |
912 | .capability = -1, | ||
913 | .no_check = 0, | 912 | .no_check = 0, |
914 | .flags = SCTP_PROTOSW_FLAG | 913 | .flags = SCTP_PROTOSW_FLAG |
915 | }; | 914 | }; |
@@ -918,7 +917,6 @@ static struct inet_protosw sctp_stream_protosw = { | |||
918 | .protocol = IPPROTO_SCTP, | 917 | .protocol = IPPROTO_SCTP, |
919 | .prot = &sctp_prot, | 918 | .prot = &sctp_prot, |
920 | .ops = &inet_seqpacket_ops, | 919 | .ops = &inet_seqpacket_ops, |
921 | .capability = -1, | ||
922 | .no_check = 0, | 920 | .no_check = 0, |
923 | .flags = SCTP_PROTOSW_FLAG | 921 | .flags = SCTP_PROTOSW_FLAG |
924 | }; | 922 | }; |