All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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: link
Be 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.