svn commit: r261569 - in projects/uefi: lib/libstand sbin/dhclient sys/arm/arm sys/arm/at91 sys/arm/econa sys/arm/include sys/arm/s3c2xx0 sys/arm/xscale/ixp425 sys/boot sys/boot/i386/gptboot sys/bo...
Ed Maste
emaste at FreeBSD.org
Thu Feb 6 22:10:32 UTC 2014
Author: emaste
Date: Thu Feb 6 22:10:26 2014
New Revision: 261569
URL: http://svnweb.freebsd.org/changeset/base/261569
Log:
Merge from HEAD at r261568
Sponsored by: The FreeBSD Foundation
Added:
projects/uefi/sys/boot/libstand32/
- copied from r261568, head/sys/boot/libstand32/
Modified:
projects/uefi/lib/libstand/libstand.3
projects/uefi/sbin/dhclient/bpf.c
projects/uefi/sbin/dhclient/dhclient.c
projects/uefi/sys/arm/arm/locore.S
projects/uefi/sys/arm/arm/machdep.c
projects/uefi/sys/arm/arm/vfp.c
projects/uefi/sys/arm/arm/vm_machdep.c
projects/uefi/sys/arm/at91/at91_machdep.c
projects/uefi/sys/arm/econa/econa_machdep.c
projects/uefi/sys/arm/include/cpu.h
projects/uefi/sys/arm/include/machdep.h
projects/uefi/sys/arm/s3c2xx0/s3c24x0_machdep.c
projects/uefi/sys/arm/xscale/ixp425/avila_machdep.c
projects/uefi/sys/boot/Makefile.amd64
projects/uefi/sys/boot/Makefile.i386
projects/uefi/sys/boot/i386/gptboot/Makefile
projects/uefi/sys/boot/i386/gptzfsboot/Makefile
projects/uefi/sys/boot/i386/loader/Makefile
projects/uefi/sys/boot/i386/zfsboot/Makefile
projects/uefi/sys/dev/cxgbe/adapter.h
projects/uefi/sys/dev/cxgbe/t4_main.c
projects/uefi/tools/regression/security/cap_test/cap_test_capabilities.c
Directory Properties:
projects/uefi/ (props changed)
projects/uefi/sbin/ (props changed)
projects/uefi/sys/ (props changed)
projects/uefi/sys/boot/ (props changed)
projects/uefi/usr.sbin/jail/ (props changed)
Modified: projects/uefi/lib/libstand/libstand.3
==============================================================================
--- projects/uefi/lib/libstand/libstand.3 Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/lib/libstand/libstand.3 Thu Feb 6 22:10:26 2014 (r261569)
@@ -675,6 +675,6 @@ the environment functions and this manpa
.Sh BUGS
The lack of detailed memory usage data is unhelpful.
.Pp
-On the amd64 and powerpc64 architectures
+On the powerpc64 architecture
.Nm
is a 32-bit library.
Modified: projects/uefi/sbin/dhclient/bpf.c
==============================================================================
--- projects/uefi/sbin/dhclient/bpf.c Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/sbin/dhclient/bpf.c Thu Feb 6 22:10:26 2014 (r261569)
@@ -269,7 +269,7 @@ if_register_receive(struct interface_inf
if (ioctl(info->rfdesc, BIOCLOCK, NULL) < 0)
error("Cannot lock bpf");
- cap_rights_init(&rights, CAP_IOCTL, CAP_POLL_EVENT, CAP_READ);
+ cap_rights_init(&rights, CAP_IOCTL, CAP_EVENT, CAP_READ);
if (cap_rights_limit(info->rfdesc, &rights) < 0 && errno != ENOSYS)
error("Can't limit bpf descriptor: %m");
if (cap_ioctls_limit(info->rfdesc, cmds, 2) < 0 && errno != ENOSYS)
Modified: projects/uefi/sbin/dhclient/dhclient.c
==============================================================================
--- projects/uefi/sbin/dhclient/dhclient.c Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/sbin/dhclient/dhclient.c Thu Feb 6 22:10:26 2014 (r261569)
@@ -494,7 +494,7 @@ main(int argc, char *argv[])
add_protocol("AF_ROUTE", routefd, routehandler, ifi);
if (shutdown(routefd, SHUT_WR) < 0)
error("can't shutdown route socket: %m");
- cap_rights_init(&rights, CAP_POLL_EVENT, CAP_READ);
+ cap_rights_init(&rights, CAP_EVENT, CAP_READ);
if (cap_rights_limit(routefd, &rights) < 0 && errno != ENOSYS)
error("can't limit route socket: %m");
Modified: projects/uefi/sys/arm/arm/locore.S
==============================================================================
--- projects/uefi/sys/arm/arm/locore.S Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/sys/arm/arm/locore.S Thu Feb 6 22:10:26 2014 (r261569)
@@ -216,7 +216,7 @@ mmu_done:
ldr pc, .Lvirt_done
virt_done:
- mov r1, #20 /* loader info size is 20 bytes also second arg */
+ mov r1, #24 /* loader info size is 24 bytes also second arg */
subs sp, sp, r1 /* allocate arm_boot_params struct on stack */
bic sp, sp, #7 /* align stack to 8 bytes */
mov r0, sp /* loader info pointer is first arg */
@@ -225,6 +225,8 @@ virt_done:
str r8, [r0, #8] /* Store r1 from boot loader */
str ip, [r0, #12] /* store r2 from boot loader */
str fp, [r0, #16] /* store r3 from boot loader */
+ ldr r5, =KERNPHYSADDR /* load KERNPHYSADDR as the physical address */
+ str r5, [r0, #20] /* store the physical address */
mov fp, #0 /* trace back starts here */
bl _C_LABEL(initarm) /* Off we go */
Modified: projects/uefi/sys/arm/arm/machdep.c
==============================================================================
--- projects/uefi/sys/arm/arm/machdep.c Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/sys/arm/arm/machdep.c Thu Feb 6 22:10:26 2014 (r261569)
@@ -788,7 +788,7 @@ makectx(struct trapframe *tf, struct pcb
* calling pmap_bootstrap.
*/
void
-arm_dump_avail_init(vm_offset_t ramsize, size_t max)
+arm_dump_avail_init(vm_paddr_t physaddr, vm_offset_t ramsize, size_t max)
{
#ifdef LINUX_BOOT_ABI
/*
@@ -814,8 +814,8 @@ arm_dump_avail_init(vm_offset_t ramsize,
if (max < 4)
panic("dump_avail too small\n");
- dump_avail[0] = round_page(PHYSADDR);
- dump_avail[1] = trunc_page(PHYSADDR + ramsize);
+ dump_avail[0] = round_page(physaddr);
+ dump_avail[1] = trunc_page(physaddr + ramsize);
dump_avail[2] = 0;
dump_avail[3] = 0;
}
@@ -901,7 +901,7 @@ linux_parse_boot_param(struct arm_boot_p
board_id = abp->abp_r1;
walker = (struct arm_lbabi_tag *)
- (abp->abp_r2 + KERNVIRTADDR - KERNPHYSADDR);
+ (abp->abp_r2 + KERNVIRTADDR - abp->abp_physaddr);
/* xxx - Need to also look for binary device tree */
if (ATAG_TAG(walker) != ATAG_CORE)
@@ -979,7 +979,7 @@ freebsd_parse_boot_param(struct arm_boot
ksym_start = MD_FETCH(kmdp, MODINFOMD_SSYM, uintptr_t);
ksym_end = MD_FETCH(kmdp, MODINFOMD_ESYM, uintptr_t);
#endif
- preload_addr_relocate = KERNVIRTADDR - KERNPHYSADDR;
+ preload_addr_relocate = KERNVIRTADDR - abp->abp_physaddr;
return lastaddr;
}
#endif
@@ -1081,15 +1081,15 @@ print_kenv(void)
}
static void
-physmap_init(struct mem_region *availmem_regions, int availmem_regions_sz)
+physmap_init(struct mem_region *availmem_regions, int availmem_regions_sz,
+ vm_offset_t kernload)
{
int i, j, cnt;
- vm_offset_t phys_kernelend, kernload;
+ vm_offset_t phys_kernelend;
uint32_t s, e, sz;
struct mem_region *mp, *mp1;
- phys_kernelend = KERNPHYSADDR + (virtual_avail - KERNVIRTADDR);
- kernload = KERNPHYSADDR;
+ phys_kernelend = kernload + (virtual_avail - KERNVIRTADDR);
/*
* Remove kernel physical address range from avail
@@ -1331,7 +1331,7 @@ initarm(struct arm_boot_params *abp)
/* Define a macro to simplify memory allocation */
#define valloc_pages(var, np) \
alloc_pages((var).pv_va, (np)); \
- (var).pv_pa = (var).pv_va + (KERNPHYSADDR - KERNVIRTADDR);
+ (var).pv_pa = (var).pv_va + (abp->abp_physaddr - KERNVIRTADDR);
#define alloc_pages(var, np) \
(var) = freemempos; \
@@ -1352,7 +1352,7 @@ initarm(struct arm_boot_params *abp)
L2_TABLE_SIZE_REAL * (i - j);
kernel_pt_table[i].pv_pa =
kernel_pt_table[i].pv_va - KERNVIRTADDR +
- KERNPHYSADDR;
+ abp->abp_physaddr;
}
}
@@ -1397,7 +1397,7 @@ initarm(struct arm_boot_params *abp)
pmap_curmaxkvaddr = l2_start + (l2size - 1) * L1_S_SIZE;
/* Map kernel code and data */
- pmap_map_chunk(l1pagetable, KERNVIRTADDR, KERNPHYSADDR,
+ pmap_map_chunk(l1pagetable, KERNVIRTADDR, abp->abp_physaddr,
(((uint32_t)(lastaddr) - KERNVIRTADDR) + PAGE_MASK) & ~PAGE_MASK,
VM_PROT_READ|VM_PROT_WRITE, PTE_CACHE);
@@ -1501,7 +1501,8 @@ initarm(struct arm_boot_params *abp)
arm_intrnames_init();
arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL);
- arm_dump_avail_init(memsize, sizeof(dump_avail) / sizeof(dump_avail[0]));
+ arm_dump_avail_init(abp->abp_physaddr, memsize,
+ sizeof(dump_avail) / sizeof(dump_avail[0]));
pmap_bootstrap(freemempos, &kernel_l1pt);
msgbufp = (void *)msgbufpv.pv_va;
msgbufinit(msgbufp, msgbufsize);
@@ -1510,7 +1511,7 @@ initarm(struct arm_boot_params *abp)
/*
* Prepare map of physical memory regions available to vm subsystem.
*/
- physmap_init(availmem_regions, availmem_regions_sz);
+ physmap_init(availmem_regions, availmem_regions_sz, abp->abp_physaddr);
init_param2(physmem);
kdb_init();
Modified: projects/uefi/sys/arm/arm/vfp.c
==============================================================================
--- projects/uefi/sys/arm/arm/vfp.c Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/sys/arm/arm/vfp.c Thu Feb 6 22:10:26 2014 (r261569)
@@ -42,10 +42,9 @@ __FBSDID("$FreeBSD$");
/* function prototypes */
unsigned int get_coprocessorACR(void);
-int vfp_bounce(u_int, u_int, struct trapframe *, int);
+static int vfp_bounce(u_int, u_int, struct trapframe *, int);
+static void vfp_restore(struct vfp_state *);
void vfp_discard(void);
-void vfp_enable(void);
-void vfp_restore(struct vfp_state *);
void vfp_store(struct vfp_state *);
void set_coprocessorACR(u_int);
@@ -134,7 +133,7 @@ SYSINIT(vfp, SI_SUB_CPU, SI_ORDER_ANY, v
/* start VFP unit, restore the vfp registers from the PCB and retry
* the instruction
*/
-int
+static int
vfp_bounce(u_int addr, u_int insn, struct trapframe *frame, int code)
{
u_int fpexc;
@@ -196,7 +195,7 @@ vfp_bounce(u_int addr, u_int insn, struc
* Eventually we will use the information that this process was the last
* to use the VFP hardware and bypass the restore, just turn on the hardware.
*/
-void
+static void
vfp_restore(struct vfp_state *vfpsave)
{
u_int vfpscr = 0;
@@ -280,17 +279,5 @@ vfp_discard()
fmxr(VFPEXC, tmp);
}
-/* Enable the VFP hardware without restoring registers.
- * Called when the registers are still in the VFP unit
- */
-void
-vfp_enable()
-{
- u_int tmp = 0;
-
- tmp = fmrx(VFPEXC);
- tmp |= VFPEXC_EN;
- fmxr(VFPEXC, tmp);
-}
#endif
Modified: projects/uefi/sys/arm/arm/vm_machdep.c
==============================================================================
--- projects/uefi/sys/arm/arm/vm_machdep.c Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/sys/arm/arm/vm_machdep.c Thu Feb 6 22:10:26 2014 (r261569)
@@ -298,15 +298,25 @@ cpu_set_syscall_retval(struct thread *td
struct trapframe *frame;
int fixup;
#ifdef __ARMEB__
- uint32_t insn;
+ u_int call;
#endif
frame = td->td_frame;
fixup = 0;
#ifdef __ARMEB__
- insn = *(u_int32_t *)(frame->tf_pc - INSN_SIZE);
- if ((insn & 0x000fffff) == SYS___syscall) {
+ /*
+ * __syscall returns an off_t while most other syscalls return an
+ * int. As an off_t is 64-bits and an int is 32-bits we need to
+ * place the returned data into r1. As the lseek and frerebsd6_lseek
+ * syscalls also return an off_t they do not need this fixup.
+ */
+#ifdef __ARM_EABI__
+ call = frame->tf_r7;
+#else
+ call = *(u_int32_t *)(frame->tf_pc - INSN_SIZE) & 0x000fffff;
+#endif
+ if (call == SYS___syscall) {
register_t *ap = &frame->tf_r0;
register_t code = ap[_QUAD_LOWWORD];
if (td->td_proc->p_sysent->sv_mask)
Modified: projects/uefi/sys/arm/at91/at91_machdep.c
==============================================================================
--- projects/uefi/sys/arm/at91/at91_machdep.c Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/sys/arm/at91/at91_machdep.c Thu Feb 6 22:10:26 2014 (r261569)
@@ -630,7 +630,8 @@ initarm(struct arm_boot_params *abp)
arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL);
pmap_curmaxkvaddr = afterkern + L1_S_SIZE * (KERNEL_PT_KERN_NUM - 1);
- arm_dump_avail_init(memsize, sizeof(dump_avail)/sizeof(dump_avail[0]));
+ arm_dump_avail_init(abp->abp_physaddr, memsize,
+ sizeof(dump_avail)/sizeof(dump_avail[0]));
/* Always use the 256MB of KVA we have available between the kernel and devices */
vm_max_kernel_address = KERNVIRTADDR + (256 << 20);
pmap_bootstrap(freemempos, &kernel_l1pt);
Modified: projects/uefi/sys/arm/econa/econa_machdep.c
==============================================================================
--- projects/uefi/sys/arm/econa/econa_machdep.c Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/sys/arm/econa/econa_machdep.c Thu Feb 6 22:10:26 2014 (r261569)
@@ -322,7 +322,8 @@ initarm(struct arm_boot_params *abp)
arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL);
pmap_curmaxkvaddr = afterkern + L1_S_SIZE * (KERNEL_PT_KERN_NUM - 1);
- arm_dump_avail_init(memsize, sizeof(dump_avail) / sizeof(dump_avail[0]));
+ arm_dump_avail_init(abp->abp_physaddr, memsize,
+ sizeof(dump_avail) / sizeof(dump_avail[0]));
vm_max_kernel_address = KERNVIRTADDR + 3 * memsize;
pmap_bootstrap(freemempos, &kernel_l1pt);
Modified: projects/uefi/sys/arm/include/cpu.h
==============================================================================
--- projects/uefi/sys/arm/include/cpu.h Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/sys/arm/include/cpu.h Thu Feb 6 22:10:26 2014 (r261569)
@@ -41,6 +41,7 @@ struct arm_boot_params {
register_t abp_r1; /* r1 from the boot loader */
register_t abp_r2; /* r2 from the boot loader */
register_t abp_r3; /* r3 from the boot loader */
+ vm_offset_t abp_physaddr; /* The kernel physical address */
};
void arm_vector_init(vm_offset_t, int);
Modified: projects/uefi/sys/arm/include/machdep.h
==============================================================================
--- projects/uefi/sys/arm/include/machdep.h Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/sys/arm/include/machdep.h Thu Feb 6 22:10:26 2014 (r261569)
@@ -72,6 +72,6 @@ void board_set_serial(uint64_t);
void board_set_revision(uint32_t);
/* Setup standard arrays */
-void arm_dump_avail_init( vm_offset_t memsize, size_t max);
+void arm_dump_avail_init(vm_paddr_t, vm_offset_t, size_t);
#endif /* !_MACHINE_MACHDEP_H_ */
Modified: projects/uefi/sys/arm/s3c2xx0/s3c24x0_machdep.c
==============================================================================
--- projects/uefi/sys/arm/s3c2xx0/s3c24x0_machdep.c Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/sys/arm/s3c2xx0/s3c24x0_machdep.c Thu Feb 6 22:10:26 2014 (r261569)
@@ -384,7 +384,8 @@ initarm(struct arm_boot_params *abp)
arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL);
pmap_curmaxkvaddr = afterkern + 0x100000 * (KERNEL_PT_KERN_NUM - 1);
- arm_dump_avail_init(memsize, sizeof(dump_avail) / sizeof(dump_avail[0]));
+ arm_dump_avail_init(abp->abp_physaddr, memsize,
+ sizeof(dump_avail) / sizeof(dump_avail[0]));
vm_max_kernel_address = KERNVIRTADDR + 3 * memsize;
pmap_bootstrap(freemempos, &kernel_l1pt);
msgbufp = (void*)msgbufpv.pv_va;
Modified: projects/uefi/sys/arm/xscale/ixp425/avila_machdep.c
==============================================================================
--- projects/uefi/sys/arm/xscale/ixp425/avila_machdep.c Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/sys/arm/xscale/ixp425/avila_machdep.c Thu Feb 6 22:10:26 2014 (r261569)
@@ -431,7 +431,8 @@ initarm(struct arm_boot_params *abp)
arm_vector_init(ARM_VECTORS_HIGH, ARM_VEC_ALL);
pmap_curmaxkvaddr = afterkern + PAGE_SIZE;
- arm_dump_avail_init(memsize, sizeof(dump_avail) / sizeof(dump_avail[0]));
+ arm_dump_avail_init(abp->abp_physaddr, memsize,
+ sizeof(dump_avail) / sizeof(dump_avail[0]));
vm_max_kernel_address = 0xe0000000;
pmap_bootstrap(pmap_curmaxkvaddr, &kernel_l1pt);
msgbufp = (void*)msgbufpv.pv_va;
Modified: projects/uefi/sys/boot/Makefile.amd64
==============================================================================
--- projects/uefi/sys/boot/Makefile.amd64 Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/sys/boot/Makefile.amd64 Thu Feb 6 22:10:26 2014 (r261569)
@@ -2,6 +2,7 @@
SUBDIR+= efi
SUBDIR+= ficl64
+SUBDIR+= libstand32
SUBDIR+= zfs
SUBDIR+= zfs64
SUBDIR+= userboot
Modified: projects/uefi/sys/boot/Makefile.i386
==============================================================================
--- projects/uefi/sys/boot/Makefile.i386 Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/sys/boot/Makefile.i386 Thu Feb 6 22:10:26 2014 (r261569)
@@ -1,4 +1,5 @@
# $FreeBSD$
SUBDIR+= efi
+SUBDIR+= libstand32
SUBDIR+= zfs
Modified: projects/uefi/sys/boot/i386/gptboot/Makefile
==============================================================================
--- projects/uefi/sys/boot/i386/gptboot/Makefile Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/sys/boot/i386/gptboot/Makefile Thu Feb 6 22:10:26 2014 (r261569)
@@ -43,9 +43,10 @@ LD_FLAGS=-static -N --gc-sections
.if ${MACHINE_CPUARCH} == "amd64"
LD_FLAGS+= -m elf_i386_fbsd
-LIBSTAND= /usr/lib32/libstand.a
.endif
+LIBSTAND= ${.OBJDIR}/../../libstand32/libstand.a
+
# Pick up ../Makefile.inc early.
.include <bsd.init.mk>
Modified: projects/uefi/sys/boot/i386/gptzfsboot/Makefile
==============================================================================
--- projects/uefi/sys/boot/i386/gptzfsboot/Makefile Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/sys/boot/i386/gptzfsboot/Makefile Thu Feb 6 22:10:26 2014 (r261569)
@@ -40,9 +40,10 @@ LD_FLAGS=-static -N --gc-sections
.if ${MACHINE_CPUARCH} == "amd64"
LD_FLAGS+= -m elf_i386_fbsd
-LIBSTAND= /usr/lib32/libstand.a
.endif
+LIBSTAND= ${.OBJDIR}/../../libstand32/libstand.a
+
# Pick up ../Makefile.inc early.
.include <bsd.init.mk>
Modified: projects/uefi/sys/boot/i386/loader/Makefile
==============================================================================
--- projects/uefi/sys/boot/i386/loader/Makefile Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/sys/boot/i386/loader/Makefile Thu Feb 6 22:10:26 2014 (r261569)
@@ -67,13 +67,14 @@ LDFLAGS= -static -Ttext 0x0
.if ${MACHINE_CPUARCH} == "amd64"
LDFLAGS+= -Wl,-m,elf_i386_fbsd
-LIBSTAND= /usr/lib32/libstand.a
.endif
# i386 standalone support library
LIBI386= ${.OBJDIR}/../libi386/libi386.a
CFLAGS+= -I${.CURDIR}/..
+LIBSTAND= ${.OBJDIR}/../../libstand32/libstand.a
+
# BTX components
CFLAGS+= -I${.CURDIR}/../btx/lib
Modified: projects/uefi/sys/boot/i386/zfsboot/Makefile
==============================================================================
--- projects/uefi/sys/boot/i386/zfsboot/Makefile Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/sys/boot/i386/zfsboot/Makefile Thu Feb 6 22:10:26 2014 (r261569)
@@ -37,9 +37,10 @@ LD_FLAGS=-static -N --gc-sections
.if ${MACHINE_CPUARCH} == "amd64"
LD_FLAGS+= -m elf_i386_fbsd
-LIBSTAND= /usr/lib32/libstand.a
.endif
+LIBSTAND= ${.OBJDIR}/../../libstand32/libstand.a
+
# Pick up ../Makefile.inc early.
.include <bsd.init.mk>
Modified: projects/uefi/sys/dev/cxgbe/adapter.h
==============================================================================
--- projects/uefi/sys/dev/cxgbe/adapter.h Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/sys/dev/cxgbe/adapter.h Thu Feb 6 22:10:26 2014 (r261569)
@@ -215,6 +215,7 @@ struct port_info {
/* These need to be int as they are used in sysctl */
int ntxq; /* # of tx queues */
int first_txq; /* index of first tx queue */
+ int rsrv_noflowq; /* Reserve queue 0 for non-flowid packets */
int nrxq; /* # of rx queues */
int first_rxq; /* index of first rx queue */
#ifdef TCP_OFFLOAD
Modified: projects/uefi/sys/dev/cxgbe/t4_main.c
==============================================================================
--- projects/uefi/sys/dev/cxgbe/t4_main.c Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/sys/dev/cxgbe/t4_main.c Thu Feb 6 22:10:26 2014 (r261569)
@@ -197,6 +197,9 @@ TUNABLE_INT("hw.cxgbe.ntxq1g", &t4_ntxq1
static int t4_nrxq1g = -1;
TUNABLE_INT("hw.cxgbe.nrxq1g", &t4_nrxq1g);
+static int t4_rsrv_noflowq = 0;
+TUNABLE_INT("hw.cxgbe.rsrv_noflowq", &t4_rsrv_noflowq);
+
#ifdef TCP_OFFLOAD
#define NOFLDTXQ_10G 8
static int t4_nofldtxq10g = -1;
@@ -299,6 +302,7 @@ struct intrs_and_queues {
int nrxq10g; /* # of NIC rxq's for each 10G port */
int ntxq1g; /* # of NIC txq's for each 1G port */
int nrxq1g; /* # of NIC rxq's for each 1G port */
+ int rsrv_noflowq; /* Flag whether to reserve queue 0 */
#ifdef TCP_OFFLOAD
int nofldtxq10g; /* # of TOE txq's for each 10G port */
int nofldrxq10g; /* # of TOE rxq's for each 10G port */
@@ -375,6 +379,7 @@ static int cxgbe_sysctls(struct port_inf
static int sysctl_int_array(SYSCTL_HANDLER_ARGS);
static int sysctl_bitfield(SYSCTL_HANDLER_ARGS);
static int sysctl_btphy(SYSCTL_HANDLER_ARGS);
+static int sysctl_noflowq(SYSCTL_HANDLER_ARGS);
static int sysctl_holdoff_tmr_idx(SYSCTL_HANDLER_ARGS);
static int sysctl_holdoff_pktc_idx(SYSCTL_HANDLER_ARGS);
static int sysctl_qsize_rxq(SYSCTL_HANDLER_ARGS);
@@ -783,6 +788,11 @@ t4_attach(device_t dev)
pi->ntxq = iaq.ntxq1g;
}
+ if (pi->ntxq > 1)
+ pi->rsrv_noflowq = iaq.rsrv_noflowq ? 1 : 0;
+ else
+ pi->rsrv_noflowq = 0;
+
rqidx += pi->nrxq;
tqidx += pi->ntxq;
@@ -1283,7 +1293,8 @@ cxgbe_transmit(struct ifnet *ifp, struct
}
if (m->m_flags & M_FLOWID)
- txq += (m->m_pkthdr.flowid % pi->ntxq);
+ txq += ((m->m_pkthdr.flowid % (pi->ntxq - pi->rsrv_noflowq))
+ + pi->rsrv_noflowq);
br = txq->br;
if (TXQ_TRYLOCK(txq) == 0) {
@@ -1735,6 +1746,7 @@ cfg_itype_and_nqueues(struct adapter *sc
iaq->ntxq1g = t4_ntxq1g;
iaq->nrxq10g = nrxq10g = t4_nrxq10g;
iaq->nrxq1g = nrxq1g = t4_nrxq1g;
+ iaq->rsrv_noflowq = t4_rsrv_noflowq;
#ifdef TCP_OFFLOAD
if (is_offload(sc)) {
iaq->nofldtxq10g = t4_nofldtxq10g;
@@ -4548,6 +4560,9 @@ cxgbe_sysctls(struct port_info *pi)
&pi->first_rxq, 0, "index of first rx queue");
SYSCTL_ADD_INT(ctx, children, OID_AUTO, "first_txq", CTLFLAG_RD,
&pi->first_txq, 0, "index of first tx queue");
+ SYSCTL_ADD_PROC(ctx, children, OID_AUTO, "rsrv_noflowq", CTLTYPE_INT |
+ CTLFLAG_RW, pi, 0, sysctl_noflowq, "IU",
+ "Reserve queue 0 for non-flowid packets");
#ifdef TCP_OFFLOAD
if (is_offload(sc)) {
@@ -4802,6 +4817,25 @@ sysctl_btphy(SYSCTL_HANDLER_ARGS)
}
static int
+sysctl_noflowq(SYSCTL_HANDLER_ARGS)
+{
+ struct port_info *pi = arg1;
+ int rc, val;
+
+ val = pi->rsrv_noflowq;
+ rc = sysctl_handle_int(oidp, &val, 0, req);
+ if (rc != 0 || req->newptr == NULL)
+ return (rc);
+
+ if ((val >= 1) && (pi->ntxq > 1))
+ pi->rsrv_noflowq = 1;
+ else
+ pi->rsrv_noflowq = 0;
+
+ return (rc);
+}
+
+static int
sysctl_holdoff_tmr_idx(SYSCTL_HANDLER_ARGS)
{
struct port_info *pi = arg1;
Modified: projects/uefi/tools/regression/security/cap_test/cap_test_capabilities.c
==============================================================================
--- projects/uefi/tools/regression/security/cap_test/cap_test_capabilities.c Thu Feb 6 21:57:27 2014 (r261568)
+++ projects/uefi/tools/regression/security/cap_test/cap_test_capabilities.c Thu Feb 6 22:10:26 2014 (r261569)
@@ -396,7 +396,7 @@ try_file_ops(int filefd, int dirfd, cap_
pollfd.revents = 0;
ret = poll(&pollfd, 1, 0);
- if (rights & CAP_POLL_EVENT)
+ if (rights & CAP_EVENT)
CHECK((pollfd.revents & POLLNVAL) == 0);
else
CHECK((pollfd.revents & POLLNVAL) != 0);
@@ -546,7 +546,7 @@ test_capabilities(void)
TRY(CAP_SEM_POST);
TRY(CAP_SEM_WAIT);
TRY(CAP_POST_EVENT);
- TRY(CAP_POLL_EVENT);
+ TRY(CAP_EVENT);
TRY(CAP_IOCTL);
TRY(CAP_TTYHOOK);
TRY(CAP_PDGETPID);
More information about the svn-src-projects
mailing list