Messages in this thread | | | Date | Thu, 28 Sep 2006 17:07:23 -0700 | From | Andrew Morton <> | Subject | Re: [PATCH RFC 1/4] Generic BUG handling. |
| |
On Thu, 28 Sep 2006 16:43:55 -0700 Jeremy Fitzhardinge <jeremy@goop.org> wrote:
> Andrew Morton wrote: > > What is the locking for these lists? I don't see much in here. It has > > implications for code which wants to do BUG while holding that lock.. > > > > There's no locking. This is a direct copy of the original powerpc > code. I assume, but haven't checked, that there's a lock to serialize > module loading/unloading, so the insertion/deletion is all properly > synchronized. > > The only other user is traversal when actually handling a bug; if you're > very unlucky this could happen while you're actually loading/unloading > and you would see the list in an inconsistent state. I guess we could > put a lock there, and trylock it on traversal; at least that would stop > a concurrent modload/unload from getting in there while we're trying to > walk the list.
The module_bug_cleanup() code is in a stop_machine_run() callback, so that's all OK.
I _think_ your module_bug_finalize()'s list_add() could race with another CPU's BUG_ON(). We can live with that.
- 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/
| |