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, Daniel Borkmann <daniel@iogearbox.net>,
	John Fastabend <john.fastabend@gmail.com>,
	Song Liu <songliubraving@fb.com>,
	Alexei Starovoitov <ast@kernel.org>,
	Sasha Levin <alexander.levin@microsoft.com>
Subject: [PATCH 4.18 065/197] bpf, sockmap: fix sock_map_ctx_update_elem race with exist/noexist
Date: Thu, 13 Sep 2018 15:30:14 +0200	[thread overview]
Message-ID: <20180913131844.125576816@linuxfoundation.org> (raw)
In-Reply-To: <20180913131841.568116777@linuxfoundation.org>

4.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Daniel Borkmann <daniel@iogearbox.net>

[ Upstream commit 585f5a6252ee43ec8feeee07387e3fcc7e8bb292 ]

The current code in sock_map_ctx_update_elem() allows for BPF_EXIST
and BPF_NOEXIST map update flags. While on array-like maps this approach
is rather uncommon, e.g. bpf_fd_array_map_update_elem() and others
enforce map update flags to be BPF_ANY such that xchg() can be used
directly, the current implementation in sock map does not guarantee
that such operation with BPF_EXIST / BPF_NOEXIST is atomic.

The initial test does a READ_ONCE(stab->sock_map[i]) to fetch the
socket from the slot which is then tested for NULL / non-NULL. However
later after __sock_map_ctx_update_elem(), the actual update is done
through osock = xchg(&stab->sock_map[i], sock). Problem is that in
the meantime a different CPU could have updated / deleted a socket
on that specific slot and thus flag contraints won't hold anymore.

I've been thinking whether best would be to just break UAPI and do
an enforcement of BPF_ANY to check if someone actually complains,
however trouble is that already in BPF kselftest we use BPF_NOEXIST
for the map update, and therefore it might have been copied into
applications already. The fix to keep the current behavior intact
would be to add a map lock similar to the sock hash bucket lock only
for covering the whole map.

Fixes: 174a79ff9515 ("bpf: sockmap with sk redirect support")
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Acked-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 kernel/bpf/sockmap.c |  106 +++++++++++++++++++++++++++------------------------
 1 file changed, 57 insertions(+), 49 deletions(-)

