linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH AUTOSEL 5.10 1/9] regmap: Account for register length when chunking
@ 2023-06-15 11:39 Sasha Levin
  2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 2/9] scsi: target: iscsi: Prevent login threads from racing between each other Sasha Levin
                   ` (7 more replies)
  0 siblings, 8 replies; 12+ messages in thread
From: Sasha Levin @ 2023-06-15 11:39 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: Jim Wylder, Sasha Levin, broonie, gregkh

From: Jim Wylder <jwylder@google.com>

[ Upstream commit 3981514180c987a79ea98f0ae06a7cbf58a9ac0f ]

Currently, when regmap_raw_write() splits the data, it uses the
max_raw_write value defined for the bus.  For any bus that includes
the target register address in the max_raw_write value, the chunked
transmission will always exceed the maximum transmission length.
To avoid this problem, subtract the length of the register and the
padding from the maximum transmission.

Signed-off-by: Jim Wylder <jwylder@google.com
Link: https://lore.kernel.org/r/20230517152444.3690870-2-jwylder@google.com
Signed-off-by: Mark Brown <broonie@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/base/regmap/regmap.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c
index 55a30afc14a00..2a3c3dfefdcec 100644
--- a/drivers/base/regmap/regmap.c
+++ b/drivers/base/regmap/regmap.c
@@ -1998,6 +1998,8 @@ int _regmap_raw_write(struct regmap *map, unsigned int reg,
 	size_t val_count = val_len / val_bytes;
 	size_t chunk_count, chunk_bytes;
 	size_t chunk_regs = val_count;
+	size_t max_data = map->max_raw_write - map->format.reg_bytes -
+			map->format.pad_bytes;
 	int ret, i;
 
 	if (!val_count)
@@ -2005,8 +2007,8 @@ int _regmap_raw_write(struct regmap *map, unsigned int reg,
 
 	if (map->use_single_write)
 		chunk_regs = 1;
-	else if (map->max_raw_write && val_len > map->max_raw_write)
-		chunk_regs = map->max_raw_write / val_bytes;
+	else if (map->max_raw_write && val_len > max_data)
+		chunk_regs = max_data / val_bytes;
 
 	chunk_count = val_count / chunk_regs;
 	chunk_bytes = chunk_regs * val_bytes;
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH AUTOSEL 5.10 2/9] scsi: target: iscsi: Prevent login threads from racing between each other
  2023-06-15 11:39 [PATCH AUTOSEL 5.10 1/9] regmap: Account for register length when chunking Sasha Levin
@ 2023-06-15 11:39 ` Sasha Levin
  2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 3/9] HID: google: add jewel USB id Sasha Levin
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Sasha Levin @ 2023-06-15 11:39 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Maurizio Lombardi, Mike Christie, Martin K . Petersen,
	Sasha Levin, d.bogdanov, peilin.ye, yang.lee, linux-scsi,
	target-devel

From: Maurizio Lombardi <mlombard@redhat.com>

[ Upstream commit 2a737d3b8c792400118d6cf94958f559de9c5e59 ]

The tpg->np_login_sem is a semaphore that is used to serialize the login
process when multiple login threads run concurrently against the same
target portal group.

The iscsi_target_locate_portal() function finds the tpg, calls
iscsit_access_np() against the np_login_sem semaphore and saves the tpg
pointer in conn->tpg;

If iscsi_target_locate_portal() fails, the caller will check for the
conn->tpg pointer and, if it's not NULL, then it will assume that
iscsi_target_locate_portal() called iscsit_access_np() on the semaphore.

