Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Jun 2015 06:08:53 +0000 (UTC)
From:      Andrew Rybchenko <arybchik@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r284867 - stable/10/sys/dev/sfxge
Message-ID:  <201506260608.t5Q68rVj001542@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201506260608.t5Q68rVj001542>