linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Eric Dumazet <edumazet@google.com>,
	Jonathan Berger <jonathann1@walla.com>,
	Amit Klein <aksecurity@gmail.com>,
	Benny Pinkas <benny@pinkas.net>,
	Tom Herbert <tom@herbertland.com>,
	"David S. Miller" <davem@davemloft.net>
Subject: [PATCH 5.3 133/140] net/flow_dissector: switch to siphash
Date: Fri,  8 Nov 2019 19:51:01 +0100	[thread overview]
Message-ID: <20191108174912.999194244@linuxfoundation.org> (raw)
In-Reply-To: <20191108174900.189064908@linuxfoundation.org>

From: Eric Dumazet <edumazet@google.com>

commit 55667441c84fa5e0911a0aac44fb059c15ba6da2 upstream.

UDP IPv6 packets auto flowlabels are using a 32bit secret
(static u32 hashrnd in net/core/flow_dissector.c) and
apply jhash() over fields known by the receivers.

Attackers can easily infer the 32bit secret and use this information
to identify a device and/or user, since this 32bit secret is only
set at boot time.

Really, using jhash() to generate cookies sent on the wire
is a serious security concern.

Trying to change the rol32(hash, 16) in ip6_make_flowlabel() would be
a dead end. Trying to periodically change the secret (like in sch_sfq.c)
could change paths taken in the network for long lived flows.

Let's switch to siphash, as we did in commit df453700e8d8
("inet: switch IP ID generator to siphash")

Using a cryptographically strong pseudo random function will solve this
privacy issue and more generally remove other weak points in the stack.

Packet schedulers using skb_get_hash_perturb() benefit from this change.

Fixes: b56774163f99 ("ipv6: Enable auto flow labels by default")
Fixes: 42240901f7c4 ("ipv6: Implement different admin modes for automatic flow labels")
Fixes: 67800f9b1f4e ("ipv6: Call skb_get_hash_flowi6 to get skb->hash in ip6_make_flowlabel")
Fixes: cb1ce2ef387b ("ipv6: Implement automatic flow label generation on transmit")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Jonathan Berger <jonathann1@walla.com>
Reported-by: Amit Klein <aksecurity@gmail.com>
Reported-by: Benny Pinkas <benny@pinkas.net>
Cc: Tom Herbert <tom@herbertland.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 include/linux/skbuff.h       |    3 ++-
 include/net/flow_dissector.h |    3 ++-
 include/net/fq.h             |    2 +-
 include/net/fq_impl.h        |    4 ++--
 net/core/flow_dissector.c    |   38 ++++++++++++++++----------------------
 net/sched/sch_hhf.c          |    8 ++++----
 net/sched/sch_sfb.c          |   13 +++++++------
 net/sched/sch_sfq.c          |   14 ++++++++------
 8 files changed, 42 insertions(+), 43 deletions(-)

--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -1360,7 +1360,8 @@ static inline __u32 skb_get_hash_flowi6(
 	return skb->hash;
 }
 
-__u32 skb_get_hash_perturb(const struct sk_buff *skb, u32 perturb);
+__u32 skb_get_hash_perturb(const struct sk_buff *skb,
+			   const siphash_key_t *perturb);
 
 static inline __u32 skb_get_hash_raw(const struct sk_buff *skb)
 {
--- a/include/net/flow_dissector.h
+++ b/include/net/flow_dissector.h
@@ -4,6 +4,7 @@
 
 #include <linux/types.h>
 #include <linux/in6.h>
+#include <linux/siphash.h>
 #include <uapi/linux/if_ether.h>
 
 /**
@@ -276,7 +277,7 @@ struct flow_keys_basic {
 struct flow_keys {
 	struct flow_dissector_key_control control;
 #define FLOW_KEYS_HASH_START_FIELD basic
-	struct flow_dissector_key_basic basic;
+	struct flow_dissector_key_basic basic __aligned(SIPHASH_ALIGNMENT);
 	struct flow_dissector_key_tags tags;
 	struct flow_dissector_key_vlan vlan;
 	struct flow_dissector_key_vlan cvlan;
--- a/include/net/fq.h
+++ b/include/net/fq.h
@@ -69,7 +69,7 @@ struct fq {
 	struct list_head backlogs;
 	spinlock_t lock;
 	u32 flows_cnt;
-	u32 perturbation;
+	siphash_key_t	perturbation;
 	u32 limit;
 	u32 memory_limit;
 	u32 memory_usage;
--- a/include/net/fq_impl.h
+++ b/include/net/fq_impl.h
@@ -108,7 +108,7 @@ begin:
 
 static u32 fq_flow_idx(struct fq *fq, struct sk_buff *skb)
 {
-	u32 hash = skb_get_hash_perturb(skb, fq->perturbation);
+	u32 hash = skb_get_hash_perturb(skb, &fq->perturbation);
 
 	return reciprocal_scale(hash, fq->flows_cnt);
 }
@@ -308,7 +308,7 @@ static int fq_init(struct fq *fq, int fl
 	INIT_LIST_HEAD(&fq->backlogs);
 	spin_lock_init(&fq->lock);
 	fq->flows_cnt = max_t(u32, flows_cnt, 1);
-	fq->perturbation = prandom_u32();
+	get_random_bytes(&fq->perturbation, sizeof(fq->perturbation));
 	fq->quantum = 300;
 	fq->limit = 8192;
 	fq->memory_limit = 16 << 20; /* 16 MBytes */
--- a/net/core/flow_dissector.c
+++ b/net/core/flow_dissector.c
@@ -1333,30 +1333,21 @@ out_bad:
 }
 EXPORT_SYMBOL(__skb_flow_dissect);
 