Make sure that conn->tpg gets initialized only if iscsit_access_np() was
successful, otherwise iscsit_deaccess_np() may end up being called against
a semaphore we never took, allowing more than one thread to access the same
tpg.

Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
Link: https://lore.kernel.org/r/20230508162219.1731964-4-mlombard@redhat.com
Reviewed-by: Mike Christie <michael.christie@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/target/iscsi/iscsi_target_nego.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/target/iscsi/iscsi_target_nego.c b/drivers/target/iscsi/iscsi_target_nego.c
index 8b40f10976ff8..3931565018880 100644
--- a/drivers/target/iscsi/iscsi_target_nego.c
+++ b/drivers/target/iscsi/iscsi_target_nego.c
@@ -1079,6 +1079,7 @@ int iscsi_target_locate_portal(
 	iscsi_target_set_sock_callbacks(conn);
 
 	login->np = np;
+	conn->tpg = NULL;
 
 	login_req = (struct iscsi_login_req *) login->req;
 	payload_length = ntoh24(login_req->dlength);
@@ -1148,7 +1149,6 @@ int iscsi_target_locate_portal(
 	 */
 	sessiontype = strncmp(s_buf, DISCOVERY, 9);
 	if (!sessiontype) {
-		conn->tpg = iscsit_global->discovery_tpg;
 		if (!login->leading_connection)
 			goto get_target;
 
@@ -1165,9 +1165,11 @@ int iscsi_target_locate_portal(
 		 * Serialize access across the discovery struct iscsi_portal_group to
 		 * process login attempt.
 		 */
+		conn->tpg = iscsit_global->discovery_tpg;
 		if (iscsit_access_np(np, conn->tpg) < 0) {
 			iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
 				ISCSI_LOGIN_STATUS_SVC_UNAVAILABLE);
+			conn->tpg = NULL;
 			ret = -1;
 			goto out;
 		}
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH AUTOSEL 5.10 3/9] HID: google: add jewel USB id
  2023-06-15 11:39 [PATCH AUTOSEL 5.10 1/9] regmap: Account for register length when chunking Sasha Levin
  2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 2/9] scsi: target: iscsi: Prevent login threads from racing between each other Sasha Levin
@ 2023-06-15 11:39 ` Sasha Levin
  2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 4/9] HID: wacom: Add error check to wacom_parse_and_register() Sasha Levin
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Sasha Levin @ 2023-06-15 11:39 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Sung-Chi Li, Jiri Kosina, Sasha Levin, jikos, benjamin.tissoires,
	linux-input

From: Sung-Chi Li <lschyi@chromium.org>

[ Upstream commit ed84c4517a5bc536e8572a01dfa11bc22a280d06 ]

Add 1 additional hammer-like device.

Signed-off-by: Sung-Chi Li <lschyi@chromium.org>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/hid/hid-google-hammer.c | 2 ++
 drivers/hid/hid-ids.h           | 1 +
 2 files changed, 3 insertions(+)

diff --git a/drivers/hid/hid-google-hammer.c b/drivers/hid/hid-google-hammer.c
index 0476301983964..2f4c5b45d4096 100644
--- a/drivers/hid/hid-google-hammer.c
+++ b/drivers/hid/hid-google-hammer.c
@@ -532,6 +532,8 @@ static const struct hid_device_id hammer_devices[] = {
 		     USB_VENDOR_ID_GOOGLE, USB_DEVICE_ID_GOOGLE_EEL) },
 	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
 		     USB_VENDOR_ID_GOOGLE, USB_DEVICE_ID_GOOGLE_HAMMER) },
+	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
+		     USB_VENDOR_ID_GOOGLE, USB_DEVICE_ID_GOOGLE_JEWEL) },
 	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
 		     USB_VENDOR_ID_GOOGLE, USB_DEVICE_ID_GOOGLE_MAGNEMITE) },
 	{ HID_DEVICE(BUS_USB, HID_GROUP_GENERIC,
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 1d1306a6004e6..2b658d820b800 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -491,6 +491,7 @@
 #define USB_DEVICE_ID_GOOGLE_MOONBALL	0x5044
 #define USB_DEVICE_ID_GOOGLE_DON	0x5050
 #define USB_DEVICE_ID_GOOGLE_EEL	0x5057
+#define USB_DEVICE_ID_GOOGLE_JEWEL	0x5061
 
 #define USB_VENDOR_ID_GOTOP		0x08f2
 #define USB_DEVICE_ID_SUPER_Q2		0x007f
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH AUTOSEL 5.10 4/9] HID: wacom: Add error check to wacom_parse_and_register()
  2023-06-15 11:39 [PATCH AUTOSEL 5.10 1/9] regmap: Account for register length when chunking Sasha Levin
  2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 2/9] scsi: target: iscsi: Prevent login threads from racing between each other Sasha Levin
  2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 3/9] HID: google: add jewel USB id Sasha Levin
@ 2023-06-15 11:39 ` Sasha Levin
  2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 5/9] arm64: Add missing Set/Way CMO encodings Sasha Levin
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Sasha Levin @ 2023-06-15 11:39 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Denis Arefev, Ping Cheng, Jiri Kosina, Sasha Levin,
	jason.gerecke, jikos, benjamin.tissoires, linux-input

