All of lore.kernel.org
 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,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Wei Wang <wei.w.wang@intel.com>,
	Cornelia Huck <cohuck@redhat.com>,
	Halil Pasic <pasic@linux.ibm.com>,
	"Michael S. Tsirkin" <mst@redhat.com>
Subject: [PATCH 4.20 047/111] virtio-balloon: tweak config_changed implementation
Date: Mon, 21 Jan 2019 14:42:41 +0100	[thread overview]
Message-ID: <20190121122501.157819352@linuxfoundation.org> (raw)
In-Reply-To: <20190121122455.819406896@linuxfoundation.org>

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

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

From: Wei Wang <wei.w.wang@intel.com>

commit bf4dc0b2beebfd9338df7c0bcf473b356f67cf66 upstream.

virtio-ccw has deadlock issues with reading the config space inside the
interrupt context, so we tweak the virtballoon_changed implementation
by moving the config read operations into the related workqueue contexts.
The config_read_bitmap is used as a flag to the workqueue callbacks
about the related config fields that need to be read.

The cmd_id_received is also renamed to cmd_id_received_cache, and
the value should be obtained via virtio_balloon_cmd_id_received.

Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Wei Wang <wei.w.wang@intel.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Halil Pasic <pasic@linux.ibm.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Cc: stable@vger.kernel.org
Fixes: 86a559787e6f ("virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT")
Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/virtio/virtio_balloon.c |   98 ++++++++++++++++++++++++++--------------
 1 file changed, 65 insertions(+), 33 deletions(-)

--- a/drivers/virtio/virtio_balloon.c
+++ b/drivers/virtio/virtio_balloon.c
@@ -61,6 +61,10 @@ enum virtio_balloon_vq {
 	VIRTIO_BALLOON_VQ_MAX
 };
 
