/* * nd_btt_sb_checksum: compute checksum for btt info block * * Returns a fletcher64 checksum of everything in the given info block * except the last field (since that's where the checksum lives). */ u64 nd_btt_sb_checksum(struct btt_sb *btt_sb) { u64 sum; __le64 sum_save; sum_save = btt_sb->checksum; btt_sb->checksum = 0; sum = nd_fletcher64(btt_sb, sizeof(*btt_sb), 1); btt_sb->checksum = sum_save; return sum; }
/* * nd_sb_checksum: compute checksum for a generic info block * * Returns a fletcher64 checksum of everything in the given info block * except the last field (since that's where the checksum lives). */ u64 nd_sb_checksum(struct nd_gen_sb *nd_gen_sb) { u64 sum; __le64 sum_save; BUILD_BUG_ON(sizeof(struct btt_sb) != SZ_4K); BUILD_BUG_ON(sizeof(struct nd_pfn_sb) != SZ_4K); BUILD_BUG_ON(sizeof(struct nd_gen_sb) != SZ_4K); sum_save = nd_gen_sb->checksum; nd_gen_sb->checksum = 0; sum = nd_fletcher64(nd_gen_sb, sizeof(*nd_gen_sb), 1); nd_gen_sb->checksum = sum_save; return sum; }