stable.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,
	Mitko Haralanov <mitko.haralanov@intel.com>,
	Mike Marciniszyn <mike.marciniszyn@intel.com>,
	"Michael J. Ruhl" <michael.j.ruhl@intel.com>,
	Dennis Dalessandro <dennis.dalessandro@intel.com>,
	Jason Gunthorpe <jgg@mellanox.com>
Subject: [PATCH 4.19 062/110] IB/hfi1: Eliminate races in the SDMA send error path
Date: Thu, 29 Nov 2018 15:12:33 +0100	[thread overview]
Message-ID: <20181129135923.760004612@linuxfoundation.org> (raw)
In-Reply-To: <20181129135921.231283053@linuxfoundation.org>

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

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

From: Michael J. Ruhl <michael.j.ruhl@intel.com>

commit a0e0cb82804a6a21d9067022c2dfdf80d11da429 upstream.

pq_update() can only be called in two places: from the completion
function when the complete (npkts) sequence of packets has been
submitted and processed, or from setup function if a subset of the
packets were submitted (i.e. the error path).

Currently both paths can call pq_update() if an error occurrs.  This
race will cause the n_req value to go negative, hanging file_close(),
or cause a crash by freeing the txlist more than once.

Several variables are used to determine SDMA send state.  Most of
these are unnecessary, and have code inspectible races between the
setup function and the completion function, in both the send path and
the error path.

The request 'status' value can be set by the setup or by the
completion function.  This is code inspectibly racy.  Since the status
is not needed in the completion code or by the caller it has been
removed.

The request 'done' value races between usage by the setup and the
completion function.  The completion function does not need this.
When the number of processed packets matches npkts, it is done.

The 'has_error' value races between usage of the setup and the
completion function.  This can cause incorrect error handling and leave
the n_req in an incorrect value (i.e. negative).

Simplify the code by removing all of the unneeded state checks and
variables.

Clean up iovs node when it is freed.

Eliminate race conditions in the error path:

If all packets are submitted, the completion handler will set the
completion status correctly (ok or aborted).

If all packets are not submitted, the caller must wait until the
submitted packets have completed, and then set the completion status.

These two change eliminate the race condition in the error path.

Reviewed-by: Mitko Haralanov <mitko.haralanov@intel.com>
Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Michael J. Ruhl <michael.j.ruhl@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/infiniband/hw/hfi1/user_sdma.c |   85 ++++++++++++++-------------------
 drivers/infiniband/hw/hfi1/user_sdma.h |    3 -
 2 files changed, 38 insertions(+), 50 deletions(-)

