<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/net, branch v3.0.18</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/net?h=v3.0.18</id>
<link rel='self' href='https://git.amat.us/linux/atom/net?h=v3.0.18'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-01-26T01:24:51Z</updated>
<entry>
<title>ah: Read nexthdr value before overwriting it in ahash input callback.</title>
<updated>2012-01-26T01:24:51Z</updated>
<author>
<name>Nick Bowler</name>
<email>nbowler@elliptictech.com</email>
</author>
<published>2011-11-08T12:12:45Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c0ab420c6822529fa5aba05668e1e983b065460f'/>
<id>urn:sha1:c0ab420c6822529fa5aba05668e1e983b065460f</id>
<content type='text'>
commit b7ea81a58adc123a4e980cb0eff9eb5c144b5dc7 upstream.

The AH4/6 ahash input callbacks read out the nexthdr field from the AH
header *after* they overwrite that header.  This is obviously not going
to end well.  Fix it up.

Signed-off-by: Nick Bowler &lt;nbowler@elliptictech.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>ah: Correctly pass error codes in ahash output callback.</title>
<updated>2012-01-26T01:24:51Z</updated>
<author>
<name>Nick Bowler</name>
<email>nbowler@elliptictech.com</email>
</author>
<published>2011-11-08T12:12:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d253520a7b2c2223fb4f704f06d10f2c547bdeef'/>
<id>urn:sha1:d253520a7b2c2223fb4f704f06d10f2c547bdeef</id>
<content type='text'>
commit 069294e813ed5f27f82613b027609bcda5f1b914 upstream.

The AH4/6 ahash output callbacks pass nexthdr to xfrm_output_resume
instead of the error code.  This appears to be a copy+paste error from
the input case, where nexthdr is expected.  This causes the driver to
continuously add AH headers to the datagram until either an allocation
fails and the packet is dropped or the ahash driver hits a synchronous
fallback and the resulting monstrosity is transmitted.

Correct this issue by simply passing the error code unadulterated.

Signed-off-by: Nick Bowler &lt;nbowler@elliptictech.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>svcrpc: avoid memory-corruption on pool shutdown</title>
<updated>2012-01-26T01:24:48Z</updated>
<author>
<name>J. Bruce Fields</name>
<email>bfields@redhat.com</email>
</author>
<published>2011-11-29T22:00:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=a141a5eb3ab45131cb168e7a561d662722b43ec3'/>
<id>urn:sha1:a141a5eb3ab45131cb168e7a561d662722b43ec3</id>
<content type='text'>
commit b4f36f88b3ee7cf26bf0be84e6c7fc15f84dcb71 upstream.

Socket callbacks use svc_xprt_enqueue() to add an xprt to a
pool-&gt;sp_sockets list.  In normal operation a server thread will later
come along and take the xprt off that list.  On shutdown, after all the
threads have exited, we instead manually walk the sv_tempsocks and
sv_permsocks lists to find all the xprt's and delete them.

So the sp_sockets lists don't really matter any more.  As a result,
we've mostly just ignored them and hoped they would go away.

Which has gotten us into trouble; witness for example ebc63e531cc6
"svcrpc: fix list-corrupting race on nfsd shutdown", the result of Ben
Greear noticing that a still-running svc_xprt_enqueue() could re-add an
xprt to an sp_sockets list just before it was deleted.  The fix was to
remove it from the list at the end of svc_delete_xprt().  But that only
made corruption less likely--I can see nothing that prevents a
svc_xprt_enqueue() from adding another xprt to the list at the same
moment that we're removing this xprt from the list.  In fact, despite
the earlier xpo_detach(), I don't even see what guarantees that
svc_xprt_enqueue() couldn't still be running on this xprt.

So, instead, note that svc_xprt_enqueue() essentially does:
	lock sp_lock
		if XPT_BUSY unset
			add to sp_sockets
	unlock sp_lock

So, if we do:

	set XPT_BUSY on every xprt.
	Empty every sp_sockets list, under the sp_socks locks.

