svn commit: r325840 - head/sys/dev/cxgbe

Wojciech Macek wma at FreeBSD.org
Wed Nov 15 06:45:34 UTC 2017


Author: wma
Date: Wed Nov 15 06:45:33 2017
New Revision: 325840
URL: https://svnweb.freebsd.org/changeset/base/325840

Log:
  CXGBE: fix big-endian behaviour
  
  The setbit/clearbit pair casts the bitfield pointer
  to uint8_t* which effectively treats its contents as
  little-endian variable. The ffs() function accepts int as
  the parameter, which is big-endian. Use uint8_t here to
  avoid mismatch, as we have only 4 doorbells.
  
  Submitted by:          Wojciech Macek <wma at freebsd.org>
  Reviewed by:           np
  Obtained from:         Semihalf
  Sponsored by:          QCM Technologies
  Differential revision: https://reviews.freebsd.org/D13084

Modified:
  head/sys/dev/cxgbe/adapter.h

Modified: head/sys/dev/cxgbe/adapter.h
==============================================================================
--- head/sys/dev/cxgbe/adapter.h	Wed Nov 15 03:46:59 2017	(r325839)
+++ head/sys/dev/cxgbe/adapter.h	Wed Nov 15 06:45:33 2017	(r325840)
@@ -424,7 +424,7 @@ struct sge_eq {
 	struct mtx eq_lock;
 
 	struct tx_desc *desc;	/* KVA of descriptor ring */
-	uint16_t doorbells;
+	uint8_t doorbells;
 	volatile uint32_t *udb;	/* KVA of doorbell (lies within BAR2) */
 	u_int udb_qid;		/* relative qid within the doorbell page */
 	uint16_t sidx;		/* index of the entry with the status page */
@@ -695,7 +695,7 @@ struct sge_nm_txq {
 	uint16_t equiqidx;	/* EQUIQ last requested at this pidx */
 	uint16_t equeqidx;	/* EQUEQ last requested at this pidx */
 	uint16_t dbidx;		/* pidx of the most recent doorbell */
-	uint16_t doorbells;
+	uint8_t doorbells;
 	volatile uint32_t *udb;
 	u_int udb_qid;
 	u_int cntxt_id;
@@ -807,7 +807,7 @@ struct adapter {
 	struct l2t_data *l2t;	/* L2 table */
 	struct tid_info tids;
 
-	uint16_t doorbells;
+	uint8_t doorbells;
 	int offload_map;	/* ports with IFCAP_TOE enabled */
 	int active_ulds;	/* ULDs activated on this adapter */
 	int flags;


More information about the svn-src-head mailing list