All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC (fix for 5.0?)] block/io: do not do pointer arithmetic on void *
@ 2020-03-18 14:22 Vladimir Sementsov-Ogievskiy
  2020-03-18 14:26 ` Daniel P. Berrangé
  0 siblings, 1 reply; 4+ messages in thread
From: Vladimir Sementsov-Ogievskiy @ 2020-03-18 14:22 UTC (permalink / raw)
  To: qemu-block; +Cc: kwolf, fam, vsementsov, qemu-devel, mreitz, stefanha

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
---

Hi all!

C standard doesn't allow pointer arithmetic on void *.
Still, gcc allows it as an extension:
 https://gcc.gnu.org/onlinedocs/gcc-4.8.0/gcc/Pointer-Arith.html

I can create a series of patches like this. Do we need it?

Also, where is documented which compilers are supported by Qemu?

 block/io.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/block/io.c b/block/io.c
index aba67f66b9..539178aed5 100644
--- a/block/io.c
+++ b/block/io.c
@@ -1277,7 +1277,7 @@ static int coroutine_fn bdrv_co_do_copy_on_readv(BdrvChild *child,
      * modifying the image file.  This is critical for zero-copy guest I/O
      * where anything might happen inside guest memory.
      */
-    void *bounce_buffer = NULL;
+    char *bounce_buffer = NULL;
 
     BlockDriver *drv = bs->drv;
     int64_t cluster_offset;
-- 
2.21.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [RFC (fix for 5.0?)] block/io: do not do pointer arithmetic on void *
  2020-03-18 14:22 [RFC (fix for 5.0?)] block/io: do not do pointer arithmetic on void * Vladimir Sementsov-Ogievskiy
@ 2020-03-18 14:26 ` Daniel P. Berrangé
  2020-03-18 14:39   ` Eric Blake
  2020-03-20 16:08   ` Stefan Hajnoczi
  0 siblings, 2 replies; 4+ messages in thread
From: Daniel P. Berrangé @ 2020-03-18 14:26 UTC (permalink / raw)
  To: Vladimir Sementsov-Ogievskiy
  Cc: kwolf, fam, qemu-block, qemu-devel, mreitz, stefanha

On Wed, Mar 18, 2020 at 05:22:53PM +0300, Vladimir Sementsov-Ogievskiy wrote:
> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
> ---
> 
> Hi all!
> 
> C standard doesn't allow pointer arithmetic on void *.
> Still, gcc allows it as an extension:
>  https://gcc.gnu.org/onlinedocs/gcc-4.8.0/gcc/Pointer-Arith.html
> 
> I can create a series of patches like this. Do we need it?

I don't think so, we only care about gcc & clang.

> Also, where is documented which compilers are supported by Qemu?

It is checked in configure - gcc 4.8 or clang 3.4 or xcode clang 5.1

> 
>  block/io.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/block/io.c b/block/io.c
> index aba67f66b9..539178aed5 100644
> --- a/block/io.c
> +++ b/block/io.c
> @@ -1277,7 +1277,7 @@ static int coroutine_fn bdrv_co_do_copy_on_readv(BdrvChild *child,
>       * modifying the image file.  This is critical for zero-copy guest I/O
>       * where anything might happen inside guest memory.
>       */
> -    void *bounce_buffer = NULL;
> +    char *bounce_buffer = NULL;
>  
>      BlockDriver *drv = bs->drv;
>      int64_t cluster_offset;
> -- 
> 2.21.0
> 
> 

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [RFC (fix for 5.0?)] block/io: do not do pointer arithmetic on void *
  2020-03-18 14:26 ` Daniel P. Berrangé
@ 2020-03-18 14:39   ` Eric Blake
  2020-03-20 16:08   ` Stefan Hajnoczi
  1 sibling, 0 replies; 4+ messages in thread
From: Eric Blake @ 2020-03-18 14:39 UTC (permalink / raw)
  To: Daniel P. Berrangé, Vladimir Sementsov-Ogievskiy
  Cc: kwolf, fam, qemu-block, qemu-devel, mreitz, stefanha

On 3/18/20 9:26 AM, Daniel P. Berrangé wrote:
> On Wed, Mar 18, 2020 at 05:22:53PM +0300, Vladimir Sementsov-Ogievskiy wrote:
>> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
>> ---
>>
>> Hi all!
>>
>> C standard doesn't allow pointer arithmetic on void *.
>> Still, gcc allows it as an extension:
>>   https://gcc.gnu.org/onlinedocs/gcc-4.8.0/gcc/Pointer-Arith.html
>>
>> I can create a series of patches like this. Do we need it?
> 
> I don't think so, we only care about gcc & clang.

Still, if all supported compilers support the extension, then our 
CODING_STYLE.rst should mention that it is safe to rely on the extension.

> 
>> Also, where is documented which compilers are supported by Qemu?
> 
> It is checked in configure - gcc 4.8 or clang 3.4 or xcode clang 5.1
> 


-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [RFC (fix for 5.0?)] block/io: do not do pointer arithmetic on void *
  2020-03-18 14:26 ` Daniel P. Berrangé
  2020-03-18 14:39   ` Eric Blake
@ 2020-03-20 16:08   ` Stefan Hajnoczi
  1 sibling, 0 replies; 4+ messages in thread
From: Stefan Hajnoczi @ 2020-03-20 16:08 UTC (permalink / raw)
  To: Daniel P. Berrangé
  Cc: kwolf, fam, Vladimir Sementsov-Ogievskiy, qemu-block, qemu-devel, mreitz

[-- Attachment #1: Type: text/plain, Size: 591 bytes --]

On Wed, Mar 18, 2020 at 02:26:54PM +0000, Daniel P. Berrangé wrote:
> On Wed, Mar 18, 2020 at 05:22:53PM +0300, Vladimir Sementsov-Ogievskiy wrote:
> > Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
> > ---
> > 
> > Hi all!
> > 
> > C standard doesn't allow pointer arithmetic on void *.
> > Still, gcc allows it as an extension:
> >  https://gcc.gnu.org/onlinedocs/gcc-4.8.0/gcc/Pointer-Arith.html
> > 
> > I can create a series of patches like this. Do we need it?
> 
> I don't think so, we only care about gcc & clang.

I agree with Dan.

Stefan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-03-20 16:10 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-18 14:22 [RFC (fix for 5.0?)] block/io: do not do pointer arithmetic on void * Vladimir Sementsov-Ogievskiy
2020-03-18 14:26 ` Daniel P. Berrangé
2020-03-18 14:39   ` Eric Blake
2020-03-20 16:08   ` Stefan Hajnoczi

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.