64K PAGE_SIZE is popular on ARM64 or other ARCHs, and 64K has been big enough to break some devices probably, so change the logic to split bio if the only bvec's length is > SZ_4K instead of PAGE_SIZE.
Unified · Split
| @@ -320,7 +320,7 @@ void __blk_queue_split(struct request_queue *q, struct bio **bio, · 319 unmodified lines | |||
| 320 | if (!q->limits.chunk_sectors && | 320 | if (!q->limits.chunk_sectors && |
| 321 | (*bio)->bi_vcnt == 1 && | 321 | (*bio)->bi_vcnt == 1 && |
| 322 | ((*bio)->bi_io_vec[0].bv_len + | 322 | ((*bio)->bi_io_vec[0].bv_len + |
| 323 | (*bio)->bi_io_vec[0].bv_offset) <= PAGE_SIZE) { | 323 | (*bio)->bi_io_vec[0].bv_offset) <= SZ_4K) { |
| 324 | *nr_segs = 1; | 324 | *nr_segs = 1; |
| 325 | break; | 325 | break; |
| 326 | } | 326 | } |