diff options
| author | John Baldwin <jhb@FreeBSD.org> | 2023-08-10 18:12:52 +0000 |
|---|---|---|
| committer | John Baldwin <jhb@FreeBSD.org> | 2023-08-10 18:12:52 +0000 |
| commit | 9795f14ec40acbab93aabedf05d70e0256ce9bf5 (patch) | |
| tree | fb60c284b033db3a5926351e7b980f1b145394f3 /sys/netlink | |
| parent | 2bd446d7f1a03fbf6d98ace4548f8793599f48fb (diff) | |
Diffstat (limited to 'sys/netlink')
| -rw-r--r-- | sys/netlink/netlink_message_parser.h | 4 | ||||
| -rw-r--r-- | sys/netlink/netlink_snl.h | 5 |
2 files changed, 5 insertions, 4 deletions
diff --git a/sys/netlink/netlink_message_parser.h b/sys/netlink/netlink_message_parser.h index 0934057ac49f..0242177fdd26 100644 --- a/sys/netlink/netlink_message_parser.h +++ b/sys/netlink/netlink_message_parser.h @@ -41,12 +41,12 @@ struct linear_buffer { char *base; /* Base allocated memory pointer */ uint32_t offset; /* Currently used offset */ uint32_t size; /* Total buffer size */ -}; +} __aligned(_Alignof(__max_align_t)); static inline void * lb_alloc(struct linear_buffer *lb, int len) { - len = roundup2(len, sizeof(uint64_t)); + len = roundup2(len, _Alignof(__max_align_t)); if (lb->offset + len > lb->size) return (NULL); void *data = (void *)(lb->base + lb->offset); diff --git a/sys/netlink/netlink_snl.h b/sys/netlink/netlink_snl.h index 0292725bd135..8bb7b076b7b7 100644 --- a/sys/netlink/netlink_snl.h +++ b/sys/netlink/netlink_snl.h @@ -33,6 +33,7 @@ #include <assert.h> #include <errno.h> +#include <stdalign.h> #include <stddef.h> #include <stdbool.h> #include <stdint.h> @@ -74,7 +75,7 @@ struct linear_buffer { uint32_t offset; /* Currently used offset */ uint32_t size; /* Total buffer size */ struct linear_buffer *next; /* Buffer chaining */ -}; +} __aligned(alignof(__max_align_t)); static inline struct linear_buffer * lb_init(uint32_t size) @@ -98,7 +99,7 @@ lb_free(struct linear_buffer *lb) static inline char * lb_allocz(struct linear_buffer *lb, int len) { - len = roundup2(len, sizeof(uint64_t)); + len = roundup2(len, alignof(__max_align_t)); if (lb->offset + len > lb->size) return (NULL); void *data = (void *)(lb->base + lb->offset); |
