| From 8f4966fc3621bc300d36e3aeac45d97af12ca9fa Mon Sep 17 00:00:00 2001 |
| From: David Miller <davem@davemloft.net> |
| Date: Sun, 13 Feb 2011 16:37:07 -0800 |
| Subject: [PATCH] klist: Fix object alignment on 64-bit. |
| |
| commit 795abaf1e4e188c4171e3cd3dbb11a9fcacaf505 upstream. |
| |
| Commit c0e69a5bbc6f ("klist.c: bit 0 in pointer can't be used as flag") |
| intended to make sure that all klist objects were at least pointer size |
| aligned, but used the constant "4" which only works on 32-bit. |
| |
| Use "sizeof(void *)" which is correct in all cases. |
| |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Acked-by: Jesper Nilsson <jesper.nilsson@axis.com> |
| Cc: Greg Kroah-Hartman <gregkh@suse.de> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/include/linux/klist.h b/include/linux/klist.h |
| index e91a4e5..a370ce5 100644 |
| --- a/include/linux/klist.h |
| +++ b/include/linux/klist.h |
| @@ -22,7 +22,7 @@ struct klist { |
| struct list_head k_list; |
| void (*get)(struct klist_node *); |
| void (*put)(struct klist_node *); |
| -} __attribute__ ((aligned (4))); |
| +} __attribute__ ((aligned (sizeof(void *)))); |
| |
| #define KLIST_INIT(_name, _get, _put) \ |
| { .k_lock = __SPIN_LOCK_UNLOCKED(_name.k_lock), \ |
| -- |
| 1.7.4.4 |
| |