Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp2894000pxv; Mon, 12 Jul 2021 04:38:28 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx+vCL99U4gFnvVf8J5Cp/Dn1TXMCBS8bvvaupuCMxr6H2REsL/bojir4+uAZyk46AN1Y1q X-Received: by 2002:a92:b74d:: with SMTP id c13mr9530819ilm.176.1626089908752; Mon, 12 Jul 2021 04:38:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626089908; cv=none; d=google.com; s=arc-20160816; b=i4NSGv1Ya4Ygkd9xXDkjQtvPASmVuRBH61IthTmJjVx/Vq6Qd1tohSN1P894UTRtCU SCqZoYvDQa5TrRaYRqdDYJOW2M5XDNMcNLoWdwAyir/bszxXoBN5bWSgOTHj5zbNb7vW wsD35+DOERN1HrtQfhd7RaAN3nS9Mtg+eXUMpeWGlqFSym0dW9ltkepyoF2rXpWMusb7 h/VNlgiuztcFV+/GECymRCrbfGJdfM9l5HS71rBNv6USdwu6ORMckPK5p5oWsnt5USPB zRpfYXNU0dInraxzSG73kd3LCWtDrlEM1SRFZh5wdllGfaG6LoZuCqivWYlNMC01wghp +HwA== 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=T2slD/w30Kp6QL2mP/hCbjAG3k1hkA/zjDpQYcbvcqG9LmEr9E7CSQzFPsyOdVGuvJ vMUHnp3F3jVpPeyYB10iUOHmqTc82AlzQ3n369nNTWwWVHzYXNd1V2aKh0ZSO7PVBYyw lkxU+rD43Uupr2ZCMWr9vfv+iPjr8GZTV/E9TJLZ4QAkjOffYB9DAy30us2gFGgYsGeT baK/mfFMYIxmxocrdG71nS2sVoYeothweKOIuxKU54NpPDHdJMbKn2oaoKuZQVQJ/hW8 i8QkoH/vmpJavYv+UPVIlNifBLP7TCgsNwQQIocKnKlwKEYF+jc0JJvfNYZ2liL8nQWv HeLg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=SxhOkkR5; 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 e16si18727643iom.90.2021.07.12.04.38.17; Mon, 12 Jul 2021 04:38:28 -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=SxhOkkR5; 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 S1344508AbhGLIRt (ORCPT + 99 others); Mon, 12 Jul 2021 04:17:49 -0400 Received: from mail.kernel.org ([198.145.29.99]:57548 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245696AbhGLHdt (ORCPT ); Mon, 12 Jul 2021 03:33:49 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 68CB061400; Mon, 12 Jul 2021 07:31:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626075060; bh=0G7WDUneSnvB3wdCJmnVPCLfW7xqQoNe83QOSnntyTs=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=SxhOkkR5jD7zhvF013paOAWlhT1bztZeC839FRo764Spn/nHDHXP64L00/sKCtE3+ eberz98f8+2xOyja2P43iQDTQHYF+dEg1BHR6aBND5zMQX5v+uSWF5VrraWHbYLB+h PbG9ZPFkOWt8Yrw7UhQZfHAS3DBjUl80QOChrl/Q= 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.13 092/800] iio: light: tcs3472: do not free unallocated IRQ Date: Mon, 12 Jul 2021 08:01:55 +0200 Message-Id: <20210712060926.001768399@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210712060912.995381202@linuxfoundation.org> References: <20210712060912.995381202@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));