All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daryl Van Vorst" <daryl@wideray.com>
To: "'Marcel Holtmann'" <marcel@holtmann.org>
Cc: "'BlueZ Mailing List'" <bluez-devel@lists.sourceforge.net>
Subject: RE: [Bluez-devel] Alignment issue
Date: Wed, 11 Aug 2004 09:44:15 -0700	[thread overview]
Message-ID: <001201c47fc2$7093e4a0$1301010a@baked> (raw)
In-Reply-To: <1092208405.4564.227.camel@pegasus>

Marcel,

Actually just using memmove instead of memcpy was the first thing I tried
that worked. Someone else here suggested that.

But I thought I read somewhere that the compiler is allowed to optimize
memmove in the same way. Though I don't know if gcc ever does (and
apparently it doesn't in this case). But if it is allowed to, then some
future version of gcc may. Perhaps I misread it.

-Daryl.

> -----Original Message-----
> From: bluez-devel-admin@lists.sourceforge.net 
> [mailto:bluez-devel-admin@lists.sourceforge.net] On Behalf Of 
> Marcel Holtmann
> Sent: August 11, 2004 12:13 AM
> To: Daryl Van Vorst
> Cc: 'BlueZ Mailing List'
> Subject: Re: [Bluez-devel] Alignment issue
> 
> 
> Hi Daryl,
> 
> > The attached patch should fix the problem (it does as far 
> as I can tell).
> > The compiler probably thinks both arguments to memcpy() are 
> aligned and so
> > makes an optimization which breaks the copy (because the 
> destination is not
> > actually aligned). Perhaps this is a compiler bug... I'm 
> using gcc 3.3.3.
> > After googling and reading some discussion on the topic it 
> seems that it's
> > probably not a compiler bug. I'll leave that for someone 
> else to decide. :)
> 
> after checking some more resources, you may be right and the compiler
> optimizes here where it should not. I found a comment about gcc and
> using its __builtin_memcpy. Try to replace the memcpy with memmove and
> see if this works.
> 
> --- bluetooth.h 2004/07/04 15:38:11     1.14
> +++ bluetooth.h 2004/08/11 07:07:12     1.15
> @@ -93,10 +93,10 @@ enum {
>  #define bt_put_unaligned(val, ptr) ((void)( *(ptr) = (val) ))
>  #else
>  #define bt_get_unaligned(ptr) \
> -       ({ __typeof__(*(ptr)) __tmp; memcpy(&__tmp, (ptr), 
> sizeof(*(ptr))); __tmp; })
> +       ({ __typeof__(*(ptr)) __tmp; memmove(&__tmp, (ptr), 
> sizeof(*(ptr))); __tmp; })
>  #define bt_put_unaligned(val, ptr) \
>         ({ __typeof__(*(ptr)) __tmp = (val); \
> -       memcpy((ptr), &__tmp, sizeof(*(ptr))); \
> +       memmove((ptr), &__tmp, sizeof(*(ptr))); \
>         (void)0; })
>  #endif
> 
> Regards
> 
> Marcel
> 
> 
> 
> 
> -------------------------------------------------------
> SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
> 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
> Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
> http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
> _______________________________________________
> Bluez-devel mailing list
> Bluez-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bluez-devel
> 

  reply	other threads:[~2004-08-11 16:44 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-10 18:38 [Bluez-devel] Alignment issue Daryl Van Vorst
2004-08-10 23:12 ` Marcel Holtmann
2004-08-11  9:20   ` Stephen Crane
2004-08-11 11:08     ` David Woodhouse
2004-08-11 19:33       ` Marcel Holtmann
2004-08-11  7:13 ` Marcel Holtmann
2004-08-11 16:44   ` Daryl Van Vorst [this message]
2004-08-11 19:31     ` Marcel Holtmann
2004-08-12  8:34       ` David Woodhouse
2004-08-12  9:27         ` Marcel Holtmann
2004-08-12 10:01           ` David Woodhouse
2004-08-12 10:22             ` Marcel Holtmann
2004-08-12 10:35               ` David Woodhouse
2004-08-12 11:00                 ` Marcel Holtmann
2004-08-12 11:33                   ` David Woodhouse
2004-08-12 11:49                     ` Marcel Holtmann
2004-08-12 12:02                       ` David Woodhouse
2004-08-12 12:29                         ` Marcel Holtmann
2004-08-12 13:36                         ` Marcel Holtmann
2004-08-13  8:07                           ` David Woodhouse
2004-08-13  9:05                             ` Marcel Holtmann
2004-08-13  9:14                               ` David Woodhouse
2004-08-13 11:52                               ` David Woodhouse
2004-08-13 12:40                                 ` Marcel Holtmann
2004-08-12 12:53               ` David Woodhouse
2004-08-13  9:58                 ` Marcel Holtmann
2004-08-13 10:56                   ` David Woodhouse
2004-08-12 10:10           ` Stephen Crane
2004-08-12 10:25             ` Marcel Holtmann
2005-01-20 14:30   ` David Woodhouse
2005-01-20 14:45     ` Marcel Holtmann
2005-01-20 14:59       ` David Woodhouse
2005-01-20 18:14         ` Marcel Holtmann
2005-01-21  8:26           ` David Woodhouse
2005-01-23  8:12             ` Marcel Holtmann
2005-01-23 11:39         ` Marcel Holtmann
2005-01-23 12:29           ` David Woodhouse
2005-01-23 14:40             ` Marcel Holtmann
2005-01-23 15:11               ` David Woodhouse
2005-01-23 15:22                 ` Marcel Holtmann
2005-01-23 23:16                   ` David Woodhouse
  -- strict thread matches above, loose matches on Subject: below --
2004-08-16  9:48 john smith
2004-08-16 10:15 ` Marcel Holtmann

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='001201c47fc2$7093e4a0$1301010a@baked' \
    --to=daryl@wideray.com \
    --cc=bluez-devel@lists.sourceforge.net \
    --cc=marcel@holtmann.org \
    /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.