-static u32 hashrnd __read_mostly;
+static siphash_key_t hashrnd __read_mostly;
 static __always_inline void __flow_hash_secret_init(void)
 {
 	net_get_random_once(&hashrnd, sizeof(hashrnd));
 }
 
-static __always_inline u32 __flow_hash_words(const u32 *words, u32 length,
-					     u32 keyval)
+static const void *flow_keys_hash_start(const struct flow_keys *flow)
 {
-	return jhash2(words, length, keyval);
-}
-
-static inline const u32 *flow_keys_hash_start(const struct flow_keys *flow)
-{
-	const void *p = flow;
-
-	BUILD_BUG_ON(FLOW_KEYS_HASH_OFFSET % sizeof(u32));
-	return (const u32 *)(p + FLOW_KEYS_HASH_OFFSET);
+	BUILD_BUG_ON(FLOW_KEYS_HASH_OFFSET % SIPHASH_ALIGNMENT);
+	return &flow->FLOW_KEYS_HASH_START_FIELD;
 }
 
 static inline size_t flow_keys_hash_length(const struct flow_keys *flow)
 {
 	size_t diff = FLOW_KEYS_HASH_OFFSET + sizeof(flow->addrs);
-	BUILD_BUG_ON((sizeof(*flow) - FLOW_KEYS_HASH_OFFSET) % sizeof(u32));
 	BUILD_BUG_ON(offsetof(typeof(*flow), addrs) !=
 		     sizeof(*flow) - sizeof(flow->addrs));
 
@@ -1371,7 +1362,7 @@ static inline size_t flow_keys_hash_leng
 		diff -= sizeof(flow->addrs.tipckey);
 		break;
 	}
-	return (sizeof(*flow) - diff) / sizeof(u32);
+	return sizeof(*flow) - diff;
 }
 
 __be32 flow_get_u32_src(const struct flow_keys *flow)
@@ -1437,14 +1428,15 @@ static inline void __flow_hash_consisten
 	}
 }
 
