<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/net/hsr, branch linux-4.3.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.3.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-4.3.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2015-08-18T18:55:07Z</updated>
<entry>
<title>net: hsr: convert to using IFF_NO_QUEUE</title>
<updated>2015-08-18T18:55:07Z</updated>
<author>
<name>Phil Sutter</name>
<email>phil@nwl.cc</email>
</author>
<published>2015-08-18T08:30:45Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=9ad09c5c05f7ce718d135ba8b55f9af733fc9b3f'/>
<id>urn:sha1:9ad09c5c05f7ce718d135ba8b55f9af733fc9b3f</id>
<content type='text'>
Signed-off-by: Phil Sutter &lt;phil@nwl.cc&gt;
Cc: Arvid Brodin &lt;arvid.brodin@alten.se&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net/hsr: Fix NULL pointer dereference and refcnt bugs when deleting a HSR interface.</title>
<updated>2015-03-01T18:40:23Z</updated>
<author>
<name>Arvid Brodin</name>
<email>arvid.brodin@alten.se</email>
</author>
<published>2015-02-27T20:26:03Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=56b08fdcf637955d3023d769afd6cdabc526ba22'/>
<id>urn:sha1:56b08fdcf637955d3023d769afd6cdabc526ba22</id>
<content type='text'>
To repeat:

$ sudo ip link del hsr0
BUG: unable to handle kernel NULL pointer dereference at 0000000000000018
IP: [&lt;ffffffff8187f495&gt;] hsr_del_port+0x15/0xa0
etc...

Bug description:

As part of the hsr master device destruction, hsr_del_port() is called for each of
the hsr ports. At each such call, the master device is updated regarding features
and mtu. When the master device is freed before the slave interfaces, master will
be NULL in hsr_del_port(), which led to a NULL pointer dereference.

Additionally, dev_put() was called on the master device itself in hsr_del_port(),
causing a refcnt error.

A third bug in the same code path was that the rtnl lock was not taken before
hsr_del_port() was called as part of hsr_dev_destroy().

The reporter (Nicolas Dichtel) also said: "hsr_netdev_notify() supposes that the
port will always be available when the notification is for an hsr interface. It's
wrong. For example, netdev_wait_allrefs() may resend NETDEV_UNREGISTER.". As a
precaution against this, a check for port == NULL was added in hsr_dev_notify().

Reported-by: Nicolas Dichtel &lt;nicolas.dichtel@6wind.com&gt;
Fixes: 51f3c605318b056a ("net/hsr: Move slave init to hsr_slave.c.")
Signed-off-by: Arvid Brodin &lt;arvid.brodin@alten.se&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net/hsr: Remove left-over never-true conditional code.</title>
<updated>2014-07-11T22:04:40Z</updated>
<author>
<name>Arvid Brodin</name>
<email>arvid.brodin@alten.se</email>
</author>
<published>2014-07-11T16:21:12Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=279f64b7a771d84cbdea51ac2f794becfb06bcd4'/>
<id>urn:sha1:279f64b7a771d84cbdea51ac2f794becfb06bcd4</id>
<content type='text'>
MacAddressB is an array (unsigned char MacAddressB[ETH_ALEN]) and is allocated
as a part of *node_dst (which is a struct hsr_node). So the condition is always
false.

Detected by Dan Carpenter.

Signed-off-by: Arvid Brodin &lt;arvid.brodin@alten.se&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net/hsr: Fix NULL pointer dereference on incomplete hsr_newlink() params.</title>
<updated>2014-07-08T18:35:31Z</updated>
<author>
<name>Arvid Brodin</name>
<email>arvid.brodin@alten.se</email>
</author>
<published>2014-07-04T21:42:00Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=a718dcc5e56546a62d00f57cc875faac2f42c8bf'/>
<id>urn:sha1:a718dcc5e56546a62d00f57cc875faac2f42c8bf</id>
<content type='text'>
If none of the slave interfaces are specified, struct nlattr *data[] may
be NULL. Make sure to check for that.

While I'm at it, fix the horrible error messages displayed when only one
of the slave interfaces isn't specified.

