HomeFreeBSD

xen/netfront: don't drop the ring RX lock with inconsistent ring state

Description

xen/netfront: don't drop the ring RX lock with inconsistent ring state

Make sure the RX ring lock is only released when the state of the ring is
consistent, or else concurrent calls to xn_rxeof might get an inconsistent ring
state and thus some packets might be processed twice.

Note that this is not very common, and could only happen when an interrupt is
delivered while in xn_ifinit.

Reported by: cperciva
Tested by: cperciva
MFC after: 1 week
Sponsored by: Citrix Systems R&D

Details

Provenance
roygerAuthored on
Parents
rS318522: Enable proper configuration of CESA MBUS windows
Branches
Unknown
Tags
Unknown