Messages in this thread | | | Date | Tue, 30 Mar 2010 03:58:49 +1100 | Subject | Re: Is module refcounting racy? | From | Nick Piggin <> |
| |
On Mon, Mar 29, 2010 at 8:12 PM, Rusty Russell <rusty@rustcorp.com.au> wrote: > On Thu, 18 Mar 2010 09:25:34 pm Nick Piggin wrote: >> Hey, >> >> I've been looking at weird and wonderful ways to do scalable refcounting, >> for the vfs... >> >> Sadly, module refcounting doesn't fit my bill. But as far as I could see, >> it is racy. > > Other than for advisory purposes, the refcount is only checked against zero > under stop_machine. For exactly this reason.
There definitely looks to me like there is code that checks the refcount *without* stop_machine. module_refcount is an exported function, and you expect drivers to get this right (scsi_device_put for a trivial example), but it even looks like it is used in a racy way in kernel/module.c code.
Either we need to take my patch, or audit t, and put a WARN_ON if it is called while not under stop_machine. -- 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/
| |