Received: by 2002:a25:d7c1:0:0:0:0:0 with SMTP id o184csp2254746ybg; Sun, 27 Oct 2019 14:29:42 -0700 (PDT) X-Google-Smtp-Source: APXvYqx+lkeuu9i3EP1EhbBcpktDzNwOPrnXo1MzvIwHm9bDLu9/BOTffZIj+XOLiMcOjUMEq3cE X-Received: by 2002:a17:906:5e08:: with SMTP id n8mr13731887eju.20.1572211782308; Sun, 27 Oct 2019 14:29:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1572211782; cv=none; d=google.com; s=arc-20160816; b=MNU6HgpJA7Cn4zdyi/paTvWLUGkCT7/OkacdiXjvwtUZgbxyVK5tqdcQCSeJ6481bu xm7q3R69KG3aimH3Cp/0Z9D+2wwZ00sYPQ+YsSvkL5RVXUF1ioSyEueO1dGnqIteGxxE KhxmGRLSgobM3SVzNL6lr6DE906/5nLEflTfifhQh6Yz5/ocGHQfpTNTLkuf1wto93Me 9MEp1zYOowpi+1WvfS8TMdprGnIVyno8QmEhoeJ49og9oOMDCn3h83UsTmy8wzasnYYr 1/t3qoV5eDZ/xD/7XnDwpVIaVfr5bFPuBPwMZlPeWJ0ET76D5A/mlRT6r5tjLgqJC1kP lSPw== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=wvkT40CPiWtlX9gLYY5y91RJMNHuF3IueyfPNGP2fW8=; b=Eb3B+yBzbVxM5uu0rUuUqUMx8UtHwqh/x+Czanmw2tFDQVsUcgD8zLiv5INuqsdMpb pzWU37iJNph4p6SUkiPHxlOpmoQUvfp3vVtoAPKXOGC4Rt7vv0PO9bmIztcyMrfLzN92 uWSJUJ54KXCRoch3AQXK1ONUhWWZFuPshk/BLNjaFMSXdlGj35T8Lnh6mPAoLAQPq02k YFzUYTEAWjPNjL6M9SdSBoZcoXbfZ7t0OGrbCtLJGGNoQxaq1jLZU1kEBImJ61jxbIku u2tQSAwP6wojYH0cqSVy27W+r0a2Vyhia58jWxEDfHTRmNv8n7oU53RBqnfJAwN97LOn iHBw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Ft6tkr6p; 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 n26si5261360ejy.153.2019.10.27.14.29.18; Sun, 27 Oct 2019 14:29:42 -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=@kernel.org header.s=default header.b=Ft6tkr6p; 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 S1732456AbfJ0VYK (ORCPT + 99 others); Sun, 27 Oct 2019 17:24:10 -0400 Received: from mail.kernel.org ([198.145.29.99]:45662 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732428AbfJ0VYI (ORCPT ); Sun, 27 Oct 2019 17:24:08 -0400 Received: from localhost (100.50.158.77.rev.sfr.net [77.158.50.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id C337621783; Sun, 27 Oct 2019 21:24:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1572211448; bh=9bcCU39ZWTggCACE2Egvoc42+x08ORp7iVYCKacHHeo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Ft6tkr6pUyRRbf/UB/dli8IxNHc59S/CNheYJoeNBlvoH/K7ec+cmK6Bscw7pHDyp 5DpKbhbVfY+QfYhqArequ84rtcWNCHkfpL1rdhTnYbKVkbGGTZ8ewD9zxeO8pCQzss LIoOgvp0DjXGLTuG6mMfSTZtR0+z7zsOMtyJOXAU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Chenwandun , Minchan Kim , Sergey Senozhatsky , Jens Axboe , Andrew Morton , Linus Torvalds Subject: [PATCH 5.3 155/197] zram: fix race between backing_dev_show and backing_dev_store Date: Sun, 27 Oct 2019 22:01:13 +0100 Message-Id: <20191027203400.055050644@linuxfoundation.org> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191027203351.684916567@linuxfoundation.org> References: <20191027203351.684916567@linuxfoundation.org> User-Agent: quilt/0.66 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: Chenwandun commit f7daefe4231e57381d92c2e2ad905a899c28e402 upstream. CPU0: CPU1: backing_dev_show backing_dev_store ...... ...... file = zram->backing_dev; down_read(&zram->init_lock); down_read(&zram->init_init_lock) file_path(file, ...); zram->backing_dev = backing_dev; up_read(&zram->init_lock); up_read(&zram->init_lock); gets the value of zram->backing_dev too early in backing_dev_show, which resultin the value being NULL at the beginning, and not NULL later. backtrace: d_path+0xcc/0x174 file_path+0x10/0x18 backing_dev_show+0x40/0xb4 dev_attr_show+0x20/0x54 sysfs_kf_seq_show+0x9c/0x10c kernfs_seq_show+0x28/0x30 seq_read+0x184/0x488 kernfs_fop_read+0x5c/0x1a4 __vfs_read+0x44/0x128 vfs_read+0xa0/0x138 SyS_read+0x54/0xb4 Link: http://lkml.kernel.org/r/1571046839-16814-1-git-send-email-chenwandun@huawei.com Signed-off-by: Chenwandun Acked-by: Minchan Kim Cc: Sergey Senozhatsky Cc: Jens Axboe Cc: [4.14+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Greg Kroah-Hartman --- drivers/block/zram/zram_drv.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c @@ -413,13 +413,14 @@ static void reset_bdev(struct zram *zram static ssize_t backing_dev_show(struct device *dev, struct device_attribute *attr, char *buf) { + struct file *file; struct zram *zram = dev_to_zram(dev); - struct file *file = zram->backing_dev; char *p; ssize_t ret; down_read(&zram->init_lock); - if (!zram->backing_dev) { + file = zram->backing_dev; + if (!file) { memcpy(buf, "none\n", 5); up_read(&zram->init_lock); return 5;