From: Denis Arefev <arefev@swemel.ru>

[ Upstream commit 16a9c24f24fbe4564284eb575b18cc20586b9270 ]

   Added a variable check and
   transition in case of an error

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Signed-off-by: Denis Arefev <arefev@swemel.ru>
Reviewed-by: Ping Cheng <ping.cheng@wacom.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/hid/wacom_sys.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c
index a93070f5b214c..36cb456709ed7 100644
--- a/drivers/hid/wacom_sys.c
+++ b/drivers/hid/wacom_sys.c
@@ -2419,8 +2419,13 @@ static int wacom_parse_and_register(struct wacom *wacom, bool wireless)
 		goto fail_quirks;
 	}
 
-	if (features->device_type & WACOM_DEVICETYPE_WL_MONITOR)
+	if (features->device_type & WACOM_DEVICETYPE_WL_MONITOR) {
 		error = hid_hw_open(hdev);
+		if (error) {
+			hid_err(hdev, "hw open failed\n");
+			goto fail_quirks;
+		}
+	}
 
 	wacom_set_shared_values(wacom_wac);
 	devres_close_group(&hdev->dev, wacom);
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH AUTOSEL 5.10 5/9] arm64: Add missing Set/Way CMO encodings
  2023-06-15 11:39 [PATCH AUTOSEL 5.10 1/9] regmap: Account for register length when chunking Sasha Levin
                   ` (2 preceding siblings ...)
  2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 4/9] HID: wacom: Add error check to wacom_parse_and_register() Sasha Levin
@ 2023-06-15 11:39 ` Sasha Levin
  2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 6/9] media: cec: core: don't set last_initiator if tx in progress Sasha Levin
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Sasha Levin @ 2023-06-15 11:39 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Marc Zyngier, Cornelia Huck, Steven Price, Oliver Upton,
	Sasha Levin, catalin.marinas, will, broonie, james.morse,
	kristina.martsenko, robh, jintack.lim, linux-arm-kernel

From: Marc Zyngier <maz@kernel.org>

[ Upstream commit 8d0f019e4c4f2ee2de81efd9bf1c27e9fb3c0460 ]

Add the missing Set/Way CMOs that apply to tagged memory.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
Link: https://lore.kernel.org/r/20230515204601.1270428-2-maz@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/arm64/include/asm/sysreg.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm64/include/asm/sysreg.h b/arch/arm64/include/asm/sysreg.h
index 06755fad38304..9fea6e9768096 100644
--- a/arch/arm64/include/asm/sysreg.h
+++ b/arch/arm64/include/asm/sysreg.h
@@ -104,8 +104,14 @@
 #define SB_BARRIER_INSN			__SYS_BARRIER_INSN(0, 7, 31)
 
 #define SYS_DC_ISW			sys_insn(1, 0, 7, 6, 2)
+#define SYS_DC_IGSW			sys_insn(1, 0, 7, 6, 4)
+#define SYS_DC_IGDSW			sys_insn(1, 0, 7, 6, 6)
 #define SYS_DC_CSW			sys_insn(1, 0, 7, 10, 2)
