<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/include/net, branch v2.6.31-rc3</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/include/net?h=v2.6.31-rc3</id>
<link rel='self' href='https://git.amat.us/linux/atom/include/net?h=v2.6.31-rc3'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2009-07-10T00:06:58Z</updated>
<entry>
<title>memory barrier: adding smp_mb__after_lock</title>
<updated>2009-07-10T00:06:58Z</updated>
<author>
<name>Jiri Olsa</name>
<email>jolsa@redhat.com</email>
</author>
<published>2009-07-08T12:10:31Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ad46276952f1af34cd91d46d49ba13d347d56367'/>
<id>urn:sha1:ad46276952f1af34cd91d46d49ba13d347d56367</id>
<content type='text'>
Adding smp_mb__after_lock define to be used as a smp_mb call after
a lock.

Making it nop for x86, since {read|write|spin}_lock() on x86 are
full memory barriers.

Signed-off-by: Jiri Olsa &lt;jolsa@redhat.com&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: adding memory barrier to the poll and receive callbacks</title>
<updated>2009-07-10T00:06:57Z</updated>
<author>
<name>Jiri Olsa</name>
<email>jolsa@redhat.com</email>
</author>
<published>2009-07-08T12:09:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a57de0b4336e48db2811a2030bb68dba8dd09d88'/>
<id>urn:sha1:a57de0b4336e48db2811a2030bb68dba8dd09d88</id>
<content type='text'>
Adding memory barrier after the poll_wait function, paired with
receive callbacks. Adding fuctions sock_poll_wait and sk_has_sleeper
to wrap the memory barrier.

Without the memory barrier, following race can happen.
The race fires, when following code paths meet, and the tp-&gt;rcv_nxt
and __add_wait_queue updates stay in CPU caches.

CPU1                         CPU2

sys_select                   receive packet
  ...                        ...
  __add_wait_queue           update tp-&gt;rcv_nxt
  ...                        ...
  tp-&gt;rcv_nxt check          sock_def_readable
  ...                        {
  schedule                      ...
                                if (sk-&gt;sk_sleep &amp;&amp; waitqueue_active(sk-&gt;sk_sleep))
                                        wake_up_interruptible(sk-&gt;sk_sleep)
                                ...
                             }

If there was no cache the code would work ok, since the wait_queue and
rcv_nxt are opposit to each other.

Meaning that once tp-&gt;rcv_nxt is updated by CPU2, the CPU1 either already
passed the tp-&gt;rcv_nxt check and sleeps, or will get the new value for
tp-&gt;rcv_nxt and will return with new data mask.
In both cases the process (CPU1) is being added to the wait queue, so the
waitqueue_active (CPU2) call cannot miss and will wake up CPU1.

The bad case is when the __add_wait_queue changes done by CPU1 stay in its
cache, and so does the tp-&gt;rcv_nxt update on CPU2 side.  The CPU1 will then
endup calling schedule and sleep forever if there are no more data on the
socket.

Calls to poll_wait in following modules were ommited:
	net/bluetooth/af_bluetooth.c
	net/irda/af_irda.c
	net/irda/irnet/irnet_ppp.c
	net/mac80211/rc80211_pid_debugfs.c
	net/phonet/socket.c
	net/rds/af_rds.c
	net/rfkill/core.c
	net/sunrpc/cache.c
	net/sunrpc/rpc_pipe.c
	net/tipc/socket.c

Signed-off-by: Jiri Olsa &lt;jolsa@redhat.com&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-2.6</title>
<updated>2009-06-30T02:22:31Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2009-06-30T02:22:31Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=53bd9728bf9be7fc3b3147e821dbeb71d767c354'/>
<id>urn:sha1:53bd9728bf9be7fc3b3147e821dbeb71d767c354</id>
<content type='text'>
</content>
</entry>
<entry>
<title>netfilter: tcp conntrack: fix unacknowledged data detection with NAT</title>
<updated>2009-06-29T12:07:56Z</updated>
<author>
<name>Patrick McHardy</name>
<email>kaber@trash.net</email>
</author>
<published>2009-06-29T12:07:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a3a9f79e361e864f0e9d75ebe2a0cb43d17c4272'/>
<id>urn:sha1:a3a9f79e361e864f0e9d75ebe2a0cb43d17c4272</id>
<content type='text'>
When NAT helpers change the TCP packet size, the highest seen sequence
number needs to be corrected. This is currently only done upwards, when
the packet size is reduced the sequence number is unchanged. This causes
TCP conntrack to falsely detect unacknowledged data and decrease the
timeout.

Fix by updating the highest seen sequence number in both directions after
packet mangling.

