Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp1022112imu; Tue, 11 Dec 2018 11:18:23 -0800 (PST) X-Google-Smtp-Source: AFSGD/X3TE2hZBpZlz4KZ0g3pAFhhAXSjRT61YHt2FARZyBa1g3SaY28UYrIjhPRQwiw7YOrUIeM X-Received: by 2002:a63:e655:: with SMTP id p21mr15456351pgj.70.1544555903703; Tue, 11 Dec 2018 11:18:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544555903; cv=none; d=google.com; s=arc-20160816; b=0IQgsxGTkYM01QK+JGPJLv6O/LJyK1Vy1o6X+PLYGXsdzO2kf0zLrkr2KK3J446D29 ESrXQr37iugWA5SEcPqqfysJmdn/x7togLBu6ojo/fn6gU1hvpqYeqG73ajZx/tOII8W 29wL7zTD+cGBQft5fUOI8LuG3cSWrpamRS6fCODua+FgRFJ6hLZbPbo3k/t1qJh6ZZsN VDftR/ANFGNO7hUZp519gfreqMOd8GxOPFVUCEKxqxnp0QUkdD2PasqO7i18MaCgl7Dx N0OIqUFGtHGrQ5zVUIFlXKk8VsjENtpZcX1tiQo4Ve1eGnLbP/fX0LXgCmmg9vb8n8qv 8x0A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=UQ124e7M0okPx5I+QhLHPxJc1tUUmdIdflct8erdRes=; b=dA9F7Es4uQ+9VpKUUV8oUiHD1V97gIzghQzjCrHSQ3uWPZumDfvQgYKE/EUKfrWoB/ y6PNs8Dsvr5ULPdsbERSKN0DQTBugu+ugwUV8+fTpSTry6NjbwDdSXf1m6Ax/s/tQTHG aFLypGYtKqXGglQapt2Kfhiz6aYcmWXKOQc9aOiqQIhh28/ES4a0Z4ZHeHxAz0hI45hs tVsMFlHEfB0TGPdvjzqLmE6EAJjaUbLJWCHWU8l19Ru7K/jpxOgbUit7XYj0HKOMzajN wd+PJ0KWwVAwGw995EvZRqjpQ1QD+NT2YyPesPkcNvMVkrKInxS8PpBYMG+XHBtR/Bdy L7cw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lightnvm-io.20150623.gappssmtp.com header.s=20150623 header.b=q+Olj5kv; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z129si13479913pfz.13.2018.12.11.11.18.09; Tue, 11 Dec 2018 11:18:23 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@lightnvm-io.20150623.gappssmtp.com header.s=20150623 header.b=q+Olj5kv; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726960AbeLKTRI (ORCPT + 99 others); Tue, 11 Dec 2018 14:17:08 -0500 Received: from mail-lf1-f51.google.com ([209.85.167.51]:46164 "EHLO mail-lf1-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726844AbeLKTRG (ORCPT ); Tue, 11 Dec 2018 14:17:06 -0500 Received: by mail-lf1-f51.google.com with SMTP id f23so11596610lfc.13 for ; Tue, 11 Dec 2018 11:17:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lightnvm-io.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=UQ124e7M0okPx5I+QhLHPxJc1tUUmdIdflct8erdRes=; b=q+Olj5kvTE4ByeL30fchZHkXLJ2PTZE+WB+OrJFgxnSQzEAMQFWo+0TU/ZC99Z8oWq idd/rlOM0uewK1snwCEn3Uj8+D0l7ZP4/2RlN0ukxIGMP8wDKpl1ktlsUCvNABcFibY7 Kc2ffqeSgFP/WlBAhlmMphkwi/Nnk4aITAOSvvwTN6ozypoILIa54tM43Xbn9UQonN25 K1yLp+MFjS4XPhG5PUaloTsbn6fvOFzXR1X2np5yG0O1UHzvERgCHYoKdQSANXnr2Mmo S1nCEIlm4NippRNTb1MAIE+3+r5gnSDCL42TJj+PNKdd7izC5bIKfFER1Eoi2psWmop1 0kZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=UQ124e7M0okPx5I+QhLHPxJc1tUUmdIdflct8erdRes=; b=axNnJJ4LQn+xMCDbb6SaPh/0MRxakYLaHp9+n3CFeJtO96gB4BJEgX4vuNilxdCnnm XSoYG2XDSn6/S6d8/Hv7vneFI9aXDS8sg+wJ3b3jTde6Slf49tC4NQRGue2hv8qbZ5iz ZII0OcbMph3faqp422tWd/wI5HfNqI+4xI+ZVDYzxv/R7v38auvtyDIa9EmHAElguwlp rxGvhKfcstd5pBRFbji/FDa0U1TrCjipskV6XqurplNIbKth9g8otPvfEYoddGaX8PPt 0/oduNPFU+NIINZLxIp9PejPCRmneEC0Uvttwi7tP6Ewts0Z1qTHIQkkYu6Zmumn6fly kjvQ== X-Gm-Message-State: AA+aEWYpUxQaFTFn2UT9KNjm/TkBiy3xBQyyhK7LdVFIaeMY7zMPrfel Y/dlt6CeSbDH+cbWaR7HOZc03g== X-Received: by 2002:a19:f89:: with SMTP id 9mr9853449lfp.10.1544555824238; Tue, 11 Dec 2018 11:17:04 -0800 (PST) Received: from skyninja.webspeed.dk (95-166-82-66-cable.dk.customer.tdc.net. [95.166.82.66]) by smtp.gmail.com with ESMTPSA id v64sm2764583lfa.48.2018.12.11.11.17.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 11 Dec 2018 11:17:03 -0800 (PST) From: =?UTF-8?q?Matias=20Bj=C3=B8rling?= To: axboe@fb.com Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Hans Holmberg , =?UTF-8?q?Matias=20Bj=C3=B8rling?= Subject: [GIT PULL 04/21] lightnvm: pblk: fix resubmission of overwritten write err lbas Date: Tue, 11 Dec 2018 20:16:10 +0100 Message-Id: <20181211191627.15542-5-mb@lightnvm.io> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181211191627.15542-1-mb@lightnvm.io> References: <20181211191627.15542-1-mb@lightnvm.io> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Hans Holmberg Make sure we only look up valid lba addresses on the resubmission path. If an lba is invalidated in the write buffer, that sector will be submitted to disk (as it is already mapped to a ppa), and that write might fail, resulting in a crash when trying to look up the lba in the mapping table (as the lba is marked as invalid). Signed-off-by: Hans Holmberg Reviewed-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-write.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/lightnvm/pblk-write.c b/drivers/lightnvm/pblk-write.c index fa8726493b39..3ddd16f47106 100644 --- a/drivers/lightnvm/pblk-write.c +++ b/drivers/lightnvm/pblk-write.c @@ -148,9 +148,11 @@ static void pblk_prepare_resubmit(struct pblk *pblk, unsigned int sentry, w_ctx = &entry->w_ctx; /* Check if the lba has been overwritten */ - ppa_l2p = pblk_trans_map_get(pblk, w_ctx->lba); - if (!pblk_ppa_comp(ppa_l2p, entry->cacheline)) - w_ctx->lba = ADDR_EMPTY; + if (w_ctx->lba != ADDR_EMPTY) { + ppa_l2p = pblk_trans_map_get(pblk, w_ctx->lba); + if (!pblk_ppa_comp(ppa_l2p, entry->cacheline)) + w_ctx->lba = ADDR_EMPTY; + } /* Mark up the entry as submittable again */ flags = READ_ONCE(w_ctx->flags); -- 2.17.1