Patch "iov_iter, x86: Be consistent about the __user tag on copy_mc_to_user()" has been added to the 5.15-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    iov_iter, x86: Be consistent about the __user tag on copy_mc_to_user()

to the 5.15-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     iov_iter-x86-be-consistent-about-the-__user-tag-on-c.patch
and it can be found in the queue-5.15 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit e92523621671328b093c0835e5693a6f920c3f77
Author: David Howells <dhowells@xxxxxxxxxx>
Date:   Mon Sep 25 13:02:59 2023 +0100

    iov_iter, x86: Be consistent about the __user tag on copy_mc_to_user()
    
    [ Upstream commit 066baf92bed934c9fb4bcee97a193f47aa63431c ]
    
    copy_mc_to_user() has the destination marked __user on powerpc, but not on
    x86; the latter results in a sparse warning in lib/iov_iter.c.
    
    Fix this by applying the tag on x86 too.
    
    Fixes: ec6347bb4339 ("x86, powerpc: Rename memcpy_mcsafe() to copy_mc_to_{user, kernel}()")
    Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/20230925120309.1731676-3-dhowells@xxxxxxxxxx
    cc: Dan Williams <dan.j.williams@xxxxxxxxx>
    cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
    cc: Ingo Molnar <mingo@xxxxxxxxxx>
    cc: Borislav Petkov <bp@xxxxxxxxx>
    cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
    cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
    cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx>
    cc: Jens Axboe <axboe@xxxxxxxxx>
    cc: Christoph Hellwig <hch@xxxxxx>
    cc: Christian Brauner <christian@xxxxxxxxxx>
    cc: Matthew Wilcox <willy@xxxxxxxxxxxxx>
    cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
    cc: David Laight <David.Laight@xxxxxxxxxx>
    cc: x86@xxxxxxxxxx
    cc: linux-block@xxxxxxxxxxxxxxx
    cc: linux-fsdevel@xxxxxxxxxxxxxxx
    cc: linux-mm@xxxxxxxxx
    Signed-off-by: Christian Brauner <brauner@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
index ab5e577373093..3616fd4ba3953 100644
--- a/arch/x86/include/asm/uaccess.h
+++ b/arch/x86/include/asm/uaccess.h
@@ -543,7 +543,7 @@ copy_mc_to_kernel(void *to, const void *from, unsigned len);
 #define copy_mc_to_kernel copy_mc_to_kernel
 
 unsigned long __must_check
-copy_mc_to_user(void *to, const void *from, unsigned len);
+copy_mc_to_user(void __user *to, const void *from, unsigned len);
 #endif
 
 /*
diff --git a/arch/x86/lib/copy_mc.c b/arch/x86/lib/copy_mc.c
index 80efd45a77617..6e8b7e600def5 100644
--- a/arch/x86/lib/copy_mc.c
+++ b/arch/x86/lib/copy_mc.c
@@ -70,23 +70,23 @@ unsigned long __must_check copy_mc_to_kernel(void *dst, const void *src, unsigne
 }
 EXPORT_SYMBOL_GPL(copy_mc_to_kernel);
 
-unsigned long __must_check copy_mc_to_user(void *dst, const void *src, unsigned len)
+unsigned long __must_check copy_mc_to_user(void __user *dst, const void *src, unsigned len)
 {
 	unsigned long ret;
 
 	if (copy_mc_fragile_enabled) {
 		__uaccess_begin();
-		ret = copy_mc_fragile(dst, src, len);
+		ret = copy_mc_fragile((__force void *)dst, src, len);
 		__uaccess_end();
 		return ret;
 	}
 
 	if (static_cpu_has(X86_FEATURE_ERMS)) {
 		__uaccess_begin();
-		ret = copy_mc_enhanced_fast_string(dst, src, len);
+		ret = copy_mc_enhanced_fast_string((__force void *)dst, src, len);
 		__uaccess_end();
 		return ret;
 	}
 
-	return copy_user_generic(dst, src, len);
+	return copy_user_generic((__force void *)dst, src, len);
 }



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux