<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/include/linux/netdevice.h, branch linux-2.6.21.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.21.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-2.6.21.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2007-05-23T21:32:47Z</updated>
<entry>
<title>[PATCH] NETPOLL: Fix TX queue overflow in trapped mode.</title>
<updated>2007-05-23T21:32:47Z</updated>
<author>
<name>Sergei Shtylyov</name>
</author>
<published>2007-05-09T08:27:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=53d2e06b1f050ac6e025deeb70ab9bc0225951d3'/>
<id>urn:sha1:53d2e06b1f050ac6e025deeb70ab9bc0225951d3</id>
<content type='text'>
CONFIG_NETPOLL_TRAP causes the TX queue controls to be completely bypassed in
the netpoll's "trapped" mode which easily causes overflows in the drivers with
short TX queues (most notably, in 8139too with its 4-deep queue).  So, make
this option more sensible by making it only bypass the TX softirq wakeup.

Signed-off-by: Sergei Shtylyov &lt;sshtylyov@ru.mvista.com&gt;
Acked-by: Jeff Garzik &lt;jgarzik@pobox.com&gt;
Acked-by: Tom Rini &lt;trini@kernel.crashing.org&gt;
Acked-by: Matt Mackall &lt;mpm@selenic.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
</content>
</entry>
<entry>
<title>[NET]: unregister_netdevice as void</title>
<updated>2007-02-08T20:39:06Z</updated>
<author>
<name>Stephen Hemminger</name>
</author>
<published>2007-02-07T08:09:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=22f8cde5bc336fd19603bb8c4572b33d14f14f87'/>
<id>urn:sha1:22f8cde5bc336fd19603bb8c4572b33d14f14f87</id>
<content type='text'>
There was no real useful information from the unregister_netdevice() return
code, the only error occurred in a situation that was a driver bug. So
change it to a void function.

Signed-off-by: Stephen Hemminger &lt;shemminger@osdl.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Network: convert network devices to use struct device instead of class_device</title>
<updated>2007-02-07T18:37:11Z</updated>
<author>
<name>Greg Kroah-Hartman</name>
</author>
<published>2002-04-09T19:14:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=43cb76d91ee85f579a69d42bc8efc08bac560278'/>
<id>urn:sha1:43cb76d91ee85f579a69d42bc8efc08bac560278</id>
<content type='text'>
This lets the network core have the ability to handle suspend/resume
issues, if it wants to.

Thanks to Frederik Deweerdt &lt;frederik.deweerdt@gmail.com&gt; for the arm
driver fixes.

Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>[NET]: Add memory barrrier to netif_poll_enable()</title>
<updated>2006-12-31T22:06:48Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2006-12-29T05:14:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e44c39bd8478bf9e41cbc611c74b5879a7b29f58'/>
<id>urn:sha1:e44c39bd8478bf9e41cbc611c74b5879a7b29f58</id>
<content type='text'>
When a driver writer calls this, they generally expect that
all previous stores and modifications they've made will be
visible before netif_poll_enable() executes, so ensure this.

Noticed by Ben H.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[NET]: Force a cache line split in hh_cache in SMP.</title>
<updated>2006-12-09T01:19:29Z</updated>
<author>
<name>Eric Dumazet</name>
</author>
<published>2006-12-08T08:08:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f0490980a152958d25ce9762bfb296d8fd4c5512'/>
<id>urn:sha1:f0490980a152958d25ce9762bfb296d8fd4c5512</id>
<content type='text'>
hh_lock was converted from rwlock to seqlock by Stephen.

To have a 100% benefit of this change, I suggest to place read mostly fields
of hh_cache in a separate cache line, because hh_refcnt may be changed quite
frequently on some busy machines.

Signed-off-by: Eric Dumazet &lt;dada1@cosmosbay.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[NET]: Convert hh_lock to seqlock.</title>
<updated>2006-12-09T01:19:20Z</updated>
<author>
<name>Stephen Hemminger</name>
</author>
<published>2006-12-07T23:08:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3644f0cee77494190452de132e82245107939284'/>
<id>urn:sha1:3644f0cee77494190452de132e82245107939284</id>
<content type='text'>
The hard header cache is in the main output path, so using
seqlock instead of reader/writer lock should reduce overhead.

Signed-off-by: Stephen Hemminger &lt;shemminger@osdl.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>[PATCH] severing skbuff.h -&gt; mm.h</title>
<updated>2006-12-04T07:00:34Z</updated>
<author>
<name>Al Viro</name>
</author>
<published>2006-12-04T04:15:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d7fe0f241dceade9c8d4af75498765c5ff7f27e6'/>
<id>urn:sha1:d7fe0f241dceade9c8d4af75498765c5ff7f27e6</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>[NET]: Pack struct hh_cache</title>
<updated>2006-12-03T05:30:47Z</updated>
<author>
<name>Arnaldo Carvalho de Melo</name>
</author>
<published>2006-11-27T19:58:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d5c42c0ec4f7fd5a4e19e33a2d561758b67c55c8'/>
<id>urn:sha1:d5c42c0ec4f7fd5a4e19e33a2d561758b67c55c8</id>
<content type='text'>
[acme@newtoy net-2.6.20]$ pahole net/ipv4/tcp.o hh_cache
/* /pub/scm/linux/kernel/git/acme/net-2.6.20/include/linux/netdevice.h:190 */
struct hh_cache {
        struct hh_cache *          hh_next;              /*     0     4 */
        atomic_t                   hh_refcnt;            /*     4     4 */
        __be16                     hh_type;              /*     8     2 */

