diff options
author | Ben Pfaff <blp@nicira.com> | 2011-01-18 11:51:46 -0800 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2011-02-05 13:14:49 -0800 |
commit | 34c7bb50971af21c3d6152b61c7a55ddff4d09ee (patch) | |
tree | 1ef3bee5595ec58607e6b079be6ecbb01bbfe3c9 /lib/netlink.c | |
parent | c4617b3c28b9a96e09fdbbe2682b875dbfeaec5b (diff) |
netlink: Use proper types and functions for half-aligned 64-bit values.
These haven't showed up as problems yet in my tests but it is only a matter
of time.
Diffstat (limited to 'lib/netlink.c')
-rw-r--r-- | lib/netlink.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/netlink.c b/lib/netlink.c index 725bba02..ec358495 100644 --- a/lib/netlink.c +++ b/lib/netlink.c @@ -25,6 +25,7 @@ #include "netlink-protocol.h" #include "ofpbuf.h" #include "timeval.h" +#include "unaligned.h" #include "vlog.h" VLOG_DEFINE_THIS_MODULE(netlink); @@ -435,7 +436,8 @@ nl_attr_get_u32(const struct nlattr *nla) uint64_t nl_attr_get_u64(const struct nlattr *nla) { - return NL_ATTR_GET_AS(nla, uint64_t); + const ovs_32aligned_u64 *x = nl_attr_get_unspec(nla, sizeof *x); + return get_32aligned_u64(x); } /* Returns the 16-bit network byte order value in 'nla''s payload. @@ -462,7 +464,8 @@ nl_attr_get_be32(const struct nlattr *nla) ovs_be64 nl_attr_get_be64(const struct nlattr *nla) { - return NL_ATTR_GET_AS(nla, ovs_be64); + const ovs_32aligned_be64 *x = nl_attr_get_unspec(nla, sizeof *x); + return get_32aligned_be64(x); } /* Returns the null-terminated string value in 'nla''s payload. |