]> www.infradead.org Git - users/jedix/linux-maple.git/commit
IB/ipoib: Add handling for sending of skb with many frags
authorHans Westgaard Ry <hans.westgaard.ry@oracle.com>
Wed, 16 Mar 2016 13:01:02 +0000 (14:01 +0100)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 5 May 2016 21:11:43 +0000 (14:11 -0700)
commit998a09fddada31d5fd0f31a3c5f4df3a409c74b3
tree80933d59c310b7692b87e30a20034627738976c0
parenta4f65b7ef734aa6b6c9f06d2830a72a243adbf50
IB/ipoib: Add handling for sending of skb with many frags

Orabug: 21498734

IPoIB puts skb-fragments in SGEs adding 1 extra SGE when SG is enabled.
Current codepath assumes that the max number of SGEs a device supports
is at least MAX_SKB_FRAGS+1, there is no interaction with upper layers
to limit number of fragments in an skb if a device suports fewer SGEs.
The assumptions also lead to requesting a fixed number of SGEs when
IPoIB creates queue-pairs with SG enabled.

A fallback/slowpath is implemented using skb_linearize to
handle cases where the conversion would result in more sges than supported.

Change-Id: Ia81e69d7231987208ac298300fc5b9734f193a2d
Signed-off-by: Hans Westgaard Ry <hans.westgaard.ry@oracle.com>
Reviewed-by: HÃ¥kon Bugge <haakon.bugge@oracle.com>
Reviewed-by: Wei Lin Guay <wei.lin.guay@oracle.com>
drivers/infiniband/ulp/ipoib/ipoib.h
drivers/infiniband/ulp/ipoib/ipoib_cm.c
drivers/infiniband/ulp/ipoib/ipoib_ib.c
drivers/infiniband/ulp/ipoib/ipoib_verbs.c