summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@suse.com>2021-02-15 08:55:57 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-02-23 15:02:26 +0100
commitbe05138a9cdd54f6586ec356c0a24d4bd8559735 (patch)
tree952c861794e54c651a7ea585c18e0f4373c4a0e8
parent52e8f43af5407af6761421d30826ca48cf1585b9 (diff)
downloadlinux-stable-be05138a9cdd54f6586ec356c0a24d4bd8559735.tar.gz
linux-stable-be05138a9cdd54f6586ec356c0a24d4bd8559735.tar.bz2
linux-stable-be05138a9cdd54f6586ec356c0a24d4bd8559735.zip
xen-scsiback: don't "handle" error by BUG()
commit 7c77474b2d22176d2bfb592ec74e0f2cb71352c9 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>
-rw-r--r--drivers/xen/xen-scsiback.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/xen/xen-scsiback.c b/drivers/xen/xen-scsiback.c
index 33d6499d8472..32aba2e8c075 100644
--- a/drivers/xen/xen-scsiback.c
+++ b/drivers/xen/xen-scsiback.c
@@ -422,12 +422,12 @@ static int scsiback_gnttab_data_map_batch(struct gnttab_map_grant_ref *map,
return 0;
err = gnttab_map_refs(map, NULL, pg, cnt);
- BUG_ON(err);
for (i = 0; i < cnt; i++) {
if (unlikely(map[i].status != GNTST_okay)) {
pr_err("invalid buffer -- could not remap it\n");
map[i].handle = SCSIBACK_INVALID_HANDLE;
- err = -ENOMEM;
+ if (!err)
+ err = -ENOMEM;
} else {
get_page(pg[i]);
}