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, "Pali Rohár" <pali@kernel.org>,
	"Marek Behún" <kabel@kernel.org>,
	"Lorenzo Pieralisi" <lorenzo.pieralisi@arm.com>
Subject: [PATCH 5.15 061/179] PCI: aardvark: Fix link training
Date: Mon, 29 Nov 2021 19:17:35 +0100	[thread overview]
Message-ID: <20211129181720.971490083@linuxfoundation.org> (raw)
In-Reply-To: <20211129181718.913038547@linuxfoundation.org>

From: Pali Rohár <pali@kernel.org>

commit f76b36d40beee0a13aa8f6aa011df0d7cbbb8a7f upstream.

Fix multiple link training issues in aardvark driver. The main reason of
these issues was misunderstanding of what certain registers do, since their
names and comments were misleading: before commit 96be36dbffac ("PCI:
aardvark: Replace custom macros by standard linux/pci_regs.h macros"), the
pci-aardvark.c driver used custom macros for accessing standard PCIe Root
Bridge registers, and misleading comments did not help to understand what
the code was really doing.

After doing more tests and experiments I've come to the conclusion that the
SPEED_GEN register in aardvark sets the PCIe revision / generation
compliance and forces maximal link speed. Both GEN3 and GEN2 values set the
read-only PCI_EXP_FLAGS_VERS bits (PCIe capabilities version of Root
Bridge) to value 2, while GEN1 value sets PCI_EXP_FLAGS_VERS to 1, which
matches with PCI Express specifications revisions 3, 2 and 1 respectively.
Changing SPEED_GEN also sets the read-only bits PCI_EXP_LNKCAP_SLS and
PCI_EXP_LNKCAP2_SLS to corresponding speed.

(Note that PCI Express rev 1 specification does not define PCI_EXP_LNKCAP2
 and PCI_EXP_LNKCTL2 registers and when SPEED_GEN is set to GEN1 (which
 also sets PCI_EXP_FLAGS_VERS set to 1), lspci cannot access
 PCI_EXP_LNKCAP2 and PCI_EXP_LNKCTL2 registers.)

Changing PCIe link speed can be done via PCI_EXP_LNKCTL2_TLS bits of
PCI_EXP_LNKCTL2 register. Armada 3700 Functional Specifications says that
the default value of PCI_EXP_LNKCTL2_TLS is based on SPEED_GEN value, but
tests showed that the default value is always 8.0 GT/s, independently of
speed set by SPEED_GEN. So after setting SPEED_GEN, we must also set value
in PCI_EXP_LNKCTL2 register via PCI_EXP_LNKCTL2_TLS bits.

Triggering PCI_EXP_LNKCTL_RL bit immediately after setting LINK_TRAINING_EN
bit actually doesn't do anything. Tests have shown that a delay is needed
after enabling LINK_TRAINING_EN bit. As triggering PCI_EXP_LNKCTL_RL
currently does nothing, remove it.

Commit 43fc679ced18 ("PCI: aardvark: Improve link training") introduced
code which sets SPEED_GEN register based on negotiated link speed from
PCI_EXP_LNKSTA_CLS bits of PCI_EXP_LNKSTA register. This code was added to
fix detection of Compex WLE900VX (Atheros QCA9880) WiFi GEN1 PCIe cards, as
otherwise these cards were "invisible" on PCIe bus (probably because they
crashed). But apparently more people reported the same issues with these
cards also with other PCIe controllers [1] and I was able to reproduce this
issue also with other "noname" WiFi cards based on Atheros QCA9890 chip
(with the same PCI vendor/device ids as Atheros QCA9880). So this is not an
issue in aardvark but rather an issue in Atheros QCA98xx chips. Also, this
issue only exists if the kernel is compiled with PCIe ASPM support, and a
generic workaround for this is to change PCIe Bridge to 2.5 GT/s link speed
via PCI_EXP_LNKCTL2_TLS_2_5GT bits in PCI_EXP_LNKCTL2 register [2], before
triggering PCI_EXP_LNKCTL_RL bit. This workaround also works when SPEED_GEN
is set to value GEN2 (5 GT/s). So remove this hack completely in the
aardvark driver and always set SPEED_GEN to value from 'max-link-speed' DT
property. Fix for Atheros QCA98xx chips is handled separately by patch [2].

These two things (code for triggering PCI_EXP_LNKCTL_RL bit and changing
SPEED_GEN value) also explain why commit 6964494582f5 ("PCI: aardvark:
Train link immediately after enabling training") somehow fixed detection of
those problematic Compex cards with Atheros chips: if triggering link
retraining (via PCI_EXP_LNKCTL_RL bit) was done immediately after enabling
link training (via LINK_TRAINING_EN), it did nothing. If there was a
specific delay, aardvark HW already initialized PCIe link and therefore
triggering link retraining caused the above issue. Compex cards triggered
link down event and disappeared from the PCIe bus.

Commit f4c7d053d7f7 ("PCI: aardvark: Wait for endpoint to be ready before
training link") added 100ms sleep before calling 'Start link training'
command and explained that it is a requirement of PCI Express
specification. But the code after this 100ms sleep was not doing 'Start
link training', rather it triggered PCI_EXP_LNKCTL_RL bit via PCIe Root
Bridge to put link into Recovery state.

The required delay after fundamental reset is already done in function
advk_pcie_wait_for_link() which also checks whether PCIe link is up.
So after removing the code which triggers PCI_EXP_LNKCTL_RL bit on PCIe
Root Bridge, there is no need to wait 100ms again. Remove the extra
msleep() call and update comment about the delay required by the PCI
Express specification.

According to Marvell Armada 3700 Functional Specifications, Link training
should be enabled via aardvark register LINK_TRAINING_EN after selecting
PCIe generation and x1 lane. There is no need to disable it prior resetting
card via PERST# signal. This disabling code was introduced in commit
5169a9851daa ("PCI: aardvark: Issue PERST via GPIO") as a workaround for
some Atheros cards. It turns out that this also is Atheros specific issue
and affects any PCIe controller, not only aardvark. Moreover this Atheros
issue was triggered by juggling with PCI_EXP_LNKCTL_RL, LINK_TRAINING_EN
and SPEED_GEN bits interleaved with sleeps. Now, after removing triggering
PCI_EXP_LNKCTL_RL, there is no need to explicitly disable LINK_TRAINING_EN
bit. So remove this code too. The problematic Compex cards described in
previous git commits are correctly detected in advk_pcie_train_link()
function even after applying all these changes.

Note that with this patch, and also prior this patch, some NVMe disks which
support PCIe GEN3 with 8 GT/s speed are negotiated only at the lowest link
speed 2.5 GT/s, independently of SPEED_GEN value. After manually triggering
PCI_EXP_LNKCTL_RL bit (e.g. from userspace via setpci), these NVMe disks
change link speed to 5 GT/s when SPEED_GEN was configured to GEN2. This
issue first needs to be properly investigated. I will send a fix in the
future.

On the other hand, some other GEN2 PCIe cards with 5 GT/s speed are
autonomously by HW autonegotiated at full 5 GT/s speed without need of any
software interaction.

Armada 3700 Functional Specifications describes the following steps for
link training: set SPEED_GEN to GEN2, enable LINK_TRAINING_EN, poll until
link training is complete, trigger PCI_EXP_LNKCTL_RL, poll until signal
rate is 5 GT/s, poll until link training is complete, enable ASPM L0s.

The requirement for triggering PCI_EXP_LNKCTL_RL can be explained by the
need to achieve 5 GT/s speed (as changing link speed is done by throw to
recovery state entered by PCI_EXP_LNKCTL_RL) or maybe as a part of enabling
ASPM L0s (but in this case ASPM L0s should have been enabled prior
PCI_EXP_LNKCTL_RL).

It is unknown why the original pci-aardvark.c driver was triggering
PCI_EXP_LNKCTL_RL bit before waiting for the link to be up. This does not
align with neither PCIe base specifications nor with Armada 3700 Functional
Specification. (Note that in older versions of aardvark, this bit was
called incorrectly PCIE_CORE_LINK_TRAINING, so this may be the reason.)

It is also unknown why Armada 3700 Functional Specification says that it is
needed to trigger PCI_EXP_LNKCTL_RL for GEN2 mode, as according to PCIe
base specification 5 GT/s speed negotiation is supposed to be entirely
autonomous, even if initial speed is 2.5 GT/s.

[1] - https://lore.kernel.org/linux-pci/87h7l8axqp.fsf@toke.dk/
[2] - https://lore.kernel.org/linux-pci/20210326124326.21163-1-pali@kernel.org/

Link: https://lore.kernel.org/r/20211005180952.6812-12-kabel@kernel.org
Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Marek Behún <kabel@kernel.org>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Reviewed-by: Marek Behún <kabel@kernel.org>
Signed-off-by: Marek Behún <kabel@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/pci/controller/pci-aardvark.c |  119 ++++++++++------------------------
 1 file changed, 35 insertions(+), 84 deletions(-)

--- a/drivers/pci/controller/pci-aardvark.c
+++ b/drivers/pci/controller/pci-aardvark.c
@@ -299,11 +299,6 @@ static inline u32 advk_readl(struct advk
 	return readl(pcie->base + reg);
 }
 
-static inline u16 advk_read16(struct advk_pcie *pcie, u64 reg)
-{
-	return advk_readl(pcie, (reg & ~0x3)) >> ((reg & 0x3) * 8);
-}
-
 static u8 advk_pcie_ltssm_state(struct advk_pcie *pcie)
 {
 	u32 val;
@@ -377,23 +372,9 @@ static void advk_pcie_wait_for_retrain(s
 
 static void advk_pcie_issue_perst(struct advk_pcie *pcie)
 {
-	u32 reg;
-
 	if (!pcie->reset_gpio)
 		return;
 
-	/*
-	 * As required by PCI Express spec (PCI Express Base Specification, REV.
-	 * 4.0 PCI Express, February 19 2014, 6.6.1 Conventional Reset) a delay
-	 * for at least 100ms after de-asserting PERST# signal is needed before
-	 * link training is enabled. So ensure that link training is disabled
-	 * prior de-asserting PERST# signal to fulfill that PCI Express spec
-	 * requirement.
-	 */
-	reg = advk_readl(pcie, PCIE_CORE_CTRL0_REG);
-	reg &= ~LINK_TRAINING_EN;
-	advk_writel(pcie, reg, PCIE_CORE_CTRL0_REG);
-
 	/* 10ms delay is needed for some cards */
 	dev_info(&pcie->pdev->dev, "issuing PERST via reset GPIO for 10ms\n");
 	gpiod_set_value_cansleep(pcie->reset_gpio, 1);
@@ -401,54 +382,47 @@ static void advk_pcie_issue_perst(struct
 	gpiod_set_value_cansleep(pcie->reset_gpio, 0);
 }
 
-static int advk_pcie_train_at_gen(struct advk_pcie *pcie, int gen)
+static void advk_pcie_train_link(struct advk_pcie *pcie)
 {
-	int ret, neg_gen;
+	struct device *dev = &pcie->pdev->dev;
 	u32 reg;
+	int ret;
 
-	/* Setup link speed */
+	/*
+	 * Setup PCIe rev / gen compliance based on device tree property
+	 * 'max-link-speed' which also forces maximal link speed.
+	 */
 	reg = advk_readl(pcie, PCIE_CORE_CTRL0_REG);
 	reg &= ~PCIE_GEN_SEL_MSK;
-	if (gen == 3)
+	if (pcie->link_gen == 3)
 		reg |= SPEED_GEN_3;
-	else if (gen == 2)
+	else if (pcie->link_gen == 2)
 		reg |= SPEED_GEN_2;
 	else
 		reg |= SPEED_GEN_1;
 	advk_writel(pcie, reg, PCIE_CORE_CTRL0_REG);
 
 	/*
-	 * Enable link training. This is not needed in every call to this
-	 * function, just once suffices, but it does not break anything either.
-	 */
+	 * Set maximal link speed value also into PCIe Link Control 2 register.
+	 * Armada 3700 Functional Specification says that default value is based
+	 * on SPEED_GEN but tests showed that default value is always 8.0 GT/s.
+	 */
+	reg = advk_readl(pcie, PCIE_CORE_PCIEXP_CAP + PCI_EXP_LNKCTL2);
+	reg &= ~PCI_EXP_LNKCTL2_TLS;
+	if (pcie->link_gen == 3)
+		reg |= PCI_EXP_LNKCTL2_TLS_8_0GT;
+	else if (pcie->link_gen == 2)
+		reg |= PCI_EXP_LNKCTL2_TLS_5_0GT;
+	else
+		reg |= PCI_EXP_LNKCTL2_TLS_2_5GT;
+	advk_writel(pcie, reg, PCIE_CORE_PCIEXP_CAP + PCI_EXP_LNKCTL2);
+
+	/* Enable link training after selecting PCIe generation */
 	reg = advk_readl(pcie, PCIE_CORE_CTRL0_REG);
 	reg |= LINK_TRAINING_EN;
 	advk_writel(pcie, reg, PCIE_CORE_CTRL0_REG);
 
 	/*
-	 * Start link training immediately after enabling it.
-	 * This solves problems for some buggy cards.
-	 */
-	reg = advk_readl(pcie, PCIE_CORE_PCIEXP_CAP + PCI_EXP_LNKCTL);
-	reg |= PCI_EXP_LNKCTL_RL;
-	advk_writel(pcie, reg, PCIE_CORE_PCIEXP_CAP + PCI_EXP_LNKCTL);
-
-	ret = advk_pcie_wait_for_link(pcie);
-	if (ret)
-		return ret;
-
-	reg = advk_read16(pcie, PCIE_CORE_PCIEXP_CAP + PCI_EXP_LNKSTA);
-	neg_gen = reg & PCI_EXP_LNKSTA_CLS;
-
-	return neg_gen;
-}
-
-static void advk_pcie_train_link(struct advk_pcie *pcie)
-{
-	struct device *dev = &pcie->pdev->dev;
-	int neg_gen = -1, gen;
-
-	/*
 	 * Reset PCIe card via PERST# signal. Some cards are not detected
 	 * during link training when they are in some non-initial state.
 	 */
@@ -458,41 +432,18 @@ static void advk_pcie_train_link(struct
 	 * PERST# signal could have been asserted by pinctrl subsystem before
 	 * probe() callback has been called or issued explicitly by reset gpio
 	 * function advk_pcie_issue_perst(), making the endpoint going into
-	 * fundamental reset. As required by PCI Express spec a delay for at
-	 * least 100ms after such a reset before link training is needed.
-	 */
-	msleep(PCI_PM_D3COLD_WAIT);
-
-	/*
-	 * Try link training at link gen specified by device tree property
-	 * 'max-link-speed'. If this fails, iteratively train at lower gen.
-	 */
-	for (gen = pcie->link_gen; gen > 0; --gen) {
-		neg_gen = advk_pcie_train_at_gen(pcie, gen);
-		if (neg_gen > 0)
-			break;
-	}
-
-	if (neg_gen < 0)
-		goto err;
-
-	/*
-	 * After successful training if negotiated gen is lower than requested,
-	 * train again on negotiated gen. This solves some stability issues for
-	 * some buggy gen1 cards.
+	 * fundamental reset. As required by PCI Express spec (PCI Express
+	 * Base Specification, REV. 4.0 PCI Express, February 19 2014, 6.6.1
+	 * Conventional Reset) a delay for at least 100ms after such a reset
+	 * before sending a Configuration Request to the device is needed.
+	 * So wait until PCIe link is up. Function advk_pcie_wait_for_link()
+	 * waits for link at least 900ms.
 	 */
-	if (neg_gen < gen) {
-		gen = neg_gen;
-		neg_gen = advk_pcie_train_at_gen(pcie, gen);
-	}
-
-	if (neg_gen == gen) {
-		dev_info(dev, "link up at gen %i\n", gen);
-		return;
-	}
-
-err:
-	dev_err(dev, "link never came up\n");
+	ret = advk_pcie_wait_for_link(pcie);
+	if (ret < 0)
+		dev_err(dev, "link never came up\n");
+	else
+		dev_info(dev, "link up\n");
 }
 
 /*



  parent reply	other threads:[~2021-11-29 18:40 UTC|newest]

Thread overview: 189+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-29 18:16 [PATCH 5.15 000/179] 5.15.6-rc1 review Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 001/179] scsi: sd: Fix sd_do_mode_sense() buffer length handling Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 002/179] ACPI: Get acpi_devices parent from the parent field Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 003/179] ACPI: CPPC: Add NULL pointer check to cppc_get_perf() Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 004/179] USB: serial: pl2303: fix GC type detection Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 005/179] USB: serial: option: add Telit LE910S1 0x9200 composition Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 006/179] USB: serial: option: add Fibocom FM101-GL variants Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 007/179] usb: dwc2: gadget: Fix ISOC flow for elapsed frames Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 008/179] usb: dwc2: hcd_queue: Fix use of floating point literal Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 009/179] usb: dwc3: leave default DMA for PCI devices Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 010/179] usb: dwc3: core: Revise GHWPARAMS9 offset Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 011/179] usb: dwc3: gadget: Ignore NoStream after End Transfer Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 012/179] usb: dwc3: gadget: Check for L1/L2/U3 for Start Transfer Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 013/179] usb: dwc3: gadget: Fix null pointer exception Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 014/179] net: usb: Correct PHY handling of smsc95xx Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 015/179] net: nexthop: fix null pointer dereference when IPv6 is not enabled Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 016/179] usb: chipidea: ci_hdrc_imx: fix potential error pointer dereference in probe Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 017/179] usb: typec: fusb302: Fix masking of comparator and bc_lvl interrupts Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 018/179] usb: xhci: tegra: Check padctrl interrupt presence in device tree Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 019/179] usb: hub: Fix usb enumeration issue due to address0 race Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 020/179] usb: hub: Fix locking issues with address0_mutex Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 021/179] binder: fix test regression due to sender_euid change Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 022/179] ALSA: ctxfi: Fix out-of-range access Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 023/179] ALSA: hda/realtek: Add quirk for ASRock NUC Box 1100 Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 024/179] ALSA: hda/realtek: Fix LED on HP ProBook 435 G7 Greg Kroah-Hartman
2021-11-29 18:16 ` [PATCH 5.15 025/179] media: cec: copy sequence field for the reply Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 026/179] Revert "parisc: Fix backtrace to always include init funtion names" Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 027/179] HID: wacom: Use "Confidence" flag to prevent reporting invalid contacts Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 028/179] staging/fbtft: Fix backlight Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 029/179] staging: greybus: Add missing rwsem around snd_ctl_remove() calls Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 030/179] staging: rtl8192e: Fix use after free in _rtl92e_pci_disconnect() Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 031/179] staging: r8188eu: Use kzalloc() with GFP_ATOMIC in atomic context Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 032/179] staging: r8188eu: Fix breakage introduced when 5G code was removed Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 033/179] staging: r8188eu: use GFP_ATOMIC under spinlock Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 034/179] staging: r8188eu: fix a memory leak in rtw_wx_read32() Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 035/179] fuse: release pipe buf after last use Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 036/179] xen: dont continue xenstore initialization in case of errors Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 037/179] xen: detect uninitialized xenbus in xenbus_init Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 038/179] io_uring: correct link-list traversal locking Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 039/179] io_uring: fail cancellation for EXITING tasks Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 040/179] io_uring: fix link traversal locking Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 041/179] drm/amdgpu: IH process reset count when restart Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 042/179] drm/amdgpu/pm: fix powerplay OD interface Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 043/179] drm/nouveau: recognise GA106 Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 044/179] ksmbd: downgrade addition info error msg to debug in smb2_get_info_sec() Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 045/179] ksmbd: contain default data stream even if xattr is empty Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 046/179] ksmbd: fix memleak in get_file_stream_info() Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 047/179] KVM: PPC: Book3S HV: Prevent POWER7/8 TLB flush flushing SLB Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 048/179] tracing/uprobe: Fix uprobe_perf_open probes iteration Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 049/179] tracing: Fix pid filtering when triggers are attached Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 050/179] mmc: sdhci-esdhc-imx: disable CMDQ support Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 051/179] mmc: sdhci: Fix ADMA for PAGE_SIZE >= 64KiB Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 052/179] mdio: aspeed: Fix "Link is Down" issue Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 053/179] arm64: mm: Fix VM_BUG_ON(mm != &init_mm) for trans_pgd Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 054/179] cpufreq: intel_pstate: Fix active mode offline/online EPP handling Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 055/179] powerpc/32: Fix hardlockup on vmap stack overflow Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 056/179] iomap: Fix inline extent handling in iomap_readpage Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 057/179] NFSv42: Fix pagecache invalidation after COPY/CLONE Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 058/179] PCI: aardvark: Deduplicate code in advk_pcie_rd_conf() Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 059/179] PCI: aardvark: Implement re-issuing config requests on CRS response Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 060/179] PCI: aardvark: Simplify initialization of rootcap on virtual bridge Greg Kroah-Hartman
2021-11-29 18:17 ` Greg Kroah-Hartman [this message]
2021-11-29 18:17 ` [PATCH 5.15 062/179] drm/amd/display: Fix OLED brightness control on eDP Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 063/179] proc/vmcore: fix clearing user buffer by properly using clear_user() Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 064/179] ASoC: SOF: Intel: hda: fix hotplug when only codec is suspended Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 065/179] netfilter: ctnetlink: fix filtering with CTA_TUPLE_REPLY Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 066/179] netfilter: ctnetlink: do not erase error code with EINVAL Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 067/179] netfilter: ipvs: Fix reuse connection if RS weight is 0 Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 068/179] netfilter: flowtable: fix IPv6 tunnel addr match Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 069/179] media: v4l2-core: fix VIDIOC_DQEVENT handling on non-x86 Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 070/179] firmware: arm_scmi: Fix null de-reference on error path Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 071/179] ARM: dts: BCM5301X: Fix I2C controller interrupt Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 072/179] ARM: dts: BCM5301X: Add interrupt properties to GPIO node Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 073/179] ARM: dts: bcm2711: Fix PCIe interrupts Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 074/179] ASoC: qdsp6: q6routing: Conditionally reset FrontEnd Mixer Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 075/179] ASoC: qdsp6: q6asm: fix q6asm_dai_prepare error handling Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 076/179] ASoC: topology: Add missing rwsem around snd_ctl_remove() calls Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 077/179] ASoC: codecs: wcd938x: fix volatile register range Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 078/179] ASoC: codecs: wcd934x: return error code correctly from hw_params Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 079/179] ASoC: codecs: lpass-rx-macro: fix HPHR setting CLSH mask Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 080/179] net: ieee802154: handle iftypes as u32 Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 081/179] firmware: arm_scmi: Fix base agent discover response Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 082/179] firmware: arm_scmi: pm: Propagate return value to caller Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 083/179] ASoC: stm32: i2s: fix 32 bits channel length without mclk Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 084/179] NFSv42: Dont fail clone() unless the OP_CLONE operation failed Greg Kroah-Hartman
2021-11-29 18:17 ` [PATCH 5.15 085/179] ARM: socfpga: Fix crash with CONFIG_FORTIRY_SOURCE Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 086/179] drm/nouveau/acr: fix a couple NULL vs IS_ERR() checks Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 087/179] scsi: qla2xxx: edif: Fix off by one bug in qla_edif_app_getfcinfo() Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 088/179] scsi: mpt3sas: Fix kernel panic during drive powercycle test Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 089/179] scsi: mpt3sas: Fix system going into read-only mode Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 090/179] scsi: mpt3sas: Fix incorrect system timestamp Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 091/179] drm/vc4: fix error code in vc4_create_object() Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 092/179] drm/aspeed: Fix vga_pw sysfs output Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 093/179] net: marvell: prestera: fix brige port operation Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 094/179] net: marvell: prestera: fix double free issue on err path Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 095/179] HID: input: Fix parsing of HID_CP_CONSUMER_CONTROL fields Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 096/179] HID: input: set usage type to key on keycode remap Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 097/179] HID: magicmouse: prevent division by 0 on scroll Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 098/179] iavf: Prevent changing static ITR values if adaptive moderation is on Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 099/179] iavf: Fix refreshing iavf adapter stats on ethtool request Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 100/179] iavf: Fix VLAN feature flags after VFR Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 101/179] x86/pvh: add prototype for xen_pvh_init() Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 102/179] xen/pvh: add missing prototype to header Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 103/179] ALSA: intel-dsp-config: add quirk for JSL devices based on ES8336 codec Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 104/179] mptcp: fix delack timer Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 105/179] mptcp: use delegate action to schedule 3rd ack retrans Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 106/179] af_unix: fix regression in read after shutdown Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 107/179] firmware: smccc: Fix check for ARCH_SOC_ID not implemented Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 108/179] ipv6: fix typos in __ip6_finish_output() Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 109/179] nfp: checking parameter process for rx-usecs/tx-usecs is invalid Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 110/179] net: stmmac: retain PTP clock time during SIOCSHWTSTAMP ioctls Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 111/179] net: ipv6: add fib6_nh_release_dsts stub Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 112/179] net: nexthop: release IPv6 per-cpu dsts when replacing a nexthop group Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 113/179] ice: fix vsi->txq_map sizing Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 114/179] ice: avoid bpf_prog refcount underflow Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 115/179] scsi: core: sysfs: Fix setting device state to SDEV_RUNNING Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 116/179] scsi: scsi_debug: Zero clear zones at reset write pointer Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 117/179] erofs: fix deadlock when shrink erofs slab Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 118/179] i2c: virtio: disable timeout handling Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 119/179] net/smc: Ensure the active closing peer first closes clcsock Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 120/179] mlxsw: spectrum: Protect driver from buggy firmware Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 121/179] net: ipa: directly disable ipa-setup-ready interrupt Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 122/179] net: ipa: separate disabling setup from modem stop Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 123/179] net: ipa: kill ipa_cmd_pipeline_clear() Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 124/179] net: marvell: mvpp2: increase MTU limit when XDP enabled Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 125/179] cpufreq: intel_pstate: Add Ice Lake server to out-of-band IDs Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 126/179] nvmet-tcp: fix incomplete data digest send Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 127/179] drm/hyperv: Fix device removal on Gen1 VMs Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 128/179] arm64: uaccess: avoid blocking within critical sections Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 129/179] net/ncsi : Add payload to be 32-bit aligned to fix dropped packets Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 130/179] PM: hibernate: use correct mode for swsusp_close() Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 131/179] drm/amd/display: Fix DPIA outbox timeout after GPU reset Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 132/179] drm/amd/display: Set plane update flags for all planes in reset Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 133/179] tcp_cubic: fix spurious Hystart ACK train detections for not-cwnd-limited flows Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 134/179] lan743x: fix deadlock in lan743x_phy_link_status_change() Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 135/179] net: phylink: Force link down and retrigger resolve on interface change Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 136/179] net: phylink: Force retrigger in case of latched link-fail indicator Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 137/179] net/smc: Fix NULL pointer dereferencing in smc_vlan_by_tcpsk() Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 138/179] net/smc: Fix loop in smc_listen Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 139/179] nvmet: use IOCB_NOWAIT only if the filesystem supports it Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 140/179] igb: fix netpoll exit with traffic Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 141/179] MIPS: loongson64: fix FTLB configuration Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 142/179] MIPS: use 3-level pgtable for 64KB page size on MIPS_VA_BITS_48 Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 143/179] tls: splice_read: fix record type check Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 144/179] tls: splice_read: fix accessing pre-processed records Greg Kroah-Hartman
2021-11-29 18:18 ` [PATCH 5.15 145/179] tls: fix replacing proto_ops Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 146/179] net: stmmac: Disable Tx queues when reconfiguring the interface Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 147/179] net/sched: sch_ets: dont peek at classes beyond nbands Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 148/179] ethtool: ioctl: fix potential NULL deref in ethtool_set_coalesce() Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 149/179] net: vlan: fix underflow for the real_dev refcnt Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 150/179] net/smc: Dont call clcsock shutdown twice when smc shutdown Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 151/179] net: hns3: fix VF RSS failed problem after PF enable multi-TCs Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 152/179] net: hns3: fix incorrect components info of ethtool --reset command Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 153/179] net: mscc: ocelot: dont downgrade timestamping RX filters in SIOCSHWTSTAMP Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 154/179] net: mscc: ocelot: correctly report the timestamping RX filters in ethtool Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 155/179] locking/rwsem: Make handoff bit handling more consistent Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 156/179] perf: Ignore sigtrap for tracepoints destined for other tasks Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 157/179] sched/scs: Reset task stack state in bringup_cpu() Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 158/179] iommu/rockchip: Fix PAGE_DESC_HI_MASKs for RK3568 Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 159/179] iommu/vt-d: Fix unmap_pages support Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 160/179] f2fs: quota: fix potential deadlock Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 161/179] f2fs: set SBI_NEED_FSCK flag when inconsistent node block found Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 162/179] riscv: dts: microchip: fix board compatible Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 163/179] riscv: dts: microchip: drop duplicated MMC/SDHC node Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 164/179] cifs: nosharesock should not share socket with future sessions Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 165/179] ceph: properly handle statfs on multifs setups Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 166/179] iommu/amd: Clarify AMD IOMMUv2 initialization messages Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 167/179] vdpa_sim: avoid putting an uninitialized iova_domain Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 168/179] vhost/vsock: fix incorrect used length reported to the guest Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 169/179] ksmbd: Fix an error handling path in smb2_sess_setup() Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 170/179] tracing: Check pid filtering when creating events Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 171/179] cifs: nosharesock should be set on new server Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 172/179] io_uring: fix soft lockup when call __io_remove_buffers Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 173/179] firmware: arm_scmi: Fix type error assignment in voltage protocol Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 174/179] firmware: arm_scmi: Fix type error in sensor protocol Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 175/179] docs: accounting: update delay-accounting.rst reference Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 176/179] blk-mq: cancel blk-mq dispatch work in both blk_cleanup_queue and disk_release() Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 177/179] block: avoid to quiesce queue in elevator_init_mq Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 178/179] drm/amdgpu/gfx10: add wraparound gpu counter check for APUs as well Greg Kroah-Hartman
2021-11-29 18:19 ` [PATCH 5.15 179/179] drm/amdgpu/gfx9: switch to golden tsc registers for renoir+ Greg Kroah-Hartman
2021-11-30  1:02 ` [PATCH 5.15 000/179] 5.15.6-rc1 review Shuah Khan
2021-11-30  1:56 ` Fox Chen
2021-11-30  4:22 ` Florian Fainelli
2021-11-30  5:46 ` Naresh Kamboju
2021-11-30  8:48 ` Jon Hunter
2021-11-30  8:54   ` Greg Kroah-Hartman
2021-11-30  9:02     ` Jon Hunter
2021-11-30 17:40 ` Guenter Roeck
2021-12-01  2:29 ` Justin Forbes

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=20211129181720.971490083@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=kabel@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=pali@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;
as well as URLs for NNTP newsgroup(s).