В Fri, 04 Apr 2014 20:24:58 +0200 Dinar Valeev <dval...@suse.de> пишет:
> > Right, my mistake. I recall a message message with 64bit LE patches. But > seems that came from somewhere else. > > Long story short. With 32Bit BE stage one I had several issues like > accessing btrfs and booting from media. I gave up on my hack, and now > use proposed patches (64Bit LE). > Well, then this is the real bug that has to be fixed. btrfs driver is supposed to be endian-clean. Did you try to disable SUSE btrfs patch to verify? There is at least one suspicious place + tree = grub_le_to_cpu64(data->sblock.root_tree); + err = get_fs_root(data, tree, grub_cpu_to_le64(GRUB_BTRFS_FS_TREE_OBJECTID), + 0, &fs_root); get_fs_root expects "tree" in on-disk format, not in CPU format. +get_fs_root(struct grub_btrfs_data *data, grub_uint64_t tree, + grub_uint64_t objectid, grub_uint64_t offset, + grub_uint64_t *fs_root) ... + err = lower_bound(data, &key_in, &key_out, tree, + &elemaddr, &elemsize, &desc, 0); and lower_bound converts fourth argument again lower_bound (struct grub_btrfs_data *data, const struct grub_btrfs_key *key_in, struct grub_btrfs_key *key_out, grub_uint64_t root ... grub_disk_addr_t addr = grub_le_to_cpu64 (root); > I'll submit it to Base:System. > _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel