svn commit: r324713 - head/sys/fs/ext2fs
Author: rlibby Date: Wed Oct 18 00:41:23 2017 New Revision: 324713 URL: https://svnweb.freebsd.org/changeset/base/324713 Log: ext2: delete redundant decl of ext2_fserr Fix gcc build after r324706. Reviewed by: pfg Differential Revision:https://reviews.freebsd.org/D12709 Modified: head/sys/fs/ext2fs/ext2_extern.h Modified: head/sys/fs/ext2fs/ext2_extern.h == --- head/sys/fs/ext2fs/ext2_extern.hWed Oct 18 00:33:20 2017 (r324712) +++ head/sys/fs/ext2fs/ext2_extern.hWed Oct 18 00:41:23 2017 (r324713) @@ -102,7 +102,6 @@ int ext2_search_dirblock(struct inode *, void *, int * int *, doff_t *, doff_t *, doff_t *, struct ext2fs_searchslot *); intext2_gd_csum_verify(struct m_ext2fs *fs, struct cdev *dev); void ext2_gd_csum_set(struct m_ext2fs *fs); -void ext2_fserr(struct m_ext2fs *, uid_t, char *); /* Flags to low-level allocation routines. ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r324712 - head/share/mk
Author: jonathan Date: Wed Oct 18 00:33:20 2017 New Revision: 324712 URL: https://svnweb.freebsd.org/changeset/base/324712 Log: Improve computation of {BC,LL}OBJS. Now that OBJS has grown an OBJS_SRCS_FILTER variable, use this variable in the computation of BCOBJS and LLOBJS too. Also move BCOBJS and LLOBJS computation to be next to the OBJS computation: this should both make the parallel structure clearer and serve to remind people changing OBJS that parallel changes are required in BCOBJS and LLOBJS. A side effect of this change is that BCOBJS and LLOBJS will be available even when LLVM_LINK has not been defined, but that seems like a positive change: there's no reason we can't ask "what bitcode files would you generate" just because we can't link those files together into a complete bitcode representation of a binary or library. Reviewed by: sjg Sponsored by: DARPA, AFRL Differential Revision:https://reviews.freebsd.org/D12701 Modified: head/share/mk/bsd.lib.mk head/share/mk/bsd.prog.mk Modified: head/share/mk/bsd.lib.mk == --- head/share/mk/bsd.lib.mkWed Oct 18 00:30:15 2017(r324711) +++ head/share/mk/bsd.lib.mkWed Oct 18 00:33:20 2017(r324712) @@ -169,7 +169,9 @@ LDFLAGS+= -Wl,--version-script=${VERSION_MAP} .if defined(LIB) && !empty(LIB) || defined(SHLIB_NAME) OBJS+= ${SRCS:N*.h:${OBJS_SRCS_FILTER:ts:}:S/$/.o/} -CLEANFILES+= ${OBJS} ${STATICOBJS} +BCOBJS+= ${SRCS:N*.[hsS]:N*.asm:${OBJS_SRCS_FILTER:ts:}:S/$/.bco/g} +LLOBJS+= ${SRCS:N*.[hsS]:N*.asm:${OBJS_SRCS_FILTER:ts:}:S/$/.llo/g} +CLEANFILES+= ${OBJS} ${BCOBJS} ${LLOBJS} ${STATICOBJS} .endif .if defined(LIB) && !empty(LIB) @@ -200,10 +202,6 @@ lib${LIB_PRIVATE}${LIB}_p.a: ${POBJS} .endif .if defined(LLVM_LINK) -BCOBJS=${OBJS:.o=.bco} ${STATICOBJS:.o=.bco} -LLOBJS=${OBJS:.o=.llo} ${STATICOBJS:.o=.llo} -CLEANFILES+= ${BCOBJS} ${LLOBJS} - lib${LIB_PRIVATE}${LIB}.bc: ${BCOBJS} ${LLVM_LINK} -o ${.TARGET} ${BCOBJS} Modified: head/share/mk/bsd.prog.mk == --- head/share/mk/bsd.prog.mk Wed Oct 18 00:30:15 2017(r324711) +++ head/share/mk/bsd.prog.mk Wed Oct 18 00:33:20 2017(r324712) @@ -87,6 +87,10 @@ PROGNAME?= ${PROG} OBJS+= ${SRCS:N*.h:${OBJS_SRCS_FILTER:ts:}:S/$/.o/g} +# LLVM bitcode / textual IR representations of the program +BCOBJS+=${SRCS:N*.[hsS]:N*.asm:${OBJS_SRCS_FILTER:ts:}:S/$/.bco/g} +LLOBJS+=${SRCS:N*.[hsS]:N*.asm:${OBJS_SRCS_FILTER:ts:}:S/$/.llo/g} + .if target(beforelinking) beforelinking: ${OBJS} ${PROG_FULL}: beforelinking @@ -117,7 +121,10 @@ SRCS= ${PROG}.c # - the name of the object gets put into the executable symbol table instead of # the name of a variable temporary object. # - it's useful to keep objects around for crunching. -OBJS+= ${PROG}.o +OBJS+= ${PROG}.o +BCOBJS+= ${PROG}.bc +LLOBJS+= ${PROG}.ll +CLEANFILES+= ${PROG}.o ${PROG}.bc ${PROG}.ll .if target(beforelinking) beforelinking: ${OBJS} @@ -148,10 +155,6 @@ ${PROGNAME}.debug: ${PROG_FULL} .endif .if defined(LLVM_LINK) -# LLVM bitcode / textual IR representations of the program -BCOBJS=${OBJS:.o=.bco} -LLOBJS=${OBJS:.o=.llo} - ${PROG_FULL}.bc: ${BCOBJS} ${LLVM_LINK} -o ${.TARGET} ${BCOBJS} ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r324711 - head/share/mk
Author: jonathan Date: Wed Oct 18 00:30:15 2017 New Revision: 324711 URL: https://svnweb.freebsd.org/changeset/base/324711 Log: Improve logic of CLEANFILES+=${PROG_FULL}.{bc,ll}. The build rule describing how to create ${PROG_FULL}.{bc,ll} is only dependent on LLVM_LINK being defined, not on MK_DEBUG_FILES being "yes". Move the addition of ${PROG_FULL}.{bc,ll} out of the conditional block under `.if ${MK_DEBUG_FILES} != "no"` and up next to where the build rules for ${PROG_FULL}.{bc,ll} are defined. Reviewed by: emaste MFC after:1 week Sponsored by: DARPA, AFRL Differential Revision:https://reviews.freebsd.org/D12703 Modified: head/share/mk/bsd.prog.mk Modified: head/share/mk/bsd.prog.mk == --- head/share/mk/bsd.prog.mk Wed Oct 18 00:18:03 2017(r324710) +++ head/share/mk/bsd.prog.mk Wed Oct 18 00:30:15 2017(r324711) @@ -158,6 +158,7 @@ ${PROG_FULL}.bc: ${BCOBJS} ${PROG_FULL}.ll: ${LLOBJS} ${LLVM_LINK} -S -o ${.TARGET} ${LLOBJS} +CLEANFILES+= ${PROG_FULL}.bc ${PROG_FULL}.ll .endif # defined(LLVM_LINK) .if${MK_MAN} != "no" && !defined(MAN) && \ @@ -181,7 +182,7 @@ all: all-man .if defined(PROG) CLEANFILES+= ${PROG} ${PROG}.bc ${PROG}.ll .if ${MK_DEBUG_FILES} != "no" -CLEANFILES+= ${PROG_FULL} ${PROG_FULL}.bc ${PROGNAME}.debug ${PROG_FULL}.ll +CLEANFILES+= ${PROG_FULL} ${PROGNAME}.debug .endif .endif ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r324710 - in head: . share/man/man9 sys/conf sys/kern sys/modules sys/modules/libmbpool sys/sys
Author: brooks Date: Wed Oct 18 00:18:03 2017 New Revision: 324710 URL: https://svnweb.freebsd.org/changeset/base/324710 Log: Remove mbpool(9) now that it has no consumers. mbpool existed to support NICs with memory interfaces and all remaining comsumers were removed earlier this year with NATM. Reviewed by: jhb Sponsored by: DARPA, AFRL Differential Revision:https://reviews.freebsd.org/D10513 Deleted: head/share/man/man9/mbpool.9 head/sys/kern/subr_mbpool.c head/sys/modules/libmbpool/Makefile head/sys/sys/mbpool.h Modified: head/ObsoleteFiles.inc head/share/man/man9/Makefile head/sys/conf/NOTES head/sys/conf/files head/sys/conf/options head/sys/modules/Makefile Modified: head/ObsoleteFiles.inc == --- head/ObsoleteFiles.inc Tue Oct 17 23:38:27 2017(r324709) +++ head/ObsoleteFiles.inc Wed Oct 18 00:18:03 2017(r324710) @@ -38,6 +38,19 @@ # xargs -n1 | sort | uniq -d; # done +# 20171017: Removal of mbpool(9) +OLD_FILES+=usr/include/sys/mbpool.h +OLD_FILES+=usr/share/man/man9/mbpool.9.gz +OLD_FILES+=usr/share/man/man9/mbp_destroy.9.gz +OLD_FILES+=usr/share/man/man9/mbp_alloc.9.gz +OLD_FILES+=usr/share/man/man9/mbp_ext_free.9.gz +OLD_FILES+=usr/share/man/man9/mbp_count.9.gz +OLD_FILES+=usr/share/man/man9/mbp_card_free.9.gz +OLD_FILES+=usr/share/man/man9/mbp_get_keep.9.gz +OLD_FILES+=usr/share/man/man9/mbp_free.9.gz +OLD_FILES+=usr/share/man/man9/mbp_get.9.gz +OLD_FILES+=usr/share/man/man9/mbp_create.9.gz +OLD_FILES+=usr/share/man/man9/mbp_sync.9.gz # 20171010: Remove libstand OLD_FILES+=usr/lib/libstand.a OLD_FILES+=usr/lib/libstand_p.a Modified: head/share/man/man9/Makefile == --- head/share/man/man9/MakefileTue Oct 17 23:38:27 2017 (r324709) +++ head/share/man/man9/MakefileWed Oct 18 00:18:03 2017 (r324710) @@ -184,7 +184,6 @@ MAN=accept_filter.9 \ make_dev.9 \ malloc.9 \ mbchain.9 \ - mbpool.9 \ mbuf.9 \ mbuf_tags.9 \ MD5.9 \ @@ -1162,16 +1161,6 @@ MLINKS+=mbchain.9 mb_detach.9 \ mbchain.9 mb_put_uint8.9 \ mbchain.9 mb_put_uio.9 \ mbchain.9 mb_reserve.9 -MLINKS+=mbpool.9 mbp_alloc.9 \ - mbpool.9 mbp_card_free.9 \ - mbpool.9 mbp_count.9 \ - mbpool.9 mbp_create.9 \ - mbpool.9 mbp_destroy.9 \ - mbpool.9 mbp_ext_free.9 \ - mbpool.9 mbp_free.9 \ - mbpool.9 mbp_get.9 \ - mbpool.9 mbp_get_keep.9 \ - mbpool.9 mbp_sync.9 MLINKS+=\ mbuf.9 m_adj.9 \ mbuf.9 m_align.9 \ Modified: head/sys/conf/NOTES == --- head/sys/conf/NOTES Tue Oct 17 23:38:27 2017(r324709) +++ head/sys/conf/NOTES Wed Oct 18 00:18:03 2017(r324710) @@ -2210,8 +2210,6 @@ devicertwnfw optionsMCLSHIFT=12 # mbuf cluster shift in bits, 12 == 4KB optionsMSIZE=512 # mbuf size in bytes -optionsLIBMBPOOL - # # Sound drivers # Modified: head/sys/conf/files == --- head/sys/conf/files Tue Oct 17 23:38:27 2017(r324709) +++ head/sys/conf/files Wed Oct 18 00:18:03 2017(r324710) @@ -3816,7 +3816,6 @@ kern/subr_kdb.c standard kern/subr_kobj.c standard kern/subr_lock.c standard kern/subr_log.cstandard -kern/subr_mbpool.c optional libmbpool kern/subr_mchain.c optional libmchain kern/subr_module.c standard kern/subr_msgbuf.c standard Modified: head/sys/conf/options == --- head/sys/conf/options Tue Oct 17 23:38:27 2017(r324709) +++ head/sys/conf/options Wed Oct 18 00:18:03 2017(r324710) @@ -432,7 +432,6 @@ IPSEC_SUPPORT opt_ipsec.h IPSTEALTH KRPC LIBALIAS -LIBMBPOOL LIBMCHAIN MBUF_PROFILING MBUF_STRESS_TEST Modified: head/sys/modules/Makefile == --- head/sys/modules/Makefile Tue Oct 17 23:38:27 2017(r324709) +++ head/sys/modules/Makefile Wed Oct 18 00:18:03 2017(r324710) @@ -218,7 +218,6 @@ SUBDIR= \ lge \ libalias \ libiconv \ - libmbpool \ libmchain \ ${_linprocfs} \ ${_linsysfs} \ ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r324709 - in head/sys/boot/efi: boot1 libefi loader
Author: imp Date: Tue Oct 17 23:38:27 2017 New Revision: 324709 URL: https://svnweb.freebsd.org/changeset/base/324709 Log: Revert "Unify boot1 with loader" change r324646 Back out the unification commit to boot1. There's some issues on the arm and arm64 platforms that need to be addressed with code changes. There's also a discussion on arch@ about the future of boot1.efi vs just using loader.efi that needs to play out. So take a pause on these changes until the arm issues can be fixed and it's clear boot1.efi will survive into FreeBSD 12. OK'd by: Eric@meatspace Added: head/sys/boot/efi/boot1/boot_module.h (contents, props changed) head/sys/boot/efi/boot1/ufs_module.c (contents, props changed) head/sys/boot/efi/boot1/zfs_module.c (contents, props changed) head/sys/boot/efi/loader/efi_main.c (contents, props changed) - copied, changed from r324707, head/sys/boot/efi/libefi/efi_main.c Deleted: head/sys/boot/efi/libefi/efi_main.c Modified: head/sys/boot/efi/boot1/Makefile head/sys/boot/efi/boot1/boot1.c head/sys/boot/efi/libefi/Makefile head/sys/boot/efi/loader/Makefile Modified: head/sys/boot/efi/boot1/Makefile == --- head/sys/boot/efi/boot1/MakefileTue Oct 17 21:20:07 2017 (r324708) +++ head/sys/boot/efi/boot1/MakefileTue Oct 17 23:38:27 2017 (r324709) @@ -9,11 +9,8 @@ MK_FORTH= no PROG= boot1.sym INTERNALPROG= -WARNS?=3 +WARNS?=6 -# Include bcache code. -HAVE_BCACHE=yes - # We implement a slightly non-standard %S in that it always takes a # CHAR16 that's common in UEFI-land instead of a wchar_t. This only # seems to matter on arm64 where wchar_t defaults to an int instead @@ -22,15 +19,13 @@ HAVE_BCACHE=yes CWARNFLAGS.boot1.c+= -Wno-format # Disable warnings that are currently incompatible with the zfs boot code -CWARNFLAGS.zfs.c += -Wno-incompatible-pointer-types-discards-qualifiers -CWARNFLAGS.zfs.c += -Wno-missing-variable-declarations -CWARNFLAGS.zfs.c += -Wno-array-bounds -CWARNFLAGS.zfs.c += -Wno-cast-align -CWARNFLAGS.zfs.c += -Wno-cast-qual -CWARNFLAGS.zfs.c += -Wno-missing-prototypes -CWARNFLAGS.zfs.c += -Wno-sign-compare -CWARNFLAGS.zfs.c += -Wno-unused-parameter -CWARNFLAGS.zfs.c += -Wno-unused-function +CWARNFLAGS.zfs_module.c += -Wno-array-bounds +CWARNFLAGS.zfs_module.c += -Wno-cast-align +CWARNFLAGS.zfs_module.c += -Wno-cast-qual +CWARNFLAGS.zfs_module.c += -Wno-missing-prototypes +CWARNFLAGS.zfs_module.c += -Wno-sign-compare +CWARNFLAGS.zfs_module.c += -Wno-unused-parameter +CWARNFLAGS.zfs_module.c += -Wno-unused-function CWARNFLAGS.skein.c += -Wno-cast-align .if ${COMPILER_TYPE} == "clang" CWARNFLAGS.skein.c += -Wno-missing-variable-declarations @@ -39,25 +34,19 @@ CWARNFLAGS.skein.c += -Wno-missing-declarations .endif # architecture-specific loader code -SRCS= boot1.c self_reloc.c start.S +SRCS= boot1.c self_reloc.c start.S ufs_module.c .if ${MK_ZFS} != "no" -.PATH: ${.CURDIR}/../../../crypto/skein +SRCS+= zfs_module.c SRCS+= skein.c skein_block.c # Do not unroll skein loops, reduce code size CFLAGS+= -DSKEIN_LOOP=111 -.PATH: ${.CURDIR}/../../zfs -SRCS+= zfs.c +.PATH: ${.CURDIR}/../../../crypto/skein .endif .if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} > 40201 CWARNFLAGS.self_reloc.c+= -Wno-error=maybe-uninitialized .endif -# Always add MI sources -.include "../../loader.mk" - -.PATH: ${.CURDIR}/arch/${MACHINE} - CFLAGS+= -I. CFLAGS+= -I${.CURDIR}/../include CFLAGS+= -I${.CURDIR}/../include/${MACHINE} @@ -129,7 +118,7 @@ boot1.efi: ${PROG} SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH} \ ${OBJCOPY} -j .peheader -j .text -j .sdata -j .data \ -j .dynamic -j .dynsym -j .rel.dyn \ - -j .rela.dyn -j .reloc -j .eh_frame -j set_Xcommand_set \ + -j .rela.dyn -j .reloc -j .eh_frame \ --output-target=${EFI_TARGET} ${.ALLSRC} ${.TARGET} boot1.o: ${SASRC}/ufsread.c Modified: head/sys/boot/efi/boot1/boot1.c == --- head/sys/boot/efi/boot1/boot1.c Tue Oct 17 21:20:07 2017 (r324708) +++ head/sys/boot/efi/boot1/boot1.c Tue Oct 17 23:38:27 2017 (r324709) @@ -23,179 +23,61 @@ __FBSDID("$FreeBSD$"); #include -#include #include #include #include -#include #include -#include -#include #include -#ifdef EFI_ZFS_BOOT -#include -#endif typedef CHAR16 efi_char; #include -#include - -#include "efi_drivers.h" -#include "efizfs.h" +#include "boot_module.h" #include "paths.h" static void efi_panic(EFI_STATUS s, const char *fmt, ...) __dead2 __printflike(2, 3); -#ifdef EFI_DEBUG -#define DPRINTF(fmt, args...) printf(fmt, ##args) -#define DSTALL(d) BS->Stall(d) -#else -#define
svn commit: r324707 - head/sys/tools
Author: emaste Date: Tue Oct 17 21:13:26 2017 New Revision: 324707 URL: https://svnweb.freebsd.org/changeset/base/324707 Log: embed_mfs: add error handling, usage Ensure that we are called with two arguments, and that the output file is writable. Also, if we cannot find the mfs section report the output file name rather than "kernel", as this script may be used with other than kernels. Sponsored by: The FreeBSD Foundation Modified: head/sys/tools/embed_mfs.sh Modified: head/sys/tools/embed_mfs.sh == --- head/sys/tools/embed_mfs.sh Tue Oct 17 20:45:44 2017(r324706) +++ head/sys/tools/embed_mfs.sh Tue Oct 17 21:13:26 2017(r324707) @@ -32,13 +32,22 @@ # $2: MFS image filename # +if [ $# -ne 2 ]; then + echo "usage: $(basename $0) target mfs_image" + exit 0 +fi +if [ ! -w "$1" ]; then + echo $1 not writable + exit 1 +fi + mfs_size=`stat -f '%z' $2 2> /dev/null` # If we can't determine MFS image size - bail. [ -z ${mfs_size} ] && echo "Can't determine MFS image size" && exit 1 sec_info=`elfdump -c $1 2> /dev/null | grep -A 5 -E "sh_name: oldmfs$"` # If we can't find the mfs section within the given kernel - bail. -[ -z "${sec_info}" ] && echo "Can't locate mfs section within kernel" && exit 1 +[ -z "${sec_info}" ] && echo "Can't locate mfs section within $1" && exit 1 sec_size=`echo "${sec_info}" | awk '/sh_size/ {print $2}' 2> /dev/null` sec_start=`echo "${sec_info}" | awk '/sh_offset/ {print $2}' 2> /dev/null` ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r324706 - head/sys/fs/ext2fs
Author: fsu Date: Tue Oct 17 20:45:44 2017 New Revision: 324706 URL: https://svnweb.freebsd.org/changeset/base/324706 Log: Add inital extents read-write support. Approved by:pfg (mentor) MFC after: 6 months RelNotes: Yes Differential Revision:https://reviews.freebsd.org/D12087 Modified: head/sys/fs/ext2fs/ext2_alloc.c head/sys/fs/ext2fs/ext2_balloc.c head/sys/fs/ext2fs/ext2_bmap.c head/sys/fs/ext2fs/ext2_extattr.c head/sys/fs/ext2fs/ext2_extents.c head/sys/fs/ext2fs/ext2_extents.h head/sys/fs/ext2fs/ext2_extern.h head/sys/fs/ext2fs/ext2_inode.c head/sys/fs/ext2fs/ext2_inode_cnv.c head/sys/fs/ext2fs/ext2_subr.c head/sys/fs/ext2fs/ext2_vfsops.c head/sys/fs/ext2fs/ext2_vnops.c head/sys/fs/ext2fs/ext2fs.h head/sys/fs/ext2fs/inode.h Modified: head/sys/fs/ext2fs/ext2_alloc.c == --- head/sys/fs/ext2fs/ext2_alloc.c Tue Oct 17 20:37:31 2017 (r324705) +++ head/sys/fs/ext2fs/ext2_alloc.c Tue Oct 17 20:45:44 2017 (r324706) @@ -135,19 +135,20 @@ nospace: * Allocate EA's block for inode. */ daddr_t -ext2_allocfacl(struct inode *ip) +ext2_alloc_meta(struct inode *ip) { struct m_ext2fs *fs; - daddr_t facl; + daddr_t blk; fs = ip->i_e2fs; EXT2_LOCK(ip->i_ump); - facl = ext2_alloccg(ip, ino_to_cg(fs, ip->i_number), 0, fs->e2fs_bsize); - if (0 == facl) + blk = ext2_hashalloc(ip, ino_to_cg(fs, ip->i_number), 0, fs->e2fs_bsize, + ext2_alloccg); + if (0 == blk) EXT2_UNLOCK(ip->i_ump); - return (facl); + return (blk); } /* @@ -200,7 +201,7 @@ ext2_reallocblks(struct vop_reallocblks_args *ap) fs = ip->i_e2fs; ump = ip->i_ump; - if (fs->e2fs_contigsumsize <= 0) + if (fs->e2fs_contigsumsize <= 0 || ip->i_flag & IN_E4EXTENTS) return (ENOSPC); buflist = ap->a_buflist; @@ -375,7 +376,7 @@ ext2_valloc(struct vnode *pvp, int mode, struct ucred struct inode *ip; struct ext2mount *ump; ino_t ino, ipref; - int i, error, cg; + int error, cg; *vpp = NULL; pip = VTOI(pvp); @@ -421,11 +422,12 @@ ext2_valloc(struct vnode *pvp, int mode, struct ucred ip->i_blocks = 0; ip->i_mode = 0; ip->i_flags = 0; - /* now we want to make sure that the block pointers are zeroed out */ - for (i = 0; i < EXT2_NDADDR; i++) - ip->i_db[i] = 0; - for (i = 0; i < EXT2_NIADDR; i++) - ip->i_ib[i] = 0; + if (EXT2_HAS_INCOMPAT_FEATURE(fs, EXT2F_INCOMPAT_EXTENTS) + && (S_ISREG(mode) || S_ISDIR(mode))) + ext4_ext_tree_init(ip); + else + memset(ip->i_data, 0, sizeof(ip->i_data)); + /* * Set up a new generation number for this inode. @@ -575,8 +577,11 @@ e4fs_daddr_t ext2_blkpref(struct inode *ip, e2fs_lbn_t lbn, int indx, e2fs_daddr_t *bap, e2fs_daddr_t blocknr) { + struct m_ext2fs *fs; int tmp; + fs = ip->i_e2fs; + mtx_assert(EXT2_MTX(ip->i_ump), MA_OWNED); /* @@ -599,10 +604,9 @@ ext2_blkpref(struct inode *ip, e2fs_lbn_t lbn, int ind * Else lets fall back to the blocknr or, if there is none, follow * the rule that a block should be allocated near its inode. */ - return blocknr ? blocknr : + return (blocknr ? blocknr : (e2fs_daddr_t)(ip->i_block_group * - EXT2_BLOCKS_PER_GROUP(ip->i_e2fs)) + - ip->i_e2fs->e2fs->e2fs_first_dblock; + EXT2_BLOCKS_PER_GROUP(fs)) + fs->e2fs->e2fs_first_dblock); } /* Modified: head/sys/fs/ext2fs/ext2_balloc.c == --- head/sys/fs/ext2fs/ext2_balloc.cTue Oct 17 20:37:31 2017 (r324705) +++ head/sys/fs/ext2fs/ext2_balloc.cTue Oct 17 20:45:44 2017 (r324706) @@ -51,6 +51,76 @@ #include #include +static int +ext2_ext_balloc(struct inode *ip, uint32_t lbn, int size, +struct ucred *cred, struct buf **bpp, int flags) +{ + struct m_ext2fs *fs; + struct buf *bp = NULL; + struct vnode *vp = ITOV(ip); + uint32_t nb; + int osize, nsize, blks, error, allocated; + + fs = ip->i_e2fs; + blks = howmany(size, fs->e2fs_bsize); + + error = ext4_ext_get_blocks(ip, lbn, blks, cred, NULL, , ); + if (error) + return (error); + + if (allocated) { + if (ip->i_size < (lbn + 1) * fs->e2fs_bsize) + nsize = fragroundup(fs, size); + else + nsize = fs->e2fs_bsize; + + bp = getblk(vp, lbn, nsize, 0, 0, 0); + if(!bp) + return (EIO); + + bp->b_blkno = fsbtodb(fs, nb); + if (flags & BA_CLRBUF) +
svn commit: r324705 - head/sys/dev/cxgbe/tom
Author: rlibby Date: Tue Oct 17 20:37:31 2017 New Revision: 324705 URL: https://svnweb.freebsd.org/changeset/base/324705 Log: cxgbe: delete now-redundant vnet decls r324539 gathered some vnet decls into netinet/tcp_var.h, so that they are now redundant in dev/cxgbe/tom/{t4_cpl_io.c,t4_ddp.c}. This triggers gcc -Wredundant-decls. Reviewed by: np Sponsored by: Dell EMC Isilon Differential Revision:https://reviews.freebsd.org/D12674 Modified: head/sys/dev/cxgbe/tom/t4_cpl_io.c head/sys/dev/cxgbe/tom/t4_ddp.c Modified: head/sys/dev/cxgbe/tom/t4_cpl_io.c == --- head/sys/dev/cxgbe/tom/t4_cpl_io.c Tue Oct 17 19:41:45 2017 (r324704) +++ head/sys/dev/cxgbe/tom/t4_cpl_io.c Tue Oct 17 20:37:31 2017 (r324705) @@ -71,19 +71,6 @@ __FBSDID("$FreeBSD$"); #include "tom/t4_tom_l2t.h" #include "tom/t4_tom.h" -VNET_DECLARE(int, tcp_do_autosndbuf); -#define V_tcp_do_autosndbuf VNET(tcp_do_autosndbuf) -VNET_DECLARE(int, tcp_autosndbuf_inc); -#define V_tcp_autosndbuf_inc VNET(tcp_autosndbuf_inc) -VNET_DECLARE(int, tcp_autosndbuf_max); -#define V_tcp_autosndbuf_max VNET(tcp_autosndbuf_max) -VNET_DECLARE(int, tcp_do_autorcvbuf); -#define V_tcp_do_autorcvbuf VNET(tcp_do_autorcvbuf) -VNET_DECLARE(int, tcp_autorcvbuf_inc); -#define V_tcp_autorcvbuf_inc VNET(tcp_autorcvbuf_inc) -VNET_DECLARE(int, tcp_autorcvbuf_max); -#define V_tcp_autorcvbuf_max VNET(tcp_autorcvbuf_max) - #defineIS_AIOTX_MBUF(m) \ ((m)->m_flags & M_EXT && (m)->m_ext.ext_flags & EXT_FLAG_AIOTX) Modified: head/sys/dev/cxgbe/tom/t4_ddp.c == --- head/sys/dev/cxgbe/tom/t4_ddp.c Tue Oct 17 19:41:45 2017 (r324704) +++ head/sys/dev/cxgbe/tom/t4_ddp.c Tue Oct 17 20:37:31 2017 (r324705) @@ -67,13 +67,6 @@ __FBSDID("$FreeBSD$"); #include "common/t4_tcb.h" #include "tom/t4_tom.h" -VNET_DECLARE(int, tcp_do_autorcvbuf); -#define V_tcp_do_autorcvbuf VNET(tcp_do_autorcvbuf) -VNET_DECLARE(int, tcp_autorcvbuf_inc); -#define V_tcp_autorcvbuf_inc VNET(tcp_autorcvbuf_inc) -VNET_DECLARE(int, tcp_autorcvbuf_max); -#define V_tcp_autorcvbuf_max VNET(tcp_autorcvbuf_max) - /* * Use the 'backend3' field in AIO jobs to store the amount of data * received by the AIO job so far. ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r324704 - head/sys/kern
Author: markj Date: Tue Oct 17 19:41:45 2017 New Revision: 324704 URL: https://svnweb.freebsd.org/changeset/base/324704 Log: Fix a racy VI_DOOMED check in MNT_VNODE_FOREACH_ALL(). MNT_VNODE_FOREACH_ALL() is supposed to avoid returning doomed vnodes, but the VI_DOOMED check it used was done without the vnode interlock held, so it could race with a concurrent vgone(). Submitted by: Don MorrisReviewed by: kib, mckusick MFC after:1 week Sponsored by: Dell EMC Isilon Differential Revision:https://reviews.freebsd.org/D12704 Modified: head/sys/kern/vfs_subr.c Modified: head/sys/kern/vfs_subr.c == --- head/sys/kern/vfs_subr.cTue Oct 17 19:11:29 2017(r324703) +++ head/sys/kern/vfs_subr.cTue Oct 17 19:41:45 2017(r324704) @@ -5299,12 +5299,18 @@ __mnt_vnode_next_all(struct vnode **mvp, struct mount kern_yield(PRI_USER); MNT_ILOCK(mp); KASSERT((*mvp)->v_mount == mp, ("marker vnode mount list mismatch")); - vp = TAILQ_NEXT(*mvp, v_nmntvnodes); - while (vp != NULL && (vp->v_type == VMARKER || - (vp->v_iflag & VI_DOOMED) != 0)) - vp = TAILQ_NEXT(vp, v_nmntvnodes); - - /* Check if we are done */ + for (vp = TAILQ_NEXT(*mvp, v_nmntvnodes); vp != NULL; + vp = TAILQ_NEXT(vp, v_nmntvnodes)) { + /* Allow a racy peek at VI_DOOMED to save a lock acquisition. */ + if (vp->v_type == VMARKER || (vp->v_iflag & VI_DOOMED) != 0) + continue; + VI_LOCK(vp); + if ((vp->v_iflag & VI_DOOMED) != 0) { + VI_UNLOCK(vp); + continue; + } + break; + } if (vp == NULL) { __mnt_vnode_markerfree_all(mvp, mp); /* MNT_IUNLOCK(mp); -- done in above function */ @@ -5313,7 +5319,6 @@ __mnt_vnode_next_all(struct vnode **mvp, struct mount } TAILQ_REMOVE(>mnt_nvnodelist, *mvp, v_nmntvnodes); TAILQ_INSERT_AFTER(>mnt_nvnodelist, vp, *mvp, v_nmntvnodes); - VI_LOCK(vp); MNT_IUNLOCK(mp); return (vp); } @@ -5326,14 +5331,20 @@ __mnt_vnode_first_all(struct vnode **mvp, struct mount *mvp = malloc(sizeof(struct vnode), M_VNODE_MARKER, M_WAITOK | M_ZERO); MNT_ILOCK(mp); MNT_REF(mp); + (*mvp)->v_mount = mp; (*mvp)->v_type = VMARKER; - vp = TAILQ_FIRST(>mnt_nvnodelist); - while (vp != NULL && (vp->v_type == VMARKER || - (vp->v_iflag & VI_DOOMED) != 0)) - vp = TAILQ_NEXT(vp, v_nmntvnodes); - - /* Check if we are done */ + TAILQ_FOREACH(vp, >mnt_nvnodelist, v_nmntvnodes) { + /* Allow a racy peek at VI_DOOMED to save a lock acquisition. */ + if (vp->v_type == VMARKER || (vp->v_iflag & VI_DOOMED) != 0) + continue; + VI_LOCK(vp); + if ((vp->v_iflag & VI_DOOMED) != 0) { + VI_UNLOCK(vp); + continue; + } + break; + } if (vp == NULL) { MNT_REL(mp); MNT_IUNLOCK(mp); @@ -5341,13 +5352,10 @@ __mnt_vnode_first_all(struct vnode **mvp, struct mount *mvp = NULL; return (NULL); } - (*mvp)->v_mount = mp; TAILQ_INSERT_AFTER(>mnt_nvnodelist, vp, *mvp, v_nmntvnodes); - VI_LOCK(vp); MNT_IUNLOCK(mp); return (vp); } - void __mnt_vnode_markerfree_all(struct vnode **mvp, struct mount *mp) ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r324702 - head/sys/boot/uboot/lib
Author: imp Date: Tue Oct 17 19:11:19 2017 New Revision: 324702 URL: https://svnweb.freebsd.org/changeset/base/324702 Log: We need to include disk.o in libuboot.a when we're building with support for disk access. Sponsored by: Netflix Modified: head/sys/boot/uboot/lib/Makefile Modified: head/sys/boot/uboot/lib/Makefile == --- head/sys/boot/uboot/lib/MakefileTue Oct 17 19:01:01 2017 (r324701) +++ head/sys/boot/uboot/lib/MakefileTue Oct 17 19:11:19 2017 (r324702) @@ -13,6 +13,10 @@ SRCS+= module.c net.c reboot.c time.c CFLAGS+= -ffreestanding -msoft-float +.if ${LOADER_DISK_SUPPORT:Uyes} == "yes" +SRCS+= disk.c +.endif + .if ${MK_FDT} != "no" LOADER_FDT_SUPPORT=yes .else ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r324703 - head/sys/boot
Author: emaste Date: Tue Oct 17 19:11:29 2017 New Revision: 324703 URL: https://svnweb.freebsd.org/changeset/base/324703 Log: loader.mk: clean md.o even if MD_IMAGE_SIZE not defined We don't normally provide special handling for optionally-included src files, but md.o depends on both md.c and the value of ${MD_IMAGE_SIZE}. Previously if one built with MD_IMAGE_SIZE, executed "make clean", and then built with a different MD_IMAGE_SIZE md.o would not be rebuilt. Reported by: Zakary Nafziger Sponsored by: The FreeBSD Foundation Modified: head/sys/boot/loader.mk Modified: head/sys/boot/loader.mk == --- head/sys/boot/loader.mk Tue Oct 17 19:11:19 2017(r324702) +++ head/sys/boot/loader.mk Tue Oct 17 19:11:29 2017(r324703) @@ -43,6 +43,8 @@ SRCS+= bcache.c .if defined(MD_IMAGE_SIZE) CFLAGS+= -DMD_IMAGE_SIZE=${MD_IMAGE_SIZE} SRCS+= md.c +.else +CLEANFILES+= md.o .endif # Machine-independant ISA PnP ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r324701 - head/tests/sys/kern
Author: bdrewery Date: Tue Oct 17 19:01:01 2017 New Revision: 324701 URL: https://svnweb.freebsd.org/changeset/base/324701 Log: Add a test for r324671 along with some other masked tests. MFC after:1 week Sponsored by: Dell EMC Isilon Modified: head/tests/sys/kern/ptrace_test.c Modified: head/tests/sys/kern/ptrace_test.c == --- head/tests/sys/kern/ptrace_test.c Tue Oct 17 18:00:01 2017 (r324700) +++ head/tests/sys/kern/ptrace_test.c Tue Oct 17 19:01:01 2017 (r324701) @@ -2402,7 +2402,107 @@ ATF_TC_BODY(ptrace__PT_CONTINUE_with_signal_full_sigqu ATF_REQUIRE(errno == ECHILD); } +static sem_t sigusr1_sem; +static int got_usr1; + +static void +sigusr1_sempost_handler(int sig __unused) +{ + + got_usr1++; + CHILD_REQUIRE(sem_post(_sem) == 0); +} + /* + * Verify that even if the signal queue is full for a child process, + * and the signal is masked, a PT_CONTINUE with a signal will not + * result in loss of that signal. + */ +ATF_TC_WITHOUT_HEAD(ptrace__PT_CONTINUE_with_signal_masked_full_sigqueue); +ATF_TC_BODY(ptrace__PT_CONTINUE_with_signal_masked_full_sigqueue, tc) +{ + struct ptrace_lwpinfo pl; + pid_t fpid, wpid; + int status, err; + int max_pending_per_proc; + size_t len; + int i; + sigset_t sigmask; + + ATF_REQUIRE(signal(SIGUSR2, handler) != SIG_ERR); + ATF_REQUIRE(sem_init(_sem, 0, 0) == 0); + ATF_REQUIRE(signal(SIGUSR1, sigusr1_sempost_handler) != SIG_ERR); + + got_usr1 = 0; + ATF_REQUIRE((fpid = fork()) != -1); + if (fpid == 0) { + CHILD_REQUIRE(sigemptyset() == 0); + CHILD_REQUIRE(sigaddset(, SIGUSR1) == 0); + CHILD_REQUIRE(sigprocmask(SIG_BLOCK, , NULL) == 0); + + trace_me(); + CHILD_REQUIRE(got_usr1 == 0); + + /* Allow the pending SIGUSR1 in now. */ + CHILD_REQUIRE(sigprocmask(SIG_UNBLOCK, , NULL) == 0); + /* Wait to receive the SIGUSR1. */ + do { + err = sem_wait(_sem); + CHILD_REQUIRE(err == 0 || errno == EINTR); + } while (err != 0 && errno == EINTR); + CHILD_REQUIRE(got_usr1 == 1); + exit(1); + } + + /* The first wait() should report the stop from SIGSTOP. */ + wpid = waitpid(fpid, , 0); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGSTOP); + + len = sizeof(max_pending_per_proc); + ATF_REQUIRE(sysctlbyname("kern.sigqueue.max_pending_per_proc", + _pending_per_proc, , NULL, 0) == 0); + + /* Fill the signal queue. */ + for (i = 0; i < max_pending_per_proc; ++i) + ATF_REQUIRE(kill(fpid, SIGUSR2) == 0); + + /* Continue with signal. */ + ATF_REQUIRE(ptrace(PT_CONTINUE, fpid, (caddr_t)1, SIGUSR1) == 0); + + /* Collect and ignore all of the SIGUSR2. */ + for (i = 0; i < max_pending_per_proc; ++i) { + wpid = waitpid(fpid, , 0); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGUSR2); + ATF_REQUIRE(ptrace(PT_CONTINUE, fpid, (caddr_t)1, 0) == 0); + } + + /* Now our PT_CONTINUE'd SIGUSR1 should cause a stop after unmask. */ + wpid = waitpid(fpid, , 0); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFSTOPPED(status)); + ATF_REQUIRE(WSTOPSIG(status) == SIGUSR1); + ATF_REQUIRE(ptrace(PT_LWPINFO, fpid, (caddr_t), sizeof(pl)) != -1); + ATF_REQUIRE(pl.pl_siginfo.si_signo == SIGUSR1); + + /* Continue the child, ignoring the SIGUSR1. */ + ATF_REQUIRE(ptrace(PT_CONTINUE, fpid, (caddr_t)1, 0) == 0); + + /* The last wait() should report exit after receiving SIGUSR1. */ + wpid = waitpid(fpid, , 0); + ATF_REQUIRE(wpid == fpid); + ATF_REQUIRE(WIFEXITED(status)); + ATF_REQUIRE(WEXITSTATUS(status) == 1); + + wpid = wait(); + ATF_REQUIRE(wpid == -1); + ATF_REQUIRE(errno == ECHILD); +} + +/* * Verify that, after stopping due to a signal, that signal can be * replaced with another signal. */ @@ -2674,15 +2774,6 @@ ATF_TC_BODY(ptrace__PT_CONTINUE_with_signal_kqueue, tc ATF_REQUIRE(errno == ECHILD); } -static sem_t sigusr1_sem; - -static void -sigusr1_sempost_handler(int sig __unused) -{ - - CHILD_REQUIRE(sem_post(_sem) == 0); -} - static void * signal_thread(void *arg) { @@ -2718,6 +2809,148 @@ signal_thread(void *arg) } /* + * Verify that a traced process with blocked signal received the + * signal from kill() once unmasked. + */ +ATF_TC_WITHOUT_HEAD(ptrace__killed_with_sigmask); +ATF_TC_BODY(ptrace__killed_with_sigmask, tc) +{ + struct ptrace_lwpinfo pl; + pid_t fpid, wpid; +
Re: svn commit: r317015 - in head/sys: boot/forth conf crypto/chacha20 dev/random libkern sys
On Sun, Apr 16, 2017 at 09:11:03AM +, Mark Murray wrote: > Author: markm > Date: Sun Apr 16 09:11:02 2017 > New Revision: 317015 > URL: https://svnweb.freebsd.org/changeset/base/317015 > > Log: > Replace the RC4 algorithm for generating in-kernel secure random > numbers with Chacha20. Keep the API, though, as that is what the > other *BSD's have done. > > Use the boot-time entropy stash (if present) to bootstrap the > in-kernel entropy source. > > Reviewed by: delphij,rwatson > Approved by: so(delphij) > MFC after: 2 months Hey Mark, Do you still plan to MFC this? Thanks, -- Shawn Webb Cofounder and Security Engineer HardenedBSD GPG Key ID: 0x6A84658F52456EEE GPG Key Fingerprint: 2ABA B6BD EF6A F486 BE89 3D9E 6A84 658F 5245 6EEE signature.asc Description: PGP signature
svn commit: r324700 - head/sys/boot/common
Author: emaste Date: Tue Oct 17 18:00:01 2017 New Revision: 324700 URL: https://svnweb.freebsd.org/changeset/base/324700 Log: loader: initialize dv_cleanup in md.c to eliminate clang warning Submitted by: Zakary NafzigerSponsored by: The FreeBSD Foundation Modified: head/sys/boot/common/md.c Modified: head/sys/boot/common/md.c == --- head/sys/boot/common/md.c Tue Oct 17 17:57:18 2017(r324699) +++ head/sys/boot/common/md.c Tue Oct 17 18:00:01 2017(r324700) @@ -73,7 +73,8 @@ struct devsw md_dev = { md_open, md_close, noioctl, - md_print + md_print, + NULL }; static int ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r324696 - in head/contrib/wpa: src/ap src/common src/rsn_supp wpa_supplicant
Author: gordon Date: Tue Oct 17 17:22:36 2017 New Revision: 324696 URL: https://svnweb.freebsd.org/changeset/base/324696 Log: Update wpa_supplicant/hostapd for 2017-01 vulnerability release. hostapd: Avoid key reinstallation in FT handshake Prevent reinstallation of an already in-use group key Extend protection of GTK/IGTK reinstallation of WNM-Sleep Mode cases Fix TK configuration to the driver in EAPOL-Key 3/4 retry case Prevent installation of an all-zero TK Fix PTK rekeying to generate a new ANonce TDLS: Reject TPK-TK reconfiguration WNM: Ignore Key Data in WNM Sleep Mode Response frame if no PMF in use WNM: Ignore WNM-Sleep Mode Response if WNM-Sleep Mode has not been used WNM: Ignore WNM-Sleep Mode Response without pending request FT: Do not allow multiple Reassociation Response frames TDLS: Ignore incoming TDLS Setup Response retries Submitted by: jhb Obtained from:https://w1.fi/security/2017-01/ (against later version) Security: FreeBSD-SA-17:07 Security: CERT VU#228519 Security: CVE-2017-13077 Security: CVE-2017-13078 Security: CVE-2017-13079 Security: CVE-2017-13080 Security: CVE-2017-13081 Security: CVE-2017-13082 Security: CVE-2017-13086 Security: CVE-2017-13087 Security: CVE-2017-13088 Differential Revision:https://reviews.freebsd.org/D12693 Modified: head/contrib/wpa/src/ap/wpa_auth.c head/contrib/wpa/src/ap/wpa_auth.h head/contrib/wpa/src/ap/wpa_auth_ft.c head/contrib/wpa/src/ap/wpa_auth_i.h head/contrib/wpa/src/common/wpa_common.h head/contrib/wpa/src/rsn_supp/tdls.c head/contrib/wpa/src/rsn_supp/wpa.c head/contrib/wpa/src/rsn_supp/wpa_ft.c head/contrib/wpa/src/rsn_supp/wpa_i.h head/contrib/wpa/wpa_supplicant/ctrl_iface.c head/contrib/wpa/wpa_supplicant/events.c head/contrib/wpa/wpa_supplicant/wnm_sta.c head/contrib/wpa/wpa_supplicant/wpa_supplicant_i.h Modified: head/contrib/wpa/src/ap/wpa_auth.c == --- head/contrib/wpa/src/ap/wpa_auth.c Tue Oct 17 16:29:50 2017 (r324695) +++ head/contrib/wpa/src/ap/wpa_auth.c Tue Oct 17 17:22:36 2017 (r324696) @@ -1893,6 +1893,21 @@ SM_STATE(WPA_PTK, AUTHENTICATION2) } +static int wpa_auth_sm_ptk_update(struct wpa_state_machine *sm) +{ + if (random_get_bytes(sm->ANonce, WPA_NONCE_LEN)) { + wpa_printf(MSG_ERROR, + "WPA: Failed to get random data for ANonce"); + sm->Disconnect = TRUE; + return -1; + } + wpa_hexdump(MSG_DEBUG, "WPA: Assign new ANonce", sm->ANonce, + WPA_NONCE_LEN); + sm->TimeoutCtr = 0; + return 0; +} + + SM_STATE(WPA_PTK, INITPMK) { u8 msk[2 * PMK_LEN]; @@ -2414,9 +2429,12 @@ SM_STEP(WPA_PTK) SM_ENTER(WPA_PTK, AUTHENTICATION); else if (sm->ReAuthenticationRequest) SM_ENTER(WPA_PTK, AUTHENTICATION2); - else if (sm->PTKRequest) - SM_ENTER(WPA_PTK, PTKSTART); - else switch (sm->wpa_ptk_state) { + else if (sm->PTKRequest) { + if (wpa_auth_sm_ptk_update(sm) < 0) + SM_ENTER(WPA_PTK, DISCONNECTED); + else + SM_ENTER(WPA_PTK, PTKSTART); + } else switch (sm->wpa_ptk_state) { case WPA_PTK_INITIALIZE: break; case WPA_PTK_DISCONNECT: @@ -3206,6 +3224,14 @@ int wpa_auth_sta_wpa_version(struct wpa_state_machine if (sm == NULL) return 0; return sm->wpa; +} + + +int wpa_auth_sta_ft_tk_already_set(struct wpa_state_machine *sm) +{ + if (!sm || !wpa_key_mgmt_ft(sm->wpa_key_mgmt)) + return 0; + return sm->tk_already_set; } Modified: head/contrib/wpa/src/ap/wpa_auth.h == --- head/contrib/wpa/src/ap/wpa_auth.h Tue Oct 17 16:29:50 2017 (r324695) +++ head/contrib/wpa/src/ap/wpa_auth.h Tue Oct 17 17:22:36 2017 (r324696) @@ -271,6 +271,7 @@ int wpa_auth_pairwise_set(struct wpa_state_machine *sm int wpa_auth_get_pairwise(struct wpa_state_machine *sm); int wpa_auth_sta_key_mgmt(struct wpa_state_machine *sm); int wpa_auth_sta_wpa_version(struct wpa_state_machine *sm); +int wpa_auth_sta_ft_tk_already_set(struct wpa_state_machine *sm); int wpa_auth_sta_clear_pmksa(struct wpa_state_machine *sm, struct rsn_pmksa_cache_entry *entry); struct rsn_pmksa_cache_entry * Modified: head/contrib/wpa/src/ap/wpa_auth_ft.c == --- head/contrib/wpa/src/ap/wpa_auth_ft.c Tue Oct 17 16:29:50 2017 (r324695) +++ head/contrib/wpa/src/ap/wpa_auth_ft.c Tue Oct 17 17:22:36 2017 (r324696) @@ -780,6 +780,14 @@ void wpa_ft_install_ptk(struct wpa_state_machine
svn commit: r324695 - head/share/mk
Author: jonathan Date: Tue Oct 17 16:29:50 2017 New Revision: 324695 URL: https://svnweb.freebsd.org/changeset/base/324695 Log: Add LLVM IR libraries to CLEANFILES. We previously taught the build system how to create files like libfoo.bc, but neglected to teach it about cleaning such files up. Rectify this now. MFC after:1 week Sponsored by: DARPA, AFRL Modified: head/share/mk/bsd.lib.mk Modified: head/share/mk/bsd.lib.mk == --- head/share/mk/bsd.lib.mkTue Oct 17 16:03:59 2017(r324694) +++ head/share/mk/bsd.lib.mkTue Oct 17 16:29:50 2017(r324695) @@ -209,6 +209,8 @@ lib${LIB_PRIVATE}${LIB}.bc: ${BCOBJS} lib${LIB_PRIVATE}${LIB}.ll: ${LLOBJS} ${LLVM_LINK} -S -o ${.TARGET} ${LLOBJS} + +CLEANFILES+= lib${LIB_PRIVATE}${LIB}.bc lib${LIB_PRIVATE}${LIB}.ll .endif .if defined(SHLIB_NAME) || \ ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r324681 - in head/etc: defaults periodic/daily
On Tue, Oct 17, 2017 at 09:32:34AM -0600, Alan Somers wrote: > This change defeats the anticongestion mechanism. If > daily_ntpd_leapfile_background is set and 480.leapfile-ntpd runs > before any other periodic script that uses anticongestion (like > /usr/local/etc/periodic/security/410.pkg-audit), then the > anticongestion mechanism will effectively be disabled for those later > scripts. > > It's worth asking why you would want to do this in the background > anyway. Does the submitter complain that it was too slow? The entire > point of anticongestion is to slow it down. If the submitter didn't > like that, he could've set anticongestion_sleeptime=0 to disable it > entirely. Or was the problem that the "service ntpd onefetch" is too > slow, even after the anticongestion timer ran? I doubt it, but if so > then you should background just that part instead of backgrounding > anticongestion too. Good questions, thank you Alan. The commit message should have included answers to them, by the way (* insert usual rant about quality of commit logs here *). ./danfe ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r324694 - head/sys/dev/iscsi
Author: avg Date: Tue Oct 17 16:03:59 2017 New Revision: 324694 URL: https://svnweb.freebsd.org/changeset/base/324694 Log: never retry oustanding requests when terminating iscsi session CAM_REQ_ABORTED sounds natural for aborting outstanding requests when tearing down a session, but that status actually causes eligible requests to be tried again. That's completely useless, so let's use CAM_DEV_NOT_THERE instead. Perhaps there is a better status, but this should be good enough. The change should affect only the session termination. Tested by:Ben RUBSONReviewed by: mav, trasz MFC after:2 weeks Differential Revision: https://reviews.freebsd.org/D12653 Modified: head/sys/dev/iscsi/iscsi.c Modified: head/sys/dev/iscsi/iscsi.c == --- head/sys/dev/iscsi/iscsi.c Tue Oct 17 15:53:22 2017(r324693) +++ head/sys/dev/iscsi/iscsi.c Tue Oct 17 16:03:59 2017(r324694) @@ -291,17 +291,14 @@ iscsi_session_logout(struct iscsi_session *is) static void iscsi_session_terminate_task(struct iscsi_session *is, -struct iscsi_outstanding *io, bool requeue) +struct iscsi_outstanding *io, cam_status status) { ISCSI_SESSION_LOCK_ASSERT(is); if (io->io_ccb != NULL) { io->io_ccb->ccb_h.status &= ~(CAM_SIM_QUEUED | CAM_STATUS_MASK); - if (requeue) - io->io_ccb->ccb_h.status |= CAM_REQUEUE_REQ; - else - io->io_ccb->ccb_h.status |= CAM_REQ_ABORTED; + io->io_ccb->ccb_h.status |= status; if ((io->io_ccb->ccb_h.status & CAM_DEV_QFRZN) == 0) { io->io_ccb->ccb_h.status |= CAM_DEV_QFRZN; xpt_freeze_devq(io->io_ccb->ccb_h.path, 1); @@ -313,14 +310,14 @@ iscsi_session_terminate_task(struct iscsi_session *is, } static void -iscsi_session_terminate_tasks(struct iscsi_session *is, bool requeue) +iscsi_session_terminate_tasks(struct iscsi_session *is, cam_status status) { struct iscsi_outstanding *io, *tmp; ISCSI_SESSION_LOCK_ASSERT(is); TAILQ_FOREACH_SAFE(io, >is_outstanding, io_next, tmp) { - iscsi_session_terminate_task(is, io, requeue); + iscsi_session_terminate_task(is, io, status); } } @@ -354,11 +351,11 @@ iscsi_session_cleanup(struct iscsi_session *is, bool d /* * Terminate SCSI tasks, asking CAM to requeue them. */ - iscsi_session_terminate_tasks(is, true); + iscsi_session_terminate_tasks(is, CAM_REQUEUE_REQ); return; } - iscsi_session_terminate_tasks(is, false); + iscsi_session_terminate_tasks(is, CAM_DEV_NOT_THERE); if (is->is_sim == NULL) return; @@ -1021,7 +1018,7 @@ iscsi_pdu_handle_task_response(struct icl_pdu *respons } else { aio = iscsi_outstanding_find(is, io->io_datasn); if (aio != NULL && aio->io_ccb != NULL) - iscsi_session_terminate_task(is, aio, false); + iscsi_session_terminate_task(is, aio, CAM_REQ_ABORTED); } iscsi_outstanding_remove(is, io); ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r324666 - head/sys/kern
> On Oct 16, 2017, at 09:14, Matt Joraswrote: > > Author: mjoras > Date: Mon Oct 16 16:14:50 2017 > New Revision: 324666 > URL: https://svnweb.freebsd.org/changeset/base/324666 > > Log: > Properly reset the fields in clean_unrhdr. > > In r324542 I neglected to reset the first and last fields of struct > unrhdr. This causes a tmpfs to fail the unr(9) consistency checks with > DIAGNOSTIC on. Fix this by resetting the fields by calling init_unrhdr. > While here, change a loop to use TAILQ_FOREACH_SAFE since it is more > readable and equally fast. Thanks! signature.asc Description: Message signed with OpenPGP using GPGMail
svn commit: r324689 - head/sys/dev/iscsi
Author: avg Date: Tue Oct 17 15:39:38 2017 New Revision: 324689 URL: https://svnweb.freebsd.org/changeset/base/324689 Log: iscsi: do not hold the global lock while tearing down a session It should be sufficient to hold the lock just for removing the session from the session list. Everything else should be covered by the session specific lock. On top of that, at present we can get a deadlock caused by waiting on the CAM SIM reference count while holding the global lock. A specific scenario involving ZFS is this: - concurrent termination of two sessions, S1 and S2 - session S1 completed all I/Os and sleeps in CAM waiting for device close by ZFS; - session S2 is also dead now, but can not forcefully complete outstanding requests by calling iscsi_session_cleanup() from iscsi_maintenance_thread_terminate(), since it can't get the same global sc_lock; - as soon as there are unfinished requests, ZFS can not do spa_config_enter() as writer, and so can not close the device for session S1; - deadlock. Reported by: Ben RUBSONTested by:Ben RUBSON Reviewed by: mav, trasz MFC after:2 weeks Differential Revision: https://reviews.freebsd.org/D12652 Modified: head/sys/dev/iscsi/iscsi.c Modified: head/sys/dev/iscsi/iscsi.c == --- head/sys/dev/iscsi/iscsi.c Tue Oct 17 14:37:12 2017(r324688) +++ head/sys/dev/iscsi/iscsi.c Tue Oct 17 15:39:38 2017(r324689) @@ -434,6 +434,8 @@ iscsi_maintenance_thread_terminate(struct iscsi_sessio sc = is->is_softc; sx_xlock(>sc_lock); + TAILQ_REMOVE(>sc_sessions, is, is_next); + sx_xunlock(>sc_lock); icl_conn_close(is->is_conn); callout_drain(>is_callout); @@ -465,8 +467,6 @@ iscsi_maintenance_thread_terminate(struct iscsi_sessio #ifdef ICL_KERNEL_PROXY cv_destroy(>is_login_cv); #endif - TAILQ_REMOVE(>sc_sessions, is, is_next); - sx_xunlock(>sc_lock); ISCSI_SESSION_DEBUG(is, "terminated"); free(is, M_ISCSI); ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r324681 - in head/etc: defaults periodic/daily
This change defeats the anticongestion mechanism. If daily_ntpd_leapfile_background is set and 480.leapfile-ntpd runs before any other periodic script that uses anticongestion (like /usr/local/etc/periodic/security/410.pkg-audit), then the anticongestion mechanism will effectively be disabled for those later scripts. It's worth asking why you would want to do this in the background anyway. Does the submitter complain that it was too slow? The entire point of anticongestion is to slow it down. If the submitter didn't like that, he could've set anticongestion_sleeptime=0 to disable it entirely. Or was the problem that the "service ntpd onefetch" is too slow, even after the anticongestion timer ran? I doubt it, but if so then you should background just that part instead of backgrounding anticongestion too. -Alan On Mon, Oct 16, 2017 at 7:15 PM, Cy Schubertwrote: > Author: cy > Date: Tue Oct 17 01:15:13 2017 > New Revision: 324681 > URL: https://svnweb.freebsd.org/changeset/base/324681 > > Log: > Provide an option to run the anticongestion ntpd leapfile fetch in > the background. > > Original patch submitted by feld@. I added the "optional" bit. > > Submitted by: feld (original patch) > MFC after:2 weeks > > Modified: > head/etc/defaults/periodic.conf > head/etc/periodic/daily/480.leapfile-ntpd > > Modified: head/etc/defaults/periodic.conf > == > --- head/etc/defaults/periodic.conf Tue Oct 17 01:12:17 2017 > (r324680) > +++ head/etc/defaults/periodic.conf Tue Oct 17 01:15:13 2017 > (r324681) > @@ -141,6 +141,8 @@ daily_status_mail_rejects_shorten="NO" > # Shorten out > > # 480.leapfile-ntpd > daily_ntpd_leapfile_enable="YES" # Fetch NTP leapfile > +daily_ntpd_leapfile_background="NO"# Fetch NTP leapfile > + # in the background > > # 480.status-ntpd > daily_status_ntpd_enable="NO" # Check NTP status > > Modified: head/etc/periodic/daily/480.leapfile-ntpd > == > --- head/etc/periodic/daily/480.leapfile-ntpd Tue Oct 17 01:12:17 2017 > (r324680) > +++ head/etc/periodic/daily/480.leapfile-ntpd Tue Oct 17 01:15:13 2017 > (r324681) > @@ -13,8 +13,15 @@ fi > > case "$daily_ntpd_leapfile_enable" in > [Yy][Ee][Ss]) > -anticongestion > -service ntpd onefetch > + case "$daily_ntpd_leapfile_background" in > + [Yy][Ee][Ss]) > + (anticongestion && service ntpd onefetch) & > + ;; > + *) > + anticongestion > + service ntpd onefetch > + ;; > + esac > ;; > esac > > ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r324646 - in head/sys/boot/efi: boot1 libefi loader
On Mon, 16 Oct 2017-10-16 03:59:12 Warner Losh wrote: > Author: imp > Date: Mon Oct 16 03:59:11 2017 > New Revision: 324646 > URL: https://svnweb.freebsd.org/changeset/base/324646 > > Log: > Unify boot1 with loader > > Refactor boot1 to use the same I/O code as /boot/loader uses. Refactor > to use the common efi_main.c. > > Submitted by: Eric McCorkle > Differential Revision: https://reviews.freebsd.org/D10447 > Hi Warner & Eric, thanks for the top stuff, however, I think at least one ZFS compile time option was missed: cc -target x86_64-unknown-freebsd12.0 --sysroot=/tmp/direwolf/usr/src/tmp -B/tmp/direwolf/usr/src/tmp/usr/bin -O2 -pipe -ffreestanding -Wformat -mno-mmx -mno-sse -mno-avx -msoft-float -fshort-wchar -mno-red-zone -mno-aes -march=bd ver2 -DLOADER_UFS_SUPPORT -DLOADER_DISK_SUPPORT -DLOADER_GPT_SUPPORT -DLOADER_MBR_SUPPORT -DLOADER_GELI_SUPPORT -I/usr/src/sys/boot/libsa -I/usr/src/sys/boot/common -I. -I/usr/src/sys/boot/efi/boot1/../include -I/usr/src/sys/boot/ efi/boot1/../include/amd64 -I/usr/src/sys/boot/efi/boot1/../../../contrib/dev/acpica/include -I/usr/src/sys/boot/efi/boot1/../../.. -DEFI_UFS_BOOT -I/usr/src/sys/boot/efi/boot1/../../common -fPIC -ffreestanding -Wformat -mno-mmx -m no-sse -mno-avx -msoft-float -fshort-wchar -mno-red-zone -mno-aes -MD -MF.depend.boot1.o -MTboot1.o -std=gnu99 -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpoin ter-arith -Wno-uninitialized -Wno-pointer-sign -Wno-empty-body -Wno-string-plus-int -Wno-unused-const-variable -Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality -Wno-unused-function -Wno-enum-conversion -Wno-unu sed-local-typedef -Wno-address-of-packed-member -Wno-format -Qunused-arguments -c /usr/src/sys/boot/efi/boot1/boot1.c -o boot1.o /usr/src/sys/boot/efi/boot1/boot1.c:269:1: error: no previous prototype for function 'efi_zfs_is_preferred' [-Werror,-Wmissing-prototypes] efi_zfs_is_preferred(EFI_HANDLE *h) > Added: > head/sys/boot/efi/libefi/efi_main.c (contents, props changed) > - copied, changed from r324645, head/sys/boot/efi/loader/efi_main.c > Deleted: > head/sys/boot/efi/boot1/boot_module.h > head/sys/boot/efi/boot1/ufs_module.c > head/sys/boot/efi/boot1/zfs_module.c > head/sys/boot/efi/loader/efi_main.c > Modified: > head/sys/boot/efi/boot1/Makefile > head/sys/boot/efi/boot1/boot1.c > head/sys/boot/efi/libefi/Makefile > head/sys/boot/efi/loader/Makefile [leading diff removed] > -/* > - * devpath_last returns the last non-path end node in devpath. > - */ > -static EFI_DEVICE_PATH * > -devpath_last(EFI_DEVICE_PATH *devpath) > +bool > +efi_zfs_is_preferred(EFI_HANDLE *h) > { > + return (check_preferred(h)); > +} Should this function be conditional on #ifdef EFI_ZFS_BOOT? There could be others, however, my buildworld has stumbled here for the moment, and I am hitting the horizontal now. To good health -- Only fools are quoted. -- Anonymous signature.asc Description: This is a digitally signed message part.
svn commit: r324688 - head/share/misc
Author: maxim Date: Tue Oct 17 14:37:12 2017 New Revision: 324688 URL: https://svnweb.freebsd.org/changeset/base/324688 Log: DragonFly 5.0.0 release added. Modified: head/share/misc/bsd-family-tree Modified: head/share/misc/bsd-family-tree == --- head/share/misc/bsd-family-tree Tue Oct 17 12:45:51 2017 (r324687) +++ head/share/misc/bsd-family-tree Tue Oct 17 14:37:12 2017 (r324688) @@ -356,7 +356,7 @@ FreeBSD 5.2 | | | | FreeBSD | | | | | | 11.1 FreeBSD| | | | | |10.4 | |OpenBSD 6.2 | - | v | | | | + | v | | | DragonFly 5.0.0 || | | | FreeBSD 12 -current | NetBSD -current OpenBSD -currentDragonFly -current || | | | @@ -720,6 +720,7 @@ FreeBSD 11.12017-07-26 [FBD] macOS 10.132017-09-25 [APL] FreeBSD 10.4 2017-10-03 [FBD] OpenBSD 6.22017-10-09 [OBD] +DragonFly 5.0.02017-10-16 [DFB] Bibliography ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r324656 - head/lib/libifconfig
On Mon, Oct 16, 2017 at 07:58:55PM +, Andriy Voskoboinyk wrote: > > On Mon, Oct 16, 2017 at 06:54:26AM +, Andriy Voskoboinyk wrote: > > > Author: avos > > > Date: Mon Oct 16 06:54:26 2017 > > > New Revision: 324656 > > > URL: https://svnweb.freebsd.org/changeset/base/324656 > > > > > > Log: > > > libifconfig: allow to get original interface name via > > > ifconfig_get_orig_name() > > > > > > Uses the same method as in tools/tools/ifinfo/ifinfo.c > > > (via net.link.generic sysctl). > > > > > > Tested with modified wlandebug(8). > > > > > > Differential Revision: https://reviews.freebsd.org/D12554 > > > > > > Modified: > > > head/lib/libifconfig/libifconfig.c > > > head/lib/libifconfig/libifconfig.h > > > > > > Modified: head/lib/libifconfig/libifconfig.c > > > == > > > --- head/lib/libifconfig/libifconfig.cMon Oct 16 04:46:28 > > > 2017 (r324655) > > > +++ head/lib/libifconfig/libifconfig.cMon Oct 16 06:54:26 > > > 2017 (r324656) > > > @@ -61,9 +61,43 @@ > > > * $FreeBSD$ > > > */ > > > > > > + /* > > > + * Copyright 1996 Massachusetts Institute of Technology > > > + * > > 1996? > > > > This file was already under a BSD license, why adding an extra MIT > > license to > > it? It would be better to keep it under BSD license imho > > This one came unchanged from tools/tools/ifinfo/ifinfo.c (with > modified code from it); I'm not sure if it can be just omitted. Ah ok, it wan't clear for me :) Make sense in this case imho, sorry for the noise Bapt signature.asc Description: PGP signature