On Wed, Jul 24, 2019 at 1:04 PM Erik Skultety <eskultet(a)redhat.com> wrote:
On Sat, Jul 06, 2019 at 01:24:22PM +0200, Ilias Stamatis wrote:
> Signed-off-by: Ilias Stamatis <stamatis.iliass(a)gmail.com>
> ---
...
> +
> + /* average or floor are mandatory, peak and burst are optional */
> + if (!bandwidth->in->average && !bandwidth->in->floor)
> + VIR_FREE(bandwidth->in);
> + if (!bandwidth->out->average)
> + VIR_FREE(bandwidth->out);
> +
> + if (!net->bandwidth) {
> + VIR_STEAL_PTR(net->bandwidth, bandwidth);
> + } else {
> + if (bandwidth->in) {
> + VIR_FREE(net->bandwidth->in);
> + VIR_STEAL_PTR(net->bandwidth->in, bandwidth->in);
> + }
> + if (bandwidth->out) {
> + VIR_FREE(net->bandwidth->out);
> + VIR_STEAL_PTR(net->bandwidth->out, bandwidth->out);
> + }
> + }
Doesn't look quite right, you just lost any way of resetting the bandwidth when
in fact this should be possible simply with setting .average=0, that's why the
original QEMU code uses booleans, because then at the end, the whole
net->bandwidth structure is set to NULL if reset was requested.
Erik
Aaah, right. This is one of the cases where many implicit comparisons
can be confusing. When I was reading that code I was wondering how
these booleans are useful at all. Now I get it, I'll send a v2.
Thanks,
Ilias