summaryrefslogtreecommitdiff
path: root/net/hsr/hsr_main.c
diff options
context:
space:
mode:
authorArvid Brodin <arvid.brodin@alten.se>2014-07-05 01:41:03 +0400
committerDavid S. Miller <davem@davemloft.net>2014-07-08 22:35:31 +0400
commitf266a683a4804dc499efc6c2206ef68efed029d0 (patch)
tree8af16a2a5dc8d101e0f1aa4681452a939179c957 /net/hsr/hsr_main.c
parent4c3477dca2fde1e3ab748387d736d40afe0df21d (diff)
downloadlinux-f266a683a4804dc499efc6c2206ef68efed029d0.tar.xz
net/hsr: Better frame dispatch
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 <arvid.brodin@alten.se> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/hsr/hsr_main.c')
-rw-r--r--net/hsr/hsr_main.c20
1 files changed, 0 insertions, 20 deletions
diff --git a/net/hsr/hsr_main.c b/net/hsr/hsr_main.c
index a06cab57ab68..779d28b65417 100644
--- a/net/hsr/hsr_main.c
+++ b/net/hsr/hsr_main.c
@@ -20,26 +20,6 @@
#include "hsr_slave.h"
-/* List of all registered virtual HSR devices */
-static LIST_HEAD(hsr_list);
-
-void register_hsr_master(struct hsr_priv *hsr)
-{
- list_add_tail_rcu(&hsr->hsr_list, &hsr_list);
-}
-
-void unregister_hsr_master(struct hsr_priv *hsr)
-{
- struct hsr_priv *hsr_it;
-
- list_for_each_entry(hsr_it, &hsr_list, hsr_list)
- if (hsr_it == hsr) {
- list_del_rcu(&hsr_it->hsr_list);
- return;
- }
-}
-
-
static int hsr_netdev_notify(struct notifier_block *nb, unsigned long event,
void *ptr)
{