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, 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 13:25:31 -0700	[thread overview]
Message-ID: <20040628132531.036281b0.davem@redhat.com> (raw)
In-Reply-To: <20040628141517.GA4311@yoda.timesys>

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

> On Sun, Jun 27, 2004 at 02:26:28PM -0700, David S. Miller wrote:
> > On Sun, 27 Jun 2004 12:42:21 +0200
> > Oliver Neukum <oliver@neukum.org> wrote:
> > 
> > > OK, then it shouldn't be used in this case. However, shouldn't we have
> > > an attribute like __nopadding__ which does exactly that?
> > 
> > It would have the same effect.  CPU structure layout rules don't pack
> > (or using other words, add padding) exactly in cases where it is
> > needed to obtain the necessary alignment.
> 
> No, it wouldn't, as you could drop the assumption that the base of
> the struct can be misaligned.  Thus, the compiler only needs to
> generate unaligned loads and stores for fields which are unaligned
> within the struct, which in this case would be none of them.
> 
> While it's rather unlikely that a struct like this one would ever
> need packing, it would help those structs that do need it by reducing
> the number of fields subjected to unaligned loads and stores.

That's true.  But if one were to propose such a feature to the gcc
guys, I know the first question they would ask.  "If no padding of
the structure is needed, why are you specifying this new
__nopadding__ attribute?"

I think it's bad to just "smack this attribute onto any structure that
_MIGHT_ need it on some platform"  I never do that in my drivers,
and they work on all platforms.  For example, if you have a simple
DMA descriptor structure such as:

	struct txd {
		u32 dma_addr;
		u32 length;
	};

It is just total and utter madness to put a packed or the proposed
__nopadding__ attribute on that structure.  Yet this seems to be
what was suggested now and at the beginning of this thread.

  reply	other threads:[~2004-06-28 20:27 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                       ` David S. Miller [this message]
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                               ` drivers/block/ub.c David S. Miller
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=20040628132531.036281b0.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.