lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 8 Apr 2015 01:26:17 +0000 From: Sheng Yong <shengyong1@...wei.com> To: <davem@...emloft.net>, <yoshfuji@...ux-ipv6.org>, <kuznet@....inr.ac.ru>, <jmorris@...ei.org>, <kaber@...sh.net> CC: <netdev@...r.kernel.org> Subject: [RFC PATCH 1/2] net: frag: add typedef of getfrag callback function Add typedef of getfrag callback function to simplify the parameters list of calling functions. Signed-off-by: Sheng Yong <shengyong1@...wei.com> --- include/net/inet_frag.h | 4 ++++ include/net/ip.h | 11 ++++------- include/net/ipv6.h | 8 ++------ net/core/skbuff.c | 4 +--- net/ipv4/ip_output.c | 12 ++++-------- net/ipv4/udp.c | 2 +- net/ipv6/ip6_output.c | 15 ++++----------- net/ipv6/udp.c | 2 +- 8 files changed, 21 insertions(+), 37 deletions(-) diff --git a/include/net/inet_frag.h b/include/net/inet_frag.h index 8d17655..6e4664b 100644 --- a/include/net/inet_frag.h +++ b/include/net/inet_frag.h @@ -2,6 +2,10 @@ #define __NET_FRAG_H__ #include <linux/percpu_counter.h> +#include <linux/skbuff.h> + +typedef int (*getfrag_callback)(void *from, char *to, int offset, int len, + int odd, struct sk_buff *skb); struct netns_frags { /* The percpu_counter "mem" need to be cacheline aligned. diff --git a/include/net/ip.h b/include/net/ip.h index 69cd9cb..ca18bd9 100644 --- a/include/net/ip.h +++ b/include/net/ip.h @@ -121,8 +121,7 @@ static inline int ip_local_out(struct sk_buff *skb) int ip_queue_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl); void ip_init(void); int ip_append_data(struct sock *sk, struct flowi4 *fl4, - int getfrag(void *from, char *to, int offset, int len, - int odd, struct sk_buff *skb), + getfrag_callback getfrag, void *from, int len, int protolen, struct ipcm_cookie *ipc, struct rtable **rt, @@ -138,11 +137,9 @@ int ip_send_skb(struct net *net, struct sk_buff *skb); int ip_push_pending_frames(struct sock *sk, struct flowi4 *fl4); void ip_flush_pending_frames(struct sock *sk); struct sk_buff *ip_make_skb(struct sock *sk, struct flowi4 *fl4, - int getfrag(void *from, char *to, int offset, - int len, int odd, struct sk_buff *skb), - void *from, int length, int transhdrlen, - struct ipcm_cookie *ipc, struct rtable **rtp, - unsigned int flags); + getfrag_callback getfrag, void *from, int length, + int transhdrlen, struct ipcm_cookie *ipc, + struct rtable **rtp, unsigned int flags); static inline struct sk_buff *ip_finish_skb(struct sock *sk, struct flowi4 *fl4) { diff --git a/include/net/ipv6.h b/include/net/ipv6.h index 65142e6..679c5e2 100644 --- a/include/net/ipv6.h +++ b/include/net/ipv6.h @@ -779,9 +779,7 @@ int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6, int ip6_find_1stfragopt(struct sk_buff *skb, u8 **nexthdr); -int ip6_append_data(struct sock *sk, - int getfrag(void *from, char *to, int offset, int len, - int odd, struct sk_buff *skb), +int ip6_append_data(struct sock *sk, getfrag_callback getfrag, void *from, int length, int transhdrlen, int hlimit, int tclass, struct ipv6_txoptions *opt, struct flowi6 *fl6, struct rt6_info *rt, unsigned int flags, int dontfrag); @@ -795,9 +793,7 @@ int ip6_send_skb(struct sk_buff *skb); struct sk_buff *__ip6_make_skb(struct sock *sk, struct sk_buff_head *queue, struct inet_cork_full *cork, struct inet6_cork *v6_cork); -struct sk_buff *ip6_make_skb(struct sock *sk, - int getfrag(void *from, char *to, int offset, - int len, int odd, struct sk_buff *skb), +struct sk_buff *ip6_make_skb(struct sock *sk, getfrag_callback getfrag, void *from, int length, int transhdrlen, int hlimit, int tclass, struct ipv6_txoptions *opt, struct flowi6 *fl6, struct rt6_info *rt, diff --git a/net/core/skbuff.c b/net/core/skbuff.c index cdb939b..10995a4 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -2899,9 +2899,7 @@ EXPORT_SYMBOL(skb_find_text); * of the skb if any page alloc fails user this procedure returns -ENOMEM */ int skb_append_datato_frags(struct sock *sk, struct sk_buff *skb, - int (*getfrag)(void *from, char *to, int offset, - int len, int odd, struct sk_buff *skb), - void *from, int length) + getfrag_callback getfrag, void *from, int length) { int frg_cnt = skb_shinfo(skb)->nr_frags; int copy; diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index 26f6f79..d5c5955 100644 --- a/net/ipv4/ip_output.c +++ b/net/ipv4/ip_output.c @@ -778,8 +778,7 @@ csum_page(struct page *page, int offset, int copy) static inline int ip_ufo_append_data(struct sock *sk, struct sk_buff_head *queue, - int getfrag(void *from, char *to, int offset, int len, - int odd, struct sk_buff *skb), + getfrag_callback getfrag, void *from, int length, int hh_len, int fragheaderlen, int transhdrlen, int maxfraglen, unsigned int flags) { @@ -834,8 +833,7 @@ static int __ip_append_data(struct sock *sk, struct sk_buff_head *queue, struct inet_cork *cork, struct page_frag *pfrag, - int getfrag(void *from, char *to, int offset, - int len, int odd, struct sk_buff *skb), + getfrag_callback getfrag, void *from, int length, int transhdrlen, unsigned int flags) { @@ -1130,8 +1128,7 @@ static int ip_setup_cork(struct sock *sk, struct inet_cork *cork, * LATER: length must be adjusted by pad at tail, when it is required. */ int ip_append_data(struct sock *sk, struct flowi4 *fl4, - int getfrag(void *from, char *to, int offset, int len, - int odd, struct sk_buff *skb), + getfrag_callback getfrag, void *from, int length, int transhdrlen, struct ipcm_cookie *ipc, struct rtable **rtp, unsigned int flags) @@ -1457,8 +1454,7 @@ void ip_flush_pending_frames(struct sock *sk) struct sk_buff *ip_make_skb(struct sock *sk, struct flowi4 *fl4, - int getfrag(void *from, char *to, int offset, - int len, int odd, struct sk_buff *skb), + getfrag_callback getfrag, void *from, int length, int transhdrlen, struct ipcm_cookie *ipc, struct rtable **rtp, unsigned int flags) diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index 2162fc6..d1fc362 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c @@ -889,7 +889,7 @@ int udp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) u8 tos; int err, is_udplite = IS_UDPLITE(sk); int corkreq = up->corkflag || msg->msg_flags&MSG_MORE; - int (*getfrag)(void *, char *, int, int, int, struct sk_buff *); + getfrag_callback getfrag; struct sk_buff *skb; struct ip_options_data opt_copy; diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index 654f245..d5c3bf0 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -1029,9 +1029,7 @@ struct dst_entry *ip6_sk_dst_lookup_flow(struct sock *sk, struct flowi6 *fl6, EXPORT_SYMBOL_GPL(ip6_sk_dst_lookup_flow); static inline int ip6_ufo_append_data(struct sock *sk, - struct sk_buff_head *queue, - int getfrag(void *from, char *to, int offset, int len, - int odd, struct sk_buff *skb), + struct sk_buff_head *queue, getfrag_callback getfrag, void *from, int length, int hh_len, int fragheaderlen, int transhdrlen, int mtu, unsigned int flags, struct rt6_info *rt) @@ -1198,8 +1196,7 @@ static int __ip6_append_data(struct sock *sk, struct inet_cork *cork, struct inet6_cork *v6_cork, struct page_frag *pfrag, - int getfrag(void *from, char *to, int offset, - int len, int odd, struct sk_buff *skb), + getfrag_callback getfrag, void *from, int length, int transhdrlen, unsigned int flags, int dontfrag) { @@ -1505,9 +1502,7 @@ error: return err; } -int ip6_append_data(struct sock *sk, - int getfrag(void *from, char *to, int offset, int len, - int odd, struct sk_buff *skb), +int ip6_append_data(struct sock *sk, getfrag_callback getfrag, void *from, int length, int transhdrlen, int hlimit, int tclass, struct ipv6_txoptions *opt, struct flowi6 *fl6, struct rt6_info *rt, unsigned int flags, int dontfrag) @@ -1690,9 +1685,7 @@ void ip6_flush_pending_frames(struct sock *sk) } EXPORT_SYMBOL_GPL(ip6_flush_pending_frames); -struct sk_buff *ip6_make_skb(struct sock *sk, - int getfrag(void *from, char *to, int offset, - int len, int odd, struct sk_buff *skb), +struct sk_buff *ip6_make_skb(struct sock *sk, getfrag_callback getfrag, void *from, int length, int transhdrlen, int hlimit, int tclass, struct ipv6_txoptions *opt, struct flowi6 *fl6, diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index 120aff9..5f0f05f 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c @@ -1121,7 +1121,7 @@ int udpv6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) int err; int connected = 0; int is_udplite = IS_UDPLITE(sk); - int (*getfrag)(void *, char *, int, int, int, struct sk_buff *); + getfrag_callback getfrag; /* destination address check */ if (sin6) { -- 1.8.3.4 -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists