From: Sergei Shtylyov <sshtylyov@mvista.com> To: Rabin Vincent <rabin@rab.in> Cc: gregkh@suse.de, linux-usb@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH] echi: remove structure packing from ehci_def Date: Wed, 27 Apr 2011 19:15:07 +0400 [thread overview] Message-ID: <4DB832FB.8030805@ru.mvista.com> (raw) In-Reply-To: <1303914841-6379-1-git-send-email-rabin@rab.in> Hello. Rabin Vincent wrote: > As pointed out by Arnd Bergmann, in include/linux/usb/ehci_def.h, struct > ehci_caps is defined with __attribute__((packed)) for no good reason, You're talking only of one structure here, yet you're changing several... > and this triggers undefined behaviour when using ARM's readl() on > pointers to elements of this structure: > http://lkml.kernel.org/r/201102021700.20683.arnd@arndb.de > Cc: Arnd Bergmann <arnd@arndb.de> > Signed-off-by: Rabin Vincent <rabin@rab.in> > --- > include/linux/usb/ehci_def.h | 6 +++--- > 1 files changed, 3 insertions(+), 3 deletions(-) > diff --git a/include/linux/usb/ehci_def.h b/include/linux/usb/ehci_def.h > index e49dfd4..7879943 100644 > --- a/include/linux/usb/ehci_def.h > +++ b/include/linux/usb/ehci_def.h > @@ -52,7 +52,7 @@ struct ehci_caps { > #define HCC_PGM_FRAMELISTLEN(p) ((p)&(1 << 1)) /* true: periodic_size changes*/ > #define HCC_64BIT_ADDR(p) ((p)&(1)) /* true: can use 64-bit addr */ > u8 portroute[8]; /* nibbles for routing - offset 0xC */ > -} __attribute__ ((packed)); > +}; > > > /* Section 2.3 Host Controller Operational Registers */ > @@ -150,7 +150,7 @@ struct ehci_regs { > #define PORT_CSC (1<<1) /* connect status change */ > #define PORT_CONNECT (1<<0) /* device connected */ > #define PORT_RWC_BITS (PORT_CSC | PORT_PEC | PORT_OCC) > -} __attribute__ ((packed)); > +}; > > #define USBMODE 0x68 /* USB Device mode */ > #define USBMODE_SDIS (1<<3) /* Stream disable */ > @@ -194,7 +194,7 @@ struct ehci_dbg_port { > u32 data47; > u32 address; > #define DBGP_EPADDR(dev, ep) (((dev)<<8)|(ep)) > -} __attribute__ ((packed)); > +}; > > #ifdef CONFIG_EARLY_PRINTK_DBGP > #include <linux/init.h> WBR, Sergei
WARNING: multiple messages have this Message-ID (diff)
From: sshtylyov@mvista.com (Sergei Shtylyov) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH] echi: remove structure packing from ehci_def Date: Wed, 27 Apr 2011 19:15:07 +0400 [thread overview] Message-ID: <4DB832FB.8030805@ru.mvista.com> (raw) In-Reply-To: <1303914841-6379-1-git-send-email-rabin@rab.in> Hello. Rabin Vincent wrote: > As pointed out by Arnd Bergmann, in include/linux/usb/ehci_def.h, struct > ehci_caps is defined with __attribute__((packed)) for no good reason, You're talking only of one structure here, yet you're changing several... > and this triggers undefined behaviour when using ARM's readl() on > pointers to elements of this structure: > http://lkml.kernel.org/r/201102021700.20683.arnd at arndb.de > Cc: Arnd Bergmann <arnd@arndb.de> > Signed-off-by: Rabin Vincent <rabin@rab.in> > --- > include/linux/usb/ehci_def.h | 6 +++--- > 1 files changed, 3 insertions(+), 3 deletions(-) > diff --git a/include/linux/usb/ehci_def.h b/include/linux/usb/ehci_def.h > index e49dfd4..7879943 100644 > --- a/include/linux/usb/ehci_def.h > +++ b/include/linux/usb/ehci_def.h > @@ -52,7 +52,7 @@ struct ehci_caps { > #define HCC_PGM_FRAMELISTLEN(p) ((p)&(1 << 1)) /* true: periodic_size changes*/ > #define HCC_64BIT_ADDR(p) ((p)&(1)) /* true: can use 64-bit addr */ > u8 portroute[8]; /* nibbles for routing - offset 0xC */ > -} __attribute__ ((packed)); > +}; > > > /* Section 2.3 Host Controller Operational Registers */ > @@ -150,7 +150,7 @@ struct ehci_regs { > #define PORT_CSC (1<<1) /* connect status change */ > #define PORT_CONNECT (1<<0) /* device connected */ > #define PORT_RWC_BITS (PORT_CSC | PORT_PEC | PORT_OCC) > -} __attribute__ ((packed)); > +}; > > #define USBMODE 0x68 /* USB Device mode */ > #define USBMODE_SDIS (1<<3) /* Stream disable */ > @@ -194,7 +194,7 @@ struct ehci_dbg_port { > u32 data47; > u32 address; > #define DBGP_EPADDR(dev, ep) (((dev)<<8)|(ep)) > -} __attribute__ ((packed)); > +}; > > #ifdef CONFIG_EARLY_PRINTK_DBGP > #include <linux/init.h> WBR, Sergei
next prev parent reply other threads:[~2011-04-27 15:17 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 [this message] 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 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=4DB832FB.8030805@ru.mvista.com \ --to=sshtylyov@mvista.com \ --cc=arnd@arndb.de \ --cc=gregkh@suse.de \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-usb@vger.kernel.org \ --cc=rabin@rab.in \ /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.