--- a/kernel/bpf/sockmap.c
+++ b/kernel/bpf/sockmap.c
@@ -58,6 +58,7 @@ struct bpf_stab {
 	struct bpf_map map;
 	struct sock **sock_map;
 	struct bpf_sock_progs progs;
+	raw_spinlock_t lock;
 };
 
 struct bucket {
@@ -89,9 +90,9 @@ enum smap_psock_state {
 
 struct smap_psock_map_entry {
 	struct list_head list;
+	struct bpf_map *map;
 	struct sock **entry;
 	struct htab_elem __rcu *hash_link;
-	struct bpf_htab __rcu *htab;
 };
 
 struct smap_psock {
@@ -343,13 +344,18 @@ static void bpf_tcp_close(struct sock *s
 	e = psock_map_pop(sk, psock);
 	while (e) {
 		if (e->entry) {
-			osk = cmpxchg(e->entry, sk, NULL);
+			struct bpf_stab *stab = container_of(e->map, struct bpf_stab, map);
+
+			raw_spin_lock_bh(&stab->lock);
+			osk = *e->entry;
 			if (osk == sk) {
+				*e->entry = NULL;
 				smap_release_sock(psock, sk);
 			}
+			raw_spin_unlock_bh(&stab->lock);
 		} else {
 			struct htab_elem *link = rcu_dereference(e->hash_link);
-			struct bpf_htab *htab = rcu_dereference(e->htab);
+			struct bpf_htab *htab = container_of(e->map, struct bpf_htab, map);
 			struct hlist_head *head;
 			struct htab_elem *l;
 			struct bucket *b;
@@ -1644,6 +1650,7 @@ static struct bpf_map *sock_map_alloc(un
 		return ERR_PTR(-ENOMEM);
 
 	bpf_map_init_from_attr(&stab->map, attr);
+	raw_spin_lock_init(&stab->lock);
 
 	/* make sure page count doesn't overflow */
 	cost = (u64) stab->map.max_entries * sizeof(struct sock *);
@@ -1714,14 +1721,15 @@ static void sock_map_free(struct bpf_map
 	 * and a grace period expire to ensure psock is really safe to remove.
 	 */
 	rcu_read_lock();
+	raw_spin_lock_bh(&stab->lock);
 	for (i = 0; i < stab->map.max_entries; i++) {
 		struct smap_psock *psock;
 		struct sock *sock;
 
-		sock = xchg(&stab->sock_map[i], NULL);
+		sock = stab->sock_map[i];
 		if (!sock)
 			continue;
-
+		stab->sock_map[i] = NULL;
 		psock = smap_psock_sk(sock);
 		/* This check handles a racing sock event that can get the
 		 * sk_callback_lock before this case but after xchg happens
@@ -1733,6 +1741,7 @@ static void sock_map_free(struct bpf_map
 			smap_release_sock(psock, sock);
 		}
 	}
+	raw_spin_unlock_bh(&stab->lock);
 	rcu_read_unlock();
 
 	sock_map_remove_complete(stab);
@@ -1776,14 +1785,16 @@ static int sock_map_delete_elem(struct b
 	if (k >= map->max_entries)
 		return -EINVAL;
 
-	sock = xchg(&stab->sock_map[k], NULL);
+	raw_spin_lock_bh(&stab->lock);
+	sock = stab->sock_map[k];
+	stab->sock_map[k] = NULL;
+	raw_spin_unlock_bh(&stab->lock);
 	if (!sock)
 		return -EINVAL;
 
 	psock = smap_psock_sk(sock);
 	if (!psock)
-		goto out;
-
+		return 0;
 	if (psock->bpf_parse) {
 		write_lock_bh(&sock->sk_callback_lock);
 		smap_stop_sock(psock, sock);
@@ -1791,7 +1802,6 @@ static int sock_map_delete_elem(struct b
 	}
 	smap_list_map_remove(psock, &stab->sock_map[k]);
 	smap_release_sock(psock, sock);
-out:
 	return 0;
 }
 
@@ -1827,11 +1837,9 @@ out:
 static int __sock_map_ctx_update_elem(struct bpf_map *map,
 				      struct bpf_sock_progs *progs,
 				      struct sock *sock,
-				      struct sock **map_link,
 				      void *key)
 {
 	struct bpf_prog *verdict, *parse, *tx_msg;
-	struct smap_psock_map_entry *e = NULL;
 	struct smap_psock *psock;
 	bool new = false;
 	int err = 0;
@@ -1904,14 +1912,6 @@ static int __sock_map_ctx_update_elem(st
 		new = true;
 	}
 
-	if (map_link) {
-		e = kzalloc(sizeof(*e), GFP_ATOMIC | __GFP_NOWARN);
-		if (!e) {
-			err = -ENOMEM;
-			goto out_free;
-		}
-	}
-
 	/* 3. At this point we have a reference to a valid psock that is
 	 * running. Attach any BPF programs needed.
 	 */
@@ -1933,17 +1933,6 @@ static int __sock_map_ctx_update_elem(st
 		write_unlock_bh(&sock->sk_callback_lock);
 	}
 
-	/* 4. Place psock in sockmap for use and stop any programs on
-	 * the old sock assuming its not the same sock we are replacing
-	 * it with. Because we can only have a single set of programs if
-	 * old_sock has a strp we can stop it.
-	 */
-	if (map_link) {
-		e->entry = map_link;
-		spin_lock_bh(&psock->maps_lock);
-		list_add_tail(&e->list, &psock->maps);
-		spin_unlock_bh(&psock->maps_lock);
-	}
 	return err;
 out_free:
 	smap_release_sock(psock, sock);
@@ -1954,7 +1943,6 @@ out_progs:
 	}
 	if (tx_msg)
 		bpf_prog_put(tx_msg);
-	kfree(e);
 	return err;
 }
 
@@ -1964,36 +1952,57 @@ static int sock_map_ctx_update_elem(stru
 {
 	struct bpf_stab *stab = container_of(map, struct bpf_stab, map);
 	struct bpf_sock_progs *progs = &stab->progs;
-	struct sock *osock, *sock;
+	struct sock *osock, *sock = skops->sk;
+	struct smap_psock_map_entry *e;
+	struct smap_psock *psock;
 	u32 i = *(u32 *)key;
 	int err;
 
 	if (unlikely(flags > BPF_EXIST))
 		return -EINVAL;
-
 	if (unlikely(i >= stab->map.max_entries))
 		return -E2BIG;
 
-	sock = READ_ONCE(stab->sock_map[i]);
-	if (flags == BPF_EXIST && !sock)
-		return -ENOENT;
-	else if (flags == BPF_NOEXIST && sock)
-		return -EEXIST;
+	e = kzalloc(sizeof(*e), GFP_ATOMIC | __GFP_NOWARN);
+	if (!e)
+		return -ENOMEM;
 
-	sock = skops->sk;
-	err = __sock_map_ctx_update_elem(map, progs, sock, &stab->sock_map[i],
-					 key);
+	err = __sock_map_ctx_update_elem(map, progs, sock, key);
 	if (err)
 		goto out;
 
-	osock = xchg(&stab->sock_map[i], sock);
-	if (osock) {
-		struct smap_psock *opsock = smap_psock_sk(osock);
+	/* psock guaranteed to be present. */
+	psock = smap_psock_sk(sock);
+	raw_spin_lock_bh(&stab->lock);
+	osock = stab->sock_map[i];
+	if (osock && flags == BPF_NOEXIST) {
+		err = -EEXIST;
+		goto out_unlock;
+	}
+	if (!osock && flags == BPF_EXIST) {
+		err = -ENOENT;
+		goto out_unlock;
+	}
+
+	e->entry = &stab->sock_map[i];
+	e->map = map;
+	spin_lock_bh(&psock->maps_lock);
+	list_add_tail(&e->list, &psock->maps);
+	spin_unlock_bh(&psock->maps_lock);
 
-		smap_list_map_remove(opsock, &stab->sock_map[i]);
-		smap_release_sock(opsock, osock);
+	stab->sock_map[i] = sock;
+	if (osock) {
+		psock = smap_psock_sk(osock);
+		smap_list_map_remove(psock, &stab->sock_map[i]);
+		smap_release_sock(psock, osock);
 	}
+	raw_spin_unlock_bh(&stab->lock);
+	return 0;
+out_unlock:
+	smap_release_sock(psock, sock);
+	raw_spin_unlock_bh(&stab->lock);
 out:
+	kfree(e);
 	return err;
 }
 
@@ -2356,7 +2365,7 @@ static int sock_hash_ctx_update_elem(str
 	b = __select_bucket(htab, hash);
 	head = &b->head;
 
-	err = __sock_map_ctx_update_elem(map, progs, sock, NULL, key);
+	err = __sock_map_ctx_update_elem(map, progs, sock, key);
 	if (err)
 		goto err;
 
@@ -2382,8 +2391,7 @@ static int sock_hash_ctx_update_elem(str
 	}
 
 	rcu_assign_pointer(e->hash_link, l_new);
-	rcu_assign_pointer(e->htab,
-			   container_of(map, struct bpf_htab, map));
+	e->map = map;
 	spin_lock_bh(&psock->maps_lock);
 	list_add_tail(&e->list, &psock->maps);
 	spin_unlock_bh(&psock->maps_lock);



  parent reply	other threads:[~2018-09-13 13:54 UTC|newest]

Thread overview: 205+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-13 13:29 [PATCH 4.18 000/197] 4.18.8-stable review Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 001/197] act_ife: fix a potential use-after-free Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 002/197] ipv4: tcp: send zero IPID for RST and ACK sent in SYN-RECV and TIME-WAIT state Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 003/197] net: bcmgenet: use MAC link status for fixed phy Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 004/197] net: macb: do not disable MDIO bus at open/close time Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 005/197] net: sched: Fix memory exposure from short TCA_U32_SEL Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 006/197] qlge: Fix netdev features configuration Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 007/197] r8152: disable RX aggregation on new Dell TB16 dock Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 008/197] r8169: add support for NCube 8168 network card Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 009/197] tcp: do not restart timewait timer on rst reception Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 010/197] vti6: remove !skb->ignore_df check from vti6_xmit() Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 011/197] act_ife: move tcfa_lock down to where necessary Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 012/197] act_ife: fix a potential deadlock Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 013/197] net: sched: action_ife: take reference to meta module Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 014/197] bnxt_en: Clean up unused functions Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 015/197] bnxt_en: Do not adjust max_cp_rings by the ones used by RDMA Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 016/197] net/sched: act_pedit: fix dump of extended layered op Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 017/197] tipc: fix a missing rhashtable_walk_exit() Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 018/197] hv_netvsc: Fix a deadlock by getting rtnl lock earlier in netvsc_probe() Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 019/197] tipc: fix the big/little endian issue in tipc_dest Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 020/197] sctp: remove useless start_fail from sctp_ht_iter in proc Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 021/197] erspan: set erspan_ver to 1 by default when adding an erspan dev Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 022/197] net: macb: Fix regression breaking non-MDIO fixed-link PHYs Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 023/197] ipv6: dont get lwtstate twice in ip6_rt_copy_init() Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 024/197] net/ipv6: init ip6 anycast rt->dst.input as ip6_input Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 025/197] net/ipv6: Only update MTU metric if it set Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 026/197] net/ipv6: Put lwtstate when destroying fib6_info Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 027/197] net/mlx5: Fix SQ offset in QPs with small RQ Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 028/197] r8169: set RxConfig after tx/rx is enabled for RTL8169sb/8110sb devices Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 029/197] Revert "net: stmmac: Do not keep rearming the coalesce timer in stmmac_xmit" Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 030/197] ip6_vti: fix creating fallback tunnel device for vti6 Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 031/197] ip6_vti: fix a null pointer deference when destroy vti6 tunnel Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 032/197] nfp: wait for posted reconfigs when disabling the device Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 033/197] sctp: hold transport before accessing its asoc in sctp_transport_get_next Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 034/197] mlxsw: spectrum_switchdev: Do not leak RIFs when removing bridge Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 035/197] vhost: correctly check the iova range when waking virtqueue Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 036/197] hv_netvsc: ignore devices that are not PCI Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 037/197] cifs: check if SMB2 PDU size has been padded and suppress the warning Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 038/197] hfsplus: dont return 0 when fill_super() failed Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 039/197] hfs: prevent crash on exit from failed search Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 040/197] sunrpc: Dont use stack buffer with scatterlist Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 041/197] fork: dont copy inconsistent signal handler state to child Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 042/197] fs/proc/vmcore.c: hide vmcoredd_mmap_dumps() for nommu builds Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 043/197] reiserfs: change j_timestamp type to time64_t Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 044/197] iommu/rockchip: Handle errors returned from PM framework Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 045/197] hfsplus: fix NULL dereference in hfsplus_lookup() Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 046/197] iommu/rockchip: Move irq request past pm_runtime_enable Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 047/197] fs/proc/kcore.c: use __pa_symbol() for KCORE_TEXT list entries Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 048/197] fat: validate ->i_start before using Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 049/197] workqueue: skip lockdep wq dependency in cancel_work_sync() Greg Kroah-Hartman
2018-09-13 13:29 ` [PATCH 4.18 050/197] workqueue: re-add lockdep dependencies for flushing Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 051/197] scripts: modpost: check memory allocation results Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 052/197] apparmor: fix an error code in __aa_create_ns() Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 053/197] virtio: pci-legacy: Validate queue pfn Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 054/197] x86/mce: Add notifier_block forward declaration Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 055/197] i2c: core: ACPI: Make acpi_gsb_i2c_read_bytes() check i2c_transfer return value Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 056/197] IB/hfi1: Invalid NUMA node information can cause a divide by zero Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 057/197] pwm: meson: Fix mux clock names Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 058/197] powerpc/topology: Get topology for shared processors at boot Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 059/197] mm/fadvise.c: fix signed overflow UBSAN complaint Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 060/197] mm: make DEFERRED_STRUCT_PAGE_INIT explicitly depend on SPARSEMEM Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 061/197] fs/dcache.c: fix kmemcheck splat at take_dentry_name_snapshot() Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 062/197] platform/x86: intel_punit_ipc: fix build errors Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 063/197] bpf, sockmap: fix map elem deletion race with smap_stop_sock Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 064/197] tcp, ulp: fix leftover icsk_ulp_ops preventing sock from reattach Greg Kroah-Hartman
2018-09-13 13:30 ` Greg Kroah-Hartman [this message]
2018-09-13 13:30 ` [PATCH 4.18 066/197] net/xdp: Fix suspicious RCU usage warning Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 067/197] bpf, sockmap: fix leakage of smap_psock_map_entry Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 068/197] samples/bpf: all XDP samples should unload xdp/bpf prog on SIGTERM Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 069/197] netfilter: ip6t_rpfilter: set F_IFACE for linklocal addresses Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 070/197] s390/kdump: Fix memleak in nt_vmcoreinfo Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 071/197] ipvs: fix race between ip_vs_conn_new() and ip_vs_del_dest() Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 072/197] mfd: sm501: Set coherent_dma_mask when creating subdevices Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 073/197] netfilter: x_tables: do not fail xt_alloc_table_info too easilly Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 074/197] platform/x86: asus-nb-wmi: Add keymap entry for lid flip action on UX360 Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 075/197] netfilter: fix memory leaks on netlink_dump_start error Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 076/197] tcp, ulp: add alias for all ulp modules Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 077/197] ubi: Initialize Fastmap checkmapping correctly Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 078/197] RDMA/hns: Fix usage of bitmap allocation functions return values Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 079/197] ACPICA: ACPICA: add status check for acpi_hw_read before assigning return value Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 080/197] perf arm spe: Fix uninitialized record error variable Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 081/197] net: hns3: Fix for command format parsing error in hclge_is_all_function_id_zero Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 082/197] block: dont warn for flush on read-only device Greg Kroah-Hartman
2018-09-17  4:04   ` Stefan Agner
2018-09-17  4:57     ` Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 083/197] net: hns3: Fix for phy link issue when using marvell phy driver Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 084/197] PCI: Match Root Ports MPS to endpoints MPSS as necessary Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 085/197] drm/amd/display: Guard against null crtc in CRC IRQ Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 086/197] coccicheck: return proper error code on fail Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 087/197] perf tools: Check for null when copying nsinfo Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 088/197] f2fs: avoid race between zero_range and background GC Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 089/197] f2fs: fix avoid race between truncate " Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 090/197] RISC-V: Use KBUILD_CFLAGS instead of KCFLAGS when building the vDSO Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 091/197] irqchip/stm32: Fix init error handling Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 092/197] irqchip/bcm7038-l1: Hide cpu offline callback when building for !SMP Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 093/197] net/9p/trans_fd.c: fix race by holding the lock Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 094/197] net/9p: fix error path of p9_virtio_probe Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 095/197] f2fs: fix to clear PG_checked flag in set_page_dirty() Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 096/197] pinctrl: axp209: Fix NULL pointer dereference after allocation Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 097/197] bpf: fix bpffs non-array map seq_show issue Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 098/197] powerpc/uaccess: Enable get_user(u64, *p) on 32-bit Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 099/197] powerpc: Fix size calculation using resource_size() Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 100/197] perf probe powerpc: Fix trace event post-processing Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 101/197] block: bvec_nr_vecs() returns value for wrong slab Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 102/197] brcmfmac: fix brcmf_wiphy_wowl_params() NULL pointer dereference Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 103/197] s390/dasd: fix hanging offline processing due to canceled worker Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 104/197] s390/dasd: fix panic for failed online processing Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 105/197] ACPI / scan: Initialize status to ACPI_STA_DEFAULT Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 106/197] blk-mq: count the hctx as active before allocating tag Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 107/197] scsi: aic94xx: fix an error code in aic94xx_init() Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 108/197] NFSv4: Fix error handling in nfs4_sp4_select_mode() Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 109/197] Input: do not use WARN() in input_alloc_absinfo() Greg Kroah-Hartman
2018-09-13 13:30 ` [PATCH 4.18 110/197] xen/balloon: fix balloon initialization for PVH Dom0 Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 111/197] PCI: mvebu: Fix I/O space end address calculation Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 112/197] dm kcopyd: avoid softlockup in run_complete_job Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 113/197] staging: comedi: ni_mio_common: fix subdevice flags for PFI subdevice Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 114/197] ASoC: rt5677: Fix initialization of rt5677_of_match.data Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 115/197] iommu/omap: Fix cache flushes on L2 table entries Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 116/197] selftests/powerpc: Kill child processes on SIGINT Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 117/197] selinux: cleanup dentry and inodes on error in selinuxfs Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 118/197] RDS: IB: fix passing zero to ERR_PTR() warning Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 119/197] cfq: Suppress compiler warnings about comparisons Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 120/197] smb3: fix reset of bytes read and written stats Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 121/197] CIFS: fix memory leak and remove dead code Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 122/197] SMB3: Number of requests sent should be displayed for SMB3 not just CIFS Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 123/197] smb3: if server does not support posix do not allow posix mount option Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 124/197] powerpc/platforms/85xx: fix t1042rdb_diu.c build errors & warning Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 125/197] powerpc/64s: Make rfi_flush_fallback a little more robust Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 126/197] um: fix parallel building with O= option Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 127/197] powerpc/pseries: Avoid using the size greater than RTAS_ERROR_LOG_MAX Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 128/197] clk: rockchip: Add pclk_rkpwm_pmu to PMU critical clocks in rk3399 Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 129/197] drm/amd/display: Read back max backlight value at boot Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 130/197] KVM: vmx: track host_state.loaded using a loaded_vmcs pointer Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 131/197] kvm: nVMX: Fix fault vector for VMX operation at CPL > 0 Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 132/197] drm/etnaviv: fix crash in GPU suspend when init failed due to buffer placement Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 133/197] btrfs: Exit gracefully when chunk map cannot be inserted to the tree Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 134/197] btrfs: replace: Reset on-disk dev stats value after replace Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 135/197] btrfs: fix in-memory value of total_devices after seed device deletion Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 136/197] btrfs: relocation: Only remove reloc rb_trees if reloc control has been initialized Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 137/197] btrfs: tree-checker: Detect invalid and empty essential trees Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 138/197] btrfs: check-integrity: Fix NULL pointer dereference for degraded mount Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 139/197] btrfs: lift uuid_mutex to callers of btrfs_open_devices Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 140/197] btrfs: Dont remove block group that still has pinned down bytes Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 141/197] btrfs: Fix a C compliance issue Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 142/197] arm64: rockchip: Force CONFIG_PM on Rockchip systems Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 143/197] ARM: " Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 144/197] btrfs: do btrfs_free_stale_devices outside of device_list_add Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 145/197] btrfs: extend locked section when adding a new device in device_list_add Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 146/197] btrfs: rename local devices for fs_devices in btrfs_free_stale_devices( Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 147/197] btrfs: use device_list_mutex when removing stale devices Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 148/197] btrfs: lift uuid_mutex to callers of btrfs_scan_one_device Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 149/197] btrfs: lift uuid_mutex to callers of btrfs_parse_early_options Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 150/197] btrfs: reorder initialization before the mount locks uuid_mutex Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 151/197] btrfs: fix mount and ioctl device scan ioctl race Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 152/197] drm/i915/lpe: Mark LPE audio runtime pm as "no callbacks" Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 153/197] drm/i915: Nuke the LVDS lid notifier Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 154/197] drm/i915: Increase LSPCON timeout Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 155/197] drm/i915: Free write_buf that we allocated with kzalloc Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 156/197] drm/amdgpu: update uvd_v6_0_ring_vm_funcs to use new nop packet Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 157/197] drm/amdgpu: fix a reversed condition Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 158/197] drm/amdgpu: Fix RLC safe mode test in gfx_v9_0_enter_rlc_safe_mode Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 159/197] drm/amd/pp: Convert voltage unit in mV*4 to mV on CZ/ST Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 160/197] drm/amd/powerplay: fixed uninitialized value Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 161/197] drm/amd/pp/Polaris12: Fix a chunk of registers missed to program Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 162/197] drm/edid: Quirk Vive Pro VR headset non-desktop Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 163/197] drm/edid: Add 6 bpc quirk for SDC panel in Lenovo B50-80 Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 164/197] drm/amd/display: fix type of variable Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 165/197] drm/amd/display: Dont share clk source between DP and HDMI Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 166/197] drm/amd/display: update clk for various HDMI color depths Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 167/197] drm/amd/display: Use requested HDMI aspect ratio Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 168/197] drm/amd/display: Report non-DP display as disconnected without EDID Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 169/197] drm/rockchip: lvds: add missing of_node_put Greg Kroah-Hartman
2018-09-13 13:31 ` [PATCH 4.18 170/197] drm/rockchip: vop: split out core clock enablement into separate functions Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 171/197] drm/rockchip: vop: fix irq disabled after vop driver probed Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 172/197] drm/amd/display: Pass connector id when executing VBIOS CT Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 173/197] drm/amd/display: Check if clock source in use before disabling Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 174/197] drm/amdgpu: update tmr mc address Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 175/197] drm/amdgpu:add tmr mc address into amdgpu_firmware_info Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 176/197] drm/amdgpu:add new firmware id for VCN Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 177/197] drm/amdgpu:add VCN support in PSP driver Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 178/197] drm/amdgpu:add VCN booting with firmware loaded by PSP Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 179/197] drm/amdgpu: fix incorrect use of fcheck Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 180/197] drm/amdgpu: fix incorrect use of drm_file->pid Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 181/197] drm/i915: Re-apply "Perform link quality check, unconditionally during long pulse" Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 182/197] uapi/linux/keyctl.h: dont use C++ reserved keyword as a struct member name Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 183/197] mm: respect arch_dup_mmap() return value Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 184/197] drm/i915: set DP Main Stream Attribute for color range on DDI platforms Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 185/197] x86/tsc: Prevent result truncation on 32bit Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 186/197] drm/amdgpu: Keep track of amount of pinned CPU visible VRAM Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 187/197] drm/amdgpu: Make pin_size values atomic Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 188/197] drm/amdgpu: Warn and update pin_size values when destroying a pinned BO Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 189/197] drm/amdgpu: Dont warn on " Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 190/197] debugobjects: Make stack check warning more informative Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 191/197] x86/pae: use 64 bit atomic xchg function in native_ptep_get_and_clear Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 192/197] x86/xen: dont write ptes directly in 32-bit PV guests Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 193/197] kbuild: make missing $DEPMOD a Warning instead of an Error Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 194/197] kvm: x86: Set highest physical address bits in non-present/reserved SPTEs Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 195/197] x86: kvm: avoid unused variable warning Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 196/197] HID: redragon: fix num lock and caps lock LEDs Greg Kroah-Hartman
2018-09-13 13:32 ` [PATCH 4.18 197/197] ASoC: wm8994: Fix missing break in switch Greg Kroah-Hartman
2018-09-14 12:27 ` [PATCH 4.18 000/197] 4.18.8-stable review Naresh Kamboju
2018-09-14 13:02   ` Greg Kroah-Hartman
2018-09-14 14:48 ` Guenter Roeck
2018-09-14 14:50   ` Guenter Roeck
2018-09-14 18:25     ` 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=20180913131844.125576816@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=alexander.levin@microsoft.com \
    --cc=ast@kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=john.fastabend@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=songliubraving@fb.com \
    --cc=stable@vger.kernel.org \
    /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).