summaryrefslogtreecommitdiff
path: root/include/linux/string.h
diff options
context:
space:
mode:
authorJani Nikula <jani.nikula@intel.com>2019-11-15 14:17:39 +0300
committerJani Nikula <jani.nikula@intel.com>2019-11-15 14:17:39 +0300
commite205ceeb253723f4e4bdce619844ed678ae48276 (patch)
treeb6f5e3b21f915320a86733504faf8206569b8057 /include/linux/string.h
parent1cdc2330e8d396c9cbebfc75fba4c94d34f80782 (diff)
parent17cc51390c141662748dbbc2fe98f3ed10f2e13e (diff)
downloadlinux-e205ceeb253723f4e4bdce619844ed678ae48276.tar.xz
Merge drm/drm-next into drm-intel-next-queued
Backmerge to get dfce90259d74 ("Backmerge i915 security patches from commit 'ea0b163b13ff' into drm-next") and thus 100d46bd72ec ("Merge Intel Gen8/Gen9 graphics fixes from Jon Bloomfield."). Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Diffstat (limited to 'include/linux/string.h')
-rw-r--r--include/linux/string.h21
1 files changed, 20 insertions, 1 deletions
diff --git a/include/linux/string.h b/include/linux/string.h
index b2f9df7f0761..b6ccdc2c7f02 100644
--- a/include/linux/string.h
+++ b/include/linux/string.h
@@ -227,7 +227,26 @@ static inline bool strstarts(const char *str, const char *prefix)
}
size_t memweight(const void *ptr, size_t bytes);
-void memzero_explicit(void *s, size_t count);
+
+/**
+ * memzero_explicit - Fill a region of memory (e.g. sensitive
+ * keying data) with 0s.
+ * @s: Pointer to the start of the area.
+ * @count: The size of the area.
+ *
+ * Note: usually using memset() is just fine (!), but in cases
+ * where clearing out _local_ data at the end of a scope is
+ * necessary, memzero_explicit() should be used instead in
+ * order to prevent the compiler from optimising away zeroing.
+ *
+ * memzero_explicit() doesn't need an arch-specific version as
+ * it just invokes the one of memset() implicitly.
+ */
+static inline void memzero_explicit(void *s, size_t count)
+{
+ memset(s, 0, count);
+ barrier_data(s);
+}
/**
* kbasename - return the last part of a pathname.