Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp2833043pxv; Mon, 12 Jul 2021 03:04:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJypHWxFMxgE2/gS2HuVhHDjskCAihLBWlJgzRFq+y0ZLrHWhrICrM3knTImR/kkYBtMcCvd X-Received: by 2002:a05:6638:155:: with SMTP id y21mr34113777jao.42.1626084278577; Mon, 12 Jul 2021 03:04:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626084278; cv=none; d=google.com; s=arc-20160816; b=KzR+Amzd/YygzRbKrwc0es1Qzhyf6aulQNitPPkWeZbKBXAnRwsWvOO8mFIVPftOKw 4CpHxrFpB7fu2z9tnmbgs6ulhUXIOyOxGpGvQSxwrdprIvyi0th9sOhkFrCpqPKXI7qf To7zm3nwsBYPCAbWB8EaRtIq0JejS03cxN1EddiwxVOFx3BJNaPygSKUg4tEU15JqO80 3Hw0sgouV/QRxRYpT36wr3oUm6AIzws5NptcyIBMW4NfSFBSK5O+tI20iGm7BWxWs3ug 0WBYprBFwp/+KeM1JyYbzjrDobpCcTuy5akixtqyCnBtuH5B3Z7U1/OO6fBPamW/FxsK B+iw== 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=YOL+DlNVB6Sv93eKa6Rc+ATqw96iK3oKbAJ6BIaBWeU=; b=WaObd3LvtFhaXqfFSdSH3pOP7FVHXNIHYMF6a23TrAelsqhm5/hqvQZ4Pi1ziHzteZ TZwMuFFA3FUerxfnzn69GZD7HHF82y6GbgdvBqY0xAqRfdteqBnlvmgGV4sifLXu0JcP qU1499wVwV9WAMa52+ClYRO9oX/KYE4kgH+b+TvdmbVXrC6BXqiG8oWMnbWFqwbQIqjr DCyNVUlHtDU7nZZJzWc1GP6OHTK2c6tYvCbbxXIjL0yPq23DoS0wpHgrCCNVzXePbikd BMEfHVjIbwI35VIySdyMrbOFfSEhfq9gZqznsClCH8wXDSfoLMEb/nukdea5QZkenHeT 62NA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=ka349gm7; 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 w13si16579977jar.0.2021.07.12.03.04.25; Mon, 12 Jul 2021 03:04: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=ka349gm7; 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 S241046AbhGLHZv (ORCPT + 99 others); Mon, 12 Jul 2021 03:25:51 -0400 Received: from mail.kernel.org ([198.145.29.99]:33920 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241005AbhGLG7H (ORCPT ); Mon, 12 Jul 2021 02:59:07 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 4A6E061221; Mon, 12 Jul 2021 06:56:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626072977; bh=0G7WDUneSnvB3wdCJmnVPCLfW7xqQoNe83QOSnntyTs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ka349gm7qR3IX+rijqeGLt7T7iqwhsGNsZ7YsZyj0Ppti5ya/LAq5GaaMKmrXU2KA DKTVGnfLaTCQIgvG9rU5oAvMZ34x8QWDy3pE/1WJ7tuGZmUMYB8qeoLTF4/BoT+F4E hG2cnrGN05MLM5sYQF8PMIuQ247htxj38ibTMOPo= 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.12 086/700] iio: light: tcs3472: do not free unallocated IRQ Date: Mon, 12 Jul 2021 08:02:49 +0200 Message-Id: <20210712060936.841173705@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210712060924.797321836@linuxfoundation.org> References: <20210712060924.797321836@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 @@ -531,7 +531,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; @@ -559,7 +560,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));