Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp2125009imm; Mon, 28 May 2018 02:03:51 -0700 (PDT) X-Google-Smtp-Source: AB8JxZoAONgBj3Fq4nOmWnR3WADUopKBKdzKSlcxbcM7FSrDNzWlLRqHEeY36C8+HD0FSc7wFPGu X-Received: by 2002:a17:902:9689:: with SMTP id n9-v6mr12499598plp.363.1527498231804; Mon, 28 May 2018 02:03:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527498231; cv=none; d=google.com; s=arc-20160816; b=pV0Jj/4prby+awPVlWNbcME49DluBRwi9ZZrxwLus27RhOXKYUSwkdg8CfhJT8PBXS 00YpQy7wAuA0oiHKwUHO9SV7VrJiWYDohD3VUw4UYpGQU7VG8NRnjbxEFufcAhIpHUpX z/8Q9EeOBrQvu5a58SMpzX/R73Ow2DUa2jgfjs0yGv14T2fWtZNDj+EK2KnjDLr7U7sq PCas2mlctS9xPh/Qk/Y+tffu/ri9N0RvrriBUJNtN4UmV9QQN8c6FziQYMw/barYcElN wYld0XUUApp1873AquL0w8lCR0CcqSQNj6AzSJn714GlSw7oRIdiUXu99y2rQSdIS/cI ubDQ== 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:arc-authentication-results; bh=F8a11Omr1nmBsfBGo6FYNv9+oOqlGVF5zUl43Fl6Jkk=; b=EyobCmjpyavnVTW2x7NPHO2cCzWMDtZN1MYXXYsRqAPQV7NqS8Hl+lNUR/TDgX/LSm 3Eqp9Q6by4XQDvEfcpLT9n70lV4Ccb7SclQennsGsHgBv7kbhhUl8u3zFimZDohXoK0A dGiRVkw4/7BQ3ctiwF3Sm3BgoAPEQDyjNEJUyCoLnbp38Pt614F/MM4bNzDq7HfJycDE PDJnWqFZl1cln6PgICfNaF+P5p31ds2Gr3H5KJ4WyQXATz5syiIpNxXujadqa3N+zZy3 2rWiC1xFMtWE5clYjVsrzaz9wZFDRH27v1xAege3FcQxug3QhH3U1n+azmqy7N5zL2zX 1sBQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lightnvm-io.20150623.gappssmtp.com header.s=20150623 header.b=T7WINWus; 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 a13-v6si30531991pfd.338.2018.05.28.02.03.36; Mon, 28 May 2018 02:03:51 -0700 (PDT) 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=T7WINWus; 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 S1754406AbeE1JDK (ORCPT + 99 others); Mon, 28 May 2018 05:03:10 -0400 Received: from mail-wm0-f66.google.com ([74.125.82.66]:40078 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754144AbeE1I7K (ORCPT ); Mon, 28 May 2018 04:59:10 -0400 Received: by mail-wm0-f66.google.com with SMTP id x2-v6so22678972wmh.5 for ; Mon, 28 May 2018 01:59:09 -0700 (PDT) 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=F8a11Omr1nmBsfBGo6FYNv9+oOqlGVF5zUl43Fl6Jkk=; b=T7WINWusGiSQaR6gBn60Mq2ruW8TLjcsWTFjN2d8ZrsERw5P+8YxFMogH0yerfTYbZ WQIWU3RwMmvmbO3nSlQYyh2Dk32+gOaBgkddhu/XvPiMwom2agu8Tzbg9Yc6WsZnfgfW 7diaB5DHs0e1+wxMfvaigwFcxSVzgzlp8nF6zd8BzTqi4YpC/SOVgqEn7rxJrzIGvBhU ObJZO3hRnSW02ms7TmRUPXDqAKvDKXHbNYZKzwajgGvclN5J7WfWMjlS/ibNSpwSjNQv RZJxObdR8SfYzE1uV3G6rJeGfQ0NO71HCZ74Ja7NlKPqSahyHB9rQDhwdLj9Oz9UbxjV n5WQ== 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=F8a11Omr1nmBsfBGo6FYNv9+oOqlGVF5zUl43Fl6Jkk=; b=VvpZOUON7VpU+Wv7OmnEa3HJUf1dHFRU1lo3h2KckQnmeGvTIZwp+zhOekmDKcgYPQ 2OR7ZZJu3HW9RoXL7pPMMBQLGQtNt2RH8s7PyfrMTcKdatjl/DOyzFDWQ/7dB+mOWXw1 PGbp/rj/AlPObV+ejKEDzj/iqkImsR+PBoE/s8H8Ls1o9SdukPQ+ofXDLEVw6fQhiLqt unHNXAPGf6wKaPP1VO8iYokgQPTE8bFqFlwtmccM1Nra81s6aWqMJ/UgOITyHZ65W1UQ ol3Xtw9L5shXVGRKOa1qWorUse912pjJWiyA7UyxDCnUoYSPvw7AezihePNvrYE7lwcT p0vQ== X-Gm-Message-State: ALKqPwfBiuhOygIqBvYl3Zy89/OhA1Y/3WwRtKLwS768Bl4GPJcMhQVe /MFB74+NvR/JJG+3+yfuh8C11A== X-Received: by 2002:a2e:89d7:: with SMTP id c23-v6mr7923595ljk.22.1527497949000; Mon, 28 May 2018 01:59:09 -0700 (PDT) Received: from Macroninja.cnexlabs.com (95-166-82-66-cable.dk.customer.tdc.net. [95.166.82.66]) by smtp.gmail.com with ESMTPSA id u2-v6sm5777848lji.4.2018.05.28.01.59.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 28 May 2018 01:59:08 -0700 (PDT) From: =?UTF-8?q?Matias=20Bj=C3=B8rling?= To: axboe@fb.com Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Igor Konopko , Marcin Dziegielewski , =?UTF-8?q?Matias=20Bj=C3=B8rling?= Subject: [GIT PULL 15/20] lightnvm: proper error handling for pblk_bio_add_pages Date: Mon, 28 May 2018 10:58:36 +0200 Message-Id: <20180528085841.26684-16-mb@lightnvm.io> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180528085841.26684-1-mb@lightnvm.io> References: <20180528085841.26684-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: Igor Konopko Currently in case of error caused by bio_pc_add_page in pblk_bio_add_pages two issues occur when calling from pblk_rb_read_to_bio(). First one is in pblk_bio_free_pages, since we are trying to free pages not allocated from our mempool. Second one is the warn from dma_pool_free, that we are trying to free NULL pointer dma. This commit fix both issues. Signed-off-by: Igor Konopko Signed-off-by: Marcin Dziegielewski Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/lightnvm/pblk-core.c b/drivers/lightnvm/pblk-core.c index e43093e27084..a20b41c355c5 100644 --- a/drivers/lightnvm/pblk-core.c +++ b/drivers/lightnvm/pblk-core.c @@ -278,7 +278,9 @@ void pblk_free_rqd(struct pblk *pblk, struct nvm_rq *rqd, int type) return; } - nvm_dev_dma_free(dev->parent, rqd->meta_list, rqd->dma_meta_list); + if (rqd->meta_list) + nvm_dev_dma_free(dev->parent, rqd->meta_list, + rqd->dma_meta_list); mempool_free(rqd, pool); } @@ -316,7 +318,7 @@ int pblk_bio_add_pages(struct pblk *pblk, struct bio *bio, gfp_t flags, return 0; err: - pblk_bio_free_pages(pblk, bio, 0, i - 1); + pblk_bio_free_pages(pblk, bio, (bio->bi_vcnt - i), i); return -1; } -- 2.11.0