Re: sparc64: vnet: add size to free(9) call

2022-07-20 Thread Mark Kettenis
> Date: Wed, 20 Jul 2022 19:38:13 +
> From: Klemens Nanni 
> 
> On Wed, Jul 01, 2020 at 01:15:06AM +0200, Klemens Nanni wrote:
> > Without any later realloactions, size is taken from vnet_dring_alloc():
> > 
> > struct vnet_dring *vd;
> > ...
> > vd = malloc(sizeof(struct vnet_dring), M_DEVBUF, M_NOWAIT);
> > 
> > Tested on T4-2 guest domains:
> > 
> > vnet0 at cbus0 chan 0x6: ivec 0xc, 0xd, address 00:14:4f:f9:3f:34
> > vnet1 at cbus0 chan 0x7: ivec 0xe, 0xf, address 00:14:4f:fb:05:2d
> > 
> > Feedback? OK?
> 
> Found this old diff still in my tree.
> 
> vnet_init() does
>   sc_vd = vnet_dring_alloc(sc->sc_dmatag, VNET_NUM_SOFT_DESC);
> 
> vnet_dring_alloc() allocates as per above, then
> vnet_stop() does
>   vnet_dring_free(sc->sc_dmatag, sc->sc_vd);
> 
> OK?

sure
ok kettenis@

> Index: sys/arch/sparc64/dev/vnet.c
> ===
> RCS file: /cvs/src/sys/arch/sparc64/dev/vnet.c,v
> retrieving revision 1.64
> diff -u -p -r1.64 vnet.c
> --- sys/arch/sparc64/dev/vnet.c   24 Oct 2021 17:05:04 -  1.64
> +++ sys/arch/sparc64/dev/vnet.c   20 Jul 2022 19:33:55 -
> @@ -1535,5 +1535,5 @@ vnet_dring_free(bus_dma_tag_t t, struct 
>   bus_dmamem_unmap(t, (caddr_t)vd->vd_desc, size);
>   bus_dmamem_free(t, >vd_seg, 1);
>   bus_dmamap_destroy(t, vd->vd_map);
> - free(vd, M_DEVBUF, 0);
> + free(vd, M_DEVBUF, sizeof(*vd));
>  }
> 
> 



Re: sparc64: vnet: add size to free(9) call

2022-07-20 Thread Klemens Nanni
On Wed, Jul 01, 2020 at 01:15:06AM +0200, Klemens Nanni wrote:
> Without any later realloactions, size is taken from vnet_dring_alloc():
> 
>   struct vnet_dring *vd;
>   ...
>   vd = malloc(sizeof(struct vnet_dring), M_DEVBUF, M_NOWAIT);
> 
> Tested on T4-2 guest domains:
> 
>   vnet0 at cbus0 chan 0x6: ivec 0xc, 0xd, address 00:14:4f:f9:3f:34
>   vnet1 at cbus0 chan 0x7: ivec 0xe, 0xf, address 00:14:4f:fb:05:2d
> 
> Feedback? OK?

Found this old diff still in my tree.

vnet_init() does
sc_vd = vnet_dring_alloc(sc->sc_dmatag, VNET_NUM_SOFT_DESC);

vnet_dring_alloc() allocates as per above, then
vnet_stop() does
vnet_dring_free(sc->sc_dmatag, sc->sc_vd);

OK?


Index: sys/arch/sparc64/dev/vnet.c
===
RCS file: /cvs/src/sys/arch/sparc64/dev/vnet.c,v
retrieving revision 1.64
diff -u -p -r1.64 vnet.c
--- sys/arch/sparc64/dev/vnet.c 24 Oct 2021 17:05:04 -  1.64
+++ sys/arch/sparc64/dev/vnet.c 20 Jul 2022 19:33:55 -
@@ -1535,5 +1535,5 @@ vnet_dring_free(bus_dma_tag_t t, struct 
bus_dmamem_unmap(t, (caddr_t)vd->vd_desc, size);
bus_dmamem_free(t, >vd_seg, 1);
bus_dmamap_destroy(t, vd->vd_map);
-   free(vd, M_DEVBUF, 0);
+   free(vd, M_DEVBUF, sizeof(*vd));
 }



sparc64: vnet: add size to free(9) call

2020-06-30 Thread Klemens Nanni
Without any later realloactions, size is taken from vnet_dring_alloc():

struct vnet_dring *vd;
...
vd = malloc(sizeof(struct vnet_dring), M_DEVBUF, M_NOWAIT);

Tested on T4-2 guest domains:

vnet0 at cbus0 chan 0x6: ivec 0xc, 0xd, address 00:14:4f:f9:3f:34
vnet1 at cbus0 chan 0x7: ivec 0xe, 0xf, address 00:14:4f:fb:05:2d

Feedback? OK?

diff --git a/sys/arch/sparc64/dev/vnet.c b/sys/arch/sparc64/dev/vnet.c
index 147caf1f2..97883df76 100644
--- a/sys/arch/sparc64/dev/vnet.c
+++ b/sys/arch/sparc64/dev/vnet.c
@@ -1535,5 +1535,5 @@ vnet_dring_free(bus_dma_tag_t t, struct vnet_dring *vd)
bus_dmamem_unmap(t, (caddr_t)vd->vd_desc, size);
bus_dmamem_free(t, >vd_seg, 1);
bus_dmamap_destroy(t, vd->vd_map);
-   free(vd, M_DEVBUF, 0);
+   free(vd, M_DEVBUF, sizeof(*vd));
 }