Date: Thu, 6 Feb 2014 22:10:27 +0000 (UTC) From: Ed Maste <emaste@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: 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... Message-ID: <201402062210.s16MARXS054379@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201402062210.s16MARXS054379>