From owner-p4-projects@FreeBSD.ORG Fri Jan 11 17:44:30 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 205FC16A4DD; Fri, 11 Jan 2008 17:44:30 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C1D2116A4C5 for ; Fri, 11 Jan 2008 17:44:29 +0000 (UTC) (envelope-from swise@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A9E1213C448 for ; Fri, 11 Jan 2008 17:44:29 +0000 (UTC) (envelope-from swise@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m0BHiTcH019115 for ; Fri, 11 Jan 2008 17:44:29 GMT (envelope-from swise@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m0BHiTYx019112 for perforce@freebsd.org; Fri, 11 Jan 2008 17:44:29 GMT (envelope-from swise@FreeBSD.org) Date: Fri, 11 Jan 2008 17:44:29 GMT Message-Id: <200801111744.m0BHiTYx019112@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to swise@FreeBSD.org using -f From: Steve Wise To: Perforce Change Reviews Cc: Subject: PERFORCE change 133057 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jan 2008 17:44:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=133057 Change 133057 by swise@swise:vic10:iwarp on 2008/01/11 17:43:32 Don't post TID_RELEASE message The LLD does this for us in cxgb3_remove_tid(). Also fixed active open failure cases where we also shouldn't be releasing the TID. Affected files ... .. //depot/projects/iwarp/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_iwch_cm.c#11 edit Differences ... ==== //depot/projects/iwarp/sys/dev/cxgb/ulp/iw_cxgb/iw_cxgb_iwch_cm.c#11 (text+ko) ==== @@ -309,8 +309,6 @@ cxgb_remove_tid(ep->com.tdev, (void *)ep, ep->hwtid); RTFREE(ep->dst); l2t_release(L2DATA(ep->com.tdev), ep->l2t); - if (ep->com.tdev->type == T3B) - release_tid(ep->com.tdev, ep->hwtid, NULL); put_ep(&ep->com); } @@ -1181,6 +1179,16 @@ return CPL_RET_BUF_DONE; } +/* + * Return whether a failed active open has allocated a TID + */ +static inline int act_open_has_tid(int status) +{ + return status != CPL_ERR_TCAM_FULL && status != CPL_ERR_CONN_EXIST && + status != CPL_ERR_ARP_MISS; +} + + static int act_open_rpl(struct t3cdev *tdev, struct mbuf *m, void *ctx) { @@ -1191,7 +1199,7 @@ status2errno(rpl->status)); connect_reply_upcall(ep, status2errno(rpl->status)); state_set(&ep->com, DEAD); - if (ep->com.tdev->type == T3B) + if (ep->com.tdev->type == T3B && act_open_has_tid(rpl->status)) release_tid(ep->com.tdev, GET_TID(rpl), NULL); cxgb_free_atid(ep->com.tdev, ep->atid); RTFREE(ep->dst);