Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Jan 2020 15:37:48 -0500
From:      Mark Johnston <markj@freebsd.org>
To:        Gleb Smirnoff <glebius@freebsd.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r357090 - head/sys/dev/re
Message-ID:  <20200125203748.GA56065@raichu>
In-Reply-To: <202001241724.00OHO3jn066308@repo.freebsd.org>
References:  <202001241724.00OHO3jn066308@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jan 24, 2020 at 05:24:03PM +0000, Gleb Smirnoff wrote:
> Author: glebius
> Date: Fri Jan 24 17:24:02 2020
> New Revision: 357090
> URL: https://svnweb.freebsd.org/changeset/base/357090
> 
> Log:
>   re(4) uses taskqueue to process input packets.  Enter network epoch
>   in there.

ena(4) and the virtio network driver are similarly broken.

> Modified:
>   head/sys/dev/re/if_re.c
> 
> Modified: head/sys/dev/re/if_re.c
> ==============================================================================
> --- head/sys/dev/re/if_re.c	Fri Jan 24 17:15:31 2020	(r357089)
> +++ head/sys/dev/re/if_re.c	Fri Jan 24 17:24:02 2020	(r357090)
> @@ -2576,6 +2576,7 @@ re_intr(void *arg)
>  static void
>  re_int_task(void *arg, int npending)
>  {
> +	struct epoch_tracker	et;
>  	struct rl_softc		*sc;
>  	struct ifnet		*ifp;
>  	u_int16_t		status;
> @@ -2602,8 +2603,11 @@ re_int_task(void *arg, int npending)
>  	}
>  #endif
>  
> -	if (status & (RL_ISR_RX_OK|RL_ISR_RX_ERR|RL_ISR_FIFO_OFLOW))
> +	if (status & (RL_ISR_RX_OK|RL_ISR_RX_ERR|RL_ISR_FIFO_OFLOW)) {
> +		NET_EPOCH_ENTER(et);
>  		rval = re_rxeof(sc, NULL);
> +		NET_EPOCH_EXIT(et);
> +	}
>  
>  	/*
>  	 * Some chips will ignore a second TX request issued



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20200125203748.GA56065>