Commit 47ff0eff authored by Jan Beulich's avatar Jan Beulich Committed by Zheng Zengkai
Browse files

xen-blkback: don't "handle" error by BUG()



stable inclusion
from stable-5.10.18
commit 8f8ebd6b1cb5cff96a11cd336027e745d48c2cab
bugzilla: 50148

--------------------------------

commit 5a264285 upstream.

In particular -ENOMEM may come back here, from set_foreign_p2m_mapping().
Don't make problems worse, the more that handling elsewhere (together
with map's status fields now indicating whether a mapping wasn't even
attempted, and hence has to be considered failed) doesn't require this
odd way of dealing with errors.

This is part of XSA-362.

Signed-off-by: default avatarJan Beulich <jbeulich@suse.com>
Cc: stable@vger.kernel.org
Reviewed-by: default avatarJuergen Gross <jgross@suse.com>
Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>

Signed-off-by: default avatarChen Jun <chenjun102@huawei.com>
Acked-by: default avatarXie XiuQi <xiexiuqi@huawei.com>
parent 25c8a9e9
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -811,10 +811,8 @@ static int xen_blkbk_map(struct xen_blkif_ring *ring,
			break;
	}

	if (segs_to_map) {
	if (segs_to_map)
		ret = gnttab_map_refs(map, NULL, pages_to_gnt, segs_to_map);
		BUG_ON(ret);
	}

	/*
	 * Now swizzle the MFN in our domain with the MFN from the other domain
@@ -830,7 +828,7 @@ static int xen_blkbk_map(struct xen_blkif_ring *ring,
				gnttab_page_cache_put(&ring->free_pages,
						      &pages[seg_idx]->page, 1);
				pages[seg_idx]->handle = BLKBACK_INVALID_HANDLE;
				ret |= 1;
				ret |= !ret;
				goto next;
			}
			pages[seg_idx]->handle = map[new_map_idx].handle;