Messages in this thread | | | Subject | Re: [PATCH 3/7] seccomp_filter: Enable ftrace-based system call filtering | From | Steven Rostedt <> | Date | Thu, 28 Apr 2011 15:06:56 -0400 |
| |
On Thu, 2011-04-28 at 13:34 -0500, Will Drewry wrote:
> > Perhaps, but those free standing functions (the ones that are exported > > to modules) seem like they can destroy state. > > My intent was to make them available for use by seccomp.c during state > teardown/dup. I don't think there's benefit to exposing them outside > of that. Would dropping the export, and adding an local seccomp.h > with the shared functions in them resolve that more cleanly?
Yes, having a local seccomp.h in the same directory as seccomp.c is a way of saying "these are internal functions, don't use them directly". Adding a function to EXPORT_SYMBOL*() is saying "here you go, have a field day with it!".
> > > Your code would have been correct if you could call kzalloc under > > rcu_read_lock() (which you can on some kernel configurations but not > > all). The issue is that you need to pull out that allocation from the > > rcu_read_lock() because rcu_read_lock assumes you can't preempt, and > > that allocation can schedule out. The access to the filters must be done > > under rcu_read_lock(), other than that, you're fine. > > That makes sense. I think I'd prefer to not share those functions > rather than guard the list just in case a future consumer of the > interface comes along. Would that make sense to you? Since I don't > see any other users right now other than seccomp.c, it might make > sense to tackle the impact when an actual need arises. > > I'll go whichever way pointed on this, though. > thanks again,
I'm fine either way. If you make them local internal functions, then you don't need the locking if they are safe in their current context.
-- Steve
| |