On Thu, 2015-04-02 at 13:43 +0100, David Howells wrote: > Ian Kent <[email protected]> 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 [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