Then we're left knowing that the sp_sockets lists are all empty and will
stay that way, since any svc_xprt_enqueue() will check XPT_BUSY under
the sp_lock and see it set.

And *then* we can continue deleting the xprt's.

(Thanks to Jeff Layton for being correctly suspicious of this code....)

Cc: Ben Greear &lt;greearb@candelatech.com&gt;
Cc: Jeff Layton &lt;jlayton@redhat.com&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>svcrpc: destroy server sockets all at once</title>
<updated>2012-01-26T01:24:48Z</updated>
<author>
<name>J. Bruce Fields</name>
<email>bfields@redhat.com</email>
</author>
<published>2011-11-29T16:35:35Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7df22768c0af8769d805f6db21144d71d91fe13d'/>
<id>urn:sha1:7df22768c0af8769d805f6db21144d71d91fe13d</id>
<content type='text'>
commit 2fefb8a09e7ed251ae8996e0c69066e74c5aa560 upstream.

There's no reason I can see that we need to call sv_shutdown between
closing the two lists of sockets.

Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>svcrpc: fix double-free on shutdown of nfsd after changing pool mode</title>
<updated>2012-01-26T01:24:47Z</updated>
<author>
<name>J. Bruce Fields</name>
<email>bfields@redhat.com</email>
</author>
<published>2011-12-23T01:22:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b09577ca6680033a4315e2f5cb3a95ebbb8dea79'/>
<id>urn:sha1:b09577ca6680033a4315e2f5cb3a95ebbb8dea79</id>
<content type='text'>
commit 61c8504c428edcebf23b97775a129c5b393a302b upstream.

The pool_to and to_pool fields of the global svc_pool_map are freed on
shutdown, but are initialized in nfsd startup only in the
SVC_POOL_PERCPU and SVC_POOL_PERNODE cases.

They *are* initialized to zero on kernel startup.  So as long as you use
only SVC_POOL_GLOBAL (the default), this will never be a problem.

You're also OK if you only ever use SVC_POOL_PERCPU or SVC_POOL_PERNODE.

However, the following sequence events leads to a double-free:

	1. set SVC_POOL_PERCPU or SVC_POOL_PERNODE
	2. start nfsd: both fields are initialized.
	3. shutdown nfsd: both fields are freed.
	4. set SVC_POOL_GLOBAL
	5. start nfsd: the fields are left untouched.
	6. shutdown nfsd: now we try to free them again.

Step 4 is actually unnecessary, since (for some bizarre reason), nfsd
automatically resets the pool mode to SVC_POOL_GLOBAL on shutdown.

Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>mac80211: fix rx-&gt;key NULL pointer dereference in promiscuous mode</title>
<updated>2012-01-26T01:24:43Z</updated>
<author>
<name>Stanislaw Gruszka</name>
<email>sgruszka@redhat.com</email>
</author>
<published>2012-01-11T08:26:54Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b9e11747e1227d7ad67c5b80be4b206e4059687e'/>
<id>urn:sha1:b9e11747e1227d7ad67c5b80be4b206e4059687e</id>
<content type='text'>
commit 1140afa862842ac3e56678693050760edc4ecde9 upstream.

Since:

commit 816c04fe7ef01dd9649f5ccfe796474db8708be5
Author: Christian Lamparter &lt;chunkeey@googlemail.com&gt;
Date:   Sat Apr 30 15:24:30 2011 +0200

    mac80211: consolidate MIC failure report handling

is possible to that we dereference rx-&gt;key == NULL when driver set
RX_FLAG_MMIC_STRIPPED and not RX_FLAG_IV_STRIPPED and we are in
promiscuous mode. This happen with rt73usb and rt61pci at least.

Before the commit we always check rx-&gt;key against NULL, so I assume
fix should be done in mac80211 (also mic_fail path has similar check).

References:
https://bugzilla.redhat.com/show_bug.cgi?id=769766
http://rt2x00.serialmonkey.com/pipermail/users_rt2x00.serialmonkey.com/2012-January/004395.html

