rocker: don't queue receive pkts when port is disabled
commit66851f640b73a5a84160ee6ab19ab429f68bbb9f
authorScott Feldman <sfeldma@gmail.com>
Wed, 1 Jul 2015 02:25:53 +0000 (30 19:25 -0700)
committerStefan Hajnoczi <stefanha@redhat.com>
Tue, 7 Jul 2015 12:10:26 +0000 (7 13:10 +0100)
tree5c7d24a9638edb70a9ddc34168c9432c8aa06d65
parentb83b5f2ef9753713c2fb64ff4cae7cb1e080624e
rocker: don't queue receive pkts when port is disabled

Commit 6e99c63 ("net/socket: Drop net_socket_can_send") changed the
semantics around .can_receive for sockets to now require the device to
flush queued pkts when transitioning to a .can_receive=true state.  Rocker
device was not flushing the queue on .can_receive=true transition, so the
receiver was stuck.

But, turns out we really don't want any queuing at all on the port when the
port is disabled, otherwise when the port transitions to enabled, we'd
receive and forward stale pkts that really should have been dropped.  So,
let's remove .can_receive so avoid queuing and drop the pkt in .receive if
the port is disabled.

Signed-off-by: Scott Feldman <sfeldma@gmail.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Message-id: 1435717553-36187-1-git-send-email-sfeldma@gmail.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
hw/net/rocker/rocker_fp.c