LINUX_RELEASE?=1
-LINUX_VERSION-4.4 = .198
+LINUX_VERSION-4.4 = .202
-LINUX_KERNEL_HASH-4.4.198 = 5135b2c913d3f0e61c294c5dcdc2d965d13a85608fa7bef5753ba8992640dfd9
+LINUX_KERNEL_HASH-4.4.202 = a8491f36ec77f643e566da7e2877ccc0b96cb8eacd37a13f2ed34cc98c31b21e
ifdef KERNEL_PATCHVER
LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
+++ b/net/sched/sch_fq_codel.c
@@ -57,6 +57,7 @@ struct fq_codel_sched_data {
u32 flows_cnt; /* number of flows */
- u32 perturbation; /* hash perturbation */
+ siphash_key_t perturbation; /* hash perturbation */
u32 quantum; /* psched_mtu(qdisc_dev(sch)); */
+ u32 drop_batch_size;
struct codel_params cparams;
q->flows_cnt = 1024;
+ q->drop_batch_size = 64;
q->quantum = psched_mtu(qdisc_dev(sch));
- q->perturbation = prandom_u32();
+ get_random_bytes(&q->perturbation, sizeof(q->perturbation));
INIT_LIST_HEAD(&q->new_flows);
@@ -476,6 +500,8 @@ static int fq_codel_dump(struct Qdisc *s
q->cparams.ecn) ||
--- a/net/sched/sch_fq_codel.c
+++ b/net/sched/sch_fq_codel.c
@@ -58,8 +58,11 @@ struct fq_codel_sched_data {
- u32 perturbation; /* hash perturbation */
+ siphash_key_t perturbation; /* hash perturbation */
u32 quantum; /* psched_mtu(qdisc_dev(sch)); */
u32 drop_batch_size;
+ u32 memory_limit;
+ q->memory_limit = 32 << 20; /* 32 MBytes */
q->drop_batch_size = 64;
q->quantum = psched_mtu(qdisc_dev(sch));
- q->perturbation = prandom_u32();
+ get_random_bytes(&q->perturbation, sizeof(q->perturbation));
@@ -502,6 +519,8 @@ static int fq_codel_dump(struct Qdisc *s
q->quantum) ||
nla_put_u32(skb, TCA_FQ_CODEL_DROP_BATCH_SIZE,
--- a/scripts/setlocalversion
+++ b/scripts/setlocalversion
-@@ -165,7 +165,7 @@ else
+@@ -173,7 +173,7 @@ else
# annotated or signed tagged state (as git describe only
# looks at signed or annotated tags - git tag -a/-s) and
# LOCALVERSION= is not specified
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
-@@ -59,6 +59,7 @@ config ARM
+@@ -60,6 +60,7 @@ config ARM
select HAVE_KERNEL_LZMA
select HAVE_KERNEL_LZO
select HAVE_KERNEL_XZ
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
-@@ -205,7 +205,8 @@ ifeq ($(CONFIG_FUNCTION_TRACER),y)
+@@ -213,7 +213,8 @@ ifeq ($(CONFIG_FUNCTION_TRACER),y)
KBUILD_CFLAGS += -mno-sched-epilog
endif
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
-@@ -167,7 +167,6 @@ CPP = $(CC) -E $(KBUILD_CFLAGS)
+@@ -175,7 +175,6 @@ CPP = $(CC) -E $(KBUILD_CFLAGS)
CHECKFLAGS += -m$(CONFIG_WORD_SIZE) -D__powerpc__ -D__powerpc$(CONFIG_WORD_SIZE)__
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2182,7 +2182,7 @@ static inline int pskb_network_may_pull(
+@@ -2183,7 +2183,7 @@ static inline int pskb_network_may_pull(
* NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
*/
#ifndef NET_SKB_PAD
+ q->memory_limit = 4 << 20; /* 4 MBytes */
q->drop_batch_size = 64;
q->quantum = psched_mtu(qdisc_dev(sch));
- q->perturbation = prandom_u32();
+ get_random_bytes(&q->perturbation, sizeof(q->perturbation));
{
--- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h
-@@ -344,6 +344,7 @@ extern struct Qdisc_ops noop_qdisc_ops;
+@@ -349,6 +349,7 @@ extern struct Qdisc_ops noop_qdisc_ops;
extern struct Qdisc_ops pfifo_fast_ops;
extern struct Qdisc_ops mq_qdisc_ops;
extern struct Qdisc_ops noqueue_qdisc_ops;
*/
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
-@@ -2213,6 +2213,10 @@ static inline int pskb_trim(struct sk_bu
+@@ -2214,6 +2214,10 @@ static inline int pskb_trim(struct sk_bu
return (len < skb->len) ? __pskb_trim(skb, len) : 0;
}
/**
* pskb_trim_unique - remove end from a paged unique (not cloned) buffer
* @skb: buffer to alter
-@@ -2319,16 +2323,6 @@ static inline struct sk_buff *dev_alloc_
+@@ -2320,16 +2324,6 @@ static inline struct sk_buff *dev_alloc_
}