[net] protecting interfaces from races between control and data ?

Luigi Rizzo rizzo at iet.unipi.it
Mon Aug 5 20:16:24 UTC 2013


On Mon, Aug 5, 2013 at 8:19 PM, Adrian Chadd <adrian at freebsd.org> wrote:

> No, brian said two things:
>
> * the flag, protected by the core lock
> * per-queue flags
>

i see no mentions on per-queue flags on his email.
This is the relevant part

------------

What I've done in my drivers is:
  * Lock the core mutex
  * Clear IFF_DRV_RUNNING
  * Lock/unlock each queue's lock

The various Rx/Tx queue functions check for IFF_DRV_RUNNING after
(re)acquiring their queue lock. See at vtnet_stop_rendezvous() at
[1] for an example.

[1]
http://svnweb.freebsd.org/base/user/bryanv/vtnetmq/sys/dev/virtio/network/if_vtnet.c?revision=252451&view=markup

-----------------


>
>
>
> -adrian
>



-- 
-----------------------------------------+-------------------------------
 Prof. Luigi RIZZO, rizzo at iet.unipi.it  . Dip. di Ing. dell'Informazione
 http://www.iet.unipi.it/~luigi/        . Universita` di Pisa
 TEL      +39-050-2211611               . via Diotisalvi 2
 Mobile   +39-338-6809875               . 56122 PISA (Italy)
-----------------------------------------+-------------------------------


More information about the freebsd-current mailing list