Received: by 2002:a05:7412:3784:b0:e2:908c:2ebd with SMTP id jk4csp2150606rdb; Tue, 3 Oct 2023 11:46:13 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHKa3lM+9AUXNsNDpfWiGWeve1CmFx6VrujK3mueT8cs1ZaKFZ1TecM3SOodSxorr7OydVb X-Received: by 2002:a05:6358:292a:b0:134:d45b:7dd1 with SMTP id y42-20020a056358292a00b00134d45b7dd1mr245071rwb.21.1696358772623; Tue, 03 Oct 2023 11:46:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696358772; cv=none; d=google.com; s=arc-20160816; b=gsMkdyqTkNu6qqfrLRM6Rb7oDcpLhXuAujFbtk3sV3m6dyQpXfZ1AuexbEKwTdUggv UajZKAsxss6OL5IGnhSHpl2TjnuCARtxVhac4ybNKlRQ17ogs5r8nRsozYVxTeg0ttmZ 6Uctdcd2pmDY8nNLCis4ANEe7s0n/r8qJkHK5b9mgU6qttlzml/rjtbemzbpuW+nPqES eSgBUFNzPDgaQGifonwxmgi4qLElUXeugHFMBxo3uKujIWEQgod/UvO+bBoYJ6RtilNY YIlTEwmh54oVC74BqXJz9vSNDHL/NBTpesPlZtzbEOK9ONcjEDIdOSOqqfeVRSFtQz+u 18RA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:thread-index:thread-topic :content-transfer-encoding:mime-version:subject:references :in-reply-to:message-id:cc:to:from:date; bh=HFm6vmvAf949mNnXRRFZRLQMOd6A4DuwxoIZztL9LAg=; fh=cnNcGImSCyHZg61Oq1lVwS9n8ovlUW+xOV8QcY0Hamw=; b=ONjKMcQEPW1R9hxCNzydkWmGXLpreLoJR/HQiux36dxvQiLhdvY+F8bh3zqZ3BsgNR 8hZf+y0MNazlq7kllEUEUJKuzUp36ugzxJNz8l2uzfLaAZS/DxJycoVUW1BdeRh9BgND Pk4UREbVLA6FTOJg1dXL0cnLSUgvyssQju1289Bv5SFnKeKrA+O6XI38T/svGPOG/mTK 0RqhKtTun0P+w1ZTD9bcODV42yNV3oQEX0J9kURbwFZlc+Ud4xuhwU9LJEHw7wzGZjZ0 xQ2rXvpK8OJ2Gb9Yb2Npv6pW/wKuG4/i3N/mdnc09TTMziM8TDwu0kV6HRW8B7AR7uIB XguQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id u22-20020a056a00125600b0068fcae723easi2022777pfi.368.2023.10.03.11.46.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Oct 2023 11:46:12 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 7CF4981B6A84; Tue, 3 Oct 2023 11:46:11 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232009AbjJCSqL convert rfc822-to-8bit (ORCPT + 99 others); Tue, 3 Oct 2023 14:46:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45022 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231263AbjJCSqJ (ORCPT ); Tue, 3 Oct 2023 14:46:09 -0400 Received: from lithops.sigma-star.at (lithops.sigma-star.at [195.201.40.130]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 77730A7; Tue, 3 Oct 2023 11:46:05 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by lithops.sigma-star.at (Postfix) with ESMTP id 2158E6340E0E; Tue, 3 Oct 2023 20:46:04 +0200 (CEST) Received: from lithops.sigma-star.at ([127.0.0.1]) by localhost (lithops.sigma-star.at [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id YXf_5sB6IDQO; Tue, 3 Oct 2023 20:46:03 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by lithops.sigma-star.at (Postfix) with ESMTP id 4184D6340DF3; Tue, 3 Oct 2023 20:46:03 +0200 (CEST) Received: from lithops.sigma-star.at ([127.0.0.1]) by localhost (lithops.sigma-star.at [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id zQ-FJz0PTVGL; Tue, 3 Oct 2023 20:46:03 +0200 (CEST) Received: from lithops.sigma-star.at (lithops.sigma-star.at [195.201.40.130]) by lithops.sigma-star.at (Postfix) with ESMTP id 025336340DE8; Tue, 3 Oct 2023 20:46:02 +0200 (CEST) Date: Tue, 3 Oct 2023 20:46:02 +0200 (CEST) From: Richard Weinberger To: Daniel Golle Cc: Randy Dunlap , Miquel Raynal , Vignesh Raghavendra , Rob Herring , Krzysztof Kozlowski , Conor Dooley , linux-mtd , devicetree , linux-kernel Message-ID: <1135175877.31585.1696358762881.JavaMail.zimbra@nod.at> In-Reply-To: <1bb74a9feeeb64dcd94024fbfa3a8259fcdac53d.1691717480.git.daniel@makrotopia.org> References: <1bb74a9feeeb64dcd94024fbfa3a8259fcdac53d.1691717480.git.daniel@makrotopia.org> Subject: Re: [PATCH v4 4/8] mtd: ubi: block: use notifier to create ubiblock MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT X-Originating-IP: [195.201.40.130] X-Mailer: Zimbra 8.8.12_GA_3807 (ZimbraWebClient - FF97 (Linux)/8.8.12_GA_3809) Thread-Topic: block: use notifier to create ubiblock Thread-Index: pcyMIJkQgdcxJxlQRVjxanFXVjGyiQ== X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, T_SPF_PERMERROR 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 X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Tue, 03 Oct 2023 11:46:11 -0700 (PDT) ----- Ursprüngliche Mail ----- > Von: "Daniel Golle" > An: "Randy Dunlap" , "Miquel Raynal" , "richard" , > "Vignesh Raghavendra" , "Rob Herring" , "Krzysztof Kozlowski" > , "Conor Dooley" , "Daniel Golle" , > "linux-mtd" , "devicetree" , "linux-kernel" > > Gesendet: Freitag, 11. August 2023 03:37:31 > Betreff: [PATCH v4 4/8] mtd: ubi: block: use notifier to create ubiblock > Use UBI_VOLUME_ADDED notification to create ubiblock device specified > on kernel cmdline or module parameter. > This makes thing more simple and has the advantage that ubiblock devices *things > on volumes which are not present at the time the ubi module is probed > will still be created. > > Suggested-by: Zhihao Cheng > Signed-off-by: Daniel Golle > --- > drivers/mtd/ubi/block.c | 152 ++++++++++++++++++++++------------------ > 1 file changed, 84 insertions(+), 68 deletions(-) > > diff --git a/drivers/mtd/ubi/block.c b/drivers/mtd/ubi/block.c > index 69fa6fecb8494..e0618bbde3613 100644 > --- a/drivers/mtd/ubi/block.c > +++ b/drivers/mtd/ubi/block.c > @@ -33,6 +33,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -65,10 +66,10 @@ struct ubiblock_pdu { > }; > > /* Numbers of elements set in the @ubiblock_param array */ > -static int ubiblock_devs __initdata; > +static int ubiblock_devs; > > /* MTD devices specification parameters */ > -static struct ubiblock_param ubiblock_param[UBIBLOCK_MAX_DEVICES] __initdata; > +static struct ubiblock_param ubiblock_param[UBIBLOCK_MAX_DEVICES]; > > struct ubiblock { > struct ubi_volume_desc *desc; > @@ -532,6 +533,85 @@ static int ubiblock_resize(struct ubi_volume_info *vi) > return 0; > } > > +static bool > +match_volume_desc(struct ubi_volume_info *vi, const char *name, int ubi_num, > int vol_id) > +{ > + int err, len; > + struct path path; > + struct kstat stat; > + > + if (ubi_num == -1) { > + /* No ubi num, name must be a vol device path */ > + err = kern_path(name, LOOKUP_FOLLOW, &path); > + if (err) > + return false; > + > + err = vfs_getattr(&path, &stat, STATX_TYPE, AT_STATX_SYNC_AS_STAT); > + path_put(&path); > + if (err) > + return false; > + > + if (!S_ISCHR(stat.mode)) > + return false; > + > + if (vi->ubi_num != ubi_major2num(MAJOR(stat.rdev))) > + return false; > + > + if (vi->vol_id != MINOR(stat.rdev) - 1) > + return false; > + This is more or less an open coded ubi_open_volume_path(). Please either split or adopt ubi_open_volume_path() to fit your use case. > + return true; > + } > + > + if (vol_id == -1) { > + if (vi->ubi_num != ubi_num) > + return false; > + > + len = strnlen(name, UBI_VOL_NAME_MAX + 1); > + if (len < 1 || vi->name_len != len) > + return false; > + > + if (strcmp(name, vi->name)) > + return false; > + > + return true; > + } Same for ubi_open_volume_nm(). Thanks, //richard