On Mon, Dec 03, 2012 at 06:30:49PM +0800, Jason Wang wrote:
On 12/03/2012 06:14 PM, Michael S. Tsirkin wrote:
quoted
On Tue, Nov 27, 2012 at 06:15:59PM +0800, Jason Wang wrote:
quoted
quoted
- if (!try_fill_recv(&vi->rq, GFP_KERNEL))
- schedule_delayed_work(&vi->rq.refill, 0);
+ for (i = 0; i < vi->max_queue_pairs; i++)
+ if (!try_fill_recv(&vi->rq[i], GFP_KERNEL))
+ schedule_delayed_work(&vi->rq[i].refill, 0);
mutex_lock(&vi->config_lock);
vi->config_enable = true;
mutex_unlock(&vi->config_lock);
+ BUG_ON(virtnet_set_queues(vi));
+
return 0;
}
#endif
Also crashing on device nack of command is also not nice.
In this case it seems we can just switch to
single-queue mode which should always be safe.
Not sure it's safe. It depends on the reason why this call fails. If we
left a state that the driver only use single queue but the device use
multi queues, we may still lost the network.
Looks like we won't: napi will stay enabled on all queues
so we will process incoming packets.
--
MST