My static checker complains that segment is a u64 but only the lower 31 bits can be used before we hit a shift wrapping bug. Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index b423005..d8ed1b8 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -949,7 +949,7 @@ int f2fs_trim_fs(struct f2fs_sb_info *sbi, struct fstrim_range *range) block_t start_addr = SM_I(sbi)->main_blkaddr; __u64 start = range->start >> sbi->log_blocksize; __u64 end = start + (range->len >> sbi->log_blocksize) - 1; - __u64 segment = 1 << (sbi->log_blocksize + sbi->log_blocks_per_seg); + __u64 segment = 1ULL << (sbi->log_blocksize + sbi->log_blocks_per_seg); unsigned int start_segno, end_segno; struct cp_control cpc; -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html