From: Willy Tarreau <w@1wt.eu>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org, linux@roeck-us.net
Cc: Benjamin Block <bblock@linux.vnet.ibm.com>,
Steffen Maier <maier@linux.vnet.ibm.com>,
"Martin K . Petersen" <martin.petersen@oracle.com>,
Willy Tarreau <w@1wt.eu>
Subject: [PATCH 3.10 031/250] scsi: zfcp: fix use-after-"free" in FC ingress path after TMF
Date: Thu, 8 Jun 2017 00:56:57 +0200 [thread overview]
Message-ID: <1496876436-32402-32-git-send-email-w@1wt.eu> (raw)
In-Reply-To: <1496876436-32402-1-git-send-email-w@1wt.eu>
From: Benjamin Block <bblock@linux.vnet.ibm.com>
commit dac37e15b7d511e026a9313c8c46794c144103cd upstream.
When SCSI EH invokes zFCP's callbacks for eh_device_reset_handler() and
eh_target_reset_handler(), it expects us to relent the ownership over
the given scsi_cmnd and all other scsi_cmnds within the same scope - LUN
or target - when returning with SUCCESS from the callback ('release'
them). SCSI EH can then reuse those commands.
We did not follow this rule to release commands upon SUCCESS; and if
later a reply arrived for one of those supposed to be released commands,
we would still make use of the scsi_cmnd in our ingress tasklet. This
will at least result in undefined behavior or a kernel panic because of
a wrong kernel pointer dereference.
To fix this, we NULLify all pointers to scsi_cmnds (struct zfcp_fsf_req
*)->data in the matching scope if a TMF was successful. This is done
under the locks (struct zfcp_adapter *)->abort_lock and (struct
zfcp_reqlist *)->lock to prevent the requests from being removed from
the request-hashtable, and the ingress tasklet from making use of the
scsi_cmnd-pointer in zfcp_fsf_fcp_cmnd_handler().
For cases where a reply arrives during SCSI EH, but before we get a
chance to NULLify the pointer - but before we return from the callback
-, we assume that the code is protected from races via the CAS operation
in blk_complete_request() that is called in scsi_done().
The following stacktrace shows an example for a crash resulting from the
previous behavior:
Unable to handle kernel pointer dereference at virtual kernel address fffffee17a672000
Oops: 0038 [#1] SMP
CPU: 2 PID: 0 Comm: swapper/2 Not tainted
task: 00000003f7ff5be0 ti: 00000003f3d38000 task.ti: 00000003f3d38000
Krnl PSW : 0404d00180000000 00000000001156b0 (smp_vcpu_scheduled+0x18/0x40)
R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:3 CC:1 PM:0 EA:3
Krnl GPRS: 000000200000007e 0000000000000000 fffffee17a671fd8 0000000300000015
ffffffff80000000 00000000005dfde8 07000003f7f80e00 000000004fa4e800
000000036ce8d8f8 000000036ce8d9c0 00000003ece8fe00 ffffffff969c9e93
00000003fffffffd 000000036ce8da10 00000000003bf134 00000003f3b07918
Krnl Code: 00000000001156a2: a7190000 lghi %r1,0
00000000001156a6: a7380015 lhi %r3,21
#00000000001156aa: e32050000008 ag %r2,0(%r5)
>00000000001156b0: 482022b0 lh %r2,688(%r2)
00000000001156b4: ae123000 sigp %r1,%r2,0(%r3)
00000000001156b8: b2220020 ipm %r2
00000000001156bc: 8820001c srl %r2,28
00000000001156c0: c02700000001 xilf %r2,1
Call Trace:
([<0000000000000000>] 0x0)
[<000003ff807bdb8e>] zfcp_fsf_fcp_cmnd_handler+0x3de/0x490 [zfcp]
[<000003ff807be30a>] zfcp_fsf_req_complete+0x252/0x800 [zfcp]
[<000003ff807c0a48>] zfcp_fsf_reqid_check+0xe8/0x190 [zfcp]
[<000003ff807c194e>] zfcp_qdio_int_resp+0x66/0x188 [zfcp]
[<000003ff80440c64>] qdio_kick_handler+0xdc/0x310 [qdio]
[<000003ff804463d0>] __tiqdio_inbound_processing+0xf8/0xcd8 [qdio]
[<0000000000141fd4>] tasklet_action+0x9c/0x170
[<0000000000141550>] __do_softirq+0xe8/0x258
[<000000000010ce0a>] do_softirq+0xba/0xc0
[<000000000014187c>] irq_exit+0xc4/0xe8
[<000000000046b526>] do_IRQ+0x146/0x1d8
[<00000000005d6a3c>] io_return+0x0/0x8
[<00000000005d6422>] vtime_stop_cpu+0x4a/0xa0
([<0000000000000000>] 0x0)
[<0000000000103d8a>] arch_cpu_idle+0xa2/0xb0
[<0000000000197f94>] cpu_startup_entry+0x13c/0x1f8
[<0000000000114782>] smp_start_secondary+0xda/0xe8
[<00000000005d6efe>] restart_int_handler+0x56/0x6c
[<0000000000000000>] 0x0
Last Breaking-Event-Address:
[<00000000003bf12e>] arch_spin_lock_wait+0x56/0xb0
Suggested-by: Steffen Maier <maier@linux.vnet.ibm.com>
Signed-off-by: Benjamin Block <bblock@linux.vnet.ibm.com>
Fixes: ea127f9754 ("[PATCH] s390 (7/7): zfcp host adapter.") (tglx/history.git)
Signed-off-by: Steffen Maier <maier@linux.vnet.ibm.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Willy Tarreau <w@1wt.eu>
---
drivers/s390/scsi/zfcp_dbf.h | 11 ++++++++
drivers/s390/scsi/zfcp_reqlist.h | 30 ++++++++++++++++++++-
drivers/s390/scsi/zfcp_scsi.c | 57 ++++++++++++++++++++++++++++++++++++++--
3 files changed, 95 insertions(+), 3 deletions(-)
diff --git a/drivers/s390/scsi/zfcp_dbf.h b/drivers/s390/scsi/zfcp_dbf.h
index 440aa61..e7839ec 100644
--- a/drivers/s390/scsi/zfcp_dbf.h
+++ b/drivers/s390/scsi/zfcp_dbf.h
@@ -388,4 +388,15 @@ void zfcp_dbf_scsi_devreset(char *tag, struct scsi_cmnd *scmnd, u8 flag)
_zfcp_dbf_scsi(tmp_tag, 1, scmnd, NULL);
}
+/**
+ * zfcp_dbf_scsi_nullcmnd() - trace NULLify of SCSI command in dev/tgt-reset.
+ * @scmnd: SCSI command that was NULLified.
+ * @fsf_req: request that owned @scmnd.
+ */
+static inline void zfcp_dbf_scsi_nullcmnd(struct scsi_cmnd *scmnd,
+ struct zfcp_fsf_req *fsf_req)
+{
+ _zfcp_dbf_scsi("scfc__1", 3, scmnd, fsf_req);
+}
+
#endif /* ZFCP_DBF_H */
diff --git a/drivers/s390/scsi/zfcp_reqlist.h b/drivers/s390/scsi/zfcp_reqlist.h
index 7c2c619..703fce5 100644
--- a/drivers/s390/scsi/zfcp_reqlist.h
+++ b/drivers/s390/scsi/zfcp_reqlist.h
@@ -4,7 +4,7 @@
* Data structure and helper functions for tracking pending FSF
* requests.
*
- * Copyright IBM Corp. 2009
+ * Copyright IBM Corp. 2009, 2016
*/
#ifndef ZFCP_REQLIST_H
@@ -180,4 +180,32 @@ static inline void zfcp_reqlist_move(struct zfcp_reqlist *rl,
spin_unlock_irqrestore(&rl->lock, flags);
}
+/**
+ * zfcp_reqlist_apply_for_all() - apply a function to every request.
+ * @rl: the requestlist that contains the target requests.
+ * @f: the function to apply to each request; the first parameter of the
+ * function will be the target-request; the second parameter is the same
+ * pointer as given with the argument @data.
+ * @data: freely chosen argument; passed through to @f as second parameter.
+ *
+ * Uses :c:macro:`list_for_each_entry` to iterate over the lists in the hash-
+ * table (not a 'safe' variant, so don't modify the list).
+ *
+ * Holds @rl->lock over the entire request-iteration.
+ */
+static inline void
+zfcp_reqlist_apply_for_all(struct zfcp_reqlist *rl,
+ void (*f)(struct zfcp_fsf_req *, void *), void *data)
+{
+ struct zfcp_fsf_req *req;
+ unsigned long flags;
+ unsigned int i;
+
+ spin_lock_irqsave(&rl->lock, flags);
+ for (i = 0; i < ZFCP_REQ_LIST_BUCKETS; i++)
+ list_for_each_entry(req, &rl->buckets[i], list)
+ f(req, data);
+ spin_unlock_irqrestore(&rl->lock, flags);
+}
+
#endif /* ZFCP_REQLIST_H */
diff --git a/drivers/s390/scsi/zfcp_scsi.c b/drivers/s390/scsi/zfcp_scsi.c
index 38ee0df..0bbc2a9 100644
--- a/drivers/s390/scsi/zfcp_scsi.c
+++ b/drivers/s390/scsi/zfcp_scsi.c
@@ -3,7 +3,7 @@
*
* Interface to Linux SCSI midlayer.
*
- * Copyright IBM Corp. 2002, 2015
+ * Copyright IBM Corp. 2002, 2016
*/
#define KMSG_COMPONENT "zfcp"
@@ -230,6 +230,57 @@ static int zfcp_scsi_eh_abort_handler(struct scsi_cmnd *scpnt)
return retval;
}
+struct zfcp_scsi_req_filter {
+ u8 tmf_scope;
+ u32 lun_handle;
+ u32 port_handle;
+};
+
+static void zfcp_scsi_forget_cmnd(struct zfcp_fsf_req *old_req, void *data)
+{
+ struct zfcp_scsi_req_filter *filter =
+ (struct zfcp_scsi_req_filter *)data;
+
+ /* already aborted - prevent side-effects - or not a SCSI command */
+ if (old_req->data == NULL || old_req->fsf_command != FSF_QTCB_FCP_CMND)
+ return;
+
+ /* (tmf_scope == FCP_TMF_TGT_RESET || tmf_scope == FCP_TMF_LUN_RESET) */
+ if (old_req->qtcb->header.port_handle != filter->port_handle)
+ return;
+
+ if (filter->tmf_scope == FCP_TMF_LUN_RESET &&
+ old_req->qtcb->header.lun_handle != filter->lun_handle)
+ return;
+
+ zfcp_dbf_scsi_nullcmnd((struct scsi_cmnd *)old_req->data, old_req);
+ old_req->data = NULL;
+}
+
+static void zfcp_scsi_forget_cmnds(struct zfcp_scsi_dev *zsdev, u8 tm_flags)
+{
+ struct zfcp_adapter *adapter = zsdev->port->adapter;
+ struct zfcp_scsi_req_filter filter = {
+ .tmf_scope = FCP_TMF_TGT_RESET,
+ .port_handle = zsdev->port->handle,
+ };
+ unsigned long flags;
+
+ if (tm_flags == FCP_TMF_LUN_RESET) {
+ filter.tmf_scope = FCP_TMF_LUN_RESET;
+ filter.lun_handle = zsdev->lun_handle;
+ }
+
+ /*
+ * abort_lock secures against other processings - in the abort-function
+ * and normal cmnd-handler - of (struct zfcp_fsf_req *)->data
+ */
+ write_lock_irqsave(&adapter->abort_lock, flags);
+ zfcp_reqlist_apply_for_all(adapter->req_list, zfcp_scsi_forget_cmnd,
+ &filter);
+ write_unlock_irqrestore(&adapter->abort_lock, flags);
+}
+
static int zfcp_task_mgmt_function(struct scsi_cmnd *scpnt, u8 tm_flags)
{
struct zfcp_scsi_dev *zfcp_sdev = sdev_to_zfcp(scpnt->device);
@@ -262,8 +313,10 @@ static int zfcp_task_mgmt_function(struct scsi_cmnd *scpnt, u8 tm_flags)
if (fsf_req->status & ZFCP_STATUS_FSFREQ_TMFUNCFAILED) {
zfcp_dbf_scsi_devreset("fail", scpnt, tm_flags);
retval = FAILED;
- } else
+ } else {
zfcp_dbf_scsi_devreset("okay", scpnt, tm_flags);
+ zfcp_scsi_forget_cmnds(zfcp_sdev, tm_flags);
+ }
zfcp_fsf_req_free(fsf_req);
return retval;
--
2.8.0.rc2.1.gbe9624a
next prev parent reply other threads:[~2017-06-07 23:02 UTC|newest]
Thread overview: 254+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-07 22:56 [PATCH 3.10 000/250] 3.10.106-stable review Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 001/250] packet: fix race condition in packet_set_ring Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 002/250] crypto: crypto_memneq - add equality testing of memory regions w/o timing leaks Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 003/250] EVM: Use crypto_memneq() for digest comparisons Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 004/250] libceph: don't set weight to IN when OSD is destroyed Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 005/250] KVM: x86: fix emulation of "MOV SS, null selector" Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 006/250] KVM: x86: Introduce segmented_write_std Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 007/250] posix_acl: Clear SGID bit when setting file permissions Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 008/250] tmpfs: clear S_ISGID when setting posix ACLs Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 009/250] fbdev: color map copying bounds checking Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 010/250] selinux: fix off-by-one in setprocattr Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 011/250] tcp: avoid infinite loop in tcp_splice_read() Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 012/250] xfrm_user: validate XFRM_MSG_NEWAE XFRMA_REPLAY_ESN_VAL replay_window Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 013/250] xfrm_user: validate XFRM_MSG_NEWAE incoming ESN size harder Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 014/250] KEYS: Disallow keyrings beginning with '.' to be joined as session keyrings Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 015/250] KEYS: Change the name of the dead type to ".dead" to prevent user access Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 016/250] KEYS: fix keyctl_set_reqkey_keyring() to not leak thread keyrings Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 017/250] ext4: fix data exposure after a crash Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 018/250] locking/rtmutex: Prevent dequeue vs. unlock race Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 019/250] m68k: Fix ndelay() macro Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 020/250] hotplug: Make register and unregister notifier API symmetric Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 021/250] Btrfs: fix tree search logic when replaying directory entry deletes Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 022/250] USB: serial: kl5kusb105: fix open error path Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 023/250] block_dev: don't test bdev->bd_contains when it is not stable Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 024/250] crypto: caam - fix AEAD givenc descriptors Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 025/250] ext4: fix mballoc breakage with 64k block size Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 026/250] ext4: fix stack memory corruption " Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 027/250] ext4: reject inodes with negative size Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 028/250] ext4: return -ENOMEM instead of success Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 029/250] f2fs: set ->owner for debugfs status file's file_operations Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 030/250] block: protect iterate_bdevs() against concurrent close Willy Tarreau
2017-06-07 22:56 ` Willy Tarreau [this message]
2017-06-07 22:56 ` [PATCH 3.10 032/250] scsi: zfcp: do not trace pure benign residual HBA responses at default level Willy Tarreau
2017-06-07 22:56 ` [PATCH 3.10 033/250] scsi: zfcp: fix rport unblock race with LUN recovery Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 034/250] ftrace/x86_32: Set ftrace_stub to weak to prevent gcc from using short jumps to it Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 035/250] IB/mad: Fix an array index check Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 036/250] IB/multicast: Check ib_find_pkey() return value Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 037/250] powerpc: Convert cmp to cmpd in idle enter sequence Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 038/250] usb: gadget: composite: Test get_alt() presence instead of set_alt() Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 039/250] USB: serial: omninet: fix NULL-derefs at open and disconnect Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 040/250] USB: serial: quatech2: fix sleep-while-atomic in close Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 041/250] USB: serial: pl2303: fix NULL-deref at open Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 042/250] USB: serial: keyspan_pda: verify endpoints at probe Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 043/250] USB: serial: spcp8x5: fix NULL-deref at open Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 044/250] USB: serial: io_ti: " Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 045/250] USB: serial: io_ti: fix another " Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 046/250] USB: serial: iuu_phoenix: fix " Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 047/250] USB: serial: garmin_gps: fix memory leak on failed URB submit Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 048/250] USB: serial: ti_usb_3410_5052: fix NULL-deref at open Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 049/250] USB: serial: io_edgeport: " Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 050/250] USB: serial: oti6858: " Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 051/250] USB: serial: cyberjack: " Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 052/250] USB: serial: kobil_sct: fix NULL-deref in write Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 053/250] USB: serial: mos7840: fix NULL-deref at open Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 054/250] USB: serial: mos7720: " Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 055/250] USB: serial: mos7720: fix use-after-free on probe errors Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 056/250] USB: serial: mos7720: fix parport " Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 057/250] USB: serial: mos7720: fix parallel probe Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 058/250] usb: xhci-mem: use passed in GFP flags instead of GFP_KERNEL Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 059/250] usb: musb: Fix trying to free already-free IRQ 4 Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 060/250] ALSA: usb-audio: Fix bogus error return in snd_usb_create_stream() Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 061/250] USB: serial: kl5kusb105: abort on open exception path Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 062/250] staging: iio: ad7606: fix improper setting of oversampling pins Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 063/250] usb: dwc3: gadget: always unmap EP0 requests Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 064/250] cris: Only build flash rescue image if CONFIG_ETRAX_AXISFLASHMAP is selected Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 065/250] hwmon: (ds620) Fix overflows seen when writing temperature limits Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 066/250] clk: clk-wm831x: fix a logic error Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 067/250] iommu/amd: Fix the left value check of cmd buffer Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 068/250] scsi: mvsas: fix command_active typo Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 069/250] target/iscsi: Fix double free in lio_target_tiqn_addtpg() Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 070/250] mmc: mmc_test: Uninitialized return value Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 071/250] powerpc/pci/rpadlpar: Fix device reference leaks Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 072/250] ser_gigaset: return -ENOMEM on error instead of success Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 073/250] net, sched: fix soft lockup in tc_classify Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 074/250] net: stmmac: Fix race between stmmac_drv_probe and stmmac_open Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 075/250] gro: Enter slow-path if there is no tailroom Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 076/250] gro: use min_t() in skb_gro_reset_offset() Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 077/250] gro: Disable frag0 optimization on IPv6 ext headers Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 078/250] powerpc: Fix build warning on 32-bit PPC Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 079/250] Input: i8042 - add Pegatron touchpad to noloop table Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 080/250] mm/hugetlb.c: fix reservation race when freeing surplus pages Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 081/250] USB: serial: kl5kusb105: fix line-state error handling Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 082/250] USB: serial: ch341: fix initial modem-control state Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 083/250] USB: serial: ch341: fix open error handling Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 084/250] USB: serial: ch341: fix control-message " Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 085/250] USB: serial: ch341: fix open and resume after B0 Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 086/250] USB: serial: ch341: fix resume after reset Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 087/250] USB: serial: ch341: fix modem-control and B0 handling Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 088/250] x86/cpu: Fix bootup crashes by sanitizing the argument of the 'clearcpuid=' command-line option Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 089/250] NFSv4.1: nfs4_fl_prepare_ds must be careful about reporting success Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 090/250] powerpc/ibmebus: Fix further device reference leaks Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 091/250] powerpc/ibmebus: Fix device reference leaks in sysfs interface Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 092/250] IB/mlx4: Set traffic class in AH Willy Tarreau
2017-06-07 22:57 ` [PATCH 3.10 093/250] IB/mlx4: Fix port query for 56Gb Ethernet links Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 094/250] perf scripting: Avoid leaking the scripting_context variable Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 095/250] ARM: dts: imx31: fix clock control module interrupts description Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 096/250] svcrpc: don't leak contexts on PROC_DESTROY Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 097/250] mmc: mxs-mmc: Fix additional cycles after transmission stop Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 098/250] mtd: nand: xway: disable module support Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 099/250] ubifs: Fix journal replay wrt. xattr nodes Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 100/250] arm64/ptrace: Preserve previous registers for short regset write Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 101/250] arm64/ptrace: Avoid uninitialised struct padding in fpr_set() Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 102/250] arm64/ptrace: Reject attempts to set incomplete hardware breakpoint fields Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 103/250] ARM: ux500: fix prcmu_is_cpu_in_wfi() calculation Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 104/250] ite-cir: initialize use_demodulator before using it Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 105/250] fuse: do not use iocb after it may have been freed Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 106/250] crypto: caam - fix non-hmac hashes Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 107/250] drm/i915: Don't leak edid in intel_crt_detect_ddc() Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 108/250] s5k4ecgx: select CRC32 helper Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 109/250] platform/x86: intel_mid_powerbtn: Set IRQ_ONESHOT Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 110/250] net: fix harmonize_features() vs NETIF_F_HIGHDMA Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 111/250] tcp: initialize max window for a new fastopen socket Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 112/250] svcrpc: fix oops in absence of krb5 module Willy Tarreau
2017-06-08 8:19 ` Simo Sorce
2017-06-07 22:58 ` [PATCH 3.10 113/250] ARM: 8643/3: arm/ptrace: Preserve previous registers for short regset write Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 114/250] mac80211: Fix adding of mesh vendor IEs Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 115/250] scsi: zfcp: fix use-after-free by not tracing WKA port open/close on failed send Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 116/250] drm/i915: fix use-after-free in page_flip_completed() Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 117/250] net: use a work queue to defer net_disable_timestamp() work Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 118/250] ipv4: keep skb->dst around in presence of IP options Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 119/250] netlabel: out of bound access in cipso_v4_validate() Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 120/250] ip6_gre: fix ip6gre_err() invalid reads Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 121/250] ping: fix a null pointer dereference Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 122/250] l2tp: do not use udp_ioctl() Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 123/250] packet: fix races in fanout_add() Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 124/250] packet: Do not call fanout_release from atomic contexts Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 125/250] net: socket: fix recvmmsg not returning error from sock_error Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 126/250] USB: serial: mos7840: fix another NULL-deref at open Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 127/250] USB: serial: ftdi_sio: fix modem-status error handling Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 128/250] USB: serial: ftdi_sio: fix extreme low-latency setting Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 129/250] USB: serial: ftdi_sio: fix line-status over-reporting Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 130/250] USB: serial: spcp8x5: fix modem-status handling Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 131/250] USB: serial: opticon: fix CTS retrieval at open Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 132/250] USB: serial: ark3116: fix register-accessor error handling Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 133/250] x86/platform/goldfish: Prevent unconditional loading Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 134/250] goldfish: Sanitize the broken interrupt handler Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 135/250] ocfs2: do not write error flag to user structure we cannot copy from/to Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 136/250] mfd: pm8921: Potential NULL dereference in pm8921_remove() Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 137/250] drm/nv50/disp: min/max are reversed in nv50_crtc_gamma_set() Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 138/250] net: 6lowpan: fix lowpan_header_create non-compression memcpy call Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 139/250] vti4: Don't count header length twice Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 140/250] net/sched: em_meta: Fix 'meta vlan' to correctly recognize zero VID frames Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 141/250] MIPS: OCTEON: Fix copy_from_user fault handling for large buffers Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 142/250] MIPS: Clear ISA bit correctly in get_frame_info() Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 143/250] MIPS: Prevent unaligned accesses during stack unwinding Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 144/250] MIPS: Fix get_frame_info() handling of microMIPS function size Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 145/250] MIPS: Fix is_jump_ins() handling of 16b microMIPS instructions Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 146/250] MIPS: Calculate microMIPS ra properly when unwinding the stack Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 147/250] MIPS: Handle microMIPS jumps in the same way as MIPS32/MIPS64 jumps Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 148/250] uvcvideo: Fix a wrong macro Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 149/250] scsi: aacraid: Reorder Adapter status check Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 150/250] ath9k: use correct OTP register offsets for the AR9340 and AR9550 Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 151/250] fuse: add missing FR_FORCE Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 152/250] RDMA/core: Fix incorrect structure packing for booleans Willy Tarreau
2017-06-07 22:58 ` [PATCH 3.10 153/250] NFSv4: fix getacl head length estimation Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 154/250] s390/qdio: clear DSCI prior to scanning multiple input queues Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 155/250] IB/ipoib: Fix deadlock between rmmod and set_mode Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 156/250] ktest: Fix child exit code processing Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 157/250] nlm: Ensure callback code also checks that the files match Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 158/250] dm: flush queued bios when process blocks to avoid deadlock Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 159/250] USB: serial: digi_acceleport: fix OOB data sanity check Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 160/250] USB: serial: digi_acceleport: fix OOB-event processing Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 161/250] MIPS: ip27: Disable qlge driver in defconfig Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 162/250] tracing: Add #undef to fix compile error Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 163/250] USB: serial: safe_serial: fix information leak in completion handler Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 164/250] USB: serial: omninet: fix reference leaks at open Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 165/250] USB: iowarrior: fix NULL-deref at probe Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 166/250] USB: iowarrior: fix NULL-deref in write Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 167/250] USB: serial: io_ti: fix NULL-deref in interrupt callback Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 168/250] USB: serial: io_ti: fix information leak in completion handler Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 169/250] vxlan: correctly validate VXLAN ID against VXLAN_N_VID Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 170/250] ipv4: mask tos for input route Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 171/250] locking/static_keys: Add static_key_{en,dis}able() helpers Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 172/250] net: net_enable_timestamp() can be called from irq contexts Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 173/250] dccp/tcp: fix routing redirect race Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 174/250] net sched actions: decrement module reference count after table flush Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 175/250] perf/core: Fix event inheritance on fork() Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 176/250] isdn/gigaset: fix NULL-deref at probe Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 177/250] xen: do not re-use pirq number cached in pci device msi msg data Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 178/250] net: properly release sk_frag.page Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 179/250] net: unix: properly re-increment inflight counter of GC discarded candidates Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 180/250] Input: ims-pcu - validate number of endpoints before using them Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 181/250] Input: hanwang " Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 182/250] Input: yealink " Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 183/250] Input: cm109 " Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 184/250] USB: uss720: fix NULL-deref at probe Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 185/250] USB: idmouse: " Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 186/250] USB: wusbcore: " Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 187/250] uwb: i1480-dfu: " Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 188/250] uwb: hwa-rc: " Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 189/250] mmc: ushc: " Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 190/250] ext4: mark inode dirty after converting inline directory Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 191/250] scsi: libsas: fix ata xfer length Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 192/250] ALSA: ctxfi: Fallback DMA mask to 32bit Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 193/250] ALSA: ctxfi: Fix the incorrect check of dma_set_mask() call Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 194/250] ACPI / PNP: Avoid conflicting resource reservations Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 195/250] ACPI / resources: free memory on error in add_region_before() Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 196/250] ACPI / PNP: Reserve ACPI resources at the fs_initcall_sync stage Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 197/250] USB: OHCI: Fix race between ED unlink and URB submission Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 198/250] i2c: at91: manage unexpected RXRDY flag when starting a transfer Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 199/250] ipv4: igmp: Allow removing groups from a removed interface Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 200/250] ptrace: fix PTRACE_LISTEN race corrupting task->state Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 201/250] ring-buffer: Fix return value check in test_ringbuffer() Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 202/250] metag/usercopy: Fix alignment error checking Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 203/250] metag/usercopy: Add early abort to copy_to_user Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 204/250] metag/usercopy: Set flags before ADDZ Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 205/250] metag/usercopy: Fix src fixup in from user rapf loops Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 206/250] metag/usercopy: Add missing fixups Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 207/250] s390/decompressor: fix initrd corruption caused by bss clear Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 208/250] net/mlx4_en: Fix bad WQE issue Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 209/250] net/mlx4_core: Fix racy CQ (Completion Queue) free Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 210/250] char: Drop bogus dependency of DEVPORT on !M68K Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 211/250] powerpc: Disable HFSCR[TM] if TM is not supported Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 212/250] pegasus: Use heap buffers for all register access Willy Tarreau
2017-06-07 22:59 ` [PATCH 3.10 213/250] rtl8150: " Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 214/250] tracing: Allocate the snapshot buffer before enabling probe Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 215/250] ring-buffer: Have ring_buffer_iter_empty() return true when empty Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 216/250] netfilter: arp_tables: fix invoking 32bit "iptable -P INPUT ACCEPT" failed in 64bit kernel Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 217/250] net: phy: handle state correctly in phy_stop_machine Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 218/250] l2tp: take reference on sessions being dumped Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 219/250] MIPS: KGDB: Use kernel context for sleeping threads Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 220/250] ARM: dts: imx31: move CCM device node to AIPS2 bus devices Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 221/250] ARM: dts: imx31: fix AVIC base address Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 222/250] tun: Fix TUN_PKT_STRIP setting Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 223/250] Staging: vt6655-6: potential NULL dereference in hostap_disable_hostapd() Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 224/250] net: sctp: rework multihoming retransmission path selection to rfc4960 Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 225/250] perf trace: Use the syscall raw_syscalls:sys_enter timestamp Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 226/250] USB: usbtmc: add missing endpoint sanity check Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 227/250] ping: implement proper locking Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 228/250] USB: fix problems with duplicate endpoint addresses Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 229/250] USB: dummy-hcd: fix bug in stop_activity (handle ep0) Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 230/250] mm/init: fix zone boundary creation Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 231/250] can: Fix kernel panic at security_sock_rcv_skb Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 232/250] Drivers: hv: avoid vfree() on crash Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 233/250] xc2028: avoid use after free Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 234/250] xc2028: unlock on error in xc2028_set_config() Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 235/250] xc2028: Fix use-after-free bug properly Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 236/250] ipv6: fix ip6_tnl_parse_tlv_enc_lim() Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 237/250] ipv6: pointer math error in ip6_tnl_parse_tlv_enc_lim() Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 238/250] ipv6: fix the use of pcpu_tstats in ip6_tunnel Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 239/250] sctp: avoid BUG_ON on sctp_wait_for_sndbuf Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 240/250] sctp: deny peeloff operation on asocs with threads sleeping on it Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 241/250] KVM: x86: clear bus pointer when destroyed Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 242/250] kvm: exclude ioeventfd from counting kvm_io_range limit Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 243/250] KVM: kvm_io_bus_unregister_dev() should never fail Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 244/250] TTY: n_hdlc, fix lockdep false positive Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 245/250] tty: n_hdlc: get rid of racy n_hdlc.tbuf Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 246/250] ipv6: handle -EFAULT from skb_copy_bits Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 247/250] fs: exec: apply CLOEXEC before changing dumpable task flags Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 248/250] mm/huge_memory.c: respect FOLL_FORCE/FOLL_COW for thp Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 249/250] dccp/tcp: do not inherit mc_list from parent Willy Tarreau
2017-06-07 23:00 ` [PATCH 3.10 250/250] char: lp: fix possible integer overflow in lp_setup() Willy Tarreau
2017-06-08 0:38 ` [PATCH 3.10 000/250] 3.10.106-stable review Guenter Roeck
2017-06-08 4:23 ` Willy Tarreau
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=1496876436-32402-32-git-send-email-w@1wt.eu \
--to=w@1wt.eu \
--cc=bblock@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=maier@linux.vnet.ibm.com \
--cc=martin.petersen@oracle.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
all inboxes | Powered by JetHome®