diff options
author | Zbigniew Bodek <zbb@FreeBSD.org> | 2016-03-29 13:28:13 +0000 |
---|---|---|
committer | Zbigniew Bodek <zbb@FreeBSD.org> | 2016-03-29 13:28:13 +0000 |
commit | d6d108caa191d2e81b151d2085f10d61a6e26097 (patch) | |
tree | 8bcebb1805363b72db4470dd8e4c7204ae3d819e /sys/dev/vnic | |
parent | 15e01a35e15b287a525f9c1c65a08a6f36f9a2f6 (diff) | |
download | src-d6d108caa191d2e81b151d2085f10d61a6e26097.tar.gz src-d6d108caa191d2e81b151d2085f10d61a6e26097.zip |
Don't manage free SQ entry index by the atomic operations
It is not necessary as entries are being manipulated under lock.
Reviewed by: wma
Obtained from: Semihalf
Sponsored by: Cavium
Differential Revision: https://reviews.freebsd.org/D5536
Notes
Notes:
svn path=/head/; revision=297388
Diffstat (limited to 'sys/dev/vnic')
-rw-r--r-- | sys/dev/vnic/nicvf_queues.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/dev/vnic/nicvf_queues.c b/sys/dev/vnic/nicvf_queues.c index 13ea636d0010..337921de4903 100644 --- a/sys/dev/vnic/nicvf_queues.c +++ b/sys/dev/vnic/nicvf_queues.c @@ -48,7 +48,6 @@ __FBSDID("$FreeBSD$"); #include <sys/proc.h> #include <sys/sockio.h> #include <sys/socket.h> -#include <sys/stdatomic.h> #include <sys/cpuset.h> #include <sys/lock.h> #include <sys/mutex.h> @@ -1048,7 +1047,7 @@ nicvf_init_snd_queue(struct nicvf *nic, struct snd_queue *sq, int q_len, sq->desc = sq->dmem.base; sq->head = sq->tail = 0; - atomic_store_rel_int(&sq->free_cnt, q_len - 1); + sq->free_cnt = q_len - 1; sq->thresh = SND_QUEUE_THRESH; sq->idx = qidx; sq->nic = nic; @@ -1640,7 +1639,7 @@ nicvf_get_sq_desc(struct snd_queue *sq, int desc_cnt) int qentry; qentry = sq->tail; - atomic_subtract_int(&sq->free_cnt, desc_cnt); + sq->free_cnt -= desc_cnt; sq->tail += desc_cnt; sq->tail &= (sq->dmem.q_len - 1); @@ -1652,7 +1651,7 @@ static void nicvf_put_sq_desc(struct snd_queue *sq, int desc_cnt) { - atomic_add_int(&sq->free_cnt, desc_cnt); + sq->free_cnt += desc_cnt; sq->head += desc_cnt; sq->head &= (sq->dmem.q_len - 1); } |