diff options
author | Jonathan Corbet <corbet@lwn.net> | 2019-06-14 22:18:53 +0200 |
---|---|---|
committer | Jonathan Corbet <corbet@lwn.net> | 2019-06-14 22:18:53 +0200 |
commit | 8afecfb0ec961e37e61b2d19c4fa71617a9482de (patch) | |
tree | c43ea51a47b1e76b762caa4c1b0c356249e5e874 /block/blk-settings.c | |
parent | Documentation: Remove duplicate x86 index entry (diff) | |
parent | Linux 5.2-rc4 (diff) | |
download | linux-8afecfb0ec961e37e61b2d19c4fa71617a9482de.tar.xz linux-8afecfb0ec961e37e61b2d19c4fa71617a9482de.zip |
Merge tag 'v5.2-rc4' into mauro
We need to pick up post-rc1 changes to various document files so they don't
get lost in Mauro's massive RST conversion push.
Diffstat (limited to 'block/blk-settings.c')
-rw-r--r-- | block/blk-settings.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/block/blk-settings.c b/block/blk-settings.c index 3facc41476be..2ae348c101a0 100644 --- a/block/blk-settings.c +++ b/block/blk-settings.c @@ -310,6 +310,9 @@ void blk_queue_max_segment_size(struct request_queue *q, unsigned int max_size) __func__, max_size); } + /* see blk_queue_virt_boundary() for the explanation */ + WARN_ON_ONCE(q->limits.virt_boundary_mask); + q->limits.max_segment_size = max_size; } EXPORT_SYMBOL(blk_queue_max_segment_size); @@ -742,6 +745,14 @@ EXPORT_SYMBOL(blk_queue_segment_boundary); void blk_queue_virt_boundary(struct request_queue *q, unsigned long mask) { q->limits.virt_boundary_mask = mask; + + /* + * Devices that require a virtual boundary do not support scatter/gather + * I/O natively, but instead require a descriptor list entry for each + * page (which might not be idential to the Linux PAGE_SIZE). Because + * of that they are not limited by our notion of "segment size". + */ + q->limits.max_segment_size = UINT_MAX; } EXPORT_SYMBOL(blk_queue_virt_boundary); |