Re: [PATCH 1/3] resource: Fix locking in find_next_iomem_res()

From: Andrew Morton
Date: Tue Jun 18 2019 - 00:31:07 EST

On Wed, 12 Jun 2019 21:59:01 -0700 Nadav Amit <namit@xxxxxxxxxx> wrote:

> Since resources can be removed, locking should ensure that the resource
> is not removed while accessing it. However, find_next_iomem_res() does
> not hold the lock while copying the data of the resource.

Looks right to me.

> Keep holding the lock while the data is copied. While at it, change the
> return value to a more informative value. It is disregarded by the
> callers.

The kerneldoc needs a resync:

--- a/kernel/resource.c~resource-fix-locking-in-find_next_iomem_res-fix
+++ a/kernel/resource.c
@@ -326,7 +326,7 @@ EXPORT_SYMBOL(release_resource);
* If a resource is found, returns 0 and @*res is overwritten with the part
* of the resource that's within [@start..@end]; if none is found, returns
- * -1 or -EINVAL for other invalid parameters.
+ * -ENODEV. Returns -EINVAL for invalid parameters.
* This function walks the whole tree and not just first level children
* unless @first_lvl is true.