also refresh generic patches for 3.14, 3.18, 3.19 and 4.0 targets might need a minor refresh as well, however, it looks like everything still applies cleanly with occasional small offsets. Signed-off-by: Daniel Golle <daniel@makrotopia.org> SVN-Revision: 44876
		
			
				
	
	
		
			80 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From: Alexander Duyck <alexander.h.duyck@redhat.com>
 | 
						|
Date: Thu, 22 Jan 2015 15:51:39 -0800
 | 
						|
Subject: [PATCH] fib_trie: Move fib_find_alias to file where it is used
 | 
						|
 | 
						|
The function fib_find_alias is only accessed by functions in fib_trie.c as
 | 
						|
such it makes sense to relocate it and cast it as static so that the
 | 
						|
compiler can take advantage of optimizations it can do to it as a local
 | 
						|
function.
 | 
						|
 | 
						|
Signed-off-by: Alexander Duyck <alexander.h.duyck@redhat.com>
 | 
						|
Signed-off-by: David S. Miller <davem@davemloft.net>
 | 
						|
---
 | 
						|
 | 
						|
--- a/net/ipv4/fib_lookup.h
 | 
						|
+++ b/net/ipv4/fib_lookup.h
 | 
						|
@@ -32,7 +32,6 @@ int fib_dump_info(struct sk_buff *skb, u
 | 
						|
 		  unsigned int);
 | 
						|
 void rtmsg_fib(int event, __be32 key, struct fib_alias *fa, int dst_len,
 | 
						|
 	       u32 tb_id, const struct nl_info *info, unsigned int nlm_flags);
 | 
						|
-struct fib_alias *fib_find_alias(struct list_head *fah, u8 tos, u32 prio);
 | 
						|
 
 | 
						|
 static inline void fib_result_assign(struct fib_result *res,
 | 
						|
 				     struct fib_info *fi)
 | 
						|
--- a/net/ipv4/fib_semantics.c
 | 
						|
+++ b/net/ipv4/fib_semantics.c
 | 
						|
@@ -410,24 +410,6 @@ errout:
 | 
						|
 		rtnl_set_sk_err(info->nl_net, RTNLGRP_IPV4_ROUTE, err);
 | 
						|
 }
 | 
						|
 
 | 
						|
-/* Return the first fib alias matching TOS with
 | 
						|
- * priority less than or equal to PRIO.
 | 
						|
- */
 | 
						|
-struct fib_alias *fib_find_alias(struct list_head *fah, u8 tos, u32 prio)
 | 
						|
-{
 | 
						|
-	if (fah) {
 | 
						|
-		struct fib_alias *fa;
 | 
						|
-		list_for_each_entry(fa, fah, fa_list) {
 | 
						|
-			if (fa->fa_tos > tos)
 | 
						|
-				continue;
 | 
						|
-			if (fa->fa_info->fib_priority >= prio ||
 | 
						|
-			    fa->fa_tos < tos)
 | 
						|
-				return fa;
 | 
						|
-		}
 | 
						|
-	}
 | 
						|
-	return NULL;
 | 
						|
-}
 | 
						|
-
 | 
						|
 static int fib_detect_death(struct fib_info *fi, int order,
 | 
						|
 			    struct fib_info **last_resort, int *last_idx,
 | 
						|
 			    int dflt)
 | 
						|
--- a/net/ipv4/fib_trie.c
 | 
						|
+++ b/net/ipv4/fib_trie.c
 | 
						|
@@ -998,6 +998,26 @@ static struct tnode *fib_find_node(struc
 | 
						|
 	return n;
 | 
						|
 }
 | 
						|
 
 | 
						|
+/* Return the first fib alias matching TOS with
 | 
						|
+ * priority less than or equal to PRIO.
 | 
						|
+ */
 | 
						|
+static struct fib_alias *fib_find_alias(struct list_head *fah, u8 tos, u32 prio)
 | 
						|
+{
 | 
						|
+	struct fib_alias *fa;
 | 
						|
+
 | 
						|
+	if (!fah)
 | 
						|
+		return NULL;
 | 
						|
+
 | 
						|
+	list_for_each_entry(fa, fah, fa_list) {
 | 
						|
+		if (fa->fa_tos > tos)
 | 
						|
+			continue;
 | 
						|
+		if (fa->fa_info->fib_priority >= prio || fa->fa_tos < tos)
 | 
						|
+			return fa;
 | 
						|
+	}
 | 
						|
+
 | 
						|
+	return NULL;
 | 
						|
+}
 | 
						|
+
 | 
						|
 static void trie_rebalance(struct trie *t, struct tnode *tn)
 | 
						|
 {
 | 
						|
 	struct tnode *tp;
 |