Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S268896AbUIMTak (ORCPT ); Mon, 13 Sep 2004 15:30:40 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S268892AbUIMTak (ORCPT ); Mon, 13 Sep 2004 15:30:40 -0400 Received: from fw.osdl.org ([65.172.181.6]:40128 "EHLO mail.osdl.org") by vger.kernel.org with ESMTP id S268899AbUIMTaY (ORCPT ); Mon, 13 Sep 2004 15:30:24 -0400 Date: Mon, 13 Sep 2004 12:30:13 -0700 (PDT) From: Linus Torvalds To: Andries Brouwer cc: Andrew Morton , Kernel Mailing List , Ingo Molnar , Nick Piggin Subject: Re: [no patch] broken use of mm_release / deactivate_mm In-Reply-To: <20040913190633.GA22639@apps.cwi.nl> Message-ID: References: <20040913190633.GA22639@apps.cwi.nl> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1120 Lines: 35 On Mon, 13 Sep 2004, Andries Brouwer wrote: > > What happens at a fork, is that a long sequence of things is done, > and if a failure occurs all previous things are undone. Thus > (in copy_process()): > > if ((retval = copy_mm(clone_flags, p))) > goto bad_fork_cleanup_signal; > if ((retval = copy_namespace(clone_flags, p))) > goto bad_fork_cleanup_mm; > retval = copy_thread(0, clone_flags, stack_start, stack_size, p, regs); > if (retval) > goto bad_fork_cleanup_namespace; > > ... > > bad_fork_cleanup_namespace: > exit_namespace(p); > bad_fork_cleanup_mm: > exit_mm(p); > if (p->active_mm) > mmdrop(p->active_mm); I agree. Looks like the "exit_mm()" should really be a "mmput()". Can we have a few more eyes on this thing? Ingo, Nick? Linus - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/