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

Reply via email to