Current implementation of VFs is very tight in regard to queue
resources. VFs support for XDP would require quite a bit of additional
infrastructure in qede and qed [sharing of queue-zones between queues,
more VF cids, mapping of the doorbell bar, etc.].

For now, prevent XDP programs from being attached to VFs.

Signed-off-by: Yuval Mintz <[email protected]>
---
 drivers/net/ethernet/qlogic/qede/qede_filter.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/net/ethernet/qlogic/qede/qede_filter.c 
b/drivers/net/ethernet/qlogic/qede/qede_filter.c
index 107c3fd..ecd5b3a 100644
--- a/drivers/net/ethernet/qlogic/qede/qede_filter.c
+++ b/drivers/net/ethernet/qlogic/qede/qede_filter.c
@@ -537,6 +537,11 @@ int qede_xdp(struct net_device *dev, struct netdev_xdp 
*xdp)
 {
        struct qede_dev *edev = netdev_priv(dev);
 
+       if (IS_VF(edev)) {
+               DP_NOTICE(edev, "VFs don't support XDP\n");
+               return -EOPNOTSUPP;
+       }
+
        switch (xdp->command) {
        case XDP_SETUP_PROG:
                return qede_xdp_set(edev, xdp->prog);
-- 
1.9.3

Reply via email to