Yuval Mintz <Yuval.Mintz@xxxxxxxxxx> writes: >> +static void netvsc_inject_enable(struct net_device_context >> +*net_device_ctx) { >> + net_device_ctx->vf_inject = true; >> +} >> + >> +static void netvsc_inject_disable(struct net_device_context >> +*net_device_ctx) { >> + net_device_ctx->vf_inject = false; >> + >> + /* Wait for currently active users to drain out. */ >> + while (atomic_read(&net_device_ctx->vf_use_cnt) != 0) >> + udelay(50); >> +} > > That was already the behavior before, but are you certain you > want to unconditionally block without any possible timeout? Yes, this is OK. After PATCH4 of this series there is only one place which takes the vf_use_cnt (netvsc_recv_callback()) and it is an interrupt handler, there are no sleepable operations there. -- Vitaly _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel