From nobody Sun Apr 5 21:34:58 2026 Received: from mail-yw1-f170.google.com (mail-yw1-f170.google.com [209.85.128.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 91E24265298 for ; Tue, 24 Feb 2026 02:35:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771900535; cv=none; b=TtacogjeMZRcDj5yRmKW4RUFB+bv1EMeSiB3SOAW2uQLismRM+3DZ0v8O9bEeQwp9BxP8HH7RMVDpwL5BTxFdTiAMgiLmyCmo+G/OYxV2E0pHmE5Ox51RJHzkM70n+id53FmLZk9u9BoJNwBtTHEtXnI3hdiwcTAyWXRREl1+6Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771900535; c=relaxed/simple; bh=gYvFshSHeFO4g3kALOTIM0u06mqGXjlapA5rA+UNYK8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=CevDtByv38hUJHMJtZ2XTnmEOWesOQKe4ekswWAWbYF24dKxRbpe20pMbbRQ9Bir55FVLhDQ8mycdQtEcPtjgrykkpdgXUOO5M9/NlvtBC6KsGd/+BjJYPVV93sPfFGjEC0t8B7yamCn8Fu6S+LOhkPoOn87JJexsyqAlewbcwA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=mX6RXOao; arc=none smtp.client-ip=209.85.128.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="mX6RXOao" Received: by mail-yw1-f170.google.com with SMTP id 00721157ae682-79427f739b0so45556657b3.3 for ; Mon, 23 Feb 2026 18:35:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771900534; x=1772505334; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=M4MU5OJCaPocPPn0n0+lESzz/W1ZYrIATioLMy1y+L4=; b=mX6RXOao0SVM56z++x0ueIa1FA9AtWVEhogsJfQZNrWTCZ5P14+t00monlm7EHYHXH tpe+RSjPBSkMCLq4zSvD6u0yi+BrIcRUoePYzkJk6iSv7Tv2vex84cI+E5PU+0q2y4VO 4pBSLhC5TlVF0n/McUezxefJzBSodk7QkIJQqGesY5xU15hdYJoiaQ6atH0x+hUT+pbV fxAXCc6KQdsxvK1IFpuwNnSrW/B5lXAdP+f968ogG3hFjso6Q9k8ymX4LWp2UGSZ/of1 xOVzmGH4fgAI5/rAEuqVDZ46M/jQs8POpTErDQomsot9o8rCu0aBAUZkc44Dbi5q5aCX A+aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771900534; x=1772505334; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=M4MU5OJCaPocPPn0n0+lESzz/W1ZYrIATioLMy1y+L4=; b=GGse2hdD8SaVKReg2q9UKE4aM+zAmO0r1jMx/zg3v3dB1b1qWF2JDOo7Oro0Dp6hOR fYFBIth4oAA4Jr3BpCF1ecOrclTEsD6GmISoCi+Xfn5qvQw85+WSJ2tFna0d6hz4lEh2 UUwNd/E9aOupXaGEDIfQ750xXpouTrqx0sNtP7DfDL/ar5VHuxTduWLd2z2WwAe1C83L tWOGbrW36iqCcponXMkPv92aQJRoUimt5qjirI9iF24PKFk8s6XyF1L8VmVOUpZJzVm/ UxrqCnI2kDuS0rTQ+2onYgp6mz7DzZt7kDaTpAYF0n2WRkfcH4vsgoo3wa50QTDAh/HA 0N9g== X-Forwarded-Encrypted: i=1; AJvYcCUoQBFO1c/WFJKpLP2nE+OJTFhv3NeBok9IEikPb8tLmBaxKMqCel5ltKvT0SvRjvwQJEopFzoTi7Pn4G0=@vger.kernel.org X-Gm-Message-State: AOJu0YwIucTuC5/KweUzeEN8iK4BWPd5QDFkf+05x+9B1p0hvew0yz8x RlYpxvu/N9PHIWAqfHDqEX3nuJSyVV1Y6ebgoW3EYvIBFHgAB7THlF89 X-Gm-Gg: ATEYQzx1oG+jrwu7gN2BE3h2Tg26d6zhwjNRO3xQ2z34ooM+afuGGRavwjVkleAzlKJ EF28uEno/ghlmwCdY9Qhuif6sd4M9JAP3OjK+YpL1dxN1xR5KiTe5tEfBIiILBWabJEObTnCYpU PEEnKwwyQWdcfPq4xCBo1+fDoITX/gEWJVAt6CF8KGZYk/p+0hR2YQOSY1qFBppwKyxoSqFdfoi ipikGKncV4VCyn0p9ZlCucBosyfkUBsBK5JPqW6UETkq3OWI8Pn6TBBAS1J1nPJ4Wk+1T3DO2P+ bBWTlk4e3fGSpbGsl6pISZkXL//54CHkX2FJTjQ61XxmoQHHOn6PLp5DciFEH4IBcZ6ehVb9ilP MmLXquWTZtYTM/0XYCYvhPAZAuVsYC0/yIIT+6AHgNjnudbaOssQWeYyaxuVr77QW45yatGskz3 GjtwUjnVxQQvNFN3UWhzBeNTbvqsZ2Rg1YGGGi3c30GPeeT4q7/qeMbBoU48JS84n2YYePJ/cur qV2MOx5sOljsl4yQFTGBV0JkEU6KdkAlm0= X-Received: by 2002:a05:690c:67c4:b0:796:3787:39ad with SMTP id 00721157ae682-79828f249a1mr112426477b3.27.1771900533662; Mon, 23 Feb 2026 18:35:33 -0800 (PST) Received: from tux ([2601:7c0:c37c:4c00::5c0b]) by smtp.gmail.com with ESMTPSA id 00721157ae682-7982d985074sm39585407b3.0.2026.02.23.18.35.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Feb 2026 18:35:33 -0800 (PST) From: Ethan Tidmore To: Linus Walleij , Jonathan Cameron Cc: David Lechner , =?UTF-8?q?Nuno=20S=C3=A1?= , Andy Shevchenko , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org, Ethan Tidmore Subject: [PATCH v2 3/4] iio: gyro: mpu3050: Move iio_device_register() to correct location Date: Mon, 23 Feb 2026 20:35:10 -0600 Message-ID: <20260224023511.274038-4-ethantidmore06@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260224023511.274038-1-ethantidmore06@gmail.com> References: <20260224023511.274038-1-ethantidmore06@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" iio_device_register() should be at the end of the probe function to prevent race conditions. Place iio_device_register() at end of probe function and place iio_device_unregister() accordingly. Fixes: 3904b28efb2c7 ("iio: gyro: Add driver for the MPU-3050 gyroscope") Suggested-by: Jonathan Cameron Signed-off-by: Ethan Tidmore Reviewed-by: Linus Walleij --- drivers/iio/gyro/mpu3050-core.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/drivers/iio/gyro/mpu3050-core.c b/drivers/iio/gyro/mpu3050-cor= e.c index b6e05afbe512..73dc7ea1f075 100644 --- a/drivers/iio/gyro/mpu3050-core.c +++ b/drivers/iio/gyro/mpu3050-core.c @@ -1218,12 +1218,6 @@ int mpu3050_common_probe(struct device *dev, goto err_power_down; } =20 - ret =3D iio_device_register(indio_dev); - if (ret) { - dev_err(dev, "device register failed\n"); - goto err_cleanup_buffer; - } - dev_set_drvdata(dev, indio_dev); =20 /* Check if we have an assigned IRQ to use as trigger */ @@ -1231,6 +1225,7 @@ int mpu3050_common_probe(struct device *dev, ret =3D mpu3050_trigger_probe(indio_dev, irq); if (ret) dev_err(dev, "failed to register trigger\n"); + } =20 /* Enable runtime PM */ @@ -1246,9 +1241,20 @@ int mpu3050_common_probe(struct device *dev, pm_runtime_use_autosuspend(dev); pm_runtime_put(dev); =20 + ret =3D iio_device_register(indio_dev); + if (ret) { + dev_err(dev, "device register failed\n"); + goto err_iio_device_register; + } + return 0; =20 -err_cleanup_buffer: +err_iio_device_register: + pm_runtime_get_sync(dev); + pm_runtime_put_noidle(dev); + pm_runtime_disable(dev); + if (irq) + free_irq(mpu3050->irq, mpu3050->trig); iio_triggered_buffer_cleanup(indio_dev); err_power_down: mpu3050_power_down(mpu3050); @@ -1261,13 +1267,13 @@ void mpu3050_common_remove(struct device *dev) struct iio_dev *indio_dev =3D dev_get_drvdata(dev); struct mpu3050 *mpu3050 =3D iio_priv(indio_dev); =20 + iio_device_unregister(indio_dev); pm_runtime_get_sync(dev); pm_runtime_put_noidle(dev); pm_runtime_disable(dev); iio_triggered_buffer_cleanup(indio_dev); if (mpu3050->irq) free_irq(mpu3050->irq, mpu3050->trig); - iio_device_unregister(indio_dev); mpu3050_power_down(mpu3050); } =20 --=20 2.53.0