From nobody Sun Apr 5 21:34:57 2026 Received: from mail-yw1-f182.google.com (mail-yw1-f182.google.com [209.85.128.182]) (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 A0437239E7F for ; Tue, 24 Feb 2026 02:35:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771900534; cv=none; b=HpvVsL4/Xc9Qwwg1PjQN2LG7RYDZPZHHucdkczeU8NVfNPGAqk1GeyIrtzIhZqt4wjKpvmJo8Bud0G3cQzFXFrHdh2KTMpHCUB7EHZiJyxhbRqKQwYL8DgvX+32wQQvL1IJhooMeGNEvkpWvJvS8vlERtXzVzoftXcrutS15Cbs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771900534; c=relaxed/simple; bh=JjkQ46yG8p0a6c9D14dqWVJYigSn20ev39pBlgmVkBk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QJ5fi1rU/Nu+gqupE6ZIUTavZv1MNnQ0wolaipXLThR8ys6j0astfAdomb7RzciCr1V2IbAAvmU3h2Kw2wtU3vQYL2n716U5UaY1W0gXJNjez3aMCMBlY+wzfvsg/vs2Eld19Pk1U2SNQkCiR6Z21V2/wNrvenf8nSn79NpoUjw= 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=KkO15hWe; arc=none smtp.client-ip=209.85.128.182 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="KkO15hWe" Received: by mail-yw1-f182.google.com with SMTP id 00721157ae682-7947cf097c1so46109957b3.2 for ; Mon, 23 Feb 2026 18:35:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1771900533; x=1772505333; 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=w7iGixlg0fjOS+Dh9LySNPkYFcBUk+pqdTwPH6+Zlvs=; b=KkO15hWeVtt39fM8N+XTKysoSZT+Cuf6NlUk4ud4G3I2vFfNw7XUw6RhCMlvyfEaSn X6FP5AdEccBAFBWzl1Ncwz2fseSg4VHgbHPDFrYK+XRUhNoowU8Z7a06VuW7FymZZ5hY 2V3smkmxDLA2rZ1rFIzPx3Y5gEmW2gBpJ7+tfl2blq4U4pvZacJXLFm2kNSvGFLHgCaL XlJQfHRN5QNXxpDzZY8tF4nYsHEBBzI0k9HC0dVTRHAMcMzBVY/aCLp6vZDR0vHj/IFb SoVcViP1ZiuegDyrp90ESCmhiE6lhBbDhnnoRwBv6qnf3C+YBXQeePhU+Plw0r5BUjCx L5RQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1771900533; x=1772505333; 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=w7iGixlg0fjOS+Dh9LySNPkYFcBUk+pqdTwPH6+Zlvs=; b=lwpYzYKKcprOr4XOeaNeVg8C5J+HsumldNOziH0ShE1B8HlrgXjGyXDum3eJc9gExz Ltdt1zsECEXdI7KP3AMICnEHphyiQJgrOoGCjlLuHFng/mftxOV3pVCPQ65+9T6X2CWR QcOEXKFXH12Z4bEjYwLhXJD74Ur5mjq4OKzZ/4q14wKIvkNvUYKZ9VshKvYVAREQeRmM nRj0Bxup2LEAsbfB3JiehAQEHMAzhrbX28nFK5NGDlTK3V6XjbN1CgfgtHqc80lu4bh8 UnXJcBh5TC17t8HoOE+5mQkjG6yR7PGFTe4Q6wf0Zl9yEzM9UeLxKfJ0og86WsSi6Ish 7HQw== X-Forwarded-Encrypted: i=1; AJvYcCU4T1z0YuNLENVQr/+NqdP7YaHSWeJojx5zDGZXIohrP4Dezlwo1jJ84YwQ9wwR71LZyxIJq67E2ziZ00U=@vger.kernel.org X-Gm-Message-State: AOJu0Yy8ebOeNOr4h8djYPfgP0REcp4zfWkJplK2w9o5pBhq9q63Y6q/ shwaZwRszDWXRRR9KAswfX1xvOpmEJ4sHogbTDCLZU0g0hu+alCLOjRBmbnuVi1Cjkw= X-Gm-Gg: ATEYQzzpplJ9hZVmhGdYjtc/D6JiiMyUbaLRJ/KdAiWjf6zWigSt2Da7Q9pYovKTKMl Fpxf5+FkQgojWK40pOytyFqpy3mNIMtG85SqCwwQkHzXfOzb3zZtJYXH/LKCmN0XyW8xZW3cXlw D7B0LRu7U9yWr3wjn4aKVnfahfY2VXP7fV1/WxrqkUBRRYkhB8CThSGEabVTfAEW0VjJO1tVP94 STM/SJmcyFvgMjDd2l5AKtvIA9lWVsn3mhvKabm+jL9SUUJFTejEj8ldY/BVzC8X0jYUEOyWD43 +f7eehfSMDCR8QdjGNma6MtgOxrZycPgZYtOw+glI4i8m/HYvry1sLTfflqgl3Wkt4FI/1f5mPv zfe/zbw8vm0paZIX5eOIPDUYKDKqDMICxDIaKiJ9iakS8Jatqek/IQu+9ZJzmdY6o1/9vVJL0Zq A26D5FBKW5JQliWxMaTGcvSO0TwDwA6knt4fU/OQZknWfCaS8SG/LhKes76voxS42HmE5oDSmbv DU0QNV/zyz30AkJ1XdSrx9N X-Received: by 2002:a05:690c:6c89:b0:798:3051:2f22 with SMTP id 00721157ae682-7983051331amr73611867b3.49.1771900532669; Mon, 23 Feb 2026 18:35:32 -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.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Feb 2026 18:35:32 -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 2/4] iio: gyro: mpu3050: Fix irq resource leak Date: Mon, 23 Feb 2026 20:35:09 -0600 Message-ID: <20260224023511.274038-3-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" The interrupt handler is setup but only a few lines down if iio_trigger_register() fails the function returns without properly releasing the handler: ret =3D request_threaded_irq(irq, mpu3050_irq_handler, mpu3050_irq_thread, irq_trig, mpu3050->trig->name, mpu3050->trig); ... ret =3D iio_trigger_register(mpu3050->trig); if (ret) return ret; indio_dev->trig =3D iio_trigger_get(mpu3050->trig); return 0; } Add cleanup goto to resolve resource leak. Detected by Smatch: drivers/iio/gyro/mpu3050-core.c:1128 mpu3050_trigger_probe() warn: 'irq' from request_threaded_irq() not released on lines: 1124. Fixes: 3904b28efb2c7 ("iio: gyro: Add driver for the MPU-3050 gyroscope") Signed-off-by: Ethan Tidmore Reviewed-by: Linus Walleij --- drivers/iio/gyro/mpu3050-core.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/iio/gyro/mpu3050-core.c b/drivers/iio/gyro/mpu3050-cor= e.c index 06162d886b59..b6e05afbe512 100644 --- a/drivers/iio/gyro/mpu3050-core.c +++ b/drivers/iio/gyro/mpu3050-core.c @@ -1121,11 +1121,16 @@ static int mpu3050_trigger_probe(struct iio_dev *in= dio_dev, int irq) =20 ret =3D iio_trigger_register(mpu3050->trig); if (ret) - return ret; + goto err_iio_trigger; =20 indio_dev->trig =3D iio_trigger_get(mpu3050->trig); =20 return 0; + +err_iio_trigger: + free_irq(mpu3050->irq, mpu3050->trig); + + return ret; } =20 int mpu3050_common_probe(struct device *dev, --=20 2.53.0