diff options
-rw-r--r-- | net/8021q/vlan_dev.c | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c index 15293c2a5dd8..8d77b6ee4477 100644 --- a/net/8021q/vlan_dev.c +++ b/net/8021q/vlan_dev.c | |||
@@ -443,27 +443,29 @@ static int vlan_dev_fcoe_disable(struct net_device *dev) | |||
443 | return rc; | 443 | return rc; |
444 | } | 444 | } |
445 | 445 | ||
446 | static int vlan_dev_fcoe_get_wwn(struct net_device *dev, u64 *wwn, int type) | 446 | static int vlan_dev_fcoe_ddp_target(struct net_device *dev, u16 xid, |
447 | struct scatterlist *sgl, unsigned int sgc) | ||
447 | { | 448 | { |
448 | struct net_device *real_dev = vlan_dev_priv(dev)->real_dev; | 449 | struct net_device *real_dev = vlan_dev_priv(dev)->real_dev; |
449 | const struct net_device_ops *ops = real_dev->netdev_ops; | 450 | const struct net_device_ops *ops = real_dev->netdev_ops; |
450 | int rc = -EINVAL; | 451 | int rc = 0; |
452 | |||
453 | if (ops->ndo_fcoe_ddp_target) | ||
454 | rc = ops->ndo_fcoe_ddp_target(real_dev, xid, sgl, sgc); | ||
451 | 455 | ||
452 | if (ops->ndo_fcoe_get_wwn) | ||
453 | rc = ops->ndo_fcoe_get_wwn(real_dev, wwn, type); | ||
454 | return rc; | 456 | return rc; |
455 | } | 457 | } |
458 | #endif | ||
456 | 459 | ||
457 | static int vlan_dev_fcoe_ddp_target(struct net_device *dev, u16 xid, | 460 | #ifdef NETDEV_FCOE_WWNN |
458 | struct scatterlist *sgl, unsigned int sgc) | 461 | static int vlan_dev_fcoe_get_wwn(struct net_device *dev, u64 *wwn, int type) |
459 | { | 462 | { |
460 | struct net_device *real_dev = vlan_dev_priv(dev)->real_dev; | 463 | struct net_device *real_dev = vlan_dev_priv(dev)->real_dev; |
461 | const struct net_device_ops *ops = real_dev->netdev_ops; | 464 | const struct net_device_ops *ops = real_dev->netdev_ops; |
462 | int rc = 0; | 465 | int rc = -EINVAL; |
463 | |||
464 | if (ops->ndo_fcoe_ddp_target) | ||
465 | rc = ops->ndo_fcoe_ddp_target(real_dev, xid, sgl, sgc); | ||
466 | 466 | ||
467 | if (ops->ndo_fcoe_get_wwn) | ||
468 | rc = ops->ndo_fcoe_get_wwn(real_dev, wwn, type); | ||
467 | return rc; | 469 | return rc; |
468 | } | 470 | } |
469 | #endif | 471 | #endif |
@@ -794,9 +796,11 @@ static const struct net_device_ops vlan_netdev_ops = { | |||
794 | .ndo_fcoe_ddp_done = vlan_dev_fcoe_ddp_done, | 796 | .ndo_fcoe_ddp_done = vlan_dev_fcoe_ddp_done, |
795 | .ndo_fcoe_enable = vlan_dev_fcoe_enable, | 797 | .ndo_fcoe_enable = vlan_dev_fcoe_enable, |
796 | .ndo_fcoe_disable = vlan_dev_fcoe_disable, | 798 | .ndo_fcoe_disable = vlan_dev_fcoe_disable, |
797 | .ndo_fcoe_get_wwn = vlan_dev_fcoe_get_wwn, | ||
798 | .ndo_fcoe_ddp_target = vlan_dev_fcoe_ddp_target, | 799 | .ndo_fcoe_ddp_target = vlan_dev_fcoe_ddp_target, |
799 | #endif | 800 | #endif |
801 | #ifdef NETDEV_FCOE_WWNN | ||
802 | .ndo_fcoe_get_wwn = vlan_dev_fcoe_get_wwn, | ||
803 | #endif | ||
800 | #ifdef CONFIG_NET_POLL_CONTROLLER | 804 | #ifdef CONFIG_NET_POLL_CONTROLLER |
801 | .ndo_poll_controller = vlan_dev_poll_controller, | 805 | .ndo_poll_controller = vlan_dev_poll_controller, |
802 | .ndo_netpoll_setup = vlan_dev_netpoll_setup, | 806 | .ndo_netpoll_setup = vlan_dev_netpoll_setup, |