X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=include%2Fnet%2Fsctp%2Fstructs.h;h=a89e36197afbad160a1646bb080bb723f38e9649;hb=293035479942400a7fe8e4f72465d4e4e466b91a;hp=c0d5848c33dc1535688799b4020a2f9a7b52d586;hpb=ddeee3ce7fbf0e800f2a26a76d6018b42b337cc2;p=powerpc.git diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index c0d5848c33..a89e36197a 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h @@ -207,6 +207,9 @@ extern struct sctp_globals { * It is a list of sctp_sockaddr_entry. */ struct list_head local_addr_list; + + /* Lock that protects the local_addr_list writers */ + spinlock_t addr_list_lock; /* Flag to indicate if addip is enabled. */ int addip_enable; @@ -242,6 +245,7 @@ extern struct sctp_globals { #define sctp_port_alloc_lock (sctp_globals.port_alloc_lock) #define sctp_port_hashtable (sctp_globals.port_hashtable) #define sctp_local_addr_list (sctp_globals.local_addr_list) +#define sctp_local_addr_lock (sctp_globals.addr_list_lock) #define sctp_addip_enable (sctp_globals.addip_enable) #define sctp_prsctp_enable (sctp_globals.prsctp_enable) @@ -737,8 +741,10 @@ const union sctp_addr *sctp_source(const struct sctp_chunk *chunk); /* This is a structure for holding either an IPv6 or an IPv4 address. */ struct sctp_sockaddr_entry { struct list_head list; + struct rcu_head rcu; union sctp_addr a; __u8 use_as_src; + __u8 valid; }; typedef struct sctp_chunk *(sctp_packet_phandler_t)(struct sctp_association *);