Commit 90ddc4f0 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller

[NET]: move struct proto_ops to const

I noticed that some of 'struct proto_ops' used in the kernel may share
a cache line used by locks or other heavily modified data. (default
linker alignement is 32 bytes, and L1_CACHE_LINE is 64 or 128 at
least)

This patch makes sure a 'struct proto_ops' can be declared as const,
so that all cpus can share all parts of it without false sharing.

This is not mandatory : a driver can still use a read/write structure
if it needs to (and eventually a __read_mostly)

I made a global stubstitute to change all existing occurences to make
them const.

This should reduce the possibility of false sharing on SMP, and
speedup some socket system calls.
Signed-off-by: default avatarEric Dumazet <dada1@cosmosbay.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 77d76ea3
...@@ -107,7 +107,7 @@ enum sock_type { ...@@ -107,7 +107,7 @@ enum sock_type {
struct socket { struct socket {
socket_state state; socket_state state;
unsigned long flags; unsigned long flags;
struct proto_ops *ops; const struct proto_ops *ops;
struct fasync_struct *fasync_list; struct fasync_struct *fasync_list;
struct file *file; struct file *file;
struct sock *sk; struct sock *sk;
...@@ -260,7 +260,7 @@ SOCKCALL_WRAP(name, recvmsg, (struct kiocb *iocb, struct socket *sock, struct ms ...@@ -260,7 +260,7 @@ SOCKCALL_WRAP(name, recvmsg, (struct kiocb *iocb, struct socket *sock, struct ms
SOCKCALL_WRAP(name, mmap, (struct file *file, struct socket *sock, struct vm_area_struct *vma), \ SOCKCALL_WRAP(name, mmap, (struct file *file, struct socket *sock, struct vm_area_struct *vma), \
(file, sock, vma)) \ (file, sock, vma)) \
\ \
static struct proto_ops name##_ops = { \ static const struct proto_ops name##_ops = { \
.family = fam, \ .family = fam, \
.owner = THIS_MODULE, \ .owner = THIS_MODULE, \
.release = __lock_##name##_release, \ .release = __lock_##name##_release, \
......
#ifndef _INET_COMMON_H #ifndef _INET_COMMON_H
#define _INET_COMMON_H #define _INET_COMMON_H
extern struct proto_ops inet_stream_ops; extern const struct proto_ops inet_stream_ops;
extern struct proto_ops inet_dgram_ops; extern const struct proto_ops inet_dgram_ops;
/* /*
* INET4 prototypes used by INET6 * INET4 prototypes used by INET6
......
...@@ -538,8 +538,8 @@ extern int sysctl_ip6frag_low_thresh; ...@@ -538,8 +538,8 @@ extern int sysctl_ip6frag_low_thresh;
extern int sysctl_ip6frag_time; extern int sysctl_ip6frag_time;
extern int sysctl_ip6frag_secret_interval; extern int sysctl_ip6frag_secret_interval;
extern struct proto_ops inet6_stream_ops; extern const struct proto_ops inet6_stream_ops;
extern struct proto_ops inet6_dgram_ops; extern const struct proto_ops inet6_dgram_ops;
extern int ip6_mc_source(int add, int omode, struct sock *sk, extern int ip6_mc_source(int add, int omode, struct sock *sk,
struct group_source_req *pgsr); struct group_source_req *pgsr);
......
...@@ -65,7 +65,7 @@ struct inet_protosw { ...@@ -65,7 +65,7 @@ struct inet_protosw {
int protocol; /* This is the L4 protocol number. */ int protocol; /* This is the L4 protocol number. */
struct proto *prot; struct proto *prot;
struct proto_ops *ops; const struct proto_ops *ops;
int capability; /* Which (if any) capability do int capability; /* Which (if any) capability do
* we need to use this socket * we need to use this socket
......
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
#include <linux/atalk.h> #include <linux/atalk.h>
struct datalink_proto *ddp_dl, *aarp_dl; struct datalink_proto *ddp_dl, *aarp_dl;
static struct proto_ops atalk_dgram_ops; static const struct proto_ops atalk_dgram_ops;
/**************************************************************************\ /**************************************************************************\
* * * *
...@@ -1841,7 +1841,7 @@ static struct net_proto_family atalk_family_ops = { ...@@ -1841,7 +1841,7 @@ static struct net_proto_family atalk_family_ops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
}; };
static struct proto_ops SOCKOPS_WRAPPED(atalk_dgram_ops) = { static const struct proto_ops SOCKOPS_WRAPPED(atalk_dgram_ops) = {
.family = PF_APPLETALK, .family = PF_APPLETALK,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = atalk_release, .release = atalk_release,
......
...@@ -102,7 +102,7 @@ static int pvc_getname(struct socket *sock,struct sockaddr *sockaddr, ...@@ -102,7 +102,7 @@ static int pvc_getname(struct socket *sock,struct sockaddr *sockaddr,
} }
static struct proto_ops pvc_proto_ops = { static const struct proto_ops pvc_proto_ops = {
.family = PF_ATMPVC, .family = PF_ATMPVC,
.owner = THIS_MODULE, .owner = THIS_MODULE,
......
...@@ -613,7 +613,7 @@ static int svc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg) ...@@ -613,7 +613,7 @@ static int svc_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
return error; return error;
} }
static struct proto_ops svc_proto_ops = { static const struct proto_ops svc_proto_ops = {
.family = PF_ATMSVC, .family = PF_ATMSVC,
.owner = THIS_MODULE, .owner = THIS_MODULE,
......
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
HLIST_HEAD(ax25_list); HLIST_HEAD(ax25_list);
DEFINE_SPINLOCK(ax25_list_lock); DEFINE_SPINLOCK(ax25_list_lock);
static struct proto_ops ax25_proto_ops; static const struct proto_ops ax25_proto_ops;
static void ax25_free_sock(struct sock *sk) static void ax25_free_sock(struct sock *sk)
{ {
...@@ -1944,7 +1944,7 @@ static struct net_proto_family ax25_family_ops = { ...@@ -1944,7 +1944,7 @@ static struct net_proto_family ax25_family_ops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
}; };
static struct proto_ops ax25_proto_ops = { static const struct proto_ops ax25_proto_ops = {
.family = PF_AX25, .family = PF_AX25,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = ax25_release, .release = ax25_release,
......
...@@ -146,7 +146,7 @@ static int bnep_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long ...@@ -146,7 +146,7 @@ static int bnep_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long
return 0; return 0;
} }
static struct proto_ops bnep_sock_ops = { static const struct proto_ops bnep_sock_ops = {
.family = PF_BLUETOOTH, .family = PF_BLUETOOTH,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = bnep_sock_release, .release = bnep_sock_release,
......
...@@ -137,7 +137,7 @@ static int cmtp_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long ...@@ -137,7 +137,7 @@ static int cmtp_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long
return -EINVAL; return -EINVAL;
} }
static struct proto_ops cmtp_sock_ops = { static const struct proto_ops cmtp_sock_ops = {
.family = PF_BLUETOOTH, .family = PF_BLUETOOTH,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = cmtp_sock_release, .release = cmtp_sock_release,
......
...@@ -575,7 +575,7 @@ static int hci_sock_getsockopt(struct socket *sock, int level, int optname, char ...@@ -575,7 +575,7 @@ static int hci_sock_getsockopt(struct socket *sock, int level, int optname, char
return 0; return 0;
} }
static struct proto_ops hci_sock_ops = { static const struct proto_ops hci_sock_ops = {
.family = PF_BLUETOOTH, .family = PF_BLUETOOTH,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = hci_sock_release, .release = hci_sock_release,
......
...@@ -143,7 +143,7 @@ static int hidp_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long ...@@ -143,7 +143,7 @@ static int hidp_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned long
return -EINVAL; return -EINVAL;
} }
static struct proto_ops hidp_sock_ops = { static const struct proto_ops hidp_sock_ops = {
.family = PF_BLUETOOTH, .family = PF_BLUETOOTH,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = hidp_sock_release, .release = hidp_sock_release,
......
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
#define VERSION "2.8" #define VERSION "2.8"
static struct proto_ops l2cap_sock_ops; static const struct proto_ops l2cap_sock_ops;
static struct bt_sock_list l2cap_sk_list = { static struct bt_sock_list l2cap_sk_list = {
.lock = RW_LOCK_UNLOCKED .lock = RW_LOCK_UNLOCKED
...@@ -2161,7 +2161,7 @@ static ssize_t l2cap_sysfs_show(struct class *dev, char *buf) ...@@ -2161,7 +2161,7 @@ static ssize_t l2cap_sysfs_show(struct class *dev, char *buf)
static CLASS_ATTR(l2cap, S_IRUGO, l2cap_sysfs_show, NULL); static CLASS_ATTR(l2cap, S_IRUGO, l2cap_sysfs_show, NULL);
static struct proto_ops l2cap_sock_ops = { static const struct proto_ops l2cap_sock_ops = {
.family = PF_BLUETOOTH, .family = PF_BLUETOOTH,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = l2cap_sock_release, .release = l2cap_sock_release,
......
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
#define BT_DBG(D...) #define BT_DBG(D...)
#endif #endif
static struct proto_ops rfcomm_sock_ops; static const struct proto_ops rfcomm_sock_ops;
static struct bt_sock_list rfcomm_sk_list = { static struct bt_sock_list rfcomm_sk_list = {
.lock = RW_LOCK_UNLOCKED .lock = RW_LOCK_UNLOCKED
...@@ -907,7 +907,7 @@ static ssize_t rfcomm_sock_sysfs_show(struct class *dev, char *buf) ...@@ -907,7 +907,7 @@ static ssize_t rfcomm_sock_sysfs_show(struct class *dev, char *buf)
static CLASS_ATTR(rfcomm, S_IRUGO, rfcomm_sock_sysfs_show, NULL); static CLASS_ATTR(rfcomm, S_IRUGO, rfcomm_sock_sysfs_show, NULL);
static struct proto_ops rfcomm_sock_ops = { static const struct proto_ops rfcomm_sock_ops = {
.family = PF_BLUETOOTH, .family = PF_BLUETOOTH,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = rfcomm_sock_release, .release = rfcomm_sock_release,
......
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
#define VERSION "0.5" #define VERSION "0.5"
static struct proto_ops sco_sock_ops; static const struct proto_ops sco_sock_ops;
static struct bt_sock_list sco_sk_list = { static struct bt_sock_list sco_sk_list = {
.lock = RW_LOCK_UNLOCKED .lock = RW_LOCK_UNLOCKED
...@@ -914,7 +914,7 @@ static ssize_t sco_sysfs_show(struct class *dev, char *buf) ...@@ -914,7 +914,7 @@ static ssize_t sco_sysfs_show(struct class *dev, char *buf)
static CLASS_ATTR(sco, S_IRUGO, sco_sysfs_show, NULL); static CLASS_ATTR(sco, S_IRUGO, sco_sysfs_show, NULL);
static struct proto_ops sco_sock_ops = { static const struct proto_ops sco_sock_ops = {
.family = PF_BLUETOOTH, .family = PF_BLUETOOTH,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = sco_sock_release, .release = sco_sock_release,
......
...@@ -680,7 +680,7 @@ void dccp_shutdown(struct sock *sk, int how) ...@@ -680,7 +680,7 @@ void dccp_shutdown(struct sock *sk, int how)
EXPORT_SYMBOL_GPL(dccp_shutdown); EXPORT_SYMBOL_GPL(dccp_shutdown);
static struct proto_ops inet_dccp_ops = { static const struct proto_ops inet_dccp_ops = {
.family = PF_INET, .family = PF_INET,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = inet_release, .release = inet_release,
......
...@@ -149,7 +149,7 @@ static void dn_keepalive(struct sock *sk); ...@@ -149,7 +149,7 @@ static void dn_keepalive(struct sock *sk);
#define DN_SK_HASH_MASK (DN_SK_HASH_SIZE - 1) #define DN_SK_HASH_MASK (DN_SK_HASH_SIZE - 1)
static struct proto_ops dn_proto_ops; static const struct proto_ops dn_proto_ops;
static DEFINE_RWLOCK(dn_hash_lock); static DEFINE_RWLOCK(dn_hash_lock);
static struct hlist_head dn_sk_hash[DN_SK_HASH_SIZE]; static struct hlist_head dn_sk_hash[DN_SK_HASH_SIZE];
static struct hlist_head dn_wild_sk; static struct hlist_head dn_wild_sk;
...@@ -2342,7 +2342,7 @@ static struct net_proto_family dn_family_ops = { ...@@ -2342,7 +2342,7 @@ static struct net_proto_family dn_family_ops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
}; };
static struct proto_ops dn_proto_ops = { static const struct proto_ops dn_proto_ops = {
.family = AF_DECnet, .family = AF_DECnet,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = dn_release, .release = dn_release,
......
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <asm/system.h> #include <asm/system.h>
static struct proto_ops econet_ops; static const struct proto_ops econet_ops;
static struct hlist_head econet_sklist; static struct hlist_head econet_sklist;
static DEFINE_RWLOCK(econet_lock); static DEFINE_RWLOCK(econet_lock);
...@@ -698,7 +698,7 @@ static struct net_proto_family econet_family_ops = { ...@@ -698,7 +698,7 @@ static struct net_proto_family econet_family_ops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
}; };
static struct proto_ops SOCKOPS_WRAPPED(econet_ops) = { static const struct proto_ops SOCKOPS_WRAPPED(econet_ops) = {
.family = PF_ECONET, .family = PF_ECONET,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = econet_release, .release = econet_release,
......
...@@ -785,7 +785,7 @@ int inet_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg) ...@@ -785,7 +785,7 @@ int inet_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
return err; return err;
} }
struct proto_ops inet_stream_ops = { const struct proto_ops inet_stream_ops = {
.family = PF_INET, .family = PF_INET,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = inet_release, .release = inet_release,
...@@ -806,7 +806,7 @@ struct proto_ops inet_stream_ops = { ...@@ -806,7 +806,7 @@ struct proto_ops inet_stream_ops = {
.sendpage = tcp_sendpage .sendpage = tcp_sendpage
}; };
struct proto_ops inet_dgram_ops = { const struct proto_ops inet_dgram_ops = {
.family = PF_INET, .family = PF_INET,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = inet_release, .release = inet_release,
...@@ -831,7 +831,7 @@ struct proto_ops inet_dgram_ops = { ...@@ -831,7 +831,7 @@ struct proto_ops inet_dgram_ops = {
* For SOCK_RAW sockets; should be the same as inet_dgram_ops but without * For SOCK_RAW sockets; should be the same as inet_dgram_ops but without
* udp_poll * udp_poll
*/ */
static struct proto_ops inet_sockraw_ops = { static const struct proto_ops inet_sockraw_ops = {
.family = PF_INET, .family = PF_INET,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = inet_release, .release = inet_release,
......
...@@ -462,7 +462,7 @@ int inet6_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg) ...@@ -462,7 +462,7 @@ int inet6_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
return(0); return(0);
} }
struct proto_ops inet6_stream_ops = { const struct proto_ops inet6_stream_ops = {
.family = PF_INET6, .family = PF_INET6,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = inet6_release, .release = inet6_release,
...@@ -483,7 +483,7 @@ struct proto_ops inet6_stream_ops = { ...@@ -483,7 +483,7 @@ struct proto_ops inet6_stream_ops = {
.sendpage = tcp_sendpage .sendpage = tcp_sendpage
}; };
struct proto_ops inet6_dgram_ops = { const struct proto_ops inet6_dgram_ops = {
.family = PF_INET6, .family = PF_INET6,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = inet6_release, .release = inet6_release,
...@@ -511,7 +511,7 @@ static struct net_proto_family inet6_family_ops = { ...@@ -511,7 +511,7 @@ static struct net_proto_family inet6_family_ops = {
}; };
/* Same as inet6_dgram_ops, sans udp_poll. */ /* Same as inet6_dgram_ops, sans udp_poll. */
static struct proto_ops inet6_sockraw_ops = { static const struct proto_ops inet6_sockraw_ops = {
.family = PF_INET6, .family = PF_INET6,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = inet6_release, .release = inet6_release,
......
...@@ -75,7 +75,7 @@ static struct datalink_proto *pEII_datalink; ...@@ -75,7 +75,7 @@ static struct datalink_proto *pEII_datalink;
static struct datalink_proto *p8023_datalink; static struct datalink_proto *p8023_datalink;
static struct datalink_proto *pSNAP_datalink; static struct datalink_proto *pSNAP_datalink;
static struct proto_ops ipx_dgram_ops; static const struct proto_ops ipx_dgram_ops;
LIST_HEAD(ipx_interfaces); LIST_HEAD(ipx_interfaces);
DEFINE_SPINLOCK(ipx_interfaces_lock); DEFINE_SPINLOCK(ipx_interfaces_lock);
...@@ -1901,7 +1901,7 @@ static struct net_proto_family ipx_family_ops = { ...@@ -1901,7 +1901,7 @@ static struct net_proto_family ipx_family_ops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
}; };
static struct proto_ops SOCKOPS_WRAPPED(ipx_dgram_ops) = { static const struct proto_ops SOCKOPS_WRAPPED(ipx_dgram_ops) = {
.family = PF_IPX, .family = PF_IPX,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = ipx_release, .release = ipx_release,
......
...@@ -62,12 +62,12 @@ ...@@ -62,12 +62,12 @@
static int irda_create(struct socket *sock, int protocol); static int irda_create(struct socket *sock, int protocol);
static struct proto_ops irda_stream_ops; static const struct proto_ops irda_stream_ops;
static struct proto_ops irda_seqpacket_ops; static const struct proto_ops irda_seqpacket_ops;
static struct proto_ops irda_dgram_ops; static const struct proto_ops irda_dgram_ops;
#ifdef CONFIG_IRDA_ULTRA #ifdef CONFIG_IRDA_ULTRA
static struct proto_ops irda_ultra_ops; static const struct proto_ops irda_ultra_ops;
#define ULTRA_MAX_DATA 382 #define ULTRA_MAX_DATA 382
#endif /* CONFIG_IRDA_ULTRA */ #endif /* CONFIG_IRDA_ULTRA */
...@@ -2464,7 +2464,7 @@ static struct net_proto_family irda_family_ops = { ...@@ -2464,7 +2464,7 @@ static struct net_proto_family irda_family_ops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
}; };
static struct proto_ops SOCKOPS_WRAPPED(irda_stream_ops) = { static const struct proto_ops SOCKOPS_WRAPPED(irda_stream_ops) = {
.family = PF_IRDA, .family = PF_IRDA,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = irda_release, .release = irda_release,
...@@ -2485,7 +2485,7 @@ static struct proto_ops SOCKOPS_WRAPPED(irda_stream_ops) = { ...@@ -2485,7 +2485,7 @@ static struct proto_ops SOCKOPS_WRAPPED(irda_stream_ops) = {
.sendpage = sock_no_sendpage, .sendpage = sock_no_sendpage,
}; };
static struct proto_ops SOCKOPS_WRAPPED(irda_seqpacket_ops) = { static const struct proto_ops SOCKOPS_WRAPPED(irda_seqpacket_ops) = {
.family = PF_IRDA, .family = PF_IRDA,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = irda_release, .release = irda_release,
...@@ -2506,7 +2506,7 @@ static struct proto_ops SOCKOPS_WRAPPED(irda_seqpacket_ops) = { ...@@ -2506,7 +2506,7 @@ static struct proto_ops SOCKOPS_WRAPPED(irda_seqpacket_ops) = {
.sendpage = sock_no_sendpage, .sendpage = sock_no_sendpage,
}; };
static struct proto_ops SOCKOPS_WRAPPED(irda_dgram_ops) = { static const struct proto_ops SOCKOPS_WRAPPED(irda_dgram_ops) = {
.family = PF_IRDA, .family = PF_IRDA,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = irda_release, .release = irda_release,
...@@ -2528,7 +2528,7 @@ static struct proto_ops SOCKOPS_WRAPPED(irda_dgram_ops) = { ...@@ -2528,7 +2528,7 @@ static struct proto_ops SOCKOPS_WRAPPED(irda_dgram_ops) = {
}; };
#ifdef CONFIG_IRDA_ULTRA #ifdef CONFIG_IRDA_ULTRA
static struct proto_ops SOCKOPS_WRAPPED(irda_ultra_ops) = { static const struct proto_ops SOCKOPS_WRAPPED(irda_ultra_ops) = {
.family = PF_IRDA, .family = PF_IRDA,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = irda_release, .release = irda_release,
......
...@@ -113,7 +113,7 @@ static __inline__ void pfkey_unlock_table(void) ...@@ -113,7 +113,7 @@ static __inline__ void pfkey_unlock_table(void)
} }
static struct proto_ops pfkey_ops; static const struct proto_ops pfkey_ops;
static void pfkey_insert(struct sock *sk) static void pfkey_insert(struct sock *sk)
{ {
...@@ -3127,7 +3127,7 @@ static int pfkey_recvmsg(struct kiocb *kiocb, ...@@ -3127,7 +3127,7 @@ static int pfkey_recvmsg(struct kiocb *kiocb,
return err; return err;
} }
static struct proto_ops pfkey_ops = { static const struct proto_ops pfkey_ops = {
.family = PF_KEY, .family = PF_KEY,
.owner = THIS_MODULE, .owner = THIS_MODULE,
/* Operations that make no sense on pfkey sockets. */ /* Operations that make no sense on pfkey sockets. */
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
static u16 llc_ui_sap_last_autoport = LLC_SAP_DYN_START; static u16 llc_ui_sap_last_autoport = LLC_SAP_DYN_START;
static u16 llc_ui_sap_link_no_max[256]; static u16 llc_ui_sap_link_no_max[256];
static struct sockaddr_llc llc_ui_addrnull; static struct sockaddr_llc llc_ui_addrnull;
static struct proto_ops llc_ui_ops; static const struct proto_ops llc_ui_ops;
static int llc_ui_wait_for_conn(struct sock *sk, long timeout); static int llc_ui_wait_for_conn(struct sock *sk, long timeout);
static int llc_ui_wait_for_disc(struct sock *sk, long timeout); static int llc_ui_wait_for_disc(struct sock *sk, long timeout);
...@@ -1098,7 +1098,7 @@ static struct net_proto_family llc_ui_family_ops = { ...@@ -1098,7 +1098,7 @@ static struct net_proto_family llc_ui_family_ops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
}; };
static struct proto_ops llc_ui_ops = { static const struct proto_ops llc_ui_ops = {
.family = PF_LLC, .family = PF_LLC,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = llc_ui_release, .release = llc_ui_release,
......
...@@ -293,7 +293,7 @@ static inline int nl_pid_hash_dilute(struct nl_pid_hash *hash, int len) ...@@ -293,7 +293,7 @@ static inline int nl_pid_hash_dilute(struct nl_pid_hash *hash, int len)
return 0; return 0;
} }
static struct proto_ops netlink_ops; static const struct proto_ops netlink_ops;
static int netlink_insert(struct sock *sk, u32 pid) static int netlink_insert(struct sock *sk, u32 pid)
{ {
...@@ -1656,7 +1656,7 @@ int netlink_unregister_notifier(struct notifier_block *nb) ...@@ -1656,7 +1656,7 @@ int netlink_unregister_notifier(struct notifier_block *nb)
return notifier_chain_unregister(&netlink_chain, nb); return notifier_chain_unregister(&netlink_chain, nb);
} }
static struct proto_ops netlink_ops = { static const struct proto_ops netlink_ops = {
.family = PF_NETLINK, .family = PF_NETLINK,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = netlink_release, .release = netlink_release,
......
...@@ -63,7 +63,7 @@ static unsigned short circuit = 0x101; ...@@ -63,7 +63,7 @@ static unsigned short circuit = 0x101;
static HLIST_HEAD(nr_list); static HLIST_HEAD(nr_list);
static DEFINE_SPINLOCK(nr_list_lock); static DEFINE_SPINLOCK(nr_list_lock);
static struct proto_ops nr_proto_ops; static const struct proto_ops nr_proto_ops;
/* /*
* Socket removal during an interrupt is now safe. * Socket removal during an interrupt is now safe.
...@@ -1337,7 +1337,7 @@ static struct net_proto_family nr_family_ops = { ...@@ -1337,7 +1337,7 @@ static struct net_proto_family nr_family_ops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
}; };
static struct proto_ops nr_proto_ops = { static const struct proto_ops nr_proto_ops = {
.family = PF_NETROM, .family = PF_NETROM,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = nr_release, .release = nr_release,
......
...@@ -251,10 +251,10 @@ static void packet_sock_destruct(struct sock *sk) ...@@ -251,10 +251,10 @@ static void packet_sock_destruct(struct sock *sk)
} }
static struct proto_ops packet_ops; static const struct proto_ops packet_ops;
#ifdef CONFIG_SOCK_PACKET #ifdef CONFIG_SOCK_PACKET
static struct proto_ops packet_ops_spkt; static const struct proto_ops packet_ops_spkt;
static int packet_rcv_spkt(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt, struct net_device *orig_dev) static int packet_rcv_spkt(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt, struct net_device *orig_dev)
{ {
...@@ -1784,7 +1784,7 @@ static int packet_mmap(struct file *file, struct socket *sock, struct vm_area_st ...@@ -1784,7 +1784,7 @@ static int packet_mmap(struct file *file, struct socket *sock, struct vm_area_st
#ifdef CONFIG_SOCK_PACKET #ifdef CONFIG_SOCK_PACKET
static struct proto_ops packet_ops_spkt = { static const struct proto_ops packet_ops_spkt = {
.family = PF_PACKET, .family = PF_PACKET,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = packet_release, .release = packet_release,
...@@ -1806,7 +1806,7 @@ static struct proto_ops packet_ops_spkt = { ...@@ -1806,7 +1806,7 @@ static struct proto_ops packet_ops_spkt = {
}; };
#endif #endif
static struct proto_ops packet_ops = { static const struct proto_ops packet_ops = {
.family = PF_PACKET, .family = PF_PACKET,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = packet_release, .release = packet_release,
......
...@@ -866,7 +866,7 @@ static int sctp_inet6_supported_addrs(const struct sctp_sock *opt, ...@@ -866,7 +866,7 @@ static int sctp_inet6_supported_addrs(const struct sctp_sock *opt,
return 2; return 2;
} }
static struct proto_ops inet6_seqpacket_ops = { static const struct proto_ops inet6_seqpacket_ops = {
.family = PF_INET6, .family = PF_INET6,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = inet6_release, .release = inet6_release,
......
...@@ -829,7 +829,7 @@ static struct notifier_block sctp_inetaddr_notifier = { ...@@ -829,7 +829,7 @@ static struct notifier_block sctp_inetaddr_notifier = {
}; };
/* Socket operations. */ /* Socket operations. */
static struct proto_ops inet_seqpacket_ops = { static const struct proto_ops inet_seqpacket_ops = {
.family = PF_INET, .family = PF_INET,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = inet_release, /* Needs to be wrapped... */ .release = inet_release, /* Needs to be wrapped... */
......
...@@ -758,7 +758,7 @@ svc_tcp_accept(struct svc_sock *svsk) ...@@ -758,7 +758,7 @@ svc_tcp_accept(struct svc_sock *svsk)
struct svc_serv *serv = svsk->sk_server; struct svc_serv *serv = svsk->sk_server;
struct socket *sock = svsk->sk_sock; struct socket *sock = svsk->sk_sock;
struct socket *newsock; struct socket *newsock;
struct proto_ops *ops; const struct proto_ops *ops;
struct svc_sock *newsvsk; struct svc_sock *newsvsk;
int err, slen; int err, slen;
......
...@@ -473,7 +473,7 @@ static int unix_dgram_connect(struct socket *, struct sockaddr *, ...@@ -473,7 +473,7 @@ static int unix_dgram_connect(struct socket *, struct sockaddr *,
static int unix_seqpacket_sendmsg(struct kiocb *, struct socket *, static int unix_seqpacket_sendmsg(struct kiocb *, struct socket *,
struct msghdr *, size_t); struct msghdr *, size_t);
static struct proto_ops unix_stream_ops = { static const struct proto_ops unix_stream_ops = {
.family = PF_UNIX, .family = PF_UNIX,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = unix_release, .release = unix_release,
...@@ -494,7 +494,7 @@ static struct proto_ops unix_stream_ops = { ...@@ -494,7 +494,7 @@ static struct proto_ops unix_stream_ops = {
.sendpage = sock_no_sendpage, .sendpage = sock_no_sendpage,
}; };
static struct proto_ops unix_dgram_ops = { static const struct proto_ops unix_dgram_ops = {
.family = PF_UNIX, .family = PF_UNIX,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = unix_release, .release = unix_release,
...@@ -515,7 +515,7 @@ static struct proto_ops unix_dgram_ops = { ...@@ -515,7 +515,7 @@ static struct proto_ops unix_dgram_ops = {
.sendpage = sock_no_sendpage, .sendpage = sock_no_sendpage,
}; };
static struct proto_ops unix_seqpacket_ops = { static const struct proto_ops unix_seqpacket_ops = {
.family = PF_UNIX, .family = PF_UNIX,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = unix_release, .release = unix_release,
......
...@@ -181,7 +181,7 @@ struct wanpipe_opt ...@@ -181,7 +181,7 @@ struct wanpipe_opt
#endif #endif
static int sk_count; static int sk_count;
extern struct proto_ops wanpipe_ops; extern const struct proto_ops wanpipe_ops;
static unsigned long find_free_critical; static unsigned long find_free_critical;
static void wanpipe_unlink_driver(struct sock *sk); static void wanpipe_unlink_driver(struct sock *sk);
...@@ -2546,7 +2546,7 @@ static int wanpipe_connect(struct socket *sock, struct sockaddr *uaddr, int addr ...@@ -2546,7 +2546,7 @@ static int wanpipe_connect(struct socket *sock, struct sockaddr *uaddr, int addr
return 0; return 0;
} }
struct proto_ops wanpipe_ops = { const struct proto_ops wanpipe_ops = {
.family = PF_WANPIPE, .family = PF_WANPIPE,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = wanpipe_release, .release = wanpipe_release,
......
...@@ -64,7 +64,7 @@ int sysctl_x25_ack_holdback_timeout = X25_DEFAULT_T2; ...@@ -64,7 +64,7 @@ int sysctl_x25_ack_holdback_timeout = X25_DEFAULT_T2;
HLIST_HEAD(x25_list); HLIST_HEAD(x25_list);
DEFINE_RWLOCK(x25_list_lock); DEFINE_RWLOCK(x25_list_lock);
static struct proto_ops x25_proto_ops; static const struct proto_ops x25_proto_ops;
static struct x25_address null_x25_address = {" "}; static struct x25_address null_x25_address = {" "};
...@@ -1391,7 +1391,7 @@ static struct net_proto_family x25_family_ops = { ...@@ -1391,7 +1391,7 @@ static struct net_proto_family x25_family_ops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
}; };
static struct proto_ops SOCKOPS_WRAPPED(x25_proto_ops) = { static const struct proto_ops SOCKOPS_WRAPPED(x25_proto_ops) = {
.family = AF_X25, .family = AF_X25,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.release = x25_release, .release = x25_release,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment