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);
next prev 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).