Reported-by: Stuart D Gathman &lt;stuart@gathman.org&gt;
Reported-by: Kai Wohlfahrt &lt;kai.scorpio@gmail.com&gt;
Signed-off-by: Stanislaw Gruszka &lt;sgruszka@redhat.com&gt;
Signed-off-by: John W. Linville &lt;linville@tuxdriver.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>igmp: Avoid zero delay when receiving odd mixture of IGMP queries</title>
<updated>2012-01-12T19:35:41Z</updated>
<author>
<name>Ben Hutchings</name>
<email>ben@decadent.org.uk</email>
</author>
<published>2012-01-09T22:06:46Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=49ffa26eca87d3518ed88d3e6feebf1b80837a15'/>
<id>urn:sha1:49ffa26eca87d3518ed88d3e6feebf1b80837a15</id>
<content type='text'>
commit a8c1f65c79cbbb2f7da782d4c9d15639a9b94b27 upstream.

Commit 5b7c84066733c5dfb0e4016d939757b38de189e4 ('ipv4: correct IGMP
behavior on v3 query during v2-compatibility mode') added yet another
case for query parsing, which can result in max_delay = 0.  Substitute
a value of 1, as in the usual v3 case.

Reported-by: Simon McVittie &lt;smcv@debian.org&gt;
References: http://bugs.debian.org/654876
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;

</content>
</entry>
<entry>
<title>ipv4: using prefetch requires including prefetch.h</title>
<updated>2012-01-06T22:14:10Z</updated>
<author>
<name>Stephen Rothwell</name>
<email>sfr@canb.auug.org.au</email>
</author>
<published>2011-12-22T06:03:29Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=732e81a7579eb0adb26aeadb209e919ee984d01e'/>
<id>urn:sha1:732e81a7579eb0adb26aeadb209e919ee984d01e</id>
<content type='text'>
[ Upstream commit b9eda06f80b0db61a73bd87c6b0eb67d8aca55ad ]

Signed-off-by: Stephen Rothwell &lt;sfr@canb.auug.org.au&gt;
Acked-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Acked-by: David Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>ipv4: reintroduce route cache garbage collector</title>
<updated>2012-01-06T22:14:10Z</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2011-12-21T20:47:16Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ad5dd5dc45d80c397dfe314934e91d0ead793928'/>
<id>urn:sha1:ad5dd5dc45d80c397dfe314934e91d0ead793928</id>
<content type='text'>
[ Upstream commit 9f28a2fc0bd77511f649c0a788c7bf9a5fd04edb ]

Commit 2c8cec5c10b (ipv4: Cache learned PMTU information in inetpeer)
removed IP route cache garbage collector a bit too soon, as this gc was
responsible for expired routes cleanup, releasing their neighbour
reference.

As pointed out by Robert Gladewitz, recent kernels can fill and exhaust
their neighbour cache.

Reintroduce the garbage collection, since we'll have to wait our
neighbour lookups become refcount-less to not depend on this stuff.

Reported-by: Robert Gladewitz &lt;gladewitz@gmx.de&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>ipv4: flush route cache after change accept_local</title>
<updated>2012-01-06T22:14:09Z</updated>
<author>
<name>Weiping Pan</name>
<email>panweiping3@gmail.com</email>
</author>
<published>2011-12-01T15:47:06Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6c3efb1526c3fcdab3e5bbc9c77710b306493507'/>
<id>urn:sha1:6c3efb1526c3fcdab3e5bbc9c77710b306493507</id>
<content type='text'>
[ Upstream commit d01ff0a049f749e0bf10a35bb23edd012718c8c2 ]

After reset ipv4_devconf-&gt;data[IPV4_DEVCONF_ACCEPT_LOCAL] to 0,
we should flush route cache, or it will continue receive packets with local
source address, which should be dropped.

Signed-off-by: Weiping Pan &lt;panweiping3@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>
</feed>
