util: allow ignoring SIOCSIFHWADDR when errno is EPERM
util: allow ignoring SIOCSIFHWADDR when errno is EPERM

Commit f4ef3a71 made a variation of virNetDevSetMAC that would return
without logging an error message if errno was set to
EADDRNOTAVAIL. This errno is set by some SRIOV VF drivers (in
particular igbvf) when they fail to set the device's MAC address due
to the PF driver refusing the request. This is useful if we want to
try a different method of setting the VF MAC address before giving up
(Commit 86556e16 actually does this, setting the desired MAC address
to the "admin MAC in the PF, then detaching and reattaching the VF
netdev driver to force a reinit of the MAC address).

During testing of Bug 1442040 t was discovered that the ixgbe driver
returns EPERM in this situation, so this patch changes the exception
case for silent+non-terminal failure to account for this difference.

Completes resolution to: https://bugzilla.redhat.com/1415609 (RHEL 7.4)
                         https://bugzilla.redhat.com/1442040 (RHEL 7.3.z)

olafhering/libvirt,nertpinx/libvirt,nertpinx/libvirt,olafhering/libvirt,eskultety/libvirt,eskultety/libvirt,jardasgit/libvirt,VenkatDatta/libvirt,VenkatDatta/libvirt,fabianfreyer/libvirt,libvirt/libvirt,datto/libvirt,olafhering/libvirt,libvirt/libvirt,fabianfreyer/libvirt,jfehlig/libvirt,libvirt/libvirt,eskultety/libvirt,VenkatDatta/libvirt,nertpinx/libvirt,jfehlig/libvirt,eskultety/libvirt,nertpinx/libvirt,VenkatDatta/libvirt,datto/libvirt,jfehlig/libvirt,jfehlig/libvirt,datto/libvirt,olafhering/libvirt,datto/libvirt,zippy2/libvirt,crobinso/libvirt,fabianfreyer/libvirt,jardasgit/libvirt,andreabolognani/libvirt,eskultety/libvirt,andreabolognani/libvirt,fabianfreyer/libvirt,fabianfreyer/libvirt,crobinso/libvirt,VenkatDatta/libvirt,jardasgit/libvirt,jardasgit/libvirt,libvirt/libvirt,zippy2/libvirt,crobinso/libvirt,jardasgit/libvirt,andreabolognani/libvirt,nertpinx/libvirt,andreabolognani/libvirt,datto/libvirt,andreabolognani/libvirt,zippy2/libvirt,crobinso/libvirt,zippy2/libvirt