Tested-by: Krzysztof Piotr Oledzki &lt;ole@ans.pl&gt;
Signed-off-by: Patrick McHardy &lt;kaber@trash.net&gt;
</content>
</entry>
<entry>
<title>Phonet: publicize the Netlink notification function</title>
<updated>2009-06-25T09:58:15Z</updated>
<author>
<name>Rémi Denis-Courmont</name>
<email>remi.denis-courmont@nokia.com</email>
</author>
<published>2009-06-24T01:07:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c7a1a4c80f873d5d6ecd173035bb80eba489f380'/>
<id>urn:sha1:c7a1a4c80f873d5d6ecd173035bb80eba489f380</id>
<content type='text'>
Signed-off-by: Rémi Denis-Courmont &lt;remi.denis-courmont@nokia.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6</title>
<updated>2009-06-24T17:01:12Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2009-06-24T17:01:12Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=09ce42d3167e3f20b501fa780c2415332330fac5'/>
<id>urn:sha1:09ce42d3167e3f20b501fa780c2415332330fac5</id>
<content type='text'>
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6:
  bnx2: Fix the behavior of ethtool when ONBOOT=no
  qla3xxx: Don't sleep while holding lock.
  qla3xxx: Give the PHY time to come out of reset.
  ipv4 routing: Ensure that route cache entries are usable and reclaimable with caching is off
  net: Move rx skb_orphan call to where needed
  ipv6: Use correct data types for ICMPv6 type and code
  net: let KS8842 driver depend on HAS_IOMEM
  can: let SJA1000 driver depend on HAS_IOMEM
  netxen: fix firmware init handshake
  netxen: fix build with without CONFIG_PM
  netfilter: xt_rateest: fix comparison with self
  netfilter: xt_quota: fix incomplete initialization
  netfilter: nf_log: fix direct userspace memory access in proc handler
  netfilter: fix some sparse endianess warnings
  netfilter: nf_conntrack: fix conntrack lookup race
  netfilter: nf_conntrack: fix confirmation race condition
  netfilter: nf_conntrack: death_by_timeout() fix
</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>ipv6: Use correct data types for ICMPv6 type and code</title>
<updated>2009-06-23T11:31:07Z</updated>
<author>
<name>Brian Haley</name>
<email>brian.haley@hp.com</email>
</author>
<published>2009-06-23T11:31:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d5fdd6babcfc2b0e6a8da1acf492a69fb54b4c47'/>
<id>urn:sha1:d5fdd6babcfc2b0e6a8da1acf492a69fb54b4c47</id>
<content type='text'>
Change all the code that deals directly with ICMPv6 type and code
values to use u8 instead of a signed int as that's the actual data
type.

Signed-off-by: Brian Haley &lt;brian.haley@hp.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6</title>
<updated>2009-06-22T18:57:09Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2009-06-22T18:57:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5165aece0efac6574fc3e32b6f1c2a964820d1c6'/>
<id>urn:sha1:5165aece0efac6574fc3e32b6f1c2a964820d1c6</id>
<content type='text'>
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (43 commits)
  via-velocity: Fix velocity driver unmapping incorrect size.
  mlx4_en: Remove redundant refill code on RX
  mlx4_en: Removed redundant check on lso header size
  mlx4_en: Cancel port_up check in transmit function
  mlx4_en: using stop/start_all_queues
  mlx4_en: Removed redundant skb-&gt;len check
  mlx4_en: Counting all the dropped packets on the TX side
  usbnet cdc_subset: fix issues talking to PXA gadgets
  Net: qla3xxx, remove sleeping in atomic
  ipv4: fix NULL pointer + success return in route lookup path
  isdn: clean up documentation index
  cfg80211: validate station settings
  cfg80211: allow setting station parameters in mesh
  cfg80211: allow adding/deleting stations on mesh
  ath5k: fix beacon_int handling
  MAINTAINERS: Fix Atheros pattern paths
  ath9k: restore PS mode, before we put the chip into FULL SLEEP state.
  ath9k: wait for beacon frame along with CAB
  acer-wmi: fix rfkill conversion
  ath5k: avoid PCI FATAL interrupts by restoring RETRY_TIMEOUT disabling
  ...
</content>
</entry>
<entry>
<title>af_iucv: Return -EAGAIN if iucv msg limit is exceeded</title>
<updated>2009-06-19T07:10:40Z</updated>
<author>
<name>Hendrik Brueckner</name>
<email>brueckner@linux.vnet.ibm.com</email>
</author>
<published>2009-06-17T21:54:48Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0ea920d211e0a870871965418923b08da2025b4a'/>
<id>urn:sha1:0ea920d211e0a870871965418923b08da2025b4a</id>
<content type='text'>
If the iucv message limit for a communication path is exceeded,
sendmsg() returns -EAGAIN instead of -EPIPE.
The calling application can then handle this error situtation,
e.g. to try again after waiting some time.

For blocking sockets, sendmsg() waits up to the socket timeout
before returning -EAGAIN. For the new wait condition, a macro
has been introduced and the iucv_sock_wait_state() has been
refactored to this macro.

Signed-off-by: Hendrik Brueckner &lt;brueckner@linux.vnet.ibm.com&gt;
Signed-off-by: Ursula Braun &lt;ursula.braun@de.ibm.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
