Commit cc516700 authored by Varun Prakash's avatar Varun Prakash Committed by David S. Miller

libcxgb,iw_cxgb4,cxgbit: add cxgb_compute_wscale()

Add cxgb_compute_wscale() in libcxgb_cm.h to remove
it's duplicate definitions from cxgb4/cm.c and
cxgbit/cxgbit_cm.c.
Signed-off-by: default avatarVarun Prakash <varun@chelsio.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 44c6d069
...@@ -689,7 +689,7 @@ static int send_connect(struct c4iw_ep *ep) ...@@ -689,7 +689,7 @@ static int send_connect(struct c4iw_ep *ep)
u64 opt0; u64 opt0;
u32 opt2; u32 opt2;
unsigned int mtu_idx; unsigned int mtu_idx;
int wscale; u32 wscale;
int win, sizev4, sizev6, wrlen; int win, sizev4, sizev6, wrlen;
struct sockaddr_in *la = (struct sockaddr_in *) struct sockaddr_in *la = (struct sockaddr_in *)
&ep->com.local_addr; &ep->com.local_addr;
...@@ -739,7 +739,7 @@ static int send_connect(struct c4iw_ep *ep) ...@@ -739,7 +739,7 @@ static int send_connect(struct c4iw_ep *ep)
cxgb_best_mtu(ep->com.dev->rdev.lldi.mtus, ep->mtu, &mtu_idx, cxgb_best_mtu(ep->com.dev->rdev.lldi.mtus, ep->mtu, &mtu_idx,
enable_tcp_timestamps, enable_tcp_timestamps,
(ep->com.remote_addr.ss_family == AF_INET) ? 0 : 1); (ep->com.remote_addr.ss_family == AF_INET) ? 0 : 1);
wscale = compute_wscale(rcv_win); wscale = cxgb_compute_wscale(rcv_win);
/* /*
* Specify the largest window that will fit in opt0. The * Specify the largest window that will fit in opt0. The
...@@ -1891,7 +1891,7 @@ static int send_fw_act_open_req(struct c4iw_ep *ep, unsigned int atid) ...@@ -1891,7 +1891,7 @@ static int send_fw_act_open_req(struct c4iw_ep *ep, unsigned int atid)
struct sk_buff *skb; struct sk_buff *skb;
struct fw_ofld_connection_wr *req; struct fw_ofld_connection_wr *req;
unsigned int mtu_idx; unsigned int mtu_idx;
int wscale; u32 wscale;
struct sockaddr_in *sin; struct sockaddr_in *sin;
int win; int win;
...@@ -1919,7 +1919,7 @@ static int send_fw_act_open_req(struct c4iw_ep *ep, unsigned int atid) ...@@ -1919,7 +1919,7 @@ static int send_fw_act_open_req(struct c4iw_ep *ep, unsigned int atid)
cxgb_best_mtu(ep->com.dev->rdev.lldi.mtus, ep->mtu, &mtu_idx, cxgb_best_mtu(ep->com.dev->rdev.lldi.mtus, ep->mtu, &mtu_idx,
enable_tcp_timestamps, enable_tcp_timestamps,
(ep->com.remote_addr.ss_family == AF_INET) ? 0 : 1); (ep->com.remote_addr.ss_family == AF_INET) ? 0 : 1);
wscale = compute_wscale(rcv_win); wscale = cxgb_compute_wscale(rcv_win);
/* /*
* Specify the largest window that will fit in opt0. The * Specify the largest window that will fit in opt0. The
...@@ -2339,7 +2339,7 @@ static int accept_cr(struct c4iw_ep *ep, struct sk_buff *skb, ...@@ -2339,7 +2339,7 @@ static int accept_cr(struct c4iw_ep *ep, struct sk_buff *skb,
unsigned int mtu_idx; unsigned int mtu_idx;
u64 opt0; u64 opt0;
u32 opt2; u32 opt2;
int wscale; u32 wscale;
struct cpl_t5_pass_accept_rpl *rpl5 = NULL; struct cpl_t5_pass_accept_rpl *rpl5 = NULL;
int win; int win;
enum chip_type adapter_type = ep->com.dev->rdev.lldi.adapter_type; enum chip_type adapter_type = ep->com.dev->rdev.lldi.adapter_type;
...@@ -2363,7 +2363,7 @@ static int accept_cr(struct c4iw_ep *ep, struct sk_buff *skb, ...@@ -2363,7 +2363,7 @@ static int accept_cr(struct c4iw_ep *ep, struct sk_buff *skb,
cxgb_best_mtu(ep->com.dev->rdev.lldi.mtus, ep->mtu, &mtu_idx, cxgb_best_mtu(ep->com.dev->rdev.lldi.mtus, ep->mtu, &mtu_idx,
enable_tcp_timestamps && req->tcpopt.tstamp, enable_tcp_timestamps && req->tcpopt.tstamp,
(ep->com.remote_addr.ss_family == AF_INET) ? 0 : 1); (ep->com.remote_addr.ss_family == AF_INET) ? 0 : 1);
wscale = compute_wscale(rcv_win); wscale = cxgb_compute_wscale(rcv_win);
/* /*
* Specify the largest window that will fit in opt0. The * Specify the largest window that will fit in opt0. The
......
...@@ -881,15 +881,6 @@ static inline struct c4iw_listen_ep *to_listen_ep(struct iw_cm_id *cm_id) ...@@ -881,15 +881,6 @@ static inline struct c4iw_listen_ep *to_listen_ep(struct iw_cm_id *cm_id)
return cm_id->provider_data; return cm_id->provider_data;
} }
static inline int compute_wscale(int win)
{
int wscale = 0;
while (wscale < 14 && (65535<<wscale) < win)
wscale++;
return wscale;
}
static inline int ocqp_supported(const struct cxgb4_lld_info *infop) static inline int ocqp_supported(const struct cxgb4_lld_info *infop)
{ {
#if defined(__i386__) || defined(__x86_64__) || defined(CONFIG_PPC64) #if defined(__i386__) || defined(__x86_64__) || defined(CONFIG_PPC64)
......
...@@ -74,4 +74,13 @@ cxgb_best_mtu(const unsigned short *mtus, unsigned short mtu, ...@@ -74,4 +74,13 @@ cxgb_best_mtu(const unsigned short *mtus, unsigned short mtu,
cxgb4_best_aligned_mtu(mtus, hdr_size, data_size, 8, idx); cxgb4_best_aligned_mtu(mtus, hdr_size, data_size, 8, idx);
} }
static inline u32 cxgb_compute_wscale(u32 win)
{
u32 wscale = 0;
while (wscale < 14 && (65535 << wscale) < win)
wscale++;
return wscale;
}
#endif #endif
...@@ -1085,15 +1085,6 @@ static int cxgbit_alloc_csk_skb(struct cxgbit_sock *csk) ...@@ -1085,15 +1085,6 @@ static int cxgbit_alloc_csk_skb(struct cxgbit_sock *csk)
return -ENOMEM; return -ENOMEM;
} }
static u32 cxgbit_compute_wscale(u32 win)
{
u32 wscale = 0;
while (wscale < 14 && (65535 << wscale) < win)
wscale++;
return wscale;
}
static void static void
cxgbit_pass_accept_rpl(struct cxgbit_sock *csk, struct cpl_pass_accept_req *req) cxgbit_pass_accept_rpl(struct cxgbit_sock *csk, struct cpl_pass_accept_req *req)
{ {
...@@ -1124,7 +1115,7 @@ cxgbit_pass_accept_rpl(struct cxgbit_sock *csk, struct cpl_pass_accept_req *req) ...@@ -1124,7 +1115,7 @@ cxgbit_pass_accept_rpl(struct cxgbit_sock *csk, struct cpl_pass_accept_req *req)
cxgb_best_mtu(csk->com.cdev->lldi.mtus, csk->mtu, &mtu_idx, cxgb_best_mtu(csk->com.cdev->lldi.mtus, csk->mtu, &mtu_idx,
req->tcpopt.tstamp, req->tcpopt.tstamp,
(csk->com.remote_addr.ss_family == AF_INET) ? 0 : 1); (csk->com.remote_addr.ss_family == AF_INET) ? 0 : 1);
wscale = cxgbit_compute_wscale(csk->rcv_win); wscale = cxgb_compute_wscale(csk->rcv_win);
/* /*
* Specify the largest window that will fit in opt0. The * Specify the largest window that will fit in opt0. The
* remainder will be specified in the rx_data_ack. * remainder will be specified in the rx_data_ack.
......
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