<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/net/core/dev.c, branch v2.6.31.12</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/net/core/dev.c?h=v2.6.31.12</id>
<link rel='self' href='https://git.amat.us/linux/atom/net/core/dev.c?h=v2.6.31.12'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2009-12-18T21:44:21Z</updated>
<entry>
<title>net: Fix userspace RTM_NEWLINK notifications.</title>
<updated>2009-12-18T21:44:21Z</updated>
<author>
<name>Eric W. Biederman</name>
<email>ebiederm@xmission.com</email>
</author>
<published>2009-12-14T06:39:28Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0723f2f0124da4cb5ccf260bebfa703b24c199a4'/>
<id>urn:sha1:0723f2f0124da4cb5ccf260bebfa703b24c199a4</id>
<content type='text'>
commit d90a909e1f3e006a1d57fe11fd417173b6494701 upstream.

I received some bug reports about userspace programs having problems
because after RTM_NEWLINK was received they could not immeidate
access files under /proc/sys/net/ because they had not been
registered yet.

The problem was trivailly fixed by moving the userspace
notification from rtnetlink_event to the end of register_netdevice.

Signed-off-by: Eric W. Biederman &lt;ebiederm@aristanetworks.com&gt;
Cc: David Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>net: Fix the rollback test in dev_change_name()</title>
<updated>2009-12-18T21:43:56Z</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2009-11-15T23:30:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d65e5e58537d8b09972ac37974d40d0ef7cec019'/>
<id>urn:sha1:d65e5e58537d8b09972ac37974d40d0ef7cec019</id>
<content type='text'>
[ Upstream commit 91e9c07bd635353d1a278bdb38dbb56ac371bcb8 ]

net: Fix the rollback test in dev_change_name()

In dev_change_name() an err variable is used for storing the original
call_netdevice_notifiers() errno (negative) and testing for a rollback
error later, but the test for non-zero is wrong, because the err might
have positive value as well - from dev_alloc_name(). It means the
rollback for a netdevice with a number &gt; 0 will never happen. (The err
test is reordered btw. to make it more readable.)

Signed-off-by: Jarek Poplawski &lt;jarkao2@gmail.com&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>net: restore tx timestamping for accelerated vlans</title>
<updated>2009-10-12T19:40:24Z</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2009-09-30T23:42:42Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d649563d3bac1c86bc04e425884825b642610228'/>
<id>urn:sha1:d649563d3bac1c86bc04e425884825b642610228</id>
<content type='text'>
[ Upstream commit 81bbb3d4048cf577b5babcb0834230de391a35c5 ]

Since commit 9b22ea560957de1484e6b3e8538f7eef202e3596
( net: fix packet socket delivery in rx irq handler )

We lost rx timestamping of packets received on accelerated vlans.

Effect is that tcpdump on real dev can show strange timings, since it gets rx timestamps
too late (ie at skb dequeueing time, not at skb queueing time)

14:47:26.986871 IP 192.168.20.110 &gt; 192.168.20.141: icmp 64: echo request seq 1
14:47:26.986786 IP 192.168.20.141 &gt; 192.168.20.110: icmp 64: echo reply seq 1

14:47:27.986888 IP 192.168.20.110 &gt; 192.168.20.141: icmp 64: echo request seq 2
14:47:27.986781 IP 192.168.20.141 &gt; 192.168.20.110: icmp 64: echo reply seq 2

14:47:28.986896 IP 192.168.20.110 &gt; 192.168.20.141: icmp 64: echo request seq 3
14:47:28.986780 IP 192.168.20.141 &gt; 192.168.20.110: icmp 64: echo reply seq 3

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>net: Fix spinlock use in alloc_netdev_mq()</title>
<updated>2009-08-05T15:35:11Z</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2009-08-04T21:16:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0bf52b981770cbf006323bab5177f2858a196766'/>
<id>urn:sha1:0bf52b981770cbf006323bab5177f2858a196766</id>
<content type='text'>
-tip testing found this lockdep warning:

