Il 24/08/2012 09:56, rongqing...@windriver.com ha scritto: > Only one hub port's peer can_receive() returns 1, the source > hub port .can_receive should return 1, to fix the below bug: > > The up state NIC can not receive any packets if guest has > more than two NICs and only one NIC is in down state. > http://lists.nongnu.org/archive/html/qemu-discuss/2012-08/msg00036.html > > This bug is introduced by 52a3cb8(add the support for hub > own flow control) and 60c07d93 (fix qemu_can_send_packet logic), > they are tried to fix that usb NIC lost packets by blocking hub > receive until all port attached this hub can receive since usb > NIC only can accept one packet at one time, their logic is wrong, > we should fix it by creating a queue for usb NIC.
A link-down NIC should always return 1 from can_receive (and will drop the packet). Is that the real bug here? Paolo