svn commit: r341118 - head/sys/dev/sfxge/common

Andrew Rybchenko arybchik at FreeBSD.org
Wed Nov 28 06:56:16 UTC 2018


Author: arybchik
Date: Wed Nov 28 06:56:11 2018
New Revision: 341118
URL: https://svnweb.freebsd.org/changeset/base/341118

Log:
  sfxge(4): move privilege config to ef10 NIC board config
  
  Submitted by:   Andy Moreton <amoreton at solarflare.com>
  Sponsored by:   Solarflare Communications, Inc.
  Differential Revision:  https://reviews.freebsd.org/D18194

Modified:
  head/sys/dev/sfxge/common/ef10_nic.c
  head/sys/dev/sfxge/common/hunt_nic.c
  head/sys/dev/sfxge/common/medford2_nic.c   (contents, props changed)
  head/sys/dev/sfxge/common/medford_nic.c

Modified: head/sys/dev/sfxge/common/ef10_nic.c
==============================================================================
--- head/sys/dev/sfxge/common/ef10_nic.c	Wed Nov 28 06:55:59 2018	(r341117)
+++ head/sys/dev/sfxge/common/ef10_nic.c	Wed Nov 28 06:56:11 2018	(r341118)
@@ -1580,6 +1580,7 @@ ef10_nic_board_cfg(
 	uint32_t board_type = 0;
 	uint32_t base, nvec;
 	uint32_t port;
+	uint32_t mask;
 	uint32_t pf;
 	uint32_t vf;
 	uint8_t mac_addr[6] = { 0 };
@@ -1707,13 +1708,25 @@ ef10_nic_board_cfg(
 	encp->enc_intr_vec_base = base;
 	encp->enc_intr_limit = nvec;
 
+	/*
+	 * Get the current privilege mask. Note that this may be modified
+	 * dynamically, so this value is informational only. DO NOT use
+	 * the privilege mask to check for sufficient privileges, as that
+	 * can result in time-of-check/time-of-use bugs.
+	 */
+	if ((rc = ef10_get_privilege_mask(enp, &mask)) != 0)
+		goto fail10;
+	encp->enc_privilege_mask = mask;
+
 	/* Get remaining controller-specific board config */
 	if ((rc = enop->eno_board_cfg(enp)) != 0)
 		if (rc != EACCES)
-			goto fail10;
+			goto fail11;
 
 	return (0);
 
+fail11:
+	EFSYS_PROBE(fail11);
 fail10:
 	EFSYS_PROBE(fail10);
 fail9:

Modified: head/sys/dev/sfxge/common/hunt_nic.c
==============================================================================
--- head/sys/dev/sfxge/common/hunt_nic.c	Wed Nov 28 06:55:59 2018	(r341117)
+++ head/sys/dev/sfxge/common/hunt_nic.c	Wed Nov 28 06:56:11 2018	(r341118)
@@ -105,7 +105,6 @@ hunt_board_cfg(
 {
 	efx_nic_cfg_t *encp = &(enp->en_nic_cfg);
 	efx_port_t *epp = &(enp->en_port);
-	uint32_t mask;
 	uint32_t flags;
 	uint32_t sysclk, dpcpu_clk;
 	uint32_t bandwidth;
@@ -242,18 +241,8 @@ hunt_board_cfg(
 	encp->enc_piobuf_size = HUNT_PIOBUF_SIZE;
 	encp->enc_piobuf_min_alloc_size = HUNT_MIN_PIO_ALLOC_SIZE;
 
-	/*
-	 * Get the current privilege mask. Note that this may be modified
-	 * dynamically, so this value is informational only. DO NOT use
-	 * the privilege mask to check for sufficient privileges, as that
-	 * can result in time-of-check/time-of-use bugs.
-	 */
-	if ((rc = ef10_get_privilege_mask(enp, &mask)) != 0)
-		goto fail5;
-	encp->enc_privilege_mask = mask;
-
 	if ((rc = hunt_nic_get_required_pcie_bandwidth(enp, &bandwidth)) != 0)
-		goto fail6;
+		goto fail5;
 	encp->enc_required_pcie_bandwidth_mbps = bandwidth;
 
 	/* All Huntington devices have a PCIe Gen3, 8 lane connector */
@@ -261,8 +250,6 @@ hunt_board_cfg(
 
 	return (0);
 
-fail6:
-	EFSYS_PROBE(fail6);
 fail5:
 	EFSYS_PROBE(fail5);
 fail4:

Modified: head/sys/dev/sfxge/common/medford2_nic.c
==============================================================================
--- head/sys/dev/sfxge/common/medford2_nic.c	Wed Nov 28 06:55:59 2018	(r341117)
+++ head/sys/dev/sfxge/common/medford2_nic.c	Wed Nov 28 06:56:11 2018	(r341118)
@@ -78,7 +78,6 @@ medford2_board_cfg(
 	__in		efx_nic_t *enp)
 {
 	efx_nic_cfg_t *encp = &(enp->en_nic_cfg);
-	uint32_t mask;
 	uint32_t sysclk, dpcpu_clk;
 	uint32_t end_padding;
 	uint32_t bandwidth;
@@ -178,16 +177,6 @@ medford2_board_cfg(
 	encp->enc_piobuf_min_alloc_size = MEDFORD2_MIN_PIO_ALLOC_SIZE;
 
 	/*
-	 * Get the current privilege mask. Note that this may be modified
-	 * dynamically, so this value is informational only. DO NOT use
-	 * the privilege mask to check for sufficient privileges, as that
-	 * can result in time-of-check/time-of-use bugs.
-	 */
-	if ((rc = ef10_get_privilege_mask(enp, &mask)) != 0)
-		goto fail5;
-	encp->enc_privilege_mask = mask;
-
-	/*
 	 * Medford2 stores a single global copy of VPD, not per-PF as on
 	 * Huntington.
 	 */
@@ -195,14 +184,12 @@ medford2_board_cfg(
 
 	rc = medford2_nic_get_required_pcie_bandwidth(enp, &bandwidth);
 	if (rc != 0)
-		goto fail6;
+		goto fail5;
 	encp->enc_required_pcie_bandwidth_mbps = bandwidth;
 	encp->enc_max_pcie_link_gen = EFX_PCIE_LINK_SPEED_GEN3;
 
 	return (0);
 
-fail6:
-	EFSYS_PROBE(fail6);
 fail5:
 	EFSYS_PROBE(fail5);
 fail4:

Modified: head/sys/dev/sfxge/common/medford_nic.c
==============================================================================
--- head/sys/dev/sfxge/common/medford_nic.c	Wed Nov 28 06:55:59 2018	(r341117)
+++ head/sys/dev/sfxge/common/medford_nic.c	Wed Nov 28 06:56:11 2018	(r341118)
@@ -74,7 +74,6 @@ medford_board_cfg(
 	__in		efx_nic_t *enp)
 {
 	efx_nic_cfg_t *encp = &(enp->en_nic_cfg);
-	uint32_t mask;
 	uint32_t sysclk, dpcpu_clk;
 	uint32_t end_padding;
 	uint32_t bandwidth;
@@ -175,16 +174,6 @@ medford_board_cfg(
 	encp->enc_piobuf_min_alloc_size = MEDFORD_MIN_PIO_ALLOC_SIZE;
 
 	/*
-	 * Get the current privilege mask. Note that this may be modified
-	 * dynamically, so this value is informational only. DO NOT use
-	 * the privilege mask to check for sufficient privileges, as that
-	 * can result in time-of-check/time-of-use bugs.
-	 */
-	if ((rc = ef10_get_privilege_mask(enp, &mask)) != 0)
-		goto fail4;
-	encp->enc_privilege_mask = mask;
-
-	/*
 	 * Medford stores a single global copy of VPD, not per-PF as on
 	 * Huntington.
 	 */
@@ -192,14 +181,12 @@ medford_board_cfg(
 
 	rc = medford_nic_get_required_pcie_bandwidth(enp, &bandwidth);
 	if (rc != 0)
-		goto fail5;
+		goto fail4;
 	encp->enc_required_pcie_bandwidth_mbps = bandwidth;
 	encp->enc_max_pcie_link_gen = EFX_PCIE_LINK_SPEED_GEN3;
 
 	return (0);
 
-fail5:
-	EFSYS_PROBE(fail5);
 fail4:
 	EFSYS_PROBE(fail4);
 fail3:


More information about the svn-src-all mailing list