Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934245AbcCIWO5 (ORCPT ); Wed, 9 Mar 2016 17:14:57 -0500 Received: from mx1.redhat.com ([209.132.183.28]:59808 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934343AbcCIWOo (ORCPT ); Wed, 9 Mar 2016 17:14:44 -0500 From: Jessica Yu To: Josh Poimboeuf , Seth Jennings , Jiri Kosina , Vojtech Pavlik , Miroslav Benes , Petr Mladek , Rusty Russell Cc: Steven Rostedt , live-patching@vger.kernel.org, linux-kernel@vger.kernel.org, Jessica Yu Subject: [PATCH 2/3] modules: set mod->state to GOING before going notifiers are called Date: Wed, 9 Mar 2016 17:13:56 -0500 Message-Id: <1457561637-24770-3-git-send-email-jeyu@redhat.com> In-Reply-To: <1457561637-24770-1-git-send-email-jeyu@redhat.com> References: <1457561637-24770-1-git-send-email-jeyu@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 920 Lines: 27 In load_module(), the going notifiers are called during error handling when an error occurs after the coming notifiers have already been called. However, a module's state is still MODULE_STATE_COMING when the going notifiers are called in the error path. To be consistent, also set mod->state to MODULE_STATE_GOING before calling the going notifiers. Signed-off-by: Jessica Yu --- kernel/module.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/module.c b/kernel/module.c index 1981ae0..9e80576 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -3494,6 +3494,9 @@ static int load_module(struct load_info *info, const char __user *uargs, return do_init_module(mod); coming_cleanup: + mutex_lock(&module_mutex); + mod->state = MODULE_STATE_GOING; + mutex_unlock(&module_mutex); blocking_notifier_call_chain(&module_notify_list, MODULE_STATE_GOING, mod); -- 2.4.3