hw/net: move allocation to the heap due to very large stack frame
[dwg] The stack frame itself probably isn't that big a deal, but avoiding alloca() is generally recommended these days. Signed-off-by: Elena Afanasova <eafanasova@gmail.com> Message-Id: <8f07132478469b35fb50a4706691e2b56b10a67b.camel@gmail.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
dff669d6a1
commit
2d154d2694
|
@ -688,7 +688,8 @@ static target_ulong h_send_logical_lan(PowerPCCPU *cpu,
|
||||||
SpaprVioDevice *sdev = spapr_vio_find_by_reg(spapr->vio_bus, reg);
|
SpaprVioDevice *sdev = spapr_vio_find_by_reg(spapr->vio_bus, reg);
|
||||||
SpaprVioVlan *dev = VIO_SPAPR_VLAN_DEVICE(sdev);
|
SpaprVioVlan *dev = VIO_SPAPR_VLAN_DEVICE(sdev);
|
||||||
unsigned total_len;
|
unsigned total_len;
|
||||||
uint8_t *lbuf, *p;
|
uint8_t *p;
|
||||||
|
g_autofree uint8_t *lbuf = NULL;
|
||||||
int i, nbufs;
|
int i, nbufs;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -729,7 +730,7 @@ static target_ulong h_send_logical_lan(PowerPCCPU *cpu,
|
||||||
return H_RESOURCE;
|
return H_RESOURCE;
|
||||||
}
|
}
|
||||||
|
|
||||||
lbuf = alloca(total_len);
|
lbuf = g_malloc(total_len);
|
||||||
p = lbuf;
|
p = lbuf;
|
||||||
for (i = 0; i < nbufs; i++) {
|
for (i = 0; i < nbufs; i++) {
|
||||||
ret = spapr_vio_dma_read(sdev, VLAN_BD_ADDR(bufs[i]),
|
ret = spapr_vio_dma_read(sdev, VLAN_BD_ADDR(bufs[i]),
|
||||||
|
|
Loading…
Reference in a new issue