2017-07-26 22:27:37

by AbdAllah-MEZITI

[permalink] [raw]
Subject: [PATCH] thread_info: suppress sparse warning in check_copy_size()

This patch fixes the following sparse warning in thread_info.h:
./include/linux/thread_info.h:129:18: warning: incorrect type in argument 1 (different modifiers)
./include/linux/thread_info.h:129:18: expected void *<noident>
./include/linux/thread_info.h:129:18: got void const *addr

Signed-off-by: AbdAllah MEZITI <[email protected]>
---
include/linux/thread_info.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h
index 250a276..e2c4a8e 100644
--- a/include/linux/thread_info.h
+++ b/include/linux/thread_info.h
@@ -126,7 +126,7 @@ static inline void copy_overflow(int size, unsigned long count)
static __always_inline bool
check_copy_size(const void *addr, size_t bytes, bool is_source)
{
- int sz = __compiletime_object_size(addr);
+ int sz = __compiletime_object_size((void *)addr);
if (unlikely(sz >= 0 && sz < bytes)) {
if (!__builtin_constant_p(bytes))
copy_overflow(sz, bytes);
--
2.7.4


2017-07-26 22:41:46

by Linus Torvalds

[permalink] [raw]
Subject: Re: [PATCH] thread_info: suppress sparse warning in check_copy_size()

This is wrong. The sparse version of __compiletime_object_size()
should just be fixed to take a 'const' pointer without complaints.

Linus

2017-07-28 09:16:54

by Luc Van Oostenryck

[permalink] [raw]
Subject: Re: [PATCH] thread_info: suppress sparse warning in check_copy_size()

On Thu, Jul 27, 2017 at 12:41 AM, Linus Torvalds
<[email protected]> wrote:
> This is wrong. The sparse version of __compiletime_object_size()
> should just be fixed to take a 'const' pointer without complaints.

The underlying __builtin_object_size() has been fixed in the sparse tree
6 months ago or so.

-- Luc