From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25198 invoked by alias); 27 Jun 2013 11:24:22 -0000 Mailing-List: contact ecos-devel-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: ecos-devel-owner@ecos.sourceware.org Received: (qmail 25177 invoked by uid 89); 27 Jun 2013 11:24:21 -0000 X-Spam-SWARE-Status: No, score=4.6 required=5.0 tests=AWL,BAYES_50,BOTNET,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=no version=3.3.1 Received: from ip2.televic.com (HELO ip2.televic.com) (81.82.194.222) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Thu, 27 Jun 2013 11:24:19 +0000 Received: from SRV-VS06.TELEVIC.COM ([10.0.0.46]) by SRV-VS06.TELEVIC.COM ([10.0.0.46]) with mapi; Thu, 27 Jun 2013 13:24:17 +0200 From: =?iso-8859-1?Q?Lambrecht_J=FCrgen?= To: "ecos-devel@ecos.sourceware.org" Date: Thu, 27 Jun 2013 11:24:00 -0000 Subject: RFC: bsd_tcp patch on in.c Message-ID: <51CC20E1.3090502@televic.com> user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/17.0 Thunderbird/17.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-SW-Source: 2013-06/txt/msg00001.txt.bz2 Hello, The patch below we already use since 2006. We had problems with the TCP/IP stack directly after booting because it=20 already received packets before being initialized completely. Here our CVS log: move splx(s); from line 682 to line 739 so that tcp/ip stack has started up before the ethernet driver is released (else the not-ready stack will already receive packets) Do you agree this is a valid patch? ---------------------------------------------------------------------------= ----- Index: net/bsd_tcpip/current/src/sys/netinet/in.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvs/ecos/ecos-opt/net/net/bsd_tcpip/current/src/sys/netinet/in.c= ,v retrieving revision 1.4 diff -u -5 -p -r1.4 in.c --- net/bsd_tcpip/current/src/sys/netinet/in.c 29 Jan 2009 17:49:56 -0000 = 1.4 +++ net/bsd_tcpip/current/src/sys/netinet/in.c 27 Jun 2013 11:03:38 -0000 @@ -675,11 +675,10 @@ in_ifinit(ifp, ia, sin, scrub) (error =3D (*ifp->if_ioctl)(ifp, SIOCSIFADDR, (caddr_t)ia))) { splx(s); ia->ia_addr =3D oldaddr; return (error); } - splx(s); if (scrub) { ia->ia_ifa.ifa_addr =3D (struct sockaddr *)&oldaddr; in_ifscrub(ifp, ia); ia->ia_ifa.ifa_addr =3D (struct sockaddr *)&ia->ia_addr; } @@ -733,10 +732,11 @@ in_ifinit(ifp, ia, sin, scrub) struct in_addr addr; addr.s_addr =3D htonl(INADDR_ALLHOSTS_GROUP); in_addmulti(&addr, ifp); } + splx(s); return (error); } /* ---------------------------------------------------------------------------= ----- Kind regards, J=FCrgen --=20 J=FCrgen Lambrecht R&D Associate Mobile: +32 499 644 531 Tel: +32 (0)51 303045 Fax: +32 (0)51 310670 http://www.televic-rail.com Televic Rail NV - Leo Bekaertlaan 1 - 8870 Izegem - Belgium Company number 0825.539.581 - RPR Kortrijk