Received: by 2002:ac0:a581:0:0:0:0:0 with SMTP id m1-v6csp2968516imm; Sun, 1 Jul 2018 09:21:59 -0700 (PDT) X-Google-Smtp-Source: ADUXVKLkYc6Ckn0j9RyOAo68UQ5i2uePJW+BMvKJzk0DLodWQkQU91oBeToNaLk2+aq/dB25DidS X-Received: by 2002:a65:6688:: with SMTP id b8-v6mr19303788pgw.24.1530462119208; Sun, 01 Jul 2018 09:21:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530462119; cv=none; d=google.com; s=arc-20160816; b=c/0ztCY3N/mdwlEOcczB0GGllWrP209Tj83KCPbo1gpcHUB4tln/IbVmXKEMy1XGjt kIRdt6VbE46MnQ3F2PV0scdpXzcetJDpzX33eBA47SDGcSEdI/IvSENHVVXHIOE1vXPj HQ5dgqbsSqUMlIW5qQ//9qB6bVVgj6kMdhW14+OrHuMGjeANt+6g6dTExPcE1rBSGzQc 2+I9ZTuVOJO7Us5mXqxQ+hzofmLkLr+yK5sUqMfDH0agZGBJQW3deN1TnKkofAChErZY GwXdTMTTE0fm6k5LXLceiCP5TcG/ej81A4PW+BzCD9j9sHvZi4n6D/VSSRRQO4+v0LDz XuyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=b4EAnZD7M5eHKC0YQ604lRtmlXkEcd7ENOb3IdAl7no=; b=ySztKlQiCz6FWWT84sAuEZc57nI/4Q/1LdXfiYRgZ74IN3yr7+p2JSNM1SlFvTa7r3 955mTRcqLZC59Fjp3/XNGgpj+0Tp8xEBvsp0qCnZ7L70dYlsZT7vcWc+A2JH+39dd3bD B4V0Zzibnn0mpJ6GSGK6BwQOUz5F7b4e26R2phk3tsFWQDZ9Gm/3PTWjC+RDgCjTwKx3 hD8LLop7NE34i/UcDRD55Y3pnpwbJrlJkP1L1Yr0bbweaxcQsu32Yp7W2YGbfDccDtDM aNDFl1weq02+vx4F179Ai4KZ+GI5KlVQmdtpeFzfALj14ZPVtbs0f/2aCu1GRXCY3RMo wY9A== ARC-Authentication-Results: i=1; mx.google.com; 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 f5-v6si13699021plr.56.2018.07.01.09.21.45; Sun, 01 Jul 2018 09:21:59 -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; 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 S965130AbeGAQUj (ORCPT + 99 others); Sun, 1 Jul 2018 12:20:39 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:33358 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S964904AbeGAQUS (ORCPT ); Sun, 1 Jul 2018 12:20:18 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 1491F86A; Sun, 1 Jul 2018 16:20:17 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ben Hutchings , Martin Townsend , Richard Weinberger Subject: [PATCH 4.4 073/105] ubi: fastmap: Cancel work upon detach Date: Sun, 1 Jul 2018 18:02:23 +0200 Message-Id: <20180701153154.733540545@linuxfoundation.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180701153149.382300170@linuxfoundation.org> References: <20180701153149.382300170@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.4-stable review patch. If anyone has any objections, please let me know. ------------------ From: Richard Weinberger commit 6e7d80161066c99d12580d1b985cb1408bb58cf1 upstream. Ben Hutchings pointed out that 29b7a6fa1ec0 ("ubi: fastmap: Don't flush fastmap work on detach") does not really fix the problem, it just reduces the risk to hit the race window where fastmap work races against free()'ing ubi->volumes[]. The correct approach is making sure that no more fastmap work is in progress before we free ubi data structures. So we cancel fastmap work right after the ubi background thread is stopped. By setting ubi->thread_enabled to zero we make sure that no further work tries to wake the thread. Fixes: 29b7a6fa1ec0 ("ubi: fastmap: Don't flush fastmap work on detach") Fixes: 74cdaf24004a ("UBI: Fastmap: Fix memory leaks while closing the WL sub-system") Cc: stable@vger.kernel.org Cc: Ben Hutchings Cc: Martin Townsend Signed-off-by: Richard Weinberger Signed-off-by: Greg Kroah-Hartman --- drivers/mtd/ubi/build.c | 3 +++ drivers/mtd/ubi/wl.c | 4 +--- 2 files changed, 4 insertions(+), 3 deletions(-) --- a/drivers/mtd/ubi/build.c +++ b/drivers/mtd/ubi/build.c @@ -1132,6 +1132,9 @@ int ubi_detach_mtd_dev(int ubi_num, int */ get_device(&ubi->dev); +#ifdef CONFIG_MTD_UBI_FASTMAP + cancel_work_sync(&ubi->fm_work); +#endif ubi_debugfs_exit_dev(ubi); uif_close(ubi); --- a/drivers/mtd/ubi/wl.c +++ b/drivers/mtd/ubi/wl.c @@ -1479,6 +1479,7 @@ int ubi_thread(void *u) } dbg_wl("background thread \"%s\" is killed", ubi->bgt_name); + ubi->thread_enabled = 0; return 0; } @@ -1488,9 +1489,6 @@ int ubi_thread(void *u) */ static void shutdown_work(struct ubi_device *ubi) { -#ifdef CONFIG_MTD_UBI_FASTMAP - flush_work(&ubi->fm_work); -#endif while (!list_empty(&ubi->works)) { struct ubi_work *wrk;