From nobody Sun Jun 21 04:20:45 2026 Received: from mail-qk1-f176.google.com (mail-qk1-f176.google.com [209.85.222.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 41FBB3B388B for ; Tue, 7 Apr 2026 12:38:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775565526; cv=none; b=IFbLNfnmAwvaEeZKb7xaUtgLkrqK7i7K4fh6NEbJbuZNjb/zXcdKTYSrcX8TK1sPK8PjcifpKt+qjMQcjH4s84gwRJ3DcXWhEKnMdZwDpYhVa7uI0c/JALcU3pEOYIoMa0dO6v6b6OaW5dvuEzDQ7tOWdhg+3UxZblBDua9tWDI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775565526; c=relaxed/simple; bh=od2UeJTnucQWRB98HJPw6xYmEDna6SLVAs8cxn+YZwg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HKcbmstrBnz0GgEINNWapJXMGdj8GkDpXZOpdGv0Nc/EI3rZOB2U7PKxXkVL+gmg9Ysm2dBdbvlv6VjaRLT25fOJzQ8FKUxoSGrWo4kqTtGRAdHIbrv2xIIWHjz+vInGqdTPwY8ULe/f2OIz+btfEieVAxKL5OPvvNrE9hU9fY4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=stellman-greene.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=niO310jW; arc=none smtp.client-ip=209.85.222.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=stellman-greene.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="niO310jW" Received: by mail-qk1-f176.google.com with SMTP id af79cd13be357-8d68bcf50fdso291796185a.2 for ; Tue, 07 Apr 2026 05:38:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775565524; x=1776170324; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=PKevOfZ5TDfeeIKvU71ppdfhcxrSUtftXxQvTrnvr2M=; b=niO310jWA1NjdJeO3zgVBWaVy9SxRVI3/uSS2d72thW+M+AGni72KOl6N0lB76rv2C HYy1wSYgJsFKn5r0rSjkEsL5JA9OMkDipo0Re7euavVZdPv56veRAMogWQGqcUFL/BBt trdOFO3KzT8s/6h/+JsRrkRnkBfO97McETXGkTY15u6QCo5EPmFf6lVwfzGNutXnztPS yw6MFpL144/wg0G1IQTMxdXjq+jbgnhciAMgSaUxhueVQciEjlshLMEzQxKIl+Tjk5Ev EE9ZXPpLVnW2iWz28iDNhP7eIPNZPXtPGZDiXUDO2gQbAM5o5eeMO8+cP2XS5LNRj9+P i1lw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775565524; x=1776170324; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=PKevOfZ5TDfeeIKvU71ppdfhcxrSUtftXxQvTrnvr2M=; b=Chrbk5rM7SMX4OC2966yai3g+JEgfD49NnzU+FsQGa9QVofL/sIQVg7OhCBucBLRoQ 8dFplRLbr+tLzrdHAA+1Ip2Ir9iDWZ2gwOvwO0sdhWtvQWEWlJQMhb3u50uE9zb0R42T GX/lDhUbcldDCNBB9BVe2tr68WNk8ZOq4Uu3/qNLXZgRRPM4UGwaMQ379MBl+62xP76+ tZw33g3yt25tFpghEcszSJp49zd4dQaDcvXLrEslUW4dwD0+zoGGdZdOSDkHI3k8Ksqx CX80B0xrkrRF9k4bjQ4iJJuQHvGbFT2mH1Crkwmo0jVBWgUtUf2rpnG+GNq2doCKeivT Bp+Q== X-Gm-Message-State: AOJu0Yw2zZzCFfv7EfBTsviPVQZ2FpZo9/2ttTTCkHicLWrL1qKZst1o rd6djbXoeuy1g8thhqxgF1x41mbq7AuBrtb9b6XroP7kTGPnDxZcW/en X-Gm-Gg: AeBDievbGZalW+3qEAMIfTaUA3dAWvZG/R2pr+jlym9f0Hyt6u/alaJvxAwRF72BctI KhMCUbMayf8X9KSbF3UP2WCgA4jLuiAVcGVm8EObKNgZk9864+G+T/KNpUJNK7LFrSQ5X9kp4gr e9ybk1xJIHF0kWgy7xfTtgQEIDi8VePHtlgx5skwsWphfVVPBCh6GAKRzpa+t0eVxjwThCiUSi3 YDQUzIOF347I3hTHhbcabUDaT1/rCGSeWjFix2/9sXe9rXxpZO7cX2h0YyW/b82nVy9kr0fHxAs mMqO1SkaxStEBlPBdIZqbaab296Sqpe+ncPene/gf9g5iJKgIedJ4iiXBJzPbtWo/xZUyAGoCUJ 4fVxOUAW55Y/I0MPLPmA62PhQ0rPaTrFXDF8f6DsU2x/7JWNr25KAVu6fSgY0lA380295iyduKC x3Sr7qxdeHJioX47Qot2vuENWBEBG/OHt6rFYBkzz4Dvqns9jxzTLLE94MRJEze4yRnteJHPsHX blYsN8ngq40YtaBlNfKPnK00qMCNG6Tua0yJ80RMSQws55xdHqSsQBgIyiZdYQVXa+2xNjw3n24 00jB9sKUXqDvq7zpgaC4 X-Received: by 2002:a05:620a:4612:b0:8cf:d804:4557 with SMTP id af79cd13be357-8d41c5a66d3mr2358683285a.19.1775565524057; Tue, 07 Apr 2026 05:38:44 -0700 (PDT) Received: from localhost.localdomain ([2600:4041:5c46:7000:d80b:4b87:c7c8:bd46]) by smtp.gmail.com with ESMTPSA id af79cd13be357-8d5ce92c4d3sm776869085a.44.2026.04.07.05.38.42 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 07 Apr 2026 05:38:42 -0700 (PDT) Sender: Andrew Stellman From: Andrew Stellman To: Minchan Kim , Sergey Senozhatsky Cc: linux-kernel@vger.kernel.org, Andrew Stellman Subject: [PATCH 1/4] zram: complete parent bio on allocation failure in read_from_bdev_async() Date: Tue, 7 Apr 2026 08:38:33 -0400 Message-ID: <20260407123836.6341-2-astellman@stellman-greene.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260407123836.6341-1-astellman@stellman-greene.com> References: <20260407123836.6341-1-astellman@stellman-greene.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" read_from_bdev_async() silently returns without completing the parent bio when either kmalloc or bio_alloc fails. The caller has already submitted the parent bio for asynchronous completion, so returning without calling bio_endio(parent) leaves the I/O hanging indefinitely. Set parent->bi_status to BLK_STS_IOERR and call bio_endio(parent) on both allocation failure paths, matching the error-completion pattern used in zram_async_read_endio(). Signed-off-by: Andrew Stellman --- drivers/block/zram/zram_drv.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c index af67937..f41f1ca 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c @@ -1437,12 +1437,17 @@ static void read_from_bdev_async(struct zram *zram,= struct page *page, struct bio *bio; =20 req =3D kmalloc_obj(*req, GFP_NOIO); - if (!req) + if (!req) { + parent->bi_status =3D BLK_STS_IOERR; + bio_endio(parent); return; + } =20 bio =3D bio_alloc(zram->bdev, 1, parent->bi_opf, GFP_NOIO); if (!bio) { kfree(req); + parent->bi_status =3D BLK_STS_IOERR; + bio_endio(parent); return; } =20 --=20 2.34.1 From nobody Sun Jun 21 04:20:45 2026 Received: from mail-qk1-f170.google.com (mail-qk1-f170.google.com [209.85.222.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EABEA3B3C1B for ; Tue, 7 Apr 2026 12:38:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775565527; cv=none; b=tR0cmxAmf8S1FGoycndgIm4iLTeInwgcnCUdlAQsrftbldLOKhZNHL6ffTSALh7yQWZGxYiTLVE0vmEeQ86F7NsiE4PRqEDfV15YWZwESU3r+SHTN1gM9Sg/0zyrAW53pBt3eS75i9GspgplZwfQ7AJfuipWtS4ZCBY6UMYzwyI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775565527; c=relaxed/simple; bh=n2I905ZxIIUbgo0aKKOjBzHuD+Rfq/eReFMOQAMXLhc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MRX2bBgnuWqCRYBHM91qEJHg9ZkVjEhyQ5GHdiUJEWNJg6a7C6JlDbhNSqdE/iInmbEIXDwx4XcBNLoWfOkkGjWhOgSA/YPMrtHMmPi/lMQVr2SSDOoYRysAHcWoI6gUihwCDQMccsAM3ndYKZ4tI5Ax997p9Z4bcvnh8exCCMY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=stellman-greene.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=j/26vWcm; arc=none smtp.client-ip=209.85.222.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=stellman-greene.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="j/26vWcm" Received: by mail-qk1-f170.google.com with SMTP id af79cd13be357-8d4f78fc9f6so422694885a.3 for ; Tue, 07 Apr 2026 05:38:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775565525; x=1776170325; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=X3CCPwKa4u1wQ6NQedGSIHpXvygiw9YxOvJ0di/pIwg=; b=j/26vWcmW8RspJR0ns1Q7Mr3I03usJkTZBptpLmUDlGIs+0i7KFv+q/OmDy6Y0aty4 kK2MaBZ/m10j6xptp20Xy3kCD8YlvUuXEzjDxtN9HlqcRbUcGjpD4inGnOzYBouBVjI0 nlVKuJq/KPELlCpfElMPFk9JmgiofTQ8EDodcXJVUBVhdHHaKbXFD3AMazfuXsmmIGnu jIy98NN3RqU9wcMmCVSswxZoX06S8NA2QGqKZYHGlZCr5mpmVdwqaNWmaMXyEfd5kCPm XGBzebX60xuklWbp9WCTSc8noHiZVKqr+HzVA2m3YBVZpBjmvXrPZLEafKWsR7rpXFeU q2ng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775565525; x=1776170325; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=X3CCPwKa4u1wQ6NQedGSIHpXvygiw9YxOvJ0di/pIwg=; b=C9f5HdMn70hpM67cS/EAxhT9FSpV4ddGXfKiyVBNze+XpKNSsDxZJ/C3WtoBHA+pQ2 g/dtQk7C5yilFEOahPNfCsVYrq+JPo6k06+vuGZS1/W5m52/1th7NajDluswqRvPcXIJ QWQEqCQPFZQTvMbvp/swA7R+C9zvkQUju5a6zQEQzcZyLosLdh8cYPGpoOml9OFEEQpD S4a97DXGtJLU5Iwqnr0P4GCghnrJaXvk1Qe8ryM3tDIBSdT1yFAs6qUyvIVm62/RW42y Xc/OvIh73hGrHnfaujvOav4+Mdto7mD6RvXqeBFpQzzPiLRsAv6QboOSTUmfv/eiPxcK EjYQ== X-Gm-Message-State: AOJu0YwVkaOuB86TjJ6DbxIDkgm9ObUU4SWhtDA0awUEgljZleKVVddD T3q0Kp5iERqFxSd86drbrbqALe3jKDBu/sWnI9Q3BK0Um6DToIHTdj4yQrlZIA== X-Gm-Gg: AeBDieu6ut/8QRBfXs8N49IIwwsRBz5vYLMcUgkSdEf95eKe7BKxyhSckTHsoYtweIP oX/EJAJQe2RVnTh2UR/rqeTUL2kZ+9i0EIktmGdsIs5kEcNLk5R+EogP4BofRZILtw1LQLRZpQG iaxZ46ly16A2QEXHFSytNGBxjP9+amDSGpyq1l5PvL2aGbdvFAxjPSLNftou4Bxy2x5CRp1OGTC 6n8LaQ3r1PnoG3YAcQxzcEAHxGpSFe93FvwcajfPiYWE58LQFGEuGmgB0ZJLzwZDgqGGfFAjJ1A IwYWrPsY1ay1mWZj4hQuE7utEIkrsRkLQviJQT3Zwi8cyyvesy6NTro08qPEqf+QtMPfAsf9sbP 2XOGa1hOpOHY6xuxtouwdA8CvqLbxF8qf4+5JK1YcrXsDHv0gopBGyz/Y+ZTN52ie20MyLlwRtj WwiJgr0Cp8azhAy3/DRZkWf0nYXRfPrHxV5fONWqeXHh4nAomDCBnhH+MjH7F1puO2j09YETAXp XdEw7llLyX4FqBaw6hy4q+44Qkr8yZt9aN4Ff09ogBQtTjUB8CeSV14KsDYFkew3/tM38tNGKfY 99CbH7WnroQoZZxhE/vy X-Received: by 2002:a05:620a:c4d:b0:8cf:d6f8:599f with SMTP id af79cd13be357-8d41b8d8c74mr2351201485a.57.1775565524880; Tue, 07 Apr 2026 05:38:44 -0700 (PDT) Received: from localhost.localdomain ([2600:4041:5c46:7000:d80b:4b87:c7c8:bd46]) by smtp.gmail.com with ESMTPSA id af79cd13be357-8d5ce92c4d3sm776869085a.44.2026.04.07.05.38.44 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 07 Apr 2026 05:38:44 -0700 (PDT) Sender: Andrew Stellman From: Andrew Stellman To: Minchan Kim , Sergey Senozhatsky Cc: linux-kernel@vger.kernel.org, Andrew Stellman Subject: [PATCH 2/4] zram: call bio_endio() on early return in zram_bio_discard() Date: Tue, 7 Apr 2026 08:38:34 -0400 Message-ID: <20260407123836.6341-3-astellman@stellman-greene.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260407123836.6341-1-astellman@stellman-greene.com> References: <20260407123836.6341-1-astellman@stellman-greene.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" When a discard request fits entirely within the unaligned head fragment, zram_bio_discard() returns early without calling bio_endio(bio). The bio is never completed, leaving the caller waiting indefinitely. The normal exit path at the end of the function does call bio_endio(), but the early return bypasses it. Add bio_endio(bio) before the early return so the bio is properly completed in all paths. Signed-off-by: Andrew Stellman --- drivers/block/zram/zram_drv.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c index f41f1ca..8ea2a12 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c @@ -2701,8 +2701,10 @@ static void zram_bio_discard(struct zram *zram, stru= ct bio *bio) * skipping this logical block is appropriate here. */ if (offset) { - if (n <=3D (PAGE_SIZE - offset)) + if (n <=3D (PAGE_SIZE - offset)) { + bio_endio(bio); return; + } =20 n -=3D (PAGE_SIZE - offset); index++; --=20 2.34.1 From nobody Sun Jun 21 04:20:45 2026 Received: from mail-qk1-f170.google.com (mail-qk1-f170.google.com [209.85.222.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9CC563B52F5 for ; Tue, 7 Apr 2026 12:38:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775565528; cv=none; b=Bip5VAkXOudZX5S836b9EGdcidfh8ECG+2hHcHFWYse+cwqqWZ+lsNq1W7UJ5/8VBp/snSdsu1qNps93asdnQdGdvJD7xnd4zfjWCDftuyH4CwWQW3lu1u3TZj/JEc6a+mo/H0WthuTUYaaYAOrFouDSKxyC1OsW2CeI0IlQa7E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775565528; c=relaxed/simple; bh=uwNN5r1hrsbtj07mzS2VIE//ZX++xmDh3wWn9xAvswI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=LGHIbHfKyoa68TRp90KFuN/pBp38fKA9Vg6GeAOThk866q6rbHjzJth5zu47ppXmV9IUghSe+svRMu8jOsqL8T+ngAl00qyb88xiJD2zCErJ25yc3Vyiyp7SEijGNPRkbDRipb14ME/b5ncMrL0JQf2llLXWmXNQWnucAvnVDFg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=stellman-greene.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=b8vuHFN7; arc=none smtp.client-ip=209.85.222.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=stellman-greene.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="b8vuHFN7" Received: by mail-qk1-f170.google.com with SMTP id af79cd13be357-8cb38e86cf2so494458885a.1 for ; Tue, 07 Apr 2026 05:38:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775565526; x=1776170326; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=d05ef9ktVhg1zp9tuMGbq7/+0VXunEXu+jBIFEpHQxc=; b=b8vuHFN7+2TXMOkbrI2ynF9sj8qZXinyudKtYhG2PZo+8OGSK12aC2/kvEG0JTlLw8 E19RZPlVJ5UK6OI2SYQy2DU42jBMlmaCOF7AecACnmdCX/OGTUsQdCpD/lcVEutX9mZF rKmA5feabbnrbOUS7ryI+Iw/FZQW8sGNM6XE2KZM2AcKfg8MFWh+fAO38h3l/oJ9EurB kciBEf893rK8k6gbyMwMHEQ2D/tRHe6k/DJ2HI+a32k48pVd1StEpt47OyXISHBNRhjD NOHeC32fDSez9RBV2vGXSUXyiITzL/Hst88NnKWjECSWiK0OSbpesR818ZkKlbjrijpI uLVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775565526; x=1776170326; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=d05ef9ktVhg1zp9tuMGbq7/+0VXunEXu+jBIFEpHQxc=; b=goWYQ+0dh586Dq8fjI3r9U3YnNqvD6TfnF+4s13GPjphj8C7Vy2ZmVhG+O8FZnegBC Ybrf4mTAHKUMCqwBxVEVH+kz38A+guxHQlmRLxQ3RSTPzuIR9IRxdpxqkh+/Ds+XsJFf Nz8PC1Ku3GCOOQzjdYCquiFHiuNJK7YXiyFbmIFS9dhniYiu291YAqKwhPH3G3GI5Vt4 Gsz8raEy4D9omFlGwZw5XT2N0+lpHMcjR3peatGxanEX74Es8u+yXNZIGSDdLjLWPt46 +n2g6aUw8A2qY1kX3gzMtn8xGtXWN6oOrgh3IsuON5z9WevlqESXNiTzPoMUo1GTuaYO 0dpw== X-Gm-Message-State: AOJu0YxEj/CqOxYsOAibK0exVmdTOMsilc6bpyiLC2piiUV9wuX7nz5+ MrQqJ2rwvDHNnW0xTYbHo7n4/ErXD3Nx6+bFGa0fxKdNVS5BE3SE59AH X-Gm-Gg: AeBDietqR+uD2uVk30WibNYu4ZHbPvreovewtBRMfnT71BUC3XjuLCZzgwvi12DpE1P nh9fpTTbYYWHvGJcfn+jzg1qCOBJ7vFLDh5Mgllc//cqDCb5hPcmSf+8oDst2x+rK/WFF/1YPpM PaX+CZpoJMhBUUxD7KBfaK1aCz96Jgcm1NnY0IhwQcgKeqehe7P+Qtb5HGd+YqUkFbsWQqH2Wqb vwn2Y6YEfEKHJhU3wAd811zoUm9kKLYfTN0+MYg5j8AyvPAmioOMpyIQwR6sEIcrTjCvMlu0R0o qtUWE5msYOpEDvHdExAcdk0ayGuDHrdjhHCVsuzMgBfFjGXBImjMn/BTMOXWNlJF5ZoYxDiNR42 bq5q32F//MjsVQeYmIDPX9kQ+GGcz24A+j0DonKAtsGH2FInoYrcfeKOxKdNtGlApsY4xPR4OVc JkulrwYn4yZX0hwGa6nYMqyycclgW2IUQFE57O0OAbqpfuKcBHNMR5xzJ8lW9B6KSjMNqTApbQO UqJDB6VDHGXD0nevdyalXbs0DU0SOzkLLK63SMemM7A/Y56IQkhZ3OA2Kv4Wb+8xdE5JY/rb2IV 8VTxTXbCLn/tbe4XMoXO X-Received: by 2002:a05:620a:2590:b0:8cd:8efb:b7d9 with SMTP id af79cd13be357-8d41c9b337emr2395485185a.28.1775565526451; Tue, 07 Apr 2026 05:38:46 -0700 (PDT) Received: from localhost.localdomain ([2600:4041:5c46:7000:d80b:4b87:c7c8:bd46]) by smtp.gmail.com with ESMTPSA id af79cd13be357-8d5ce92c4d3sm776869085a.44.2026.04.07.05.38.44 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 07 Apr 2026 05:38:45 -0700 (PDT) Sender: Andrew Stellman From: Andrew Stellman To: Minchan Kim , Sergey Senozhatsky Cc: linux-kernel@vger.kernel.org, Andrew Stellman Subject: [PATCH 3/4] zram: reject unrecognized type= values in recompress_store() Date: Tue, 7 Apr 2026 08:38:35 -0400 Message-ID: <20260407123836.6341-4-astellman@stellman-greene.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260407123836.6341-1-astellman@stellman-greene.com> References: <20260407123836.6341-1-astellman@stellman-greene.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable recompress_store() parses the type=3D parameter with three independent if statements checking for "idle", "huge", and "huge_idle". An unrecognized value silently falls through with mode left at 0, causing the recompression pass to run with no slot filter =E2=80=94 processing all slots instead of the intended subset. Convert the if chain to if/else if/else and return -EINVAL for unrecognized values, consistent with the function's other parameter validation. Signed-off-by: Andrew Stellman --- drivers/block/zram/zram_drv.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c index 8ea2a12..67dea80 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c @@ -2555,10 +2555,12 @@ static ssize_t recompress_store(struct device *dev, if (!strcmp(param, "type")) { if (!strcmp(val, "idle")) mode =3D RECOMPRESS_IDLE; - if (!strcmp(val, "huge")) + else if (!strcmp(val, "huge")) mode =3D RECOMPRESS_HUGE; - if (!strcmp(val, "huge_idle")) + else if (!strcmp(val, "huge_idle")) mode =3D RECOMPRESS_IDLE | RECOMPRESS_HUGE; + else + return -EINVAL; continue; } =20 --=20 2.34.1 From nobody Sun Jun 21 04:20:45 2026 Received: from mail-qk1-f177.google.com (mail-qk1-f177.google.com [209.85.222.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 517633B636E for ; Tue, 7 Apr 2026 12:38:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775565530; cv=none; b=VgL+VRXBL7+HWn7wf+/7DL0ZRZCVkii66krPbOL+mnDP9Wds/1l64zbSXMhGvV7Kc0DmEXtX3tATL/wD+y7CjRzQcuM0hVtsUuBkUS1zNuzQgbpqekjqz4QzQISFtMzz31qHBO3kJg90kjEj8Gi+sqoO1UoNnwX1j4RNdCckd98= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775565530; c=relaxed/simple; bh=4My3CW6VdNF5ucS8OZb11FxJVyubgjumfniuTntorVY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=W7N3bZHWcHe0juWaWsWUbpYMtF1k73hTy6Aih8PXOM+oSrnhRM9tq+kApcqrcdyVjv68QkuKUCDWY/gnQjfPtksZSg/YOw3VLaIQSgcg0OooDopenmn4O5K2FFFclNlfc8FZKYAZty6wS6IvFEzE1R5XfOM4/KSwLc2bdBpOvis= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=stellman-greene.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=C85L1JKA; arc=none smtp.client-ip=209.85.222.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=stellman-greene.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="C85L1JKA" Received: by mail-qk1-f177.google.com with SMTP id af79cd13be357-8cfbfdabf3fso552020385a.3 for ; Tue, 07 Apr 2026 05:38:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775565528; x=1776170328; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:from:to:cc:subject:date :message-id:reply-to; bh=kWyQmQjaYxgb6xvhwQgtKERDs3yLS4RVJY5xqfWIRto=; b=C85L1JKAGT2cbRaSowOgdTLA0eahm0VOvivec/L50RfE/QpneH5NSko4Rhju143Cwj YOdv91s2Agtyv1HQD5xpXNLCqw2czs9AsmXCKlgUdN+TnR7YG8UVfMAx10VsXKKHmmAJ ovF3cr8OAMuv5pprKhbowizH4RfMfUqZm2bWBW7FydC7rRqpM88fguoJGzF2g8WGX/EM nxmoIm2mPOBuMeBzRz3yw91PBZeDYBV+K9IFf2xC8nTSXX3NzWmL57QulgbyGJRF+0wZ cLyCPayfsZYrSqjE7UcmDb4V+3pHoVcTRXbIP/Knjis5umZsjnmiqgsXza+suUuCDgrn 5mqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775565528; x=1776170328; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:sender:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=kWyQmQjaYxgb6xvhwQgtKERDs3yLS4RVJY5xqfWIRto=; b=eY5KiRGveY3gyrPstqCVth0ecnDr0P0BzGtf42CGpKLkhXsU7yMGxBQCv0T9uoQj6j z4dP24ejzthwXg/tGK6mqMl9BQXLjgaqzupBPdZSRiiCSou1GWQ+DmXHHuZSN5SoWN4e SHGBrj3KNGpiBr3kggp04tPOBYS+zi0Zwk2YKAMr79jAwo43mWtS7iWncCp5hslqcgxV 7VEEQXhcIwrdy6T78WplnWfLHKmalUzB+/MOuP3cOkFnYFAeYf5NxnvzZoRoRR1yeK3q 2bV+nn8jn0e/hcQ3hfDUjNfT+Vyx8uixD6TzhaIjCRmmNnD4i9BzZqFAtjlUB71vV9w1 VV7w== X-Gm-Message-State: AOJu0YyaXHxJR4QGxtfNK9SalbVPbS+l6fqA0DzAlASFZ/J+ones3R2A dh1DrUg54s3b5iUPb6gUVOiAKOXmGU0Sq/60jr5H9pFtuqshwM+jv2OX X-Gm-Gg: AeBDiescwyGjUXw3qUzBjMUGFy6sfWws0BzUulQB6Z6YJdts1f0USJ39m4vfXdERQva OYRuHm0Pi+i3R0+8yaIXHytiY52gdqkOeoA2uUy1sQv/65kLGf2Hz1mV16Wh5eziBWTgKLp/jBx GLHKWv0V/cEvi43TKgzVcJiPMngfVSH67y4jJz+qycYj5Q8minrffnrJzoIG/RGZs/c7AIwYpy3 4onf+v4aBW60TkvEXkQ7k5rSzY25LSHAIOlkmj/HJa6P5rTGPQdba9xVTwn4Ll30OY9dCdVn7hQ OnFC6tMFub7VVScnzMfmnKAotG7+d8BDUoX0Xw9QInMrjEzhvhLyzeeF222/XxX/GeDODz+0Dmy BcNEGXc3vSu/1L1gBpcbLgWpK5UIFnKYJTiPsQBtYcOTgndvR8QACztszrznTxYbaQEAXCnslyQ WlwhfOyql8w609cC8lctjumiqQHGX7I2M637HrylcHj9pRJPbPJRhwu7L1ggYvpvm8bzKh3zi3V aUgZjbkjKIWdAQvI/Q+RZYzX6sqm3M7dGkIV80be1kU+8BlTluyR8okklGteqvTFI9dnjVKNvk9 lPO1JTB1xAMPFugVnwHg X-Received: by 2002:a05:620a:44d6:b0:8d9:5463:132b with SMTP id af79cd13be357-8d954631385mr613676885a.49.1775565528138; Tue, 07 Apr 2026 05:38:48 -0700 (PDT) Received: from localhost.localdomain ([2600:4041:5c46:7000:d80b:4b87:c7c8:bd46]) by smtp.gmail.com with ESMTPSA id af79cd13be357-8d5ce92c4d3sm776869085a.44.2026.04.07.05.38.46 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 07 Apr 2026 05:38:47 -0700 (PDT) Sender: Andrew Stellman From: Andrew Stellman To: Minchan Kim , Sergey Senozhatsky Cc: linux-kernel@vger.kernel.org, Andrew Stellman Subject: [PATCH 4/4] zram: add init_done() guard to algorithm_params_store() Date: Tue, 7 Apr 2026 08:38:36 -0400 Message-ID: <20260407123836.6341-5-astellman@stellman-greene.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20260407123836.6341-1-astellman@stellman-greene.com> References: <20260407123836.6341-1-astellman@stellman-greene.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" algorithm_params_store() allows writing compression parameters after the zram device has been initialized. Peer sysfs store functions (comp_algorithm_store, disksize_store, mem_limit_store) all check init_done(zram) and return -EBUSY when the device is already in use. algorithm_params_store() uniquely lacks this guard, allowing runtime mutation of compression parameters on an active device. Acquire dev_lock and check init_done() immediately before calling comp_params_store(), after argument parsing and priority resolution complete. This keeps the lock scope narrow and matches the pattern in __comp_algorithm_store(). Signed-off-by: Andrew Stellman --- drivers/block/zram/zram_drv.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c index 67dea80..d270964 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c @@ -1772,6 +1772,12 @@ static ssize_t algorithm_params_store(struct device = *dev, if (prio < ZRAM_PRIMARY_COMP || prio >=3D ZRAM_MAX_COMPS) return -EINVAL; =20 + guard(rwsem_write)(&zram->dev_lock); + if (init_done(zram)) { + pr_info("Can't change algorithm params for initialized device\n"); + return -EBUSY; + } + ret =3D comp_params_store(zram, prio, level, dict_path, &deflate_params); return ret ? ret : len; } --=20 2.34.1