        /* XXX 2 bytes hole, try to pack */

        int                        hh_len;               /*    12     4 */
        int                        (*hh_output)();       /*    16     4 */
        rwlock_t                   hh_lock;              /*    20    36 */
        long unsigned int          hh_data[24];          /*    56    96 */
}; /* size: 152, sum members: 150, holes: 1, sum holes: 2 */

[acme@newtoy net-2.6.20]$ find net -name "*.[ch]" | xargs grep 'hh_len.\+=' | sort -u
net/atm/br2684.c:               hh-&gt;hh_len = PADLEN + ETH_HLEN;
net/ethernet/eth.c:     hh-&gt;hh_len = ETH_HLEN;
net/ipv4/ipconfig.c:    int hh_len = LL_RESERVED_SPACE(dev);
net/ipv4/ip_output.c:   hh_len = LL_RESERVED_SPACE(rt-&gt;u.dst.dev);
net/ipv4/ip_output.c:   int hh_len = LL_RESERVED_SPACE(dev);
net/ipv4/netfilter.c:   hh_len = (*pskb)-&gt;dst-&gt;dev-&gt;hard_header_len;
net/ipv4/raw.c: hh_len = LL_RESERVED_SPACE(rt-&gt;u.dst.dev);
net/ipv6/ip6_output.c:  hh_len = LL_RESERVED_SPACE(rt-&gt;u.dst.dev);
net/ipv6/netfilter/ip6t_REJECT.c:       hh_len = (dst-&gt;dev-&gt;hard_header_len + 15)&amp;~15;
net/ipv6/raw.c: hh_len = LL_RESERVED_SPACE(rt-&gt;u.dst.dev);
[acme@newtoy net-2.6.20]$

[acme@newtoy net-2.6.20]$ find include -name "*.h" | xargs grep 'define ETH_HLEN'
include/linux/if_ether.h:#define ETH_HLEN       14              /* Total octets in header.       */

        (((dev)-&gt;hard_header_len&amp;~(HH_DATA_MOD - 1)) + HH_DATA_MOD)

[acme@newtoy net-2.6.20]$ pahole net/ipv4/tcp.o net_device | grep hard_header_len
        short unsigned int         hard_header_len;      /*   106     2 */
[acme@newtoy net-2.6.20]$

So I think we're safe in turning hh_len an u16, end result:

[acme@newtoy net-2.6.20]$ codiff -sV /tmp/tcp.o.before net/ipv4/tcp.o
/pub/scm/linux/kernel/git/acme/net-2.6.20/net/ipv4/tcp.c:
  struct hh_cache |   -4
    hh_len;
     from: int                   /*    12(0)     4(0) */
     to:   u16                   /*    10(0)     2(0) */
 1 struct changed
[acme@newtoy net-2.6.20]$

Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@mandriva.com&gt;
</content>
</entry>
<entry>
<title>[TCP/DCCP]: Introduce net_xmit_eval</title>
<updated>2006-12-03T05:22:27Z</updated>
<author>
<name>Gerrit Renker</name>
</author>
<published>2006-11-14T13:21:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b9df3cb8cf9a96e63dfdcd3056a9cbc71f2459e7'/>
<id>urn:sha1:b9df3cb8cf9a96e63dfdcd3056a9cbc71f2459e7</id>
<content type='text'>
Throughout the TCP/DCCP (and tunnelling) code, it often happens that the
return code of a transmit function needs to be tested against NET_XMIT_CN
which is a value that does not indicate a strict error condition.

This patch uses a macro for these recurring situations which is consistent
with the already existing macro net_xmit_errno, saving on duplicated code.

Signed-off-by: Gerrit Renker &lt;gerrit@erg.abdn.ac.uk&gt;
Signed-off-by: Arnaldo Carvalho de Melo &lt;acme@mandriva.com&gt;
</content>
</entry>
<entry>
<title>[NET]: The scheduled removal of the frame diverter.</title>
<updated>2006-12-03T05:22:23Z</updated>
<author>
<name>Adrian Bunk</name>
</author>
<published>2006-11-14T00:02:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=90833aa4f496d69ca374af6acef7d1614c8693ff'/>
<id>urn:sha1:90833aa4f496d69ca374af6acef7d1614c8693ff</id>
<content type='text'>
This patch contains the scheduled removal of the frame diverter.

Signed-off-by: Adrian Bunk &lt;bunk@stusta.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