[    2.272010] calling  net_dev_init+0x0/0x164 @ 1
[    2.276033] device class 'net': registering
[    2.280191] INFO: trying to register non-static key.
[    2.284005] the code is fine but needs lockdep annotation.
[    2.284005] turning off the locking correctness validator.
[    2.284005] Pid: 1, comm: swapper Not tainted 2.6.31-rc5-tip #1145
[    2.284005] Call Trace:
[    2.284005]  [&lt;7958eb4e&gt;] ? printk+0xf/0x11
[    2.284005]  [&lt;7904f83c&gt;] __lock_acquire+0x11b/0x622
[    2.284005]  [&lt;7908c9b7&gt;] ? alloc_debug_processing+0xf9/0x144
[    2.284005]  [&lt;7904e2be&gt;] ? mark_held_locks+0x3a/0x52
[    2.284005]  [&lt;7908dbc4&gt;] ? kmem_cache_alloc+0xa8/0x13f
[    2.284005]  [&lt;7904e475&gt;] ? trace_hardirqs_on_caller+0xa2/0xc3
[    2.284005]  [&lt;7904fdf6&gt;] lock_acquire+0xb3/0xd0
[    2.284005]  [&lt;79489678&gt;] ? alloc_netdev_mq+0xf5/0x1ad
[    2.284005]  [&lt;79591514&gt;] _spin_lock_bh+0x2d/0x5d
[    2.284005]  [&lt;79489678&gt;] ? alloc_netdev_mq+0xf5/0x1ad
[    2.284005]  [&lt;79489678&gt;] alloc_netdev_mq+0xf5/0x1ad
[    2.284005]  [&lt;793a38f2&gt;] ? loopback_setup+0x0/0x74
[    2.284005]  [&lt;798eecd0&gt;] loopback_net_init+0x20/0x5d
[    2.284005]  [&lt;79483efb&gt;] register_pernet_device+0x23/0x4b
[    2.284005]  [&lt;798f5c9f&gt;] net_dev_init+0x115/0x164
[    2.284005]  [&lt;7900104f&gt;] do_one_initcall+0x4a/0x11a
[    2.284005]  [&lt;798f5b8a&gt;] ? net_dev_init+0x0/0x164
[    2.284005]  [&lt;79066f6d&gt;] ? register_irq_proc+0x8c/0xa8
[    2.284005]  [&lt;798cc29a&gt;] do_basic_setup+0x42/0x52
[    2.284005]  [&lt;798cc30a&gt;] kernel_init+0x60/0xa1
[    2.284005]  [&lt;798cc2aa&gt;] ? kernel_init+0x0/0xa1
[    2.284005]  [&lt;79003e03&gt;] kernel_thread_helper+0x7/0x10
[    2.284078] device: 'lo': device_add
[    2.288248] initcall net_dev_init+0x0/0x164 returned 0 after 11718 usecs
[    2.292010] calling  neigh_init+0x0/0x66 @ 1
[    2.296010] initcall neigh_init+0x0/0x66 returned 0 after 0 usecs

it's using an zero-initialized spinlock. This is a side-effect of:

        dev_unicast_init(dev);

in alloc_netdev_mq() making use of dev-&gt;addr_list_lock.

The device has just been allocated freshly, it's not accessible
anywhere yet so no locking is needed at all - in fact it's wrong
to lock it here (the lock isnt initialized yet).

This bug was introduced via:

| commit a6ac65db2329e7685299666f5f7b6093c7b0f3a0
| Date:   Thu Jul 30 01:06:12 2009 +0000
|
|     net: restore the original spinlock to protect unicast list

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Acked-by: Jiri Pirko &lt;jpirko@redhat.com&gt;
Tested-by: Mark Brown &lt;broonie@opensource.wolfsonmicro.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: restore the original spinlock to protect unicast list</title>
<updated>2009-08-02T19:20:46Z</updated>
<author>
<name>Jiri Pirko</name>
<email>jpirko@redhat.com</email>
</author>
<published>2009-07-30T01:06:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a6ac65db2329e7685299666f5f7b6093c7b0f3a0'/>
<id>urn:sha1:a6ac65db2329e7685299666f5f7b6093c7b0f3a0</id>
<content type='text'>
There is a path when an assetion in dev_unicast_sync() appears.

igmp6_group_added -&gt; dev_mc_add -&gt; __dev_set_rx_mode -&gt;
-&gt; vlan_dev_set_rx_mode -&gt; dev_unicast_sync

Therefore we cannot protect this list with rtnl. This patch restores the
original protecting this list with spinlock.

Signed-off-by: Jiri Pirko &lt;jpirko@redhat.com&gt;
Tested-by: Meelis Roos &lt;mroos@linux.ee&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>gro: Flush GRO packets in napi_disable_pending path</title>
<updated>2009-06-27T02:27:04Z</updated>
<author>
<name>Herbert Xu</name>
<email>herbert@gondor.apana.org.au</email>
</author>
<published>2009-06-27T02:27:04Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ff780cd8f2fa928b193554f593b36d1243554212'/>
<id>urn:sha1:ff780cd8f2fa928b193554f593b36d1243554212</id>
<content type='text'>
When NAPI is disabled while we're in net_rx_action, we end up
calling __napi_complete without flushing GRO packets.  This is
a bug as it would cause the GRO packets to linger, of course it
also literally BUGs to catch error like this :)

