From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Alex Vesker <valex@mellanox.com>,
Leon Romanovsky <leon@kernel.org>,
Doug Ledford <dledford@redhat.com>
Subject: [PATCH 4.4 77/93] IB/ipoib: Dont allow MC joins during light MC flush
Date: Thu, 6 Oct 2016 10:29:47 +0200 [thread overview]
Message-ID: <20161006074735.154023418@linuxfoundation.org> (raw)
In-Reply-To: <20161006074731.150212126@linuxfoundation.org>
4.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Alex Vesker <valex@mellanox.com>
commit 344bacca8cd811809fc33a249f2738ab757d327f upstream.
This fix solves a race between light flush and on the fly joins.
Light flush doesn't set the device to down and unset IPOIB_OPER_UP
flag, this means that if while flushing we have a MC join in progress
and the QP was attached to BC MGID we can have a mismatches when
re-attaching a QP to the BC MGID.
The light flush would set the broadcast group to NULL causing an on
the fly join to rejoin and reattach to the BC MCG as well as adding
the BC MGID to the multicast list. The flush process would later on
remove the BC MGID and detach it from the QP. On the next flush
the BC MGID is present in the multicast list but not found when trying
to detach it because of the previous double attach and single detach.
[18332.714265] ------------[ cut here ]------------
[18332.717775] WARNING: CPU: 6 PID: 3767 at drivers/infiniband/core/verbs.c:280 ib_dealloc_pd+0xff/0x120 [ib_core]
...
[18332.775198] Hardware name: Red Hat KVM, BIOS Bochs 01/01/2011
[18332.779411] 0000000000000000 ffff8800b50dfbb0 ffffffff813fed47 0000000000000000
[18332.784960] 0000000000000000 ffff8800b50dfbf0 ffffffff8109add1 0000011832f58300
[18332.790547] ffff880226a596c0 ffff880032482000 ffff880032482830 ffff880226a59280
[18332.796199] Call Trace:
[18332.798015] [<ffffffff813fed47>] dump_stack+0x63/0x8c
[18332.801831] [<ffffffff8109add1>] __warn+0xd1/0xf0
[18332.805403] [<ffffffff8109aebd>] warn_slowpath_null+0x1d/0x20
[18332.809706] [<ffffffffa025d90f>] ib_dealloc_pd+0xff/0x120 [ib_core]
[18332.814384] [<ffffffffa04f3d7c>] ipoib_transport_dev_cleanup+0xfc/0x1d0 [ib_ipoib]
[18332.820031] [<ffffffffa04ed648>] ipoib_ib_dev_cleanup+0x98/0x110 [ib_ipoib]
[18332.825220] [<ffffffffa04e62c8>] ipoib_dev_cleanup+0x2d8/0x550 [ib_ipoib]
[18332.830290] [<ffffffffa04e656f>] ipoib_uninit+0x2f/0x40 [ib_ipoib]
[18332.834911] [<ffffffff81772a8a>] rollback_registered_many+0x1aa/0x2c0
[18332.839741] [<ffffffff81772bd1>] rollback_registered+0x31/0x40
[18332.844091] [<ffffffff81773b18>] unregister_netdevice_queue+0x48/0x80
[18332.848880] [<ffffffffa04f489b>] ipoib_vlan_delete+0x1fb/0x290 [ib_ipoib]
[18332.853848] [<ffffffffa04df1cd>] delete_child+0x7d/0xf0 [ib_ipoib]
[18332.858474] [<ffffffff81520c08>] dev_attr_store+0x18/0x30
[18332.862510] [<ffffffff8127fe4a>] sysfs_kf_write+0x3a/0x50
[18332.866349] [<ffffffff8127f4e0>] kernfs_fop_write+0x120/0x170
[18332.870471] [<ffffffff81207198>] __vfs_write+0x28/0xe0
[18332.874152] [<ffffffff810e09bf>] ? percpu_down_read+0x1f/0x50
[18332.878274] [<ffffffff81208062>] vfs_write+0xa2/0x1a0
[18332.881896] [<ffffffff812093a6>] SyS_write+0x46/0xa0
[18332.885632] [<ffffffff810039b7>] do_syscall_64+0x57/0xb0
[18332.889709] [<ffffffff81883321>] entry_SYSCALL64_slow_path+0x25/0x25
[18332.894727] ---[ end trace 09ebbe31f831ef17 ]---
Fixes: ee1e2c82c245 ("IPoIB: Refresh paths instead of flushing them on SM change events")
Signed-off-by: Alex Vesker <valex@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/infiniband/ulp/ipoib/ipoib_ib.c | 9 +++++++++
1 file changed, 9 insertions(+)
--- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
@@ -1028,8 +1028,17 @@ static void __ipoib_ib_dev_flush(struct
}
if (level == IPOIB_FLUSH_LIGHT) {
+ int oper_up;
ipoib_mark_paths_invalid(dev);
+ /* Set IPoIB operation as down to prevent races between:
+ * the flush flow which leaves MCG and on the fly joins
+ * which can happen during that time. mcast restart task
+ * should deal with join requests we missed.
+ */
+ oper_up = test_and_clear_bit(IPOIB_FLAG_OPER_UP, &priv->flags);
ipoib_mcast_dev_flush(dev);
+ if (oper_up)
+ set_bit(IPOIB_FLAG_OPER_UP, &priv->flags);
ipoib_flush_ah(dev);
}
next prev parent reply other threads:[~2016-10-06 9:01 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20161006085617uscas1p138247ef1e0fc1f67a8925f522d0aed06@uscas1p1.samsung.com>
2016-10-06 8:28 ` [PATCH 4.4 00/93] 4.4.24-stable review Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 01/93] cpuset: handle race between CPU hotplug and cpuset_hotplug_work Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 02/93] mtd: nand: davinci: Reinitialize the HW ECC engine in 4bit hwctl Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 03/93] mm,ksm: fix endless looping in allocating memory when ksm enable Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 04/93] can: dev: fix deadlock reported after bus-off Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 05/93] x86/init: Fix cr4_init_shadow() on CR4-less machines Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 06/93] x86/boot: Initialize FPU and X86_FEATURE_ALWAYS even if we dont have CPUID Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 07/93] drm/nouveau/fifo/nv04: avoid ramht race against cookie insertion Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 08/93] drm/radeon/si/dpm: add workaround for for Jet parts Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 09/93] ARM: 8616/1: dt: Respect property size when parsing CPUs Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 10/93] ARM: 8617/1: dma: fix dma_max_pfn() Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 11/93] usb: musb: Fix DMA desired mode for Mentor DMA engine Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 12/93] usb: musb: fix DMA for host mode Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 13/93] iwlwifi: mvm: fix a few firmware capability checks Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 14/93] perf/core: Fix pmu::filter_match for SW-led groups Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 15/93] i40e: avoid null pointer dereference Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 16/93] pinctrl: uniphier: fix .pin_dbg_show() callback Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 17/93] pinctrl: Flag strict is a field in struct pinmux_ops Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 18/93] drivers/perf: arm_pmu: Fix leak in error path Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 19/93] mmc: pxamci: fix potential oops Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 20/93] tools/vm/slabinfo: fix an unintentional printf Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 21/93] ipvs: fix bind to link-local mcast IPv6 address in backup Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 22/93] nvmem: Declare nvmem_cell_read() consistently Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 23/93] hwmon: (adt7411) set bit 3 in CFG1 register Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 24/93] spi: sh-msiof: Avoid invalid clock generator parameters Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 25/93] iwlwifi: pcie: fix access to scratch buffer Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 26/93] iwlwifi: mvm: dont use ret when not initialised Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 27/93] ceph: fix race during filling readdir cache Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 28/93] usb: gadget: fsl_qe_udc: signedness bug in qe_get_frame() Greg Kroah-Hartman
2016-10-06 8:28 ` [PATCH 4.4 29/93] gpio: sa1100: fix irq probing for ucb1x00 Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 30/93] irqchip/gicv3: Silence noisy DEBUG_PER_CPU_MAPS warning Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 31/93] ARM: 8618/1: decompressor: reset ttbcr fields to use TTBR0 on ARMv7 Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 32/93] arm64: debug: avoid resetting stepping state machine when TIF_SINGLESTEP Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 33/93] MIPS: uprobes: remove incorrect set_orig_insn Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 34/93] MIPS: fix uretprobe implementation Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 35/93] MIPS: Malta: Fix IOCU disable switch read for MIPS64 Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 36/93] MIPS: uprobes: fix use of uninitialised variable Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 37/93] printk: fix parsing of "brl=" option Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 38/93] tpm: fix byte-order for the value read by tpm2_get_tpm_pt Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 39/93] regulator: qcom_spmi: Add support for S4 supply on pm8941 Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 40/93] regulator: qcom_spmi: Add support for get_mode/set_mode on switches Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 41/93] regulator: qcom_spmi: Update mvs1/mvs2 switches on pm8941 Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 42/93] regulator: qcom_smd: Fix voltage ranges for pm8x41 Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 44/93] ARM: sa1100: register clocks early Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 45/93] ARM: sa1100: fix 3.6864MHz clock Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 46/93] ARM: sa1100: clear reset status prior to reboot Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 47/93] ARM: shmobile: fix regulator quirk for Gen2 Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 48/93] ARM: sa1111: fix pcmcia suspend/resume Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 49/93] hwrng: omap - Fix assumption that runtime_get_sync will always succeed Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 50/93] blk-mq: actually hook up defer list when running requests Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 51/93] pstore: drop file opened reference count Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 52/93] tile: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 53/93] iwlmvm: mvm: set correct state in smart-fifo configuration Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 55/93] [media] em28xx-i2c: rt_mutex_trylock() returns zero on failure Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 56/93] [media] gspca: avoid unused variable warnings Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 57/93] ath9k: Fix programming of minCCA power threshold Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 58/93] avr32: off by one in at32_init_pio() Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 59/93] fnic: pci_dma_mapping_error() doesnt return an error code Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 60/93] dmaengine: at_xdmac: fix debug string Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 61/93] svc: Avoid garbage replies when pc_func() returns rpc_drop_reply Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 62/93] NFS: Dont drop CB requests with invalid principals Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 63/93] pNFS/files: Fix layoutcommit after a commit to DS Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 64/93] pNFS/flexfiles: " Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 65/93] ASoC: Intel: Skylake: Fix error return code in skl_probe() Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 66/93] brcmfmac: Fix glob_skb leak in brcmf_sdiod_recv_chain Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 67/93] brcmsmac: Free packet if dma_mapping_error() fails in dma_rxfill Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 68/93] brcmsmac: Initialize power in brcms_c_stf_ss_algo_channel_get() Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 69/93] powerpc/prom: Fix sub-processor option passed to ibm, client-architecture-support Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 70/93] sysctl: handle error writing UINT_MAX to u32 fields Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 71/93] ASoC: omap-mcpdm: Fix irq resource handling Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 72/93] kernel/fork: fix CLONE_CHILD_CLEARTID regression in nscd Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 73/93] dmaengine: at_xdmac: fix to pass correct device identity to free_irq() Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 75/93] IB/ipoib: Fix memory corruption in ipoib cm mode connect flow Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 76/93] IB/core: Fix use after free in send_leave function Greg Kroah-Hartman
2016-10-06 8:29 ` Greg Kroah-Hartman [this message]
2016-10-06 8:29 ` [PATCH 4.4 78/93] IB/mlx4: Fix incorrect MC join state bit-masking on SR-IOV Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 79/93] IB/mlx4: Fix code indentation in QP1 MAD flow Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 80/93] IB/mlx4: Use correct subnet-prefix in QP1 mads under SR-IOV Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 82/93] aio: mark AIO pseudo-fs noexec Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 83/93] clk: xgene: Add missing parenthesis when clearing divider value Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 84/93] dm log writes: fix bug with too large bios Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 85/93] USB: serial: cp210x: fix hardware flow-control disable Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 86/93] usb: misc: legousbtower: Fix NULL pointer deference Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 87/93] Staging: fbtft: Fix bug in fbtft-core Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 88/93] USB: serial: cp210x: Add ID for a Juniper console Greg Kroah-Hartman
2016-10-06 8:29 ` [PATCH 4.4 89/93] Revert "usbtmc: convert to devm_kzalloc" Greg Kroah-Hartman
2016-10-06 8:30 ` [PATCH 4.4 90/93] ALSA: hda - Adding one more ALC255 pin definition for headset problem Greg Kroah-Hartman
2016-10-06 8:30 ` [PATCH 4.4 91/93] ACPICA: acpi_get_sleep_type_data: Reduce warnings Greg Kroah-Hartman
2016-10-06 8:30 ` [PATCH 4.4 92/93] ALSA: hda - Fix headset mic detection problem for several Dell laptops Greg Kroah-Hartman
2016-10-06 8:30 ` [PATCH 4.4 93/93] ALSA: hda - Add the top speaker pin config for HP Spectre x360 Greg Kroah-Hartman
2016-10-06 18:42 ` [PATCH 4.4 00/93] 4.4.24-stable review Guenter Roeck
2016-10-06 19:58 ` Shuah Khan
[not found] ` <57f7819c.d4301c0a.965e6.cd11@mx.google.com>
2016-10-07 13:02 ` Greg Kroah-Hartman
2016-10-08 9:53 ` Kevin Hilman
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=20161006074735.154023418@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=dledford@redhat.com \
--cc=leon@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=valex@mellanox.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;
as well as URLs for NNTP newsgroup(s).