Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp3655544rwb; Sat, 12 Nov 2022 09:50:07 -0800 (PST) X-Google-Smtp-Source: AA0mqf6pGIQsGCwHALAtuCNDHu+t/pWBOakOLmr7gXBbIHk3rqlhpDHU/Jz64J9Y904xvO++Pigb X-Received: by 2002:a17:907:d50d:b0:7ae:8411:112c with SMTP id wb13-20020a170907d50d00b007ae8411112cmr5481117ejc.97.1668275407435; Sat, 12 Nov 2022 09:50:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1668275407; cv=none; d=google.com; s=arc-20160816; b=zLIaP0IZGZPklOMaTxKcYKIN/Ms6THlrKOpS6oswi0jaaLqzbpeF9CFeowzoy+SXwj UFP7QWZqnKtQ+bhVaC0D8VJvXOUX8yGKNlo8VGpFu3q3bMo7sqwhB65PR2MwjyqH9W7I m87A0hmeKGejf6VfOmQTjEE4PqdBx5vCiHu9qYPzJXk4xi/VmG8B6iOHrcN5qd37D2Ac 8CJU9cEsR86KBonjPULoecdDnb08wu1pDx/O/94c0lfxos17j2M/rHNfvQUFG4T4ZyF3 cU3TaVA1VjPIzmRUo/DlNpMrB+gtmkPYTGPuskBokHCXD7qHD3wvZrVeT8/hOxUSgNlS JRBQ== 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 :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=jRJF22ZxhtDXsIHAum3VycE7YDPAxoMfPCSUREpj2IA=; b=ed9W3aRMYkXj70+DYDbvG9tt4SfaxY+Jy//K77IuBM0YX0T44CNhupNYepa2aQt8rW gKfiXzn0ACbYt2ItK3DgrtgVpOg4LZMfMd4SHrO5uHrFoui2InAPpm0jsud0Ono9Ogx1 YxTAHicWq6rse8ymnquUkT1f4DSUV91SiiAxtpbX3n0w8Vi9+4/91S6iGixUK7F/R7B3 8XuMz9j3/81Z0kDYzkyBnwg7YIWjoXRHDA08plDGIe2Y34u2oUD4oWHKC19WSwIx7vYy rslCejcZJChr14M2rPFRJPkafKN1rcb9NnyntJUQXsht6DNRjxyZTaFBX1KazJNakcKn /r8Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=nbAFArz+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s7-20020a50ab07000000b00447eb58b921si5331384edc.38.2022.11.12.09.49.43; Sat, 12 Nov 2022 09:50:07 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=nbAFArz+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234948AbiKLRli (ORCPT + 91 others); Sat, 12 Nov 2022 12:41:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36038 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230170AbiKLRlg (ORCPT ); Sat, 12 Nov 2022 12:41:36 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1A6FA11A3A; Sat, 12 Nov 2022 09:41:36 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id C85F1B80989; Sat, 12 Nov 2022 17:41:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 52863C433C1; Sat, 12 Nov 2022 17:41:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1668274893; bh=MD3R54de6IVkcG0PdDLdRKVnF5hrYqwTKUYedHjwVoM=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=nbAFArz+g+Rcau3mLt/ICc77vjKQPnP07KtWiuootfYSY+kD88dIFnm42w5WLf7+B mulFGX+Cr0QYyOHevC7psw7gl3vaaKuQ/0UkrFYNP/sEVX5iFoT+3GAHctFELquh4f NTOjB+u3ZV6jrSmetPF8qCR3cBd+iNV01BkdCzF7I5PqM4cKIvttVlT1j9s5jhqoAD LAtZ+VPKJ7dphpwqG7pb2G6YPlhMGwg6EARFexNWspb4mps+CZ6XkE2j4re3sykRPa zuYS9DTKVl4cQId/ntbmQRYAdkdJu+tZBVea8T3fdlTIIZbFV1kiFfqRpCNZyHDaUx DUyzohQ+bFL9A== Date: Sat, 12 Nov 2022 17:53:43 +0000 From: Jonathan Cameron To: Chen Zhongjin Cc: , , , Subject: Re: [PATCH] iio: core: Fix entry not deleted when iio_register_sw_trigger_type() fails Message-ID: <20221112175343.759300f5@jic23-huawei> In-Reply-To: <20221108032802.168623-1-chenzhongjin@huawei.com> References: <20221108032802.168623-1-chenzhongjin@huawei.com> X-Mailer: Claws Mail 4.1.1 (GTK 3.24.34; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 8 Nov 2022 11:28:02 +0800 Chen Zhongjin wrote: > In iio_register_sw_trigger_type(), configfs_register_default_group() is > possible to fail, but the entry add to iio_trigger_types_list is not > deleted. > > This leaves wild in iio_trigger_types_list, which can cause page fault > when module is loading again. So fix this by list_del(&t->list) in error > path. > > BUG: unable to handle page fault for address: fffffbfff81d7400 > RIP: 0010:__iio_find_sw_trigger_type.isra.3+0x62/0xb0 [industrialio_sw_trigger] > Call Trace: > > iio_register_sw_trigger_type+0x65/0x1f0 [industrialio_sw_trigger] > do_one_initcall+0xd0/0x4e0 > do_init_module+0x1cf/0x6b0 > load_module+0x65c2/0x7820 I dropped some of the unnecessary noise in the call trace and applied this to the fixes-togreg branch of iio.git and marked it for stable. Thanks, Jonathan > ... > > Fixes: b662f809d410 ("iio: core: Introduce IIO software triggers") > Signed-off-by: Chen Zhongjin > --- > drivers/iio/industrialio-sw-trigger.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/iio/industrialio-sw-trigger.c b/drivers/iio/industrialio-sw-trigger.c > index 994f03a71520..d86a3305d9e8 100644 > --- a/drivers/iio/industrialio-sw-trigger.c > +++ b/drivers/iio/industrialio-sw-trigger.c > @@ -58,8 +58,12 @@ int iio_register_sw_trigger_type(struct iio_sw_trigger_type *t) > > t->group = configfs_register_default_group(iio_triggers_group, t->name, > &iio_trigger_type_group_type); > - if (IS_ERR(t->group)) > + if (IS_ERR(t->group)) { > + mutex_lock(&iio_trigger_types_lock); > + list_del(&t->list); > + mutex_unlock(&iio_trigger_types_lock); > ret = PTR_ERR(t->group); > + } > > return ret; > }