[kernel] r10662 - in dists/trunk/linux-2.6/debian: . patches/bugfix/arm patches/series
Martin Michlmayr
tbm at alioth.debian.org
Tue Feb 26 10:21:14 UTC 2008
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 <gordonfarquharson at gmail.com>
+
+---
+
+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
More information about the Kernel-svn-changes
mailing list