From ab7c812c73cc2231569f2c0d8e7024dfe33b5fdf Mon Sep 17 00:00:00 2001 From: Eldad Zinger Date: Sun, 6 Jun 2010 12:07:59 +0300 Subject: [PATCH] sdp: BUG2038 - transmission goal size won't exceed SDP_MAX_PAYLOAD Signed-off-by: Eldad Zinger --- drivers/infiniband/ulp/sdp/sdp_main.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/drivers/infiniband/ulp/sdp/sdp_main.c b/drivers/infiniband/ulp/sdp/sdp_main.c index 51ee856ab49f..e46f1391afb8 100644 --- a/drivers/infiniband/ulp/sdp/sdp_main.c +++ b/drivers/infiniband/ulp/sdp/sdp_main.c @@ -1858,7 +1858,7 @@ static int sdp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, struct sdp_sock *ssk = sdp_sk(sk); struct sk_buff *skb; int iovlen, flags; - int size_goal; + const int size_goal = MIN(ssk->xmit_size_goal, SDP_MAX_PAYLOAD); int err, copied; long timeo; struct bzcopy_state *bz = NULL; @@ -1881,8 +1881,6 @@ static int sdp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, /* This should be in poll */ clear_bit(SOCK_ASYNC_NOSPACE, &sk->sk_socket->flags); - size_goal = ssk->xmit_size_goal; - /* Ok commence sending. */ iovlen = msg->msg_iovlen; copied = 0; @@ -1919,10 +1917,6 @@ static int sdp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, sdp_dbg_data(sk, "ZCopied: 0x%x/0x%x\n", zcopied, seglen); } - /* Limiting the size_goal is reqired when using 64K pages*/ - if (size_goal > SDP_MAX_PAYLOAD) - size_goal = SDP_MAX_PAYLOAD; - if (bz) sdp_bz_cleanup(bz); bz = sdp_bz_setup(ssk, from, seglen, size_goal); @@ -2039,8 +2033,6 @@ wait_for_memory: bz ? &bz->busy : NULL); if (err) goto do_error; - - size_goal = ssk->xmit_size_goal; } } -- 2.50.1