All of lore.kernel.org
 help / color / mirror / Atom feed
From: "David S. Miller" <davem@redhat.com>
To: Scott Wood <scott@timesys.com>
Cc: oliver@neukum.org, scott@timesys.com, zaitcev@redhat.com,
	greg@kroah.com, arjanv@redhat.com, jgarzik@redhat.com,
	tburke@redhat.com, linux-kernel@vger.kernel.org,
	stern@rowland.harvard.edu, mdharm-usb@one-eyed-alien.net,
	david-b@pacbell.net
Subject: Re: drivers/block/ub.c
Date: Mon, 28 Jun 2004 15:22:08 -0700	[thread overview]
Message-ID: <20040628152208.20fe97f1.davem@redhat.com> (raw)
In-Reply-To: <20040628211857.GA5508@yoda.timesys>

On Mon, 28 Jun 2004 17:18:57 -0400
Scott Wood <scott@timesys.com> wrote:

> On Mon, Jun 28, 2004 at 02:03:43PM -0700, David S. Miller wrote:
> > You have not considered what is supposed to happen when this
> > structure is embedded within another one.  What kind of alignment
> > rules apply in that case?  For example:
> > 
> > struct foo {
> > 	u32	x;
> > 	u8	y;
> > 	u16	z;
> > } __attribute__((__packed__));
> > 
> > struct bar {
> > 	u8		a;
> > 	struct foo 	b;
> > };
> 
> As long as bar is not packed, why shouldn't the beginning of bar.b be
> aligned?

No!  bar.b starts at offset 1 byte.  That's how this stuff works.

This is exactly why you cannot assume the alignment of any structure
which is given attribute __packed__.  The example above shows that
quite clearly.

