UBI: fix rb_tree node comparison in add_map commit buggy?
Richard Weinberger
richard at nod.at
Mon Jun 23 05:41:27 PDT 2014
Am 23.06.2014 13:04, schrieb Heiko Schocher:
> I tried this patch also in the U-Boot code, without getting a ubifs
> rootfs (burned with u-boot into the ubi volume) bootable in linux ...
> which worked before... maybe v3.14 and v3.16-rc1 are not compatible?
> Do anybody know from such problems?
>
> If I revert commit 604b592e6fd3c98f21435e1181ba7723ffc24715 in
> Linux v3.16-rc1 only (so I have the same code in U-Boot at this
> place), I can boot Linux with the ubifs based rootfs, and after
> a reboot the U-Boot ubi attach time is short ... all works fine,
> as I can see it ...
>
> If I make in U-Boot and Linux in following patch [1]:
> $ git diff
> diff --git a/drivers/mtd/ubi/fastmap.c b/drivers/mtd/ubi/fastmap.c
> index b04e7d0..72f39da 100644
> --- a/drivers/mtd/ubi/fastmap.c
> +++ b/drivers/mtd/ubi/fastmap.c
> @@ -125,7 +125,7 @@ static struct ubi_ainf_volume *add_vol(struct ubi_attach_info *ai, int vol_id,
> parent = *p;
> av = rb_entry(parent, struct ubi_ainf_volume, rb);
>
> - if (vol_id < av->vol_id)
> + if (vol_id > av->vol_id)
> p = &(*p)->rb_left;
> else
> p = &(*p)->rb_right;
> $
"Found" your patch. ;)
Looks like I need new glasses.
Yes, it looks correct as the logic is now balanced with the logic in ubi_find_av().
Thanks,
//richard
More information about the linux-mtd
mailing list