]> git.baikalelectronics.ru Git - kernel.git/commit
Xen/x86: don't bail early from clear_foreign_p2m_mapping()
authorJan Beulich <jbeulich@suse.com>
Mon, 15 Feb 2021 07:49:34 +0000 (08:49 +0100)
committerJuergen Gross <jgross@suse.com>
Mon, 15 Feb 2021 07:49:34 +0000 (08:49 +0100)
commite3d779eb006230a8f1dd04e5326d1ea81e4da7f8
tree14da419f51d19c8774c84025f1f4f3ef8e6a7bb4
parentdd6c3c67460511c10d42388ef40589af3e7f2fbf
Xen/x86: don't bail early from clear_foreign_p2m_mapping()

Its sibling (set_foreign_p2m_mapping()) as well as the sibling of its
only caller (gnttab_map_refs()) don't clean up after themselves in case
of error. Higher level callers are expected to do so. However, in order
for that to really clean up any partially set up state, the operation
should not terminate upon encountering an entry in unexpected state. It
is particularly relevant to notice here that set_foreign_p2m_mapping()
would skip setting up a p2m entry if its grant mapping failed, but it
would continue to set up further p2m entries as long as their mappings
succeeded.

Arguably down the road set_foreign_p2m_mapping() may want its page state
related WARN_ON() also converted to an error return.

This is part of XSA-361.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Cc: stable@vger.kernel.org
Reviewed-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
arch/x86/xen/p2m.c