mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: David Sloan <david.sloan@eideticom.com>,
	Logan Gunthorpe <logang@deltatee.com>, Song Liu <song@kernel.org>,
	Sasha Levin <sashal@kernel.org>,
	linux-raid@vger.kernel.org
Subject: [PATCH AUTOSEL 5.15 19/23] md: Flush workqueue md_rdev_misc_wq in md_alloc()
Date: Tue, 30 Aug 2022 13:21:36 -0400	[thread overview]
Message-ID: <20220830172141.581086-19-sashal@kernel.org> (raw)
In-Reply-To: <20220830172141.581086-1-sashal@kernel.org>

From: David Sloan <david.sloan@eideticom.com>

[ Upstream commit 5e8daf906f890560df430d30617c692a794acb73 ]

A race condition still exists when removing and re-creating md devices
in test cases. However, it is only seen on some setups.

The race condition was tracked down to a reference still being held
to the kobject by the rdev in the md_rdev_misc_wq which will be released
in rdev_delayed_delete().

md_alloc() waits for previous deletions by waiting on the md_misc_wq,
but the md_rdev_misc_wq may still be holding a reference to a recently
removed device.

To fix this, also flush the md_rdev_misc_wq in md_alloc().

Signed-off-by: David Sloan <david.sloan@eideticom.com>
[logang@deltatee.com: rewrote commit message]
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Signed-off-by: Song Liu <song@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/md/md.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/md/md.c b/drivers/md/md.c
index 33946adb0d6f6..17100b39ff14a 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -5651,6 +5651,7 @@ static int md_alloc(dev_t dev, char *name)
 	 * removed (mddev_delayed_delete).
 	 */
 	flush_workqueue(md_misc_wq);
+	flush_workqueue(md_rdev_misc_wq);
 
 	mutex_lock(&disks_mutex);
 	mddev = mddev_alloc(dev);
-- 
2.35.1


  parent reply	other threads:[~2022-08-30 17:26 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-30 17:21 [PATCH AUTOSEL 5.15 01/23] firmware: dmi: Use the proper accessor for the version field Sasha Levin
2022-08-30 17:21 ` [PATCH AUTOSEL 5.15 02/23] scsi: qla2xxx: Disable ATIO interrupt coalesce for quad port ISP27XX Sasha Levin
2022-08-30 17:21 ` [PATCH AUTOSEL 5.15 03/23] scsi: megaraid_sas: Fix double kfree() Sasha Levin
2022-08-30 17:21 ` [PATCH AUTOSEL 5.15 04/23] drm/gem: Fix GEM handle release errors Sasha Levin
2022-08-30 17:21 ` [PATCH AUTOSEL 5.15 05/23] perf/x86/core: Set pebs_capable and PMU_FL_PEBS_ALL for the Baseline Sasha Levin
2022-08-30 17:21 ` [PATCH AUTOSEL 5.15 06/23] drm/amdgpu: Move psp_xgmi_terminate call from amdgpu_xgmi_remove_device to psp_hw_fini Sasha Levin
2022-08-30 17:21 ` [PATCH AUTOSEL 5.15 07/23] drm/amdgpu: Check num_gfx_rings for gfx v9_0 rb setup Sasha Levin
2022-08-30 17:21 ` [PATCH AUTOSEL 5.15 08/23] drm/radeon: add a force flush to delay work when radeon Sasha Levin
2022-08-30 17:21 ` [PATCH AUTOSEL 5.15 09/23] scsi: ufs: core: Reduce the power mode change timeout Sasha Levin
2022-08-30 17:21 ` [PATCH AUTOSEL 5.15 10/23] Revert "parisc: Show error if wrong 32/64-bit compiler is being used" Sasha Levin
2022-08-30 17:21 ` [PATCH AUTOSEL 5.15 11/23] parisc: ccio-dma: Handle kmalloc failure in ccio_init_resources() Sasha Levin
2022-08-30 17:21 ` [PATCH AUTOSEL 5.15 12/23] parisc: Add runtime check to prevent PA2.0 kernels on PA1.x machines Sasha Levin
2022-08-30 17:21 ` [PATCH AUTOSEL 5.15 13/23] arm64: cacheinfo: Fix incorrect assignment of signed error value to unsigned fw_level Sasha Levin
2022-08-30 17:21 ` [PATCH AUTOSEL 5.15 14/23] arm64/signal: Raise limit on stack frames Sasha Levin
2022-08-30 17:58   ` Mark Brown
2022-09-14 17:59     ` Sasha Levin
2022-08-30 17:21 ` [PATCH AUTOSEL 5.15 15/23] netfilter: conntrack: work around exceeded receive window Sasha Levin
2022-08-30 17:21 ` [PATCH AUTOSEL 5.15 16/23] cpufreq: check only freq_table in __resolve_freq() Sasha Levin
2022-08-30 17:21 ` [PATCH AUTOSEL 5.15 17/23] fec: Restart PPS after link state change Sasha Levin
2022-08-31 13:03   ` Csókás Bence
2022-09-14 18:00     ` Sasha Levin
2022-08-30 17:21 ` [PATCH AUTOSEL 5.15 18/23] net/core/skbuff: Check the return value of skb_copy_bits() Sasha Levin
2022-08-30 17:21 ` Sasha Levin [this message]
2022-08-30 17:21 ` [PATCH AUTOSEL 5.15 20/23] fbdev: fb_pm2fb: Avoid potential divide by zero error Sasha Levin
2022-08-30 17:21 ` [PATCH AUTOSEL 5.15 21/23] fbdev: fbcon: Destroy mutex on freeing struct fb_info Sasha Levin
2022-08-30 17:21 ` [PATCH AUTOSEL 5.15 22/23] fbdev: chipsfb: Add missing pci_disable_device() in chipsfb_pci_init() Sasha Levin
2022-08-30 17:21 ` [PATCH AUTOSEL 5.15 23/23] drm/amdgpu: mmVM_L2_CNTL3 register not initialized correctly Sasha Levin

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=20220830172141.581086-19-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=david.sloan@eideticom.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-raid@vger.kernel.org \
    --cc=logang@deltatee.com \
    --cc=song@kernel.org \
    --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®