Signed-off-by: Arvid Brodin &lt;arvid.brodin@alten.se&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net/hsr: Better frame dispatch</title>
<updated>2014-07-08T18:35:31Z</updated>
<author>
<name>Arvid Brodin</name>
<email>arvid.brodin@alten.se</email>
</author>
<published>2014-07-04T21:41:03Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=f266a683a4804dc499efc6c2206ef68efed029d0'/>
<id>urn:sha1:f266a683a4804dc499efc6c2206ef68efed029d0</id>
<content type='text'>
This patch removes the separate paths for frames coming from the outside, and
frames sent from the HSR device, and instead makes all frames go through
hsr_forward_skb() in hsr_forward.c. This greatly improves code readability and
also opens up the possibility for future support of the HSR Interlink device
that is the basis for HSR RedBoxes and HSR QuadBoxes, as well as VLAN
compatibility.

Other improvements:
* A reduction in the number of times an skb is copied on machines without
  HAVE_EFFICIENT_UNALIGNED_ACCESS, which improves throughput somewhat.
* Headers are now created using the standard eth_header(), and using the
  standard hard_header_len.
* Each HSR slave now gets its own private skb, so slave-specific fields can be
  correctly set.

Signed-off-by: Arvid Brodin &lt;arvid.brodin@alten.se&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net/hsr: Added SET_NETDEV_DEVTYPE and features |= NETIF_F_NETNS_LOCAL to dev_setup.</title>
<updated>2014-07-08T18:35:31Z</updated>
<author>
<name>Arvid Brodin</name>
<email>arvid.brodin@alten.se</email>
</author>
<published>2014-07-04T21:39:42Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=4c3477dca2fde1e3ab748387d736d40afe0df21d'/>
<id>urn:sha1:4c3477dca2fde1e3ab748387d736d40afe0df21d</id>
<content type='text'>
Signed-off-by: Arvid Brodin &lt;arvid.brodin@alten.se&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net/hsr: Implemented .ndo_fix_features (better device features handling).</title>
<updated>2014-07-08T18:35:31Z</updated>
<author>
<name>Arvid Brodin</name>
<email>arvid.brodin@alten.se</email>
</author>
<published>2014-07-04T21:38:57Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=1cc1eb52734bfd2fc57c7b3337a11198e713580d'/>
<id>urn:sha1:1cc1eb52734bfd2fc57c7b3337a11198e713580d</id>
<content type='text'>
Signed-off-by: Arvid Brodin &lt;arvid.brodin@alten.se&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net/hsr: Use list_head (and rcu) instead of array for slave devices.</title>
<updated>2014-07-08T18:35:31Z</updated>
<author>
<name>Arvid Brodin</name>
<email>arvid.brodin@alten.se</email>
</author>
<published>2014-07-04T21:38:05Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c5a7591172100269e426cf630da0f2dc8138a206'/>
<id>urn:sha1:c5a7591172100269e426cf630da0f2dc8138a206</id>
<content type='text'>
Signed-off-by: Arvid Brodin &lt;arvid.brodin@alten.se&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net/hsr: Move slave init to hsr_slave.c.</title>
<updated>2014-07-08T18:35:31Z</updated>
<author>
<name>Arvid Brodin</name>
<email>arvid.brodin@alten.se</email>
</author>
<published>2014-07-04T21:37:27Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=51f3c605318b056ac5deb9079bbef2a976558827'/>
<id>urn:sha1:51f3c605318b056ac5deb9079bbef2a976558827</id>
<content type='text'>
Also try to prevent some possible slave dereference race conditions. This is
finalized in the next patch, which abandons the slave array in favour of
a list_head list and list RCU.

Signed-off-by: Arvid Brodin &lt;arvid.brodin@alten.se&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net/hsr: Operstate handling cleanup.</title>
<updated>2014-07-08T18:35:30Z</updated>
<author>
<name>Arvid Brodin</name>
<email>arvid.brodin@alten.se</email>
</author>
<published>2014-07-04T21:36:40Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=e9aae56ea43ef4a32527b9d86c1f6b5eebfbd223'/>
<id>urn:sha1:e9aae56ea43ef4a32527b9d86c1f6b5eebfbd223</id>
<content type='text'>
Signed-off-by: Arvid Brodin &lt;arvid.brodin@alten.se&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
