]> git.baikalelectronics.ru Git - kernel.git/commit
virtio-blk: Don't use MAX_DISCARD_SEGMENTS if max_discard_seg is zero
authorXie Yongji <xieyongji@bytedance.com>
Fri, 4 Mar 2022 10:00:57 +0000 (18:00 +0800)
committerMichael S. Tsirkin <mst@redhat.com>
Sun, 6 Mar 2022 11:06:50 +0000 (06:06 -0500)
commitae20a1ed12be36a516b8531923461f60fb8c89dc
treeee6fb4913ad18aebc267b078fba42747c181db02
parent41d67e4a6ea33b33486abc6686fca7a648ed122b
virtio-blk: Don't use MAX_DISCARD_SEGMENTS if max_discard_seg is zero

Currently the value of max_discard_segment will be set to
MAX_DISCARD_SEGMENTS (256) with no basis in hardware if device
set 0 to max_discard_seg in configuration space. It's incorrect
since the device might not be able to handle such large descriptors.
To fix it, let's follow max_segments restrictions in this case.

Fixes: 17e8877ee072 ("virtio_blk: add discard and write zeroes support")
Signed-off-by: Xie Yongji <xieyongji@bytedance.com>
Link: https://lore.kernel.org/r/20220304100058.116-1-xieyongji@bytedance.com
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
drivers/block/virtio_blk.c