From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from a.ns.miles-group.at ([95.130.255.143] helo=radon.swed.at) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1Y0nxi-0003Yf-G3 for linux-mtd@lists.infradead.org; Tue, 16 Dec 2014 08:58:35 +0000 Message-ID: <548FF41F.3030902@nod.at> Date: Tue, 16 Dec 2014 09:58:07 +0100 From: Richard Weinberger MIME-Version: 1.0 To: hujianyang , Artem Bityutskiy Subject: Re: [PATCH] UBI: add ubi_err() to report the failure of leb read References: <548FE51D.60707@huawei.com> In-Reply-To: <548FE51D.60707@huawei.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Cc: linux-mtd List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Am 16.12.2014 um 08:54 schrieb hujianyang: > If an error occur while reading from PEBs, for example, an ECC error, > ubi_io_read() will print some error messages. But it's not enough for > debugging. These messages don't show the mapping info for a read from > UBIFS layer. > > Although UBIFS will soon print its error messages after catching the > return value from UBI layer, multi-path reading will confuse the > relationship between LEBs and PEBs showed by these messages. > > This patch adds an ubi_err() to report reading errors in the function > ubi_eba_read_leb(). The mapping info of LEB and PEB is showed by > this error message. > > Signed-off-by: hujianyang > --- > drivers/mtd/ubi/eba.c | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/drivers/mtd/ubi/eba.c b/drivers/mtd/ubi/eba.c > index b698534..b4e69e1 100644 > --- a/drivers/mtd/ubi/eba.c > +++ b/drivers/mtd/ubi/eba.c > @@ -477,6 +477,8 @@ out_free: > ubi_free_vid_hdr(ubi, vid_hdr); > out_unlock: > leb_read_unlock(ubi, vol_id, lnum); > + ubi_err(ubi, "err %d while reading %d bytes from offset %d of LEB %d:%d, PEB %d", > + err, len, offset, vol_id, lnum, pnum); This label will also be reached if we run out of memory. Please make sure that the new ubi_err() can only be reached in case of an MTD error. Also make sure that the function prints only one message and not two. Thanks, //richard