Linux kernel -stable discussions
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev,
	"Derek J. Clark" <derekjohn.clark@gmail.com>,
	Jiri Kosina <jkosina@suse.com>
Subject: [PATCH 7.3 516/547] HID: hid-lenovo-go-s: Use devm_kzalloc for drvdata
Date: Wed,  4 Nov 2026 16:11:40 -0500	[thread overview]
Message-ID: <20261104211053.054360843@linuxfoundation.org> (raw)
In-Reply-To: <20261104211038.406938024@linuxfoundation.org>

7.3-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Derek J. Clark <derekjohn.clark@gmail.com>

commit d3c157b4cdffd14604c2d8435e279761c511bac2 upstream.

Changes drvdata from static global to devm allocation per device.

Fixes: a23f3497bf208c59ad ("HID: hid-lenovo-go-s: Add Lenovo Legion Go S Series HID Driver")
Cc: stable@vger.kernel.org
Signed-off-by: Derek J. Clark <derekjohn.clark@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/hid/hid-lenovo-go-s.c |  501 +++++++++++++++++++++++++-----------------
 1 file changed, 300 insertions(+), 201 deletions(-)

--- a/drivers/hid/hid-lenovo-go-s.c
+++ b/drivers/hid/hid-lenovo-go-s.c
@@ -10,6 +10,7 @@
 #include <linux/array_size.h>
 #include <linux/cleanup.h>
 #include <linux/completion.h>
+#include <linux/container_of.h>
 #include <linux/delay.h>
 #include <linux/dev_printk.h>
 #include <linux/device.h>
@@ -32,7 +33,7 @@
 #define GO_S_CFG_INTF_IN	0x84
 #define GO_S_PACKET_SIZE	64
 
