From: Luis R. Rodriguez Date: Wed, 9 Apr 2014 20:39:24 +0000 (+0000) Subject: backports: adjust flow_dissector.patch X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=3bab31ff3d7527716fa5a873ae11125ff6426bca;p=openwrt%2Fstaging%2Fblogic.git backports: adjust flow_dissector.patch We copy over the net/core/flow_dissector.c code from the kernel through the backports Kconfig magic for our backport of NET_SCH_FQ_CODE: config BACKPORT_USERSEL_NET_SCH_FQ_CODEL tristate "Fair Queue Controlled Delay AQM (FQ_CODEL)" depends on m depends on !BACKPORT_KERNEL_2_6_25 default m if NET_SCH_FQ_CODEL=n default m if BACKPORT_USERSEL_BUILD_ALL #module-name sch_fq_codel #c-file net/sched/sch_fq_codel.c #c-file net/core/flow_dissector.c This pulls net/core/flow_dissector.c into the backports module as compat/net-core-flow_dissector.c. We don't need all the code there. Patches under patches/backport-adjustments/ can be used to adjust that type of code. Some changes have been made to code we delete which means we need to manually adjust the patch we carry. This is a hint as one area we could look to enhance better to do more automatic backport work. Signed-off-by: Luis R. Rodriguez --- diff --git a/patches/backport-adjustments/flow_dissector.patch b/patches/backport-adjustments/flow_dissector.patch index a4278f4f5b71..68434bdbc571 100644 --- a/patches/backport-adjustments/flow_dissector.patch +++ b/patches/backport-adjustments/flow_dissector.patch @@ -32,8 +32,8 @@ - -/* - * __skb_get_hash: calculate a flow hash based on src/dst addresses -- * and src/dst port numbers. Sets rxhash in skb to non-zero hash value -- * on success, zero indicates no valid hash. Also, sets l4_rxhash in skb +- * and src/dst port numbers. Sets hash in skb to non-zero hash value +- * on success, zero indicates no valid hash. Also, sets l4_hash in skb - * if hash is a canonical 4-tuple hash over transport ports. - */ -void __skb_get_hash(struct sk_buff *skb) @@ -45,7 +45,7 @@ - return; - - if (keys.ports) -- skb->l4_rxhash = 1; +- skb->l4_hash = 1; - - /* get a consistent hash (same value on both flow directions) */ - if (((__force u32)keys.dst < (__force u32)keys.src) || @@ -61,7 +61,7 @@ - if (!hash) - hash = 1; - -- skb->rxhash = hash; +- skb->hash = hash; -} -EXPORT_SYMBOL(__skb_get_hash); - @@ -173,7 +173,7 @@ - hash = skb->sk->sk_hash; - else - hash = (__force u16) skb->protocol ^ -- skb->rxhash; +- skb->hash; - hash = __flow_hash_1word(hash); - queue_index = map->queues[ - ((u64)hash * map->len) >> 32];