All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anders Fugmann <afu@fugmann.dhs.org>
To: Laszlo Valko <valko@linux.karinthy.hu>
Cc: Thomas Heinz <creatix@hipac.org>, netfilter-devel@lists.netfilter.org
Subject: Re: Comments about IPT_ALIGN
Date: Sun, 26 Jan 2003 12:28:37 +0100	[thread overview]
Message-ID: <3E33C665.9080106@fugmann.dhs.org> (raw)
In-Reply-To: <20030126120159.A3045@linux.karinthy.hu>

Laszlo Valko wrote:
> On Sun, Jan 26, 2003 at 04:57:37AM +0100, Thomas Heinz wrote:
> 
>>Conclusions:
>>
>>Except for struct tptr both sparc64 and alpha have the same struct
>>alignment and member offsets for all structs.
> 
> 
> This is not too surprising. Both of them are RISC processors with
> strict alignment restrictions. I guess even with a 32bit sparc
> gcc, a 64bit unsigned integer gets aligned to 64bit just to make life
> easier (I'm not sure if there's a 64bit load instruction on 32bit sparc's).

Does this not pose an interresting problem?
What happens if userspace is 32bit, and kernel space is 64bit, when the 
elements of the structure changes size doe to conversion?
Eg:
struct x {
   int a;
   long int b;
   int c;
}

In 32bit userspace, x->a would have offset 0, x->b would have offset 4 
and x->c would have offset 8. But in 64bit kernel space, the long in 
would be 64 bit, and so the offset changes: offset x->a = 0, offset x->b 
  = 4, offset x->c = 12. The structure would then need a special 
conversion from 32 bit userspace to 64 bit kernel space in order for 
values in the struct to be accessed correctly. If this is true, then we 
must only use type with welldifined sizes, that is sizes that does not 
changes from userspace to kernel space.

Please correct me if I'm wrong.

Regards
Anders Fugmann

  reply	other threads:[~2003-01-26 11:28 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-26  3:57 Comments about IPT_ALIGN Thomas Heinz
2003-01-26 11:01 ` Laszlo Valko
2003-01-26 11:28   ` Anders Fugmann [this message]
2003-01-26 13:58     ` Thomas Heinz
2003-01-26 14:26       ` Laszlo Valko
2003-01-26 16:50         ` Thomas Heinz
2003-01-26 19:31           ` Laszlo Valko
2003-01-31 11:51       ` Harald Welte
2003-01-26 14:22     ` Laszlo Valko
2003-01-26 18:05       ` Thomas Heinz
2003-01-26 19:43         ` Laszlo Valko
2003-01-26 23:09           ` Thomas Heinz
2003-01-27  0:43             ` Laszlo Valko
2003-01-27 10:33               ` Thomas Heinz
2003-01-31 11:57                 ` Harald Welte
2003-01-26 19:48         ` Thomas Heinz
2003-01-31 11:55       ` Harald Welte
2003-01-31 23:37         ` Laszlo Valko
2003-01-26 17:06   ` Thomas Heinz

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=3E33C665.9080106@fugmann.dhs.org \
    --to=afu@fugmann.dhs.org \
    --cc=creatix@hipac.org \
    --cc=netfilter-devel@lists.netfilter.org \
    --cc=valko@linux.karinthy.hu \
    /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.