From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Cong Wang <xiyou.wangcong@gmail.com>,
Paul Moore <paul@paul-moore.com>
Subject: [PATCH 4.11 147/150] audit: fix the RCU locking for the auditd_connection structure
Date: Mon, 12 Jun 2017 17:25:54 +0200 [thread overview]
Message-ID: <20170612152526.230286110@linuxfoundation.org> (raw)
In-Reply-To: <20170612152519.404936272@linuxfoundation.org>
4.11-stable review patch. If anyone has any objections, please let me know.
------------------
From: Paul Moore <paul@paul-moore.com>
commit 48d0e023af9799cd7220335baf8e3ba61eeafbeb upstream.
Cong Wang correctly pointed out that the RCU read locking of the
auditd_connection struct was wrong, this patch correct this by
adopting a more traditional, and correct RCU locking model.
This patch is heavily based on an earlier prototype by Cong Wang.
Reported-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
kernel/audit.c | 167 +++++++++++++++++++++++++++++++++++++++------------------
1 file changed, 115 insertions(+), 52 deletions(-)
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -110,18 +110,19 @@ struct audit_net {
* @pid: auditd PID
* @portid: netlink portid
* @net: the associated network namespace
- * @lock: spinlock to protect write access
+ * @rcu: RCU head
*
* Description:
* This struct is RCU protected; you must either hold the RCU lock for reading
- * or the included spinlock for writing.
+ * or the associated spinlock for writing.
*/
static struct auditd_connection {
int pid;
u32 portid;
struct net *net;
- spinlock_t lock;
-} auditd_conn;
+ struct rcu_head rcu;
+} *auditd_conn = NULL;
+static DEFINE_SPINLOCK(auditd_conn_lock);
/* If audit_rate_limit is non-zero, limit the rate of sending audit records
* to that number per second. This prevents DoS attacks, but results in
@@ -223,15 +224,39 @@ struct audit_reply {
int auditd_test_task(const struct task_struct *task)
{
int rc;
+ struct auditd_connection *ac;
rcu_read_lock();
- rc = (auditd_conn.pid && task->tgid == auditd_conn.pid ? 1 : 0);
+ ac = rcu_dereference(auditd_conn);
+ rc = (ac && ac->pid == task->tgid ? 1 : 0);
rcu_read_unlock();
return rc;
}
/**
+ * auditd_pid_vnr - Return the auditd PID relative to the namespace
+ *
+ * Description:
+ * Returns the PID in relation to the namespace, 0 on failure.
+ */
+static pid_t auditd_pid_vnr(void)
+{
+ pid_t pid;
+ const struct auditd_connection *ac;
+
+ rcu_read_lock();
+ ac = rcu_dereference(auditd_conn);
+ if (!ac)
+ pid = 0;
+ else
+ pid = ac->pid;
+ rcu_read_unlock();
+
+ return pid;
+}
+
+/**
* audit_get_sk - Return the audit socket for the given network namespace
* @net: the destination network namespace
*
@@ -427,6 +452,23 @@ static int audit_set_failure(u32 state)
}
/**
+ * auditd_conn_free - RCU helper to release an auditd connection struct
+ * @rcu: RCU head
+ *
+ * Description:
+ * Drop any references inside the auditd connection tracking struct and free
+ * the memory.
+ */
+static void auditd_conn_free(struct rcu_head *rcu)
+{
+ struct auditd_connection *ac;
+
+ ac = container_of(rcu, struct auditd_connection, rcu);
+ put_net(ac->net);
+ kfree(ac);
+}
+
+/**
* auditd_set - Set/Reset the auditd connection state
* @pid: auditd PID
* @portid: auditd netlink portid
@@ -434,22 +476,33 @@ static int audit_set_failure(u32 state)
*
* Description:
* This function will obtain and drop network namespace references as
- * necessary.
+ * necessary. Returns zero on success, negative values on failure.
*/
-static void auditd_set(int pid, u32 portid, struct net *net)
+static int auditd_set(int pid, u32 portid, struct net *net)
{
unsigned long flags;
+ struct auditd_connection *ac_old, *ac_new;
- spin_lock_irqsave(&auditd_conn.lock, flags);
- auditd_conn.pid = pid;
- auditd_conn.portid = portid;
- if (auditd_conn.net)
- put_net(auditd_conn.net);
- if (net)
- auditd_conn.net = get_net(net);
- else
- auditd_conn.net = NULL;
- spin_unlock_irqrestore(&auditd_conn.lock, flags);
+ if (!pid || !net)
+ return -EINVAL;
+
+ ac_new = kzalloc(sizeof(*ac_new), GFP_KERNEL);
+ if (!ac_new)
+ return -ENOMEM;
+ ac_new->pid = pid;
+ ac_new->portid = portid;
+ ac_new->net = get_net(net);
+
+ spin_lock_irqsave(&auditd_conn_lock, flags);
+ ac_old = rcu_dereference_protected(auditd_conn,
+ lockdep_is_held(&auditd_conn_lock));
+ rcu_assign_pointer(auditd_conn, ac_new);
+ spin_unlock_irqrestore(&auditd_conn_lock, flags);
+
+ if (ac_old)
+ call_rcu(&ac_old->rcu, auditd_conn_free);
+
+ return 0;
}
/**
@@ -544,13 +597,19 @@ static void kauditd_retry_skb(struct sk_
*/
static void auditd_reset(void)
{
+ unsigned long flags;
struct sk_buff *skb;
+ struct auditd_connection *ac_old;
/* if it isn't already broken, break the connection */
- rcu_read_lock();
- if (auditd_conn.pid)
- auditd_set(0, 0, NULL);
- rcu_read_unlock();
+ spin_lock_irqsave(&auditd_conn_lock, flags);
+ ac_old = rcu_dereference_protected(auditd_conn,
+ lockdep_is_held(&auditd_conn_lock));
+ rcu_assign_pointer(auditd_conn, NULL);
+ spin_unlock_irqrestore(&auditd_conn_lock, flags);
+
+ if (ac_old)
+ call_rcu(&ac_old->rcu, auditd_conn_free);
/* flush all of the main and retry queues to the hold queue */
while ((skb = skb_dequeue(&audit_retry_queue)))
@@ -576,6 +635,7 @@ static int auditd_send_unicast_skb(struc
u32 portid;
struct net *net;
struct sock *sk;
+ struct auditd_connection *ac;
/* NOTE: we can't call netlink_unicast while in the RCU section so
* take a reference to the network namespace and grab local
@@ -585,15 +645,15 @@ static int auditd_send_unicast_skb(struc
* section netlink_unicast() should safely return an error */
rcu_read_lock();
- if (!auditd_conn.pid) {
+ ac = rcu_dereference(auditd_conn);
+ if (!ac) {
rcu_read_unlock();
rc = -ECONNREFUSED;
goto err;
}
- net = auditd_conn.net;
- get_net(net);
+ net = get_net(ac->net);
sk = audit_get_sk(net);
- portid = auditd_conn.portid;
+ portid = ac->portid;
rcu_read_unlock();
rc = netlink_unicast(sk, skb, portid, 0);
@@ -728,6 +788,7 @@ static int kauditd_thread(void *dummy)
u32 portid = 0;
struct net *net = NULL;
struct sock *sk = NULL;
+ struct auditd_connection *ac;
#define UNICAST_RETRIES 5
@@ -735,14 +796,14 @@ static int kauditd_thread(void *dummy)
while (!kthread_should_stop()) {
/* NOTE: see the lock comments in auditd_send_unicast_skb() */
rcu_read_lock();
- if (!auditd_conn.pid) {
+ ac = rcu_dereference(auditd_conn);
+ if (!ac) {
rcu_read_unlock();
goto main_queue;
}
- net = auditd_conn.net;
- get_net(net);
+ net = get_net(ac->net);
sk = audit_get_sk(net);
- portid = auditd_conn.portid;
+ portid = ac->portid;
rcu_read_unlock();
/* attempt to flush the hold queue */
@@ -1102,9 +1163,7 @@ static int audit_receive_msg(struct sk_b
memset(&s, 0, sizeof(s));
s.enabled = audit_enabled;
s.failure = audit_failure;
- rcu_read_lock();
- s.pid = auditd_conn.pid;
- rcu_read_unlock();
+ s.pid = auditd_pid_vnr();
s.rate_limit = audit_rate_limit;
s.backlog_limit = audit_backlog_limit;
s.lost = atomic_read(&audit_lost);
@@ -1143,38 +1202,44 @@ static int audit_receive_msg(struct sk_b
/* test the auditd connection */
audit_replace(requesting_pid);
- rcu_read_lock();
- auditd_pid = auditd_conn.pid;
+ auditd_pid = auditd_pid_vnr();
/* only the current auditd can unregister itself */
if ((!new_pid) && (requesting_pid != auditd_pid)) {
- rcu_read_unlock();
audit_log_config_change("audit_pid", new_pid,
auditd_pid, 0);
return -EACCES;
}
/* replacing a healthy auditd is not allowed */
if (auditd_pid && new_pid) {
- rcu_read_unlock();
audit_log_config_change("audit_pid", new_pid,
auditd_pid, 0);
return -EEXIST;
}
- rcu_read_unlock();
-
- if (audit_enabled != AUDIT_OFF)
- audit_log_config_change("audit_pid", new_pid,
- auditd_pid, 1);
if (new_pid) {
/* register a new auditd connection */
- auditd_set(new_pid,
- NETLINK_CB(skb).portid,
- sock_net(NETLINK_CB(skb).sk));
+ err = auditd_set(new_pid,
+ NETLINK_CB(skb).portid,
+ sock_net(NETLINK_CB(skb).sk));
+ if (audit_enabled != AUDIT_OFF)
+ audit_log_config_change("audit_pid",
+ new_pid,
+ auditd_pid,
+ err ? 0 : 1);
+ if (err)
+ return err;
+
/* try to process any backlog */
wake_up_interruptible(&kauditd_wait);
- } else
+ } else {
+ if (audit_enabled != AUDIT_OFF)
+ audit_log_config_change("audit_pid",
+ new_pid,
+ auditd_pid, 1);
+
/* unregister the auditd connection */
auditd_reset();
+ }
}
if (s.mask & AUDIT_STATUS_RATE_LIMIT) {
err = audit_set_rate_limit(s.rate_limit);
@@ -1447,10 +1512,11 @@ static void __net_exit audit_net_exit(st
{
struct audit_net *aunet = net_generic(net, audit_net_id);
- rcu_read_lock();
- if (net == auditd_conn.net)
- auditd_reset();
- rcu_read_unlock();
+ /* NOTE: you would think that we would want to check the auditd
+ * connection and potentially reset it here if it lives in this
+ * namespace, but since the auditd connection tracking struct holds a
+ * reference to this namespace (see auditd_set()) we are only ever
+ * going to get here after that connection has been released */
netlink_kernel_release(aunet->sk);
}
@@ -1470,9 +1536,6 @@ static int __init audit_init(void)
if (audit_initialized == AUDIT_DISABLED)
return 0;
- memset(&auditd_conn, 0, sizeof(auditd_conn));
- spin_lock_init(&auditd_conn.lock);
-
skb_queue_head_init(&audit_queue);
skb_queue_head_init(&audit_retry_queue);
skb_queue_head_init(&audit_hold_queue);
next prev parent reply other threads:[~2017-06-12 15:33 UTC|newest]
Thread overview: 152+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-12 15:23 [PATCH 4.11 000/150] 4.11.5-stable review Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 001/150] bnx2x: Fix Multi-Cos Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 002/150] net: bridge: start hello timer only if device is up Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 003/150] vxlan: eliminate cached dst leak Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 004/150] net: systemport: Fix missing Wake-on-LAN interrupt for SYSTEMPORT Lite Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 005/150] ipv6: xfrm: Handle errors reported by xfrm6_find_1stfragopt() Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 006/150] cxgb4: avoid enabling napi twice to the same queue Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 007/150] tcp: disallow cwnd undo when switching congestion control Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 008/150] vxlan: fix use-after-free on deletion Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 009/150] ip6_tunnel: fix traffic class routing for tunnels Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 010/150] sock: reset sk_err when the error queue is empty Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 011/150] geneve: fix needed_headroom and max_mtu for collect_metadata Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 012/150] ipv6: Fix leak in ipv6_gso_segment() Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 013/150] net: dsa: Fix stale cpu_switch reference after unbind then bind Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 014/150] net: ping: do not abuse udp_poll() Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 015/150] net/ipv6: Fix CALIPSO causing GPF with datagram support Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 016/150] ravb: Fix use-after-free on `ifconfig eth0 down` Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 017/150] net: bridge: fix a null pointer dereference in br_afspec Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 018/150] net: ethoc: enable NAPI before poll may be scheduled Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 019/150] net: stmmac: fix completely hung TX when using TSO Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 020/150] sparc64: Add __multi3 for gcc 7.x and later Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 021/150] sparc64: mm: fix copy_tsb to correctly copy huge page TSBs Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 022/150] sparc: Machine description indices can vary Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 023/150] sparc/mm/hugepages: Fix setup_hugepagesz for invalid values Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 024/150] sparc64: reset mm cpumask after wrap Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 025/150] sparc64: combine activate_mm and switch_mm Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 026/150] sparc64: redefine first version Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 027/150] sparc64: add per-cpu mm of secondary contexts Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 028/150] sparc64: new context wrap Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 029/150] sparc64: delete old wrap code Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 030/150] arch/sparc: support NR_CPUS = 4096 Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 031/150] ftrace: Fix memory leak in ftrace_graph_release() Greg Kroah-Hartman
2017-06-12 15:23 ` [PATCH 4.11 032/150] serial: exar: Fix stuck MSIs Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 033/150] serial: ifx6x60: fix use-after-free on module unload Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 034/150] serial: core: fix crash in uart_suspend_port Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 035/150] ptrace: Properly initialize ptracer_cred on fork Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 036/150] ARM: dts: keystone-k2l: fix broken Ethernet due to disabled OSR Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 037/150] crypto: asymmetric_keys - handle EBUSY due to backlog correctly Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 038/150] KEYS: fix dereferencing NULL payload with nonzero length Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 039/150] KEYS: fix freeing uninitialized memory in key_update() Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 040/150] KEYS: encrypted: avoid encrypting/decrypting stack buffers Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 041/150] crypto: drbg - wait for crypto op not signal safe Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 042/150] crypto: gcm " Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 043/150] ovl: fix creds leak in copy up error path Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 044/150] kthread: Fix use-after-free if kthread fork fails Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 046/150] nfsd4: fix null dereference on replay Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 047/150] gfs2: Make flush bios explicitely sync Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 048/150] efi: Dont issue error message when booted under Xen Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 049/150] efi/bgrt: Skip efi_bgrt_init() in case of non-EFI boot Greg Kroah-Hartman
2017-06-14 23:34 ` Maniaxx
2017-06-15 7:17 ` Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 052/150] arm64: KVM: Preserve RES1 bits in SCTLR_EL2 Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 053/150] arm64: KVM: Allow unaligned accesses at EL2 Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 054/150] arm: KVM: Allow unaligned accesses at HYP Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 056/150] dmaengine: usb-dmac: Fix DMAOR AE bit definition Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 057/150] dmaengine: ep93xx: Always start from BASE0 Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 058/150] dmaengine: ep93xx: Dont drain the transfers in terminate_all() Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 059/150] dmaengine: mv_xor_v2: handle mv_xor_v2_prep_sw_desc() error properly Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 060/150] dmaengine: mv_xor_v2: properly handle wrapping in the array of HW descriptors Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 061/150] dmaengine: mv_xor_v2: do not use descriptors not acked by async_tx Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 062/150] dmaengine: mv_xor_v2: enable XOR engine after its configuration Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 063/150] dmaengine: mv_xor_v2: fix tx_submit() implementation Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 064/150] dmaengine: mv_xor_v2: remove interrupt coalescing Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 065/150] dmaengine: mv_xor_v2: set DMA mask to 40 bits Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 066/150] cfq-iosched: fix the delay of cfq_groups vdisktime under iops mode Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 067/150] reiserfs: Make flush bios explicitely sync Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 068/150] mtd: nand: tango: Export OF device ID table as module aliases Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 069/150] mtd: nand: tango: Update ecc_stats.corrected Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 070/150] xen/privcmd: Support correctly 64KB page granularity when mapping memory Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 071/150] ext4: fix SEEK_HOLE Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 072/150] ext4: keep existing extra fields when inode expands Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 073/150] ext4: fix data corruption with EXT4_GET_BLOCKS_ZERO Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 074/150] ext4: fix fdatasync(2) after extent manipulation operations Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 076/150] usb: gadget: f_mass_storage: Serialize wake and sleep execution Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 077/150] usb: musb: dsps: keep VBUS on for host-only mode Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 078/150] usb: chipidea: imx: Do not access CLKONOFF on i.MX51 Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 079/150] usb: chipidea: udc: fix NULL pointer dereference if udc_start failed Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 080/150] usb: chipidea: debug: check before accessing ci_role Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 081/150] staging/lustre/lov: remove set_fs() call from lov_getstripe() Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 082/150] iio: adc: bcm_iproc_adc: swap primary and secondary isr handlers Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 083/150] iio: light: ltr501 Fix interchanged als/ps register field Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 084/150] iio: trigger: fix NULL pointer dereference in iio_trigger_write_current() Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 085/150] iio: proximity: as3935: fix AS3935_INT mask Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 086/150] iio: proximity: as3935: fix iio_trigger_poll issue Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 087/150] block: Avoid that blk_exit_rl() triggers a use-after-free Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 088/150] mei: make sysfs modalias format similar as uevent modalias Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 089/150] random: invalidate batched entropy after crng init Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 090/150] cpufreq: cpufreq_register_driver() should return -ENODEV if init fails Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 091/150] target: Re-add check to reject control WRITEs with overflow data Greg Kroah-Hartman
2017-06-12 15:24 ` [PATCH 4.11 092/150] drm/msm: Expose our reservation object when exporting a dmabuf Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 093/150] drm/msm/mdp5: use __drm_atomic_helper_plane_duplicate_state() Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 094/150] ahci: Acer SA5-271 SSD Not Detected Fix Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 095/150] [media] rc-core: race condition during ir_raw_event_register() Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 096/150] cgroup: Prevent kill_css() from being called more than once Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 097/150] Input: elantech - add Fujitsu Lifebook E546/E557 to force crc_enabled Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 098/150] cpuset: consider dying css as offline Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 099/150] ufs: restore proper tail allocation Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 100/150] fix ufs_isblockset() Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 101/150] ufs: restore maintaining ->i_blocks Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 102/150] ufs: set correct ->s_maxsize Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 103/150] ufs_extend_tail(): fix the braino in calling conventions of ufs_new_fragments() Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 104/150] ufs_getfrag_block(): we only grab ->truncate_mutex on block creation path Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 105/150] excessive checks in ufs_write_failed() and ufs_evict_inode() Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 106/150] cxl: Fix error path on bad ioctl Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 107/150] cxl: Avoid double free_irq() for psl,slice interrupts Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 108/150] btrfs: use correct types for page indices in btrfs_page_exists_in_range Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 109/150] btrfs: fix memory leak in update_space_info failure path Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 110/150] btrfs: fix race with relocation recovery and fs_root setup Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 111/150] Btrfs: fix delalloc accounting leak caused by u32 overflow Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 112/150] KVM: arm/arm64: Handle possible NULL stage2 pud when ageing pages Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 113/150] scsi: qla2xxx: dont disable a not previously enabled PCI device Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 114/150] scsi: qla2xxx: Fix recursive loop during target mode configuration for ISP25XX leaving system unresponsive Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 115/150] scsi: qla2xxx: Fix crash due to mismatch mumber of Q-pair creation for Multi queue Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 116/150] scsi: qla2xxx: Fix NULL pointer access due to redundant fc_host_port_name call Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 117/150] scsi: qla2xxx: Modify T262 FW dump template to specify same start/end to debug customer issues Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 118/150] scsi: qla2xxx: Set bit 15 for DIAG_ECHO_TEST MBC Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 119/150] scsi: qla2xxx: Fix mailbox pointer error in fwdump capture Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 120/150] powerpc/sysdev/simple_gpio: Fix oops in gpio save_regs function Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 121/150] powerpc/numa: Fix percpu allocations to be NUMA aware Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 122/150] powerpc/hotplug-mem: Fix missing endian conversion of aa_index Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 123/150] powerpc/kernel: Fix FP and vector register restoration Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 124/150] powerpc/kernel: Initialize load_tm on task creation Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 125/150] Revert "ata: sata_mv: Convert to devm_ioremap_resource()" Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 126/150] perf/core: Drop kernel samples even though :u is specified Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 127/150] srcu: Allow use of Classic SRCU from both process and interrupt context Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 128/150] net: qcom/emac: do not use hardware mdio automatic polling Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 129/150] drm/vmwgfx: Handle vmalloc() failure in vmw_local_fifo_reserve() Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 130/150] drm/vmwgfx: limit the number of mip levels in vmw_gb_surface_define_ioctl() Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 131/150] drm/vmwgfx: Make sure backup_handle is always valid Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 132/150] x86/microcode/intel: Clear patch pointer before jettisoning the initrd Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 133/150] drm/nouveau/tmr: fully separate alarm execution/pending lists Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 134/150] ALSA: timer: Fix race between read and ioctl Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 135/150] ALSA: timer: Fix missing queue indices reset at SNDRV_TIMER_IOCTL_SELECT Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 136/150] ASoC: Fix use-after-free at card unregistration Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 137/150] cpu/hotplug: Drop the device lock on error Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 138/150] drivers: char: mem: Fix wraparound check to allow mappings up to the end Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 141/150] serial: sh-sci: Fix panic when serial console and DMA are enabled Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 142/150] pinctrl: cherryview: Add terminate entry for dmi_system_id tables Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 143/150] cgroup: mark cgroup_get() with __maybe_unused Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 144/150] iomap_dio_rw: Prevent reading file data beyond iomap_dio->i_size Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 145/150] tracing: Use strlcpy() instead of strcpy() in __trace_find_cmdline() Greg Kroah-Hartman
2017-06-12 15:37 ` Steven Rostedt
2017-06-12 16:05 ` Greg Kroah-Hartman
2017-06-12 16:25 ` Steven Rostedt
2017-06-13 7:28 ` Greg Kroah-Hartman
2017-06-12 15:25 ` [PATCH 4.11 146/150] hwmon: (coretemp) Handle frozen hotplug state correctly Greg Kroah-Hartman
2017-06-12 15:25 ` Greg Kroah-Hartman [this message]
2017-06-12 15:25 ` [PATCH 4.11 150/150] netfilter: nft_set_rbtree: handle element re-addition after deletion Greg Kroah-Hartman
2017-06-12 22:03 ` [PATCH 4.11 000/150] 4.11.5-stable review Guenter Roeck
2017-06-13 7:23 ` Greg Kroah-Hartman
2017-06-13 0:12 ` Shuah Khan
2017-06-13 7:24 ` 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=20170612152526.230286110@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=paul@paul-moore.com \
--cc=stable@vger.kernel.org \
--cc=xiyou.wangcong@gmail.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
Powered by JetHome