diff options
Diffstat (limited to 'net/core/rtnetlink.c')
-rw-r--r-- | net/core/rtnetlink.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index 4dfb6b4d4559..6f8e0778e565 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c | |||
@@ -762,6 +762,7 @@ static int validate_linkmsg(struct net_device *dev, struct nlattr *tb[]) | |||
762 | static int do_setlink(struct net_device *dev, struct ifinfomsg *ifm, | 762 | static int do_setlink(struct net_device *dev, struct ifinfomsg *ifm, |
763 | struct nlattr **tb, char *ifname, int modified) | 763 | struct nlattr **tb, char *ifname, int modified) |
764 | { | 764 | { |
765 | const struct net_device_ops *ops = dev->netdev_ops; | ||
765 | int send_addr_notify = 0; | 766 | int send_addr_notify = 0; |
766 | int err; | 767 | int err; |
767 | 768 | ||
@@ -783,7 +784,7 @@ static int do_setlink(struct net_device *dev, struct ifinfomsg *ifm, | |||
783 | struct rtnl_link_ifmap *u_map; | 784 | struct rtnl_link_ifmap *u_map; |
784 | struct ifmap k_map; | 785 | struct ifmap k_map; |
785 | 786 | ||
786 | if (!dev->set_config) { | 787 | if (!ops->ndo_set_config) { |
787 | err = -EOPNOTSUPP; | 788 | err = -EOPNOTSUPP; |
788 | goto errout; | 789 | goto errout; |
789 | } | 790 | } |
@@ -801,7 +802,7 @@ static int do_setlink(struct net_device *dev, struct ifinfomsg *ifm, | |||
801 | k_map.dma = (unsigned char) u_map->dma; | 802 | k_map.dma = (unsigned char) u_map->dma; |
802 | k_map.port = (unsigned char) u_map->port; | 803 | k_map.port = (unsigned char) u_map->port; |
803 | 804 | ||
804 | err = dev->set_config(dev, &k_map); | 805 | err = ops->ndo_set_config(dev, &k_map); |
805 | if (err < 0) | 806 | if (err < 0) |
806 | goto errout; | 807 | goto errout; |
807 | 808 | ||
@@ -812,7 +813,7 @@ static int do_setlink(struct net_device *dev, struct ifinfomsg *ifm, | |||
812 | struct sockaddr *sa; | 813 | struct sockaddr *sa; |
813 | int len; | 814 | int len; |
814 | 815 | ||
815 | if (!dev->set_mac_address) { | 816 | if (!ops->ndo_set_mac_address) { |
816 | err = -EOPNOTSUPP; | 817 | err = -EOPNOTSUPP; |
817 | goto errout; | 818 | goto errout; |
818 | } | 819 | } |
@@ -831,7 +832,7 @@ static int do_setlink(struct net_device *dev, struct ifinfomsg *ifm, | |||
831 | sa->sa_family = dev->type; | 832 | sa->sa_family = dev->type; |
832 | memcpy(sa->sa_data, nla_data(tb[IFLA_ADDRESS]), | 833 | memcpy(sa->sa_data, nla_data(tb[IFLA_ADDRESS]), |
833 | dev->addr_len); | 834 | dev->addr_len); |
834 | err = dev->set_mac_address(dev, sa); | 835 | err = ops->ndo_set_mac_address(dev, sa); |
835 | kfree(sa); | 836 | kfree(sa); |
836 | if (err) | 837 | if (err) |
837 | goto errout; | 838 | goto errout; |