Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Dec 2016 17:50:48 +0000 (UTC)
From:      Andrew Rybchenko <arybchik@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r310715 - head/sys/dev/sfxge/common
Message-ID:  <201612281750.uBSHomXd020834@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: arybchik
Date: Wed Dec 28 17:50:48 2016
New Revision: 310715
URL: https://svnweb.freebsd.org/changeset/base/310715

Log:
  sfxge(4): fix GET_RXDP_CONFIG usage for multi-PF on Medford
  
  On Medford, using MC_CMD_GET_RXDP_CONFIG to query the RX end
  padding setting is in the ADMIN group, and so fails for
  unprivileged functions. In that case, assume the largest size
  supported by Medford hardware (256bytes) to prevent overrun.
  
  Submitted by:   Andy Moreton <amoreton at solarflare.com>
  Reviewed by:    gnn
  Sponsored by:   Solarflare Communications, Inc.
  MFC after:      2 days
  Differential Revision:  https://reviews.freebsd.org/D8933

Modified:
  head/sys/dev/sfxge/common/medford_nic.c

Modified: head/sys/dev/sfxge/common/medford_nic.c
==============================================================================
--- head/sys/dev/sfxge/common/medford_nic.c	Wed Dec 28 17:49:33 2016	(r310714)
+++ head/sys/dev/sfxge/common/medford_nic.c	Wed Dec 28 17:50:48 2016	(r310715)
@@ -289,8 +289,13 @@ medford_board_cfg(
 	encp->enc_rx_buf_align_start = 1;
 
 	/* Get the RX DMA end padding alignment configuration */
-	if ((rc = efx_mcdi_get_rxdp_config(enp, &end_padding)) != 0)
-		goto fail11;
+	if ((rc = efx_mcdi_get_rxdp_config(enp, &end_padding)) != 0) {
+		if (rc != EACCES)
+			goto fail11;
+
+		/* Assume largest tail padding size supported by hardware */
+		end_padding = 256;
+	}
 	encp->enc_rx_buf_align_end = end_padding;
 
 	/* Alignment for WPTR updates */



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