Module Name: src
Committed By: martin
Date: Wed May 13 12:37:31 UTC 2020
Modified Files:
src/sys/arch/x86/pci [netbsd-9]: if_vmx.c
Log Message:
Pull up following revision(s) (requested by yamaguchi in ticket #902):
sys/arch/x86/pci/if_vmx.c: revision 1.60
Fix the wrong logic about making the number of vmx(4) TX/RX queue
be power of two
reviewed by [email protected].
To generate a diff of this commit:
cvs rdiff -u -r1.45.2.6 -r1.45.2.7 src/sys/arch/x86/pci/if_vmx.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/x86/pci/if_vmx.c
diff -u src/sys/arch/x86/pci/if_vmx.c:1.45.2.6 src/sys/arch/x86/pci/if_vmx.c:1.45.2.7
--- src/sys/arch/x86/pci/if_vmx.c:1.45.2.6 Tue Jan 28 11:01:37 2020
+++ src/sys/arch/x86/pci/if_vmx.c Wed May 13 12:37:31 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: if_vmx.c,v 1.45.2.6 2020/01/28 11:01:37 martin Exp $ */
+/* $NetBSD: if_vmx.c,v 1.45.2.7 2020/05/13 12:37:31 martin Exp $ */
/* $OpenBSD: if_vmx.c,v 1.16 2014/01/22 06:04:17 brad Exp $ */
/*
@@ -19,12 +19,13 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_vmx.c,v 1.45.2.6 2020/01/28 11:01:37 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_vmx.c,v 1.45.2.7 2020/05/13 12:37:31 martin Exp $");
#include <sys/param.h>
#include <sys/cpu.h>
#include <sys/kernel.h>
#include <sys/kmem.h>
+#include <sys/bitops.h>
#include <sys/bus.h>
#include <sys/device.h>
#include <sys/mbuf.h>
@@ -460,23 +461,11 @@ CFATTACH_DECL3_NEW(vmx, sizeof(struct vm
static int
vmxnet3_calc_queue_size(int n)
{
- int v, q;
- v = n;
- while (v != 0) {
- if (powerof2(n) != 0)
- break;
- v /= 2;
- q = rounddown2(n, v);
- if (q != 0) {
- n = q;
- break;
- }
- }
- if (n == 0)
- n = 1;
+ if (__predict_false(n <= 0))
+ return 1;
- return n;
+ return (1U << (fls32(n) - 1));
}
static inline void