Looks good. --Justin
On Jun 14, 2012, at 3:30 PM, Ben Pfaff wrote: > Reads and writes have difference performance implications so it's better to > separate them. > > Signed-off-by: Ben Pfaff <[email protected]> > --- > lib/netdev-linux.c | 12 ++++++++++-- > 1 files changed, 10 insertions(+), 2 deletions(-) > > diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c > index 4d2f3ac..fc9aa6f 100644 > --- a/lib/netdev-linux.c > +++ b/lib/netdev-linux.c > @@ -77,7 +77,8 @@ COVERAGE_DEFINE(netdev_arp_lookup); > COVERAGE_DEFINE(netdev_get_ifindex); > COVERAGE_DEFINE(netdev_get_hwaddr); > COVERAGE_DEFINE(netdev_set_hwaddr); > -COVERAGE_DEFINE(netdev_ethtool); > +COVERAGE_DEFINE(netdev_get_ethtool); > +COVERAGE_DEFINE(netdev_set_ethtool); > > > /* These were introduced in Linux 2.6.14, so they might be missing if we have > @@ -506,6 +507,7 @@ netdev_linux_get_drvinfo(struct netdev_dev_linux > *netdev_dev) > return 0; > } > > + COVERAGE_INC(netdev_get_ethtool); > memset(&netdev_dev->drvinfo, 0, sizeof netdev_dev->drvinfo); > error = netdev_linux_do_ethtool(netdev_dev->netdev_dev.name, > (struct ethtool_cmd > *)&netdev_dev->drvinfo, > @@ -1203,6 +1205,7 @@ netdev_linux_get_miimon(const char *name, bool *miimon) > VLOG_DBG_RL(&rl, "%s: failed to query MII, falling back to ethtool", > name); > > + COVERAGE_INC(netdev_get_ethtool); > memset(&ecmd, 0, sizeof ecmd); > error = netdev_linux_do_ethtool(name, &ecmd, ETHTOOL_GLINK, > "ETHTOOL_GLINK"); > @@ -1496,6 +1499,7 @@ netdev_linux_read_features(struct netdev_dev_linux > *netdev_dev) > return; > } > > + COVERAGE_INC(netdev_get_ethtool); > memset(&ecmd, 0, sizeof ecmd); > error = netdev_linux_do_ethtool(netdev_dev->netdev_dev.name, &ecmd, > ETHTOOL_GSET, "ETHTOOL_GSET"); > @@ -1652,6 +1656,7 @@ netdev_linux_set_advertisements(struct netdev *netdev, > struct ethtool_cmd ecmd; > int error; > > + COVERAGE_INC(netdev_get_ethtool); > memset(&ecmd, 0, sizeof ecmd); > error = netdev_linux_do_ethtool(netdev_get_name(netdev), &ecmd, > ETHTOOL_GSET, "ETHTOOL_GSET"); > @@ -1696,6 +1701,7 @@ netdev_linux_set_advertisements(struct netdev *netdev, > if (advertise & NETDEV_F_PAUSE_ASYM) { > ecmd.advertising |= ADVERTISED_Asym_Pause; > } > + COVERAGE_INC(netdev_set_ethtool); > return netdev_linux_do_ethtool(netdev_get_name(netdev), &ecmd, > ETHTOOL_SSET, "ETHTOOL_SSET"); > } > @@ -4196,6 +4202,7 @@ netdev_linux_ethtool_set_flag(struct netdev *netdev, > uint32_t flag, > uint32_t new_flags; > int error; > > + COVERAGE_INC(netdev_get_ethtool); > memset(&evalue, 0, sizeof evalue); > error = netdev_linux_do_ethtool(netdev_name, > (struct ethtool_cmd *)&evalue, > @@ -4204,6 +4211,7 @@ netdev_linux_ethtool_set_flag(struct netdev *netdev, > uint32_t flag, > return error; > } > > + COVERAGE_INC(netdev_set_ethtool); > evalue.data = new_flags = (evalue.data & ~flag) | (enable ? flag : 0); > error = netdev_linux_do_ethtool(netdev_name, > (struct ethtool_cmd *)&evalue, > @@ -4212,6 +4220,7 @@ netdev_linux_ethtool_set_flag(struct netdev *netdev, > uint32_t flag, > return error; > } > > + COVERAGE_INC(netdev_get_ethtool); > memset(&evalue, 0, sizeof evalue); > error = netdev_linux_do_ethtool(netdev_name, > (struct ethtool_cmd *)&evalue, > @@ -4487,7 +4496,6 @@ netdev_linux_do_ethtool(const char *name, struct > ethtool_cmd *ecmd, > ifr.ifr_data = (caddr_t) ecmd; > > ecmd->cmd = cmd; > - COVERAGE_INC(netdev_ethtool); > if (ioctl(af_inet_sock, SIOCETHTOOL, &ifr) == 0) { > return 0; > } else { > -- > 1.7.2.5 > > _______________________________________________ > dev mailing list > [email protected] > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
