+42
−63
Loading
mainline inclusion from mainline-v6.11-rc1 commit 7ad4723976672b7d359403a555e0ce5c75529153 bugzilla: https://gitee.com/openeuler/kernel/issues/IAHGCP Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7ad4723976672b7d359403a555e0ce5c75529153 ----------------------------------------------------------- All callers of vhost_get_avail_idx() use smp_rmb() to order the available ring entry read and avail_idx read. Make vhost_get_avail_idx() call smp_rmb() itself whenever the avail_idx is accessed. This way, the callers don't need to worry about the memory barrier. As a side benefit, we also validate the index on all paths now, which will hopefully help prevent/catch earlier future bugs. Note that current code is inconsistent in how the errors are handled. They are treated as an empty ring in some places, but as non-empty ring in other places. This patch doesn't attempt to change the existing behaviour. No functional change intended. Signed-off-by:Michael S. Tsirkin <mst@redhat.com> Reviewed-by:
Gavin Shan <gshan@redhat.com> Acked-by:
Will Deacon <will@kernel.org> Message-Id: <20240429232748.642356-1-gshan@redhat.com> Signed-off-by:
caijian <caijian11@h-partners.com>