All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Alex Lyakas <alex.lyakas@zadara.com>, Song Liu <song@kernel.org>,
	Sasha Levin <sashal@kernel.org>,
	linux-raid@vger.kernel.org
Subject: [PATCH AUTOSEL 6.6 080/104] md: Whenassemble the array, consult the superblock of the freshest device
Date: Tue, 16 Jan 2024 14:46:46 -0500	[thread overview]
Message-ID: <20240116194908.253437-80-sashal@kernel.org> (raw)
In-Reply-To: <20240116194908.253437-1-sashal@kernel.org>

From: Alex Lyakas <alex.lyakas@zadara.com>

[ Upstream commit dc1cc22ed58f11d58d8553c5ec5f11cbfc3e3039 ]

Upon assembling the array, both kernel and mdadm allow the devices to have event
counter difference of 1, and still consider them as up-to-date.
However, a device whose event count is behind by 1, may in fact not be up-to-date,
and array resync with such a device may cause data corruption.
To avoid this, consult the superblock of the freshest device about the status
of a device, whose event counter is behind by 1.

Signed-off-by: Alex Lyakas <alex.lyakas@zadara.com>
Signed-off-by: Song Liu <song@kernel.org>
Link: https://lore.kernel.org/r/1702470271-16073-1-git-send-email-alex.lyakas@zadara.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/md/md.c | 54 ++++++++++++++++++++++++++++++++++++++++---------
 1 file changed, 44 insertions(+), 10 deletions(-)

diff --git a/drivers/md/md.c b/drivers/md/md.c
index b2ef6af8376a..0f52e6505a7b 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -1112,6 +1112,7 @@ struct super_type  {
 					  struct md_rdev *refdev,
 					  int minor_version);
 	int		    (*validate_super)(struct mddev *mddev,
+					      struct md_rdev *freshest,
 					      struct md_rdev *rdev);
 	void		    (*sync_super)(struct mddev *mddev,
 					  struct md_rdev *rdev);
@@ -1249,8 +1250,9 @@ static int super_90_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor
 
 /*
  * validate_super for 0.90.0
+ * note: we are not using "freshest" for 0.9 superblock
  */
-static int super_90_validate(struct mddev *mddev, struct md_rdev *rdev)
+static int super_90_validate(struct mddev *mddev, struct md_rdev *freshest, struct md_rdev *rdev)
 {
 	mdp_disk_t *desc;
 	mdp_super_t *sb = page_address(rdev->sb_page);
@@ -1762,7 +1764,7 @@ static int super_1_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor_
 	return ret;
 }
 
-static int super_1_validate(struct mddev *mddev, struct md_rdev *rdev)
+static int super_1_validate(struct mddev *mddev, struct md_rdev *freshest, struct md_rdev *rdev)
 {
 	struct mdp_superblock_1 *sb = page_address(rdev->sb_page);
 	__u64 ev1 = le64_to_cpu(sb->events);
@@ -1858,13 +1860,15 @@ static int super_1_validate(struct mddev *mddev, struct md_rdev *rdev)
 		}
 	} else if (mddev->pers == NULL) {
 		/* Insist of good event counter while assembling, except for
-		 * spares (which don't need an event count) */
-		++ev1;
+		 * spares (which don't need an event count).
+		 * Similar to mdadm, we allow event counter difference of 1
+		 * from the freshest device.
+		 */
 		if (rdev->desc_nr >= 0 &&
 		    rdev->desc_nr < le32_to_cpu(sb->max_dev) &&
 		    (le16_to_cpu(sb->dev_roles[rdev->desc_nr]) < MD_DISK_ROLE_MAX ||
 		     le16_to_cpu(sb->dev_roles[rdev->desc_nr]) == MD_DISK_ROLE_JOURNAL))
-			if (ev1 < mddev->events)
+			if (ev1 + 1 < mddev->events)
 				return -EINVAL;
 	} else if (mddev->bitmap) {
 		/* If adding to array with a bitmap, then we can accept an
@@ -1885,8 +1889,38 @@ static int super_1_validate(struct mddev *mddev, struct md_rdev *rdev)
 		    rdev->desc_nr >= le32_to_cpu(sb->max_dev)) {
 			role = MD_DISK_ROLE_SPARE;
 			rdev->desc_nr = -1;
-		} else
+		} else if (mddev->pers == NULL && freshest && ev1 < mddev->events) {
+			/*
+			 * If we are assembling, and our event counter is smaller than the
+			 * highest event counter, we cannot trust our superblock about the role.
+			 * It could happen that our rdev was marked as Faulty, and all other
+			 * superblocks were updated with +1 event counter.
+			 * Then, before the next superblock update, which typically happens when
+			 * remove_and_add_spares() removes the device from the array, there was
+			 * a crash or reboot.
+			 * If we allow current rdev without consulting the freshest superblock,
+			 * we could cause data corruption.
+			 * Note that in this case our event counter is smaller by 1 than the
+			 * highest, otherwise, this rdev would not be allowed into array;
+			 * both kernel and mdadm allow event counter difference of 1.
+			 */
+			struct mdp_superblock_1 *freshest_sb = page_address(freshest->sb_page);
+			u32 freshest_max_dev = le32_to_cpu(freshest_sb->max_dev);
+
+			if (rdev->desc_nr >= freshest_max_dev) {
+				/* this is unexpected, better not proceed */
+				pr_warn("md: %s: rdev[%pg]: desc_nr(%d) >= freshest(%pg)->sb->max_dev(%u)\n",
+						mdname(mddev), rdev->bdev, rdev->desc_nr,
+						freshest->bdev, freshest_max_dev);
+				return -EUCLEAN;
+			}
+
+			role = le16_to_cpu(freshest_sb->dev_roles[rdev->desc_nr]);
+			pr_debug("md: %s: rdev[%pg]: role=%d(0x%x) according to freshest %pg\n",
+				     mdname(mddev), rdev->bdev, role, role, freshest->bdev);
+		} else {
 			role = le16_to_cpu(sb->dev_roles[rdev->desc_nr]);
+		}
 		switch(role) {
 		case MD_DISK_ROLE_SPARE: /* spare */
 			break;
@@ -2794,7 +2828,7 @@ static int add_bound_rdev(struct md_rdev *rdev)
 		 * and should be added immediately.
 		 */
 		super_types[mddev->major_version].
-			validate_super(mddev, rdev);
+			validate_super(mddev, NULL/*freshest*/, rdev);
 		if (add_journal)
 			mddev_suspend(mddev);
 		err = mddev->pers->hot_add_disk(mddev, rdev);
@@ -3732,7 +3766,7 @@ static int analyze_sbs(struct mddev *mddev)
 	}
 
 	super_types[mddev->major_version].
-		validate_super(mddev, freshest);
+		validate_super(mddev, NULL/*freshest*/, freshest);
 
 	i = 0;
 	rdev_for_each_safe(rdev, tmp, mddev) {
@@ -3747,7 +3781,7 @@ static int analyze_sbs(struct mddev *mddev)
 		}
 		if (rdev != freshest) {
 			if (super_types[mddev->major_version].
-			    validate_super(mddev, rdev)) {
+			    validate_super(mddev, freshest, rdev)) {
 				pr_warn("md: kicking non-fresh %pg from array!\n",
 					rdev->bdev);
 				md_kick_rdev_from_array(rdev);
@@ -6799,7 +6833,7 @@ int md_add_new_disk(struct mddev *mddev, struct mdu_disk_info_s *info)
 			rdev->saved_raid_disk = rdev->raid_disk;
 		} else
 			super_types[mddev->major_version].
-				validate_super(mddev, rdev);
+				validate_super(mddev, NULL/*freshest*/, rdev);
 		if ((info->state & (1<<MD_DISK_SYNC)) &&
 		     rdev->raid_disk != info->raid_disk) {
 			/* This was a hot-add request, but events doesn't
-- 
2.43.0


  parent reply	other threads:[~2024-01-16 19:53 UTC|newest]

Thread overview: 134+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-16 19:45 [PATCH AUTOSEL 6.6 001/104] wifi: rtw89: fix timeout calculation in rtw89_roc_end() Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 002/104] wifi: rt2x00: restart beacon queue when hardware reset Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 003/104] selftests/bpf: fix RELEASE=1 build for tc_opts Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 004/104] selftests/bpf: satisfy compiler by having explicit return in btf test Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 005/104] libbpf: Fix potential uninitialized tail padding with LIBBPF_OPTS_RESET Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 006/104] selftests/bpf: Fix pyperf180 compilation failure with clang18 Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 007/104] wifi: rt2x00: correct wrong BBP register in RxDCOC calibration Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 008/104] selftests/bpf: Fix issues in setup_classid_environment() Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 009/104] ARM: dts: qcom: strip prefix from PMIC files Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 010/104] ARM: dts: qcom: apq8064: fix PMIC node labels Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 011/104] ARM: dts: qcom: mdm9615: " Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 012/104] ARM: dts: qcom: msm8660: " Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 013/104] ARM: dts: qcom: msm8960: " Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 014/104] soc: xilinx: Fix for call trace due to the usage of smp_processor_id() Sasha Levin
2024-01-16 19:45   ` Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 015/104] soc: xilinx: fix unhandled SGI warning message Sasha Levin
2024-01-16 19:45   ` Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 016/104] scsi: lpfc: Fix possible file string name overflow when updating firmware Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 017/104] ARM: dts: samsung: exynos4: fix camera unit addresses/ranges Sasha Levin
2024-01-16 19:45   ` Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 018/104] ARM: dts: samsung: s5pv210: " Sasha Levin
2024-01-16 19:45   ` Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 019/104] net: phy: micrel: fix ts_info value in case of no phc Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 020/104] PCI: Add no PM reset quirk for NVIDIA Spectrum devices Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 021/104] r8169: improve RTL8411b phy-down fixup Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 022/104] bonding: return -ENOMEM instead of BUG in alb_upper_dev_walk Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 023/104] net: usb: ax88179_178a: avoid two consecutive device resets Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 024/104] wifi: ieee80211: fix PV1 frame control field name Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 025/104] scsi: mpi3mr: Add support for SAS5116 PCI IDs Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 026/104] scsi: mpi3mr: Add PCI checks where SAS5116 diverges from SAS4116 Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 027/104] scsi: arcmsr: Support new PCI device IDs 1883 and 1886 Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 028/104] ARM: dts: imx7d: Fix coresight funnel ports Sasha Levin
2024-01-16 19:45   ` Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 029/104] ARM: dts: imx7s: Fix lcdif compatible Sasha Levin
2024-01-16 19:45   ` Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 030/104] ARM: dts: imx7s: Fix nand-controller #size-cells Sasha Levin
2024-01-16 19:45   ` Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 031/104] bpf: Fix a few selftest failures due to llvm18 change Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 032/104] wifi: ath9k: Fix potential array-index-out-of-bounds read in ath9k_htc_txstatus() Sasha Levin
2024-01-16 19:45 ` [PATCH AUTOSEL 6.6 033/104] wifi: ath11k: fix race due to setting ATH11K_FLAG_EXT_IRQ_ENABLED too early Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 034/104] wifi: rtw89: fix misbehavior of TX beacon in concurrent mode Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 035/104] bnxt_en: Add 5760X (P7) PCI IDs Sasha Levin
2024-01-16 20:17   ` Michael Chan
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 036/104] bpf: Check rcu_read_lock_trace_held() before calling bpf map helpers Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 037/104] bpf: Add map and need_defer parameters to .map_fd_put_ptr() Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 038/104] bpf: Set need_defer as false when clearing fd array during map free Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 039/104] wifi: ath12k: fix and enable AP mode for WCN7850 Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 040/104] scsi: libfc: Don't schedule abort twice Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 041/104] scsi: libfc: Fix up timeout error in fc_fcp_rec_error() Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 042/104] net: mvmdio: Avoid excessive sleeps in polled mode Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 043/104] usb: typec: ucsi: fix UCSI on buggy Qualcomm devices Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 044/104] arm64: dts: qcom: sm8550: fix soundwire controllers node name Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 045/104] arm64: dts: qcom: sm8450: " Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 046/104] arm64: dts: qcom: sm8350: Fix remoteproc interrupt type Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 047/104] wifi: mt76: connac: fix EHT phy mode check Sasha Levin
2024-01-16 19:46   ` Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 048/104] wifi: mt76: mt7996: add PCI IDs for mt7992 Sasha Levin
2024-01-16 19:46   ` Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 049/104] net: wangxun: fix changing mac failed when running Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 050/104] bpf: Guard stack limits against 32bit overflow Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 051/104] bpf: Set uattr->batch.count as zero before batched update or deletion Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 052/104] wifi: wfx: fix possible NULL pointer dereference in wfx_set_mfp_ap() Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 053/104] wifi: ath12k: fix the issue that the multicast/broadcast indicator is not read correctly for WCN7850 Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 054/104] ARM: dts: rockchip: fix rk3036 hdmi ports node Sasha Levin
2024-01-16 19:46   ` Sasha Levin
2024-01-16 19:46   ` Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 055/104] ARM: dts: imx25/27-eukrea: Fix RTC node name Sasha Levin
2024-01-16 19:46   ` Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 056/104] ARM: dts: imx: Use flash@0,0 pattern Sasha Levin
2024-01-16 19:46   ` Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 057/104] ARM: dts: imx27: Fix sram node Sasha Levin
2024-01-16 19:46   ` Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 058/104] ARM: dts: imx1: " Sasha Levin
2024-01-16 19:46   ` Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 059/104] net: phy: at803x: fix passing the wrong reference for config_intr Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 060/104] ionic: pass opcode to devcmd_wait Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 061/104] ionic: bypass firmware cmds when stuck in reset Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 062/104] block/rnbd-srv: Check for unlikely string overflow Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 063/104] arm64: zynqmp: Move fixed clock to / for kv260 Sasha Levin
2024-01-16 19:46   ` Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 064/104] arm64: zynqmp: Fix clock node name in kv260 cards Sasha Levin
2024-01-16 19:46   ` Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 065/104] selftests/bpf: fix compiler warnings in RELEASE=1 mode Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 066/104] ARM: dts: imx25: Fix the iim compatible string Sasha Levin
2024-01-16 19:46   ` Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 067/104] ARM: dts: imx25/27: Pass timing0 Sasha Levin
2024-01-16 19:46   ` Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 068/104] ARM: dts: imx27-apf27dev: Fix LED name Sasha Levin
2024-01-16 19:46   ` Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 069/104] ARM: dts: imx23-sansa: Use preferred i2c-gpios properties Sasha Levin
2024-01-16 19:46   ` Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 070/104] ARM: dts: imx23/28: Fix the DMA controller node name Sasha Levin
2024-01-16 19:46   ` Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 071/104] scsi: lpfc: Reinitialize an NPIV's VMID data structures after FDISC Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 072/104] scsi: lpfc: Move determination of vmid_flag after VMID reinitialization completes Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 073/104] scsi: hisi_sas: Set .phy_attached before notifing phyup event HISI_PHYE_PHY_UP_PM Sasha Levin
2024-01-16 19:46 ` [Intel-wired-lan] [PATCH AUTOSEL 6.6 074/104] ice: fix ICE_AQ_VSI_Q_OPT_RSS_* register values Sasha Levin
2024-01-16 19:46   ` Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 075/104] net: atlantic: eliminate double free in error handling logic Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 076/104] net: dsa: mv88e6xxx: Fix mv88e6352_serdes_get_stats error path Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 077/104] ARM: dts: marvell: Fix some common switch mistakes Sasha Levin
2024-01-16 19:46   ` Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 078/104] ARM64: " Sasha Levin
2024-01-16 19:46   ` Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 079/104] block: prevent an integer overflow in bvec_try_merge_hw_page Sasha Levin
2024-01-16 19:46 ` Sasha Levin [this message]
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 081/104] cfi: Add CFI_NOSEAL() Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 082/104] arm64: dts: qcom: msm8996: Fix 'in-ports' is a required property Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 083/104] arm64: dts: qcom: msm8998: Fix 'out-ports' " Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 084/104] arm64: dts: qcom: Fix coresight warnings in in-ports and out-ports Sasha Levin
2024-01-16 19:46 ` [Intel-wired-lan] [PATCH AUTOSEL 6.6 085/104] ice: fix pre-shifted bit usage Sasha Levin
2024-01-16 19:46   ` Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 086/104] arm64: dts: amlogic: fix format for s4 uart node Sasha Levin
2024-01-16 19:46   ` Sasha Levin
2024-01-16 19:46   ` Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 087/104] wifi: rtl8xxxu: Add additional USB IDs for RTL8192EU devices Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 088/104] wifi: rtw89: coex: Fix wrong Wi-Fi role info and FDDT parameter members Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 089/104] libbpf: Fix NULL pointer dereference in bpf_object__collect_prog_relos Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 090/104] wifi: rtlwifi: add calculate_bit_shift() Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 091/104] wifi: rtlwifi: rtl8723{be,ae}: using calculate_bit_shift() Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 092/104] wifi: cfg80211: free beacon_ies when overridden from hidden BSS Sasha Levin
2024-01-16 19:46 ` [PATCH AUTOSEL 6.6 093/104] Bluetooth: qca: Set both WIDEBAND_SPEECH and LE_STATES quirks for QCA2066 Sasha Levin
2024-01-16 19:47 ` [PATCH AUTOSEL 6.6 094/104] Bluetooth: ISO: Avoid creating child socket if PA sync is terminating Sasha Levin
2024-01-16 19:47 ` [PATCH AUTOSEL 6.6 095/104] Bluetooth: hci_sync: fix BR/EDR wakeup bug Sasha Levin
2024-01-16 19:47 ` [PATCH AUTOSEL 6.6 096/104] Bluetooth: L2CAP: Fix possible multiple reject send Sasha Levin
2024-01-16 19:47 ` [PATCH AUTOSEL 6.6 097/104] net/smc: disable SEID on non-s390 archs where virtual ISM may be used Sasha Levin
2024-01-16 19:47 ` [PATCH AUTOSEL 6.6 098/104] bridge: cfm: fix enum typo in br_cc_ccm_tx_parse Sasha Levin
2024-01-16 19:47 ` [PATCH AUTOSEL 6.6 099/104] arm64: dts: sprd: Add clock reference for pll2 on UMS512 Sasha Levin
2024-01-16 19:47 ` [PATCH AUTOSEL 6.6 100/104] arm64: dts: sprd: Change UMS512 idle-state nodename to match bindings Sasha Levin
2024-01-16 19:47 ` [Intel-wired-lan] [PATCH AUTOSEL 6.6 101/104] i40e: Fix VF disable behavior to block all traffic Sasha Levin
2024-01-16 19:47   ` Sasha Levin
2024-01-16 19:47 ` [PATCH AUTOSEL 6.6 102/104] octeontx2-af: Fix max NPC MCAM entry check while validating ref_entry Sasha Levin
2024-01-16 19:47 ` [PATCH AUTOSEL 6.6 103/104] net: kcm: fix direct access to bv_len Sasha Levin
2024-01-16 19:47 ` [PATCH AUTOSEL 6.6 104/104] net: dsa: qca8k: put MDIO bus OF node on qca8k_mdio_register() failure 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=20240116194908.253437-80-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=alex.lyakas@zadara.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-raid@vger.kernel.org \
    --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 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.