+enum virtio_balloon_config_read {
+	VIRTIO_BALLOON_CONFIG_READ_CMD_ID = 0,
+};
+
 struct virtio_balloon {
 	struct virtio_device *vdev;
 	struct virtqueue *inflate_vq, *deflate_vq, *stats_vq, *free_page_vq;
@@ -77,14 +81,20 @@ struct virtio_balloon {
 	/* Prevent updating balloon when it is being canceled. */
 	spinlock_t stop_update_lock;
 	bool stop_update;
+	/* Bitmap to indicate if reading the related config fields are needed */
+	unsigned long config_read_bitmap;
 
 	/* The list of allocated free pages, waiting to be given back to mm */
 	struct list_head free_page_list;
 	spinlock_t free_page_list_lock;
 	/* The number of free page blocks on the above list */
 	unsigned long num_free_page_blocks;
-	/* The cmd id received from host */
-	u32 cmd_id_received;
+	/*
+	 * The cmd id received from host.
+	 * Read it via virtio_balloon_cmd_id_received to get the latest value
+	 * sent from host.
+	 */
+	u32 cmd_id_received_cache;
 	/* The cmd id that is actively in use */
 	__virtio32 cmd_id_active;
 	/* Buffer to store the stop sign */
@@ -390,37 +400,31 @@ static unsigned long return_free_pages_t
 	return num_returned;
 }
 
+static void virtio_balloon_queue_free_page_work(struct virtio_balloon *vb)
+{
+	if (!virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_FREE_PAGE_HINT))
+		return;
+
+	/* No need to queue the work if the bit was already set. */
+	if (test_and_set_bit(VIRTIO_BALLOON_CONFIG_READ_CMD_ID,
+			     &vb->config_read_bitmap))
+		return;
+
+	queue_work(vb->balloon_wq, &vb->report_free_page_work);
+}
+
 static void virtballoon_changed(struct virtio_device *vdev)
 {
 	struct virtio_balloon *vb = vdev->priv;
 	unsigned long flags;
-	s64 diff = towards_target(vb);
 
-	if (diff) {
-		spin_lock_irqsave(&vb->stop_update_lock, flags);
-		if (!vb->stop_update)
-			queue_work(system_freezable_wq,
-				   &vb->update_balloon_size_work);
-		spin_unlock_irqrestore(&vb->stop_update_lock, flags);
-	}
-
-	if (virtio_has_feature(vdev, VIRTIO_BALLOON_F_FREE_PAGE_HINT)) {
-		virtio_cread(vdev, struct virtio_balloon_config,
-			     free_page_report_cmd_id, &vb->cmd_id_received);
-		if (vb->cmd_id_received == VIRTIO_BALLOON_CMD_ID_DONE) {
-			/* Pass ULONG_MAX to give back all the free pages */
-			return_free_pages_to_mm(vb, ULONG_MAX);
-		} else if (vb->cmd_id_received != VIRTIO_BALLOON_CMD_ID_STOP &&
-			   vb->cmd_id_received !=
-			   virtio32_to_cpu(vdev, vb->cmd_id_active)) {
-			spin_lock_irqsave(&vb->stop_update_lock, flags);
-			if (!vb->stop_update) {
-				queue_work(vb->balloon_wq,
-					   &vb->report_free_page_work);
-			}
-			spin_unlock_irqrestore(&vb->stop_update_lock, flags);
-		}
+	spin_lock_irqsave(&vb->stop_update_lock, flags);
+	if (!vb->stop_update) {
+		queue_work(system_freezable_wq,
+			   &vb->update_balloon_size_work);
+		virtio_balloon_queue_free_page_work(vb);
 	}
+	spin_unlock_irqrestore(&vb->stop_update_lock, flags);
 }
 
 static void update_balloon_size(struct virtio_balloon *vb)
@@ -527,6 +531,17 @@ static int init_vqs(struct virtio_balloo
 	return 0;
 }
 
+static u32 virtio_balloon_cmd_id_received(struct virtio_balloon *vb)
+{
+	if (test_and_clear_bit(VIRTIO_BALLOON_CONFIG_READ_CMD_ID,
+			       &vb->config_read_bitmap))
+		virtio_cread(vb->vdev, struct virtio_balloon_config,
+			     free_page_report_cmd_id,
+			     &vb->cmd_id_received_cache);
+
+	return vb->cmd_id_received_cache;
+}
+
 static int send_cmd_id_start(struct virtio_balloon *vb)
 {
 	struct scatterlist sg;
@@ -537,7 +552,8 @@ static int send_cmd_id_start(struct virt
 	while (virtqueue_get_buf(vq, &unused))
 		;
 
-	vb->cmd_id_active = cpu_to_virtio32(vb->vdev, vb->cmd_id_received);
+	vb->cmd_id_active = virtio32_to_cpu(vb->vdev,
+					virtio_balloon_cmd_id_received(vb));
 	sg_init_one(&sg, &vb->cmd_id_active, sizeof(vb->cmd_id_active));
 	err = virtqueue_add_outbuf(vq, &sg, 1, &vb->cmd_id_active, GFP_KERNEL);
 	if (!err)
@@ -620,7 +636,8 @@ static int send_free_pages(struct virtio
 		 * stop the reporting.
 		 */
 		cmd_id_active = virtio32_to_cpu(vb->vdev, vb->cmd_id_active);
-		if (cmd_id_active != vb->cmd_id_received)
+		if (unlikely(cmd_id_active !=
+			     virtio_balloon_cmd_id_received(vb)))
 			break;
 
 		/*
@@ -637,11 +654,9 @@ static int send_free_pages(struct virtio
 	return 0;
 }
 
-static void report_free_page_func(struct work_struct *work)
+static void virtio_balloon_report_free_page(struct virtio_balloon *vb)
 {
 	int err;
-	struct virtio_balloon *vb = container_of(work, struct virtio_balloon,
-						 report_free_page_work);
 	struct device *dev = &vb->vdev->dev;
 
 	/* Start by sending the received cmd id to host with an outbuf. */
@@ -659,6 +674,23 @@ static void report_free_page_func(struct
 		dev_err(dev, "Failed to send a stop id, err = %d\n", err);
 }
 
+static void report_free_page_func(struct work_struct *work)
+{
+	struct virtio_balloon *vb = container_of(work, struct virtio_balloon,
+						 report_free_page_work);
+	u32 cmd_id_received;
+
+	cmd_id_received = virtio_balloon_cmd_id_received(vb);
+	if (cmd_id_received == VIRTIO_BALLOON_CMD_ID_DONE) {
+		/* Pass ULONG_MAX to give back all the free pages */
+		return_free_pages_to_mm(vb, ULONG_MAX);
+	} else if (cmd_id_received != VIRTIO_BALLOON_CMD_ID_STOP &&
+		   cmd_id_received !=
+		   virtio32_to_cpu(vb->vdev, vb->cmd_id_active)) {
+		virtio_balloon_report_free_page(vb);
+	}
+}
+
 #ifdef CONFIG_BALLOON_COMPACTION
 /*
  * virtballoon_migratepage - perform the balloon page migration on behalf of
@@ -885,7 +917,7 @@ static int virtballoon_probe(struct virt
 			goto out_del_vqs;
 		}
 		INIT_WORK(&vb->report_free_page_work, report_free_page_func);
-		vb->cmd_id_received = VIRTIO_BALLOON_CMD_ID_STOP;
+		vb->cmd_id_received_cache = VIRTIO_BALLOON_CMD_ID_STOP;
 		vb->cmd_id_active = cpu_to_virtio32(vb->vdev,
 						  VIRTIO_BALLOON_CMD_ID_STOP);
 		vb->cmd_id_stop = cpu_to_virtio32(vb->vdev,



  parent reply	other threads:[~2019-01-21 13:48 UTC|newest]

Thread overview: 122+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-21 13:41 [PATCH 4.20 000/111] 4.20.4-stable review Greg Kroah-Hartman
2019-01-21 13:41 ` [PATCH 4.20 001/111] tty/ldsem: Wake up readers after timed out down_write() Greg Kroah-Hartman
2019-01-21 13:41 ` [PATCH 4.20 002/111] tty: Hold tty_ldisc_lock() during tty_reopen() Greg Kroah-Hartman
2019-01-21 13:41 ` [PATCH 4.20 003/111] tty: Simplify tty->count math in tty_reopen() Greg Kroah-Hartman
2019-01-21 13:41 ` [PATCH 4.20 004/111] tty: Dont hold ldisc lock in tty_reopen() if ldisc present Greg Kroah-Hartman
2019-01-21 13:41 ` [PATCH 4.20 005/111] can: gw: ensure DLC boundaries after CAN frame modification Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 006/111] netfilter: nf_conncount: replace CONNCOUNT_LOCK_SLOTS with CONNCOUNT_SLOTS Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 007/111] netfilter: nf_conncount: dont skip eviction when age is negative Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 008/111] netfilter: nf_conncount: split gc in two phases Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 009/111] netfilter: nf_conncount: restart search when nodes have been erased Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 010/111] netfilter: nf_conncount: merge lookup and add functions Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 011/111] netfilter: nf_conncount: move all list iterations under spinlock Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 012/111] netfilter: nf_conncount: speculative garbage collection on empty lists Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 013/111] netfilter: nf_conncount: fix argument order to find_next_bit Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 014/111] mmc: sdhci-msm: Disable CDR function on TX Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 015/111] arm64/kvm: consistently handle host HCR_EL2 flags Greg Kroah-Hartman
2019-01-21 13:42   ` Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 016/111] arm64: Dont trap host pointer auth use to EL2 Greg Kroah-Hartman
2019-01-21 13:42   ` Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 017/111] ipv6: fix kernel-infoleak in ipv6_local_error() Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 018/111] net: bridge: fix a bug on using a neighbour cache entry without checking its state Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 019/111] packet: Do not leak dev refcounts on error exit Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 020/111] tcp: change txhash on SYN-data timeout Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 021/111] tun: publish tfile after its fully initialized Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 022/111] net: phy: add missing phy driver features Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 023/111] net: phy: Add missing features to PHY drivers Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 024/111] net: phy: meson-gxl: Use the genphy_soft_reset callback Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 025/111] lan743x: Remove phy_read from link status change function Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 026/111] IN_BADCLASS: fix macro to actually work Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 027/111] r8169: load Realtek PHY driver module before r8169 Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 028/111] bonding: update nest level on unlink Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 029/111] ip: on queued skb use skb_header_pointer instead of pskb_may_pull Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 030/111] r8169: dont try to read counters if chip is in a PCI power-save state Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 031/111] smc: move unhash as early as possible in smc_release() Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 032/111] crypto: sm3 - fix undefined shift by >= width of value Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 033/111] crypto: caam - fix zero-length buffer DMA mapping Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 034/111] crypto: authencesn - Avoid twice completion call in decrypt path Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 035/111] crypto: ccree - convert to use crypto_authenc_extractkeys() Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 036/111] crypto: bcm " Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 037/111] crypto: authenc - fix parsing key with misaligned rta_len Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 038/111] crypto: talitos - reorder code in talitos_edesc_alloc() Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 039/111] crypto: talitos - fix ablkcipher for CONFIG_VMAP_STACK Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 040/111] xen: Fix x86 sched_clock() interface for xen Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 041/111] Revert "btrfs: balance dirty metadata pages in btrfs_finish_ordered_io" Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 042/111] btrfs: wait on ordered extents on abort cleanup Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 043/111] Yama: Check for pid death before checking ancestry Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 044/111] scsi: core: Synchronize request queue PM status only on successful resume Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 045/111] scsi: sd: Fix cache_type_store() Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 046/111] virtio: dont allocate vqs when names[i] = NULL Greg Kroah-Hartman
2019-01-21 13:42 ` Greg Kroah-Hartman [this message]
2019-01-21 13:42 ` [PATCH 4.20 048/111] mips: fix n32 compat_ipc_parse_version Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 049/111] MIPS: BCM47XX: Setup struct device for the SoC Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 050/111] MIPS: lantiq: Fix IPI interrupt handling Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 051/111] MIPS: OCTEON: fix kexec support Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 052/111] drm/i915/gvt: Fix mmap range check Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 053/111] drm/rockchip: add missing of_node_put Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 054/111] OF: properties: " Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 055/111] mfd: tps6586x: Handle interrupts on suspend Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 056/111] media: v4l: ioctl: Validate num_planes for debug messages Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 057/111] media: vim2m: only cancel work if it is for right context Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 058/111] RDMA/nldev: Dont expose unsafe global rkey to regular user Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 059/111] RDMA/vmw_pvrdma: Return the correct opcode when creating WR Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 060/111] kbuild: Disable LD_DEAD_CODE_DATA_ELIMINATION with ftrace & GCC <= 4.7 Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 061/111] kbuild: fix single target build for external module Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 062/111] kbuild: mark prepare0 as PHONY to fix external module build Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 063/111] net: dsa: realtek-smi: fix OF child-node lookup Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 064/111] pstore/ram: Avoid allocation and leak of platform data Greg Kroah-Hartman
2019-01-21 13:42 ` [PATCH 4.20 065/111] SUNRPC: Fix TCP receive code on archs with flush_dcache_page() Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 066/111] powerpc/tm: Limit TM code inside PPC_TRANSACTIONAL_MEM Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 067/111] arm64: kaslr: ensure randomized quantities are clean to the PoC Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 068/111] arm64: dts: marvell: armada-ap806: reserve PSCI area Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 069/111] fbdev: offb: Fix OF node name handling Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 070/111] Disable MSI also when pcie-octeon.pcie_disable on Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 071/111] fix int_sqrt64() for very large numbers Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 072/111] omap2fb: Fix stack memory disclosure Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 073/111] media: vivid: fix error handling of kthread_run Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 074/111] media: vivid: set min width/height to a value > 0 Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 075/111] bpf: in __bpf_redirect_no_mac pull mac only if present Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 076/111] ipv6: make icmp6_send() robust against null skb->dev Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 077/111] LSM: Check for NULL cred-security on free Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 078/111] media: vb2: vb2_mmap: move lock up Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 079/111] sunrpc: handle ENOMEM in rpcb_getport_async Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 080/111] netfilter: ebtables: account ebt_table_info to kmemcg Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 081/111] block: use rcu_work instead of call_rcu to avoid sleep in softirq Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 082/111] drm/vkms: Fix plane duplicate_state Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 083/111] gpu/drm: Fix lock held when returning to user space Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 084/111] selinux: fix GPF on invalid policy Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 085/111] blockdev: Fix livelocks on loop device Greg Kroah-Hartman
2019-01-21 14:03   ` Jan Kara
2019-01-21 14:23     ` Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 086/111] sctp: allocate sctp_sockaddr_entry with kzalloc Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 087/111] tipc: fix uninit-value in in tipc_conn_rcv_sub Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 088/111] tipc: fix uninit-value in tipc_nl_compat_link_reset_stats Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 089/111] tipc: fix uninit-value in tipc_nl_compat_bearer_enable Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 090/111] tipc: fix uninit-value in tipc_nl_compat_link_set Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 091/111] tipc: fix uninit-value in tipc_nl_compat_name_table_dump Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 092/111] tipc: fix uninit-value in tipc_nl_compat_doit Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 093/111] block/loop: Dont grab "struct file" for vfs_getattr() operation Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 094/111] block/loop: Use global lock for ioctl() operation Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 095/111] loop: Fold __loop_release into loop_release Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 096/111] loop: Get rid of loop_index_mutex Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 097/111] loop: Push lo_ctl_mutex down into individual ioctls Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 098/111] loop: Split setting of lo_state from loop_clr_fd Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 099/111] loop: Push loop_ctl_mutex down into loop_clr_fd() Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 100/111] loop: Push loop_ctl_mutex down to loop_get_status() Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 101/111] loop: Push loop_ctl_mutex down to loop_set_status() Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 102/111] loop: Push loop_ctl_mutex down to loop_set_fd() Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 103/111] loop: Push loop_ctl_mutex down to loop_change_fd() Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 104/111] loop: Move special partition reread handling in loop_clr_fd() Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 105/111] loop: Move loop_reread_partitions() out of loop_ctl_mutex Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 106/111] loop: Fix deadlock when calling blkdev_reread_part() Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 107/111] loop: Avoid circular locking dependency between loop_ctl_mutex and bd_mutex Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 108/111] loop: Get rid of nested acquisition of loop_ctl_mutex Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 109/111] loop: Fix double mutex_unlock(&loop_ctl_mutex) in loop_control_ioctl() Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 110/111] loop: drop caches if offset or block_size are changed Greg Kroah-Hartman
2019-01-21 13:43 ` [PATCH 4.20 111/111] drm/fb-helper: Ignore the value of fb_var_screeninfo.pixclock Greg Kroah-Hartman
2019-01-22 13:33 ` [PATCH 4.20 000/111] 4.20.4-stable review Naresh Kamboju
2019-01-22 16:44   ` Greg Kroah-Hartman
2019-01-22 19:24 ` Guenter Roeck
2019-01-23  6:43   ` Greg Kroah-Hartman
2019-01-22 22:25 ` shuah
2019-01-23  6:43   ` 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=20190121122501.157819352@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mst@redhat.com \
    --cc=pasic@linux.ibm.com \
    --cc=stable@vger.kernel.org \
    --cc=wei.w.wang@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.