Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp4307570ybc; Fri, 15 Nov 2019 02:30:34 -0800 (PST) X-Google-Smtp-Source: APXvYqzS0i4jygmpRoRejQocss7rzTj2bCWA3ZR9G4RjngG7p53k/zJhX67wv3lJpn7GB5oFXiJu X-Received: by 2002:a17:906:80d5:: with SMTP id a21mr12843838ejx.114.1573813834512; Fri, 15 Nov 2019 02:30:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1573813834; cv=none; d=google.com; s=arc-20160816; b=dFngK4zQG02lHU78+MxLZFAz+8bBqT0sCEwFoN3H5D4b/ZAUN+FIxhErmVS2BgxZJL rN4+aGPnbk+H6VYzY7YA5dKf5F8s5Ed3SSIJlXJknUwT+gmGLyBBHwSCJkgo/fOrg4rt Jx2DJRmCg0Futbz5SfjYL8uM2y/6zTNn1Zqi4YXkfLWtxAg7Hsv7FziFN/VDEQlh8DjR yt7UU9T2nWF/GqDyk5Z7u1n4m9ybkMzlSnPxjCQjFzv2mptXR25v51qNAqjFzwmixl8Z AkKclIH2TWnpXD+DgixpskhDvw8ZCQzAoHtpZP8kkOt+YErSJQ1QTCm91IsMIBCe8fsr 4H+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=SwxKreuSgcyylSQNLLrs4Hiwv/DcdjFMYfGkC3kUVms=; b=DLA1JH+8W69YE8iALXRVcKP0Qv7v7vPJ3cmeUDvVkh5ocP9loGPeQpjvnVVa2Bk9pf GuZCimiFjjkB9Y8BonpezgATobu4rfrH+oVBxN5ey7L5pnLBOUBWf6fl0a4mPxIUpIr4 dJtRsATv2u6ZLcJ3IQMY0Pz7Y46nLmI7dncsxmM9sy5GVdHIZErvqSYwspQS3t4LtMJh dmsVo4fTRA0tsQ1x1Z5fQI0Kli57EcsFE8a+Fb9yPdq8szfpSkc3gj1PGo5wiTBUP2ln xdKHh9TfwamZYTiJTXPNIHNy1nl1pZ0eEm6YZ4Tw/LyMMYBISPdF8wTtYjysnsUzqDNc FFZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="Q0JWgTV/"; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l47si6619750edb.111.2019.11.15.02.30.08; Fri, 15 Nov 2019 02:30:34 -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=@kernel.org header.s=default header.b="Q0JWgTV/"; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727437AbfKOK2k (ORCPT + 99 others); Fri, 15 Nov 2019 05:28:40 -0500 Received: from mail.kernel.org ([198.145.29.99]:50016 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727122AbfKOK2j (ORCPT ); Fri, 15 Nov 2019 05:28:39 -0500 Received: from linux-8ccs (x2f7fc5a.dyn.telefonica.de [2.247.252.90]) (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 D9A522077B; Fri, 15 Nov 2019 10:28:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1573813719; bh=p09PBLNMgnAEXY+60gOXHO/rGEsig0DEVJFu6o6RFtE=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Q0JWgTV/nsJzEluka3dQIVylZcH9wTidr41I6f4sbkfXKcDQAdWXETgcIBErT35xT X0ylLxwM4V10Leln4RGo6+ytLreMZ4i4HgpMyKbsOWyd7eA/bn6UsNTsVvr0hl+hau 5EzQDo99gPtN1CWNgMro3OFRi4CqM0we9VXV1TrU= Date: Fri, 15 Nov 2019 11:28:33 +0100 From: Jessica Yu To: Konstantin Khorenko Cc: Prarit Bhargava , Barret Rhoden , Andrey Ryabinin , linux-kernel@vger.kernel.org, David Arcari , Heiko Carstens Subject: Re: [PATCH 1/1] kernel/module.c: wakeup processes in module_wq on module unload Message-ID: <20191115102832.GA1647@linux-8ccs> References: <20191113092950.15556-1-khorenko@virtuozzo.com> <20191113092950.15556-2-khorenko@virtuozzo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: <20191113092950.15556-2-khorenko@virtuozzo.com> X-OS: Linux linux-8ccs 4.12.14-lp150.12.61-default x86_64 User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org +++ Konstantin Khorenko [13/11/19 12:29 +0300]: >Fix the race between load and unload a kernel module. > >sys_delete_module() > try_stop_module() > mod->state = _GOING > add_unformed_module() > old = find_module_all() > (old->state == _GOING => > wait_event_interruptible()) > > During pre-condition > finished_loading() rets 0 > schedule() > (never gets waken up later) > free_module() > mod->state = _UNFORMED > list_del_rcu(&mod->list) > (dels mod from "modules" list) > >return > >The race above leads to modprobe hanging forever on loading >a module. > >Error paths on loading module call wake_up_all(&module_wq) after >freeing module, so let's do the same on straight module unload. > >Fixes: 6e6de3dee51a ("kernel/module.c: Only return -EEXIST >for modules that have finished loading") > >Signed-off-by: Konstantin Khorenko Thanks Konstantin for catching this. I've applied this to modules-next. Jessica