--- a/drivers/infiniband/hw/hfi1/user_sdma.c
+++ b/drivers/infiniband/hw/hfi1/user_sdma.c
@@ -328,7 +328,6 @@ int hfi1_user_sdma_process_request(struc
 	u8 opcode, sc, vl;
 	u16 pkey;
 	u32 slid;
-	int req_queued = 0;
 	u16 dlid;
 	u32 selector;
 
@@ -392,7 +391,6 @@ int hfi1_user_sdma_process_request(struc
 	req->data_len  = 0;
 	req->pq = pq;
 	req->cq = cq;
-	req->status = -1;
 	req->ahg_idx = -1;
 	req->iov_idx = 0;
 	req->sent = 0;
@@ -400,12 +398,14 @@ int hfi1_user_sdma_process_request(struc
 	req->seqcomp = 0;
 	req->seqsubmitted = 0;
 	req->tids = NULL;
-	req->done = 0;
 	req->has_error = 0;
 	INIT_LIST_HEAD(&req->txps);
 
 	memcpy(&req->info, &info, sizeof(info));
 
+	/* The request is initialized, count it */
+	atomic_inc(&pq->n_reqs);
+
 	if (req_opcode(info.ctrl) == EXPECTED) {
 		/* expected must have a TID info and at least one data vector */
 		if (req->data_iovs < 2) {
@@ -500,7 +500,6 @@ int hfi1_user_sdma_process_request(struc
 		ret = pin_vector_pages(req, &req->iovs[i]);
 		if (ret) {
 			req->data_iovs = i;
-			req->status = ret;
 			goto free_req;
 		}
 		req->data_len += req->iovs[i].iov.iov_len;
@@ -561,14 +560,10 @@ int hfi1_user_sdma_process_request(struc
 		req->ahg_idx = sdma_ahg_alloc(req->sde);
 
 	set_comp_state(pq, cq, info.comp_idx, QUEUED, 0);
-	atomic_inc(&pq->n_reqs);
-	req_queued = 1;
 	/* Send the first N packets in the request to buy us some time */
 	ret = user_sdma_send_pkts(req, pcount);
-	if (unlikely(ret < 0 && ret != -EBUSY)) {
-		req->status = ret;
+	if (unlikely(ret < 0 && ret != -EBUSY))
 		goto free_req;
-	}
 
 	/*
 	 * It is possible that the SDMA engine would have processed all the
@@ -588,14 +583,8 @@ int hfi1_user_sdma_process_request(struc
 	while (req->seqsubmitted != req->info.npkts) {
 		ret = user_sdma_send_pkts(req, pcount);
 		if (ret < 0) {
-			if (ret != -EBUSY) {
-				req->status = ret;
-				WRITE_ONCE(req->has_error, 1);
-				if (READ_ONCE(req->seqcomp) ==
-				    req->seqsubmitted - 1)
-					goto free_req;
-				return ret;
-			}
+			if (ret != -EBUSY)
+				goto free_req;
 			wait_event_interruptible_timeout(
 				pq->busy.wait_dma,
 				(pq->state == SDMA_PKT_Q_ACTIVE),
@@ -606,10 +595,19 @@ int hfi1_user_sdma_process_request(struc
 	*count += idx;
 	return 0;
 free_req:
-	user_sdma_free_request(req, true);
-	if (req_queued)
+	/*
+	 * If the submitted seqsubmitted == npkts, the completion routine
+	 * controls the final state.  If sequbmitted < npkts, wait for any
+	 * outstanding packets to finish before cleaning up.
+	 */
+	if (req->seqsubmitted < req->info.npkts) {
+		if (req->seqsubmitted)
+			wait_event(pq->busy.wait_dma,
+				   (req->seqcomp == req->seqsubmitted - 1));
+		user_sdma_free_request(req, true);
 		pq_update(pq);
-	set_comp_state(pq, cq, info.comp_idx, ERROR, req->status);
+		set_comp_state(pq, cq, info.comp_idx, ERROR, ret);
+	}
 	return ret;
 }
 
@@ -917,7 +915,6 @@ dosend:
 	ret = sdma_send_txlist(req->sde, &pq->busy, &req->txps, &count);
 	req->seqsubmitted += count;
 	if (req->seqsubmitted == req->info.npkts) {
-		WRITE_ONCE(req->done, 1);
 		/*
 		 * The txreq has already been submitted to the HW queue
 		 * so we can free the AHG entry now. Corruption will not
@@ -1365,11 +1362,15 @@ static int set_txreq_header_ahg(struct u
 	return idx;
 }
 
-/*
- * SDMA tx request completion callback. Called when the SDMA progress
- * state machine gets notification that the SDMA descriptors for this
- * tx request have been processed by the DMA engine. Called in
- * interrupt context.
+/**
+ * user_sdma_txreq_cb() - SDMA tx request completion callback.
+ * @txreq: valid sdma tx request
+ * @status: success/failure of request
+ *
+ * Called when the SDMA progress state machine gets notification that
+ * the SDMA descriptors for this tx request have been processed by the
+ * DMA engine. Called in interrupt context.
+ * Only do work on completed sequences.
  */
 static void user_sdma_txreq_cb(struct sdma_txreq *txreq, int status)
 {
@@ -1378,7 +1379,7 @@ static void user_sdma_txreq_cb(struct sd
 	struct user_sdma_request *req;
 	struct hfi1_user_sdma_pkt_q *pq;
 	struct hfi1_user_sdma_comp_q *cq;
-	u16 idx;
+	enum hfi1_sdma_comp_state state = COMPLETE;
 
 	if (!tx->req)
 		return;
@@ -1391,31 +1392,19 @@ static void user_sdma_txreq_cb(struct sd
 		SDMA_DBG(req, "SDMA completion with error %d",
 			 status);
 		WRITE_ONCE(req->has_error, 1);
+		state = ERROR;
 	}
 
 	req->seqcomp = tx->seqnum;
 	kmem_cache_free(pq->txreq_cache, tx);
-	tx = NULL;
 
-	idx = req->info.comp_idx;
-	if (req->status == -1 && status == SDMA_TXREQ_S_OK) {
-		if (req->seqcomp == req->info.npkts - 1) {
-			req->status = 0;
-			user_sdma_free_request(req, false);
-			pq_update(pq);
-			set_comp_state(pq, cq, idx, COMPLETE, 0);
-		}
-	} else {
-		if (status != SDMA_TXREQ_S_OK)
-			req->status = status;
-		if (req->seqcomp == (READ_ONCE(req->seqsubmitted) - 1) &&
-		    (READ_ONCE(req->done) ||
-		     READ_ONCE(req->has_error))) {
-			user_sdma_free_request(req, false);
-			pq_update(pq);
-			set_comp_state(pq, cq, idx, ERROR, req->status);
-		}
-	}
+	/* sequence isn't complete?  We are done */
+	if (req->seqcomp != req->info.npkts - 1)
+		return;
+
+	user_sdma_free_request(req, false);
+	set_comp_state(pq, cq, req->info.comp_idx, state, status);
+	pq_update(pq);
 }
 
 static inline void pq_update(struct hfi1_user_sdma_pkt_q *pq)
@@ -1448,6 +1437,8 @@ static void user_sdma_free_request(struc
 		if (!node)
 			continue;
 
+		req->iovs[i].node = NULL;
+
 		if (unpin)
 			hfi1_mmu_rb_remove(req->pq->handler,
 					   &node->rb);
--- a/drivers/infiniband/hw/hfi1/user_sdma.h
+++ b/drivers/infiniband/hw/hfi1/user_sdma.h
@@ -205,8 +205,6 @@ struct user_sdma_request {
 	/* Writeable fields shared with interrupt */
 	u64 seqcomp ____cacheline_aligned_in_smp;
 	u64 seqsubmitted;
-	/* status of the last txreq completed */
-	int status;
 
 	/* Send side fields */
 	struct list_head txps ____cacheline_aligned_in_smp;
@@ -228,7 +226,6 @@ struct user_sdma_request {
 	u16 tididx;
 	/* progress index moving along the iovs array */
 	u8 iov_idx;
-	u8 done;
 	u8 has_error;
 
 	struct user_sdma_iovec iovs[MAX_VECTORS_PER_REQ];

  parent reply	other threads:[~2018-11-30  1:37 UTC|newest]

Thread overview: 143+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-29 14:11 [PATCH 4.19 000/110] 4.19.6-stable review Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 001/110] HID: steam: remove input device when a hid client is running Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 002/110] efi/libstub: arm: support building with clang Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 003/110] usb: core: Fix hub port connection events lost Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 004/110] usb: dwc3: gadget: fix ISOC TRB type on unaligned transfers Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 005/110] usb: dwc3: gadget: Properly check last unaligned/zero chain TRB Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 006/110] usb: dwc3: core: Clean up ULPI device Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 007/110] usb: dwc3: Fix NULL pointer exception in dwc3_pci_remove() Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 008/110] xhci: Fix leaking USB3 shared_hcd at xhci removal Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 009/110] xhci: handle port status events for removed USB3 hcd Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 010/110] xhci: Add check for invalid byte size error when UAS devices are connected Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 011/110] usb: xhci: fix uninitialized completion when USB3 port got wrong status Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 012/110] usb: xhci: fix timeout for transition from RExit to U0 Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 013/110] xhci: Add quirk to workaround the errata seen on Cavium Thunder-X2 Soc Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 014/110] usb: xhci: Prevent bus suspend if a port connect change or polling state is detected Greg Kroah-Hartman
2018-12-11 10:51   ` Thomas Zeitlhofer
2018-12-12 22:53   ` Thomas Zeitlhofer
2018-12-13  7:36     ` Greg Kroah-Hartman
2018-12-13 12:24       ` Mathias Nyman
2018-12-13 20:53         ` Thomas Zeitlhofer
2018-11-29 14:11 ` [PATCH 4.19 015/110] ALSA: oss: Use kvzalloc() for local buffer allocations Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 016/110] MAINTAINERS: Add Sasha as a stable branch maintainer Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 017/110] Documentation/security-bugs: Clarify treatment of embargoed information Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 018/110] Documentation/security-bugs: Postpone fix publication in exceptional cases Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 019/110] mmc: sdhci-pci: Try "cd" for card-detect lookup before using NULL Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 020/110] mmc: sdhci-pci: Workaround GLK firmware failing to restore the tuning value Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 021/110] gpio: dont free unallocated ida on gpiochip_add_data_with_key() error path Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 022/110] iwlwifi: fix wrong WGDS_WIFI_DATA_SIZE Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 023/110] iwlwifi: mvm: support sta_statistics() even on older firmware Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 024/110] iwlwifi: mvm: fix regulatory domain update when the firmware starts Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 025/110] iwlwifi: mvm: dont use SAR Geo if basic SAR is not used Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 026/110] brcmfmac: fix reporting support for 160 MHz channels Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 027/110] opp: ti-opp-supply: Dynamically update u_volt_min Greg Kroah-Hartman
2018-11-29 14:11 ` [PATCH 4.19 028/110] opp: ti-opp-supply: Correct the supply in _get_optimal_vdd_voltage call Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 029/110] tools/power/cpupower: fix compilation with STATIC=true Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 030/110] v9fs_dir_readdir: fix double-free on p9stat_read error Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 031/110] selinux: Add __GFP_NOWARN to allocation at str_read() Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 032/110] Input: synaptics - avoid using uninitialized variable when probing Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 033/110] bfs: add sanity check at bfs_fill_super() Greg Kroah-Hartman
2018-11-29 15:23   ` Tigran Aivazian
2018-11-29 16:07     ` Greg KH
2018-11-29 16:55       ` Tigran Aivazian
2018-11-29 17:10         ` Greg KH
2018-11-29 17:31           ` Tigran Aivazian
2018-12-02 18:57             ` [PATCH 4.19.6] BFS: static inode bitmap and extra sanity checking Tigran Aivazian
2018-12-02 20:13               ` Greg KH
2018-12-02 20:21                 ` Tigran Aivazian
2018-12-03  6:47                   ` Greg KH
2018-12-02 20:19               ` Sasha Levin
2018-11-29 14:12 ` [PATCH 4.19 034/110] sctp: clear the transport of some out_chunk_list chunks in sctp_assoc_rm_peer Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 035/110] gfs2: Dont leave s_fs_info pointing to freed memory in init_sbd Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 036/110] llc: do not use sk_eat_skb() Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 037/110] mm: dont warn about large allocations for slab Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 038/110] mm/memory.c: recheck page table entry with page table lock held Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 039/110] tcp: do not release socket ownership in tcp_close() Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 040/110] drm/fb-helper: Blacklist writeback when adding connectors to fbdev Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 041/110] drm/amdgpu: Add missing firmware entry for HAINAN Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 042/110] drm/vc4: Set ->legacy_cursor_update to false when doing non-async updates Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 043/110] drm/amdgpu: Fix oops when pp_funcs->switch_power_profile is unset Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 044/110] drm/i915: Disable LP3 watermarks on all SNB machines Greg Kroah-Hartman
2018-12-05 21:39   ` Ville Syrjälä
2018-12-06  7:28     ` Greg Kroah-Hartman
2018-12-07 17:01       ` Ville Syrjälä
2018-12-11 14:04         ` Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 045/110] drm/ast: change resolution may cause screen blurred Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 046/110] drm/ast: fixed cursor may disappear sometimes Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 047/110] drm/ast: Remove existing framebuffers before loading driver Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 048/110] can: flexcan: Unlock the MB unconditionally Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 049/110] can: dev: can_get_echo_skb(): factor out non sending code to __can_get_echo_skb() Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 050/110] can: dev: __can_get_echo_skb(): replace struct can_frame by canfd_frame to access frame length Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 051/110] can: dev: __can_get_echo_skb(): Dont crash the kernel if can_priv::echo_skb is accessed out of bounds Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 052/110] can: dev: __can_get_echo_skb(): print error message, if trying to echo non existing skb Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 053/110] can: rx-offload: introduce can_rx_offload_get_echo_skb() and can_rx_offload_queue_sorted() functions Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 054/110] can: rx-offload: rename can_rx_offload_irq_queue_err_skb() to can_rx_offload_queue_tail() Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 055/110] can: flexcan: use can_rx_offload_queue_sorted() for flexcan_irq_bus_*() Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 056/110] can: flexcan: handle tx-complete CAN frames via rx-offload infrastructure Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 057/110] can: raw: check for CAN FD capable netdev in raw_sendmsg() Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 058/110] can: hi311x: Use level-triggered interrupt Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 059/110] can: flexcan: Always use last mailbox for TX Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 060/110] can: flexcan: remove not needed struct flexcan_priv::tx_mb and struct flexcan_priv::tx_mb_idx Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 061/110] ACPICA: AML interpreter: add region addresses in global list during initialization Greg Kroah-Hartman
2018-12-14 17:03   ` Jeremy Cline
2018-12-14 17:42     ` Greg Kroah-Hartman
2018-11-29 14:12 ` Greg Kroah-Hartman [this message]
2018-11-29 14:12 ` [PATCH 4.19 063/110] fsnotify: generalize handling of extra event flags Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 064/110] fanotify: fix handling of events on child sub-directory Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 065/110] pinctrl: meson: fix pinconf bias disable Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 066/110] pinctrl: meson: fix gxbb ao pull register bits Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 067/110] pinctrl: meson: fix gxl " Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 068/110] pinctrl: meson: fix meson8 " Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 069/110] pinctrl: meson: fix meson8b " Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 070/110] tools/testing/nvdimm: Fix the array size for dimm devices Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 071/110] scsi: lpfc: fix remoteport access Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 072/110] scsi: hisi_sas: Remove set but not used variable dq_list Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 073/110] KVM: PPC: Move and undef TRACE_INCLUDE_PATH/FILE Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 074/110] cpufreq: imx6q: add return value check for voltage scale Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 075/110] rtc: cmos: Do not export alarm rtc_ops when we do not support alarms Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 076/110] rtc: pcf2127: fix a kmemleak caused in pcf2127_i2c_gather_write Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 077/110] crypto: simd - correctly take reqsize of wrapped skcipher into account Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 078/110] floppy: fix race condition in __floppy_read_block_0() Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 079/110] powerpc/io: Fix the IO workarounds code to work with Radix Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 080/110] sched/fair: Fix cpu_util_wake() for execl type workloads Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 081/110] perf/x86/intel/uncore: Add more IMC PCI IDs for KabyLake and CoffeeLake CPUs Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 082/110] ARM: make lookup_processor_type() non-__init Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 083/110] ARM: clean up per-processor check_bugs method call Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 084/110] ARM: add PROC_VTABLE and PROC_TABLE macros Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 085/110] ARM: spectre-v2: per-CPU vtables to work around big.Little systems Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 086/110] block: copy ioprio in __bio_clone_fast() and bounce Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 087/110] SUNRPC: Fix a bogus get/put in generic_key_to_expire() Greg Kroah-Hartman
2018-11-29 14:12 ` [PATCH 4.19 088/110] riscv: add missing vdso_install target Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 089/110] RISC-V: Silence some module warnings on 32-bit Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 090/110] drm/amdgpu: fix bug with IH ring setup Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 091/110] kdb: Use strscpy with destination buffer size Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 092/110] NFSv4: Fix an Oops during delegation callbacks Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 093/110] powerpc/numa: Suppress "VPHN is not supported" messages Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 094/110] efi/arm: Revert deferred unmap of early memmap mapping Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 095/110] z3fold: fix possible reclaim races Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 096/110] mm, memory_hotplug: check zone_movable in has_unmovable_pages Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 097/110] tmpfs: make lseek(SEEK_DATA/SEK_HOLE) return ENXIO with a negative offset Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 098/110] mm, page_alloc: check for max order in hot path Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 099/110] dax: Avoid losing wakeup in dax_lock_mapping_entry Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 100/110] include/linux/pfn_t.h: force ~ to be parsed as an unary operator Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 101/110] tty: wipe buffer Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 102/110] tty: wipe buffer if not echoing data Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 103/110] gfs2: Fix iomap buffer head reference counting bug Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 104/110] rcu: Make need_resched() respond to urgent RCU-QS needs Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 105/110] media: ov5640: Re-work MIPI startup sequence Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 106/110] media: ov5640: Fix timings setup code Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 107/110] media: ov5640: fix exposure regression Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 108/110] media: ov5640: fix auto gain & exposure when changing mode Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 109/110] media: ov5640: fix wrong binning value in exposure calculation Greg Kroah-Hartman
2018-11-29 14:13 ` [PATCH 4.19 110/110] media: ov5640: fix auto controls values when switching to manual mode Greg Kroah-Hartman
2018-11-29 18:11 ` [PATCH 4.19 000/110] 4.19.6-stable review kernelci.org bot
2018-11-29 20:36 ` shuah
2018-11-30  7:15   ` Greg Kroah-Hartman
2018-11-29 22:24 ` Harsh Shandilya
2018-11-30  7:17   ` Greg Kroah-Hartman
2018-11-30 15:06     ` Harsh Shandilya
2018-11-30  8:52 ` Naresh Kamboju
2018-11-30 10:37   ` Greg Kroah-Hartman
2018-11-30 15:29 ` Greg Kroah-Hartman
2018-11-30 22:29 ` Guenter Roeck
2018-12-01  8:23   ` 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=20181129135923.760004612@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=dennis.dalessandro@intel.com \
    --cc=jgg@mellanox.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michael.j.ruhl@intel.com \
    --cc=mike.marciniszyn@intel.com \
    --cc=mitko.haralanov@intel.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).