diff --git a/drivers/i3c/master.c b/drivers/i3c/master.c
index 57a4f699eb8d09df38be5f7fe8d6ce707e1c3715..f8e9b7305c133428ebf8f5c78991dab64e87f929 100644
--- a/drivers/i3c/master.c
+++ b/drivers/i3c/master.c
@@ -326,17 +326,13 @@ static int i3c_device_remove(struct device *dev)
 {
 	struct i3c_device *i3cdev = dev_to_i3cdev(dev);
 	struct i3c_driver *driver = drv_to_i3cdrv(dev->driver);
-	int ret = 0;
 
-	if (driver->remove) {
-		ret = driver->remove(i3cdev);
-		if (ret)
-			return ret;
-	}
+	if (driver->remove)
+		driver->remove(i3cdev);
 
 	i3c_device_free_ibi(i3cdev);
 
-	return ret;
+	return 0;
 }
 
 struct bus_type i3c_bus_type = {
diff --git a/include/linux/i3c/device.h b/include/linux/i3c/device.h
index de102e4418ab4118f00cf5fd5b6adda4c67eb73e..8242e13e7b0bcc42170be992619968f0e5e1f89a 100644
--- a/include/linux/i3c/device.h
+++ b/include/linux/i3c/device.h
@@ -176,7 +176,7 @@ struct i3c_device;
 struct i3c_driver {
 	struct device_driver driver;
 	int (*probe)(struct i3c_device *dev);
-	int (*remove)(struct i3c_device *dev);
+	void (*remove)(struct i3c_device *dev);
 	const struct i3c_device_id *id_table;
 };