diff options
Diffstat (limited to 'drivers/infiniband/ulp/ipoib/ipoib_cm.c')
-rw-r--r-- | drivers/infiniband/ulp/ipoib/ipoib_cm.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c index 2490b2d79dbb..edf63dc0afe0 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c | |||
@@ -1383,6 +1383,10 @@ static ssize_t set_mode(struct device *d, struct device_attribute *attr, | |||
1383 | set_bit(IPOIB_FLAG_ADMIN_CM, &priv->flags); | 1383 | set_bit(IPOIB_FLAG_ADMIN_CM, &priv->flags); |
1384 | ipoib_warn(priv, "enabling connected mode " | 1384 | ipoib_warn(priv, "enabling connected mode " |
1385 | "will cause multicast packet drops\n"); | 1385 | "will cause multicast packet drops\n"); |
1386 | |||
1387 | dev->features &= ~(NETIF_F_IP_CSUM | NETIF_F_SG); | ||
1388 | priv->tx_wr.send_flags &= ~IB_SEND_IP_CSUM; | ||
1389 | |||
1386 | ipoib_flush_paths(dev); | 1390 | ipoib_flush_paths(dev); |
1387 | return count; | 1391 | return count; |
1388 | } | 1392 | } |
@@ -1391,6 +1395,10 @@ static ssize_t set_mode(struct device *d, struct device_attribute *attr, | |||
1391 | clear_bit(IPOIB_FLAG_ADMIN_CM, &priv->flags); | 1395 | clear_bit(IPOIB_FLAG_ADMIN_CM, &priv->flags); |
1392 | dev->mtu = min(priv->mcast_mtu, dev->mtu); | 1396 | dev->mtu = min(priv->mcast_mtu, dev->mtu); |
1393 | ipoib_flush_paths(dev); | 1397 | ipoib_flush_paths(dev); |
1398 | |||
1399 | if (test_bit(IPOIB_FLAG_CSUM, &priv->flags)) | ||
1400 | dev->features |= NETIF_F_IP_CSUM | NETIF_F_SG; | ||
1401 | |||
1394 | return count; | 1402 | return count; |
1395 | } | 1403 | } |
1396 | 1404 | ||