]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
zsmalloc: zs_object_copy: add clarifying comment
authorAlexey Romanov <avromanov@sberdevices.ru>
Thu, 11 Aug 2022 15:37:54 +0000 (18:37 +0300)
committerAndrew Morton <akpm@linux-foundation.org>
Wed, 17 Aug 2022 20:58:31 +0000 (13:58 -0700)
Patch series "tidy up zsmalloc implementation"

This patchset remove some unnecessary checks and adds a clarifying
comment.  While analysing zs_object_copy() function code, I spent some
time to understand what the call kunmap_atomic(d_addr) is for.  It seems
that this point is not trivial and it is worth adding a comment.

This patch (of 2):

It's not obvious why kunmap_atomic(d_addr) call is needed.

Link: https://lkml.kernel.org/r/20220811153755.16102-1-avromanov@sberdevices.ru
Link: https://lkml.kernel.org/r/20220811153755.16102-2-avromanov@sberdevices.ru
Signed-off-by: Alexey Romanov <avromanov@sberdevices.ru>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Sergey Senozhatsky <senozhatsky@chromium.org>
Cc: Nitin Gupta <ngupta@vflare.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/zsmalloc.c

index 907c9b1e1e6147d7c16441a3a0ee0ac9c9decd24..7cbfdaa315c0070e0fc859b1b71ead79a995e5f2 100644 (file)
@@ -1555,6 +1555,12 @@ static void zs_object_copy(struct size_class *class, unsigned long dst,
                d_off += size;
                d_size -= size;
 
+               /* Calling kunmap_atomic(d_addr) is necessary. kunmap_atomic() calls
+                * must occurs in reverse order of calls to kmap_atomic().
+                * So, to call kunmap_atomic(s_addr) we should first call kunmap_atomic(d_addr).
+                * For more details see:
+                * https://lore.kernel.org/linux-mm/5512421D.4000603@samsung.com/
+                */
                if (s_off >= PAGE_SIZE) {
                        kunmap_atomic(d_addr);
                        kunmap_atomic(s_addr);