-static struct gos_cfg_drvdata {
+struct gos_cfg_drvdata {
 	/* MCU General Variables */
 	struct completion send_cmd_complete;
 	struct delayed_work gos_cfg_setup;
@@ -67,7 +68,7 @@ static struct gos_cfg_drvdata {
 	u8 rgb_speed;
 	u8 rgb_mode;
 	u8 rgb_en;
-} drvdata;
+};
 
 struct gos_cfg_attr {
 	u8 index;
@@ -243,56 +244,57 @@ static const char *const imu_manufacture
 	[IMU_ST] = "ST",
 };
 
-static int hid_gos_version_event(u8 *data)
+static int hid_gos_version_event(struct gos_cfg_drvdata *drvdata, u8 *data)
 {
 	struct version_report *ver_rep = (struct version_report *)data;
 
-	drvdata.hdev->firmware_version = get_unaligned_le32(&ver_rep->version);
+	drvdata->hdev->firmware_version = get_unaligned_le32(&ver_rep->version);
 	return 0;
 }
 
-static int hid_gos_mcu_id_event(struct command_report *cmd_rep)
+static int hid_gos_mcu_id_event(struct gos_cfg_drvdata *drvdata, struct command_report *cmd_rep)
 {
-	drvdata.mcu_id[0] = cmd_rep->sub_cmd;
-	memcpy(&drvdata.mcu_id[1], cmd_rep->data, 11);
+	drvdata->mcu_id[0] = cmd_rep->sub_cmd;
+	memcpy(&drvdata->mcu_id[1], cmd_rep->data, 11);
 
 	return 0;
 }
 
-static int hid_gos_gamepad_cfg_event(struct command_report *cmd_rep)
+static int hid_gos_gamepad_cfg_event(struct gos_cfg_drvdata *drvdata,
+				     struct command_report *cmd_rep)
 {
 	int ret = 0;
 
 	switch (cmd_rep->sub_cmd) {
 	case FEATURE_GAMEPAD_MODE:
-		drvdata.gp_mode = cmd_rep->data[0];
+		drvdata->gp_mode = cmd_rep->data[0];
 		break;
 	case FEATURE_AUTO_SLEEP_TIME:
-		drvdata.gp_auto_sleep_time = cmd_rep->data[0];
+		drvdata->gp_auto_sleep_time = cmd_rep->data[0];
 		break;
 	case FEATURE_IMU_BYPASS:
-		drvdata.imu_bypass_en = cmd_rep->data[0];
+		drvdata->imu_bypass_en = cmd_rep->data[0];
 		break;
 	case FEATURE_RGB_ENABLE:
-		drvdata.rgb_en = cmd_rep->data[0];
+		drvdata->rgb_en = cmd_rep->data[0];
 		break;
 	case FEATURE_IMU_ENABLE:
-		drvdata.imu_sensor_en = cmd_rep->data[0];
+		drvdata->imu_sensor_en = cmd_rep->data[0];
 		break;
 	case FEATURE_TOUCHPAD_ENABLE:
-		drvdata.tp_en = cmd_rep->data[0];
+		drvdata->tp_en = cmd_rep->data[0];
 		break;
 	case FEATURE_OS_MODE:
-		drvdata.os_mode = cmd_rep->data[0];
+		drvdata->os_mode = cmd_rep->data[0];
 		break;
 	case FEATURE_POLL_RATE:
-		drvdata.gp_poll_rate = cmd_rep->data[0];
+		drvdata->gp_poll_rate = cmd_rep->data[0];
 		break;
 	case FEATURE_DPAD_MODE:
-		drvdata.gp_dpad_mode = cmd_rep->data[0];
+		drvdata->gp_dpad_mode = cmd_rep->data[0];
 		break;
 	case FEATURE_MOUSE_WHEEL_STEP:
-		drvdata.mouse_step = cmd_rep->data[0];
+		drvdata->mouse_step = cmd_rep->data[0];
 		break;
 	default:
 		ret = -EINVAL;
@@ -302,16 +304,16 @@ static int hid_gos_gamepad_cfg_event(str
 	return ret;
 }
 
-static int hid_gos_touchpad_event(struct command_report *cmd_rep)
+static int hid_gos_touchpad_event(struct gos_cfg_drvdata *drvdata, struct command_report *cmd_rep)
 {
 	int ret = 0;
 
 	switch (cmd_rep->sub_cmd) {
 	case CFG_LINUX_MODE:
-		drvdata.tp_linux_mode = cmd_rep->data[0];
+		drvdata->tp_linux_mode = cmd_rep->data[0];
 		break;
 	case CFG_WINDOWS_MODE:
-		drvdata.tp_windows_mode = cmd_rep->data[0];
+		drvdata->tp_windows_mode = cmd_rep->data[0];
 		break;
 	default:
 		ret = -EINVAL;
@@ -321,21 +323,21 @@ static int hid_gos_touchpad_event(struct
 	return ret;
 }
 
-static int hid_gos_pl_test_event(struct command_report *cmd_rep)
+static int hid_gos_pl_test_event(struct gos_cfg_drvdata *drvdata, struct command_report *cmd_rep)
 {
 	int ret = 0;
 
 	switch (cmd_rep->sub_cmd) {
 	case TEST_TP_MFR:
-		drvdata.tp_manufacturer = cmd_rep->data[0];
+		drvdata->tp_manufacturer = cmd_rep->data[0];
 		ret = 0;
 		break;
 	case TEST_IMU_MFR:
-		drvdata.imu_manufacturer = cmd_rep->data[0];
+		drvdata->imu_manufacturer = cmd_rep->data[0];
 		ret = 0;
 		break;
 	case TEST_TP_VER:
-		drvdata.tp_version = cmd_rep->data[0];
+		drvdata->tp_version = cmd_rep->data[0];
 		ret = 0;
 		break;
 	default:
@@ -345,30 +347,30 @@ static int hid_gos_pl_test_event(struct
 	return ret;
 }
 
-static int hid_gos_light_event(struct command_report *cmd_rep)
+static int hid_gos_light_event(struct gos_cfg_drvdata *drvdata, struct command_report *cmd_rep)
 {
 	struct led_classdev_mc *led_mc;
 	int ret = 0;
 
 	switch (cmd_rep->sub_cmd) {
 	case LIGHT_MODE_SEL:
-		drvdata.rgb_mode = cmd_rep->data[0];
+		drvdata->rgb_mode = cmd_rep->data[0];
 		ret = 0;
 		break;
 	case LIGHT_PROFILE_SEL:
-		drvdata.rgb_profile = cmd_rep->data[0];
+		drvdata->rgb_profile = cmd_rep->data[0];
 		ret = 0;
 		break;
 	case USR_LIGHT_PROFILE_1:
 	case USR_LIGHT_PROFILE_2:
 	case USR_LIGHT_PROFILE_3:
-		led_mc = &drvdata.led_mc;
-		drvdata.rgb_effect = cmd_rep->data[0];
+		led_mc = &drvdata->led_mc;
+		drvdata->rgb_effect = cmd_rep->data[0];
 		led_mc->subled_info[0].intensity = cmd_rep->data[1];
 		led_mc->subled_info[1].intensity = cmd_rep->data[2];
 		led_mc->subled_info[2].intensity = cmd_rep->data[3];
 		led_mc->led_cdev.brightness = cmd_rep->data[4];
-		drvdata.rgb_speed = cmd_rep->data[5];
+		drvdata->rgb_speed = cmd_rep->data[5];
 		ret = 0;
 		break;
 	default:
@@ -401,6 +403,7 @@ static int get_endpoint_address(struct h
 static int hid_gos_raw_event(struct hid_device *hdev, struct hid_report *report,
 			     u8 *data, int size)
 {
+	struct gos_cfg_drvdata *drvdata = hid_get_drvdata(hdev);
 	struct command_report *cmd_rep;
 	int ep, ret;
 
@@ -408,6 +411,9 @@ static int hid_gos_raw_event(struct hid_
 	if (ep != GO_S_CFG_INTF_IN)
 		return 0;
 
+	if (!drvdata)
+		return -ENODEV;
+
 	if (size != GO_S_PACKET_SIZE)
 		return -EINVAL;
 
@@ -415,22 +421,22 @@ static int hid_gos_raw_event(struct hid_
 
 	switch (cmd_rep->cmd) {
 	case GET_VERSION:
-		ret = hid_gos_version_event(data);
+		ret = hid_gos_version_event(drvdata, data);
 		break;
 	case GET_MCU_ID:
-		ret = hid_gos_mcu_id_event(cmd_rep);
+		ret = hid_gos_mcu_id_event(drvdata, cmd_rep);
 		break;
 	case GET_GAMEPAD_CFG:
-		ret = hid_gos_gamepad_cfg_event(cmd_rep);
+		ret = hid_gos_gamepad_cfg_event(drvdata, cmd_rep);
 		break;
 	case GET_TP_PARAM:
-		ret = hid_gos_touchpad_event(cmd_rep);
+		ret = hid_gos_touchpad_event(drvdata, cmd_rep);
 		break;
 	case GET_PL_TEST:
-		ret = hid_gos_pl_test_event(cmd_rep);
+		ret = hid_gos_pl_test_event(drvdata, cmd_rep);
 		break;
 	case GET_RGB_CFG:
-		ret = hid_gos_light_event(cmd_rep);
+		ret = hid_gos_light_event(drvdata, cmd_rep);
 		break;
 	case SET_GAMEPAD_CFG:
 	case SET_RGB_CFG:
@@ -444,8 +450,8 @@ static int hid_gos_raw_event(struct hid_
 	dev_dbg(&hdev->dev, "Rx data as raw input report: [%*ph]\n",
 		GO_S_PACKET_SIZE, data);
 
-	drvdata.cmd_status = ret;
-	complete(&drvdata.send_cmd_complete);
+	drvdata->cmd_status = ret;
+	complete(&drvdata->send_cmd_complete);
 
 	return ret;
 }
@@ -453,27 +459,31 @@ static int hid_gos_raw_event(struct hid_
 static int mcu_property_out(struct hid_device *hdev, u8 command, u8 index,
 			    u8 *data, size_t len)
 {
+	struct gos_cfg_drvdata *drvdata = hid_get_drvdata(hdev);
 	unsigned char *dmabuf __free(kfree) = NULL;
 	u8 header[] = { command, index };
 	size_t header_size = ARRAY_SIZE(header);
 	int timeout, ret;
 
+	if (!drvdata)
+		return -ENODEV;
+
 	if (header_size + len > GO_S_PACKET_SIZE)
 		return -EINVAL;
 
-	guard(mutex)(&drvdata.cfg_mutex);
+	guard(mutex)(&drvdata->cfg_mutex);
 
 	/*
 	 * A reply to the previous command may still be in flight. Give it a
 	 * short window to arrive and be consumed before this call reinits the
 	 * completion, so a late reply can't be mistaken for this command's.
 	 */
-	if (drvdata.orphan_ack_pending) {
-		wait_for_completion_timeout(&drvdata.send_cmd_complete, msecs_to_jiffies(25));
-		drvdata.orphan_ack_pending = false;
-		drvdata.cmd_status = -ETIMEDOUT;
+	if (drvdata->orphan_ack_pending) {
+		wait_for_completion_timeout(&drvdata->send_cmd_complete, msecs_to_jiffies(25));
+		drvdata->orphan_ack_pending = false;
+		drvdata->cmd_status = -ETIMEDOUT;
 	}
-	reinit_completion(&drvdata.send_cmd_complete);
+	reinit_completion(&drvdata->send_cmd_complete);
 
 	/* We can't use a devm_alloc reusable buffer without side effects during suspend */
 	dmabuf = kzalloc(GO_S_PACKET_SIZE, GFP_KERNEL);
@@ -496,12 +506,12 @@ static int mcu_property_out(struct hid_d
 
 	/* PL_TEST commands can take longer because they go out to another device */
 	timeout = (command == GET_PL_TEST) ? 200 : 5;
-	ret = wait_for_completion_interruptible_timeout(&drvdata.send_cmd_complete,
+	ret = wait_for_completion_interruptible_timeout(&drvdata->send_cmd_complete,
 							msecs_to_jiffies(timeout));
-	ret = ret > 0 ? drvdata.cmd_status : ret ?: -EBUSY;
+	ret = ret > 0 ? drvdata->cmd_status : ret ?: -EBUSY;
 
 	if (ret)
-		drvdata.orphan_ack_pending = true;
+		drvdata->orphan_ack_pending = true;
 
 	return ret;
 }
@@ -511,18 +521,30 @@ static ssize_t gamepad_property_store(st
 				      const char *buf, size_t count,
 				      enum feature_status_index index)
 {
+	struct gos_cfg_drvdata *drvdata;
+	struct led_classdev_mc *led_mc;
+	struct led_classdev *led_cdev;
+	struct hid_device *hdev;
 	bool dev_registered;
 	size_t size = 1;
 	u8 val = 0;
 	int ret;
 
 	/* rgb_enabled is attached to led_classdev, not hid_device */
-	if (index == FEATURE_RGB_ENABLE)
-		/* Pairs with smp_store_release from gos_cfg_setup */
-		dev_registered = smp_load_acquire(&drvdata.rgb_registered);
-	else
-		/* Pairs with smp_store_release from gos_cfg_setup */
-		dev_registered = smp_load_acquire(&drvdata.gp_registered);
+	if (index == FEATURE_RGB_ENABLE) {
+		led_cdev = dev_get_drvdata(dev);
+		led_mc = lcdev_to_mccdev(led_cdev);
+		drvdata = container_of(led_mc, struct gos_cfg_drvdata, led_mc);
+		hdev = drvdata->hdev;
+	/* Pairs with smp_store_release from gos_cfg_setup */
+		dev_registered = smp_load_acquire(&drvdata->rgb_registered);
+
+	} else {
+		hdev = to_hid_device(dev);
+		drvdata = hid_get_drvdata(hdev);
+	/* Pairs with smp_store_release from gos_cfg_setup */
+		dev_registered = smp_load_acquire(&drvdata->gp_registered);
+	}
 
 	if (!dev_registered)
 		return -ENODEV;
@@ -595,7 +617,7 @@ static ssize_t gamepad_property_store(st
 	if (!val)
 		size = 0;
 
-	ret = mcu_property_out(drvdata.hdev, SET_GAMEPAD_CFG, index, &val,
+	ret = mcu_property_out(hdev, SET_GAMEPAD_CFG, index, &val,
 			       size);
 	if (ret < 0)
 		return ret;
@@ -607,79 +629,92 @@ static ssize_t gamepad_property_show(str
 				     struct device_attribute *attr, char *buf,
 				     enum feature_status_index index)
 {
+	struct gos_cfg_drvdata *drvdata;
+	struct led_classdev_mc *led_mc;
+	struct led_classdev *led_cdev;
+	struct hid_device *hdev;
 	bool dev_registered;
+
 	ssize_t count = 0;
 	u8 i;
 
 	/* rgb_enabled is attached to led_classdev, not hid_device */
-	if (index == FEATURE_RGB_ENABLE)
-		/* Pairs with smp_store_release from gos_cfg_setup */
-		dev_registered = smp_load_acquire(&drvdata.rgb_registered);
-	else
-		/* Pairs with smp_store_release from gos_cfg_setup */
-		dev_registered = smp_load_acquire(&drvdata.gp_registered);
+	if (index == FEATURE_RGB_ENABLE) {
+		led_cdev = dev_get_drvdata(dev);
+		led_mc = lcdev_to_mccdev(led_cdev);
+		drvdata = container_of(led_mc, struct gos_cfg_drvdata, led_mc);
+		hdev = drvdata->hdev;
+	/* Pairs with smp_store_release from gos_cfg_setup */
+		dev_registered = smp_load_acquire(&drvdata->rgb_registered);
+
+	} else {
+		hdev = to_hid_device(dev);
+		drvdata = hid_get_drvdata(hdev);
+	/* Pairs with smp_store_release from gos_cfg_setup */
+		dev_registered = smp_load_acquire(&drvdata->gp_registered);
+	}
 
 	if (!dev_registered)
 		return -ENODEV;
 
-	count = mcu_property_out(drvdata.hdev, GET_GAMEPAD_CFG, index, NULL, 0);
+	count = mcu_property_out(hdev, GET_GAMEPAD_CFG, index, NULL, 0);
 	if (count < 0)
 		return count;
 
 	switch (index) {
 	case FEATURE_GAMEPAD_MODE:
-		i = drvdata.gp_mode;
+		i = drvdata->gp_mode;
 		if (i >= ARRAY_SIZE(gamepad_mode_text))
 			return -EINVAL;
 		count = sysfs_emit(buf, "%s\n", gamepad_mode_text[i]);
 		break;
 	case FEATURE_AUTO_SLEEP_TIME:
-		count = sysfs_emit(buf, "%u\n", drvdata.gp_auto_sleep_time);
+		count = sysfs_emit(buf, "%u\n", drvdata->gp_auto_sleep_time);
 		break;
 	case FEATURE_IMU_ENABLE:
-		i = drvdata.imu_sensor_en;
+		i = drvdata->imu_sensor_en;
 		if (i >= ARRAY_SIZE(feature_enabled_text))
 			return -EINVAL;
 		count = sysfs_emit(buf, "%s\n", feature_enabled_text[i]);
 		break;
 	case FEATURE_IMU_BYPASS:
-		i = drvdata.imu_bypass_en;
+		i = drvdata->imu_bypass_en;
 		if (i >= ARRAY_SIZE(feature_enabled_text))
 			return -EINVAL;
 		count = sysfs_emit(buf, "%s\n", feature_enabled_text[i]);
 		break;
 	case FEATURE_RGB_ENABLE:
-		i = drvdata.rgb_en;
+		i = drvdata->rgb_en;
 		if (i >= ARRAY_SIZE(feature_enabled_text))
 			return -EINVAL;
 		count = sysfs_emit(buf, "%s\n", feature_enabled_text[i]);
 		break;
 	case FEATURE_TOUCHPAD_ENABLE:
-		i = drvdata.tp_en;
+		i = drvdata->tp_en;
 		if (i >= ARRAY_SIZE(feature_enabled_text))
 			return -EINVAL;
 		count = sysfs_emit(buf, "%s\n", feature_enabled_text[i]);
 		break;
 	case FEATURE_OS_MODE:
-		i = drvdata.os_mode;
+		i = drvdata->os_mode;
 		if (i >= ARRAY_SIZE(os_type_text))
 			return -EINVAL;
 		count = sysfs_emit(buf, "%s\n", os_type_text[i]);
 		break;
 	case FEATURE_POLL_RATE:
-		i = drvdata.gp_poll_rate;
+		i = drvdata->gp_poll_rate;
 		if (i >= ARRAY_SIZE(poll_rate_text))
 			return -EINVAL;
 		count = sysfs_emit(buf, "%s\n", poll_rate_text[i]);
 		break;
 	case FEATURE_DPAD_MODE:
-		i = drvdata.gp_dpad_mode;
+		i = drvdata->gp_dpad_mode;
 		if (i >= ARRAY_SIZE(dpad_mode_text))
 			return -EINVAL;
 		count = sysfs_emit(buf, "%s\n", dpad_mode_text[i]);
 		break;
 	case FEATURE_MOUSE_WHEEL_STEP:
-		i = drvdata.mouse_step;
+		i = drvdata->mouse_step;
 		if (i < 1 || i > 127)
 			return -EINVAL;
 		count = sysfs_emit(buf, "%u\n", i);
@@ -757,13 +792,18 @@ static ssize_t touchpad_property_store(s
 				       const char *buf, size_t count,
 				       enum touchpad_config_index index)
 {
+	struct hid_device *hdev = to_hid_device(dev);
+	struct gos_cfg_drvdata *drvdata = hid_get_drvdata(hdev);
 	bool gp_registered;
 	size_t size = 1;
 	u8 val = 0;
 	int ret;
 
-	/* Pairs with smp_store_release from gos_cfg_setup */
-	gp_registered = smp_load_acquire(&drvdata.gp_registered);
+	if (!drvdata)
+		return -ENODEV;
+
+/* Pairs with smp_store_release from gos_cfg_setup */
+	gp_registered = smp_load_acquire(&drvdata->gp_registered);
 	if (!gp_registered)
 		return -ENODEV;
 
@@ -786,7 +826,7 @@ static ssize_t touchpad_property_store(s
 	if (!val)
 		size = 0;
 
-	ret = mcu_property_out(drvdata.hdev, SET_TP_PARAM, index, &val, size);
+	ret = mcu_property_out(hdev, SET_TP_PARAM, index, &val, size);
 	if (ret < 0)
 		return ret;
 
@@ -797,25 +837,30 @@ static ssize_t touchpad_property_show(st
 				      struct device_attribute *attr, char *buf,
 				      enum touchpad_config_index index)
 {
+	struct hid_device *hdev = to_hid_device(dev);
+	struct gos_cfg_drvdata *drvdata = hid_get_drvdata(hdev);
 	bool gp_registered;
 	int ret = 0;
 	u8 i;
 
-	/* Pairs with smp_store_release from gos_cfg_setup */
-	gp_registered = smp_load_acquire(&drvdata.gp_registered);
+	if (!drvdata)
+		return -ENODEV;
+
+/* Pairs with smp_store_release from gos_cfg_setup */
+	gp_registered = smp_load_acquire(&drvdata->gp_registered);
 	if (!gp_registered)
 		return -ENODEV;
 
-	ret = mcu_property_out(drvdata.hdev, GET_TP_PARAM, index, NULL, 0);
+	ret = mcu_property_out(hdev, GET_TP_PARAM, index, NULL, 0);
 	if (ret < 0)
 		return ret;
 
 	switch (index) {
 	case CFG_WINDOWS_MODE:
-		i = drvdata.tp_windows_mode;
+		i = drvdata->tp_windows_mode;
 		break;
 	case CFG_LINUX_MODE:
-		i = drvdata.tp_linux_mode;
+		i = drvdata->tp_linux_mode;
 		break;
 	default:
 		return -EINVAL;
@@ -832,15 +877,9 @@ static ssize_t touchpad_property_options
 					 char *buf,
 					 enum touchpad_config_index index)
 {
-	bool gp_registered;
 	size_t count = 0;
 	unsigned int i;
 
-	/* Pairs with smp_store_release from gos_cfg_setup */
-	gp_registered = smp_load_acquire(&drvdata.gp_registered);
-	if (!gp_registered)
-		return -ENODEV;
-
 	switch (index) {
 	case CFG_WINDOWS_MODE:
 	case CFG_LINUX_MODE:
@@ -863,30 +902,35 @@ static ssize_t test_property_show(struct
 				  struct device_attribute *attr, char *buf,
 				  enum test_command_index index)
 {
+	struct hid_device *hdev = to_hid_device(dev);
+	struct gos_cfg_drvdata *drvdata = hid_get_drvdata(hdev);
 	bool gp_registered;
 	size_t count = 0;
 	u8 i;
 
-	/* Pairs with smp_store_release from gos_cfg_setup */
-	gp_registered = smp_load_acquire(&drvdata.gp_registered);
+	if (!drvdata)
+		return -ENODEV;
+
+/* Pairs with smp_store_release from gos_cfg_setup */
+	gp_registered = smp_load_acquire(&drvdata->gp_registered);
 	if (!gp_registered)
 		return -ENODEV;
 
 	switch (index) {
 	case TEST_TP_MFR:
-		i = drvdata.tp_manufacturer;
+		i = drvdata->tp_manufacturer;
 		if (i >= ARRAY_SIZE(touchpad_manufacturer_text))
 			return -EINVAL;
 		count = sysfs_emit(buf, "%s\n", touchpad_manufacturer_text[i]);
 		break;
 	case TEST_IMU_MFR:
-		i = drvdata.imu_manufacturer;
+		i = drvdata->imu_manufacturer;
 		if (i >= ARRAY_SIZE(imu_manufacturer_text))
 			return -EINVAL;
 		count = sysfs_emit(buf, "%s\n", imu_manufacturer_text[i]);
 		break;
 	case TEST_TP_VER:
-		count = sysfs_emit(buf, "%u\n", drvdata.tp_version);
+		count = sysfs_emit(buf, "%u\n", drvdata->tp_version);
 		break;
 	default:
 		count = -EINVAL;
@@ -899,7 +943,13 @@ static ssize_t test_property_show(struct
 static ssize_t mcu_id_show(struct device *dev, struct device_attribute *attr,
 			   char *buf)
 {
-	return sysfs_emit(buf, "%*phN\n", 12, &drvdata.mcu_id);
+	struct hid_device *hdev = to_hid_device(dev);
+	struct gos_cfg_drvdata *drvdata = hid_get_drvdata(hdev);
+
+	if (!drvdata)
+		return -ENODEV;
+
+	return sysfs_emit(buf, "%*phN\n", 12, &drvdata->mcu_id);
 }
 
 static int rgb_cfg_call(struct hid_device *hdev, enum mcu_command_index cmd,
@@ -914,27 +964,29 @@ static int rgb_cfg_call(struct hid_devic
 	return mcu_property_out(hdev, cmd, index, val, size);
 }
 
-static int rgb_attr_show(void)
+static int rgb_attr_show(struct gos_cfg_drvdata *drvdata)
 {
 	enum rgb_config_index index;
 
-	index = drvdata.rgb_profile + 2;
+	index = drvdata->rgb_profile + 2;
 
-	return rgb_cfg_call(drvdata.hdev, GET_RGB_CFG, index, NULL, 0);
+	return rgb_cfg_call(drvdata->hdev, GET_RGB_CFG, index, NULL, 0);
 };
 
 static ssize_t rgb_effect_store(struct device *dev,
 				struct device_attribute *attr, const char *buf,
 				size_t count)
 {
-	struct led_classdev_mc *led_mc = &drvdata.led_mc;
+	struct led_classdev *led_cdev = dev_get_drvdata(dev);
+	struct led_classdev_mc *led_mc = lcdev_to_mccdev(led_cdev);
+	struct gos_cfg_drvdata *drvdata = container_of(led_mc, struct gos_cfg_drvdata, led_mc);
 	enum rgb_config_index index;
 	bool rgb_registered;
 	u8 effect;
 	int ret;
 
-	/* Pairs with smp_store_release from gos_cfg_setup */
-	rgb_registered = smp_load_acquire(&drvdata.rgb_registered);
+/* Pairs with smp_store_release from gos_cfg_setup */
+	rgb_registered = smp_load_acquire(&drvdata->rgb_registered);
 	if (!rgb_registered)
 		return -ENODEV;
 
@@ -943,41 +995,44 @@ static ssize_t rgb_effect_store(struct d
 		return ret;
 
 	effect = ret;
-	index = drvdata.rgb_profile + 2;
+	index = drvdata->rgb_profile + 2;
 	u8 rgb_profile[6] = { effect,
 			      led_mc->subled_info[0].intensity,
 			      led_mc->subled_info[1].intensity,
 			      led_mc->subled_info[2].intensity,
 			      led_mc->led_cdev.brightness,
-			      drvdata.rgb_speed };
+			      drvdata->rgb_speed };
 
-	ret = rgb_cfg_call(drvdata.hdev, SET_RGB_CFG, index, rgb_profile, 6);
+	ret = rgb_cfg_call(drvdata->hdev, SET_RGB_CFG, index, rgb_profile, 6);
 	if (ret)
 		return ret;
 
-	drvdata.rgb_effect = effect;
+	drvdata->rgb_effect = effect;
 	return count;
 };
 
 static ssize_t rgb_effect_show(struct device *dev,
 			       struct device_attribute *attr, char *buf)
 {
+	struct led_classdev *led_cdev = dev_get_drvdata(dev);
+	struct led_classdev_mc *led_mc = lcdev_to_mccdev(led_cdev);
+	struct gos_cfg_drvdata *drvdata = container_of(led_mc, struct gos_cfg_drvdata, led_mc);
 	bool rgb_registered;
 	int ret;
 
-	/* Pairs with smp_store_release from gos_cfg_setup */
-	rgb_registered = smp_load_acquire(&drvdata.rgb_registered);
+/* Pairs with smp_store_release from gos_cfg_setup */
+	rgb_registered = smp_load_acquire(&drvdata->rgb_registered);
 	if (!rgb_registered)
 		return -ENODEV;
 
-	ret = rgb_attr_show();
+	ret = rgb_attr_show(drvdata);
 	if (ret)
 		return ret;
 
-	if (drvdata.rgb_effect >= ARRAY_SIZE(rgb_effect_text))
+	if (drvdata->rgb_effect >= ARRAY_SIZE(rgb_effect_text))
 		return -EINVAL;
 
-	return sysfs_emit(buf, "%s\n", rgb_effect_text[drvdata.rgb_effect]);
+	return sysfs_emit(buf, "%s\n", rgb_effect_text[drvdata->rgb_effect]);
 }
 
 static ssize_t rgb_effect_index_show(struct device *dev,
@@ -999,14 +1054,16 @@ static ssize_t rgb_speed_store(struct de
 			       struct device_attribute *attr, const char *buf,
 			       size_t count)
 {
-	struct led_classdev_mc *led_mc = &drvdata.led_mc;
+	struct led_classdev *led_cdev = dev_get_drvdata(dev);
+	struct led_classdev_mc *led_mc = lcdev_to_mccdev(led_cdev);
+	struct gos_cfg_drvdata *drvdata = container_of(led_mc, struct gos_cfg_drvdata, led_mc);
 	enum rgb_config_index index;
 	bool rgb_registered;
 	int val = 0;
 	int ret;
 
-	/* Pairs with smp_store_release from gos_cfg_setup */
-	rgb_registered = smp_load_acquire(&drvdata.rgb_registered);
+/* Pairs with smp_store_release from gos_cfg_setup */
+	rgb_registered = smp_load_acquire(&drvdata->rgb_registered);
 	if (!rgb_registered)
 		return -ENODEV;
 
@@ -1017,19 +1074,19 @@ static ssize_t rgb_speed_store(struct de
 	if (val < 0 || val > 100)
 		return -EINVAL;
 
-	index = drvdata.rgb_profile + 2;
-	u8 rgb_profile[6] = { drvdata.rgb_effect,
+	index = drvdata->rgb_profile + 2;
+	u8 rgb_profile[6] = { drvdata->rgb_effect,
 			      led_mc->subled_info[0].intensity,
 			      led_mc->subled_info[1].intensity,
 			      led_mc->subled_info[2].intensity,
 			      led_mc->led_cdev.brightness,
 			      val };
 
-	ret = rgb_cfg_call(drvdata.hdev, SET_RGB_CFG, index, rgb_profile, 6);
+	ret = rgb_cfg_call(drvdata->hdev, SET_RGB_CFG, index, rgb_profile, 6);
 	if (ret)
 		return ret;
 
-	drvdata.rgb_speed = val;
+	drvdata->rgb_speed = val;
 
 	return count;
 };
@@ -1037,22 +1094,25 @@ static ssize_t rgb_speed_store(struct de
 static ssize_t rgb_speed_show(struct device *dev, struct device_attribute *attr,
 			      char *buf)
 {
+	struct led_classdev *led_cdev = dev_get_drvdata(dev);
+	struct led_classdev_mc *led_mc = lcdev_to_mccdev(led_cdev);
+	struct gos_cfg_drvdata *drvdata = container_of(led_mc, struct gos_cfg_drvdata, led_mc);
 	bool rgb_registered;
 	int ret;
 
-	/* Pairs with smp_store_release from gos_cfg_setup */
-	rgb_registered = smp_load_acquire(&drvdata.rgb_registered);
+/* Pairs with smp_store_release from gos_cfg_setup */
+	rgb_registered = smp_load_acquire(&drvdata->rgb_registered);
 	if (!rgb_registered)
 		return -ENODEV;
 
-	ret = rgb_attr_show();
+	ret = rgb_attr_show(drvdata);
 	if (ret)
 		return ret;
 
-	if (drvdata.rgb_speed > 100)
+	if (drvdata->rgb_speed > 100)
 		return -EINVAL;
 
-	return sysfs_emit(buf, "%hhu\n", drvdata.rgb_speed);
+	return sysfs_emit(buf, "%hhu\n", drvdata->rgb_speed);
 }
 
 static ssize_t rgb_speed_range_show(struct device *dev,
@@ -1064,12 +1124,15 @@ static ssize_t rgb_speed_range_show(stru
 static ssize_t rgb_mode_store(struct device *dev, struct device_attribute *attr,
 			      const char *buf, size_t count)
 {
+	struct led_classdev *led_cdev = dev_get_drvdata(dev);
+	struct led_classdev_mc *led_mc = lcdev_to_mccdev(led_cdev);
+	struct gos_cfg_drvdata *drvdata = container_of(led_mc, struct gos_cfg_drvdata, led_mc);
 	bool rgb_registered;
 	int ret;
 	u8 val;
 
-	/* Pairs with smp_store_release from gos_cfg_setup */
-	rgb_registered = smp_load_acquire(&drvdata.rgb_registered);
+/* Pairs with smp_store_release from gos_cfg_setup */
+	rgb_registered = smp_load_acquire(&drvdata->rgb_registered);
 	if (!rgb_registered)
 		return -ENODEV;
 
@@ -1079,12 +1142,12 @@ static ssize_t rgb_mode_store(struct dev
 
 	val = ret;
 
-	ret = rgb_cfg_call(drvdata.hdev, SET_RGB_CFG, LIGHT_MODE_SEL, &val,
+	ret = rgb_cfg_call(drvdata->hdev, SET_RGB_CFG, LIGHT_MODE_SEL, &val,
 			   1);
 	if (ret)
 		return ret;
 
-	drvdata.rgb_mode = val;
+	drvdata->rgb_mode = val;
 
 	return count;
 };
@@ -1092,22 +1155,25 @@ static ssize_t rgb_mode_store(struct dev
 static ssize_t rgb_mode_show(struct device *dev, struct device_attribute *attr,
 			     char *buf)
 {
+	struct led_classdev *led_cdev = dev_get_drvdata(dev);
+	struct led_classdev_mc *led_mc = lcdev_to_mccdev(led_cdev);
+	struct gos_cfg_drvdata *drvdata = container_of(led_mc, struct gos_cfg_drvdata, led_mc);
 	bool rgb_registered;
 	int ret;
 
-	/* Pairs with smp_store_release from gos_cfg_setup */
-	rgb_registered = smp_load_acquire(&drvdata.rgb_registered);
+/* Pairs with smp_store_release from gos_cfg_setup */
+	rgb_registered = smp_load_acquire(&drvdata->rgb_registered);
 	if (!rgb_registered)
 		return -ENODEV;
 
-	ret = rgb_cfg_call(drvdata.hdev, GET_RGB_CFG, LIGHT_MODE_SEL, NULL, 0);
+	ret = rgb_cfg_call(drvdata->hdev, GET_RGB_CFG, LIGHT_MODE_SEL, NULL, 0);
 	if (ret)
 		return ret;
 
-	if (drvdata.rgb_mode >= ARRAY_SIZE(rgb_mode_text))
+	if (drvdata->rgb_mode >= ARRAY_SIZE(rgb_mode_text))
 		return -EINVAL;
 
-	return sysfs_emit(buf, "%s\n", rgb_mode_text[drvdata.rgb_mode]);
+	return sysfs_emit(buf, "%s\n", rgb_mode_text[drvdata->rgb_mode]);
 };
 
 static ssize_t rgb_mode_index_show(struct device *dev,
@@ -1129,13 +1195,16 @@ static ssize_t rgb_profile_store(struct
 				 struct device_attribute *attr, const char *buf,
 				 size_t count)
 {
+	struct led_classdev *led_cdev = dev_get_drvdata(dev);
+	struct led_classdev_mc *led_mc = lcdev_to_mccdev(led_cdev);
+	struct gos_cfg_drvdata *drvdata = container_of(led_mc, struct gos_cfg_drvdata, led_mc);
 	bool rgb_registered;
 	size_t size = 1;
 	int ret;
 	u8 val;
 
-	/* Pairs with smp_store_release from gos_cfg_setup */
-	rgb_registered = smp_load_acquire(&drvdata.rgb_registered);
+/* Pairs with smp_store_release from gos_cfg_setup */
+	rgb_registered = smp_load_acquire(&drvdata->rgb_registered);
 	if (!rgb_registered)
 		return -ENODEV;
 
@@ -1146,11 +1215,11 @@ static ssize_t rgb_profile_store(struct
 	if (val < 1 || val > 3)
 		return -EINVAL;
 
-	ret = rgb_cfg_call(drvdata.hdev, SET_RGB_CFG, LIGHT_PROFILE_SEL, &val, size);
+	ret = rgb_cfg_call(drvdata->hdev, SET_RGB_CFG, LIGHT_PROFILE_SEL, &val, size);
 	if (ret)
 		return ret;
 
-	drvdata.rgb_profile = val;
+	drvdata->rgb_profile = val;
 
 	return count;
 };
@@ -1158,22 +1227,25 @@ static ssize_t rgb_profile_store(struct
 static ssize_t rgb_profile_show(struct device *dev,
 				struct device_attribute *attr, char *buf)
 {
+	struct led_classdev *led_cdev = dev_get_drvdata(dev);
+	struct led_classdev_mc *led_mc = lcdev_to_mccdev(led_cdev);
+	struct gos_cfg_drvdata *drvdata = container_of(led_mc, struct gos_cfg_drvdata, led_mc);
 	bool rgb_registered;
 	int ret;
 
-	/* Pairs with smp_store_release from gos_cfg_setup */
-	rgb_registered = smp_load_acquire(&drvdata.rgb_registered);
+/* Pairs with smp_store_release from gos_cfg_setup */
+	rgb_registered = smp_load_acquire(&drvdata->rgb_registered);
 	if (!rgb_registered)
 		return -ENODEV;
 
-	ret = rgb_cfg_call(drvdata.hdev, GET_RGB_CFG, LIGHT_PROFILE_SEL, NULL, 0);
+	ret = rgb_cfg_call(drvdata->hdev, GET_RGB_CFG, LIGHT_PROFILE_SEL, NULL, 0);
 	if (ret)
 		return ret;
 
-	if (drvdata.rgb_profile < 1 || drvdata.rgb_profile > 3)
+	if (drvdata->rgb_profile < 1 || drvdata->rgb_profile > 3)
 		return -EINVAL;
 
-	return sysfs_emit(buf, "%hhu\n", drvdata.rgb_profile);
+	return sysfs_emit(buf, "%hhu\n", drvdata->rgb_profile);
 };
 
 static ssize_t rgb_profile_range_show(struct device *dev,
@@ -1185,13 +1257,14 @@ static ssize_t rgb_profile_range_show(st
 static void hid_gos_brightness_set(struct led_classdev *led_cdev,
 				   enum led_brightness brightness)
 {
-	struct led_classdev_mc *led_mc = &drvdata.led_mc;
+	struct led_classdev_mc *led_mc = lcdev_to_mccdev(led_cdev);
+	struct gos_cfg_drvdata *drvdata = container_of(led_mc, struct gos_cfg_drvdata, led_mc);
 	enum rgb_config_index index;
 	bool rgb_registered;
 	int ret;
 
-	/* Pairs with smp_store_release from gos_cfg_setup */
-	rgb_registered = smp_load_acquire(&drvdata.rgb_registered);
+/* Pairs with smp_store_release from gos_cfg_setup */
+	rgb_registered = smp_load_acquire(&drvdata->rgb_registered);
 	if (!rgb_registered)
 		return;
 
@@ -1200,15 +1273,15 @@ static void hid_gos_brightness_set(struc
 		return;
 	}
 
-	index = drvdata.rgb_profile + 2;
-	u8 rgb_profile[6] = { drvdata.rgb_effect,
+	index = drvdata->rgb_profile + 2;
+	u8 rgb_profile[6] = { drvdata->rgb_effect,
 			      led_mc->subled_info[0].intensity,
 			      led_mc->subled_info[1].intensity,
 			      led_mc->subled_info[2].intensity,
 			      brightness,
-			      drvdata.rgb_speed };
+			      drvdata->rgb_speed };
 
-	ret = rgb_cfg_call(drvdata.hdev, SET_RGB_CFG, index, rgb_profile, 6);
+	ret = rgb_cfg_call(drvdata->hdev, SET_RGB_CFG, index, rgb_profile, 6);
 	switch (ret) {
 	case 0:
 		led_cdev->brightness = brightness;
@@ -1446,127 +1519,138 @@ static struct mc_subled gos_rgb_subled_i
 
 static void cfg_setup(struct work_struct *work)
 {
+	struct delayed_work *dwork = container_of(work, struct delayed_work, work);
+	struct gos_cfg_drvdata *drvdata = container_of(dwork, struct gos_cfg_drvdata,
+						       gos_cfg_setup);
 	bool gp_registered, rgb_registered;
 	int ret;
 
+	if (!drvdata)
+		return;
+
 	/* MCU */
-	ret = mcu_property_out(drvdata.hdev, GET_MCU_ID, FEATURE_NONE, NULL, 0);
+	ret = mcu_property_out(drvdata->hdev, GET_MCU_ID, FEATURE_NONE, NULL, 0);
 	if (ret) {
-		dev_err(&drvdata.hdev->dev, "Failed to retrieve MCU ID: %i\n",
+		dev_err(&drvdata->hdev->dev, "Failed to retrieve MCU ID: %i\n",
 			ret);
 		return;
 	}
 
-	ret = mcu_property_out(drvdata.hdev, GET_VERSION, FEATURE_NONE, NULL, 0);
+	ret = mcu_property_out(drvdata->hdev, GET_VERSION, FEATURE_NONE, NULL, 0);
 	if (ret) {
-		dev_err(&drvdata.hdev->dev, "Failed to retrieve MCU Version: %i\n", ret);
+		dev_err(&drvdata->hdev->dev, "Failed to retrieve MCU Version: %i\n", ret);
 		return;
 	}
 
-	ret = mcu_property_out(drvdata.hdev, GET_PL_TEST, TEST_TP_MFR, NULL, 0);
+	ret = mcu_property_out(drvdata->hdev, GET_PL_TEST, TEST_TP_MFR, NULL, 0);
 	if (ret) {
-		dev_err(&drvdata.hdev->dev,
+		dev_err(&drvdata->hdev->dev,
 			"Failed to retrieve Touchpad Manufacturer: %i\n", ret);
 		return;
 	}
 
-	ret = mcu_property_out(drvdata.hdev, GET_PL_TEST, TEST_TP_VER, NULL, 0);
+	ret = mcu_property_out(drvdata->hdev, GET_PL_TEST, TEST_TP_VER, NULL, 0);
 	if (ret) {
-		dev_err(&drvdata.hdev->dev,
+		dev_err(&drvdata->hdev->dev,
 			"Failed to retrieve Touchpad Firmware Version: %i\n", ret);
 		return;
 	}
 
-	ret = mcu_property_out(drvdata.hdev, GET_PL_TEST, TEST_IMU_MFR, NULL, 0);
+	ret = mcu_property_out(drvdata->hdev, GET_PL_TEST, TEST_IMU_MFR, NULL, 0);
 	if (ret) {
-		dev_err(&drvdata.hdev->dev,
+		dev_err(&drvdata->hdev->dev,
 			"Failed to retrieve IMU Manufacturer: %i\n", ret);
 		return;
 	}
 
-	ret = mcu_property_out(drvdata.hdev, GET_GAMEPAD_CFG, FEATURE_OS_MODE,
+	ret = mcu_property_out(drvdata->hdev, GET_GAMEPAD_CFG, FEATURE_OS_MODE,
 			       NULL, 0);
 	if (ret) {
-		dev_err(&drvdata.hdev->dev,
+		dev_err(&drvdata->hdev->dev,
 			"Failed to retrieve OS Mode: %i\n", ret);
 		return;
 	}
 
-	/* Pairs with smp_store_release from below */
-	gp_registered = smp_load_acquire(&drvdata.gp_registered);
+/* Pairs with smp_store_release from below */
+	gp_registered = smp_load_acquire(&drvdata->gp_registered);
 	if (gp_registered)
 		goto try_rgb;
 
-	ret = sysfs_create_groups(&drvdata.hdev->dev.kobj, top_level_attr_groups);
+	ret = sysfs_create_groups(&drvdata->hdev->dev.kobj, top_level_attr_groups);
 	if (ret) {
-		dev_err(&drvdata.hdev->dev,
+		dev_err(&drvdata->hdev->dev,
 			"Failed to create gamepad configuration attributes: %i\n", ret);
 		goto try_rgb;
 	}
 
-	/* Pairs with smp_load_acquire in attribute show/store functions */
-	smp_store_release(&drvdata.gp_registered, true);
+/* Pairs with smp_load_acquire in attribute show/store functions */
+	smp_store_release(&drvdata->gp_registered, true);
 	gp_registered = true;
 
 try_rgb:
-	/* Pairs with smp_store_release from below */
-	rgb_registered = smp_load_acquire(&drvdata.rgb_registered);
+/* Pairs with smp_store_release from below */
+	rgb_registered = smp_load_acquire(&drvdata->rgb_registered);
 	if (rgb_registered)
 		goto update_kobjects;
 
-	ret = devm_led_classdev_multicolor_register(&drvdata.hdev->dev, &drvdata.led_mc);
+	ret = devm_led_classdev_multicolor_register(&drvdata->hdev->dev, &drvdata->led_mc);
 	if (ret) {
-		dev_err(&drvdata.hdev->dev,
+		dev_err(&drvdata->hdev->dev,
 			"Failed to create RGB device: %i\n", ret);
 		goto update_kobjects;
 	}
 
-	ret = devm_device_add_group(drvdata.led_mc.led_cdev.dev, &rgb_attr_group);
+	ret = devm_device_add_group(drvdata->led_mc.led_cdev.dev, &rgb_attr_group);
 	if (ret) {
-		dev_err(&drvdata.hdev->dev,
+		dev_err(&drvdata->hdev->dev,
 			"Failed to create RGB configuration attributes: %i\n", ret);
 		goto update_kobjects;
 	}
 
-	/* Pairs with smp_load_acquire in attribute show/store functions */
-	smp_store_release(&drvdata.rgb_registered, true);
+/* Pairs with smp_load_acquire in attribute show/store functions */
+	smp_store_release(&drvdata->rgb_registered, true);
 	rgb_registered = true;
 
 update_kobjects:
 	if (gp_registered)
-		kobject_uevent(&drvdata.hdev->dev.kobj, KOBJ_CHANGE);
+		kobject_uevent(&drvdata->hdev->dev.kobj, KOBJ_CHANGE);
 	if (rgb_registered)
-		kobject_uevent(&drvdata.led_mc.led_cdev.dev->kobj, KOBJ_CHANGE);
+		kobject_uevent(&drvdata->led_mc.led_cdev.dev->kobj, KOBJ_CHANGE);
 }
 
 static int hid_gos_cfg_probe(struct hid_device *hdev,
 			     const struct hid_device_id *_id)
 {
+	struct gos_cfg_drvdata *drvdata;
 	int ret;
 
-	hid_set_drvdata(hdev, &drvdata);
-	drvdata.hdev = hdev;
+	drvdata = devm_kzalloc(&hdev->dev, sizeof(struct gos_cfg_drvdata), GFP_KERNEL);
+	if (!drvdata)
+		return -ENOMEM;
+
+	hid_set_drvdata(hdev, drvdata);
+	drvdata->hdev = hdev;
 
-	mutex_init(&drvdata.cfg_mutex);
-	init_completion(&drvdata.send_cmd_complete);
+	mutex_init(&drvdata->cfg_mutex);
+	init_completion(&drvdata->send_cmd_complete);
 
 	/* Device is hardwired and name is guaranteed to be unique */
-	drvdata.led_mc.led_cdev.name = "go_s:rgb:joystick_rings";
-	drvdata.led_mc.led_cdev.brightness = 0x50;
-	drvdata.led_mc.led_cdev.max_brightness = 0x64;
-	drvdata.led_mc.led_cdev.color = LED_COLOR_ID_RGB;
-	drvdata.led_mc.led_cdev.brightness_set = hid_gos_brightness_set;
-	drvdata.led_mc.num_colors = 3;
-	drvdata.led_mc.subled_info = devm_kmemdup(&hdev->dev, gos_rgb_subled_info,
-						  sizeof(gos_rgb_subled_info), GFP_KERNEL);
-	if (!drvdata.led_mc.subled_info)
+	drvdata->led_mc.led_cdev.name = "go_s:rgb:joystick_rings";
+	drvdata->led_mc.led_cdev.brightness = 0x50;
+	drvdata->led_mc.led_cdev.max_brightness = 0x64;
+	drvdata->led_mc.led_cdev.color = LED_COLOR_ID_RGB;
+	drvdata->led_mc.led_cdev.brightness_set = hid_gos_brightness_set;
+	drvdata->led_mc.num_colors = 3;
+	drvdata->led_mc.subled_info = devm_kmemdup(&hdev->dev, gos_rgb_subled_info,
+						   sizeof(gos_rgb_subled_info), GFP_KERNEL);
+	if (!drvdata->led_mc.subled_info)
 		return -ENOMEM;
 
 	/* Executing calls prior to returning from probe will lock the MCU. Schedule
 	 * initial data call after probe has completed and MCU can accept calls.
 	 */
-	INIT_DELAYED_WORK(&drvdata.gos_cfg_setup, &cfg_setup);
-	ret = schedule_delayed_work(&drvdata.gos_cfg_setup, msecs_to_jiffies(2));
+	INIT_DELAYED_WORK(&drvdata->gos_cfg_setup, &cfg_setup);
+	ret = schedule_delayed_work(&drvdata->gos_cfg_setup, msecs_to_jiffies(2));
 	if (!ret) {
 		dev_err(&hdev->dev, "Failed to schedule startup delayed work\n");
 		return -ENODEV;
@@ -1577,7 +1661,12 @@ static int hid_gos_cfg_probe(struct hid_
 
 static void hid_gos_cfg_remove(struct hid_device *hdev)
 {
-	disable_delayed_work_sync(&drvdata.gos_cfg_setup);
+	struct gos_cfg_drvdata *drvdata = hid_get_drvdata(hdev);
+
+	if (!drvdata)
+		return;
+
+	disable_delayed_work_sync(&drvdata->gos_cfg_setup);
 	sysfs_remove_groups(&hdev->dev.kobj, top_level_attr_groups);
 	hid_hw_close(hdev);
 	hid_hw_stop(hdev);
@@ -1586,16 +1675,21 @@ static void hid_gos_cfg_remove(struct hi
 
 static int hid_gos_cfg_reset_resume(struct hid_device *hdev)
 {
+	struct gos_cfg_drvdata *drvdata = hid_get_drvdata(hdev);
 	bool gp_registered, rgb_registered;
-	u8 os_mode = drvdata.os_mode;
+	u8 os_mode;
 	int ret;
 
-	/* Pairs with smp_store_release from gos_cfg_setup */
-	gp_registered = smp_load_acquire(&drvdata.gp_registered);
-	/* Pairs with smp_store_release from gos_cfg_setup */
-	rgb_registered = smp_load_acquire(&drvdata.rgb_registered);
+	if (!drvdata)
+		return -ENODEV;
+
+	os_mode = drvdata->os_mode;
+/* Pairs with smp_store_release from gos_cfg_setup */
+	gp_registered = smp_load_acquire(&drvdata->gp_registered);
+/* Pairs with smp_store_release from gos_cfg_setup */
+	rgb_registered = smp_load_acquire(&drvdata->rgb_registered);
 	if (!gp_registered || !rgb_registered) {
-		ret = schedule_delayed_work(&drvdata.gos_cfg_setup, msecs_to_jiffies(2));
+		ret = schedule_delayed_work(&drvdata->gos_cfg_setup, msecs_to_jiffies(2));
 		if (!ret) {
 			dev_err(&hdev->dev, "Failed to schedule startup delayed work\n");
 			return -ENODEV;
@@ -1604,20 +1698,20 @@ static int hid_gos_cfg_reset_resume(stru
 		return 0;
 	}
 
-	ret = mcu_property_out(drvdata.hdev, SET_GAMEPAD_CFG,
+	ret = mcu_property_out(drvdata->hdev, SET_GAMEPAD_CFG,
 			       FEATURE_OS_MODE, &os_mode, 1);
 	if (ret < 0)
 		return ret;
 
-	ret = mcu_property_out(drvdata.hdev, GET_GAMEPAD_CFG,
+	ret = mcu_property_out(drvdata->hdev, GET_GAMEPAD_CFG,
 			       FEATURE_OS_MODE, NULL, 0);
 	if (ret < 0)
 		return ret;
 
-	if (drvdata.os_mode != os_mode)
+	if (drvdata->os_mode != os_mode)
 		return -ENODEV;
 
-	kobject_uevent(&drvdata.hdev->dev.kobj, KOBJ_CHANGE);
+	kobject_uevent(&drvdata->hdev->dev.kobj, KOBJ_CHANGE);
 	return 0;
 }
 
@@ -1692,9 +1786,14 @@ static int hid_gos_reset_resume(struct h
 	return 0;
 }
 
-static int hid_gos_cfg_suspend(void)
+static int hid_gos_cfg_suspend(struct hid_device *hdev)
 {
-	disable_delayed_work_sync(&drvdata.gos_cfg_setup);
+	struct gos_cfg_drvdata *drvdata = hid_get_drvdata(hdev);
+
+	if (!drvdata)
+		return -ENODEV;
+
+	disable_delayed_work_sync(&drvdata->gos_cfg_setup);
 
 	return 0;
 }
@@ -1711,7 +1810,7 @@ static int hid_gos_suspend(struct hid_de
 
 	ep = ret;
 	if (ep == GO_S_CFG_INTF_IN)
-		return hid_gos_cfg_suspend();
+		return hid_gos_cfg_suspend(hdev);
 
 	return 0;
 }



  parent reply	other threads:[~2026-11-04 21:53 UTC|newest]

Thread overview: 573+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-04 21:03 [PATCH 7.3 000/547] 7.3.2-rc1 review Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 001/547] net: skbuff: propagate shared-frag marker in skb_zerocopy() Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 002/547] ksmbd: wait for negotiation before receiving another PDU Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 003/547] smb: smbdirect: dont wait for RDMA_CM_EVENT_DISCONNECTED in smbdirect_socket_destroy_sync() Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 004/547] smb: smbdirect: release failed pending sockets of a listener Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 005/547] smb: smbdirect: dont hand out already failed sockets in smbdirect_socket_accept() Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 006/547] ksmbd: reject FSCTL_SET_ZERO_DATA on a directory handle Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 007/547] wifi: ath12k: move dp_profile_params to dp.h Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 008/547] wifi: ath12k: convert DP_TX_COMP_RING_SIZE to inline helper Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 009/547] wifi: ath12k: convert DP_RXDMA_MONITOR_BUF_RING_SIZE " Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 010/547] wifi: ath12k: convert DP_RXDMA_MONITOR_DST_RING_SIZE " Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 011/547] wifi: ath12k: convert ATH12K_NUM_POOL_TX_DESC " Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 012/547] wifi: ath12k: convert ATH12K_RX_DESC_COUNT " Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 013/547] wifi: ath12k: convert DP_RX_RELEASE_RING_SIZE " Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 014/547] wifi: ath12k: Make RXDMA buffer ring size configurable per memory profile Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 015/547] wifi: ath12k: Increase RXDMA buffer ring size for default " Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 016/547] platform: cznic: turris-omnia-mcu: Add missing MODULE_DEVICE_TABLE() Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 017/547] io_uring/waitid: own the request before clearing ->head Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 018/547] io_uring/cmd: dont leave list poison in ->hash_node Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 019/547] io_uring/wait: dont spin on a stuck overflow list Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 020/547] io_uring/io-wq: dont lose the signal that ends work Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 021/547] io_uring/io-wq: dont hide a link from cancellations Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 022/547] io_uring: dont flood a cancelling task with task_work Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 023/547] io_uring: dont lose the DEFER_TASKRUN wake up Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 024/547] io_uring/cancel: rearm local work wake up before sleep Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 025/547] io_uring/mpscq: disable preemption while pushing Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 026/547] io_uring/io-wq: dont go to sleep on pending work Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 027/547] io_uring/io-wq: dont strand work when a worker exits Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 028/547] io_uring/io-wq: dont exit with a creation pending Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 029/547] io_uring/io-wq: let cancel find picked up hashed work Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 030/547] io_uring/poll: dont lose a cancel as io-wq arms poll Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 031/547] io_uring: dont lose a cancel as io-wq parks a request Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 032/547] io_uring/cancel: dont forget that the work was running Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 033/547] io_uring/cancel: recognize "no timeout" on 32-bit Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 034/547] io_uring/cancel: let CANCEL_ALL find parked requests Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 035/547] io_uring: wake ring pollers for local task_work Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 036/547] io_uring/wait: look at all CQ waiters on wake up Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 037/547] io_uring/poll: drop stale double poll entry on rearm Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 038/547] io_uring/futex: allocate private hash before waiting Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 039/547] io_uring: drop the CQE cache if a refill fails Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 040/547] io_uring: dont split 128b SQEs at the SQPOLL cap Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 041/547] io_uring/register: dont wrap 32b CQEs when resizing Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 042/547] io_uring/register: handle index wrap " Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 043/547] io_uring/register: keep 128b SQEs intact on resize Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 044/547] io_uring/fdinfo: fix CQE dump of CQE32 rings Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 045/547] io_uring/timeout: dont skip over reached sequences Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 046/547] io_uring/timeout: keep repeat count on multishot update Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 047/547] io_uring/timeout: use the right clock for ABS updates Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 048/547] io_uring/wait: no early -ETIME if min_wait finds work Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 049/547] io_uring/napi: make stale entries time out after 60s Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 050/547] io_uring/napi: dont busy poll past an expired timeout Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 051/547] io_uring/zcrx: fix buffer offsets in areas above 4GB Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 052/547] io_uring/kbuf: handle index wrap in last buffer check Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 053/547] io_uring/sqpoll: let the thread sleep on disabled rings Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 054/547] io_uring/openclose: keep the lock in io_pipe_fixed() Greg Kroah-Hartman
2026-11-04 21:03 ` [PATCH 7.3 055/547] io_uring: dont pass restart error codes to userspace Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 056/547] io_uring/net: dont retry recv on uncommitted buffers Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 057/547] io_uring/timeout: no ABS update of multishot timeouts Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 058/547] io_uring/timeout: dont end a linked timeout with 1 Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 059/547] io_uring: look up the file before queueing to io-wq Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 060/547] io_uring/timeout: dont put a sequence target behind the last flush Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 061/547] io_uring/timeout: dont flush with the sequence " Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 062/547] io_uring/timeout: dont lose a cancel as io-wq arms a timeout Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 063/547] exec: cancel io_uring requests before de_thread() Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 064/547] fork: move the coredump and exec checks into create_io_thread() Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 065/547] fork: dont create io threads once PF_POSTCOREDUMP is set Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 066/547] clk: renesas: r9a08g046: Propagate clk rate for ETH TX mux clocks Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 067/547] ALSA: line6: Clear prev_fbuf on capture buffer release Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 068/547] Bluetooth: forget a peers RPA once it advertises its identity address Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 069/547] wifi: mt76: mt7925: fix reset panic caused by the WM2 rx irq mask Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 070/547] ARM: 9524/1: mm: align hugetlb mappings to the huge page size Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 071/547] blk-crypto: fix NULL deref and UAF in __blk_crypto_evict_key() Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 072/547] ceph: fail readdir when the MDS reply carries no dirfrag Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 073/547] fuse: dont BUG when the copy buffer is exhausted Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 074/547] kcov: ignore an out-of-range comparison count in write_comp_data() Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 075/547] kcsan: Avoid division by zero in kcsan_prandom_u32_max() Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 076/547] ksmbd: serialize directory emptiness checks with readdir Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 077/547] libceph: bound mon_command ack decode to front len Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 078/547] media: cx88: Disable PCI device on MPEG initialization failure Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 079/547] media: em28xx: reject audio endpoint with zero packet size Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 080/547] media: go7007: only set audio_enabled if go7007_snd_init() succeeded Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 081/547] media: usbtv: fix null-pointer dereference on disconnect Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 082/547] net: ipv4: add zero check for snd_cwnd_clamp Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 083/547] net: usb: pegasus: do not advance rx_skb->data on dropped frames Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 084/547] nfsd: fix race between client_info_show() and free_client() Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 085/547] ocfs2/dlm: drain join handlers before releasing module text Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 086/547] ocfs2: drain quorum work before removing the cluster Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 087/547] ocfs2: pin owning modules for open debugfs files Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 088/547] ocfs2: publish the filecheck owner before adding sysfs attributes Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 089/547] smb: client: do not pass a NULL buf to is_oplock_break() Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 090/547] smb: client: fix early procfs exposure race Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 091/547] thunderbolt: Do not RPM complete unrelated subtrees on unplug Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 092/547] udf: fix return value for non-recorded-allocated extents in udf_map_block() Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 093/547] wwan: wwan_hwsim: Pin module for debugfs file operations Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 094/547] xfs: fix integer overflow problem when setting large free areas Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 095/547] dt-bindings: interrupt-controller: gicv5: Relax IRS properties constraints Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 096/547] irqchip/gic-v5: Fix standalone IRSes OF probe Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 097/547] serial: core: fix TIOCSSERIAL and TIOCSERCONFIG on uninitialised ports Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 098/547] net/sched: cls_bpf: accept dev-bound programs on shared blocks Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 099/547] net/sched: cls_flower: avoid stale mask references after delete Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 100/547] net/sched: sch_teql: fix slaves_lock IRQ deadlock Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 101/547] net/sched: sch_teql: fix use-after-free on lower qdisc drop Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 102/547] net/sched: fix packet reordering on requeue Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 103/547] net/sched: act_ife: do not consume the inner header on egress Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 104/547] driver core: take parent lock on deferred probe Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 105/547] driver core: Limit the messages on a refused uevent Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 106/547] driver core: fix parent lock use-after-free on USB disconnect Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 107/547] driver core: take parent lock in async device attach Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 108/547] Drivers: hv: vmbus: Bounds check the shared ring buffer indices Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 109/547] backlight: lm3630a: Cancel delayed work before destroying workqueue Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 110/547] backlight: qcom-wled: Fix NULL pointer dereference in wled_remove() Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 111/547] backlight: qcom-wled: Fix unbalanced OVP IRQ enable at probe Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 112/547] backlight: qcom-wled: Fix WLED3 brightness register stride Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 113/547] ksmbd: accept share config responses from ksmbd-tools before 3.5.3 Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 114/547] ksmbd: avoid restoring only in-memory EOF after allocation change Greg Kroah-Hartman
2026-11-04 21:04 ` [PATCH 7.3 115/547] ksmbd: defer connection scavenging while session locks are busy Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 116/547] ksmbd: deny access for an empty DACL instead of granting the request Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 117/547] ksmbd: drain session procfs readers before dropping table references Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 118/547] ksmbd: fix extended session security negotiation for raw NTLMSSP Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 119/547] ksmbd: fix OOB read and cross-share confusion in ksmbd_validate_name_reconnect() Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 120/547] ksmbd: fix overflow in dacloffset bounds check in build_sec_desc() Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 121/547] ksmbd: fix parent dentry lifetime in directory enumeration Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 122/547] ksmbd: fix session reference leak on compounded SESSION_SETUP Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 123/547] ksmbd: hold a connection reference for each session channel Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 124/547] ksmbd: ignore network devices of other namespaces Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 125/547] ksmbd: limit sessions on each connection Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 126/547] ksmbd: preserve unreadable named streams on open Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 127/547] ksmbd: prevent session binding in compound requests Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 128/547] ksmbd: prevent share root removal through empty paths Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 129/547] ksmbd: prevent stale data from being written by SMB2 WRITE requests Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 130/547] ksmbd: reclaim ended sessions on logoff and expiration Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 131/547] ksmbd: reserve space for the UTF-16 terminator in stream info Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 132/547] ksmbd: restore Kerberos logins with released ksmbd-tools Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 133/547] ksmbd: return end of file for reads past a named streams data Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 134/547] ksmbd: use u8 for SMB2 oplock level values Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 135/547] ksmbd: validate AppInstanceId takeover target Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 136/547] ksmbd: validate security descriptor offsets before pointer arithmetic Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 137/547] ksmbd: verify transform SessionId matches the decrypted header Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 138/547] vlan: restore HW VLAN tag insertion with reorder_hdr off Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 139/547] cgroup: serialize migrations of newly forked processes Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 140/547] wifi: b43: fix use-after-free in b43_bcma_remove() Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 141/547] SUNRPC: fix netns use-after-free in write_gssp() Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 142/547] spmi: Fix potential use-after-free by grabbing of_node reference Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 143/547] smb: client: fix use-after-free infoleak via the readdir resume name Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 144/547] smb: client: fix use-after-free in cifs_ses_add_channel() Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 145/547] sched_ext: Fix use-after-free of a local reenq node left on an inactive cpu Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 146/547] RDMA/uverbs: Fix DMABUF use-after-free during ufile cleanup Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 147/547] RDMA/irdma: avoid use-after-free in icrdma_remove Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 148/547] rapidio: mport_cdev: fix use-after-free in mport_mm_close() Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 149/547] pps: generators: fix use-after-free when closing a removed device Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 150/547] PM: EM: Fix use-after-free of perf domain in netlink doit handlers Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 151/547] platform/x86: asus-wmi: fix use-after-free unregistering kbd_led led Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 152/547] platform/x86/amd: hfi: Fix a use-after-free when unloading the driver Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 153/547] nvmet: fix use-after-free of the old registrant in nvmet_pr_preempt() Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 154/547] nvmet-fc: fix use-after-free in nvmet_fc_ls_create_connection() Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 155/547] iommufd: Fix event queue release use-after-free Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 156/547] landlock: Fix superblock use-after-free in release_inode() Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 157/547] lockd: Fix use-after-free in nlmsvc_retry_blocked Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 158/547] media: au0828: fix use-after-free in bulk_timeout timer on disconnect Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 159/547] media: cx23885: Fix use-after-free in cx23885_finidev due to race condition Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 160/547] media: hackrf: fix use-after-free in hackrf_alloc_urbs() error path Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 161/547] media: imon: fix use-after-free in display_close via dev_dbg Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 162/547] media: ipu-bridge: Fix use-after-free in IVSC error path Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 163/547] mm/hugetlb: fix use-after-free in hugetlb_mfill_atomic_pte() Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 164/547] mm/hugetlb: fix use-after-free of a new anon folio Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 165/547] apparmor: fix a use-after-free in aa_lookupn_ns() Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 166/547] ASoC: audio-graph-card2: Fix use-after-free in audio_graph2_link_c2c() Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 167/547] ata: sata_fsl: Fix use-after-free of host_priv on probe() failure Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 168/547] drm/msm: Fix vm_bo use-after-free in with_vm_locks() Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 169/547] s390/pci: Fix double-free and NULL deref in zpci MSI domain cleanup Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 170/547] s390/pci: Fix MSI directed-mode teardown IRQ bit count Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 171/547] s390/pci: Fix resource leak in zpci MSI setup Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 172/547] s390/pci: Fix use-after-free race in zpci floating interrupt cleanup Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 173/547] s390/pci: Add error cleanup in zpci_directed_irq_init() Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 174/547] s390/cpum_cf: Check session mask before cpu offline Greg Kroah-Hartman
2026-11-04 21:05 ` [PATCH 7.3 175/547] s390/extable: Fix mvcos instruction decoding Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 176/547] s390/kprobes: Prevent kprobes on instructions with exception table entry Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 177/547] s390/probes: Fix wrong opcode for cgrb fixup Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 178/547] s390/signal: Fix incorrect return address in signal frame Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 179/547] s390/vmcp: Initialize full session info to zero Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 180/547] s390/zcrypt: Fix and improve zcrypt reply message verification checks Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 181/547] s390/zcrypt: Fix out-of-bounds ptr advance in cca_query_crypto_facility() Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 182/547] s390/zcrypt: Guard domain index uses against speculative bypass Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 183/547] HID: wacom: Use hdev->product in wacom_setup_touch_input_capabilities Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 184/547] HID: wacom: Advertise SW_MUTE_DEVICE capability prior to registration Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 185/547] HID: wacom: Fix Use-After-Free in wacom_intuos_pad Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 186/547] HID: wacom: Fix Use-After-Free in wacom_bamboo_pad Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 187/547] HID: wacom: Redesign shared sibling data lifecycle Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 188/547] HID: wacom: Setup SW_MUTE_DEVICE according to the order of input registration Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 189/547] HID: wacom: Write shared touch initial status only once Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 190/547] klist: avoid accesses after waking klist_remove() Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 191/547] objtool/rust: add one more `noreturn` Rust function for Rust 1.101.0 Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 192/547] rust: bindings: fix `VM_MAYSHARE` blocklist entry Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 193/547] rust: bindings: fix VM_MAYSHARE value Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 194/547] rust: bitmap: restrict bitmap length to at most i32::MAX Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 195/547] rust: block: fix `Send` bound for `GenDisk` Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 196/547] rust: block: require `Sync` for `Operations::QueueData` Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 197/547] rust: bug: pass TAINT_WARN to warn_slowpath_fmt() on UML Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 198/547] rust: bug: update the SAFETY comment for " Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 199/547] rust: configfs: fix data offset calculation for subsystem callbacks Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 200/547] rust: cpufreq: reject NULL from cpufreq_cpu_get() Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 201/547] rust: fwctl: declare cfi_encoding for fwctl_rpc_scope Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 202/547] rust: module_param: Fix potentially incorrect access of `SetOnce<T>` Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 203/547] rust: rcpufreq_dt: add module alias Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 204/547] accel/amdxdna: clear the mailbox channel pointer when starting it fails Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 205/547] ALSA: control: Fix UAF in snd_ctl_elem_add() on card disconnect Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 206/547] ALSA: emux: Fix UAF of soundfont zones at note-on Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 207/547] ALSA: pcmtest: handle multiple wraps in random capture fill Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 208/547] ASoC: amd: ps: fix snd_acp63_remove() teardown ordering Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 209/547] Bluetooth: hci_vhci: Pin module for debugfs file operations Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 210/547] drm/panthor: Fix TOCTOU race between GROUP_REGISTERED check and erase Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 211/547] fbdev: atmel_lcdfb: Prevent FIFO work after removal Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 212/547] fbdev: udlfb: dont rebuild the mode list while the framebuffer is in use Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 213/547] filelock: keep superblock active through delegation wait Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 214/547] fs/proc/task_mmu: pin mm_users in do_pagemap_scan() Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 215/547] fsverity: Set S_VERITY only after rollback is no longer possible Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 216/547] genirq: Defer kfree(irqaction) until irq_thread_dtor() finishes Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 217/547] genirq: Move interrupt thread exit_work object to irqaction Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 218/547] HID: hiddev: keep state alive through disconnect unlock Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 219/547] io_uring/io-wq: save worker type before dropping its reference Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 220/547] iomap: dont resubmit an ioend after ->writeback_submit() failed Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 221/547] iommu/arm-smmu-v3: Disable the impl before disabling the SMMU on shutdown Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 222/547] KVM: guest_memfd: Gracefully handle xarray errors when binding a memslot Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 223/547] KVM: pfncache: use a dedicated invalidation sequence for cache refresh Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 224/547] KVM: PPC: Book3S HV: Add SRCU protection for virtual-mode HPT hcalls Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 225/547] media: cx23885: unregister DVB bus when SP2 CI setup fails Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 226/547] media: gspca: use vb2_video_unregister_device() on disconnect Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 227/547] media: imx-jpeg: cancel timeout worker when streaming stops Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 228/547] media: marvell: mcam: stop DMA and cancel s_bh_work before freeing DMA buffers Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 229/547] media: microchip-csi2dc: fix async notifier leak on probe error path Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 230/547] media: microchip-isc: take a reference on the parsed endpoints Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 231/547] media: redrat3: fix UAF in probe error path leaving rc device registered Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 232/547] media: s5p-mfc: use timer_shutdown_sync() for the self-rearming watchdog Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 233/547] mm/rmap: dont discard lazyfree THPs at PMD level Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 234/547] mm/slab: sample slab_state once in kmem_cache_destroy() Greg Kroah-Hartman
2026-11-04 21:06 ` [PATCH 7.3 235/547] mm/truncate: look up the end-edge straddler by index Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 236/547] mm: khugepaged: fix folio is used after folio_put/unlock() Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 237/547] mm: khugepaged: fix folio is used after pte_unmap_unlock() Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 238/547] mm: khugepaged: fix swap entry value to folio_pfn() Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 239/547] mptcp: hold MP_JOIN msk ref when cloning reqsk Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 240/547] mshv_vtl: detach poll waiter on POLLFREE Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 241/547] mtd: virt-concat: unlink concat node before freeing it Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 242/547] mtd: virt-concat: unlink discarded items before freeing Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 243/547] net: sched: prevent scheduling deactivated qdiscs Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 244/547] scsi: dc395x: sync the waiting_timer before freeing the host Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 245/547] serial: core: shut down initialized port on removal Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 246/547] staging: rtl8723bs: fix protected RX frame validation in decrypt path Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 247/547] xen-blkfront: unbind irq before tearing down ring and shadow requests Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 248/547] wifi: ath9k: delete channel-context timers on deinit Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 249/547] wifi: mt76: mt7996: unlink TWT flow if the MCU rejects the agreement Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 250/547] virtio_net: atomically disable rx mode work Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 251/547] vfio/nvgrace-gpu: Use a core-only open_device in fallback mode Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 252/547] usb: gadget: fix refcount underflow in gadgetfs_bind() error path Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 253/547] ufs: use u64 for directory size in ufs_last_byte Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 254/547] spi: spi-pci1xxxx: quiesce DMA engines on transfer timeout Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 255/547] resource: report a devm_request_resource() conflict under the lock Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 256/547] phy: core: Fix race-condition between _of_phy_get() and try_module_get() Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 257/547] power: supply: pf1550: drain IRQ work before unregistering supplies Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 258/547] power: supply: sbs-battery: disable polling before supply teardown Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 259/547] pps: generators: dont use the drivers info after unregister Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 260/547] nvmem: core: Fix OOB read for bit offsets of more than one byte Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 261/547] nvmet-auth: serialize access to DH-HMAC-CHAP state to fix UAF Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 262/547] media: rc: Ensure that rc_unregister_device() does not free input device Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 263/547] media: rc: Ensure registered is cleared in error path Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 264/547] media: rc: fintek-cir: process a full RX buffer instead of overflowing it Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 265/547] media: rc: Fix race between bpf(BPG_PROG_ATTACH) and device unregister Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 266/547] media: rc: Fix race condition during rc_register_device() Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 267/547] media: rc: mce_kbd: Fix inconsistent locking of keylock Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 268/547] media: rc: Use after free in ir_raw_event_handle() Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 269/547] media: rc: After rc_unregister_device() timers can be re-armed Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 270/547] media: rc: Fix use after free in bpf progs Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 271/547] media: rc: Fix ABBA deadlock by making locks more fine grained Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 272/547] ocfs2/heartbeat: unlink live slots when their node is missing Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 273/547] ocfs2/dlm: hold a lock reference across grant AST enqueue Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 274/547] ocfs2/dlm: hold the lookup reference across convert " Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 275/547] ocfs2: cancel quota sync work before freeing quota info Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 276/547] ocfs2: fix chunk number of the first chunk in a local quota file Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 277/547] ocfs2: pin refcount trees before dropping the lookup lock Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 278/547] ocfs2: snapshot dentry names in file and setattr traces Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 279/547] smb: client: fix OOB last_entry pointer from unbounded LastNameOffset Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 280/547] smb: client: hold server info until cifsd exits Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 281/547] smb: client: stop processing a read response after a receive error Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 282/547] ovl: hold a reference on the parent in readdir Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 283/547] ovl: set OVL_WHITEOUTS before publishing the upper dir Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 284/547] ovl: take a snapshot of the name for copy up Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 285/547] ovl: use the pinned upper dir in ovl_fix_origin() Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 286/547] ovl: always encode the origin fh when index is enabled Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 287/547] ovl: check that the parents of volatile/dirty are dirs Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 288/547] ovl: check the casefold flag of directories only Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 289/547] ovl: do not copy up a dentry that was removed Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 290/547] ovl: do not copy up an xattr value that was never read Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 291/547] ovl: fix a torn path in ovl_get_redirect() Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 292/547] ovl: fix mount setup failing when override_creds drops CAP_SYS_ADMIN Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 293/547] ovl: fortify ovl_copy_xattr() against underlying layer modifications Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 294/547] ovl: read the nlink xattr of every indexed non-dir Greg Kroah-Hartman
2026-11-04 21:07 ` [PATCH 7.3 295/547] ovl: reserve space for the casefolded name terminator Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 296/547] ovl: set the revalidate flags after d_instantiate() Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 297/547] ovl: skip copy up of empty security.capability Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 298/547] xfs: clear the symlink zapped flag if inline symlink is ok Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 299/547] xfs: mark cow extents bad if theres no rmap mapping for them Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 300/547] xfs: compute the correct fdblocks/frextents for repair when theyre negative Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 301/547] xfs: fix ondisk symlink target validation in xrep_dinode_check_dfork Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 302/547] xfs: fix xfs_rename_space_res for non-pptr filesystems Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 303/547] xfs: fix missing xfs_qm_adjust_dqlimits call in quotacheck repair Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 304/547] xfs: fix buffer overruns in xfs_ioc_attr_list Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 305/547] xfs: online quotacheck must dirty dquot if enforcement adjustments needed Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 306/547] xfs: avoid cross-rtgroup reaping after a repair Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 307/547] xfs: actually lock the metafile reservation when adjusting after repair Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 308/547] xfs: fix unnecessary dapos truncation in xchk_dir_walk Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 309/547] xfs: fix buffer overflow in corrupt inline attr structure Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 310/547] xfs: actually report corrupt xattrs as XFAIL during cross-referencing Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 311/547] xfs: fix inode btree repair when a cluster is larger than a chunk Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 312/547] xfs: always reset incore attr fork buffer when resetting fork Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 313/547] xfs: dont pass iget failures up when marking ondisk inodes Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 314/547] xfs: zero out di_metatype when removing the metadir file iflag Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 315/547] xfs: flag excessive delalloc rt extents as corruption Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 316/547] xfs: dont fix the directory tree if live update fails Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 317/547] xfs: validate rc_domain in xchk_rtrefcount_mergeable Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 318/547] xfs: dont proceed with xattr repair if the live update fails Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 319/547] xfs: fix skipped inode mask handling in iscan Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 320/547] xfs: dont repair fs summary counters with garbage Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 321/547] xfs: fix lost errno returned from xfarray_foliosort Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 322/547] xfs: allow softlimit with no hardlimit in quota scrub Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 323/547] xfs: assign an owner to scrub_stats_fops Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 324/547] xfs: bail out of directory tree repairs on error Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 325/547] xfs: fix revalidation of xchk_dquot_iter cached mappings Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 326/547] xfs: abort dirtree repair if the live update hook dies Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 327/547] xfs: check fork type against dabtree block magic number Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 328/547] xfs: mark overfull dabtree node blocks as corrupt Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 329/547] xfs: jump out of xchk_bmap_check_rmap if fatal signals Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 330/547] xfs: cross-reference the primary superblock Greg Kroah-Hartman
2026-11-05 15:38   ` Barry K. Nathan
2026-11-07 13:07     ` Barry K. Nathan
2026-11-07 13:09       ` Barry K. Nathan
2026-11-04 21:08 ` [PATCH 7.3 331/547] xfs: adjust checks for cross-AG reaping issues Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 332/547] xfs: actually check XFS_DIFLAG2_METADATA for metadata btree data forks Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 333/547] xfs: fix xchk_stats_estimate_bufsize to allow for the trailing null Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 334/547] netfilter: nft_payload: restrict checksum offsets to known values Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 335/547] rtnetlink: wait for RCU readers in rtnl_link_unregister() Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 336/547] xfs: reduce new btree slack factor if free space is negative Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 337/547] xfs: reject absurdly large xattr value lengths in xchk_xattr_actor Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 338/547] xfs: reject out-of-range attribute value lengths in xfs_attr_copy_value Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 339/547] xfs: reject remote xattr entries with an out-of-range value length Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 340/547] xfs: release ip after unlinked list store failure Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 341/547] xfs: rescan the AGs if incore delalloc counter is negative Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 342/547] xfs: update quota flags on secondary supers when metadir enabled Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 343/547] xfs: abort directory tree repair whenever dl->aborted is set Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 344/547] xfs: always forget cached ACLs if the attr fork swap succeeds Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 345/547] xfs: always report inode repair setup failures Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 346/547] xfs: always report scrub errors in tracepoints Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 347/547] xfs: always zero the whole shortform header when zeroing attr fork Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 348/547] xfs: bound da-node entry count against the correct geometry Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 349/547] xfs: bound inode fork length against the fork size during log recovery Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 350/547] xfs: check for fragments when full-extent sharing matches Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 351/547] xfs: check for termination during rmap btree walk Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 352/547] xfs: clarify various parts of the bitmap API Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 353/547] xfs: clear set[ug]id mode bits when zapping attr fork Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 354/547] xfs: complain loudly when dirtree checker finds broken links Greg Kroah-Hartman
2026-11-04 21:08 ` [PATCH 7.3 355/547] xfs: dont allow sm_agno for non-group metadir path checking Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 356/547] xfs: dont clear COWEXTSIZE on directories on reflink filesystems Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 357/547] xfs: dont overrun incore inode when cleaning attr forks Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 358/547] xfs: dont queue rmap update twice when reaping a fork Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 359/547] xfs: dont rescan ifree and icount when frozen Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 360/547] xfs: dont scan across metadata/regular directory trees for dirents Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 361/547] xfs: dont set a metadata directorys parent to sb_rootino Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 362/547] xfs: dont subtract excess usage twice when computing agf_btreeblks Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 363/547] xfs: dont try to repair rtsummary if the summary file isnt computed Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 364/547] xfs: dont try to scrub self-referential dirent in metapath checker Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 365/547] xfs: fix correction of unwritten extents in quota file data fork Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 366/547] xfs: fix data fork block count check in xrep_inode_blockcounts Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 367/547] xfs: init inode number for tracepoint Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 368/547] xfs: never reset the default quota timer Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 369/547] xfs: only written file data blocks can be shared Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 370/547] xfs: opportunistically skip btree block checks Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 371/547] xfs: propagate errors while checking null siblings Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 372/547] xfs: range-check bc_levels array access in scrub tracepoints Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 373/547] xfs: reattach dquots after changing inode ids Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 374/547] x86/bugs: Adapt SRSO mitigation to Zen6 Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 375/547] smb: server: size directory name conversion buffer correctly Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 376/547] smb: smbdirect: fix buffer length underflow in RDMA transfers Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 377/547] smb: client: bound POSIX lock data area by response length Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 378/547] smb: client: dont resurrect an exiting tcon from cached dir workers Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 379/547] smb: client: fix buffer overflow in SMB2_tcon() Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 380/547] smb: client: fix fiemap wild read on empty truncated response Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 381/547] smb: client: fix OOB read of the resume name sent in TRANS2_FIND_NEXT2 Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 382/547] smb: client: fix OOB read in the SMB_FIND_FILE_UNIX name scan Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 383/547] smb: client: fix slab-out-of-bounds write in id_mode_to_cifs_acl() Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 384/547] smb: client: reclaim credits for decrypted reads with no matching mid Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 385/547] smb: client: reject FIND data areas that run past the received response Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 386/547] smb: client: reject short or out-of-range FIND response parameters Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 387/547] smb: client: reject short SESSION_SETUP responses Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 388/547] smb: client: require stable pages for SMB compression Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 389/547] smb: client: validate NT transaction response layout and offsets Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 390/547] smb: client: validate SMB1 EA list bounds before parsing Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 391/547] smb: client: validate the data area in SMB2_read() Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 392/547] xfs: map pNFS layouts to the end of the extent again Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 393/547] kernfs: dont lose IN_DELETE_SELF when decoding a file handle Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 394/547] pNFS: Fix CB_NOTIFY_DEVICEID CHANGE to consume ndc_immediate Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 395/547] pnfs/blocklayout: Complete a device upcall only on its own reply Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 396/547] pnfs/blocklayout: Complete a device upcall when the pipe is closed Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 397/547] NFSv4/pnfs: bound the CB_NOTIFY_DEVICEID array count before allocating Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 398/547] NFSv4/pnfs: Free the netid when draining a data-server address list Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 399/547] NFSv4: Fix a regression in the handling of CB_RECALL_ANY Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 400/547] NFSv4.1/pnfs: suspend pNFS on NFS4ERR_TOOSMALL from LAYOUTGET Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 401/547] NFSv4/filelayout: Anchor page coalescing on pattern_offset Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 402/547] NFSv4/flexfiles: fail I/O to the data server once a lock is lost Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 403/547] NFSv4/flexfiles: Use the full 64-bit offset for read DS selection Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 404/547] NFSv4/flexfiles: Use the full 64-bit stripe_unit Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 405/547] NFSv4/flexfiles: Bound page coalescing on the absolute stripe offset Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 406/547] NFS: Fix stale negative cache on failed nfs_mkdir() Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 407/547] NFS/localio: detect a short read or write before the iterator has moved Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 408/547] NFS/localio: fix nfs_local_dio_misaligned tracepoint Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 409/547] NFS/localio: report the stability a DIO WRITE actually has Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 410/547] NFSD: cap the number of listeners accepted in listener_set Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 411/547] nfsd: clear XDR padding in GETXATTR replies Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 412/547] NFSD: copy SETXATTR data from all XDR buffer segments Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 413/547] NFSD: Destroy a recalled delegation the client does not hold Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 414/547] NFSD: Do not send CB_RECALL_ANY to NFSv4.0 clients Greg Kroah-Hartman
2026-11-04 21:09 ` [PATCH 7.3 415/547] NFSD: Dont complete a cld upcall the daemon has not read Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 416/547] nfsd: dont modify a session slot when replaying its cached reply Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 417/547] nfsd: dont offer flexfiles layouts when NFSv3 isnt being served Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 418/547] NFSD: Fail a pool_threads read whose reply does not fit Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 419/547] nfsd: fetch direct I/O alignment for files handed to the filecache Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 420/547] nfsd: Fix id-to-name cache entry leak in idtoname_parse() Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 421/547] NFSD: Fix out-of-bounds read in the rpc_status dump Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 422/547] nfsd: hold cl_lock in client_has_openowners() Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 423/547] nfsd: honour client-provided attributes for NFS4_CREATE_EXCLUSIVE4_1 Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 424/547] NFSD: map fh_verify() status codes for NFS_ACLv3 replies Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 425/547] NFSD: Map flex file layout IDs through the requests user namespace Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 426/547] nfsd: preflight SEQUENCE replies before accepting a slot Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 427/547] nfsd: propagate SETXATTR value decode errors Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 428/547] NFSD: Reject an oversized principal hash from nfsdcld Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 429/547] NFSD: Resolve the recall-any mask names in the trace format Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 430/547] NFSD: Return NFSERR_ISDIR for NFSv2 READ and WRITE on a non-regular file Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 431/547] NFSD: Set nn->cld_net before registering the cld pipe Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 432/547] NFSD: validate transport name in listener_set before serv creation Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 433/547] nfsd: zero NFSv4 COMPOUND tag padding Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 434/547] SUNRPC: Copy the deferred RPC Call from the head buffer Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 435/547] SUNRPC: Do not credit control-record octets to the RPC stream Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 436/547] SUNRPC: fix oversized GSS proxy token copy Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 437/547] sunrpc: honor the netlink unix_gid NEGATIVE flag Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 438/547] SUNRPC: keep the first error in svc_register() Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 439/547] sunrpc: pin gss module across auth_domain RCU free Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 440/547] SUNRPC: Reject a socket that already has an svc_sock attached Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 441/547] SUNRPC: Reject a TLS alert record that is not two octets Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 442/547] SUNRPC: Resume receiving after a TLS control record Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 443/547] SUNRPC: trace an accepted transport before publishing it Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 444/547] sunrpc: treat empty auth.unix.gid replies as negative entries Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 445/547] SUNRPC: Treat every TLS error alert as fatal Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 446/547] rxrpc: Fix update of call->tx_pending without holding lock Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 447/547] rxrpc: Fix lack of short-send handling in rxrpc_kernel_send_data() Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 448/547] afs: Fix afs to abort the rxrpc call on send error Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 449/547] rxrpc: Fix double IRQ enablement Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 450/547] rxrpc: Fix return in rxrpc_recvmsg_data() for service calls Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 451/547] x86/cpuid: Mark CPUID function 0x23 as being indexed Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 452/547] x86/mm/pat: Fix effective RW computation in lookup_address_in_pgd_attr() Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 453/547] ALSA: x86: hdmi: fix chmap array missing terminator entry Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 454/547] KVM: Only bind memslot to guest_memfd instance for CREATE operations Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 455/547] KVM: SVM: Trigger new ASID allocation in both VMCBs on pCPU switch Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 456/547] KVM: nSVM: Reject KVM_SET_NESTED_STATE if L1 has EFER.LMA=1 && EFER.LME=0 Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 457/547] KVM: nSVM: Ignore EFER.LMA if EFER.LME=0 when preparing L2 state Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 458/547] KVM: Use goto to handle errors during memslot preparation Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 459/547] KVM: VMX: Disallow using to_vmx() in common VT code Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 460/547] KVM: VMX: Formally define KVMs "0xdead" exit reason used for failed VM-Enter Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 461/547] KVM: VMX: Make handle_bus_lock_vmexit() a shared helper Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 462/547] KVM: VMX: Preserve negative return value in vmx_handle_exit() with bus lock detected Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 463/547] KVM: x86/mmu: Bug the VM if KVM attempts to walk more levels than the MMU has Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 464/547] KVM: x86/mmu: Bug the VM if KVM calcs a CPU role with EFER.LMA=1 && CR4.PAE=0 Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 465/547] KVM: x86/xen: Enforce 4-byte alignment of vcpu_info registration Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 466/547] KVM: x86/xen: Take kvm->srcu in __kvm_xen_has_interrupt() Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 467/547] KVM: x86: Clear hardware HLT state when userspace makes a vCPU not-halted Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 468/547] KVM: x86: Preserve DR6.BLD (Bus Lock Detect) when delivering #DB payload Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 469/547] KVM: x86: Request event processing for exception VM-Exits Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 470/547] KVM: x86: Take SRCU in kvm_zap_gfn_range() Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 471/547] KVM: x86: Zero reserved synic flags when delivering message to avoid stack leak Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 472/547] KVM: TDX: Check if there is valid exit infos based on vp_enter_ret Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 473/547] KVM: TDX: Enable Notify VM exit Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 474/547] KVM: TDX: Set bits 31:16 to 0 and use UNDEFINED when synthesizing exit reason Greg Kroah-Hartman
2026-11-04 21:10 ` [PATCH 7.3 475/547] KVM: TDX: Stuff exit_reason with UNDEFINED on wait_for_sept_zap return Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 476/547] KVM: TDX: Dont assume exit_reason[31:16] is all-0 in tdx_to_vmx_exit_reason() Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 477/547] KVM: TDX: Enable Bus Lock VM exit Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 478/547] KVM: guest_memfd: Split bind() into prepare()+commit() phases Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 479/547] KVM: guest_memfd: take the invalidate lock when unbinding a dying file Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 480/547] KVM: guest_memfd: Establish memslot<=>guest_memfd bindings *after* memslot is ready Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 481/547] KVM: PPC: Book3S HV: Add preempt_disable() around virtual-mode HPTE bit-lock users Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 482/547] KVM: PPC: Fix get_d_signext() 12-bit displacement for paired-single D-form Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 483/547] HID: usbhid: skip interrupt IN polling for devices with no input reports Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 484/547] HID: zydacron: validate key report length Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 485/547] HID: amd_sfh: Remove unsupported motion-state field from accelerometer report Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 486/547] HID: amd_sfh: Use report type from request node Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 487/547] HID: asus: do not send keyboard init reports to touchpads Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 488/547] HID: core: Fix out-of-bounds left shift by 32 in s32ton() Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 489/547] HID: cougar: reject short special-key reports Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 490/547] HID: cp2112: validate response report lengths Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 491/547] HID: elo: reject short touchscreen reports Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 492/547] HID: logitech-dj: validate unnumbered keyboard reports Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 493/547] HID: mcp2200: validate READ_ALL response length Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 494/547] HID: mcp2221: always initialize and cancel init_work Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 495/547] HID: mcp2221: validate response report length Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 496/547] HID: picoLCD: check for fb_deferred_io_init() error Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 497/547] HID: prodikeys: validate fixed-format MIDI reports Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 498/547] HID: pxrc: reject short input reports Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 499/547] HID: quirks: Always poll the Anne Pro 2 with product ID a292 Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 500/547] HID: roccat: isku: reject short button reports Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 501/547] HID: roccat: koneplus: " Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 502/547] HID: roccat: konepure: " Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 503/547] HID: roccat: kovaplus: " Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 504/547] HID: roccat: pyra: " Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 505/547] HID: roccat: ryos: reject short special reports Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 506/547] HID: roccat: savu: " Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 507/547] HID: hid-lenovo-go-s: Prevent deadlock if device removed during setup Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 508/547] HID: hid-lenovo-go-s: Return ret instead of 0 in mcu_property_out() Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 509/547] HID: hid-lenovo-go-s: Use pm_ptr for reset_resume callback Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 510/547] HID: hid-lenovo-go-s: Add suspend function and gate access under bool Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 511/547] HID: hid-lenovo-go-s: Bound stale reply window before reusing send_cmd_complete Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 512/547] HID: hid-lenovo-go-s: Move attribute init to after device query Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 513/547] HID: hid-lenovo-go-s: Reorganize and rename hid_gos_cfg Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 514/547] HID: hid-lenovo-go-s: Add kobject_uevent notify during reset-resume Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 515/547] HID: hid-lenovo-go-s: Move static led_classdev_mc to drvdata struct Greg Kroah-Hartman
2026-11-04 21:11 ` Greg Kroah-Hartman [this message]
2026-11-04 21:11 ` [PATCH 7.3 517/547] accel/amdxdna: Add support for AIE2 revision 9 Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 518/547] io_uring/kbuf: advance head when a pickup empties the buffer ring Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 519/547] io_uring/net: keep recvmsg buffer select length within MAX_RW_COUNT Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 520/547] io_uring/net: mask socket type with SOCK_TYPE_MASK in io_socket_bpf_populate() Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 521/547] io_uring/register: enforce per-task restrictions in io_uring_register_blind() Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 522/547] io_uring/net: dont retry a non-blocking connect() that fails with -EAGAIN Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 523/547] io_uring: keep the drain active when a deferred drain request is started Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 524/547] io_uring/io-wq: no new workers once the exit has begun Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 525/547] io_uring/rsrc: charge buffer arrays and nodes to memcg Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 526/547] io_uring: charge tctx nodes and personalities Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 527/547] io_uring: free XArray nodes left by a failed store Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 528/547] io_uring/bpf-ops: clear bpf_ctx while submitting SQEs Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 529/547] io_uring: free the task context after a grace period Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 530/547] io_uring/sqpoll: dont wait for the thread to exit Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 531/547] io_uring: defer foreign io-wq enqueues to task_work Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 532/547] io_uring/timeout: count cancelled timeouts in cq_timeouts Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 533/547] io_uring/net: fix multishot recv length limit accounting Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 534/547] ksmbd: fix SMB2 CREATE response buffer overflow Greg Kroah-Hartman
2026-11-04 21:11 ` [PATCH 7.3 535/547] ksmbd: fix out-of-bounds read when padding the final compound response Greg Kroah-Hartman
2026-11-04 21:12 ` [PATCH 7.3 536/547] ksmbd: use clear_and_wake_up_bit() directly Greg Kroah-Hartman
2026-11-04 21:12 ` [PATCH 7.3 537/547] ksmbd: track delivery of queued TCP writes Greg Kroah-Hartman
2026-11-04 21:12 ` [PATCH 7.3 538/547] ksmbd: retry break notifications on another connection Greg Kroah-Hartman
2026-11-04 21:12 ` [PATCH 7.3 539/547] ksmbd: fix app-instance non-durable supersede session UAF Greg Kroah-Hartman
2026-11-04 21:12 ` [PATCH 7.3 540/547] ksmbd: fix invalid pointer dereference when get_inode_acl() fails Greg Kroah-Hartman
2026-11-04 21:12 ` [PATCH 7.3 541/547] ksmbd: use the existing xattr name for a named stream Greg Kroah-Hartman
2026-11-04 21:12 ` [PATCH 7.3 542/547] ksmbd: fix named stream write and EOF handling Greg Kroah-Hartman
2026-11-04 21:12 ` [PATCH 7.3 543/547] ksmbd: rebind completed CREATE replays without draining the old channel Greg Kroah-Hartman
2026-11-04 21:12 ` [PATCH 7.3 544/547] ksmbd: fix use-after-free after a failed durable reconnect Greg Kroah-Hartman
2026-11-04 21:12 ` [PATCH 7.3 545/547] rust_binder: wake epoll on self-work queued to poll thread Greg Kroah-Hartman
2026-11-04 21:12 ` [PATCH 7.3 546/547] media: rc: Fix build failure with CONFIG_LIRC disabled Greg Kroah-Hartman
2026-11-04 21:12 ` [PATCH 7.3 547/547] ksmbd: keep retry timeout clamp bounds constant Greg Kroah-Hartman
2026-11-05  0:27 ` [PATCH 7.3 000/547] 7.3.2-rc1 review Ronald Warsow
2026-11-05 18:39   ` Sasha Levin
2026-11-05 19:58     ` Ronald Warsow
2026-11-06  6:26       ` Jiri Slaby
2026-11-06 10:11         ` Ronald Warsow
2026-11-06 11:20           ` Jiri Slaby
2026-11-06 15:30             ` Ronald Warsow
2026-11-07 14:02         ` Ronald Warsow
2026-11-06 16:35   ` Sasha Levin
2026-11-05  3:08 ` SJ Park
2026-11-05  8:10 ` Peter Schneider
2026-11-05 12:17 ` Takeshi Ogasawara
2026-11-05 14:16 ` Ron Economos
2026-11-05 15:30 ` Pavel Machek
2026-11-05 16:16 ` Brett A C Sheffield
2026-11-05 21:56 ` Florian Fainelli
2026-11-05 23:15 ` Shuah Khan
2026-11-06  0:31 ` Miguel Ojeda
2026-11-06  7:49 ` Barry K. Nathan
2026-11-06 15:05 ` Justin Forbes
2026-11-06 15:37 ` Sean Lyon
2026-11-06 18:48 ` Joungmin Lee

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=20261104211053.054360843@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=derekjohn.clark@gmail.com \
    --cc=jkosina@suse.com \
    --cc=patches@lists.linux.dev \
    --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