On Sat, 28 Sep 2019 14:47:02 -0700 Matthew Wilcox <wi...@infradead.org> wrote:

> On Sat, Sep 28, 2019 at 02:23:56PM -0700, Andrew Morton wrote:
> > How about doing it this way?  Only copy the int to the enum once we
> > know it's within range?
> 
> This will return a positive integer on success instead of 0.  We need:
> 
>       mutex_unlock(&vmpr->events_lock);
> +     ret = 0;
>  out:
> 
> with that,
> 
> Reviewed-by: Matthew Wilcox (Oracle) <wi...@infradead.org>
> 
> How about further adding ...
> 
> + * Return: 0 on success, -ENOMEM on memory failure or -EINVAL if @args could
> + * not be parsed.

Cool.

--- 
a/mm/vmpressure.c~mm-vmpressure-fix-a-signedness-bug-in-vmpressure_register_event-fix-fix
+++ a/mm/vmpressure.c
@@ -355,6 +355,9 @@ void vmpressure_prio(gfp_t gfp, struct m
  * "hierarchy" or "local").
  *
  * To be used as memcg event method.
+ *
+ * Return: 0 on success, -ENOMEM on memory failure or -EINVAL if @args could
+ * not be parsed.
  */
 int vmpressure_register_event(struct mem_cgroup *memcg,
                              struct eventfd_ctx *eventfd, const char *args)
@@ -402,6 +405,7 @@ int vmpressure_register_event(struct mem
        mutex_lock(&vmpr->events_lock);
        list_add(&ev->node, &vmpr->events);
        mutex_unlock(&vmpr->events_lock);
+       ret = 0;
 out:
        kfree(spec_orig);
        return ret;
_

Reply via email to