From: Gerrit Renker <[EMAIL PROTECTED]> Date: Mon, 27 Nov 2006 10:44:33 +0000
> [UDP(-Lite)]: consolidate v4 and v6 get|setsockopt code > > This is for 2.6.20. > > This patch consolidates set/getsockopt code between UDP(-Lite) v4 and 6. The > justification is that UDP(-Lite) is a transport-layer protocol and therefore > the socket option code (at least in theory) should be AF-independent. > > Furthermore, there is the following code reduplication: > * do_udp{,v6}_getsockopt is 100% identical between v4 and v6 > * do_udp{,v6}_setsockopt is identical up to the following differerence > --v4 in contrast to v4 additionally allows the experimental > encapsulation > types UDP_ENCAP_ESPINUDP and UDP_ENCAP_ESPINUDP_NON_IKE > --the remainder is identical between v4 and v6 > I believe that this difference is of little relevance. > > The advantages in not duplicating twice almost completely identical code. > > The patch further simplifies the interface of udp{,v6}_push_pending_frames, > since for the second argument (struct udp_sock *up) it always holds that > up = udp_sk(sk); where sk is the first function argument. > > > Signed-off-by: Gerrit Renker <[EMAIL PROTECTED]> Applied, except that I fixed up the extraneous spaces here: > @@ -1366,7 +1368,8 @@ int udp_setsockopt(struct sock *sk, int > char __user *optval, int optlen) > { > if (level == SOL_UDP || level == SOL_UDPLITE) > - return do_udp_setsockopt(sk, level, optname, optval, optlen); > + return udp_lib_setsockopt(sk, level, optname, optval, optlen, > + udp_push_pending_frames ); > return ip_setsockopt(sk, level, optname, optval, optlen); > } > > @@ -1375,13 +1378,14 @@ int compat_udp_setsockopt(struct sock *s > char __user *optval, int optlen) > { > if (level == SOL_UDP || level == SOL_UDPLITE) > - return do_udp_setsockopt(sk, level, optname, optval, optlen); > + return udp_lib_setsockopt(sk, level, optname, optval, optlen, > + udp_push_pending_frames ); > return compat_ip_setsockopt(sk, level, optname, optval, optlen); > } > #endif and here: > int udpv6_setsockopt(struct sock *sk, int level, int optname, > char __user *optval, int optlen) > { > if (level == SOL_UDP || level == SOL_UDPLITE) > - return do_udpv6_setsockopt(sk, level, optname, optval, optlen); > + return udp_lib_setsockopt(sk, level, optname, optval, optlen, > + udp_v6_push_pending_frames ); > return ipv6_setsockopt(sk, level, optname, optval, optlen); > } > > @@ -919,58 +860,17 @@ int compat_udpv6_setsockopt(struct sock > char __user *optval, int optlen) > { > if (level == SOL_UDP || level == SOL_UDPLITE) > - return do_udpv6_setsockopt(sk, level, optname, optval, optlen); > + return udp_lib_setsockopt(sk, level, optname, optval, optlen, > + udp_v6_push_pending_frames ); > return compat_ipv6_setsockopt(sk, level, optname, optval, optlen); > } > #endif Specifically, the space between the push_pending_frames final argument passed and the closing parenthesis was removed. Why did you put that there? It looks fugly :) - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html