net: drop capability from protocol definitions
authorEric Paris <eparis@redhat.com>
Fri, 6 Nov 2009 04:44:37 +0000 (20:44 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 6 Nov 2009 05:40:17 +0000 (21:40 -0800)
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>
16 files changed:
include/linux/can/core.h
include/net/protocol.h
net/can/af_can.c
net/can/bcm.c
net/can/raw.c
net/dccp/ipv4.c
net/dccp/ipv6.c
net/ipv4/af_inet.c
net/ipv4/udplite.c
net/ipv6/af_inet6.c
net/ipv6/raw.c
net/ipv6/tcp_ipv6.c
net/ipv6/udp.c
net/ipv6/udplite.c
net/sctp/ipv6.c
net/sctp/protocol.c

index 25085cbadcfcded25b013923664c02c28508ebe7..6c507bea275f314f6bfa308b246c330f834e2ae7 100644 (file)
  * struct can_proto - CAN protocol structure
  * @type:       type argument in socket() syscall, e.g. SOCK_DGRAM.
  * @protocol:   protocol number in socket() syscall.
- * @capability: capability needed to open the socket, or -1 for no restriction.
  * @ops:        pointer to struct proto_ops for sock->ops.
  * @prot:       pointer to struct proto structure.
  */
 struct can_proto {
        int              type;
        int              protocol;
-       int              capability;
        struct proto_ops *ops;
        struct proto     *prot;
 };
index 89932d45da5922ac11e3a4db7764e8c457081292..f1effdd3c26522380cf01562bac86031c9c62047 100644 (file)
@@ -82,10 +82,6 @@ struct inet_protosw {
        struct proto     *prot;
        const struct proto_ops *ops;
   
-       int              capability; /* Which (if any) capability do
-                                     * we need to use this socket
-                                     * interface?
-                                      */
        char             no_check;   /* checksum on rcv/xmit/none? */
        unsigned char    flags;      /* See INET_PROTOSW_* below.  */
 };
index 3f2eb27e1ffb1e8f31bd2346220ec2611a6f45df..9c0426dc3184cca6739a61db144ac4db9f296b90 100644 (file)
@@ -160,11 +160,6 @@ static int can_create(struct net *net, struct socket *sock, int protocol)
                goto errout;
        }
 
-       if (cp->capability >= 0 && !capable(cp->capability)) {
-               err = -EPERM;
-               goto errout;
-       }
-
        sock->ops = cp->ops;
 
        sk = sk_alloc(net, PF_CAN, GFP_KERNEL, cp->prot);
index 2f47039c79dd1f604f890fff01e1d40e7e84e369..67b5433db13bf9187f44877c1e25db207ad086db 100644 (file)
@@ -1576,7 +1576,6 @@ static struct proto bcm_proto __read_mostly = {
 static struct can_proto bcm_can_proto __read_mostly = {
        .type       = SOCK_DGRAM,
        .protocol   = CAN_BCM,
-       .capability = -1,
        .ops        = &bcm_ops,
        .prot       = &bcm_proto,
 };
index 6e77db58b9e667d073cf45bd964200afa119bd31..abca920440b50cdf51e539fc18c6ea15f7ef698b 100644 (file)
@@ -742,7 +742,6 @@ static struct proto raw_proto __read_mostly = {
 static struct can_proto raw_can_proto __read_mostly = {
        .type       = SOCK_RAW,
        .protocol   = CAN_RAW,
-       .capability = -1,
        .ops        = &raw_ops,
        .prot       = &raw_proto,
 };
index 00028d4b09d9c4bb2f927daa6c1401440e288a03..2423a0866733a4d04bc4f6c548db18ea9135fa52 100644 (file)
@@ -991,7 +991,6 @@ static struct inet_protosw dccp_v4_protosw = {
        .protocol       = IPPROTO_DCCP,
        .prot           = &dccp_v4_prot,
        .ops            = &inet_dccp_ops,
-       .capability     = -1,
        .no_check       = 0,
        .flags          = INET_PROTOSW_ICSK,
 };
index 6d89f9f7d5d8aed9af455180b0a5a9c6709cc915..50ea91a77705b5a73a8d363241b4dabc56401457 100644 (file)
@@ -1185,7 +1185,6 @@ static struct inet_protosw dccp_v6_protosw = {
        .protocol       = IPPROTO_DCCP,
        .prot           = &dccp_v6_prot,
        .ops            = &inet6_dccp_ops,
-       .capability     = -1,
        .flags          = INET_PROTOSW_ICSK,
 };
 
index 538e84d0bcba21a01ce77e45357a611c40961c97..180ec4c949193f6de57b5a84b12733587a8feef1 100644 (file)
@@ -325,7 +325,7 @@ lookup_protocol:
        }
 
        err = -EPERM;
-       if (answer->capability > 0 && !capable(answer->capability))
+       if (sock->type == SOCK_RAW && !capable(CAP_NET_RAW))
                goto out_rcu_unlock;
 
        err = -EAFNOSUPPORT;
@@ -947,7 +947,6 @@ static struct inet_protosw inetsw_array[] =
                .protocol =   IPPROTO_TCP,
                .prot =       &tcp_prot,
                .ops =        &inet_stream_ops,
-               .capability = -1,
                .no_check =   0,
                .flags =      INET_PROTOSW_PERMANENT |
                              INET_PROTOSW_ICSK,
@@ -958,7 +957,6 @@ static struct inet_protosw inetsw_array[] =
                .protocol =   IPPROTO_UDP,
                .prot =       &udp_prot,
                .ops =        &inet_dgram_ops,
-               .capability = -1,
                .no_check =   UDP_CSUM_DEFAULT,
                .flags =      INET_PROTOSW_PERMANENT,
        },
