From: Arnd Bergmann <arnd@arndb.de> To: "Russell King - ARM Linux" <linux@arm.linux.org.uk> Cc: Nicolas Pitre <nico@fluxnic.net>, Alan Stern <stern@rowland.harvard.edu>, gregkh@suse.de, linux-usb@vger.kernel.org, lkml <linux-kernel@vger.kernel.org>, Rabin Vincent <rabin@rab.in>, Alexander Holler <holler@ahsoftware.de>, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH] USB: ehci: use packed, aligned(4) instead of removing the packed attribute Date: Mon, 20 Jun 2011 22:14:00 +0200 [thread overview] Message-ID: <201106202214.00998.arnd@arndb.de> (raw) In-Reply-To: <20110620193213.GL26089@n2100.arm.linux.org.uk> On Monday 20 June 2011 21:32:13 Russell King - ARM Linux wrote: > > Here the d member is not naturally aligned. On most architectures, > > including ARM with the ABI currently in use, the compiler would insert a > > 32-bit padding between c and d. > > And if 'struct foo' represents a structure in device memory, the end > result is highly unpredicable whether or not you have padding or > accessors to load 'd' there. So, you would not have such a structure > describing a data structure in memory returned by ioremap(). Right. > Now, the real question is: is there any architecture which is (or may > be) supported by the Linux kernel which would add padding to: > > struct foo { > u8 a; > u8 b; > u16 c; > u32 d; > u64 e; > }; This is the other issue, which we were facing in the scsi drivers. If an architecture requires padding because some members require larger than natural alignment here, the 'packed' should be applied to that member, in order to change the alignment of that member. Arnd
WARNING: multiple messages have this Message-ID (diff)
From: arnd@arndb.de (Arnd Bergmann) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH] USB: ehci: use packed, aligned(4) instead of removing the packed attribute Date: Mon, 20 Jun 2011 22:14:00 +0200 [thread overview] Message-ID: <201106202214.00998.arnd@arndb.de> (raw) In-Reply-To: <20110620193213.GL26089@n2100.arm.linux.org.uk> On Monday 20 June 2011 21:32:13 Russell King - ARM Linux wrote: > > Here the d member is not naturally aligned. On most architectures, > > including ARM with the ABI currently in use, the compiler would insert a > > 32-bit padding between c and d. > > And if 'struct foo' represents a structure in device memory, the end > result is highly unpredicable whether or not you have padding or > accessors to load 'd' there. So, you would not have such a structure > describing a data structure in memory returned by ioremap(). Right. > Now, the real question is: is there any architecture which is (or may > be) supported by the Linux kernel which would add padding to: > > struct foo { > u8 a; > u8 b; > u16 c; > u32 d; > u64 e; > }; This is the other issue, which we were facing in the scsi drivers. If an architecture requires padding because some members require larger than natural alignment here, the 'packed' should be applied to that member, in order to change the alignment of that member. Arnd
next prev parent reply other threads:[~2011-06-20 20:15 UTC|newest] Thread overview: 124+ messages / expand[flat|nested] mbox.gz Atom feed top 2011-04-27 14:34 [PATCH] echi: remove structure packing from ehci_def Rabin Vincent 2011-04-27 14:34 ` Rabin Vincent 2011-04-27 15:15 ` Sergei Shtylyov 2011-04-27 15:15 ` Sergei Shtylyov 2011-04-27 15:37 ` [PATCHv2] " Rabin Vincent 2011-04-27 15:37 ` Rabin Vincent 2011-06-16 16:17 ` [PATCH] USB: ehci: use packed,aligned(4) instead of removing the packed attribute Alexander Holler 2011-06-16 16:17 ` [PATCH] USB: ehci: use packed, aligned(4) " Alexander Holler 2011-06-16 17:09 ` [PATCH] USB: ehci: use packed,aligned(4) " Alan Stern 2011-06-16 17:09 ` Alan Stern 2011-06-16 17:55 ` Arnd Bergmann 2011-06-16 17:55 ` [PATCH] USB: ehci: use packed, aligned(4) " Arnd Bergmann 2011-06-16 19:25 ` [PATCH] USB: ehci: use packed,aligned(4) " Alexander Holler 2011-06-16 19:25 ` Alexander Holler 2011-06-16 19:46 ` Alan Stern 2011-06-16 19:46 ` Alan Stern 2011-06-16 20:10 ` Alexander Holler 2011-06-16 20:10 ` Alexander Holler 2011-06-16 20:20 ` Arnd Bergmann 2011-06-16 20:20 ` [PATCH] USB: ehci: use packed, aligned(4) " Arnd Bergmann 2011-06-19 15:02 ` [PATCH] USB: ehci: use packed,aligned(4) " Nicolas Pitre 2011-06-19 15:02 ` [PATCH] USB: ehci: use packed, aligned(4) " Nicolas Pitre 2011-06-19 19:00 ` [PATCH] USB: ehci: use packed,aligned(4) " Alan Stern 2011-06-19 19:00 ` Alan Stern 2011-06-19 20:02 ` Arnd Bergmann 2011-06-19 20:02 ` [PATCH] USB: ehci: use packed, aligned(4) " Arnd Bergmann 2011-06-19 20:11 ` [PATCH] USB: ehci: use packed,aligned(4) " Arnd Bergmann 2011-06-19 20:11 ` [PATCH] USB: ehci: use packed, aligned(4) " Arnd Bergmann 2011-06-19 21:39 ` [PATCH] USB: ehci: use packed,aligned(4) " Nicolas Pitre 2011-06-19 21:39 ` [PATCH] USB: ehci: use packed, aligned(4) " Nicolas Pitre 2011-06-19 21:27 ` [PATCH] USB: ehci: use packed,aligned(4) " Nicolas Pitre 2011-06-19 21:27 ` [PATCH] USB: ehci: use packed, aligned(4) " Nicolas Pitre 2011-06-20 15:03 ` [PATCH] USB: ehci: use packed,aligned(4) " Alan Stern 2011-06-20 15:03 ` Alan Stern 2011-06-20 16:16 ` Nicolas Pitre 2011-06-20 16:16 ` [PATCH] USB: ehci: use packed, aligned(4) " Nicolas Pitre 2011-06-20 16:48 ` [PATCH] USB: ehci: use packed,aligned(4) " Alan Stern 2011-06-20 16:48 ` Alan Stern 2011-06-20 16:58 ` Arnd Bergmann 2011-06-20 16:58 ` [PATCH] USB: ehci: use packed, aligned(4) " Arnd Bergmann 2011-06-20 19:02 ` Russell King - ARM Linux 2011-06-20 19:02 ` Russell King - ARM Linux 2011-06-20 19:20 ` Nicolas Pitre 2011-06-20 19:20 ` Nicolas Pitre 2011-06-20 19:29 ` Nicolas Pitre 2011-06-20 19:29 ` Nicolas Pitre 2011-06-20 17:10 ` [PATCH] USB: ehci: use packed,aligned(4) " Nicolas Pitre 2011-06-20 17:10 ` [PATCH] USB: ehci: use packed, aligned(4) " Nicolas Pitre 2011-06-20 17:35 ` [PATCH] USB: ehci: use packed,aligned(4) " Alan Stern 2011-06-20 17:35 ` Alan Stern 2011-06-20 18:48 ` Russell King - ARM Linux 2011-06-20 18:48 ` Russell King - ARM Linux 2011-06-20 20:26 ` Arnd Bergmann 2011-06-20 20:26 ` [PATCH] USB: ehci: use packed, aligned(4) " Arnd Bergmann 2011-06-20 20:50 ` Nicolas Pitre 2011-06-20 20:50 ` Nicolas Pitre 2011-06-20 20:55 ` [PATCH] USB: ehci: use packed,aligned(4) " Russell King - ARM Linux 2011-06-20 20:55 ` Russell King - ARM Linux 2011-06-20 21:23 ` Arnd Bergmann 2011-06-20 21:23 ` [PATCH] USB: ehci: use packed, aligned(4) " Arnd Bergmann 2011-06-20 22:23 ` [PATCH] USB: ehci: use packed,aligned(4) " Nicolas Pitre 2011-06-20 22:23 ` [PATCH] USB: ehci: use packed, aligned(4) " Nicolas Pitre 2011-06-21 11:25 ` [PATCH] USB: ehci: use packed,aligned(4) " Arnd Bergmann 2011-06-21 11:25 ` [PATCH] USB: ehci: use packed, aligned(4) " Arnd Bergmann 2011-06-25 1:25 ` Nicolas Pitre 2011-06-25 8:09 ` Arnd Bergmann 2011-06-28 18:51 ` Nicolas Pitre 2011-06-29 10:56 ` Arnd Bergmann 2011-06-20 19:14 ` [PATCH] USB: ehci: use packed,aligned(4) " Nicolas Pitre 2011-06-20 19:14 ` [PATCH] USB: ehci: use packed, aligned(4) " Nicolas Pitre 2011-06-20 19:32 ` Russell King - ARM Linux 2011-06-20 19:32 ` Russell King - ARM Linux 2011-06-20 20:14 ` Arnd Bergmann [this message] 2011-06-20 20:14 ` Arnd Bergmann 2011-06-20 20:42 ` [PATCH] USB: ehci: use packed,aligned(4) " Alan Stern 2011-06-20 20:42 ` Alan Stern 2011-06-20 22:36 ` Nicolas Pitre 2011-06-20 22:36 ` [PATCH] USB: ehci: use packed, aligned(4) " Nicolas Pitre 2011-06-21 15:06 ` [PATCH] USB: ehci: use packed,aligned(4) " Alan Stern 2011-06-21 15:06 ` Alan Stern 2011-06-20 17:39 ` Alexander Holler 2011-06-20 17:39 ` Alexander Holler 2011-06-20 18:39 ` Alan Stern 2011-06-20 18:39 ` Alan Stern 2011-06-20 18:46 ` Alexander Holler 2011-06-20 18:46 ` Alexander Holler 2011-06-20 18:57 ` Alan Stern 2011-06-20 18:57 ` Alan Stern 2011-06-20 19:56 ` Nicolas Pitre 2011-06-20 19:56 ` [PATCH] USB: ehci: use packed, aligned(4) " Nicolas Pitre 2011-06-20 21:04 ` [PATCH] USB: ehci: use packed,aligned(4) " Alan Stern 2011-06-20 21:04 ` Alan Stern 2011-06-20 22:31 ` Nicolas Pitre 2011-06-20 22:31 ` [PATCH] USB: ehci: use packed, aligned(4) " Nicolas Pitre 2011-06-21 14:58 ` [PATCH] USB: ehci: use packed,aligned(4) " Alan Stern 2011-06-21 14:58 ` Alan Stern 2011-06-21 20:41 ` Nicolas Pitre 2011-06-21 20:41 ` [PATCH] USB: ehci: use packed, aligned(4) " Nicolas Pitre 2011-06-22 6:23 ` [PATCH] USB: ehci: use packed,aligned(4) " Alexander Holler 2011-06-22 6:23 ` Alexander Holler 2011-06-20 20:09 ` Arnd Bergmann 2011-06-20 20:09 ` [PATCH] USB: ehci: use packed, aligned(4) " Arnd Bergmann 2011-06-20 21:05 ` [PATCH] USB: ehci: use packed,aligned(4) " Alan Stern 2011-06-20 21:05 ` Alan Stern 2011-06-20 20:07 ` Arnd Bergmann 2011-06-20 20:07 ` [PATCH] USB: ehci: use packed, aligned(4) " Arnd Bergmann 2011-06-20 20:28 ` [PATCH] USB: ehci: use packed,aligned(4) " Nicolas Pitre 2011-06-20 20:28 ` [PATCH] USB: ehci: use packed, aligned(4) " Nicolas Pitre 2011-06-20 20:39 ` Arnd Bergmann 2011-06-20 20:39 ` Arnd Bergmann 2011-06-20 21:03 ` Nicolas Pitre 2011-06-20 21:03 ` Nicolas Pitre 2011-06-23 9:47 ` Alexander Holler 2011-06-23 9:47 ` Alexander Holler 2011-06-23 14:25 ` Alan Stern 2011-06-23 14:25 ` Alan Stern 2011-06-24 11:40 ` Alexander Holler 2011-06-24 11:40 ` Alexander Holler 2011-06-20 16:26 ` [PATCH] USB: ehci: use packed,aligned(4) " Arnd Bergmann 2011-06-20 16:26 ` [PATCH] USB: ehci: use packed, aligned(4) " Arnd Bergmann 2011-06-16 20:30 ` [PATCH] USB: ehci: use packed,aligned(4) " Alan Stern 2011-06-16 20:30 ` Alan Stern 2011-06-16 18:16 ` Alexander Holler 2011-06-16 18:16 ` Alexander Holler
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=201106202214.00998.arnd@arndb.de \ --to=arnd@arndb.de \ --cc=gregkh@suse.de \ --cc=holler@ahsoftware.de \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-usb@vger.kernel.org \ --cc=linux@arm.linux.org.uk \ --cc=nico@fluxnic.net \ --cc=rabin@rab.in \ --cc=stern@rowland.harvard.edu \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.