svn commit: r284867 - stable/10/sys/dev/sfxge
Andrew Rybchenko
arybchik at FreeBSD.org
Fri Jun 26 06:08:53 UTC 2015
Author: arybchik
Date: Fri Jun 26 06:08:52 2015
New Revision: 284867
URL: https://svnweb.freebsd.org/changeset/base/284867
Log:
MFC: r284747
sfxge: skip VPD info population if access is denied
The patch allows to run on unprivileged PF (PFIOV) passed to
a virtual machine.
Reviewed by: gnn
Sponsored by: Solarflare Communications, Inc.
Modified:
stable/10/sys/dev/sfxge/sfxge.c
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/sys/dev/sfxge/sfxge.c
==============================================================================
--- stable/10/sys/dev/sfxge/sfxge.c Fri Jun 26 04:14:05 2015 (r284866)
+++ stable/10/sys/dev/sfxge/sfxge.c Fri Jun 26 06:08:52 2015 (r284867)
@@ -902,8 +902,15 @@ sfxge_vpd_init(struct sfxge_softc *sc)
efx_vpd_value_t value;
int rc;
- if ((rc = efx_vpd_size(sc->enp, &sc->vpd_size)) != 0)
+ if ((rc = efx_vpd_size(sc->enp, &sc->vpd_size)) != 0) {
+ /*
+ * Unpriviledged functions deny VPD access.
+ * Simply skip VPD in this case.
+ */
+ if (rc == EACCES)
+ goto done;
goto fail;
+ }
sc->vpd_data = malloc(sc->vpd_size, M_SFXGE, M_WAITOK);
if ((rc = efx_vpd_read(sc->enp, sc->vpd_data, sc->vpd_size)) != 0)
goto fail2;
@@ -932,6 +939,7 @@ sfxge_vpd_init(struct sfxge_softc *sc)
for (keyword[1] = 'A'; keyword[1] <= 'Z'; keyword[1]++)
sfxge_vpd_try_add(sc, vpd_list, EFX_VPD_RO, keyword);
+done:
return (0);
fail2:
More information about the svn-src-all
mailing list