@@ -969,7 +967,6 @@ static struct inet_protosw inetsw_array[] =
               .protocol =   IPPROTO_IP,        /* wild card */
               .prot =       &raw_prot,
               .ops =        &inet_sockraw_ops,
-              .capability = CAP_NET_RAW,
               .no_check =   UDP_CSUM_DEFAULT,
               .flags =      INET_PROTOSW_REUSE,
        }
index 470c504b9554dab1d2a346c74dfeccd451cc2d3a..66f79513f4a5b2e6839369f4636713746eab9375 100644 (file)
@@ -64,7 +64,6 @@ static struct inet_protosw udplite4_protosw = {
        .protocol       =  IPPROTO_UDPLITE,
        .prot           =  &udplite_prot,
        .ops            =  &inet_dgram_ops,
-       .capability     = -1,
        .no_check       =  0,           /* must checksum (RFC 3828) */
        .flags          =  INET_PROTOSW_PERMANENT,
 };
index 9105b25defe5b479f9a8554ed155f333d644d522..1b38893565993c5c6d6daedc7d12c694bf01f94f 100644 (file)
@@ -158,7 +158,7 @@ lookup_protocol:
        }
 
        err = -EPERM;
-       if (answer->capability > 0 && !capable(answer->capability))
+       if (sock->type == SOCK_RAW && !capable(CAP_NET_RAW))
                goto out_rcu_unlock;
 
        sock->ops = answer->ops;
index cb834ab7f071053ff27be8e2b2738b1ae0f520d7..818ef21ba76dfb4251f85490740659951c1776b0 100644 (file)
@@ -1336,7 +1336,6 @@ static struct inet_protosw rawv6_protosw = {
        .protocol       = IPPROTO_IP,   /* wild card */
        .prot           = &rawv6_prot,
        .ops            = &inet6_sockraw_ops,
-       .capability     = CAP_NET_RAW,
        .no_check       = UDP_CSUM_DEFAULT,
        .flags          = INET_PROTOSW_REUSE,
 };
index 34925f089e0767e987d5644a8a320d49bfab9eee..696a22f034e823bbd44527945ee63e9dbdbf1d6f 100644 (file)
@@ -2112,7 +2112,6 @@ static struct inet_protosw tcpv6_protosw = {
        .protocol       =       IPPROTO_TCP,
        .prot           =       &tcpv6_prot,
        .ops            =       &inet6_stream_ops,
-       .capability     =       -1,
        .no_check       =       0,
        .flags          =       INET_PROTOSW_PERMANENT |
                                INET_PROTOSW_ICSK,
index d3b59d73f507869f569c4fdfd201875a06ccf2a1..bbe2f3e445fcf0c19cbfb0828c7b739d32c4e143 100644 (file)
@@ -1286,7 +1286,6 @@ static struct inet_protosw udpv6_protosw = {
        .protocol =  IPPROTO_UDP,
        .prot =      &udpv6_prot,
        .ops =       &inet6_dgram_ops,
-       .capability =-1,
        .no_check =  UDP_CSUM_DEFAULT,
        .flags =     INET_PROTOSW_PERMANENT,
 };
index d737a27ee010e13e397605154654b3a68dd304c9..6ea6938919e69de8223dd982690730ec64a2e3e0 100644 (file)
@@ -62,7 +62,6 @@ static struct inet_protosw udplite6_protosw = {
        .protocol       = IPPROTO_UDPLITE,
        .prot           = &udplitev6_prot,
        .ops            = &inet6_dgram_ops,
-       .capability     = -1,
        .no_check       = 0,
        .flags          = INET_PROTOSW_PERMANENT,
 };
index bb280e60e00a9f23c93ae1047ef1934af62ad81c..bacd6a7318bec01aa274a48a0b51bb3a1a4a2158 100644 (file)
@@ -930,7 +930,6 @@ static struct inet_protosw sctpv6_seqpacket_protosw = {
        .protocol      = IPPROTO_SCTP,
        .prot          = &sctpv6_prot,
        .ops           = &inet6_seqpacket_ops,
-       .capability    = -1,
        .no_check      = 0,
        .flags         = SCTP_PROTOSW_FLAG
 };
@@ -939,7 +938,6 @@ static struct inet_protosw sctpv6_stream_protosw = {
        .protocol      = IPPROTO_SCTP,
        .prot          = &sctpv6_prot,
        .ops           = &inet6_seqpacket_ops,
-       .capability    = -1,
        .no_check      = 0,
        .flags         = SCTP_PROTOSW_FLAG,
 };
index fe44c57101dee22e97d834141134cf93c194f51e..08ef203d36ac77a16a0b161e38a146131fb7b835 100644 (file)
@@ -909,7 +909,6 @@ static struct inet_protosw sctp_seqpacket_protosw = {
        .protocol   = IPPROTO_SCTP,
        .prot       = &sctp_prot,
        .ops        = &inet_seqpacket_ops,
-       .capability = -1,
        .no_check   = 0,
        .flags      = SCTP_PROTOSW_FLAG
 };
@@ -918,7 +917,6 @@ static struct inet_protosw sctp_stream_protosw = {
        .protocol   = IPPROTO_SCTP,
        .prot       = &sctp_prot,
        .ops        = &inet_seqpacket_ops,
-       .capability = -1,
        .no_check   = 0,
        .flags      = SCTP_PROTOSW_FLAG
 };