lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 14 Apr 2008 12:57:00 -0700 (PDT) From: Christoph Lameter <clameter@....com> To: Andrea Arcangeli <andrea@...ranet.com> cc: akpm@...ux-foundation.org, Nick Piggin <npiggin@...e.de>, Steve Wise <swise@...ngridcomputing.com>, Peter Zijlstra <a.p.zijlstra@...llo.nl>, linux-mm@...ck.org, Kanoj Sarcar <kanojsarcar@...oo.com>, Roland Dreier <rdreier@...co.com>, Jack Steiner <steiner@....com>, linux-kernel@...r.kernel.org, Avi Kivity <avi@...ranet.com>, kvm-devel@...ts.sourceforge.net, Robin Holt <holt@....com>, general@...ts.openfabrics.org, Hugh Dickins <hugh@...itas.com> Subject: Re: [PATCH 2 of 9] Core of mmu notifiers On Tue, 8 Apr 2008, Andrea Arcangeli wrote: > + /* > + * Called when nobody can register any more notifier in the mm > + * and after the "mn" notifier has been disarmed already. > + */ > + void (*release)(struct mmu_notifier *mn, > + struct mm_struct *mm); Hmmm... The unregister function does not call this. Guess driver calls unregister function and does release like stuff on its own. > + /* > + * invalidate_range_start() and invalidate_range_end() must be > + * paired. Multiple invalidate_range_start/ends may be nested > + * or called concurrently. > + */ How could they be nested or called concurrently? > +/* > + * mm_users can't go down to zero while mmu_notifier_unregister() > + * runs or it can race with ->release. So a mm_users pin must > + * be taken by the caller (if mm can be different from current->mm). > + */ > +int mmu_notifier_unregister(struct mmu_notifier *mn, struct mm_struct *mm) > +{ > + struct mm_lock_data *data; > + > + BUG_ON(!atomic_read(&mm->mm_users)); > + > + data = mm_lock(mm); > + if (unlikely(IS_ERR(data))) > + return PTR_ERR(data); > + hlist_del(&mn->hlist); > + mm_unlock(mm, data); > + return 0; Hmmm.. Ok, the user of the notifier does not get notified that it was unregistered. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists