diff options
author | Michael S. Tsirkin <mst@redhat.com> | 2017-12-08 10:31:37 -0500 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2017-12-08 10:48:38 -0500 |
commit | 5790eabc6e7c3ce2d6ca2e3bbf4de467ce2b64b3 (patch) | |
tree | 77e1e4e07d54194dfb71cbb4604b6985c99978a9 | |
parent | 03e9f8a05bce7330bcd9c5cc54c8e42d0fcbf993 (diff) |
ptr_ring: fix up after recent ptr_ring changes
Add more stubs to make it build.
Fixes: 81fbfe8a ("ptr_ring: use kmalloc_array()")
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r-- | tools/virtio/ringtest/ptr_ring.c | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/tools/virtio/ringtest/ptr_ring.c b/tools/virtio/ringtest/ptr_ring.c index 38bb171aceba..e6e81305ef46 100644 --- a/tools/virtio/ringtest/ptr_ring.c +++ b/tools/virtio/ringtest/ptr_ring.c | |||
@@ -16,24 +16,41 @@ | |||
16 | #define unlikely(x) (__builtin_expect(!!(x), 0)) | 16 | #define unlikely(x) (__builtin_expect(!!(x), 0)) |
17 | #define likely(x) (__builtin_expect(!!(x), 1)) | 17 | #define likely(x) (__builtin_expect(!!(x), 1)) |
18 | #define ALIGN(x, a) (((x) + (a) - 1) / (a) * (a)) | 18 | #define ALIGN(x, a) (((x) + (a) - 1) / (a) * (a)) |
19 | #define SIZE_MAX (~(size_t)0) | ||
20 | |||
19 | typedef pthread_spinlock_t spinlock_t; | 21 | typedef pthread_spinlock_t spinlock_t; |
20 | 22 | ||
21 | typedef int gfp_t; | 23 | typedef int gfp_t; |
22 | static void *kmalloc(unsigned size, gfp_t gfp) | 24 | #define __GFP_ZERO 0x1 |
23 | { | ||
24 | return memalign(64, size); | ||
25 | } | ||
26 | 25 | ||
27 | static void *kzalloc(unsigned size, gfp_t gfp) | 26 | static void *kmalloc(unsigned size, gfp_t gfp) |
28 | { | 27 | { |
29 | void *p = memalign(64, size); | 28 | void *p = memalign(64, size); |
30 | if (!p) | 29 | if (!p) |
31 | return p; | 30 | return p; |
32 | memset(p, 0, size); | ||
33 | 31 | ||
32 | if (gfp & __GFP_ZERO) | ||
33 | memset(p, 0, size); | ||
34 | return p; | 34 | return p; |
35 | } | 35 | } |
36 | 36 | ||
37 | static inline void *kzalloc(unsigned size, gfp_t flags) | ||
38 | { | ||
39 | return kmalloc(size, flags | __GFP_ZERO); | ||
40 | } | ||
41 | |||
42 | static inline void *kmalloc_array(size_t n, size_t size, gfp_t flags) | ||
43 | { | ||
44 | if (size != 0 && n > SIZE_MAX / size) | ||
45 | return NULL; | ||
46 | return kmalloc(n * size, flags); | ||
47 | } | ||
48 | |||
49 | static inline void *kcalloc(size_t n, size_t size, gfp_t flags) | ||
50 | { | ||
51 | return kmalloc_array(n, size, flags | __GFP_ZERO); | ||
52 | } | ||
53 | |||
37 | static void kfree(void *p) | 54 | static void kfree(void *p) |
38 | { | 55 | { |
39 | if (p) | 56 | if (p) |