kaddr = kmap_atomic(page);
                csum = btrfs_csum_data(kaddr, csum, PAGE_SIZE);
-               btrfs_csum_final(csum, (char *)&csum);
+               btrfs_csum_final(csum, (u8 *)&csum);
                kunmap_atomic(kaddr);
 
                if (csum != *cb_sum) {
 
        return btrfs_crc32c(seed, data, len);
 }
 
-void btrfs_csum_final(u32 crc, char *result)
+void btrfs_csum_final(u32 crc, u8 *result)
 {
        put_unaligned_le32(~crc, result);
 }
 
                          int atomic);
 int btrfs_read_buffer(struct extent_buffer *buf, u64 parent_transid);
 u32 btrfs_csum_data(char *data, u32 seed, size_t len);
-void btrfs_csum_final(u32 crc, char *result);
+void btrfs_csum_final(u32 crc, u8 *result);
 int btrfs_bio_wq_end_io(struct btrfs_fs_info *info, struct bio *bio,
                        enum btrfs_wq_endio_type metadata);
 int btrfs_wq_submit_bio(struct btrfs_fs_info *fs_info, struct inode *inode,
 
 
        crc = btrfs_csum_data(io_ctl->orig + offset, crc,
                              PAGE_SIZE - offset);
-       btrfs_csum_final(crc, (char *)&crc);
+       btrfs_csum_final(crc, (u8 *)&crc);
        io_ctl_unmap_page(io_ctl);
        tmp = page_address(io_ctl->pages[0]);
        tmp += index;
        io_ctl_map_page(io_ctl, 0);
        crc = btrfs_csum_data(io_ctl->orig + offset, crc,
                              PAGE_SIZE - offset);
-       btrfs_csum_final(crc, (char *)&crc);
+       btrfs_csum_final(crc, (u8 *)&crc);
        if (val != crc) {
                btrfs_err_rl(io_ctl->root->fs_info,
                        "csum mismatch on free space cache");
 
 
        kaddr = kmap_atomic(page);
        csum = btrfs_csum_data(kaddr + pgoff, csum,  len);
-       btrfs_csum_final(csum, (char *)&csum);
+       btrfs_csum_final(csum, (u8 *)&csum);
        if (csum != csum_expected)
                goto zeroit;