[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20210614102700.586300067@linuxfoundation.org>
Date: Mon, 14 Jun 2021 12:26:45 +0200
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: linux-kernel@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
stable@...r.kernel.org,
Oleksandr Shchirskyi <oleksandr.shchirskyi@...ux.intel.com>,
Oleksandr Shchirskyi <oleksandr.shchirskyi@...el.com>,
Xiao Ni <xni@...hat.com>, Song Liu <song@...nel.org>
Subject: [PATCH 5.12 073/173] async_xor: check src_offs is not NULL before updating it
From: Xiao Ni <xni@...hat.com>
commit 9be148e408df7d361ec5afd6299b7736ff3928b0 upstream.
When PAGE_SIZE is greater than 4kB, multiple stripes may share the same
page. Thus, src_offs is added to async_xor_offs() with array of offsets.
However, async_xor() passes NULL src_offs to async_xor_offs(). In such
case, src_offs should not be updated. Add a check before the update.
Fixes: ceaf2966ab08(async_xor: increase src_offs when dropping destination page)
Cc: stable@...r.kernel.org # v5.10+
Reported-by: Oleksandr Shchirskyi <oleksandr.shchirskyi@...ux.intel.com>
Tested-by: Oleksandr Shchirskyi <oleksandr.shchirskyi@...el.com>
Signed-off-by: Xiao Ni <xni@...hat.com>
Signed-off-by: Song Liu <song@...nel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
---
crypto/async_tx/async_xor.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/crypto/async_tx/async_xor.c
+++ b/crypto/async_tx/async_xor.c
@@ -233,7 +233,8 @@ async_xor_offs(struct page *dest, unsign
if (submit->flags & ASYNC_TX_XOR_DROP_DST) {
src_cnt--;
src_list++;
- src_offs++;
+ if (src_offs)
+ src_offs++;
}
/* wait for any prerequisite operations */
Powered by blists - more mailing lists