Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp2705900pxv; Sun, 11 Jul 2021 23:18:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwwdpFy8ybJqDrxv2UOf/BcHWmlMfMKEv9iGiYovnBQG0BX4d0wtXikvK6ADTUoTZ3qoJho X-Received: by 2002:a02:94af:: with SMTP id x44mr42953731jah.79.1626070718655; Sun, 11 Jul 2021 23:18:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626070718; cv=none; d=google.com; s=arc-20160816; b=w74jawpwDjEXNZmvvk67tWUtV2cWO7fqkJWfV4gfsOUnNbxo1Lyi9DvrbumFAYj1XM ujVJSrosBZT4/dnRqYOz40nM2nUiV08NmfVKK9TSLWdd3lhVY3ELgZ9HqhYCmaP6humB sNqwe4Ns4XqQuRwu/AugkSglopXlAk3MUvjKyiKeZqefPPJz+mdsfqcrPL7FVXoEtqrU k5KWT5tjM7yia3xg6so73it9diAcgIWZhpnTca0ylbG5rNCADzIFdTKUGuylXlM07Zx4 D9LBPXA817g7gbP2TNHYwfH1H/ZqJ/Wz0z4zhqjcqFHqUlwyTVRfKL/ew0iH2Q3wdyrB L7lQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=kH1AGlt08XtRgsZ4ZHl1Pjtz5b1akjnsZJBdcknb9ac=; b=Xj4jrPCAKDqEWgqPRSvghMqO2LuhC/XbCxJVUK8/L3DpxxOjkuVGTLh1UNQFsySoG6 562p3vMbM/+qmm1dGqtJMuWRBYJuIpKdM7tAgnhRosyxuBnI+lEZyqaHTeOzHqqYTG0f gDuUm8YUTqWUl4SOaFmTw/484ghIFvfkiZbVh4KnTiMfyWKy/we9EEmEqy7O6L2Gtppf cxHo6awusYt7FKqstbqLsYzsB+5+2muiu10S9n9v/PXrY8vv5cCY30qxG0j8AO+qBm62 kX7bkac6wHqQuIO1gKH8QhS6LUNZj8VuKkv6Ke00rMdvXbZHESsSDiCJ1/g1y17kuVus A3Qw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Qz66FQom; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o3si5194403ilc.27.2021.07.11.23.18.26; Sun, 11 Jul 2021 23:18:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Qz66FQom; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233625AbhGLGTJ (ORCPT + 99 others); Mon, 12 Jul 2021 02:19:09 -0400 Received: from mail.kernel.org ([198.145.29.99]:37374 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233650AbhGLGSu (ORCPT ); Mon, 12 Jul 2021 02:18:50 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 2C036610CB; Mon, 12 Jul 2021 06:16:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626070562; bh=IEL2pDtsvMv082OK85dm2SOVhAI8LAmUFj/mNUeHC38=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Qz66FQomvzsURh1iTcPk/8vzfE7BKbGmX2nEbDX1/UR2kTC8kVhNDwKENFfKRAxR/ IzEX+TRb1Rv7R5oj4jSgHJ4+t31wHBXLNOsO9Q7ftdlzAWunfQ6e/VQ6/VeloUfZVU w2W5BMqqIbV1hsq7LfE4aH7uvP/B8yExPBC1ZgUs= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, frank zago , Stable@vger.kernel.org, Jonathan Cameron Subject: [PATCH 5.4 043/348] iio: light: tcs3472: do not free unallocated IRQ Date: Mon, 12 Jul 2021 08:07:07 +0200 Message-Id: <20210712060706.807254072@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210712060659.886176320@linuxfoundation.org> References: <20210712060659.886176320@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: frank zago commit 7cd04c863f9e1655d607705455e7714f24451984 upstream. Allocating an IRQ is conditional to the IRQ existence, but freeing it was not. If no IRQ was allocate, the driver would still try to free IRQ 0. Add the missing checks. This fixes the following trace when the driver is removed: [ 100.667788] Trying to free already-free IRQ 0 [ 100.667793] WARNING: CPU: 0 PID: 2315 at kernel/irq/manage.c:1826 free_irq+0x1fd/0x370 ... [ 100.667914] Call Trace: [ 100.667920] tcs3472_remove+0x3a/0x90 [tcs3472] [ 100.667927] i2c_device_remove+0x2b/0xa0 Signed-off-by: frank zago Link: https://lore.kernel.org/r/20210427022017.19314-2-frank@zago.net Fixes: 9d2f715d592e ("iio: light: tcs3472: support out-of-threshold events") Cc: Signed-off-by: Jonathan Cameron Signed-off-by: Greg Kroah-Hartman --- drivers/iio/light/tcs3472.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) --- a/drivers/iio/light/tcs3472.c +++ b/drivers/iio/light/tcs3472.c @@ -532,7 +532,8 @@ static int tcs3472_probe(struct i2c_clie return 0; free_irq: - free_irq(client->irq, indio_dev); + if (client->irq) + free_irq(client->irq, indio_dev); buffer_cleanup: iio_triggered_buffer_cleanup(indio_dev); return ret; @@ -560,7 +561,8 @@ static int tcs3472_remove(struct i2c_cli struct iio_dev *indio_dev = i2c_get_clientdata(client); iio_device_unregister(indio_dev); - free_irq(client->irq, indio_dev); + if (client->irq) + free_irq(client->irq, indio_dev); iio_triggered_buffer_cleanup(indio_dev); tcs3472_powerdown(iio_priv(indio_dev));