+#define SYS_DC_CGSW			sys_insn(1, 0, 7, 10, 4)
+#define SYS_DC_CGDSW			sys_insn(1, 0, 7, 10, 6)
 #define SYS_DC_CISW			sys_insn(1, 0, 7, 14, 2)
+#define SYS_DC_CIGSW			sys_insn(1, 0, 7, 14, 4)
+#define SYS_DC_CIGDSW			sys_insn(1, 0, 7, 14, 6)
 
 /*
  * System registers, organised loosely by encoding but grouped together
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH AUTOSEL 5.10 6/9] media: cec: core: don't set last_initiator if tx in progress
  2023-06-15 11:39 [PATCH AUTOSEL 5.10 1/9] regmap: Account for register length when chunking Sasha Levin
                   ` (3 preceding siblings ...)
  2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 5/9] arm64: Add missing Set/Way CMO encodings Sasha Levin
@ 2023-06-15 11:39 ` Sasha Levin
  2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 7/9] nfcsim.c: Fix error checking for debugfs_create_dir Sasha Levin
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 12+ messages in thread
From: Sasha Levin @ 2023-06-15 11:39 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Hans Verkuil, Mauro Carvalho Chehab, Sasha Levin, linux-media

From: Hans Verkuil <hverkuil-cisco@xs4all.nl>

[ Upstream commit 73af6c7511038249cad3d5f3b44bf8d78ac0f499 ]

When a message was received the last_initiator is set to 0xff.
This will force the signal free time for the next transmit
to that for a new initiator. However, if a new transmit is
already in progress, then don't set last_initiator, since
that's the initiator of the current transmit. Overwriting
this would cause the signal free time of a following transmit
to be that of the new initiator instead of a next transmit.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/media/cec/core/cec-adap.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/media/cec/core/cec-adap.c b/drivers/media/cec/core/cec-adap.c
index e23aa608f66f6..97b479223fe52 100644
--- a/drivers/media/cec/core/cec-adap.c
+++ b/drivers/media/cec/core/cec-adap.c
@@ -1085,7 +1085,8 @@ void cec_received_msg_ts(struct cec_adapter *adap,
 	mutex_lock(&adap->lock);
 	dprintk(2, "%s: %*ph\n", __func__, msg->len, msg->msg);
 
-	adap->last_initiator = 0xff;
+	if (!adap->transmit_in_progress)
+		adap->last_initiator = 0xff;
 
 	/* Check if this message was for us (directed or broadcast). */
 	if (!cec_msg_is_broadcast(msg))
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH AUTOSEL 5.10 7/9] nfcsim.c: Fix error checking for debugfs_create_dir
  2023-06-15 11:39 [PATCH AUTOSEL 5.10 1/9] regmap: Account for register length when chunking Sasha Levin
                   ` (4 preceding siblings ...)
  2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 6/9] media: cec: core: don't set last_initiator if tx in progress Sasha Levin
@ 2023-06-15 11:39 ` Sasha Levin
  2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 8/9] usb: gadget: udc: fix NULL dereference in remove() Sasha Levin
  2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 9/9] ext4: enable the lazy init thread when remounting read/write Sasha Levin
  7 siblings, 0 replies; 12+ messages in thread
From: Sasha Levin @ 2023-06-15 11:39 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Osama Muhammad, Simon Horman, David S . Miller, Sasha Levin,
	krzysztof.kozlowski, netdev

From: Osama Muhammad <osmtendev@gmail.com>

[ Upstream commit 9b9e46aa07273ceb96866b2e812b46f1ee0b8d2f ]

This patch fixes the error checking in nfcsim.c.
The DebugFS kernel API is developed in
a way that the caller can safely ignore the errors that
occur during the creation of DebugFS nodes.

Signed-off-by: Osama Muhammad <osmtendev@gmail.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/nfc/nfcsim.c | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/drivers/nfc/nfcsim.c b/drivers/nfc/nfcsim.c
index dd27c85190d34..b42d386350b72 100644
--- a/drivers/nfc/nfcsim.c
+++ b/drivers/nfc/nfcsim.c
@@ -336,10 +336,6 @@ static struct dentry *nfcsim_debugfs_root;
 static void nfcsim_debugfs_init(void)
 {
 	nfcsim_debugfs_root = debugfs_create_dir("nfcsim", NULL);
-
-	if (!nfcsim_debugfs_root)
-		pr_err("Could not create debugfs entry\n");
-
 }
 
 static void nfcsim_debugfs_remove(void)
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH AUTOSEL 5.10 8/9] usb: gadget: udc: fix NULL dereference in remove()
  2023-06-15 11:39 [PATCH AUTOSEL 5.10 1/9] regmap: Account for register length when chunking Sasha Levin
                   ` (5 preceding siblings ...)
  2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 7/9] nfcsim.c: Fix error checking for debugfs_create_dir Sasha Levin
@ 2023-06-15 11:39 ` Sasha Levin
  2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 9/9] ext4: enable the lazy init thread when remounting read/write Sasha Levin
  7 siblings, 0 replies; 12+ messages in thread
From: Sasha Levin @ 2023-06-15 11:39 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Dan Carpenter, Greg Kroah-Hartman, Sasha Levin, linux-usb

From: Dan Carpenter <dan.carpenter@linaro.org>

[ Upstream commit 016da9c65fec9f0e78c4909ed9a0f2d567af6775 ]

The "udc" pointer was never set in the probe() function so it will
lead to a NULL dereference in udc_pci_remove() when we do:

	usb_del_gadget_udc(&udc->gadget);

Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://lore.kernel.org/r/ZG+A/dNpFWAlCChk@kili
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/usb/gadget/udc/amd5536udc_pci.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/usb/gadget/udc/amd5536udc_pci.c b/drivers/usb/gadget/udc/amd5536udc_pci.c
index c80f9bd51b750..a36913ae31f9e 100644
--- a/drivers/usb/gadget/udc/amd5536udc_pci.c
+++ b/drivers/usb/gadget/udc/amd5536udc_pci.c
@@ -170,6 +170,9 @@ static int udc_pci_probe(
 		retval = -ENODEV;
 		goto err_probe;
 	}
+
+	udc = dev;
+
 	return 0;
 
 err_probe:
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH AUTOSEL 5.10 9/9] ext4: enable the lazy init thread when remounting read/write
  2023-06-15 11:39 [PATCH AUTOSEL 5.10 1/9] regmap: Account for register length when chunking Sasha Levin
                   ` (6 preceding siblings ...)
  2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 8/9] usb: gadget: udc: fix NULL dereference in remove() Sasha Levin
@ 2023-06-15 11:39 ` Sasha Levin
  2023-06-16 19:41   ` Pavel Machek
  7 siblings, 1 reply; 12+ messages in thread
From: Sasha Levin @ 2023-06-15 11:39 UTC (permalink / raw)
  To: linux-kernel, stable
  Cc: Theodore Ts'o, Sasha Levin, adilger.kernel, linux-ext4

From: Theodore Ts'o <tytso@mit.edu>

[ Upstream commit eb1f822c76beeaa76ab8b6737ab9dc9f9798408c ]

In commit a44be64bbecb ("ext4: don't clear SB_RDONLY when remounting
r/w until quota is re-enabled") we defer clearing tyhe SB_RDONLY flag
in struct super.  However, we didn't defer when we checked sb_rdonly()
to determine the lazy itable init thread should be enabled, with the
next result that the lazy inode table initialization would not be
properly started.  This can cause generic/231 to fail in ext4's
nojournal mode.

Fix this by moving when we decide to start or stop the lazy itable
init thread to after we clear the SB_RDONLY flag when we are
remounting the file system read/write.

Fixes a44be64bbecb ("ext4: don't clear SB_RDONLY when remounting r/w until...")

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Link: https://lore.kernel.org/r/20230527035729.1001605-1-tytso@mit.edu
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 fs/ext4/super.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index d89750e90bc4b..f72896384dbc9 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -6005,18 +6005,6 @@ static int ext4_remount(struct super_block *sb, int *flags, char *data)
 		}
 	}
 
-	/*
-	 * Reinitialize lazy itable initialization thread based on
-	 * current settings
-	 */
-	if (sb_rdonly(sb) || !test_opt(sb, INIT_INODE_TABLE))
-		ext4_unregister_li_request(sb);
-	else {
-		ext4_group_t first_not_zeroed;
-		first_not_zeroed = ext4_has_uninit_itable(sb);
-		ext4_register_li_request(sb, first_not_zeroed);
-	}
-
 	/*
 	 * Handle creation of system zone data early because it can fail.
 	 * Releasing of existing data is done when we are sure remount will
@@ -6054,6 +6042,18 @@ static int ext4_remount(struct super_block *sb, int *flags, char *data)
 	if (enable_rw)
 		sb->s_flags &= ~SB_RDONLY;
 
+	/*
+	 * Reinitialize lazy itable initialization thread based on
+	 * current settings
+	 */
+	if (sb_rdonly(sb) || !test_opt(sb, INIT_INODE_TABLE))
+		ext4_unregister_li_request(sb);
+	else {
+		ext4_group_t first_not_zeroed;
+		first_not_zeroed = ext4_has_uninit_itable(sb);
+		ext4_register_li_request(sb, first_not_zeroed);
+	}
+
 	if (!ext4_has_feature_mmp(sb) || sb_rdonly(sb))
 		ext4_stop_mmpd(sbi);
 
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH AUTOSEL 5.10 9/9] ext4: enable the lazy init thread when remounting read/write
  2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 9/9] ext4: enable the lazy init thread when remounting read/write Sasha Levin
@ 2023-06-16 19:41   ` Pavel Machek
  2023-06-20 14:43     ` Sasha Levin
  0 siblings, 1 reply; 12+ messages in thread
From: Pavel Machek @ 2023-06-16 19:41 UTC (permalink / raw)
  To: Sasha Levin
  Cc: linux-kernel, stable, Theodore Ts'o, adilger.kernel, linux-ext4

[-- Attachment #1: Type: text/plain, Size: 1337 bytes --]

Hi!

> [ Upstream commit eb1f822c76beeaa76ab8b6737ab9dc9f9798408c ]
> 
> In commit a44be64bbecb ("ext4: don't clear SB_RDONLY when remounting
> r/w until quota is re-enabled") we defer clearing tyhe SB_RDONLY flag
> in struct super.  However, we didn't defer when we checked sb_rdonly()
> to determine the lazy itable init thread should be enabled, with the
> next result that the lazy inode table initialization would not be
> properly started.  This can cause generic/231 to fail in ext4's
> nojournal mode.
> 
> Fix this by moving when we decide to start or stop the lazy itable
> init thread to after we clear the SB_RDONLY flag when we are
> remounting the file system read/write.
> 
> Fixes a44be64bbecb ("ext4: don't clear SB_RDONLY when remounting r/w until...")
> 
> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
> Link: https://lore.kernel.org/r/20230527035729.1001605-1-tytso@mit.edu
> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
> Signed-off-by: Sasha Levin <sashal@kernel.org>

Normally "Fixes" would be "Fixes:" and in the signed-off block. Plus,
two consecutive sign-offs from tytso are probably wrong, too.

Best regards,
								Pavel
								
-- 
DENX Software Engineering GmbH,        Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH AUTOSEL 5.10 9/9] ext4: enable the lazy init thread when remounting read/write
  2023-06-16 19:41   ` Pavel Machek
@ 2023-06-20 14:43     ` Sasha Levin
  2023-06-20 22:25       ` Theodore Ts'o
  0 siblings, 1 reply; 12+ messages in thread
From: Sasha Levin @ 2023-06-20 14:43 UTC (permalink / raw)
  To: Pavel Machek
  Cc: linux-kernel, stable, Theodore Ts'o, adilger.kernel, linux-ext4

On Fri, Jun 16, 2023 at 09:41:04PM +0200, Pavel Machek wrote:
>Hi!
>
>> [ Upstream commit eb1f822c76beeaa76ab8b6737ab9dc9f9798408c ]
>>
>> In commit a44be64bbecb ("ext4: don't clear SB_RDONLY when remounting
>> r/w until quota is re-enabled") we defer clearing tyhe SB_RDONLY flag
>> in struct super.  However, we didn't defer when we checked sb_rdonly()
>> to determine the lazy itable init thread should be enabled, with the
>> next result that the lazy inode table initialization would not be
>> properly started.  This can cause generic/231 to fail in ext4's
>> nojournal mode.
>>
>> Fix this by moving when we decide to start or stop the lazy itable
>> init thread to after we clear the SB_RDONLY flag when we are
>> remounting the file system read/write.
>>
>> Fixes a44be64bbecb ("ext4: don't clear SB_RDONLY when remounting r/w until...")
>>
>> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
>> Link: https://lore.kernel.org/r/20230527035729.1001605-1-tytso@mit.edu
>> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
>> Signed-off-by: Sasha Levin <sashal@kernel.org>
>
>Normally "Fixes" would be "Fixes:" and in the signed-off block. Plus,
>two consecutive sign-offs from tytso are probably wrong, too.

I'm really not sure what you want us to do here, or in other places
where you've commented about issues with the upstream patch...

-- 
Thanks,
Sasha

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH AUTOSEL 5.10 9/9] ext4: enable the lazy init thread when remounting read/write
  2023-06-20 14:43     ` Sasha Levin
@ 2023-06-20 22:25       ` Theodore Ts'o
  0 siblings, 0 replies; 12+ messages in thread
From: Theodore Ts'o @ 2023-06-20 22:25 UTC (permalink / raw)
  To: Sasha Levin
  Cc: Pavel Machek, linux-kernel, stable, adilger.kernel, linux-ext4

On Tue, Jun 20, 2023 at 10:43:39AM -0400, Sasha Levin wrote:
> > Normally "Fixes" would be "Fixes:" and in the signed-off block. Plus,
> > two consecutive sign-offs from tytso are probably wrong, too.
> 
> I'm really not sure what you want us to do here, or in other places
> where you've commented about issues with the upstream patch...

Yeah, those were issues with the upstream commit.  Sorry about that.

I personally don't care about whether you "clean up" the commit before
having it land in the LTS kernels or leave it as it as originally
commited to upstream, but then again, I'm not the kind of person who
asks whether there's a hyphen in "anal-retentive".  (I'm given to
understand it depends on whether the phrase is being used as an
attributive or predicative adjective.  :-)

						- Ted

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2023-06-20 22:26 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-06-15 11:39 [PATCH AUTOSEL 5.10 1/9] regmap: Account for register length when chunking Sasha Levin
2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 2/9] scsi: target: iscsi: Prevent login threads from racing between each other Sasha Levin
2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 3/9] HID: google: add jewel USB id Sasha Levin
2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 4/9] HID: wacom: Add error check to wacom_parse_and_register() Sasha Levin
2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 5/9] arm64: Add missing Set/Way CMO encodings Sasha Levin
2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 6/9] media: cec: core: don't set last_initiator if tx in progress Sasha Levin
2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 7/9] nfcsim.c: Fix error checking for debugfs_create_dir Sasha Levin
2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 8/9] usb: gadget: udc: fix NULL dereference in remove() Sasha Levin
2023-06-15 11:39 ` [PATCH AUTOSEL 5.10 9/9] ext4: enable the lazy init thread when remounting read/write Sasha Levin
2023-06-16 19:41   ` Pavel Machek
2023-06-20 14:43     ` Sasha Levin
2023-06-20 22:25       ` Theodore Ts'o

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).