Skip to content

Commit 7109f61

Browse files
jbeulichgregkh
authored andcommitted
xen-blkback: don't "handle" error by BUG()
commit 5a26428 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: 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 55ccf71 commit 7109f61

1 file changed

Lines changed: 2 additions & 4 deletions

File tree

drivers/block/xen-blkback/blkback.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -867,10 +867,8 @@ static int xen_blkbk_map(struct xen_blkif_ring *ring,
867867
break;
868868
}
869869

870-
if (segs_to_map) {
870+
if (segs_to_map)
871871
ret = gnttab_map_refs(map, NULL, pages_to_gnt, segs_to_map);
872-
BUG_ON(ret);
873-
}
874872

875873
/*
876874
* Now swizzle the MFN in our domain with the MFN from the other domain
@@ -885,7 +883,7 @@ static int xen_blkbk_map(struct xen_blkif_ring *ring,
885883
pr_debug("invalid buffer -- could not remap it\n");
886884
put_free_pages(ring, &pages[seg_idx]->page, 1);
887885
pages[seg_idx]->handle = BLKBACK_INVALID_HANDLE;
888-
ret |= 1;
886+
ret |= !ret;
889887
goto next;
890888
}
891889
pages[seg_idx]->handle = map[new_map_idx].handle;

0 commit comments

Comments
 (0)