linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "John W. Linville" <linville@tuxdriver.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Russell King - ARM Linux <linux@arm.linux.org.uk>,
	deller@gmx.de, jt@hpl.hp.com, rjw@sisk.pl,
	linux-wireless@vger.kernel.org,
	linux-arm-kernel@lists.arm.linux.org.uk
Subject: Re: [PATCH] WAVELAN - compile-time check for struct sizes
Date: Thu, 7 Feb 2008 14:08:42 -0500	[thread overview]
Message-ID: <20080207190842.GC3025@tuxdriver.com> (raw)
In-Reply-To: <20080207104912.c719deed.akpm@linux-foundation.org>

On Thu, Feb 07, 2008 at 10:49:12AM -0800, Andrew Morton wrote:
> On Thu, 7 Feb 2008 10:51:52 -0500 "John W. Linville" <linville@tuxdriver.com> wrote:
> 
> > On Wed, Feb 06, 2008 at 01:59:50PM -0800, Andrew Morton wrote:
> > > On Wed, 6 Feb 2008 21:47:47 +0000
> > > Russell King - ARM Linux <linux@arm.linux.org.uk> wrote:
> > 
> > > > I assume that it's the second BUILD_BUG_ON() which is triggering?
> > > 
> > > yup.
> > > 
> > > > Given that:
> > > > 
> > > > #define MMW_SIZE        37
> > > > 
> > > > is not a multiple of sizeof(unsigned long) this is hardly surprising.
> > > > 
> > > > If structures are used to define a layout of something and must not
> > > > contain compiler padding, it must be packed.  Given these structures
> > > > contain just unsigned char, there's no concerns about >8bit loads
> > > > becoming less efficient.
> > 
> > Does a patch like this suffice?  I haven't checked whether such a
> > patch implies that the BUILD_BUG_ON()'s become unnecessary...
> 
> With your patch applied and arm allmodconfig, this
> 
>         BUILD_BUG_ON(sizeof(ha_t) != HA_SIZE);
> 
> triggers
> 
> Without your patch applied, these two
> 
>         BUILD_BUG_ON(sizeof(mmw_t) != MMW_SIZE);
>         BUILD_BUG_ON(sizeof(ha_t) != HA_SIZE);
> 
> are triggering.

The ha_t one triggers either way?  Hmmm...

Russell suggested that the ha_t and psa_t packed attributes were
unnecessary, so I'll include the reduced version just in case the
above is a typo.

---

From: John W. Linville <linville@tuxdriver.com>
Subject: [PATCH] wavelan: mark hardware interfacing structures as packed

Signed-off-by: John W. Linville <linville@tuxdriver.com>
---
 drivers/net/wireless/wavelan.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/wavelan.h b/drivers/net/wireless/wavelan.h
index 27172cd..fde4613 100644
--- a/drivers/net/wireless/wavelan.h
+++ b/drivers/net/wireless/wavelan.h
@@ -292,7 +292,7 @@ struct mmw_t
 #define	MMW_EXT_ANT_INTERNAL	0x00	/* Internal antenna */
 #define	MMW_EXT_ANT_EXTERNAL	0x03	/* External antenna */
 #define	MMW_EXT_ANT_IQ_TEST	0x1C	/* IQ test pattern (set to 0) */
-};
+} __attribute__ ((packed));;
 
 #define	MMW_SIZE	37
 
@@ -347,7 +347,7 @@ struct mmr_t
   unsigned char	mmr_unused4[1];		/* unused */
   unsigned char	mmr_fee_data_l;		/* Read data from EEPROM (low) */
   unsigned char	mmr_fee_data_h;		/* Read data from EEPROM (high) */
-};
+} __attribute__ ((packed));
 
 #define	MMR_SIZE	36
 
-- 
1.5.3.3

-- 
John W. Linville
linville@tuxdriver.com

  reply	other threads:[~2008-02-07 19:39 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-13 14:16 [PATCH] WAVELAN - compile-time check for struct sizes Helge Deller
2008-02-03  6:45 ` Andrew Morton
2008-02-06 20:50   ` Helge Deller
2008-02-06 21:04     ` Andrew Morton
2008-02-06 21:47       ` Russell King - ARM Linux
2008-02-06 21:59         ` Andrew Morton
2008-02-07 15:51           ` John W. Linville
2008-02-07 16:06             ` Russell King - ARM Linux
2008-02-07 18:49             ` Andrew Morton
2008-02-07 19:08               ` John W. Linville [this message]
2008-02-07 19:50                 ` Russell King - ARM Linux
2008-02-07 20:02                 ` Andrew Morton
2008-02-07 20:46                   ` John W. Linville
2008-02-07 21:27                     ` Andrew Morton
2008-02-13 12:17                     ` Rafael J. Wysocki

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=20080207190842.GC3025@tuxdriver.com \
    --to=linville@tuxdriver.com \
    --cc=akpm@linux-foundation.org \
    --cc=deller@gmx.de \
    --cc=jt@hpl.hp.com \
    --cc=linux-arm-kernel@lists.arm.linux.org.uk \
    --cc=linux-wireless@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=rjw@sisk.pl \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).