[libvirt] [PATCH 1/2] netdev: Use virNetDevIsVirtualFunction() properly

virNetDevIsVirtualFunction() returns 1 if the interface is a virtual function, 0 if it isn't and -1 on error. This means that, despite the name suggesting otherwise, using it as a predicate is not correct. Fix two callers that were doing so adding an explicit check on the return value. --- src/util/virnetdev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c index ea95552..9e39c26 100644 --- a/src/util/virnetdev.c +++ b/src/util/virnetdev.c @@ -2531,7 +2531,7 @@ virNetDevReplaceNetConfig(const char *linkdev, int vf, int ret = -1; char *pfdevname = NULL; - if (vf == -1 && virNetDevIsVirtualFunction(linkdev)) { + if (vf == -1 && virNetDevIsVirtualFunction(linkdev) == 1) { /* If this really *is* a VF and the caller just didn't know * it, we should set the MAC address via PF+vf# instead of * setting directly via VF, because the latter will be @@ -2571,7 +2571,7 @@ virNetDevRestoreNetConfig(const char *linkdev, int vf, const char *stateDir) char *pfdevname = NULL; const char *vfdevname = NULL; - if (vf == -1 && virNetDevIsVirtualFunction(linkdev)) { + if (vf == -1 && virNetDevIsVirtualFunction(linkdev) == 1) { /* If this really *is* a VF and the caller just didn't know * it, we should set the MAC address via PF+vf# instead of * setting directly via VF, because the latter will be -- 2.5.0

On 25.02.2016 14:02, Andrea Bolognani wrote:
virNetDevIsVirtualFunction() returns 1 if the interface is a virtual function, 0 if it isn't and -1 on error. This means that, despite the name suggesting otherwise, using it as a predicate is not correct.
Fix two callers that were doing so adding an explicit check on the return value. --- src/util/virnetdev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c index ea95552..9e39c26 100644 --- a/src/util/virnetdev.c +++ b/src/util/virnetdev.c @@ -2531,7 +2531,7 @@ virNetDevReplaceNetConfig(const char *linkdev, int vf, int ret = -1; char *pfdevname = NULL;
- if (vf == -1 && virNetDevIsVirtualFunction(linkdev)) { + if (vf == -1 && virNetDevIsVirtualFunction(linkdev) == 1) { /* If this really *is* a VF and the caller just didn't know * it, we should set the MAC address via PF+vf# instead of * setting directly via VF, because the latter will be @@ -2571,7 +2571,7 @@ virNetDevRestoreNetConfig(const char *linkdev, int vf, const char *stateDir) char *pfdevname = NULL; const char *vfdevname = NULL;
- if (vf == -1 && virNetDevIsVirtualFunction(linkdev)) { + if (vf == -1 && virNetDevIsVirtualFunction(linkdev) == 1) { /* If this really *is* a VF and the caller just didn't know * it, we should set the MAC address via PF+vf# instead of * setting directly via VF, because the latter will be
ACK and safe for the freeze. Nice catch btw. Michal

On Thu, 2016-02-25 at 15:51 +0100, Michal Privoznik wrote:
On 25.02.2016 14:02, Andrea Bolognani wrote:
virNetDevIsVirtualFunction() returns 1 if the interface is a virtual function, 0 if it isn't and -1 on error. This means that, despite the name suggesting otherwise, using it as a predicate is not correct.
Fix two callers that were doing so adding an explicit check on the return value. --- src/util/virnetdev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c index ea95552..9e39c26 100644 --- a/src/util/virnetdev.c +++ b/src/util/virnetdev.c @@ -2531,7 +2531,7 @@ virNetDevReplaceNetConfig(const char *linkdev, int vf, int ret = -1; char *pfdevname = NULL; - if (vf == -1 && virNetDevIsVirtualFunction(linkdev)) { + if (vf == -1 && virNetDevIsVirtualFunction(linkdev) == 1) { /* If this really *is* a VF and the caller just didn't know * it, we should set the MAC address via PF+vf# instead of * setting directly via VF, because the latter will be @@ -2571,7 +2571,7 @@ virNetDevRestoreNetConfig(const char *linkdev, int vf, const char *stateDir) char *pfdevname = NULL; const char *vfdevname = NULL; - if (vf == -1 && virNetDevIsVirtualFunction(linkdev)) { + if (vf == -1 && virNetDevIsVirtualFunction(linkdev) == 1) { /* If this really *is* a VF and the caller just didn't know * it, we should set the MAC address via PF+vf# instead of * setting directly via VF, because the latter will be
ACK and safe for the freeze.
Nice catch btw.
Pushed, thanks :) -- Andrea Bolognani Software Engineer - Virtualization Team
participants (2)
-
Andrea Bolognani
-
Michal Privoznik