This patch changes it to napi_complete, with the obligatory IRQ
reenabling.  This should be safe because we've only just disabled
IRQs and it does not materially affect the test conditions in
between.

Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: Move rx skb_orphan call to where needed</title>
<updated>2009-06-23T23:36:25Z</updated>
<author>
<name>Herbert Xu</name>
<email>herbert@gondor.apana.org.au</email>
</author>
<published>2009-06-22T02:25:25Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d55d87fdff8252d0e2f7c28c2d443aee17e9d70f'/>
<id>urn:sha1:d55d87fdff8252d0e2f7c28c2d443aee17e9d70f</id>
<content type='text'>
In order to get the tun driver to account packets, we need to be
able to receive packets with destructors set.  To be on the safe
side, I added an skb_orphan call for all protocols by default since
some of them (IP in particular) cannot handle receiving packets
destructors properly.

Now it seems that at least one protocol (CAN) expects to be able
to pass skb-&gt;sk through the rx path without getting clobbered.

So this patch attempts to fix this properly by moving the skb_orphan
call to where it's actually needed.  In particular, I've added it
to skb_set_owner_[rw] which is what most users of skb-&gt;destructor
call.

This is actually an improvement for tun too since it means that
we only give back the amount charged to the socket when the skb
is passed to another socket that will also be charged accordingly.

Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Tested-by: Oliver Hartkopp &lt;olver@hartkopp.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: group address list and its count</title>
<updated>2009-06-18T07:29:08Z</updated>
<author>
<name>Jiri Pirko</name>
<email>jpirko@redhat.com</email>
</author>
<published>2009-06-17T01:12:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=31278e71471399beaff9280737e52b47db4dc345'/>
<id>urn:sha1:31278e71471399beaff9280737e52b47db4dc345</id>
<content type='text'>
This patch is inspired by patch recently posted by Johannes Berg. Basically what
my patch does is to group list and a count of addresses into newly introduced
structure netdev_hw_addr_list. This brings us two benefits:
1) struct net_device becames a bit nicer.
2) in the future there will be a possibility to operate with lists independently
   on netdevices (with exporting right functions).
I wanted to introduce this patch before I'll post a multicast lists conversion.

Signed-off-by: Jiri Pirko &lt;jpirko@redhat.com&gt;

 drivers/net/bnx2.c              |    4 +-
 drivers/net/e1000/e1000_main.c  |    4 +-
 drivers/net/ixgbe/ixgbe_main.c  |    6 +-
 drivers/net/mv643xx_eth.c       |    2 +-
 drivers/net/niu.c               |    4 +-
 drivers/net/virtio_net.c        |   10 ++--
 drivers/s390/net/qeth_l2_main.c |    2 +-
 include/linux/netdevice.h       |   17 +++--
 net/core/dev.c                  |  130 ++++++++++++++++++--------------------
 9 files changed, 89 insertions(+), 90 deletions(-)
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6</title>
<updated>2009-06-15T10:02:23Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2009-06-15T10:02:23Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9cbc1cb8cd46ce1f7645b9de249b2ce8460129bb'/>
<id>urn:sha1:9cbc1cb8cd46ce1f7645b9de249b2ce8460129bb</id>
<content type='text'>
Conflicts:
	Documentation/feature-removal-schedule.txt
	drivers/scsi/fcoe/fcoe.c
	net/core/drop_monitor.c
	net/core/net-traces.c
</content>
</entry>
<entry>
<title>bridge: Simplify interface for ATM LANE</title>
<updated>2009-06-12T04:03:21Z</updated>
<author>
<name>Michał Mirosław</name>
<email>mirq-linux@rere.qmqm.pl</email>
</author>
<published>2009-06-05T05:35:28Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=da6782927de809d9d427bd4bd6a4024243e41f13'/>
<id>urn:sha1:da6782927de809d9d427bd4bd6a4024243e41f13</id>
<content type='text'>
This patch changes FDB entry check for ATM LANE bridge integration.
There's no point in holding a FDB entry around SKB building.

br_fdb_get()/br_fdb_put() pair are changed into single br_fdb_test_addr()
hook that checks if the addr has FDB entry pointing to other port
to the one the request arrived on.

FDB entry refcounting is removed as it's not used anywhere else.

Signed-off-by: Michał Mirosław &lt;mirq-linux@rere.qmqm.pl&gt;
Acked-by: Stephen Hemminger &lt;shemminger@vyatta.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