-static inline u32 __flow_hash_from_keys(struct flow_keys *keys, u32 keyval)
+static inline u32 __flow_hash_from_keys(struct flow_keys *keys,
+					const siphash_key_t *keyval)
 {
 	u32 hash;
 
 	__flow_hash_consistentify(keys);
 
-	hash = __flow_hash_words(flow_keys_hash_start(keys),
-				 flow_keys_hash_length(keys), keyval);
+	hash = siphash(flow_keys_hash_start(keys),
+		       flow_keys_hash_length(keys), keyval);
 	if (!hash)
 		hash = 1;
 
@@ -1454,12 +1446,13 @@ static inline u32 __flow_hash_from_keys(
 u32 flow_hash_from_keys(struct flow_keys *keys)
 {
 	__flow_hash_secret_init();
-	return __flow_hash_from_keys(keys, hashrnd);
+	return __flow_hash_from_keys(keys, &hashrnd);
 }
 EXPORT_SYMBOL(flow_hash_from_keys);
 
 static inline u32 ___skb_get_hash(const struct sk_buff *skb,
-				  struct flow_keys *keys, u32 keyval)
+				  struct flow_keys *keys,
+				  const siphash_key_t *keyval)
 {
 	skb_flow_dissect_flow_keys(skb, keys,
 				   FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL);
@@ -1507,7 +1500,7 @@ u32 __skb_get_hash_symmetric(const struc
 			   &keys, NULL, 0, 0, 0,
 			   FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL);
 
-	return __flow_hash_from_keys(&keys, hashrnd);
+	return __flow_hash_from_keys(&keys, &hashrnd);
 }
 EXPORT_SYMBOL_GPL(__skb_get_hash_symmetric);
 
@@ -1527,13 +1520,14 @@ void __skb_get_hash(struct sk_buff *skb)
 
 	__flow_hash_secret_init();
 
-	hash = ___skb_get_hash(skb, &keys, hashrnd);
+	hash = ___skb_get_hash(skb, &keys, &hashrnd);
 
 	__skb_set_sw_hash(skb, hash, flow_keys_have_l4(&keys));
 }
 EXPORT_SYMBOL(__skb_get_hash);
 
