On Thu, 2015-04-02 at 13:43 +0100, David Howells wrote: > Ian Kent <ra...@themaw.net> wrote: > > > +static struct umh_wq_entry *umh_wq_find_entry(int token) > > +{ > > + struct umh_wq_entry *this, *entry; > > + struct hlist_head *bucket; > > + unsigned int hash; > > + > > + hash = hash_32((unsigned long) token, UMH_WQ_HASH_SHIFT); > > + bucket = &umh_wq_hash[hash]; > > + > > + entry = ERR_PTR(-ENOENT); > > + if (hlist_empty(bucket)) > > + goto out; > > + > > + hlist_for_each_entry(this, bucket, umh_wq_hlist) { > > + if (this->token == token) { > > + entry = this; > > + break; > > + } > > + } > > +out: > > + return entry; > > +} > > Can "struct umh_wq_entry *" be used as the token?
Probably not, for example. Couldn't a user set a different workqueue_struct and have it used for execution. Not sure what that would get the user but it sounds like the original reason we couldn't allow execution directly within the caller environment. > > David -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/