diff -Nru libcxgb3-1.3.0/ChangeLog libcxgb3-1.3.1/ChangeLog --- libcxgb3-1.3.0/ChangeLog 2010-10-25 15:07:22.000000000 +0000 +++ libcxgb3-1.3.1/ChangeLog 2011-10-10 15:01:50.000000000 +0000 @@ -1,6 +1,28 @@ -commit aa01ae66b6b9d83b570631456bf03b6b42b90931 +commit 49507d0a9d75a146be39e5fd89e749aba89fc23d Author: Steve Wise -Date: Mon Oct 25 10:06:54 2010 -0500 +Date: Mon Oct 10 09:52:43 2011 -0500 + + Spin 1.3.1 release. + + Signed-off-by: Steve Wise + +commit f2aed2ca2ede359f04b43e482c8e0cd6e035aa9d +Author: Kumar Sanghvi +Date: Mon Oct 10 09:51:43 2011 -0500 + + From 20c71f269c2b9abbab9a0b3333dd15aaf8c0de0f Mon Sep 17 00:00:00 2001 + Subject: [PATCH] qp.c: Track qp flush status + + Track qp flush status, and don't re-flush a qp if its already + flushed once. + + This resolves segfaults observed with dapltest. + + Signed-off-by: Kumar Sanghvi + +commit 0bbd607c53059e12d6a020332b0cb6f1a1435350 +Author: Steve Wise +Date: Mon Oct 25 10:07:00 2010 -0500 Spin release 1.3.0. diff -Nru libcxgb3-1.3.0/configure libcxgb3-1.3.1/configure --- libcxgb3-1.3.0/configure 2010-10-25 15:07:55.000000000 +0000 +++ libcxgb3-1.3.1/configure 2011-10-10 15:02:00.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.59 for libcxgb3 1.3.0. +# Generated by GNU Autoconf 2.59 for libcxgb3 1.3.1. # # Report bugs to . # @@ -423,8 +423,8 @@ # Identity of this package. PACKAGE_NAME='libcxgb3' PACKAGE_TARNAME='libcxgb3' -PACKAGE_VERSION='1.3.0' -PACKAGE_STRING='libcxgb3 1.3.0' +PACKAGE_VERSION='1.3.1' +PACKAGE_STRING='libcxgb3 1.3.1' PACKAGE_BUGREPORT='linux-rdma@vger.kernel.org' ac_unique_file="src/iwch.h" @@ -954,7 +954,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libcxgb3 1.3.0 to adapt to many kinds of systems. +\`configure' configures libcxgb3 1.3.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1020,7 +1020,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libcxgb3 1.3.0:";; + short | recursive ) echo "Configuration of libcxgb3 1.3.1:";; esac cat <<\_ACEOF @@ -1160,7 +1160,7 @@ test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF -libcxgb3 configure 1.3.0 +libcxgb3 configure 1.3.1 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. @@ -1174,7 +1174,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libcxgb3 $as_me 1.3.0, which was +It was created by libcxgb3 $as_me 1.3.1, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ @@ -1820,7 +1820,7 @@ # Define the identity of the package. PACKAGE=libcxgb3 - VERSION=1.3.0 + VERSION=1.3.1 cat >>confdefs.h <<_ACEOF @@ -21075,7 +21075,7 @@ } >&5 cat >&5 <<_CSEOF -This file was extended by libcxgb3 $as_me 1.3.0, which was +This file was extended by libcxgb3 $as_me 1.3.1, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -21138,7 +21138,7 @@ cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ -libcxgb3 config.status 1.3.0 +libcxgb3 config.status 1.3.1 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" diff -Nru libcxgb3-1.3.0/configure.in libcxgb3-1.3.1/configure.in --- libcxgb3-1.3.0/configure.in 2010-10-25 15:07:22.000000000 +0000 +++ libcxgb3-1.3.1/configure.in 2011-10-10 15:01:50.000000000 +0000 @@ -1,11 +1,11 @@ dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.57) -AC_INIT(libcxgb3, 1.3.0, linux-rdma@vger.kernel.org) +AC_INIT(libcxgb3, 1.3.1, linux-rdma@vger.kernel.org) AC_CONFIG_SRCDIR([src/iwch.h]) AC_CONFIG_AUX_DIR(config) AM_CONFIG_HEADER(config.h) -AM_INIT_AUTOMAKE(libcxgb3, 1.3.0) +AM_INIT_AUTOMAKE(libcxgb3, 1.3.1) AM_PROG_LIBTOOL AC_ARG_ENABLE(libcheck, [ --disable-libcheck do not test for presence of ib libraries], diff -Nru libcxgb3-1.3.0/debian/changelog libcxgb3-1.3.1/debian/changelog --- libcxgb3-1.3.0/debian/changelog 2011-07-07 07:04:33.000000000 +0000 +++ libcxgb3-1.3.1/debian/changelog 2012-06-17 00:51:41.000000000 +0000 @@ -1,3 +1,12 @@ +libcxgb3 (1.3.1-1) unstable; urgency=low + + * New upstream release. + - Don't reflush QP that's already flushed. + * Update maintainer and remove DM-Upload-Allowed now that I'm a DD. + * Update to Standards-Version: 3.9.3. + + -- Roland Dreier Sat, 16 Jun 2012 17:51:36 -0700 + libcxgb3 (1.3.0-1) unstable; urgency=low * New upstream release. diff -Nru libcxgb3-1.3.0/debian/control libcxgb3-1.3.1/debian/control --- libcxgb3-1.3.0/debian/control 2011-07-07 07:04:33.000000000 +0000 +++ libcxgb3-1.3.1/debian/control 2012-06-17 00:51:00.000000000 +0000 @@ -1,9 +1,8 @@ Source: libcxgb3 Priority: extra -Maintainer: Roland Dreier -DM-Upload-Allowed: yes +Maintainer: Roland Dreier Build-Depends: autoconf, automake, libtool, debhelper (>= 7.0.50~), dpkg-dev (>= 1.13.19), libibverbs-dev (>= 1.1.3) -Standards-Version: 3.9.2 +Standards-Version: 3.9.3 Section: libs Homepage: http://www.openfabrics.org/ diff -Nru libcxgb3-1.3.0/libcxgb3.spec libcxgb3-1.3.1/libcxgb3.spec --- libcxgb3-1.3.0/libcxgb3.spec 2010-10-25 15:08:02.000000000 +0000 +++ libcxgb3-1.3.1/libcxgb3.spec 2011-10-10 15:02:18.000000000 +0000 @@ -1,7 +1,7 @@ -%define ver 1.3.0 +%define ver 1.3.1 Name: libcxgb3 -Version: 1.3.0 +Version: 1.3.1 Release: 1%{?dist} Summary: Chelsio T3 RNIC Open Fabrics Userspace Library diff -Nru libcxgb3-1.3.0/libcxgb3.spec.in libcxgb3-1.3.1/libcxgb3.spec.in --- libcxgb3-1.3.0/libcxgb3.spec.in 2010-10-25 15:07:22.000000000 +0000 +++ libcxgb3-1.3.1/libcxgb3.spec.in 2011-10-10 15:01:50.000000000 +0000 @@ -1,7 +1,7 @@ %define ver @VERSION@ Name: libcxgb3 -Version: 1.3.0 +Version: 1.3.1 Release: 1%{?dist} Summary: Chelsio T3 RNIC Open Fabrics Userspace Library diff -Nru libcxgb3-1.3.0/Makefile.in libcxgb3-1.3.1/Makefile.in --- libcxgb3-1.3.0/Makefile.in 2010-10-25 15:07:54.000000000 +0000 +++ libcxgb3-1.3.1/Makefile.in 2011-10-10 15:01:59.000000000 +0000 @@ -472,7 +472,7 @@ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook - -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ + -find $(distdir) -type d ! -perm -755 -exec chmod a+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ diff -Nru libcxgb3-1.3.0/src/cxio_wr.h libcxgb3-1.3.1/src/cxio_wr.h --- libcxgb3-1.3.0/src/cxio_wr.h 2010-10-25 15:07:22.000000000 +0000 +++ libcxgb3-1.3.1/src/cxio_wr.h 2011-10-10 15:01:50.000000000 +0000 @@ -603,6 +603,7 @@ uint32_t rq_rptr; /* pending wrs */ uint32_t rq_size_log2; /* rq size */ volatile uint32_t *doorbell; /* mapped adapter doorbell register */ + int flushed; }; struct t3_cq { diff -Nru libcxgb3-1.3.0/src/qp.c libcxgb3-1.3.1/src/qp.c --- libcxgb3-1.3.0/src/qp.c 2010-10-25 15:07:22.000000000 +0000 +++ libcxgb3-1.3.1/src/qp.c 2011-10-10 15:01:50.000000000 +0000 @@ -478,10 +478,14 @@ struct iwch_cq *rchp, *schp; int count; + if (qhp->wq.flushed) + return; + rchp = qhp->rhp->cqid2ptr[to_iwch_cq(qhp->ibv_qp.recv_cq)->cq.cqid]; schp = qhp->rhp->cqid2ptr[to_iwch_cq(qhp->ibv_qp.send_cq)->cq.cqid]; PDBG("%s qhp %p rchp %p schp %p\n", __FUNCTION__, qhp, rchp, schp); + qhp->wq.flushed = 1; #ifdef notyet /* take a ref on the qhp since we must release the lock */ @@ -522,10 +526,12 @@ pthread_spin_lock(&dev->lock); for (i=0; i < T3_MAX_NUM_QP; i++) { struct iwch_qp *qhp = dev->qpid2ptr[i]; - if (qhp && t3_wq_in_error(&qhp->wq)) { - pthread_spin_lock(&qhp->lock); - iwch_flush_qp(qhp); - pthread_spin_unlock(&qhp->lock); + if (qhp) { + if (!qhp->wq.flushed && t3_wq_in_error(&qhp->wq)) { + pthread_spin_lock(&qhp->lock); + iwch_flush_qp(qhp); + pthread_spin_unlock(&qhp->lock); + } } } pthread_spin_unlock(&dev->lock);