Re: [RFC PATCH 5 1/7] kmod - add workqueue service thread store

From: Ian Kent
Date: Mon Apr 06 2015 - 20:48:27 EST


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