diff options
Diffstat (limited to 'recipes/kexecboot/linux-kexecboot-2.6.29/fix-unaligned-access.diff')
-rw-r--r-- | recipes/kexecboot/linux-kexecboot-2.6.29/fix-unaligned-access.diff | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/recipes/kexecboot/linux-kexecboot-2.6.29/fix-unaligned-access.diff b/recipes/kexecboot/linux-kexecboot-2.6.29/fix-unaligned-access.diff new file mode 100644 index 0000000000..c82090f54a --- /dev/null +++ b/recipes/kexecboot/linux-kexecboot-2.6.29/fix-unaligned-access.diff @@ -0,0 +1,41 @@ +From: Mans Rullgard <mans@mansr.com> +Date: Sat, 28 Mar 2009 12:54:25 +0000 (+0000) +Subject: NSM: Fix unaligned accesses in nsm_init_private() +X-Git-Url: http://git.mansr.com/?p=linux-omap;a=commitdiff_plain;h=8f2bd6fdde1ebfef57f65b6cf29b29008c23d297 + +NSM: Fix unaligned accesses in nsm_init_private() + +This fixes unaligned accesses in nsm_init_private() when +creating nlm_reboot keys. + +Signed-off-by: Mans Rullgard <mans@mansr.com> +--- + +diff --git a/fs/lockd/mon.c b/fs/lockd/mon.c +index 5e2c4d5..6d5d4a4 100644 +--- a/fs/lockd/mon.c ++++ b/fs/lockd/mon.c +@@ -16,6 +16,8 @@ + #include <linux/sunrpc/svc.h> + #include <linux/lockd/lockd.h> + ++#include <asm/unaligned.h> ++ + #define NLMDBG_FACILITY NLMDBG_MONITOR + #define NSM_PROGRAM 100024 + #define NSM_VERSION 1 +@@ -274,10 +276,12 @@ static void nsm_init_private(struct nsm_handle *nsm) + { + u64 *p = (u64 *)&nsm->sm_priv.data; + struct timespec ts; ++ s64 ns; + + ktime_get_ts(&ts); +- *p++ = timespec_to_ns(&ts); +- *p = (unsigned long)nsm; ++ ns = timespec_to_ns(&ts); ++ put_unaligned(ns, p); ++ put_unaligned((unsigned long)nsm, p + 1); + } + + static struct nsm_handle *nsm_create_handle(const struct sockaddr *sap, |