|
@@ -151,6 +151,7 @@ static void dump_dev_cap_flags2(struct mlx4_dev *dev, u64 flags)
|
|
[25] = "Granular QoS per VF support",
|
|
[25] = "Granular QoS per VF support",
|
|
[26] = "Port ETS Scheduler support",
|
|
[26] = "Port ETS Scheduler support",
|
|
[27] = "Port beacon support",
|
|
[27] = "Port beacon support",
|
|
|
|
+ [28] = "RX-ALL support",
|
|
};
|
|
};
|
|
int i;
|
|
int i;
|
|
|
|
|
|
@@ -893,6 +894,8 @@ int mlx4_QUERY_DEV_CAP(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap)
|
|
MLX4_GET(field, outbox, QUERY_DEV_CAP_CONFIG_DEV_OFFSET);
|
|
MLX4_GET(field, outbox, QUERY_DEV_CAP_CONFIG_DEV_OFFSET);
|
|
if (field & 0x20)
|
|
if (field & 0x20)
|
|
dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_CONFIG_DEV;
|
|
dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_CONFIG_DEV;
|
|
|
|
+ if (field & (1 << 2))
|
|
|
|
+ dev_cap->flags2 |= MLX4_DEV_CAP_FLAG2_IGNORE_FCS;
|
|
MLX4_GET(dev_cap->reserved_lkey, outbox,
|
|
MLX4_GET(dev_cap->reserved_lkey, outbox,
|
|
QUERY_DEV_CAP_RSVD_LKEY_OFFSET);
|
|
QUERY_DEV_CAP_RSVD_LKEY_OFFSET);
|
|
MLX4_GET(field32, outbox, QUERY_DEV_CAP_ETH_BACKPL_OFFSET);
|
|
MLX4_GET(field32, outbox, QUERY_DEV_CAP_ETH_BACKPL_OFFSET);
|
|
@@ -1220,6 +1223,11 @@ int mlx4_QUERY_DEV_CAP_wrapper(struct mlx4_dev *dev, int slave,
|
|
field &= 0xef;
|
|
field &= 0xef;
|
|
MLX4_PUT(outbox->buf, field, QUERY_DEV_CAP_CQ_EQ_CACHE_LINE_STRIDE);
|
|
MLX4_PUT(outbox->buf, field, QUERY_DEV_CAP_CQ_EQ_CACHE_LINE_STRIDE);
|
|
|
|
|
|
|
|
+ /* turn off ignore FCS feature for guests */
|
|
|
|
+ MLX4_GET(field, outbox->buf, QUERY_DEV_CAP_CONFIG_DEV_OFFSET);
|
|
|
|
+ field &= 0xfb;
|
|
|
|
+ MLX4_PUT(outbox->buf, field, QUERY_DEV_CAP_CONFIG_DEV_OFFSET);
|
|
|
|
+
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|