net: drop capability from protocol definitions
Eric Paris [Fri, 6 Nov 2009 04:44:37 +0000 (20:44 -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 25085cb..6c507be 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 89932d4..f1effdd 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 3f2eb27..9c0426d 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 2f47039..67b5433 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 6e77db5..abca920 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 00028d4..2423a08 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 6d89f9f..50ea91a 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 538e84d..180ec4c 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 470c504..66f7951 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 9105b25..1b38893 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 cb834ab..818ef21 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 34925f0..696a22f 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 d3b59d7..bbe2f3e 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 d737a27..6ea6938 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 bb280e6..bacd6a7 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 fe44c57..08ef203 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
 };