Thread (23 messages) 23 messages, 6 authors, 6h ago

Re: [PATCH v2] random: vDSO: Avoid call to memset() when zeroing reserved in __cvdso_getrandom_data()

From: David Laight <hidden>
Date: 2026-09-27 07:02:52
Also in: linux-arm-kernel, linux-riscv, linux-s390, lkml, llvm, loongarch

On Sat, 26 Sep 2026 14:32:49 +0200
"Jason A. Donenfeld" [off-list ref] wrote:
On Sat, Sep 26, 2026 at 01:19:27PM +0100, Nathan Chancellor wrote:
quoted
On Sat, Sep 26, 2026 at 11:39:43AM +0200, Andreas Schwab wrote:  
quoted
On Sep 25 2026, Nathan Chancellor wrote:
  
quoted
+#if __has_builtin(__builtin_memset_inline)
+#define memset_inline(dst, value, size) __builtin_memset_inline(dst, value, size)
+#elif IS_ENABLED(CONFIG_CC_HAS_OPT_INLINE_MEMSET)
+#define memset_inline(dst, value, size) __builtin_memset(dst, value, size)
+#else
+static inline void *memset_inline(void *dst, int value, size_t size)
+{
+	char *d = dst;
+
+	while (size--)
+		*d++ = value;
+
+	return d;
+}
+#endif
+  
memset actually returns the original pointer, not the incremented one.
Nothing uses the return value of memset_inline here, but it is
confusing.  
Whoops, good catch, I guess my fingers gave up on those last two
characters :) I will fix this for v3 once there has been some time for
further review.  
Do we even need to return a value at all? Might as well just make the
function two lines:

+       for (char *d = dst; size--;)
+               *d++ = value;
Wouldn't it be better to add a barrier() or similar in there to
stop the compiler playing unwanted games>

David
(Technically that could even be one, but maybe that sort of golf loses
clarity. Your choice.)
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help