svn commit: r284747 - head/sys/dev/sfxge
Andrew Rybchenko
arybchik at FreeBSD.org
Wed Jun 24 06:25:21 UTC 2015
Author: arybchik
Date: Wed Jun 24 06:25:20 2015
New Revision: 284747
URL: https://svnweb.freebsd.org/changeset/base/284747
Log:
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.
MFC after: 2 days
Differential Revision: https://reviews.freebsd.org/D2891
Modified:
head/sys/dev/sfxge/sfxge.c
Modified: head/sys/dev/sfxge/sfxge.c
==============================================================================
--- head/sys/dev/sfxge/sfxge.c Wed Jun 24 06:01:29 2015 (r284746)
+++ head/sys/dev/sfxge/sfxge.c Wed Jun 24 06:25:20 2015 (r284747)
@@ -905,8 +905,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;
@@ -935,6 +942,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