Date: Thu, 14 Jan 2016 13:29:12 +0000 (UTC) From: Glen Barber <gjb@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r293915 - in projects/release-pkg: cddl/contrib/opensolaris/tools/ctf/cvt etc etc/mtree lib/csu/aarch64 lib/libc/stdlib lib/libc/string lib/libc/sys lib/libdpv lib/libthr/thread libexec... Message-ID: <201601141329.u0EDTDVk002765@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: gjb Date: Thu Jan 14 13:29:12 2016 New Revision: 293915 URL: https://svnweb.freebsd.org/changeset/base/293915 Log: MFH Sponsored by: The FreeBSD Foundation Added: projects/release-pkg/sys/dev/hyperv/vmbus/hv_et.c - copied unchanged from r293914, head/sys/dev/hyperv/vmbus/hv_et.c projects/release-pkg/sys/dev/sfxge/common/efx_lic.c - copied unchanged from r293914, head/sys/dev/sfxge/common/efx_lic.c projects/release-pkg/tests/sys/geom/ - copied from r293914, head/tests/sys/geom/ projects/release-pkg/usr.sbin/kldxref/ef_aarch64.c - copied unchanged from r293914, head/usr.sbin/kldxref/ef_aarch64.c Deleted: projects/release-pkg/tools/regression/geom_concat/ projects/release-pkg/tools/regression/geom_eli/ projects/release-pkg/tools/regression/geom_gate/ projects/release-pkg/tools/regression/geom_mirror/ projects/release-pkg/tools/regression/geom_nop/ projects/release-pkg/tools/regression/geom_raid3/ projects/release-pkg/tools/regression/geom_shsec/ projects/release-pkg/tools/regression/geom_stripe/ projects/release-pkg/tools/regression/geom_subr.sh projects/release-pkg/tools/regression/geom_uzip/ Modified: projects/release-pkg/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c projects/release-pkg/etc/Makefile projects/release-pkg/etc/mtree/BSD.tests.dist projects/release-pkg/lib/csu/aarch64/crt1.c projects/release-pkg/lib/libc/stdlib/tdelete.c projects/release-pkg/lib/libc/string/wcslcat.c projects/release-pkg/lib/libc/string/wcsncat.c projects/release-pkg/lib/libc/sys/stat.2 projects/release-pkg/lib/libdpv/dpv.c projects/release-pkg/lib/libdpv/dpv.h projects/release-pkg/lib/libthr/thread/thr_umtx.c projects/release-pkg/libexec/rtld-elf/aarch64/rtld_start.S projects/release-pkg/release/amd64/mkisoimages.sh projects/release-pkg/share/examples/pf/pf.conf projects/release-pkg/share/mk/bsd.sys.mk projects/release-pkg/sys/amd64/amd64/pmap.c projects/release-pkg/sys/amd64/linux/linux_proto.h projects/release-pkg/sys/amd64/linux/linux_syscall.h projects/release-pkg/sys/amd64/linux/linux_syscalls.c projects/release-pkg/sys/amd64/linux/linux_sysent.c projects/release-pkg/sys/amd64/linux/linux_systrace_args.c projects/release-pkg/sys/amd64/linux/syscalls.master projects/release-pkg/sys/amd64/linux32/linux32_proto.h projects/release-pkg/sys/amd64/linux32/linux32_syscall.h projects/release-pkg/sys/amd64/linux32/linux32_syscalls.c projects/release-pkg/sys/amd64/linux32/linux32_sysent.c projects/release-pkg/sys/amd64/linux32/linux32_systrace_args.c projects/release-pkg/sys/amd64/linux32/syscalls.master projects/release-pkg/sys/arm/arm/fusu.S projects/release-pkg/sys/boot/arm/uboot/Makefile projects/release-pkg/sys/boot/common/bootstrap.h projects/release-pkg/sys/boot/common/interp_forth.c projects/release-pkg/sys/boot/common/module.c projects/release-pkg/sys/boot/efi/fdt/Makefile projects/release-pkg/sys/boot/efi/libefi/Makefile projects/release-pkg/sys/compat/linux/linux_futex.c projects/release-pkg/sys/compat/linux/linux_misc.c projects/release-pkg/sys/conf/files.amd64 projects/release-pkg/sys/conf/files.i386 projects/release-pkg/sys/dev/drm2/drm_crtc.c projects/release-pkg/sys/dev/drm2/drm_pci.c projects/release-pkg/sys/dev/drm2/i915/i915_gem.c projects/release-pkg/sys/dev/drm2/i915/i915_gem_execbuffer.c projects/release-pkg/sys/dev/drm2/i915/i915_gem_gtt.c projects/release-pkg/sys/dev/drm2/i915/i915_gem_tiling.c projects/release-pkg/sys/dev/drm2/i915/i915_irq.c projects/release-pkg/sys/dev/drm2/i915/intel_crt.c projects/release-pkg/sys/dev/drm2/i915/intel_display.c projects/release-pkg/sys/dev/drm2/i915/intel_overlay.c projects/release-pkg/sys/dev/e1000/if_em.c projects/release-pkg/sys/dev/e1000/if_em.h projects/release-pkg/sys/dev/e1000/if_igb.c projects/release-pkg/sys/dev/e1000/if_igb.h projects/release-pkg/sys/dev/e1000/if_lem.c projects/release-pkg/sys/dev/e1000/if_lem.h projects/release-pkg/sys/dev/gpio/gpiobus.c projects/release-pkg/sys/dev/hyperv/include/hyperv.h projects/release-pkg/sys/dev/hyperv/netvsc/hv_net_vsc.c projects/release-pkg/sys/dev/hyperv/netvsc/hv_net_vsc.h projects/release-pkg/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c projects/release-pkg/sys/dev/hyperv/vmbus/hv_connection.c projects/release-pkg/sys/dev/hyperv/vmbus/hv_hv.c projects/release-pkg/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c projects/release-pkg/sys/dev/hyperv/vmbus/hv_vmbus_priv.h projects/release-pkg/sys/dev/pty/pty.c projects/release-pkg/sys/dev/sfxge/common/ef10_impl.h projects/release-pkg/sys/dev/sfxge/common/ef10_tlv_layout.h projects/release-pkg/sys/dev/sfxge/common/efsys.h projects/release-pkg/sys/dev/sfxge/common/efx.h projects/release-pkg/sys/dev/sfxge/common/efx_bootcfg.c projects/release-pkg/sys/dev/sfxge/common/efx_check.h projects/release-pkg/sys/dev/sfxge/common/efx_crc32.c projects/release-pkg/sys/dev/sfxge/common/efx_ev.c projects/release-pkg/sys/dev/sfxge/common/efx_filter.c projects/release-pkg/sys/dev/sfxge/common/efx_hash.c projects/release-pkg/sys/dev/sfxge/common/efx_impl.h projects/release-pkg/sys/dev/sfxge/common/efx_intr.c projects/release-pkg/sys/dev/sfxge/common/efx_mac.c projects/release-pkg/sys/dev/sfxge/common/efx_mcdi.c projects/release-pkg/sys/dev/sfxge/common/efx_mcdi.h projects/release-pkg/sys/dev/sfxge/common/efx_mon.c projects/release-pkg/sys/dev/sfxge/common/efx_nic.c projects/release-pkg/sys/dev/sfxge/common/efx_nvram.c projects/release-pkg/sys/dev/sfxge/common/efx_phy.c projects/release-pkg/sys/dev/sfxge/common/efx_port.c projects/release-pkg/sys/dev/sfxge/common/efx_regs_ef10.h projects/release-pkg/sys/dev/sfxge/common/efx_rx.c projects/release-pkg/sys/dev/sfxge/common/efx_sram.c projects/release-pkg/sys/dev/sfxge/common/efx_tx.c projects/release-pkg/sys/dev/sfxge/common/efx_types.h projects/release-pkg/sys/dev/sfxge/common/efx_vpd.c projects/release-pkg/sys/dev/sfxge/common/efx_wol.c projects/release-pkg/sys/dev/sfxge/common/hunt_ev.c projects/release-pkg/sys/dev/sfxge/common/hunt_filter.c projects/release-pkg/sys/dev/sfxge/common/hunt_impl.h projects/release-pkg/sys/dev/sfxge/common/hunt_intr.c projects/release-pkg/sys/dev/sfxge/common/hunt_mac.c projects/release-pkg/sys/dev/sfxge/common/hunt_mcdi.c projects/release-pkg/sys/dev/sfxge/common/hunt_nic.c projects/release-pkg/sys/dev/sfxge/common/hunt_nvram.c projects/release-pkg/sys/dev/sfxge/common/hunt_phy.c projects/release-pkg/sys/dev/sfxge/common/hunt_rx.c projects/release-pkg/sys/dev/sfxge/common/hunt_sram.c projects/release-pkg/sys/dev/sfxge/common/hunt_tx.c projects/release-pkg/sys/dev/sfxge/common/hunt_vpd.c projects/release-pkg/sys/dev/sfxge/common/mcdi_mon.c projects/release-pkg/sys/dev/sfxge/common/medford_impl.h projects/release-pkg/sys/dev/sfxge/common/medford_nic.c projects/release-pkg/sys/dev/sfxge/common/siena_impl.h projects/release-pkg/sys/dev/sfxge/common/siena_mac.c projects/release-pkg/sys/dev/sfxge/common/siena_mcdi.c projects/release-pkg/sys/dev/sfxge/common/siena_nic.c projects/release-pkg/sys/dev/sfxge/common/siena_nvram.c projects/release-pkg/sys/dev/sfxge/common/siena_phy.c projects/release-pkg/sys/dev/sfxge/common/siena_sram.c projects/release-pkg/sys/dev/sfxge/common/siena_vpd.c projects/release-pkg/sys/fs/devfs/devfs_vnops.c projects/release-pkg/sys/i386/linux/linux_proto.h projects/release-pkg/sys/i386/linux/linux_syscall.h projects/release-pkg/sys/i386/linux/linux_syscalls.c projects/release-pkg/sys/i386/linux/linux_sysent.c projects/release-pkg/sys/i386/linux/syscalls.master projects/release-pkg/sys/kern/kern_prot.c projects/release-pkg/sys/modules/hyperv/vmbus/Makefile projects/release-pkg/sys/modules/sfxge/Makefile projects/release-pkg/sys/net/route.c projects/release-pkg/sys/net/route.h projects/release-pkg/sys/netgraph/netflow/netflow.c projects/release-pkg/sys/netinet/in_rmx.c projects/release-pkg/sys/netinet/in_var.h projects/release-pkg/sys/netinet/ip_mroute.c projects/release-pkg/sys/netinet/sctp_usrreq.c projects/release-pkg/sys/netinet/sctputil.c projects/release-pkg/sys/netinet/tcp_output.c projects/release-pkg/sys/netinet6/sctp6_usrreq.c projects/release-pkg/sys/security/audit/audit_pipe.c projects/release-pkg/sys/sys/conf.h projects/release-pkg/sys/sys/ucred.h projects/release-pkg/sys/x86/x86/identcpu.c projects/release-pkg/tests/sys/Makefile projects/release-pkg/usr.bin/numactl/numactl.c projects/release-pkg/usr.sbin/bsdinstall/scripts/auto projects/release-pkg/usr.sbin/pkg/config.c projects/release-pkg/usr.sbin/rpcbind/check_bound.c projects/release-pkg/usr.sbin/rpcbind/tests/addrmerge_test.c Directory Properties: projects/release-pkg/ (props changed) projects/release-pkg/cddl/ (props changed) projects/release-pkg/cddl/contrib/opensolaris/ (props changed) projects/release-pkg/lib/libc/ (props changed) projects/release-pkg/share/ (props changed) projects/release-pkg/sys/ (props changed) projects/release-pkg/sys/boot/ (props changed) projects/release-pkg/sys/conf/ (props changed) projects/release-pkg/sys/dev/hyperv/ (props changed) projects/release-pkg/sys/modules/hyperv/ (props changed) Modified: projects/release-pkg/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c ============================================================================== --- projects/release-pkg/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/cddl/contrib/opensolaris/tools/ctf/cvt/merge.c Thu Jan 14 13:29:12 2016 (r293915) @@ -283,7 +283,6 @@ static int equiv_su(tdesc_t *stdp, tdesc_t *ttdp, equiv_data_t *ed) { mlist_t *ml1 = stdp->t_members, *ml2 = ttdp->t_members; - mlist_t *olm1 = NULL; while (ml1 && ml2) { if (ml1->ml_offset != ml2->ml_offset || @@ -292,7 +291,6 @@ equiv_su(tdesc_t *stdp, tdesc_t *ttdp, e !equiv_node(ml1->ml_type, ml2->ml_type, ed)) return (0); - olm1 = ml1; ml1 = ml1->ml_next; ml2 = ml2->ml_next; } Modified: projects/release-pkg/etc/Makefile ============================================================================== --- projects/release-pkg/etc/Makefile Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/etc/Makefile Thu Jan 14 13:29:12 2016 (r293915) @@ -82,10 +82,6 @@ BIN1+= apmd.conf BIN1+= auto_master .endif -.if ${MK_BSNMP} != "no" -BIN1+= snmpd.config -.endif - .if ${MK_FREEBSD_UPDATE} != "no" BIN1+= freebsd-update.conf .endif @@ -219,6 +215,11 @@ distribution: ${BIN2} ${DESTDIR}/etc; \ ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 600 \ master.passwd nsmb.conf opieaccess ${DESTDIR}/etc; +.if ${MK_BSNMP} != "no" + cd ${.CURDIR}; \ + ${INSTALL} -o ${BINOWN} -g ${BINGRP} -m 600 \ + snmpd.config ${DESTDIR}/etc; +.endif .if ${MK_AT} == "no" sed -i "" -e 's;.*/usr/libexec/atrun;#&;' ${DESTDIR}/etc/crontab .endif Modified: projects/release-pkg/etc/mtree/BSD.tests.dist ============================================================================== --- projects/release-pkg/etc/mtree/BSD.tests.dist Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/etc/mtree/BSD.tests.dist Thu Jan 14 13:29:12 2016 (r293915) @@ -376,6 +376,32 @@ .. file .. + geom + class + concat + .. + eli + .. + gate + .. + gpt + .. + mirror + .. + nop + .. + raid3 + .. + shsec + .. + stripe + .. + uzip + etalon + .. + .. + .. + .. kern acct .. Modified: projects/release-pkg/lib/csu/aarch64/crt1.c ============================================================================== --- projects/release-pkg/lib/csu/aarch64/crt1.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/lib/csu/aarch64/crt1.c Thu Jan 14 13:29:12 2016 (r293915) @@ -54,11 +54,7 @@ __asm(" .text \n" " .align 0 \n" " .globl _start \n" " _start: \n" -/* TODO: Remove this when the kernel correctly aligns the stack */ -" cbnz x0, 1f \n" /* Are we using a new kernel? */ -" mov x0, sp \n" /* No, load the args from sp */ -" and sp, x0, #~0xf \n" /* And align the stack */ -"1: mov x3, x2 \n" /* cleanup */ +" mov x3, x2 \n" /* cleanup */ " add x1, x0, #8 \n" /* load argv */ " ldr x0, [x0] \n" /* load argc */ " add x2, x1, x0, lsl #3 \n" /* env is after argv */ Modified: projects/release-pkg/lib/libc/stdlib/tdelete.c ============================================================================== --- projects/release-pkg/lib/libc/stdlib/tdelete.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/lib/libc/stdlib/tdelete.c Thu Jan 14 13:29:12 2016 (r293915) @@ -62,7 +62,6 @@ __FBSDID("$FreeBSD$"); base = leaf; \ path_init(&path); \ } \ - result = &(*leaf)->key; \ path_taking_right(&path); \ leaf = &(*leaf)->rlink; \ } while (0) Modified: projects/release-pkg/lib/libc/string/wcslcat.c ============================================================================== --- projects/release-pkg/lib/libc/string/wcslcat.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/lib/libc/string/wcslcat.c Thu Jan 14 13:29:12 2016 (r293915) @@ -54,7 +54,7 @@ wcslcat(wchar_t *dst, const wchar_t *src size_t dlen; /* Find the end of dst and adjust bytes left but don't go past end */ - while (*d != '\0' && n-- != 0) + while (n-- != 0 && *d != '\0') d++; dlen = d - dst; n = siz - dlen; Modified: projects/release-pkg/lib/libc/string/wcsncat.c ============================================================================== --- projects/release-pkg/lib/libc/string/wcsncat.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/lib/libc/string/wcsncat.c Thu Jan 14 13:29:12 2016 (r293915) @@ -48,7 +48,7 @@ wcsncat(wchar_t * __restrict s1, const w p++; q = p; r = s2; - while (*r && n) { + while (n && *r) { *q++ = *r++; n--; } Modified: projects/release-pkg/lib/libc/sys/stat.2 ============================================================================== --- projects/release-pkg/lib/libc/sys/stat.2 Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/lib/libc/sys/stat.2 Thu Jan 14 13:29:12 2016 (r293915) @@ -28,7 +28,7 @@ .\" @(#)stat.2 8.4 (Berkeley) 5/1/95 .\" $FreeBSD$ .\" -.Dd June 2, 2012 +.Dd January 14, 2016 .Dt STAT 2 .Os .Sh NAME @@ -40,12 +40,11 @@ .Sh LIBRARY .Lb libc .Sh SYNOPSIS -.In sys/types.h .In sys/stat.h .Ft int -.Fn stat "const char *path" "struct stat *sb" +.Fn stat "const char * restrict path" "struct stat * restrict sb" .Ft int -.Fn lstat "const char *path" "struct stat *sb" +.Fn lstat "const char * restrict path" "struct stat * restrict sb" .Ft int .Fn fstat "int fd" "struct stat *sb" .Ft int Modified: projects/release-pkg/lib/libdpv/dpv.c ============================================================================== --- projects/release-pkg/lib/libdpv/dpv.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/lib/libdpv/dpv.c Thu Jan 14 13:29:12 2016 (r293915) @@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$"); #include <dialog.h> #include <err.h> #include <limits.h> +#include <locale.h> #include <stdio.h> #include <stdlib.h> #include <string.h> @@ -482,6 +483,11 @@ dpv(struct dpv_config *config, struct dp /* Reads: label_size pbar_size pprompt aprompt dpv_nfiles */ /* Inits: dheight and dwidth */ + /* Default localeconv(3) settings for dialog(3) status */ + setlocale(LC_NUMERIC, + getenv("LC_ALL") == NULL && getenv("LC_NUMERIC") == NULL ? + LC_NUMERIC_DEFAULT : ""); + if (!debug) { /* Internally create the initial `--gauge' prompt text */ dprompt_recreate(file_list, (struct dpv_file_node *)NULL, 0); Modified: projects/release-pkg/lib/libdpv/dpv.h ============================================================================== --- projects/release-pkg/lib/libdpv/dpv.h Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/lib/libdpv/dpv.h Thu Jan 14 13:29:12 2016 (r293915) @@ -38,6 +38,9 @@ #define FALSE 0 #endif +/* localeconv(3) */ +#define LC_NUMERIC_DEFAULT "en_US.ISO8859-1" + /* Data to process */ extern long long dpv_overall_read; Modified: projects/release-pkg/lib/libthr/thread/thr_umtx.c ============================================================================== --- projects/release-pkg/lib/libthr/thread/thr_umtx.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/lib/libthr/thread/thr_umtx.c Thu Jan 14 13:29:12 2016 (r293915) @@ -42,7 +42,7 @@ int _umtx_op_err(void *obj, int op, u_lo void _thr_umutex_init(struct umutex *mtx) { - static struct umutex default_mtx = DEFAULT_UMUTEX; + static const struct umutex default_mtx = DEFAULT_UMUTEX; *mtx = default_mtx; } @@ -50,7 +50,8 @@ _thr_umutex_init(struct umutex *mtx) void _thr_urwlock_init(struct urwlock *rwl) { - static struct urwlock default_rwl = DEFAULT_URWLOCK; + static const struct urwlock default_rwl = DEFAULT_URWLOCK; + *rwl = default_rwl; } Modified: projects/release-pkg/libexec/rtld-elf/aarch64/rtld_start.S ============================================================================== --- projects/release-pkg/libexec/rtld-elf/aarch64/rtld_start.S Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/libexec/rtld-elf/aarch64/rtld_start.S Thu Jan 14 13:29:12 2016 (r293915) @@ -34,13 +34,7 @@ ENTRY(.rtld_start) mov x19, x0 /* Put ps_strings in a callee-saved register */ mov x20, sp /* And the stack pointer */ - /* Handle the old style stack */ - /* TODO: Remove this when the kernel correctly aligns the stack */ - cbnz x0, 1f - mov x0, sp /* sp points to the args */ - and sp, x0, #~0xf /* Align the stack as needed */ - -1: sub sp, sp, #16 /* Make room for obj_main & exit proc */ + sub sp, sp, #16 /* Make room for obj_main & exit proc */ mov x1, sp /* exit_proc */ add x2, x1, #8 /* obj_main */ Modified: projects/release-pkg/release/amd64/mkisoimages.sh ============================================================================== --- projects/release-pkg/release/amd64/mkisoimages.sh Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/release/amd64/mkisoimages.sh Thu Jan 14 13:29:12 2016 (r293915) @@ -28,7 +28,7 @@ if [ "x$1" = "x-b" ]; then bootable="-o bootimage=i386;$4/boot/cdboot -o no-emul-boot" # Make EFI system partition (should be done with makefs in the future) - dd if=/dev/zero of=efiboot.img bs=4k count=100 + dd if=/dev/zero of=efiboot.img bs=4k count=200 device=`mdconfig -a -t vnode -f efiboot.img` newfs_msdos -F 12 -m 0xf8 /dev/$device mkdir efi Modified: projects/release-pkg/share/examples/pf/pf.conf ============================================================================== --- projects/release-pkg/share/examples/pf/pf.conf Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/share/examples/pf/pf.conf Thu Jan 14 13:29:12 2016 (r293915) @@ -2,8 +2,8 @@ # $OpenBSD: pf.conf,v 1.34 2007/02/24 19:30:59 millert Exp $ # # See pf.conf(5) and /usr/share/examples/pf for syntax and examples. -# Remember to set net.inet.ip.forwarding=1 and/or net.inet6.ip6.forwarding=1 -# in /etc/sysctl.conf if packets are to be forwarded between interfaces. +# Remember to set gateway_enable="YES" and/or ipv6_gateway_enable="YES" +# in /etc/rc.conf if packets are to be forwarded between interfaces. #ext_if="ext0" #int_if="int0" Modified: projects/release-pkg/share/mk/bsd.sys.mk ============================================================================== --- projects/release-pkg/share/mk/bsd.sys.mk Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/share/mk/bsd.sys.mk Thu Jan 14 13:29:12 2016 (r293915) @@ -164,10 +164,11 @@ SSP_CFLAGS?= -fstack-protector CFLAGS+= ${SSP_CFLAGS} .endif # SSP && !ARM && !MIPS -# Allow user-specified additional warning flags, plus compiler specific flag overrides. -# Unless we've overriden this... +# Allow user-specified additional warning flags, plus compiler and file +# specific flag overrides, unless we've overriden this... .if ${MK_WARNS} != "no" CFLAGS+= ${CWARNFLAGS} ${CWARNFLAGS.${COMPILER_TYPE}} +CFLAGS+= ${CWARNFLAGS.${.IMPSRC:T}} .endif CFLAGS+= ${CFLAGS.${COMPILER_TYPE}} Modified: projects/release-pkg/sys/amd64/amd64/pmap.c ============================================================================== --- projects/release-pkg/sys/amd64/amd64/pmap.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/amd64/amd64/pmap.c Thu Jan 14 13:29:12 2016 (r293915) @@ -3018,11 +3018,14 @@ reserve_pv_entries(pmap_t pmap, int need retry: avail = 0; TAILQ_FOREACH(pc, &pmap->pm_pvchunk, pc_list) { +#ifndef __POPCNT__ if ((cpu_feature2 & CPUID2_POPCNT) == 0) { free = bitcount64(pc->pc_map[0]); free += bitcount64(pc->pc_map[1]); free += bitcount64(pc->pc_map[2]); - } else { + } else +#endif + { free = popcnt_pc_map_elem_pq(pc->pc_map[0]); free += popcnt_pc_map_elem_pq(pc->pc_map[1]); free += popcnt_pc_map_elem_pq(pc->pc_map[2]); Modified: projects/release-pkg/sys/amd64/linux/linux_proto.h ============================================================================== --- projects/release-pkg/sys/amd64/linux/linux_proto.h Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/amd64/linux/linux_proto.h Thu Jan 14 13:29:12 2016 (r293915) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux/syscalls.master 289769 2015-10-22 21:28:20Z jhb + * created from FreeBSD: head/sys/amd64/linux/syscalls.master 293907 2016-01-14 10:13:58Z glebius */ #ifndef _LINUX_SYSPROTO_H_ @@ -966,7 +966,7 @@ struct linux_set_robust_list_args { }; struct linux_get_robust_list_args { char pid_l_[PADL_(l_int)]; l_int pid; char pid_r_[PADR_(l_int)]; - char head_l_[PADL_(struct linux_robust_list_head *)]; struct linux_robust_list_head * head; char head_r_[PADR_(struct linux_robust_list_head *)]; + char head_l_[PADL_(struct linux_robust_list_head **)]; struct linux_robust_list_head ** head; char head_r_[PADR_(struct linux_robust_list_head **)]; char len_l_[PADL_(l_size_t *)]; l_size_t * len; char len_r_[PADR_(l_size_t *)]; }; struct linux_splice_args { Modified: projects/release-pkg/sys/amd64/linux/linux_syscall.h ============================================================================== --- projects/release-pkg/sys/amd64/linux/linux_syscall.h Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/amd64/linux/linux_syscall.h Thu Jan 14 13:29:12 2016 (r293915) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux/syscalls.master 289769 2015-10-22 21:28:20Z jhb + * created from FreeBSD: head/sys/amd64/linux/syscalls.master 293907 2016-01-14 10:13:58Z glebius */ #define LINUX_SYS_read 0 Modified: projects/release-pkg/sys/amd64/linux/linux_syscalls.c ============================================================================== --- projects/release-pkg/sys/amd64/linux/linux_syscalls.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/amd64/linux/linux_syscalls.c Thu Jan 14 13:29:12 2016 (r293915) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux/syscalls.master 289769 2015-10-22 21:28:20Z jhb + * created from FreeBSD: head/sys/amd64/linux/syscalls.master 293907 2016-01-14 10:13:58Z glebius */ const char *linux_syscallnames[] = { Modified: projects/release-pkg/sys/amd64/linux/linux_sysent.c ============================================================================== --- projects/release-pkg/sys/amd64/linux/linux_sysent.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/amd64/linux/linux_sysent.c Thu Jan 14 13:29:12 2016 (r293915) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux/syscalls.master 289769 2015-10-22 21:28:20Z jhb + * created from FreeBSD: head/sys/amd64/linux/syscalls.master 293907 2016-01-14 10:13:58Z glebius */ #include <sys/param.h> Modified: projects/release-pkg/sys/amd64/linux/linux_systrace_args.c ============================================================================== --- projects/release-pkg/sys/amd64/linux/linux_systrace_args.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/amd64/linux/linux_systrace_args.c Thu Jan 14 13:29:12 2016 (r293915) @@ -2020,7 +2020,7 @@ systrace_args(int sysnum, void *params, case 274: { struct linux_get_robust_list_args *p = params; iarg[0] = p->pid; /* l_int */ - uarg[1] = (intptr_t) p->head; /* struct linux_robust_list_head * */ + uarg[1] = (intptr_t) p->head; /* struct linux_robust_list_head ** */ uarg[2] = (intptr_t) p->len; /* l_size_t * */ *n_args = 3; break; @@ -5347,7 +5347,7 @@ systrace_entry_setargdesc(int sysnum, in p = "l_int"; break; case 1: - p = "struct linux_robust_list_head *"; + p = "struct linux_robust_list_head **"; break; case 2: p = "l_size_t *"; Modified: projects/release-pkg/sys/amd64/linux/syscalls.master ============================================================================== --- projects/release-pkg/sys/amd64/linux/syscalls.master Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/amd64/linux/syscalls.master Thu Jan 14 13:29:12 2016 (r293915) @@ -461,8 +461,8 @@ 272 AUE_NULL STD { int linux_unshare(void); } 273 AUE_NULL STD { int linux_set_robust_list(struct linux_robust_list_head *head, \ l_size_t len); } -274 AUE_NULL STD { int linux_get_robust_list(l_int pid, struct linux_robust_list_head *head, \ - l_size_t *len); } +274 AUE_NULL STD { int linux_get_robust_list(l_int pid, \ + struct linux_robust_list_head **head, l_size_t *len); } 275 AUE_NULL STD { int linux_splice(void); } 276 AUE_NULL STD { int linux_tee(void); } 277 AUE_NULL STD { int linux_sync_file_range(void); } Modified: projects/release-pkg/sys/amd64/linux32/linux32_proto.h ============================================================================== --- projects/release-pkg/sys/amd64/linux32/linux32_proto.h Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/amd64/linux32/linux32_proto.h Thu Jan 14 13:29:12 2016 (r293915) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 289769 2015-10-22 21:28:20Z jhb + * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 293907 2016-01-14 10:13:58Z glebius */ #ifndef _LINUX32_SYSPROTO_H_ @@ -1023,7 +1023,7 @@ struct linux_set_robust_list_args { }; struct linux_get_robust_list_args { char pid_l_[PADL_(l_int)]; l_int pid; char pid_r_[PADR_(l_int)]; - char head_l_[PADL_(struct linux_robust_list_head *)]; struct linux_robust_list_head * head; char head_r_[PADR_(struct linux_robust_list_head *)]; + char head_l_[PADL_(struct linux_robust_list_head **)]; struct linux_robust_list_head ** head; char head_r_[PADR_(struct linux_robust_list_head **)]; char len_l_[PADL_(l_size_t *)]; l_size_t * len; char len_r_[PADR_(l_size_t *)]; }; struct linux_splice_args { Modified: projects/release-pkg/sys/amd64/linux32/linux32_syscall.h ============================================================================== --- projects/release-pkg/sys/amd64/linux32/linux32_syscall.h Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/amd64/linux32/linux32_syscall.h Thu Jan 14 13:29:12 2016 (r293915) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 289769 2015-10-22 21:28:20Z jhb + * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 293907 2016-01-14 10:13:58Z glebius */ #define LINUX32_SYS_linux_exit 1 Modified: projects/release-pkg/sys/amd64/linux32/linux32_syscalls.c ============================================================================== --- projects/release-pkg/sys/amd64/linux32/linux32_syscalls.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/amd64/linux32/linux32_syscalls.c Thu Jan 14 13:29:12 2016 (r293915) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 289769 2015-10-22 21:28:20Z jhb + * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 293907 2016-01-14 10:13:58Z glebius */ const char *linux32_syscallnames[] = { Modified: projects/release-pkg/sys/amd64/linux32/linux32_sysent.c ============================================================================== --- projects/release-pkg/sys/amd64/linux32/linux32_sysent.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/amd64/linux32/linux32_sysent.c Thu Jan 14 13:29:12 2016 (r293915) @@ -3,7 +3,7 @@ * * DO NOT EDIT-- this file is automatically generated. * $FreeBSD$ - * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 289769 2015-10-22 21:28:20Z jhb + * created from FreeBSD: head/sys/amd64/linux32/syscalls.master 293907 2016-01-14 10:13:58Z glebius */ #include "opt_compat.h" Modified: projects/release-pkg/sys/amd64/linux32/linux32_systrace_args.c ============================================================================== --- projects/release-pkg/sys/amd64/linux32/linux32_systrace_args.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/amd64/linux32/linux32_systrace_args.c Thu Jan 14 13:29:12 2016 (r293915) @@ -2122,7 +2122,7 @@ systrace_args(int sysnum, void *params, case 312: { struct linux_get_robust_list_args *p = params; iarg[0] = p->pid; /* l_int */ - uarg[1] = (intptr_t) p->head; /* struct linux_robust_list_head * */ + uarg[1] = (intptr_t) p->head; /* struct linux_robust_list_head ** */ uarg[2] = (intptr_t) p->len; /* l_size_t * */ *n_args = 3; break; @@ -5551,7 +5551,7 @@ systrace_entry_setargdesc(int sysnum, in p = "l_int"; break; case 1: - p = "struct linux_robust_list_head *"; + p = "struct linux_robust_list_head **"; break; case 2: p = "l_size_t *"; Modified: projects/release-pkg/sys/amd64/linux32/syscalls.master ============================================================================== --- projects/release-pkg/sys/amd64/linux32/syscalls.master Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/amd64/linux32/syscalls.master Thu Jan 14 13:29:12 2016 (r293915) @@ -520,8 +520,8 @@ ; linux 2.6.17: 311 AUE_NULL STD { int linux_set_robust_list(struct linux_robust_list_head *head, \ l_size_t len); } -312 AUE_NULL STD { int linux_get_robust_list(l_int pid, struct linux_robust_list_head *head, \ - l_size_t *len); } +312 AUE_NULL STD { int linux_get_robust_list(l_int pid, \ + struct linux_robust_list_head **head, l_size_t *len); } 313 AUE_NULL STD { int linux_splice(void); } 314 AUE_NULL STD { int linux_sync_file_range(void); } 315 AUE_NULL STD { int linux_tee(void); } Modified: projects/release-pkg/sys/arm/arm/fusu.S ============================================================================== --- projects/release-pkg/sys/arm/arm/fusu.S Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/arm/arm/fusu.S Thu Jan 14 13:29:12 2016 (r293915) @@ -139,8 +139,8 @@ EENTRY_NP(fueword32) mov r0, #0x00000000 str r0, [r2, #PCB_ONFAULT] RET -EEND(fuword32) -END(fuword) +EEND(fueword32) +END(fueword) /* * fusword(caddr_t uaddr); Modified: projects/release-pkg/sys/boot/arm/uboot/Makefile ============================================================================== --- projects/release-pkg/sys/boot/arm/uboot/Makefile Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/boot/arm/uboot/Makefile Thu Jan 14 13:29:12 2016 (r293915) @@ -8,6 +8,8 @@ NEWVERSWHAT= "U-Boot loader" ${MACHINE_A BINDIR?= /boot INSTALLFLAGS= -b WARNS?= 1 +CWARNFLAGS.gcc+= -Wno-int-to-pointer-cast + # Address at which ubldr will be loaded. # This varies for different boards and SOCs. UBLDR_LOADADDR?= 0x1000000 Modified: projects/release-pkg/sys/boot/common/bootstrap.h ============================================================================== --- projects/release-pkg/sys/boot/common/bootstrap.h Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/boot/common/bootstrap.h Thu Jan 14 13:29:12 2016 (r293915) @@ -56,7 +56,10 @@ typedef int (bootblk_cmd_t)(int argc, ch extern char *command_errmsg; extern char command_errbuf[]; /* XXX blah, length */ #define CMD_OK 0 -#define CMD_ERROR 1 +#define CMD_WARN 1 +#define CMD_ERROR 2 +#define CMD_CRIT 3 +#define CMD_FATAL 4 /* interp.c */ void interact(const char *rc); Modified: projects/release-pkg/sys/boot/common/interp_forth.c ============================================================================== --- projects/release-pkg/sys/boot/common/interp_forth.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/boot/common/interp_forth.c Thu Jan 14 13:29:12 2016 (r293915) @@ -138,13 +138,23 @@ bf_command(FICL_VM *vm) } else { result=BF_PARSE; } + + switch (result) { + case CMD_CRIT: + printf("%s\n", command_errmsg); + break; + case CMD_FATAL: + panic("%s\n", command_errmsg); + } + free(line); /* * If there was error during nested ficlExec(), we may no longer have * valid environment to return. Throw all exceptions from here. */ - if (result != 0) + if (result != CMD_OK) vmThrow(vm, result); + /* This is going to be thrown!!! */ stackPushINT(vm->pStack,result); } Modified: projects/release-pkg/sys/boot/common/module.c ============================================================================== --- projects/release-pkg/sys/boot/common/module.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/boot/common/module.c Thu Jan 14 13:29:12 2016 (r293915) @@ -112,7 +112,7 @@ command_load(int argc, char *argv[]) typestr = NULL; if (argc == 1) { command_errmsg = "no filename specified"; - return(CMD_ERROR); + return (CMD_CRIT); } while ((ch = getopt(argc, argv, "kt:")) != -1) { switch(ch) { @@ -126,7 +126,7 @@ command_load(int argc, char *argv[]) case '?': default: /* getopt has already reported an error */ - return(CMD_OK); + return (CMD_OK); } } argv += (optind - 1); @@ -138,33 +138,46 @@ command_load(int argc, char *argv[]) if (dofile) { if ((argc != 2) || (typestr == NULL) || (*typestr == 0)) { command_errmsg = "invalid load type"; - return(CMD_ERROR); + return (CMD_CRIT); } fp = file_findfile(argv[1], typestr); if (fp) { sprintf(command_errbuf, "warning: file '%s' already loaded", argv[1]); - return (CMD_ERROR); + return (CMD_WARN); } - return (file_loadraw(argv[1], typestr, 1) ? CMD_OK : CMD_ERROR); + if (file_loadraw(argv[1], typestr, 1) != NULL) + return (CMD_OK); + + /* Failing to load mfs_root is never going to end well! */ + if (strcmp("mfs_root", typestr) == 0) + return (CMD_FATAL); + + return (CMD_ERROR); } /* * Do we have explicit KLD load ? */ if (dokld || file_havepath(argv[1])) { error = mod_loadkld(argv[1], argc - 2, argv + 2); - if (error == EEXIST) + if (error == EEXIST) { sprintf(command_errbuf, "warning: KLD '%s' already loaded", argv[1]); - return (error == 0 ? CMD_OK : CMD_ERROR); + return (CMD_WARN); + } + + return (error == 0 ? CMD_OK : CMD_CRIT); } /* * Looks like a request for a module. */ error = mod_load(argv[1], NULL, argc - 2, argv + 2); - if (error == EEXIST) + if (error == EEXIST) { sprintf(command_errbuf, "warning: module '%s' already loaded", argv[1]); - return (error == 0 ? CMD_OK : CMD_ERROR); + return (CMD_WARN); + } + + return (error == 0 ? CMD_OK : CMD_CRIT); } COMMAND_SET(load_geli, "load_geli", "load a geli key", command_load_geli); Modified: projects/release-pkg/sys/boot/efi/fdt/Makefile ============================================================================== --- projects/release-pkg/sys/boot/efi/fdt/Makefile Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/boot/efi/fdt/Makefile Thu Jan 14 13:29:12 2016 (r293915) @@ -7,6 +7,8 @@ LIB= efi_fdt INTERNALLIB= WARNS?= 6 +CWARNFLAGS.gcc+= -Wno-strict-prototypes +CWARNFLAGS.gcc+= -Wno-redundant-decls SRCS= efi_fdt.c Modified: projects/release-pkg/sys/boot/efi/libefi/Makefile ============================================================================== --- projects/release-pkg/sys/boot/efi/libefi/Makefile Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/boot/efi/libefi/Makefile Thu Jan 14 13:29:12 2016 (r293915) @@ -3,6 +3,7 @@ LIB= efi INTERNALLIB= WARNS?= 2 +CWARNFLAGS.gcc+= -Wno-attributes SRCS= delay.c efi_console.c efinet.c efipart.c errno.c handles.c \ libefi.c time.c Modified: projects/release-pkg/sys/compat/linux/linux_futex.c ============================================================================== --- projects/release-pkg/sys/compat/linux/linux_futex.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/compat/linux/linux_futex.c Thu Jan 14 13:29:12 2016 (r293915) @@ -1131,7 +1131,7 @@ linux_get_robust_list(struct thread *td, return (EFAULT); } - error = copyout(head, args->head, sizeof(struct linux_robust_list_head)); + error = copyout(&head, args->head, sizeof(head)); if (error) { LIN_SDT_PROBE1(futex, linux_get_robust_list, copyout_error, error); Modified: projects/release-pkg/sys/compat/linux/linux_misc.c ============================================================================== --- projects/release-pkg/sys/compat/linux/linux_misc.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/compat/linux/linux_misc.c Thu Jan 14 13:29:12 2016 (r293915) @@ -1304,9 +1304,11 @@ linux_setgroups(struct thread *td, struc if (error) goto out; newcred = crget(); + crextend(newcred, ngrp + 1); p = td->td_proc; PROC_LOCK(p); - oldcred = crcopysafe(p, newcred); + oldcred = p->p_ucred; + crcopy(newcred, oldcred); /* * cr_groups[0] holds egid. Setting the whole set from Modified: projects/release-pkg/sys/conf/files.amd64 ============================================================================== --- projects/release-pkg/sys/conf/files.amd64 Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/conf/files.amd64 Thu Jan 14 13:29:12 2016 (r293915) @@ -273,6 +273,7 @@ dev/hyperv/vmbus/hv_channel.c optiona dev/hyperv/vmbus/hv_channel_mgmt.c optional hyperv dev/hyperv/vmbus/hv_connection.c optional hyperv dev/hyperv/vmbus/hv_hv.c optional hyperv +dev/hyperv/vmbus/hv_et.c optional hyperv dev/hyperv/vmbus/hv_ring_buffer.c optional hyperv dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c optional hyperv dev/nfe/if_nfe.c optional nfe pci @@ -316,6 +317,7 @@ dev/sfxge/common/efx_ev.c optional sfxge dev/sfxge/common/efx_filter.c optional sfxge pci dev/sfxge/common/efx_hash.c optional sfxge pci dev/sfxge/common/efx_intr.c optional sfxge pci +dev/sfxge/common/efx_lic.c optional sfxge pci dev/sfxge/common/efx_mac.c optional sfxge pci dev/sfxge/common/efx_mcdi.c optional sfxge pci dev/sfxge/common/efx_mon.c optional sfxge pci Modified: projects/release-pkg/sys/conf/files.i386 ============================================================================== --- projects/release-pkg/sys/conf/files.i386 Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/conf/files.i386 Thu Jan 14 13:29:12 2016 (r293915) @@ -247,6 +247,7 @@ dev/hyperv/vmbus/hv_channel.c optiona dev/hyperv/vmbus/hv_channel_mgmt.c optional hyperv dev/hyperv/vmbus/hv_connection.c optional hyperv dev/hyperv/vmbus/hv_hv.c optional hyperv +dev/hyperv/vmbus/hv_et.c optional hyperv dev/hyperv/vmbus/hv_ring_buffer.c optional hyperv dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c optional hyperv dev/ichwd/ichwd.c optional ichwd Modified: projects/release-pkg/sys/dev/drm2/drm_crtc.c ============================================================================== --- projects/release-pkg/sys/dev/drm2/drm_crtc.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/dev/drm2/drm_crtc.c Thu Jan 14 13:29:12 2016 (r293915) @@ -663,7 +663,7 @@ int drm_plane_init(struct drm_device *de plane->dev = dev; plane->funcs = funcs; plane->format_types = malloc(sizeof(uint32_t) * format_count, - DRM_MEM_KMS, M_NOWAIT); + DRM_MEM_KMS, M_WAITOK); if (!plane->format_types) { DRM_DEBUG_KMS("out of memory when allocating plane\n"); drm_mode_object_put(dev, &plane->base); @@ -1010,7 +1010,7 @@ int drm_mode_group_init(struct drm_devic total_objects += dev->mode_config.num_encoder; group->id_list = malloc(total_objects * sizeof(uint32_t), - DRM_MEM_KMS, M_NOWAIT | M_ZERO); + DRM_MEM_KMS, M_WAITOK | M_ZERO); if (!group->id_list) return -ENOMEM; @@ -1998,7 +1998,7 @@ int drm_mode_setcrtc(struct drm_device * connector_set = malloc(crtc_req->count_connectors * sizeof(struct drm_connector *), - DRM_MEM_KMS, M_NOWAIT); + DRM_MEM_KMS, M_WAITOK); if (!connector_set) { ret = -ENOMEM; goto out; @@ -2523,7 +2523,7 @@ int drm_mode_dirtyfb_ioctl(struct drm_de goto out_err1; } clips = malloc(num_clips * sizeof(*clips), DRM_MEM_KMS, - M_NOWAIT | M_ZERO); + M_WAITOK | M_ZERO); if (!clips) { ret = -ENOMEM; goto out_err1; @@ -2774,13 +2774,13 @@ struct drm_property *drm_property_create int ret; property = malloc(sizeof(struct drm_property), DRM_MEM_KMS, - M_NOWAIT | M_ZERO); + M_WAITOK | M_ZERO); if (!property) return NULL; if (num_values) { property->values = malloc(sizeof(uint64_t)*num_values, DRM_MEM_KMS, - M_NOWAIT | M_ZERO); + M_WAITOK | M_ZERO); if (!property->values) goto fail; } @@ -2908,7 +2908,7 @@ int drm_property_add_enum(struct drm_pro } prop_enum = malloc(sizeof(struct drm_property_enum), DRM_MEM_KMS, - M_NOWAIT | M_ZERO); + M_WAITOK | M_ZERO); if (!prop_enum) return -ENOMEM; @@ -3104,7 +3104,7 @@ static struct drm_property_blob *drm_pro return NULL; blob = malloc(sizeof(struct drm_property_blob)+length, DRM_MEM_KMS, - M_NOWAIT | M_ZERO); + M_WAITOK | M_ZERO); if (!blob) return NULL; @@ -3434,7 +3434,7 @@ int drm_mode_crtc_set_gamma_size(struct crtc->gamma_size = gamma_size; crtc->gamma_store = malloc(gamma_size * sizeof(uint16_t) * 3, - DRM_MEM_KMS, M_NOWAIT | M_ZERO); + DRM_MEM_KMS, M_WAITOK | M_ZERO); if (!crtc->gamma_store) { crtc->gamma_size = 0; return -ENOMEM; @@ -3632,7 +3632,7 @@ int drm_mode_page_flip_ioctl(struct drm_ file_priv->event_space -= sizeof e->event; mtx_unlock(&dev->event_lock); - e = malloc(sizeof *e, DRM_MEM_KMS, M_NOWAIT | M_ZERO); + e = malloc(sizeof *e, DRM_MEM_KMS, M_WAITOK | M_ZERO); if (e == NULL) { mtx_lock(&dev->event_lock); file_priv->event_space += sizeof e->event; Modified: projects/release-pkg/sys/dev/drm2/drm_pci.c ============================================================================== --- projects/release-pkg/sys/dev/drm2/drm_pci.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/dev/drm2/drm_pci.c Thu Jan 14 13:29:12 2016 (r293915) @@ -225,7 +225,7 @@ int drm_pci_set_unique(struct drm_device master->unique_len = u->unique_len; master->unique_size = u->unique_len + 1; - master->unique = malloc(master->unique_size, DRM_MEM_DRIVER, M_NOWAIT); + master->unique = malloc(master->unique_size, DRM_MEM_DRIVER, M_WAITOK); if (!master->unique) { ret = -ENOMEM; goto err; Modified: projects/release-pkg/sys/dev/drm2/i915/i915_gem.c ============================================================================== --- projects/release-pkg/sys/dev/drm2/i915/i915_gem.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/dev/drm2/i915/i915_gem.c Thu Jan 14 13:29:12 2016 (r293915) @@ -156,7 +156,7 @@ i915_gem_wait_for_error(struct drm_devic int ret; if (!atomic_load_acq_int(&dev_priv->mm.wedged)) - return (0); + return 0; mtx_lock(&dev_priv->error_completion_lock); while (dev_priv->error_completion == 0) { @@ -166,7 +166,7 @@ i915_gem_wait_for_error(struct drm_devic ret = -ERESTARTSYS; if (ret != 0) { mtx_unlock(&dev_priv->error_completion_lock); - return (ret); + return ret; } } mtx_unlock(&dev_priv->error_completion_lock); @@ -1861,26 +1861,30 @@ i915_gem_object_put_pages_range(struct d static void i915_gem_object_put_pages_gtt(struct drm_i915_gem_object *obj) { - vm_page_t page; - int page_count, i; + int page_count = obj->base.size / PAGE_SIZE; + int i; KASSERT(obj->madv != I915_MADV_PURGED_INTERNAL, ("Purged object")); if (obj->tiling_mode != I915_TILING_NONE) i915_gem_object_save_bit_17_swizzle(obj); + if (obj->madv == I915_MADV_DONTNEED) obj->dirty = 0; - page_count = obj->base.size / PAGE_SIZE; + VM_OBJECT_WLOCK(obj->base.vm_obj); #if GEM_PARANOID_CHECK_GTT i915_gem_assert_pages_not_mapped(obj->base.dev, obj->pages, page_count); #endif for (i = 0; i < page_count; i++) { - page = obj->pages[i]; + vm_page_t page = obj->pages[i]; + if (obj->dirty) vm_page_dirty(page); + if (obj->madv == I915_MADV_WILLNEED) vm_page_reference(page); + vm_page_lock(page); vm_page_unwire(obj->pages[i], PQ_ACTIVE); vm_page_unlock(page); @@ -1888,6 +1892,7 @@ i915_gem_object_put_pages_gtt(struct drm } VM_OBJECT_WUNLOCK(obj->base.vm_obj); obj->dirty = 0; + free(obj->pages, DRM_I915_GEM); obj->pages = NULL; } Modified: projects/release-pkg/sys/dev/drm2/i915/i915_gem_execbuffer.c ============================================================================== --- projects/release-pkg/sys/dev/drm2/i915/i915_gem_execbuffer.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/dev/drm2/i915/i915_gem_execbuffer.c Thu Jan 14 13:29:12 2016 (r293915) @@ -411,8 +411,8 @@ i915_gem_execbuffer_relocate_entry(struc reloc->offset += obj->gtt_offset; reloc_page = pmap_mapdev_attr(dev->agp->base + (reloc->offset & ~PAGE_MASK), PAGE_SIZE, PAT_WRITE_COMBINING); - reloc_entry = (uint32_t *)(reloc_page + (reloc->offset & - PAGE_MASK)); + reloc_entry = (uint32_t *) + (reloc_page + (reloc->offset & PAGE_MASK)); *(volatile uint32_t *)reloc_entry = reloc->delta; pmap_unmapdev((vm_offset_t)reloc_page, PAGE_SIZE); } @@ -502,7 +502,7 @@ i915_gem_execbuffer_relocate(struct drm_ struct list_head *objects) { struct drm_i915_gem_object *obj; - int ret, pflags; + int ret = 0, pflags; /* Try to move as many of the relocation targets off the active list * to avoid unnecessary fallbacks to the slow path, as we cannot wait @@ -510,7 +510,6 @@ i915_gem_execbuffer_relocate(struct drm_ */ i915_gem_retire_requests(dev); - ret = 0; /* This is the fast path and we cannot handle a pagefault whilst * holding the device lock lest the user pass in the relocations * contained within a mmaped bo. For in such a case we, the page @@ -952,6 +951,7 @@ validate_exec_list(struct drm_i915_gem_e *map = malloc(count * sizeof(*ma), DRM_I915_GEM, M_WAITOK | M_ZERO); *maplen = malloc(count * sizeof(*maplen), DRM_I915_GEM, M_WAITOK | M_ZERO); + for (i = 0; i < count; i++) { /* First check for malicious input causing overflow */ if (exec[i].relocation_count > Modified: projects/release-pkg/sys/dev/drm2/i915/i915_gem_gtt.c ============================================================================== --- projects/release-pkg/sys/dev/drm2/i915/i915_gem_gtt.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/dev/drm2/i915/i915_gem_gtt.c Thu Jan 14 13:29:12 2016 (r293915) @@ -107,21 +107,22 @@ int i915_gem_init_aliasing_ppgtt(struct I915_PPGTT_PT_ENTRIES); ppgtt->pd_offset = (first_pd_entry_in_global_pt) * sizeof(uint32_t); dev_priv->mm.aliasing_ppgtt = ppgtt; - return (0); + + return 0; } -static void -i915_ppgtt_insert_pages(struct i915_hw_ppgtt *ppgtt, unsigned first_entry, - unsigned num_entries, vm_page_t *pages, uint32_t pte_flags) +static void i915_ppgtt_insert_pages(struct i915_hw_ppgtt *ppgtt, + unsigned first_entry, + unsigned num_entries, + vm_page_t *pages, + uint32_t pte_flags) { uint32_t *pt_vaddr, pte; - struct sf_buf *sf; - unsigned act_pd, first_pte; - unsigned last_pte, i; + unsigned act_pd = first_entry / I915_PPGTT_PT_ENTRIES; + unsigned first_pte = first_entry % I915_PPGTT_PT_ENTRIES; + unsigned j, last_pte; vm_paddr_t page_addr; - - act_pd = first_entry / I915_PPGTT_PT_ENTRIES; - first_pte = first_entry % I915_PPGTT_PT_ENTRIES; + struct sf_buf *sf; while (num_entries) { last_pte = first_pte + num_entries; @@ -132,10 +133,10 @@ i915_ppgtt_insert_pages(struct i915_hw_p sf = sf_buf_alloc(ppgtt->pt_pages[act_pd], SFB_CPUPRIVATE); pt_vaddr = (uint32_t *)(uintptr_t)sf_buf_kva(sf); - for (i = first_pte; i < last_pte; i++) { + for (j = first_pte; j < last_pte; j++) { page_addr = VM_PAGE_TO_PHYS(*pages); pte = GEN6_PTE_ADDR_ENCODE(page_addr); - pt_vaddr[i] = pte | pte_flags; + pt_vaddr[j] = pte | pte_flags; pages++; } @@ -194,18 +195,21 @@ void i915_gem_init_ppgtt(struct drm_devi struct intel_ring_buffer *ring; struct i915_hw_ppgtt *ppgtt = dev_priv->mm.aliasing_ppgtt; u_int first_pd_entry_in_global_pt; - vm_paddr_t pt_addr; uint32_t pd_entry; int i; if (!dev_priv->mm.aliasing_ppgtt) return; + first_pd_entry_in_global_pt = 512 * 1024 - I915_PPGTT_PD_ENTRIES; for (i = 0; i < ppgtt->num_pd_entries; i++) { + vm_paddr_t pt_addr; + pt_addr = VM_PAGE_TO_PHYS(ppgtt->pt_pages[i]); pd_entry = GEN6_PDE_ADDR_ENCODE(pt_addr); pd_entry |= GEN6_PDE_VALID; + intel_gtt_write(first_pd_entry_in_global_pt + i, pd_entry); } intel_gtt_read_pte(first_pd_entry_in_global_pt); @@ -217,7 +221,7 @@ void i915_gem_init_ppgtt(struct drm_devi if (INTEL_INFO(dev)->gen == 6) { uint32_t ecochk, gab_ctl, ecobits; - ecobits = I915_READ(GAC_ECO_BITS); + ecobits = I915_READ(GAC_ECO_BITS); I915_WRITE(GAC_ECO_BITS, ecobits | ECOBITS_PPGTT_CACHE64B); gab_ctl = I915_READ(GAB_CTL); @@ -336,9 +340,8 @@ int i915_gem_gtt_prepare_object(struct d return 0; } -void -i915_gem_gtt_bind_object(struct drm_i915_gem_object *obj, - enum i915_cache_level cache_level) +void i915_gem_gtt_bind_object(struct drm_i915_gem_object *obj, + enum i915_cache_level cache_level) { struct drm_device *dev; struct drm_i915_private *dev_priv; @@ -375,15 +378,14 @@ void i915_gem_gtt_finish_object(struct d } int i915_gem_init_global_gtt(struct drm_device *dev, - unsigned long start, - unsigned long mappable_end, - unsigned long end) + unsigned long start, + unsigned long mappable_end, + unsigned long end) { - drm_i915_private_t *dev_priv; + drm_i915_private_t *dev_priv = dev->dev_private; unsigned long mappable; int error; - dev_priv = dev->dev_private; mappable = min(end, mappable_end) - start; /* Substract the guard page ... */ Modified: projects/release-pkg/sys/dev/drm2/i915/i915_gem_tiling.c ============================================================================== --- projects/release-pkg/sys/dev/drm2/i915/i915_gem_tiling.c Thu Jan 14 13:14:12 2016 (r293914) +++ projects/release-pkg/sys/dev/drm2/i915/i915_gem_tiling.c Thu Jan 14 13:29:12 2016 (r293915) @@ -453,15 +453,15 @@ i915_gem_get_tiling(struct drm_device *d * by the GPU. */ static void -i915_gem_swizzle_page(vm_page_t m) +i915_gem_swizzle_page(vm_page_t page) { char temp[64]; - char *vaddr; struct sf_buf *sf; + char *vaddr; int i; /* XXXKIB sleep */ - sf = sf_buf_alloc(m, SFB_DEFAULT); + sf = sf_buf_alloc(page, SFB_DEFAULT); vaddr = (char *)sf_buf_kva(sf); *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201601141329.u0EDTDVk002765>