summaryrefslogtreecommitdiff
path: root/include/linux/printk.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2019-01-13 15:17:03 -0500
committerKent Overstreet <kent.overstreet@gmail.com>2019-01-13 15:17:03 -0500
commit1504d4c98a1633f692dfa043f2b2ce2c3b250218 (patch)
tree5d32634bb50e0d19a48c0be88902e9fbe8fbc3ac /include/linux/printk.h
parent5f7dd4b4b25d542712078d769cf69e87bb5e152a (diff)
check for errors from pthread_create()
Diffstat (limited to 'include/linux/printk.h')
-rw-r--r--include/linux/printk.h24
1 files changed, 14 insertions, 10 deletions
diff --git a/include/linux/printk.h b/include/linux/printk.h
index 4e29af49..8f8dd6b9 100644
--- a/include/linux/printk.h
+++ b/include/linux/printk.h
@@ -21,23 +21,27 @@
static inline int vscnprintf(char *buf, size_t size, const char *fmt, va_list args)
{
- int i = vsnprintf(buf, size, fmt, args);
- ssize_t ssize = size;
+ int i;
- return (i >= ssize) ? (ssize - 1) : i;
+ i = vsnprintf(buf, size, fmt, args);
+
+ if (likely(i < size))
+ return i;
+ if (size != 0)
+ return size - 1;
+ return 0;
}
static inline int scnprintf(char * buf, size_t size, const char * fmt, ...)
{
- ssize_t ssize = size;
- va_list args;
- int i;
+ va_list args;
+ int i;
- va_start(args, fmt);
- i = vsnprintf(buf, size, fmt, args);
- va_end(args);
+ va_start(args, fmt);
+ i = vscnprintf(buf, size, fmt, args);
+ va_end(args);
- return (i >= ssize) ? (ssize - 1) : i;
+ return i;
}
#define printk(...) printf(__VA_ARGS__)