Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b01a60be authored by Arnd Bergmann's avatar Arnd Bergmann Committed by John W. Linville
Browse files

ssb: fix alignment of struct bcma_device_id



The ARM OABI and EABI disagree on the alignment of structures
with small members, so module init tools may interpret the
ssb device table incorrectly, as shown  by this warning when
building the b43 device driver in an OABI kernel:

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=88.

Forcing the default (EABI) alignment on the structure makes this
problem go away. Since the ssb_device_id may have the same problem,
better fix both structures.

Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: John W. Linville <linville@tuxdriver.com>
Cc: Michael Buesch <mb@bu3sch.de>
Cc: Larry Finger <Larry.Finger@lwfinger.net>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 9494849e
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -361,7 +361,8 @@ struct ssb_device_id {
	__u16	vendor;
	__u16	coreid;
	__u8	revision;
};
	__u8	__pad;
} __attribute__((packed, aligned(2)));
#define SSB_DEVICE(_vendor, _coreid, _revision)  \
	{ .vendor = _vendor, .coreid = _coreid, .revision = _revision, }
#define SSB_DEVTABLE_END  \
@@ -377,7 +378,7 @@ struct bcma_device_id {
	__u16	id;
	__u8	rev;
	__u8	class;
};
} __attribute__((packed,aligned(2)));
#define BCMA_CORE(_manuf, _id, _rev, _class)  \
	{ .manuf = _manuf, .id = _id, .rev = _rev, .class = _class, }
#define BCMA_CORETABLE_END  \