From owner-svn-src-all@FreeBSD.ORG Thu Nov 1 06:16:44 2012 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0CCDD295; Thu, 1 Nov 2012 06:16:44 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-da0-f54.google.com (mail-da0-f54.google.com [209.85.210.54]) by mx1.freebsd.org (Postfix) with ESMTP id BF0BD8FC14; Thu, 1 Nov 2012 06:16:43 +0000 (UTC) Received: by mail-da0-f54.google.com with SMTP id z9so1075754dad.13 for ; Wed, 31 Oct 2012 23:16:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=bytR9rDmCkLV0rt8fijchQxfDtfZx6q8zZRrsHx6Dwg=; b=Qs1g7sy7j4WBnNJZUkaSjN36HhOXLWAXu6FMyEQhDKnYZhbmCSMO5XqZPt7v5cetjl VwW1l4JFnnz7yOwG/Eghhm0wjvN8pJBUNU4sHpec/s3TbHlqCxccyQiTatKm7HMf+qHO IvvA4fvaUSWarONC7IEcyrh6/OwNhBgJL7TsM12xkY8pX4ZOOY2aDDxXY1/iLAVxhcvf y207r+r0AlYofrnwJfQUM91wHrlb74wplf0c2wxkIUjZdwyAXsr5jFRm35MnJEwsdVz5 AShnzsPV57K5XhEjIgbDpjjx8TICcphgf6yF83PX/qxI7Fp3tTaiSetb1TYjj6nT+AX5 LMGw== MIME-Version: 1.0 Received: by 10.68.137.198 with SMTP id qk6mr119369105pbb.60.1351750603040; Wed, 31 Oct 2012 23:16:43 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.68.124.130 with HTTP; Wed, 31 Oct 2012 23:16:43 -0700 (PDT) In-Reply-To: <201211010539.qA15dLjs026526@svn.freebsd.org> References: <201211010539.qA15dLjs026526@svn.freebsd.org> Date: Wed, 31 Oct 2012 23:16:43 -0700 X-Google-Sender-Auth: CaxxeHGtwm1_ibhF6X6p8OdrAsQ Message-ID: Subject: Re: svn commit: r242425 - head/sys/dev/ti From: Adrian Chadd To: Pyun YongHyeon Content-Type: text/plain; charset=ISO-8859-1 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Nov 2012 06:16:44 -0000 so where'd this happen? interleaved TX nowdays via if_transmit() ? Adrian On 31 October 2012 22:39, Pyun YongHyeon wrote: > Author: yongari > Date: Thu Nov 1 05:39:21 2012 > New Revision: 242425 > URL: http://svn.freebsd.org/changeset/base/242425 > > Log: > Remove TCP/UDP checksum offloading feature for IP fragmented > datagrams. Traditionally upper stack fragmented packets without > computing TCP/UDP checksum and these datagrams were passed to > driver. But there are chances that other packets slip into the > interface queue in SMP world. If this happens firmware running on > MIPS 4000 processor in the controller would see mixed packets and > it shall send out corrupted packets. > While I'm here simplify checksum offloading setup. > > MFC After: 1 week > > Modified: > head/sys/dev/ti/if_ti.c > > Modified: head/sys/dev/ti/if_ti.c > ============================================================================== > --- head/sys/dev/ti/if_ti.c Thu Nov 1 04:07:08 2012 (r242424) > +++ head/sys/dev/ti/if_ti.c Thu Nov 1 05:39:21 2012 (r242425) > @@ -127,7 +127,7 @@ __FBSDID("$FreeBSD$"); > > #include > > -#define TI_CSUM_FEATURES (CSUM_IP | CSUM_TCP | CSUM_UDP | CSUM_IP_FRAGS) > +#define TI_CSUM_FEATURES (CSUM_IP | CSUM_TCP | CSUM_UDP) > /* > * We can only turn on header splitting if we're using extended receive > * BDs. > @@ -3082,16 +3082,10 @@ ti_encap(struct ti_softc *sc, struct mbu > > m = *m_head; > csum_flags = 0; > - if (m->m_pkthdr.csum_flags) { > - if (m->m_pkthdr.csum_flags & CSUM_IP) > - csum_flags |= TI_BDFLAG_IP_CKSUM; > - if (m->m_pkthdr.csum_flags & (CSUM_TCP | CSUM_UDP)) > - csum_flags |= TI_BDFLAG_TCP_UDP_CKSUM; > - if (m->m_flags & M_LASTFRAG) > - csum_flags |= TI_BDFLAG_IP_FRAG_END; > - else if (m->m_flags & M_FRAG) > - csum_flags |= TI_BDFLAG_IP_FRAG; > - } > + if (m->m_pkthdr.csum_flags & CSUM_IP) > + csum_flags |= TI_BDFLAG_IP_CKSUM; > + if (m->m_pkthdr.csum_flags & (CSUM_TCP | CSUM_UDP)) > + csum_flags |= TI_BDFLAG_TCP_UDP_CKSUM; > > frag = sc->ti_tx_saved_prodidx; > for (i = 0; i < nseg; i++) {