diff options
Diffstat (limited to 'net/ipv4/tcp_vegas.c')
| -rw-r--r-- | net/ipv4/tcp_vegas.c | 19 | 
1 files changed, 10 insertions, 9 deletions
| diff --git a/net/ipv4/tcp_vegas.c b/net/ipv4/tcp_vegas.c index c71a1b8f7bde..a6cea1d5e20d 100644 --- a/net/ipv4/tcp_vegas.c +++ b/net/ipv4/tcp_vegas.c @@ -286,18 +286,19 @@ static void tcp_vegas_cong_avoid(struct sock *sk, u32 ack, u32 acked)  }  /* Extract info for Tcp socket info provided via netlink. */ -int tcp_vegas_get_info(struct sock *sk, u32 ext, struct sk_buff *skb) +size_t tcp_vegas_get_info(struct sock *sk, u32 ext, int *attr, +			  union tcp_cc_info *info)  {  	const struct vegas *ca = inet_csk_ca(sk); +  	if (ext & (1 << (INET_DIAG_VEGASINFO - 1))) { -		struct tcpvegas_info info = { -			.tcpv_enabled = ca->doing_vegas_now, -			.tcpv_rttcnt = ca->cntRTT, -			.tcpv_rtt = ca->baseRTT, -			.tcpv_minrtt = ca->minRTT, -		}; - -		return nla_put(skb, INET_DIAG_VEGASINFO, sizeof(info), &info); +		info->vegas.tcpv_enabled = ca->doing_vegas_now, +		info->vegas.tcpv_rttcnt = ca->cntRTT, +		info->vegas.tcpv_rtt = ca->baseRTT, +		info->vegas.tcpv_minrtt = ca->minRTT, + +		*attr = INET_DIAG_VEGASINFO; +		return sizeof(struct tcpvegas_info);  	}  	return 0;  } |