On 2021/01/27 9:36, Changheun Lee wrote: >>> + >>> /** >>> * bio_reset - reinitialize a bio >>> * @bio: bio to reset >>> @@ -877,7 +892,7 @@ bool __bio_try_merge_page(struct bio *bio, struct page *page, >>> struct bio_vec *bv = &bio->bi_io_vec[bio->bi_vcnt - 1]; >>> >>> if (page_is_mergeable(bv, page, len, off, same_page)) { >>> - if (bio->bi_iter.bi_size > UINT_MAX - len) { >>> + if (bio->bi_iter.bi_size > bio_max_size(bio) - len) { >>> *same_page = false; >>> return false; >>> } >>> diff --git a/include/linux/bio.h b/include/linux/bio.h >>> index 1edda614f7ce..cdb134ca7bf5 100644 >>> --- a/include/linux/bio.h >>> +++ b/include/linux/bio.h >>> @@ -100,6 +100,8 @@ static inline void *bio_data(struct bio *bio) >>> return NULL; >>> } >>> >>> +extern unsigned int bio_max_size(struct bio *); >> >> No need for extern. > > It's just for compile warning in my test environment. > I'll remove it too. But I think compile warning could be in the other > .c file which includes bio.h. Is it OK? Hmmm... not having extern should not generate a compilation warning. There are tons of functions declared without extern in header files in the kernel. What compiler are you using ? -- Damien Le Moal Western Digital Research