Try it out if you don't believe someone who has maintained the
Linux networking for 7 years and sits on the GCC Steering Committee.
:-)

  reply	other threads:[~2004-06-28 22:23 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-26 20:06 drivers/block/ub.c Pete Zaitcev
2004-06-26 20:12 ` drivers/block/ub.c Matthew Dharm
2004-06-27  2:08   ` drivers/block/ub.c Pete Zaitcev
2004-06-27  3:30     ` drivers/block/ub.c Matthew Dharm
2004-07-12  0:10     ` [usb-storage] drivers/block/ub.c Pat LaVarre
2004-06-26 20:35 ` drivers/block/ub.c Oliver Neukum
2004-06-26 21:41   ` drivers/block/ub.c David S. Miller
2004-06-26 21:56     ` drivers/block/ub.c Oliver Neukum
2004-06-26 22:07       ` drivers/block/ub.c David S. Miller
2004-06-26 22:36         ` drivers/block/ub.c Oliver Neukum
2004-06-26 23:20           ` drivers/block/ub.c David S. Miller
2004-06-27  4:31             ` drivers/block/ub.c Oliver Neukum
2004-06-27  6:34               ` drivers/block/ub.c David S. Miller
2004-06-27 10:42                 ` drivers/block/ub.c Oliver Neukum
2004-06-27 21:26                   ` drivers/block/ub.c David S. Miller
2004-06-28 14:15                     ` drivers/block/ub.c Scott Wood
2004-06-28 20:25                       ` drivers/block/ub.c David S. Miller
2004-06-28 20:48                         ` drivers/block/ub.c Scott Wood
2004-06-28 20:58                           ` drivers/block/ub.c David S. Miller
2004-06-28 20:50                         ` drivers/block/ub.c Matthew Dharm
2004-06-28 20:59                           ` drivers/block/ub.c David S. Miller
2004-06-28 21:01                           ` drivers/block/ub.c Pete Zaitcev
2004-06-28 23:52                             ` drivers/block/ub.c Matthew Dharm
2004-06-28 20:57                         ` drivers/block/ub.c Oliver Neukum
2004-06-28 21:03                           ` drivers/block/ub.c David S. Miller
2004-06-28 21:18                             ` drivers/block/ub.c Scott Wood
2004-06-28 22:22                               ` David S. Miller [this message]
2004-06-28 22:31                                 ` drivers/block/ub.c Scott Wood
2004-06-28 22:40                                 ` drivers/block/ub.c Roland Dreier
2004-06-29  1:54                             ` drivers/block/ub.c Robert White
2004-06-29  2:15                               ` drivers/block/ub.c David S. Miller
2004-06-29  2:49                                 ` drivers/block/ub.c Robert White
2004-06-29 18:31                             ` drivers/block/ub.c Andy Isaacson
2004-07-05 10:01                             ` drivers/block/ub.c Roman Zippel
2004-06-29  7:12                         ` drivers/block/ub.c Vojtech Pavlik
2004-06-29  1:39                     ` drivers/block/ub.c Robert White
2004-06-29 17:02                     ` drivers/block/ub.c Kurt Garloff
2004-06-26 22:54   ` drivers/block/ub.c Andries Brouwer
2004-06-26 22:59     ` drivers/block/ub.c Oliver Neukum
2004-06-26 23:08       ` drivers/block/ub.c Andries Brouwer
2004-06-27  5:04         ` drivers/block/ub.c Oliver Neukum
2004-06-27 14:08           ` drivers/block/ub.c Andries Brouwer
2004-06-27 14:24             ` drivers/block/ub.c Oliver Neukum
2004-06-27 15:19               ` drivers/block/ub.c Alan Stern
2004-06-27 15:45                 ` drivers/block/ub.c Andries Brouwer
2004-06-28 23:58                   ` drivers/block/ub.c Jeff Garzik
2004-06-28  0:10                 ` drivers/block/ub.c Pete Zaitcev
2004-06-28 16:01                   ` drivers/block/ub.c Alan Stern
2004-06-27 15:23               ` drivers/block/ub.c Andries Brouwer
2004-06-27 16:11                 ` drivers/block/ub.c Oliver Neukum
2004-06-26 22:46 ` drivers/block/ub.c Oliver Neukum
2004-06-27  3:52   ` drivers/block/ub.c Alan Stern
2004-06-27  4:05 ` drivers/block/ub.c Alan Stern
2004-06-27  5:02   ` drivers/block/ub.c Greg KH
2004-06-27 15:23     ` drivers/block/ub.c Alan Stern
2004-06-27 20:29       ` drivers/block/ub.c Pete Zaitcev
2004-06-27 21:03         ` drivers/block/ub.c Matthew Dharm
2004-06-28 15:40         ` drivers/block/ub.c Alan Stern
2004-06-28 16:42           ` drivers/block/ub.c Oliver Neukum
2004-06-28 19:50             ` drivers/block/ub.c Alan Stern
2004-06-27  5:35   ` drivers/block/ub.c Matthew Dharm
2004-06-27 15:28     ` drivers/block/ub.c Alan Stern
2004-06-27 22:56 ` drivers/block/ub.c David Brownell
2004-06-27 23:43   ` drivers/block/ub.c Pete Zaitcev
2004-06-28 15:05     ` drivers/block/ub.c David Brownell
2004-06-28 15:56     ` drivers/block/ub.c Alan Stern
2004-06-28 16:23       ` drivers/block/ub.c David Brownell
2004-06-28 16:46         ` drivers/block/ub.c Oliver Neukum
2004-06-28 17:13           ` drivers/block/ub.c David Brownell
     [not found] ` <mailman.1088290201.14081.linux-kernel2news@redhat.com>
2004-06-27 23:57   ` drivers/block/ub.c Pete Zaitcev
2004-06-29 11:05 ` drivers/block/ub.c Jeff Garzik

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=20040628152208.20fe97f1.davem@redhat.com \
    --to=davem@redhat.com \
    --cc=arjanv@redhat.com \
    --cc=david-b@pacbell.net \
    --cc=greg@kroah.com \
    --cc=jgarzik@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mdharm-usb@one-eyed-alien.net \
    --cc=oliver@neukum.org \
    --cc=scott@timesys.com \
    --cc=stern@rowland.harvard.edu \
    --cc=tburke@redhat.com \
    --cc=zaitcev@redhat.com \
    /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.