summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoshe Levi <moshele@mellanox.com>2015-08-18 23:58:03 +0300
committerJohn Ferlan <jferlan@redhat.com>2015-08-26 17:11:27 -0400
commit6f2a0198e913c91a2ef8b99db79b7d3cc5396957 (patch)
tree6222dfbcd5bdc55d95f60dfb7b7d506168e94410
parent108d591b1144bc6cb5d1199f6fc23ee972b76e86 (diff)
downloadlibvirt-6f2a0198e913c91a2ef8b99db79b7d3cc5396957.tar.gz
utils: Remove the logging of errors from virNetDevSendEthtoolIoctl
This patch remove the logging of errors of ioctl api and instead let the caller to choose what errors to log
-rw-r--r--src/util/virnetdev.c56
1 files changed, 16 insertions, 40 deletions
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
index 2f3690e6ca..5fcf80535f 100644
--- a/src/util/virnetdev.c
+++ b/src/util/virnetdev.c
@@ -3032,39 +3032,15 @@ static int
virNetDevSendEthtoolIoctl(const char *ifname, void *cmd)
{
int ret = -1;
- int sock = -1;
- virIfreq ifr;
-
- sock = socket(AF_LOCAL, SOCK_DGRAM, 0);
- if (sock < 0) {
- virReportSystemError(errno, "%s", _("Cannot open control socket"));
- goto cleanup;
- }
+ int fd;
+ struct ifreq ifr;
- memset(&ifr, 0, sizeof(ifr));
- strcpy(ifr.ifr_name, ifname);
+ if ((fd = virNetDevSetupControl(ifname, &ifr)) < 0)
+ return ret;
ifr.ifr_data = cmd;
- ret = ioctl(sock, SIOCETHTOOL, &ifr);
- if (ret != 0) {
- switch (errno) {
- case EPERM:
- VIR_DEBUG("ethtool ioctl: permission denied");
- break;
- case EINVAL:
- VIR_DEBUG("ethtool ioctl: invalid request");
- break;
- case EOPNOTSUPP:
- VIR_DEBUG("ethtool ioctl: request not supported");
- break;
- default:
- virReportSystemError(errno, "%s", _("ethtool ioctl error"));
- goto cleanup;
- }
- }
+ ret = ioctl(fd, SIOCETHTOOL, &ifr);
- cleanup:
- if (sock)
- VIR_FORCE_CLOSE(sock);
+ VIR_FORCE_CLOSE(fd);
return ret;
}
@@ -3081,12 +3057,12 @@ virNetDevSendEthtoolIoctl(const char *ifname, void *cmd)
static int
virNetDevFeatureAvailable(const char *ifname, struct ethtool_value *cmd)
{
- int ret = -1;
-
cmd = (void*)cmd;
- if (!virNetDevSendEthtoolIoctl(ifname, cmd))
- ret = cmd->data > 0 ? 1 : 0;
- return ret;
+ if (virNetDevSendEthtoolIoctl(ifname, cmd) < 0) {
+ virReportSystemError(errno, _("Cannot get device %s flags"), ifname);
+ return -1;
+ }
+ return cmd->data > 0 ? 1 : 0;
}
@@ -3103,12 +3079,12 @@ virNetDevFeatureAvailable(const char *ifname, struct ethtool_value *cmd)
static int
virNetDevGFeatureAvailable(const char *ifname, struct ethtool_gfeatures *cmd)
{
- int ret = -1;
-
cmd = (void*)cmd;
- if (!virNetDevSendEthtoolIoctl(ifname, cmd))
- ret = FEATURE_BIT_IS_SET(cmd->features, TX_UDP_TNL, active);
- return ret;
+ if (virNetDevSendEthtoolIoctl(ifname, cmd) < 0) {
+ virReportSystemError(errno, _("Cannot get device %s generic features"), ifname);
+ return -1;
+ }
+ return FEATURE_BIT_IS_SET(cmd->features, TX_UDP_TNL, active);
}
# endif