netxen_nic: Fix estimation of recv MSS in case of LRO
authorRajesh Borundia <rajesh.borundia@qlogic.com>
Wed, 9 May 2012 05:55:30 +0000 (05:55 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 10 May 2012 02:53:04 +0000 (22:53 -0400)
commit01da0c2b0391443d98c2088121901d029f72a4f2
tree086fb635feffda45ab629820127e8442e41ae16e
parentd612698b6246032370b96abc9afe94c8a66772c2
netxen_nic: Fix estimation of recv MSS in case of LRO

o Linux stack estimates MSS from skb->len or skb_shinfo(skb)->gso_size.
In case of LRO skb->len is aggregate of len of number of packets hence MSS
obtained using skb->len would be incorrect. Incorrect estimation of recv MSS
would lead to delayed acks in some traffic patterns (which sends two or three
packets and wait for ack and only then send remaining packets). This leads to
drop in performance. Hence we need to set gso_size to MSS obtained from firmware.

o This is fixed recently in firmware hence the MSS is obtained based on
capability. If fw is capable of sending the MSS then only driver sets the gso_size.

Signed-off-by: Rajesh Borundia <rajesh.borundia@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/qlogic/netxen/netxen_nic.h
drivers/net/ethernet/qlogic/netxen/netxen_nic_ctx.c
drivers/net/ethernet/qlogic/netxen/netxen_nic_hdr.h
drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c
drivers/net/ethernet/qlogic/netxen/netxen_nic_main.c