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/

Reply via email to