From owner-p4-projects@FreeBSD.ORG Wed Nov 7 03:42:22 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5B17B16A420; Wed, 7 Nov 2007 03:42:22 +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 8EEAF16A419 for ; Wed, 7 Nov 2007 03:42:21 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7E93B13C4A8 for ; Wed, 7 Nov 2007 03:42:21 +0000 (UTC) (envelope-from kmacy@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 lA73gLKE075503 for ; Wed, 7 Nov 2007 03:42:21 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id lA73gLPB075500 for perforce@freebsd.org; Wed, 7 Nov 2007 03:42:21 GMT (envelope-from kmacy@freebsd.org) Date: Wed, 7 Nov 2007 03:42:21 GMT Message-Id: <200711070342.lA73gLPB075500@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 128759 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: Wed, 07 Nov 2007 03:42:22 -0000 http://perforce.freebsd.org/chv.cgi?CH=128759 Change 128759 by kmacy@kmacy:storage:toestack on 2007/11/07 03:41:39 add more disconnect related flags add routine for allocating mbufs from cache where failure can't be handled Affected files ... .. //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_defs.h#7 edit .. //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_tom.h#8 edit Differences ... ==== //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_defs.h#7 (text+ko) ==== @@ -8,6 +8,8 @@ #define toeptoso(toep) ((toep)->tp_tp->t_inpcb->inp_socket) #define sototoep(so) (sototcpcb((so))->t_toe) +typedef void (*defer_handler_t)(struct toedev *dev, struct mbuf *m); + void t3tom_register_cpl_handler(unsigned int opcode, cxgb_cpl_handler_func h); void t3_listen_start(struct toedev *dev, struct socket *so, struct t3cdev *cdev); void t3_listen_stop(struct toedev *dev, struct socket *so, struct t3cdev *cdev); @@ -22,6 +24,7 @@ void t3_disconnect_acceptq(struct socket *listen_so); void t3_reset_synq(struct socket *listen_so); +void t3_defer_reply(struct mbuf *m, struct toedev *dev, defer_handler_t handler); void toepcb_hold(struct toepcb *); void toepcb_release(struct toepcb *); ==== //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_tom.h#8 (text+ko) ==== @@ -79,6 +79,9 @@ struct mtx ppod_map_lock; struct adap_ports *ports; + + + struct taskqueue *tq; }; @@ -91,11 +94,15 @@ #define T3C_DEV(sk) ((TOM_DATA(TOE_DEV(sk)))->cdev) #define TOM_TUNABLE(dev, param) (TOM_DATA(dev)->conf.param) -#define TP_DATASENT (1 << 0) -#define TP_TX_WAIT_IDLE (1 << 1) -#define TP_FIN_SENT (1 << 2) -#define TP_ABORT_RPL_PENDING (1 << 3) -#define TP_ABORT_SHUTDOWN (1 << 4) +#define TP_DATASENT (1 << 0) +#define TP_TX_WAIT_IDLE (1 << 1) +#define TP_FIN_SENT (1 << 2) +#define TP_ABORT_RPL_PENDING (1 << 3) +#define TP_ABORT_SHUTDOWN (1 << 4) +#define TP_ABORT_RPL_RCVD (1 << 5) +#define TP_ABORT_REQ_RCVD (1 << 6) +#define TP_CLOSE_CON_REQUESTED (1 << 7) + struct toepcb { struct toedev *tp_toedev; @@ -167,5 +174,20 @@ void t3_init_tunables(struct tom_data *t); +static __inline struct mbuf * +m_gethdr_nofail(int len) +{ + struct mbuf *m; + + m = m_gethdr(M_NOWAIT, MT_DATA); + if (m == NULL) { + panic("implement lowmem cache\n"); + } + + KASSERT(len < MHLEN, ("requested header size too large for mbuf")); + m->m_pkthdr.len = m->m_len = len; + return (m); +} + #endif