From: Eldad Zinger Date: Sun, 6 Jun 2010 09:07:59 +0000 (+0300) Subject: sdp: BUG2038 - transmission goal size won't exceed SDP_MAX_PAYLOAD X-Git-Tag: v4.1.12-92~264^2~5^2~179 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=ab7c812c73cc2231569f2c0d8e7024dfe33b5fdf;p=users%2Fjedix%2Flinux-maple.git sdp: BUG2038 - transmission goal size won't exceed SDP_MAX_PAYLOAD Signed-off-by: Eldad Zinger --- diff --git a/drivers/infiniband/ulp/sdp/sdp_main.c b/drivers/infiniband/ulp/sdp/sdp_main.c index 51ee856ab49f8..e46f1391afb8d 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; } }