Patchwork [net-next,06/12] vlan: Add support for net_devices_ops.ndo_fcoe_control to VLAN

login
register
mail settings
Submitter Jeff Kirsher
Date Aug. 14, 2009, 10:43 p.m.
Message ID <20090814224303.1640.94218.stgit@localhost.localdomain>
Download mbox | patch
Permalink /patch/31453/
State Changes Requested
Delegated to: David Miller
Headers show

Comments

Jeff Kirsher - Aug. 14, 2009, 10:43 p.m.
From: Yi Zou <yi.zou@intel.com>

This adds implementation of the net_devices_ops.ndo_fcoe_control to the VLAN
driver. It checks if the real_dev has support for ndo_fcoe_control and pass on
to call the associated real_dev->netdevice_ops->ndo_fcoe_control.

Signed-off-by: Yi Zou <yi.zou@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---

 net/8021q/vlan_dev.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)


--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
index 6e695ac..9a4ddf5 100644
--- a/net/8021q/vlan_dev.c
+++ b/net/8021q/vlan_dev.c
@@ -586,6 +586,17 @@  static int vlan_dev_fcoe_ddp_done(struct net_device *dev, u16 xid)
 
 	return len;
 }
+
+static int vlan_dev_fcoe_control(struct net_device *dev, u32 op)
+{
+	struct net_device *real_dev = vlan_dev_info(dev)->real_dev;
+	const struct net_device_ops *ops = real_dev->netdev_ops;
+	int rc = -EINVAL;
+
+	if (ops->ndo_fcoe_control)
+		rc = ops->ndo_fcoe_control(real_dev, op);
+	return rc;
+}
 #endif
 
 static void vlan_dev_change_rx_flags(struct net_device *dev, int change)
@@ -749,6 +760,7 @@  static const struct net_device_ops vlan_netdev_ops = {
 #if defined(CONFIG_FCOE) || defined(CONFIG_FCOE_MODULE)
 	.ndo_fcoe_ddp_setup	= vlan_dev_fcoe_ddp_setup,
 	.ndo_fcoe_ddp_done	= vlan_dev_fcoe_ddp_done,
+	.ndo_fcoe_control	= vlan_dev_fcoe_control,
 #endif
 };
 
@@ -769,6 +781,7 @@  static const struct net_device_ops vlan_netdev_accel_ops = {
 #if defined(CONFIG_FCOE) || defined(CONFIG_FCOE_MODULE)
 	.ndo_fcoe_ddp_setup	= vlan_dev_fcoe_ddp_setup,
 	.ndo_fcoe_ddp_done	= vlan_dev_fcoe_ddp_done,
+	.ndo_fcoe_control	= vlan_dev_fcoe_control,
 #endif
 };