Change ioctl structs to be 8 byte aligned rather than sizeof(int).
[Alasdair Kergon]
--- diff/drivers/md/dm-ioctl.c	2003-04-17 17:54:29.000000000 +0100
+++ source/drivers/md/dm-ioctl.c	2003-04-17 17:54:51.000000000 +0100
@@ -400,13 +400,12 @@
 }
 
 /*
- * Round up the ptr to the next 'align' boundary.  Obviously
- * 'align' must be a power of 2.
+ * Round up the ptr to an 8 byte boundary.
  */
-static inline void *align_ptr(void *ptr, unsigned int align)
+#define ALIGN_MASK 7
+static inline void *align_ptr(void *ptr)
 {
-	align--;
-	return (void *) (((unsigned long) (ptr + align)) & ~align);
+	return (void *) (((size_t) (ptr + ALIGN_MASK)) & ~ALIGN_MASK);
 }
 
 /*
@@ -420,7 +419,7 @@
 	void *ptr = NULL;
 
 	if (data) {
-		ptr = align_ptr(user + 1, sizeof(unsigned long));
+		ptr = align_ptr(user + 1);
 		param->data_start = ptr - (void *) user;
 	}
 
@@ -507,14 +506,6 @@
 	return md;
 }
 
-#define ALIGNMENT sizeof(int)
-static void *_align(void *ptr, unsigned int a)
-{
-	register unsigned long align = --a;
-
-	return (void *) (((unsigned long) ptr + align) & ~align);
-}
-
 /*
  * Copies device info back to user space, used by
  * the create and info ioctls.
@@ -646,7 +637,7 @@
 			outptr[0] = '\0';
 
 		outptr += strlen(outptr) + 1;
-		_align(outptr, ALIGNMENT);
+		align_ptr(outptr);
 		spec->next = outptr - outbuf;
 	}
 