-__u32 skb_get_hash_perturb(const struct sk_buff *skb, u32 perturb)
+__u32 skb_get_hash_perturb(const struct sk_buff *skb,
+			   const siphash_key_t *perturb)
 {
 	struct flow_keys keys;
 
--- a/net/sched/sch_hhf.c
+++ b/net/sched/sch_hhf.c
@@ -5,11 +5,11 @@
  * Copyright (C) 2013 Nandita Dukkipati <nanditad@google.com>
  */
 
-#include <linux/jhash.h>
 #include <linux/jiffies.h>
 #include <linux/module.h>
 #include <linux/skbuff.h>
 #include <linux/vmalloc.h>
+#include <linux/siphash.h>
 #include <net/pkt_sched.h>
 #include <net/sock.h>
 
@@ -126,7 +126,7 @@ struct wdrr_bucket {
 
 struct hhf_sched_data {
 	struct wdrr_bucket buckets[WDRR_BUCKET_CNT];
-	u32		   perturbation;   /* hash perturbation */
+	siphash_key_t	   perturbation;   /* hash perturbation */
 	u32		   quantum;        /* psched_mtu(qdisc_dev(sch)); */
 	u32		   drop_overlimit; /* number of times max qdisc packet
 					    * limit was hit
@@ -264,7 +264,7 @@ static enum wdrr_bucket_idx hhf_classify
 	}
 
 	/* Get hashed flow-id of the skb. */
-	hash = skb_get_hash_perturb(skb, q->perturbation);
+	hash = skb_get_hash_perturb(skb, &q->perturbation);
 
 	/* Check if this packet belongs to an already established HH flow. */
 	flow_pos = hash & HHF_BIT_MASK;
@@ -582,7 +582,7 @@ static int hhf_init(struct Qdisc *sch, s
 
 	sch->limit = 1000;
 	q->quantum = psched_mtu(qdisc_dev(sch));
-	q->perturbation = prandom_u32();
+	get_random_bytes(&q->perturbation, sizeof(q->perturbation));
 	INIT_LIST_HEAD(&q->new_buckets);
 	INIT_LIST_HEAD(&q->old_buckets);
 
--- a/net/sched/sch_sfb.c
+++ b/net/sched/sch_sfb.c
@@ -18,7 +18,7 @@
 #include <linux/errno.h>
 #include <linux/skbuff.h>
 #include <linux/random.h>
-#include <linux/jhash.h>
+#include <linux/siphash.h>
 #include <net/ip.h>
 #include <net/pkt_sched.h>
 #include <net/pkt_cls.h>
@@ -45,7 +45,7 @@ struct sfb_bucket {
  * (Section 4.4 of SFB reference : moving hash functions)
  */
 struct sfb_bins {
-	u32		  perturbation; /* jhash perturbation */
+	siphash_key_t	  perturbation; /* siphash key */
 	struct sfb_bucket bins[SFB_LEVELS][SFB_NUMBUCKETS];
 };
 
@@ -217,7 +217,8 @@ static u32 sfb_compute_qlen(u32 *prob_r,
 
 static void sfb_init_perturbation(u32 slot, struct sfb_sched_data *q)
 {
-	q->bins[slot].perturbation = prandom_u32();
+	get_random_bytes(&q->bins[slot].perturbation,
+			 sizeof(q->bins[slot].perturbation));
 }
 
 static void sfb_swap_slot(struct sfb_sched_data *q)
@@ -314,9 +315,9 @@ static int sfb_enqueue(struct sk_buff *s
 		/* If using external classifiers, get result and record it. */
 		if (!sfb_classify(skb, fl, &ret, &salt))
 			goto other_drop;
-		sfbhash = jhash_1word(salt, q->bins[slot].perturbation);
+		sfbhash = siphash_1u32(salt, &q->bins[slot].perturbation);
 	} else {
-		sfbhash = skb_get_hash_perturb(skb, q->bins[slot].perturbation);
+		sfbhash = skb_get_hash_perturb(skb, &q->bins[slot].perturbation);
 	}
 
 
@@ -352,7 +353,7 @@ static int sfb_enqueue(struct sk_buff *s
 		/* Inelastic flow */
 		if (q->double_buffering) {
 			sfbhash = skb_get_hash_perturb(skb,
-			    q->bins[slot].perturbation);
+			    &q->bins[slot].perturbation);
 			if (!sfbhash)
 				sfbhash = 1;
 			sfb_skb_cb(skb)->hashes[slot] = sfbhash;
--- a/net/sched/sch_sfq.c
+++ b/net/sched/sch_sfq.c
@@ -14,7 +14,7 @@
 #include <linux/errno.h>
 #include <linux/init.h>
 #include <linux/skbuff.h>
-#include <linux/jhash.h>
+#include <linux/siphash.h>
 #include <linux/slab.h>
 #include <linux/vmalloc.h>
 #include <net/netlink.h>
@@ -117,7 +117,7 @@ struct sfq_sched_data {
 	u8		headdrop;
 	u8		maxdepth;	/* limit of packets per flow */
 
-	u32		perturbation;
+	siphash_key_t 	perturbation;
 	u8		cur_depth;	/* depth of longest slot */
 	u8		flags;
 	unsigned short  scaled_quantum; /* SFQ_ALLOT_SIZE(quantum) */
@@ -157,7 +157,7 @@ static inline struct sfq_head *sfq_dep_h
 static unsigned int sfq_hash(const struct sfq_sched_data *q,
 			     const struct sk_buff *skb)
 {
-	return skb_get_hash_perturb(skb, q->perturbation) & (q->divisor - 1);
+	return skb_get_hash_perturb(skb, &q->perturbation) & (q->divisor - 1);
 }
 
 static unsigned int sfq_classify(struct sk_buff *skb, struct Qdisc *sch,
@@ -607,9 +607,11 @@ static void sfq_perturbation(struct time
 	struct sfq_sched_data *q = from_timer(q, t, perturb_timer);
 	struct Qdisc *sch = q->sch;
 	spinlock_t *root_lock = qdisc_lock(qdisc_root_sleeping(sch));
+	siphash_key_t nkey;
 
+	get_random_bytes(&nkey, sizeof(nkey));
 	spin_lock(root_lock);
-	q->perturbation = prandom_u32();
+	q->perturbation = nkey;
 	if (!q->filter_list && q->tail)
 		sfq_rehash(sch);
 	spin_unlock(root_lock);
@@ -688,7 +690,7 @@ static int sfq_change(struct Qdisc *sch,
 	del_timer(&q->perturb_timer);
 	if (q->perturb_period) {
 		mod_timer(&q->perturb_timer, jiffies + q->perturb_period);
-		q->perturbation = prandom_u32();
+		get_random_bytes(&q->perturbation, sizeof(q->perturbation));
 	}
 	sch_tree_unlock(sch);
 	kfree(p);
@@ -745,7 +747,7 @@ static int sfq_init(struct Qdisc *sch, s
 	q->quantum = psched_mtu(qdisc_dev(sch));
 	q->scaled_quantum = SFQ_ALLOT_SIZE(q->quantum);
 	q->perturb_period = 0;
-	q->perturbation = prandom_u32();
+	get_random_bytes(&q->perturbation, sizeof(q->perturbation));
 
 	if (opt) {
 		int err = sfq_change(sch, opt);



  parent reply	other threads:[~2019-11-08 19:11 UTC|newest]

Thread overview: 146+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-08 18:48 [PATCH 5.3 000/140] 5.3.10-stable review Greg Kroah-Hartman
2019-11-08 18:48 ` [PATCH 5.3 001/140] regulator: of: fix suspend-min/max-voltage parsing Greg Kroah-Hartman
2019-11-08 18:48 ` [PATCH 5.3 002/140] ASoC: samsung: arndale: Add missing OF node dereferencing Greg Kroah-Hartman
2019-11-08 18:48 ` [PATCH 5.3 003/140] ASoC: wm8994: Do not register inapplicable controls for WM1811 Greg Kroah-Hartman
2019-11-08 18:48 ` [PATCH 5.3 004/140] regulator: da9062: fix suspend_enable/disable preparation Greg Kroah-Hartman
2019-11-08 18:48 ` [PATCH 5.3 005/140] ASoC: topology: Fix a signedness bug in soc_tplg_dapm_widget_create() Greg Kroah-Hartman
2019-11-08 18:48 ` [PATCH 5.3 006/140] arm64: dts: allwinner: a64: pine64-plus: Add PHY regulator delay Greg Kroah-Hartman
2019-11-08 18:48 ` [PATCH 5.3 007/140] arm64: dts: allwinner: a64: Drop PMU node Greg Kroah-Hartman
2019-11-08 18:48 ` [PATCH 5.3 008/140] arm64: dts: allwinner: a64: sopine-baseboard: Add PHY regulator delay Greg Kroah-Hartman
2019-11-08 18:48 ` [PATCH 5.3 009/140] arm64: dts: Fix gpio to pinmux mapping Greg Kroah-Hartman
2019-11-08 18:48 ` [PATCH 5.3 010/140] regulator: ti-abb: Fix timeout in ti_abb_wait_txdone/ti_abb_clear_all_txdone Greg Kroah-Hartman
2019-11-08 18:48 ` [PATCH 5.3 011/140] pinctrl: intel: Allocate IRQ chip dynamic Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 012/140] ASoC: SOF: loader: fix kernel oops on firmware boot failure Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 013/140] ASoC: SOF: topology: fix parse fail issue for byte/bool tuple types Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 014/140] ASoC: SOF: Intel: hda: fix warnings during FW load Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 015/140] ASoC: SOF: Intel: initialise and verify FW crash dump data Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 016/140] ASoC: SOF: Intel: hda: Disable DMI L1 entry during capture Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 017/140] ASoC: rt5682: add NULL handler to set_jack function Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 018/140] ASoC: intel: sof_rt5682: add remove function to disable jack Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 019/140] ASoC: intel: bytcr_rt5651: add null check to support_button_press Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 020/140] regulator: pfuze100-regulator: Variable "val" in pfuze100_regulator_probe() could be uninitialized Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 021/140] ASoC: wm_adsp: Dont generate kcontrols without READ flags Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 022/140] ASoc: rockchip: i2s: Fix RPM imbalance Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 023/140] arm64: dts: rockchip: fix Rockpro64 RK808 interrupt line Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 024/140] ARM: dts: logicpd-torpedo-som: Remove twl_keypad Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 025/140] arm64: dts: rockchip: fix RockPro64 vdd-log regulator settings Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 026/140] arm64: dts: rockchip: fix RockPro64 sdhci settings Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 027/140] pinctrl: ns2: Fix off by one bugs in ns2_pinmux_enable() Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 028/140] pinctrl: stmfx: fix null pointer on remove Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 029/140] arm64: dts: zii-ultra: fix ARM regulator states Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 030/140] ARM: dts: am3874-iceboard: Fix i2c-mux-idle-disconnect usage Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 031/140] ASoC: msm8916-wcd-digital: add missing MIX2 path for RX1/2 Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 032/140] ASoC: simple_card_utils.h: Fix potential multiple redefinition error Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 033/140] ARM: dts: Use level interrupt for omap4 & 5 wlcore Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 034/140] ARM: mm: fix alignment handler faults under memory pressure Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 035/140] scsi: qla2xxx: fix a potential NULL pointer dereference Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 036/140] scsi: scsi_dh_alua: handle RTPG sense code correctly during state transitions Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 037/140] scsi: sni_53c710: fix compilation error Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 038/140] scsi: fix kconfig dependency warning related to 53C700_LE_ON_BE Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 039/140] ARM: 8908/1: add __always_inline to functions called from __get_user_check() Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 040/140] ARM: 8914/1: NOMMU: Fix exc_ret for XIP Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 041/140] arm64: dts: rockchip: fix RockPro64 sdmmc settings Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 042/140] arm64: dts: rockchip: Fix usb-c on Hugsun X99 TV Box Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 043/140] arm64: dts: lx2160a: Correct CPU core idle state name Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 044/140] ARM: dts: imx6q-logicpd: Re-Enable SNVS power key Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 045/140] ARM: dts: vf610-zii-scu4-aib: Specify i2c-mux-idle-disconnect Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 046/140] ARM: dts: imx7s: Correct GPTs ipg clock source Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 047/140] arm64: dts: imx8mq: Use correct clock for usdhcs ipg clk Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 048/140] arm64: dts: imx8mm: " Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 049/140] perf tools: Fix resource leak of closedir() on the error paths Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 050/140] perf c2c: Fix memory leak in build_cl_output() Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 051/140] 8250-men-mcb: fix error checking when get_num_ports returns -ENODEV Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 052/140] perf kmem: Fix memory leak in compact_gfp_flags() Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 053/140] ARM: davinci: dm365: Fix McBSP dma_slave_map entry Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 054/140] drm/amdgpu: fix potential VM faults Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 055/140] drm/amdgpu: fix error handling in amdgpu_bo_list_create Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 056/140] scsi: target: core: Do not overwrite CDB byte 1 Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 057/140] scsi: hpsa: add missing hunks in reset-patch Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 058/140] ASoC: Intel: sof-rt5682: add a check for devm_clk_get Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 059/140] ASoC: SOF: control: return true when kcontrol values change Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 060/140] tracing: Fix "gfp_t" format for synthetic events Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 061/140] ARM: dts: bcm2837-rpi-cm3: Avoid leds-gpio probing issue Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 062/140] i2c: aspeed: fix master pending state handling Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 063/140] drm/komeda: Dont flush inactive pipes Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 064/140] ARM: 8926/1: v7m: remove register save to stack before svc Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 065/140] selftests: kvm: vmx_set_nested_state_test: dont check for VMX support twice Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 066/140] selftests: kvm: fix sync_regs_test with newer gccs Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 067/140] ALSA: hda: Add Tigerlake/Jasperlake PCI ID Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 068/140] of: unittest: fix memory leak in unittest_data_add Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 069/140] MIPS: bmips: mark exception vectors as char arrays Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 070/140] irqchip/gic-v3-its: Use the exact ITSList for VMOVP Greg Kroah-Hartman
2019-11-08 18:49 ` [PATCH 5.3 071/140] i2c: mt65xx: fix NULL ptr dereference Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 072/140] i2c: stm32f7: fix first byte to send in slave mode Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 073/140] i2c: stm32f7: fix a race in slave mode with arbitration loss irq Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 074/140] i2c: stm32f7: remove warning when compiling with W=1 Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 075/140] cifs: Fix cifsInodeInfo lock_sem deadlock when reconnect occurs Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 076/140] irqchip/sifive-plic: Skip contexts except supervisor in plic_init() Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 077/140] nbd: protect cmd->status with cmd->lock Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 078/140] nbd: handle racing with errored out commands Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 079/140] cxgb4: fix panic when attaching to ULD fail Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 080/140] cxgb4: request the TX CIDX updates to status page Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 081/140] dccp: do not leak jiffies on the wire Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 082/140] erspan: fix the tun_info options_len check for erspan Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 083/140] inet: stop leaking jiffies on the wire Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 084/140] net: annotate accesses to sk->sk_incoming_cpu Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 085/140] net: annotate lockless accesses to sk->sk_napi_id Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 086/140] net: dsa: bcm_sf2: Fix IMP setup for port different than 8 Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 087/140] net: ethernet: ftgmac100: Fix DMA coherency issue with SW checksum Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 088/140] net: fix sk_page_frag() recursion from memory reclaim Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 089/140] net: hisilicon: Fix ping latency when deal with high throughput Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 090/140] net/mlx4_core: Dynamically set guaranteed amount of counters per VF Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 091/140] netns: fix GFP flags in rtnl_net_notifyid() Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 092/140] net: rtnetlink: fix a typo fbd -> fdb Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 093/140] net: usb: lan78xx: Disable interrupts before calling generic_handle_irq() Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 094/140] net: Zeroing the structure ethtool_wolinfo in ethtool_get_wol() Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 095/140] selftests: net: reuseport_dualstack: fix uninitalized parameter Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 096/140] udp: fix data-race in udp_set_dev_scratch() Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 097/140] vxlan: check tun_info options_len properly Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 098/140] net: add skb_queue_empty_lockless() Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 099/140] udp: use skb_queue_empty_lockless() Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 100/140] net: use skb_queue_empty_lockless() in poll() handlers Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 101/140] net: use skb_queue_empty_lockless() in busy poll contexts Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 102/140] net: add READ_ONCE() annotation in __skb_wait_for_more_packets() Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 103/140] ipv4: fix route update on metric change Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 104/140] selftests: fib_tests: add more tests for metric update Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 105/140] net/smc: fix closing of fallback SMC sockets Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 106/140] net/smc: keep vlan_id for SMC-R in smc_listen_work() Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 107/140] keys: Fix memory leak in copy_net_ns Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 108/140] net: phylink: Fix phylink_dbg() macro Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 109/140] rxrpc: Fix handling of last subpacket of jumbo packet Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 110/140] net/mlx5e: Determine source port properly for vlan push action Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 111/140] net/mlx5e: Remove incorrect match criteria assignment line Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 112/140] net/mlx5e: Initialize on stack link modes bitmap Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 113/140] net/mlx5: Fix flow counter list auto bits struct Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 114/140] net/smc: fix refcounting for non-blocking connect() Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 115/140] net/mlx5: Fix rtable reference leak Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 116/140] mlxsw: core: Unpublish devlink parameters during reload Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 117/140] r8169: fix wrong PHY ID issue with RTL8168dp Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 118/140] net/mlx5e: Fix ethtool self test: link speed Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 119/140] net/mlx5e: Fix handling of compressed CQEs in case of low NAPI budget Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 120/140] ipv4: fix IPSKB_FRAG_PMTU handling with fragmentation Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 121/140] net: bcmgenet: dont set phydev->link from MAC Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 122/140] net: dsa: b53: Do not clear existing mirrored port mask Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 123/140] net: dsa: fix switch tree list Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 124/140] net: ensure correct skb->tstamp in various fragmenters Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 125/140] net: hns3: fix mis-counting IRQ vector numbers issue Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 126/140] net: netem: fix error path for corrupted GSO frames Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 127/140] net: reorder struct net fields to avoid false sharing Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 128/140] net: usb: lan78xx: Connect PHY before registering MAC Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 129/140] r8152: add device id for Lenovo ThinkPad USB-C Dock Gen 2 Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 130/140] net: netem: correct the parents backlog when corrupted packet was dropped Greg Kroah-Hartman
2019-11-08 18:50 ` [PATCH 5.3 131/140] net: phy: bcm7xxx: define soft_reset for 40nm EPHY Greg Kroah-Hartman
2019-11-08 18:51 ` [PATCH 5.3 132/140] net: bcmgenet: reset 40nm EPHY on energy detect Greg Kroah-Hartman
2019-11-08 18:51 ` Greg Kroah-Hartman [this message]
2019-11-08 18:51 ` [PATCH 5.3 134/140] platform/x86: pmc_atom: Add Siemens SIMATIC IPC227E to critclk_systems DMI table Greg Kroah-Hartman
2019-11-08 18:51 ` [PATCH 5.3 135/140] CIFS: Fix retry mid list corruption on reconnects Greg Kroah-Hartman
2019-11-08 18:51 ` [PATCH 5.3 136/140] selftests/powerpc: Add test case for tlbie vs mtpidr ordering issue Greg Kroah-Hartman
2019-11-08 18:51 ` [PATCH 5.3 137/140] selftests/powerpc: Fix compile error on tlbie_test due to newer gcc Greg Kroah-Hartman
2019-11-08 18:51 ` [PATCH 5.3 138/140] ASoC: pcm3168a: The codec does not support S32_LE Greg Kroah-Hartman
2019-11-08 18:51 ` [PATCH 5.3 139/140] arm64: dts: ti: k3-am65-main: Fix gic-its node unit-address Greg Kroah-Hartman
2019-11-08 18:51 ` [PATCH 5.3 140/140] usb: gadget: udc: core: Fix segfault if udc_bind_to_driver() for pending driver fails Greg Kroah-Hartman
2019-11-09  0:17 ` [PATCH 5.3 000/140] 5.3.10-stable review kernelci.org bot
2019-11-09 10:23 ` Naresh Kamboju
2019-11-09 10:37   ` Greg Kroah-Hartman
2019-11-09 15:41 ` Guenter Roeck
2019-11-09 15:50   ` Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191108174912.999194244@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=aksecurity@gmail.com \
    --cc=benny@pinkas.net \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=jonathann1@walla.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=tom@herbertland.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).