Author: tbm
Date: Tue Feb 26 10:21:13 2008
New Revision: 10662

Log:
pad ssb structures to allow ARM cross-compilation


Added:
   dists/trunk/linux-2.6/debian/patches/bugfix/arm/pad-ssb-structure.patch
Modified:
   dists/trunk/linux-2.6/debian/changelog
   dists/trunk/linux-2.6/debian/patches/series/1~experimental.1

Modified: dists/trunk/linux-2.6/debian/changelog
==============================================================================
--- dists/trunk/linux-2.6/debian/changelog      (original)
+++ dists/trunk/linux-2.6/debian/changelog      Tue Feb 26 10:21:13 2008
@@ -35,6 +35,8 @@
   * [arm/armel] Add a kernel for Orion based devices, such as the QNAP
     TS-109/TS-209.
   * [arm/armel] Unset CRYPTO_DEV_HIFN_795X since it causes a build failure.
+  * [arm] Pad the SSB structure so crossing-compiling a kernel for ARM
+     won't fail because of sanity checks; patch from Gordon Farquharson.
 
   [ Daniel Baumann ]
   * Added patch from unionfs upstream to export release_open_intent symbol.

Added: dists/trunk/linux-2.6/debian/patches/bugfix/arm/pad-ssb-structure.patch
==============================================================================
--- (empty file)
+++ dists/trunk/linux-2.6/debian/patches/bugfix/arm/pad-ssb-structure.patch     
Tue Feb 26 10:21:13 2008
@@ -0,0 +1,39 @@
+Align the members of the SSB device structure to a 32 bit boundary so
+that the b43 driver can be built for arm using a cross compiler. This
+alignment is required so that the test in scripts/mod/file2alias.c
+that checks that the size of the device ID type against the size of
+the section in the object file succeeds (see comment and
+http://lkml.org/lkml/2008/2/18/481 for explanation).
+
+This fixes:
+
+  MODPOST 972 modules
+FATAL: drivers/net/wireless/b43/b43: sizeof(struct ssb_device_id)=6 is not a 
modulo of the size of section __mod_ssb_device_table=64.
+Fix definition of struct ssb_device_id in mod_devicetable.h
+make[5]: *** [__modpost] Error 1
+make[4]: *** [modules] Error 2
+
+Signed-off-by: Gordon Farquharson <[EMAIL PROTECTED]>
+
+---
+
+diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
+index 139d49d..208d49a 100644
+--- a/include/linux/mod_devicetable.h
++++ b/include/linux/mod_devicetable.h
+@@ -351,7 +351,13 @@ struct sdio_device_id {
+ struct ssb_device_id {
+       __u16   vendor;
+       __u16   coreid;
+-      __u8    revision;
++      /* Explicit padding to support a broken sanity check in file2alias.c.
++       * The check compares the size of the structure in the kernel
++       * object file to the size of the structure reported in userspace for
++       * the system on which the kernel is compiled. The check breaks on
++       * cross-compilation, and the padding is a workaround for this. */
++      __u8    revision
++              __attribute__((aligned(sizeof(__u32))));
+ };
+ #define SSB_DEVICE(_vendor, _coreid, _revision)  \
+       { .vendor = _vendor, .coreid = _coreid, .revision = _revision, }
+

Modified: dists/trunk/linux-2.6/debian/patches/series/1~experimental.1
==============================================================================
--- dists/trunk/linux-2.6/debian/patches/series/1~experimental.1        
(original)
+++ dists/trunk/linux-2.6/debian/patches/series/1~experimental.1        Tue Feb 
26 10:21:13 2008
@@ -30,3 +30,4 @@
 + bugfix/arm/disable-r6040.patch
 + features/all/at76.patch 
 + bugfix/arm/ignore-invalid-memtags.patch
++ bugfix/arm/pad-ssb-structure.patch

_______________________________________________
Kernel-svn-changes mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/kernel-svn-changes

Reply via email to