svn commit: r356002 - in head/sys: compat/linuxkpi/common/src dev/drm2/ttm dev/netmap dev/xen/gntdev dev/xen/privcmd vm
Author: jeff Date: Sun Dec 22 06:56:44 2019 New Revision: 356002 URL: https://svnweb.freebsd.org/changeset/base/356002 Log: Make page busy state deterministic on free. Pages must be xbusy when removed from objects including calls to free. Pages must not be xbusy when freed and not on an object. Strengthen assertions to match these expectations. In practice very little code had to change busy handling to meet these rules but we can now make stronger guarantees to busy holders and avoid conditionally dropping busy in free. Refine vm_page_remove() and vm_page_replace() semantics now that we have stronger guarantees about busy state. This removes redundant and potentially problematic code that has proliferated. Discussed with: markj Reviewed by: kib Differential Revision:https://reviews.freebsd.org/D22822 Modified: head/sys/compat/linuxkpi/common/src/linux_compat.c head/sys/dev/drm2/ttm/ttm_bo_vm.c head/sys/dev/netmap/netmap_freebsd.c head/sys/dev/xen/gntdev/gntdev.c head/sys/dev/xen/privcmd/privcmd.c head/sys/vm/device_pager.c head/sys/vm/sg_pager.c head/sys/vm/vm_fault.c head/sys/vm/vm_kern.c head/sys/vm/vm_object.c head/sys/vm/vm_page.c head/sys/vm/vm_page.h Modified: head/sys/compat/linuxkpi/common/src/linux_compat.c == --- head/sys/compat/linuxkpi/common/src/linux_compat.c Sun Dec 22 06:25:20 2019(r356001) +++ head/sys/compat/linuxkpi/common/src/linux_compat.c Sun Dec 22 06:56:44 2019(r356002) @@ -508,10 +508,7 @@ linux_cdev_pager_fault(vm_object_t vm_obj, vm_ooffset_ page = vm_page_getfake(paddr, vm_obj->memattr); VM_OBJECT_WLOCK(vm_obj); - vm_page_replace_checked(page, vm_obj, - (*mres)->pindex, *mres); - - vm_page_free(*mres); + vm_page_replace(page, vm_obj, (*mres)->pindex, *mres); *mres = page; } vm_page_valid(page); Modified: head/sys/dev/drm2/ttm/ttm_bo_vm.c == --- head/sys/dev/drm2/ttm/ttm_bo_vm.c Sun Dec 22 06:25:20 2019 (r356001) +++ head/sys/dev/drm2/ttm/ttm_bo_vm.c Sun Dec 22 06:56:44 2019 (r356002) @@ -237,6 +237,7 @@ reserve: goto retry; } m1 = vm_page_lookup(vm_obj, OFF_TO_IDX(offset)); + /* XXX This looks like it should just be vm_page_replace? */ if (m1 == NULL) { if (vm_page_insert(m, vm_obj, OFF_TO_IDX(offset))) { vm_page_xunbusy(m); @@ -255,6 +256,7 @@ reserve: vm_page_valid(m); if (*mres != NULL) { KASSERT(*mres != m, ("losing %p %p", *mres, m)); + vm_page_xunbusy(*mres); vm_page_free(*mres); } *mres = m; Modified: head/sys/dev/netmap/netmap_freebsd.c == --- head/sys/dev/netmap/netmap_freebsd.cSun Dec 22 06:25:20 2019 (r356001) +++ head/sys/dev/netmap/netmap_freebsd.cSun Dec 22 06:56:44 2019 (r356002) @@ -1022,12 +1022,10 @@ netmap_dev_pager_fault(vm_object_t object, vm_ooffset_ vm_paddr_t paddr; vm_page_t page; vm_memattr_t memattr; - vm_pindex_t pidx; nm_prdis("object %p offset %jd prot %d mres %p", object, (intmax_t)offset, prot, mres); memattr = object->memattr; - pidx = OFF_TO_IDX(offset); paddr = netmap_mem_ofstophys(na->nm_mem, offset); if (paddr == 0) return VM_PAGER_FAIL; @@ -1052,9 +1050,8 @@ netmap_dev_pager_fault(vm_object_t object, vm_ooffset_ VM_OBJECT_WUNLOCK(object); page = vm_page_getfake(paddr, memattr); VM_OBJECT_WLOCK(object); - vm_page_free(*mres); + vm_page_replace(page, object, (*mres)->pindex, *mres); *mres = page; - vm_page_insert(page, object, pidx); } vm_page_valid(page); return (VM_PAGER_OK); Modified: head/sys/dev/xen/gntdev/gntdev.c == --- head/sys/dev/xen/gntdev/gntdev.cSun Dec 22 06:25:20 2019 (r356001) +++ head/sys/dev/xen/gntdev/gntdev.cSun Dec 22 06:56:44 2019 (r356002) @@ -806,7 +806,7 @@ gntdev_gmap_pg_fault(vm_object_t object, vm_ooffset_t { struct gntdev_gmap *gmap = object->handle; vm_pindex_t pidx, ridx; - vm_page_t page, oldm; + vm_page_t page; vm_ooffset_t relative_offset; if (gmap->map == NULL) @@ -829,15 +829,12 @@ gntdev_gmap_pg_fault(vm_object_t object, vm_ooffset_t KASSERT(vm_page_wired(page), ("page %p is not wired",
svn commit: r356001 - in head/sys: conf dev/vmgenc
Author: cem Date: Sun Dec 22 06:25:20 2019 New Revision: 356001 URL: https://svnweb.freebsd.org/changeset/base/356001 Log: Add vmgenc(4) driver for ACPI VM generation counter The VM generation counter is a 128-bit value exposed by the BIOS via ACPI. The value changes to another unique identifier whenever a VM is duplicated. Additionally, ACPI provides notification events when such events occur. The driver decodes the pointer to the UUID, exports the value to userspace via OPAQUE sysctl blob, and forwards the ACPI notifications in the form of an EVENTHANDLER invocation as well as userspace devctl events. See design paper: https://go.microsoft.com/fwlink/p/?LinkID=260709 Added: head/sys/dev/vmgenc/ head/sys/dev/vmgenc/vmgenc_acpi.c (contents, props changed) head/sys/dev/vmgenc/vmgenc_acpi.h (contents, props changed) Modified: head/sys/conf/files Modified: head/sys/conf/files == --- head/sys/conf/files Sun Dec 22 05:44:29 2019(r356000) +++ head/sys/conf/files Sun Dec 22 06:25:20 2019(r356001) @@ -3398,6 +3398,7 @@ dev/virtio/scsi/virtio_scsi.c optional virtio_scsi dev/virtio/random/virtio_random.c optionalvirtio_random dev/virtio/console/virtio_console.coptionalvirtio_console dev/vkbd/vkbd.coptional vkbd +dev/vmgenc/vmgenc_acpi.c optional acpi dev/vr/if_vr.c optional vr pci dev/vt/colors/vt_termcolors.c optional vt dev/vt/font/vt_font_default.c optional vt Added: head/sys/dev/vmgenc/vmgenc_acpi.c == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/vmgenc/vmgenc_acpi.c Sun Dec 22 06:25:20 2019 (r356001) @@ -0,0 +1,240 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause-FreeBSD + * + * Copyright (c) 2019 Conrad Meyer . All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * VM Generation Counter driver + * + * See, e.g., the "Virtual Machine Generation ID" white paper: + * https://go.microsoft.com/fwlink/p/?LinkID=260709 , and perhaps also: + * https://docs.microsoft.com/en-us/windows/win32/hyperv_v2/virtual-machine-generation-identifier , + * https://azure.microsoft.com/en-us/blog/accessing-and-using-azure-vm-unique-id/ + * + * Microsoft introduced the concept in 2013 or so and seems to have + * successfully driven it to a consensus standard among hypervisors, not just + * HyperV/Azure: + * - QEMU: https://bugzilla.redhat.com/show_bug.cgi?id=1118834 + * - VMware/ESXi: https://kb.vmware.com/s/article/2032586 + * - Xen: https://github.com/xenserver/xen-4.5/blob/master/tools/firmware/hvmloader/acpi/dsdt.asl#L456 + */ + +#include +__FBSDID("$FreeBSD$"); + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include + +#ifndefACPI_NOTIFY_STATUS_CHANGED +#defineACPI_NOTIFY_STATUS_CHANGED 0x80 +#endif + +#defineGUID_BYTES 16 + +static const char *vmgenc_ids[] = { + "VM_GEN_COUNTER", + NULL +}; +#if 0 +MODULE_PNP_INFO("Z:_CID", acpi, vmgenc, vmgenc_ids, nitems(vmgenc_ids) - 1); +#endif + +struct vmgenc_softc { + volatile void *vmg_pguid; + uint8_t vmg_cache_guid[GUID_BYTES]; +}; + +static void +vmgenc_status_changed(void *context) +{ + uint8_t guid[GUID_BYTES]; + struct vmgenc_softc *sc; + device_t dev; + + dev = context; + sc = device_get_softc(dev); + + /* Check for spurious notify events. */ + memcpy(guid,
svn commit: r356000 - in head/sbin: fsck fsck_ffs
Author: delphij Date: Sun Dec 22 05:44:29 2019 New Revision: 356000 URL: https://svnweb.freebsd.org/changeset/base/356000 Log: Remove unused includes. MFC after:2 weeks Modified: head/sbin/fsck/fsck.c head/sbin/fsck/fsutil.c head/sbin/fsck_ffs/utilities.c Modified: head/sbin/fsck/fsck.c == --- head/sbin/fsck/fsck.c Sun Dec 22 05:43:13 2019(r355999) +++ head/sbin/fsck/fsck.c Sun Dec 22 05:44:29 2019(r356000) @@ -48,7 +48,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include #include Modified: head/sbin/fsck/fsutil.c == --- head/sbin/fsck/fsutil.c Sun Dec 22 05:43:13 2019(r355999) +++ head/sbin/fsck/fsutil.c Sun Dec 22 05:44:29 2019(r356000) @@ -42,8 +42,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include -#include #include #include #include Modified: head/sbin/fsck_ffs/utilities.c == --- head/sbin/fsck_ffs/utilities.c Sun Dec 22 05:43:13 2019 (r355999) +++ head/sbin/fsck_ffs/utilities.c Sun Dec 22 05:44:29 2019 (r356000) @@ -45,15 +45,11 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include -#include #include #include #include -#include -#include #include "fsck.h" ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r355999 - stable/11/sbin/newfs_msdos
Author: delphij Date: Sun Dec 22 05:43:13 2019 New Revision: 355999 URL: https://svnweb.freebsd.org/changeset/base/355999 Log: MFC r355318, r355513 r355318: Explicitly exit() instead of return in main(). r355513: Fix a couple of minor issues with newfs_msdos: - Do not unnecessarily strdup(). - Check return value of getdiskinfo(), if it failed, bail out. Modified: stable/11/sbin/newfs_msdos/mkfs_msdos.c stable/11/sbin/newfs_msdos/newfs_msdos.c Directory Properties: stable/11/ (props changed) Modified: stable/11/sbin/newfs_msdos/mkfs_msdos.c == --- stable/11/sbin/newfs_msdos/mkfs_msdos.c Sun Dec 22 05:39:26 2019 (r355998) +++ stable/11/sbin/newfs_msdos/mkfs_msdos.c Sun Dec 22 05:43:13 2019 (r355999) @@ -316,7 +316,8 @@ mkfs_msdos(const char *fname, const char *dtype, const bpb.bpbHiddenSecs = o.hidden_sectors; if (!(o.floppy || (o.drive_heads && o.sectors_per_track && o.bytes_per_sector && o.size && o.hidden_sectors_set))) { - getdiskinfo(fd, fname, dtype, o.hidden_sectors_set, ); + if (getdiskinfo(fd, fname, dtype, o.hidden_sectors_set, ) == -1) + goto done; bpb.bpbHugeSectors -= (o.offset / bpb.bpbBytesPerSec); if (bpb.bpbSecPerClust == 0) { /* set defaults */ if (bpb.bpbHugeSectors <= 6000) /* about 3MB -> 512 bytes */ @@ -421,10 +422,7 @@ mkfs_msdos(const char *fname, const char *dtype, const bname = o.bootstrap; if (!strchr(bname, '/')) { snprintf(buf, sizeof(buf), "/boot/%s", bname); - if (!(bname = strdup(buf))) { - warn(NULL); - goto done; - } + bname = buf; } if ((fd1 = open(bname, O_RDONLY)) == -1 || fstat(fd1, )) { warn("%s", bname); Modified: stable/11/sbin/newfs_msdos/newfs_msdos.c == --- stable/11/sbin/newfs_msdos/newfs_msdos.cSun Dec 22 05:39:26 2019 (r355998) +++ stable/11/sbin/newfs_msdos/newfs_msdos.cSun Dec 22 05:43:13 2019 (r355999) @@ -185,11 +185,10 @@ main(int argc, char *argv[]) fname = *argv++; if (!o.create_size && !strchr(fname, '/')) { snprintf(buf, sizeof(buf), "%s%s", _PATH_DEV, fname); - if (!(fname = strdup(buf))) - err(1, NULL); + fname = buf; } dtype = *argv; -return !!mkfs_msdos(fname, dtype, ); +exit(!!mkfs_msdos(fname, dtype, )); } /* ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r355998 - stable/12/sbin/newfs_msdos
Author: delphij Date: Sun Dec 22 05:39:26 2019 New Revision: 355998 URL: https://svnweb.freebsd.org/changeset/base/355998 Log: MFC r355318, r355513 r355318: Explicitly exit() instead of return in main(). r355513: Fix a couple of minor issues with newfs_msdos: - Do not unnecessarily strdup(). - Check return value of getdiskinfo(), if it failed, bail out. Modified: stable/12/sbin/newfs_msdos/mkfs_msdos.c stable/12/sbin/newfs_msdos/newfs_msdos.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sbin/newfs_msdos/mkfs_msdos.c == --- stable/12/sbin/newfs_msdos/mkfs_msdos.c Sun Dec 22 04:21:16 2019 (r355997) +++ stable/12/sbin/newfs_msdos/mkfs_msdos.c Sun Dec 22 05:39:26 2019 (r355998) @@ -316,7 +316,8 @@ mkfs_msdos(const char *fname, const char *dtype, const bpb.bpbHiddenSecs = o.hidden_sectors; if (!(o.floppy || (o.drive_heads && o.sectors_per_track && o.bytes_per_sector && o.size && o.hidden_sectors_set))) { - getdiskinfo(fd, fname, dtype, o.hidden_sectors_set, ); + if (getdiskinfo(fd, fname, dtype, o.hidden_sectors_set, ) == -1) + goto done; bpb.bpbHugeSectors -= (o.offset / bpb.bpbBytesPerSec); if (bpb.bpbSecPerClust == 0) { /* set defaults */ if (bpb.bpbHugeSectors <= 6000) /* about 3MB -> 512 bytes */ @@ -421,10 +422,7 @@ mkfs_msdos(const char *fname, const char *dtype, const bname = o.bootstrap; if (!strchr(bname, '/')) { snprintf(buf, sizeof(buf), "/boot/%s", bname); - if (!(bname = strdup(buf))) { - warn(NULL); - goto done; - } + bname = buf; } if ((fd1 = open(bname, O_RDONLY)) == -1 || fstat(fd1, )) { warn("%s", bname); Modified: stable/12/sbin/newfs_msdos/newfs_msdos.c == --- stable/12/sbin/newfs_msdos/newfs_msdos.cSun Dec 22 04:21:16 2019 (r355997) +++ stable/12/sbin/newfs_msdos/newfs_msdos.cSun Dec 22 05:39:26 2019 (r355998) @@ -185,11 +185,10 @@ main(int argc, char *argv[]) fname = *argv++; if (!o.create_size && !strchr(fname, '/')) { snprintf(buf, sizeof(buf), "%s%s", _PATH_DEV, fname); - if (!(fname = strdup(buf))) - err(1, NULL); + fname = buf; } dtype = *argv; -return !!mkfs_msdos(fname, dtype, ); +exit(!!mkfs_msdos(fname, dtype, )); } /* ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r355997 - head/sys/vm
Author: jeff Date: Sun Dec 22 04:21:16 2019 New Revision: 355997 URL: https://svnweb.freebsd.org/changeset/base/355997 Log: Move vm_fault busy logic into its own function for clarity and re-use by later changes. Reviewed by: kib, markj Differential Revision:https://reviews.freebsd.org/D22820 Modified: head/sys/vm/vm_fault.c Modified: head/sys/vm/vm_fault.c == --- head/sys/vm/vm_fault.c Sun Dec 22 03:19:17 2019(r355996) +++ head/sys/vm/vm_fault.c Sun Dec 22 04:21:16 2019(r355997) @@ -684,6 +684,41 @@ vm_fault_lock_vnode(struct faultstate *fs) return (KERN_RESOURCE_SHORTAGE); } +/* + * Wait/Retry if the page is busy. We have to do this if the page is + * either exclusive or shared busy because the vm_pager may be using + * read busy for pageouts (and even pageins if it is the vnode pager), + * and we could end up trying to pagein and pageout the same page + * simultaneously. + * + * We can theoretically allow the busy case on a read fault if the page + * is marked valid, but since such pages are typically already pmap'd, + * putting that special case in might be more effort then it is worth. + * We cannot under any circumstances mess around with a shared busied + * page except, perhaps, to pmap it. + */ +static void +vm_fault_busy_sleep(struct faultstate *fs) +{ + /* +* Reference the page before unlocking and +* sleeping so that the page daemon is less +* likely to reclaim it. +*/ + vm_page_aflag_set(fs->m, PGA_REFERENCED); + if (fs->object != fs->first_object) { + fault_page_release(>first_m); + vm_object_pip_wakeup(fs->first_object); + } + vm_object_pip_wakeup(fs->object); + unlock_map(fs); + if (fs->m == vm_page_lookup(fs->object, fs->pindex)) + vm_page_sleep_if_busy(fs->m, "vmpfw"); + VM_OBJECT_WUNLOCK(fs->object); + VM_CNT_INC(v_intrans); + vm_object_deallocate(fs->first_object); +} + int vm_fault(vm_map_t map, vm_offset_t vaddr, vm_prot_t fault_type, int fault_flags, vm_page_t *m_hold) @@ -822,42 +857,8 @@ RetryFault_oom: */ fs.m = vm_page_lookup(fs.object, fs.pindex); if (fs.m != NULL) { - /* -* Wait/Retry if the page is busy. We have to do this -* if the page is either exclusive or shared busy -* because the vm_pager may be using read busy for -* pageouts (and even pageins if it is the vnode -* pager), and we could end up trying to pagein and -* pageout the same page simultaneously. -* -* We can theoretically allow the busy case on a read -* fault if the page is marked valid, but since such -* pages are typically already pmap'd, putting that -* special case in might be more effort then it is -* worth. We cannot under any circumstances mess -* around with a shared busied page except, perhaps, -* to pmap it. -*/ if (vm_page_tryxbusy(fs.m) == 0) { - /* -* Reference the page before unlocking and -* sleeping so that the page daemon is less -* likely to reclaim it. -*/ - vm_page_aflag_set(fs.m, PGA_REFERENCED); - if (fs.object != fs.first_object) { - fault_page_release(_m); - vm_object_pip_wakeup(fs.first_object); - } - unlock_map(); - vm_object_pip_wakeup(fs.object); - if (fs.m == vm_page_lookup(fs.object, - fs.pindex)) { - vm_page_sleep_if_busy(fs.m, "vmpfw"); - } - VM_OBJECT_WUNLOCK(fs.object); - VM_CNT_INC(v_intrans); - vm_object_deallocate(fs.first_object); + vm_fault_busy_sleep(); goto RetryFault; } ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r355996 - in head/usr.sbin/fstyp: . tests
Author: cem Date: Sun Dec 22 03:19:17 2019 New Revision: 355996 URL: https://svnweb.freebsd.org/changeset/base/355996 Log: fstyp(8): Show exFAT volume labels with -l flag exfat is fundamentally the same design as fat32. The superblock differs marginally, and there are some additional optional features irrelevant to fstype(8); the structure of dirents has changed slightly to enable, among other things, larger files; the directory entries are no longer DOS 8.3 ASCII or local 8-bit encoding, but instead explicitly UCS-2-LE. (As a result, this change uses iconv to convert a found exfat volume label to the user's locale.) Locating the volume label is identical to FAT32: locate the root directory and walk through dirents until you find a volume label. Like FAT32, follow the FAT chain between root directory clusters as necessary. PR: 242225 Reported by: Victor Sudakov Modified: head/usr.sbin/fstyp/exfat.c head/usr.sbin/fstyp/fstyp.c head/usr.sbin/fstyp/fstyp.h head/usr.sbin/fstyp/tests/fstyp_test.sh Modified: head/usr.sbin/fstyp/exfat.c == --- head/usr.sbin/fstyp/exfat.c Sun Dec 22 01:22:51 2019(r355995) +++ head/usr.sbin/fstyp/exfat.c Sun Dec 22 03:19:17 2019(r355996) @@ -27,6 +27,14 @@ #include __FBSDID("$FreeBSD$"); +#include +#include + +#include +#include +#include +#include +#include #include #include #include @@ -34,6 +42,10 @@ __FBSDID("$FreeBSD$"); #include "fstyp.h" +/* + * https://docs.microsoft.com/en-us/windows/win32/fileio/exfat-specification + */ + struct exfat_vbr { charev_jmp[3]; charev_fsname[8]; @@ -55,19 +67,300 @@ struct exfat_vbr { uint8_t ev_percent_used; } __packed; +struct exfat_dirent { + uint8_t xde_type; +#defineXDE_TYPE_INUSE_MASK 0x80/* 1=in use */ +#defineXDE_TYPE_INUSE_SHIFT7 +#defineXDE_TYPE_CATEGORY_MASK 0x40/* 0=primary */ +#defineXDE_TYPE_CATEGORY_SHIFT 6 +#defineXDE_TYPE_IMPORTNC_MASK 0x20/* 0=critical */ +#defineXDE_TYPE_IMPORTNC_SHIFT 5 +#defineXDE_TYPE_CODE_MASK 0x1f +/* InUse=0, ..., TypeCode=0: EOD. */ +#defineXDE_TYPE_EOD0x00 +#defineXDE_TYPE_ALLOC_BITMAP (XDE_TYPE_INUSE_MASK | 0x01) +#defineXDE_TYPE_UPCASE_TABLE (XDE_TYPE_INUSE_MASK | 0x02) +#defineXDE_TYPE_VOL_LABEL (XDE_TYPE_INUSE_MASK | 0x03) +#defineXDE_TYPE_FILE (XDE_TYPE_INUSE_MASK | 0x05) +#defineXDE_TYPE_VOL_GUID (XDE_TYPE_INUSE_MASK | XDE_TYPE_IMPORTNC_MASK) +#defineXDE_TYPE_STREAM_EXT (XDE_TYPE_INUSE_MASK | XDE_TYPE_CATEGORY_MASK) +#defineXDE_TYPE_FILE_NAME (XDE_TYPE_INUSE_MASK | XDE_TYPE_CATEGORY_MASK | 0x01) +#defineXDE_TYPE_VENDOR (XDE_TYPE_INUSE_MASK | XDE_TYPE_CATEGORY_MASK | XDE_TYPE_IMPORTNC_MASK) +#defineXDE_TYPE_VENDOR_ALLOC (XDE_TYPE_INUSE_MASK | XDE_TYPE_CATEGORY_MASK | XDE_TYPE_IMPORTNC_MASK | 0x01) + union { + uint8_t xde_generic_[19]; + struct exde_primary { + /* +* Count of "secondary" dirents following this one. +* +* A single logical entity may be composed of a +* sequence of several dirents, starting with a primary +* one; the rest are secondary dirents. +*/ + uint8_t xde_secondary_count_; + uint16_txde_set_chksum_; + uint16_txde_prim_flags_; + uint8_t xde_prim_generic_[14]; + } __packed xde_primary_; + struct exde_secondary { + uint8_t xde_sec_flags_; + uint8_t xde_sec_generic_[18]; + } __packed xde_secondary_; + } u; + uint32_txde_first_cluster; + uint64_txde_data_len; +} __packed; +#definexde_generic u.xde_generic_ +#definexde_secondary_count u.xde_primary_.xde_secondary_count +#definexde_set_chksum u.xde_primary_.xde_set_chksum_ +#definexde_prim_flags u.xde_primary_.xde_prim_flags_ +#definexde_sec_flags u.xde_secondary_.xde_sec_flags_ +_Static_assert(sizeof(struct exfat_dirent) == 32, "spec"); + +struct exfat_de_label { + uint8_t xdel_type; /* XDE_TYPE_VOL_LABEL */ + uint8_t xdel_char_cnt; /* Length of UCS-2 label */ + uint16_txdel_vol_lbl[11]; + uint8_t xdel_reserved[8]; +} __packed; +_Static_assert(sizeof(struct exfat_de_label) == 32, "spec"); + +#defineMAIN_BOOT_REGION_SECT 0 +#defineBACKUP_BOOT_REGION_SECT 12
svn commit: r355995 - head/sbin/hastd
Author: mckusick Date: Sun Dec 22 01:22:51 2019 New Revision: 355995 URL: https://svnweb.freebsd.org/changeset/base/355995 Log: Fix typo in hastd.8 manual page. Reported by: Steve Kargl MFC after: 3 days Modified: head/sbin/hastd/hastd.8 Modified: head/sbin/hastd/hastd.8 == --- head/sbin/hastd/hastd.8 Sun Dec 22 00:46:07 2019(r355994) +++ head/sbin/hastd/hastd.8 Sun Dec 22 01:22:51 2019(r355995) @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 8, 2016 +.Dd December 21, 2019 .Dt HASTD 8 .Os .Sh NAME @@ -44,7 +44,7 @@ The daemon is responsible for managing highly available GEOM providers. .Pp .Nm -allows the transpaent storage of data on two physically separated machines +allows the transparent storage of data on two physically separated machines connected over a TCP/IP network. Only one machine (cluster node) can actively use storage provided by .Nm . ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r355994 - in stable/12/sys/dev: chromebook_platform cyapa ichiic iicbus
Author: wulf Date: Sun Dec 22 00:46:07 2019 New Revision: 355994 URL: https://svnweb.freebsd.org/changeset/base/355994 Log: MFC r354291 - r354322, r354327, r355596 r354291: [ig4] Give common name to PCI and ACPI device drivers r354292: [ig4] Handle controller startup errors Obtained from:DragonflyBSD (509820b) r354293: [ig4] Only enable interrupts when we want them. Otherwise keep mask at 0. Obtained from:DragonflyBSD (d7c8555) r354294: [ig4] Drop driver's internal RX FIFO r354295: [ig4] Do not wait for interrupts in set_controller() routine r354296: [ig4] Reduce scope of io_lock r354297: [ig4] Ignore stray interrupts r354298: [ig4] We actually need to set the Rx threshold register one smaller. Obtained from:DragonflyBSD (02f0bf2) r354299: [ig4] Stop I2C controller after checking that it's kind of functional. Obtained from:DragonfliBSD (0b3eedb) r354300: [ig4] disable controller before initialization of clock counters r354301: [ig4] Add support for polled mode r354302: [ig4] Allow enabling of polled mode from iicbus allocation callback r354303: [ig4] Do not wait until interrupts are enabled at attach stage r354304: [cyapa] Postpone start of the polling thread until sleep is available r354305: [ig4] dump IG4_REG_COMP_PARAM1 and IG4_REG_COMP_VER registers unconditionally r354306: [ig4] Set clock registers based on controller model r354307: [ig4] Implement burst mode for data reads r354308: [ig4] Add suspend/resume support PR: 238037 r354309: [ig4] Remove dead code inherited from DragonflyBSD r354310: [ig4] Rewrite ig4iic_write routine to use TX_EMPTY status flag r354311: [ig4] Convert last remaining usage of TX_NOTFULL status to TX_EMPTY r354312: [ig4] Use interrupts for waiting for empty TX FIFO r354313: [ig4] Convert polling loop from status-based to interrupt-based r354314: [ig4] Improve error detection r354315: [ig4] Set STOP condition and flush TX/RX FIFOs on error r354316: [ig4] On SkyLake controllers issue reset on attach unconditionally. r354317: [ig4] wait for bus stop condition after stop command issued r354318: [ig4] Minor improvement of write pipelining r354319: [ig4] Add generic resource methods to bus interface r354320: [ig4] Add support for CannonLake controllers PR: 240485 Submitted by: Neel Chauhan r354321: [ig4] Enable additional registers support on Appolo Lake controllers r354322: [ig4] Convert ithread interrupt handler to filter based one. r354327: [ig4] Try to workaround MIPS namespace pollution issue r355596: [ig4] Remove unused methods from bus interface Suggested by: jhb Reviewed by: imp (previous version) Differential Revision:https://reviews.freebsd.org/D22016 Modified: stable/12/sys/dev/chromebook_platform/chromebook_platform.c stable/12/sys/dev/cyapa/cyapa.c stable/12/sys/dev/ichiic/ig4_acpi.c stable/12/sys/dev/ichiic/ig4_iic.c stable/12/sys/dev/ichiic/ig4_pci.c stable/12/sys/dev/ichiic/ig4_reg.h stable/12/sys/dev/ichiic/ig4_var.h stable/12/sys/dev/iicbus/iicbus.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/chromebook_platform/chromebook_platform.c == --- stable/12/sys/dev/chromebook_platform/chromebook_platform.c Sun Dec 22 00:36:22 2019(r355993) +++ stable/12/sys/dev/chromebook_platform/chromebook_platform.c Sun Dec 22 00:46:07 2019(r355994) @@ -69,7 +69,7 @@ chromebook_i2c_identify(driver_t *driver, device_t bus * See http://lxr.free-electrons.com/source/drivers/platform/chrome/chromeos_laptop.c */ controller = device_get_parent(bus); - if (strcmp(device_get_name(controller), "ig4iic_pci") != 0) + if (strcmp(device_get_name(controller), "ig4iic") != 0) return; for (i = 0; i < nitems(slaves); i++) { Modified: stable/12/sys/dev/cyapa/cyapa.c == --- stable/12/sys/dev/cyapa/cyapa.c Sun Dec 22 00:36:22 2019 (r355993) +++ stable/12/sys/dev/cyapa/cyapa.c Sun Dec 22 00:46:07 2019 (r355994) @@ -152,6 +152,7 @@ struct cyapa_softc { struct cdev *devnode; struct selinfo selinfo; struct mtx mutex; + struct intr_config_hook intr_hook; int cap_resx; int cap_resy; @@ -419,6 +420,27 @@ done: return (error); } +/* + * Start the polling thread + */ +static void +cyapa_start(void *xdev) +{ + struct cyapa_softc *sc; + device_t dev = xdev; + + sc = device_get_softc(dev); + + config_intrhook_disestablish(>intr_hook); + + /* Setup input event
svn commit: r355993 - head/usr.bin/nfsstat
Author: rmacklem Date: Sun Dec 22 00:36:22 2019 New Revision: 355993 URL: https://svnweb.freebsd.org/changeset/base/355993 Log: Update the nfsstat man page to reflect r355992. r355992 added listing of NFSv4.2 procedure and operation counts. This patch updates the nfsstat.1 man page to reflect that change. This is a content change. Modified: head/usr.bin/nfsstat/nfsstat.1 Modified: head/usr.bin/nfsstat/nfsstat.1 == --- head/usr.bin/nfsstat/nfsstat.1 Sun Dec 22 00:12:22 2019 (r355992) +++ head/usr.bin/nfsstat/nfsstat.1 Sun Dec 22 00:36:22 2019 (r355993) @@ -28,7 +28,7 @@ .\" From: @(#)nfsstat.18.1 (Berkeley) 6/6/93 .\" $FreeBSD$ .\" -.Dd October 1, 2018 +.Dd December 21, 2019 .Dt NFSSTAT 1 .Os .Sh NAME @@ -86,8 +86,8 @@ server for NFSv4. .It Fl E Similar to .Fl e -except that the statistics include NFSv4.1 and the numbers aren't clipped -at one billion. +except that the statistics include NFSv4.1 and NFSv4.2 and the numbers aren't +clipped at one billion. Only one of .Fl e or ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r355992 - head/usr.bin/nfsstat
Author: rmacklem Date: Sun Dec 22 00:12:22 2019 New Revision: 355992 URL: https://svnweb.freebsd.org/changeset/base/355992 Log: Update nfsstat to list the NFSv4.2 procedures and operations. r355677 added NFSv4.2 support to the NFS client and server. It also updated the nfsstats structure to keep counts for the new procedures (client) and operations (server) added for NFSv4.2. This patch updates the "-E" option of nfsstat so that it lists counts for these new procedures and operations. Modified: head/usr.bin/nfsstat/nfsstat.c Modified: head/usr.bin/nfsstat/nfsstat.c == --- head/usr.bin/nfsstat/nfsstat.c Sat Dec 21 22:32:24 2019 (r355991) +++ head/usr.bin/nfsstat/nfsstat.c Sun Dec 22 00:12:22 2019 (r355992) @@ -772,6 +772,31 @@ exp_intpr(int clientOnly, int serverOnly, int nfs41) (uintmax_t)ext_nfsstats.rpccnt[NFSPROC_CREATELAYGET]); xo_close_container("nfsv41"); + + xo_open_container("nfsv42"); + + xo_emit("{T:IOAdvise/%13.13s}{T:Allocate/%13.13s}" + "{T:Copy/%13.13s}{T:Seek/%13.13s}" + "{T:SeekDataS/%13.13s}{T:GetExtattr/%13.13s}\n"); + xo_emit("{:ioadvise/%13ju}{:allocate/%13ju}" + "{:copy/%13ju}{:seek/%13ju}" + "{:seekdatas/%13ju}{:getextattr/%13ju}\n", + (uintmax_t)ext_nfsstats.rpccnt[NFSPROC_IOADVISE], + (uintmax_t)ext_nfsstats.rpccnt[NFSPROC_ALLOCATE], + (uintmax_t)ext_nfsstats.rpccnt[NFSPROC_COPY], + (uintmax_t)ext_nfsstats.rpccnt[NFSPROC_SEEK], + (uintmax_t)ext_nfsstats.rpccnt[NFSPROC_SEEKDS], + (uintmax_t)ext_nfsstats.rpccnt[NFSPROC_GETEXTATTR]); + + xo_emit("{T:SetExtattr/%13.13s}{T:RmExtattr/%13.13s}" + "{T:ListExtattr/%13.13s}\n"); + xo_emit("{:setextattr/%13ju}{:rmextattr/%13ju}" + "{:listextattr/%13ju}\n", + (uintmax_t)ext_nfsstats.rpccnt[NFSPROC_SETEXTATTR], + (uintmax_t)ext_nfsstats.rpccnt[NFSPROC_RMEXTATTR], + (uintmax_t)ext_nfsstats.rpccnt[NFSPROC_LISTEXTATTR]); + + xo_close_container("nfsv42"); } xo_close_container("operations"); @@ -993,6 +1018,48 @@ exp_intpr(int clientOnly, int serverOnly, int nfs41) (uintmax_t)ext_nfsstats.srvrpccnt[NFSV4OP_RECLAIMCOMPL]); xo_close_container("nfsv41"); + + xo_open_container("nfsv42"); + + xo_emit("{T:Allocate/%13.13s}{T:Copy/%13.13s}" + "{T:CopyNotify/%13.13s}{T:Deallocate/%13.13s}" + "{T:IOAdvise/%13.13s}{T:LayoutError/%13.13s}\n"); + xo_emit("{:allocate/%13ju}{:copy/%13ju}" + "{:copynotify/%13ju}{:deallocate/%13ju}" + "{:ioadvise/%13ju}{:layouterror/%13ju}\n", + (uintmax_t)ext_nfsstats.srvrpccnt[NFSV4OP_ALLOCATE], + (uintmax_t)ext_nfsstats.srvrpccnt[NFSV4OP_COPY], + (uintmax_t)ext_nfsstats.srvrpccnt[NFSV4OP_COPYNOTIFY], + (uintmax_t)ext_nfsstats.srvrpccnt[NFSV4OP_DEALLOCATE], + (uintmax_t)ext_nfsstats.srvrpccnt[NFSV4OP_IOADVISE], + (uintmax_t)ext_nfsstats.srvrpccnt[NFSV4OP_LAYOUTERROR]); + + xo_emit("{T:LayoutStats/%13.13s}{T:OffloadCncl/%13.13s}" + "{T:OffloadStat/%13.13s}{T:ReadPlus/%13.13s}" + "{T:Seek/%13.13s}{T:WriteSame/%13.13s}\n"); + xo_emit("{:layoutstats/%13ju}{:offloadcncl/%13ju}" + "{:offloadstat/%13ju}{:readplus/%13ju}" + "{:seek/%13ju}{:writesame/%13ju}\n", + (uintmax_t)ext_nfsstats.srvrpccnt[NFSV4OP_LAYOUTSTATS], + (uintmax_t)ext_nfsstats.srvrpccnt[NFSV4OP_OFFLOADCANCEL], + (uintmax_t)ext_nfsstats.srvrpccnt[NFSV4OP_OFFLOADSTATUS], + (uintmax_t)ext_nfsstats.srvrpccnt[NFSV4OP_READPLUS], + (uintmax_t)ext_nfsstats.srvrpccnt[NFSV4OP_SEEK], + (uintmax_t)ext_nfsstats.srvrpccnt[NFSV4OP_WRITESAME]); + + xo_emit("{T:Clone/%13.13s}{T:GetExtattr/%13.13s}" + "{T:SetExtattr/%13.13s}{T:ListExtattr/%13.13s}" + "{T:RmExtattr/%13.13s}\n"); +
svn commit: r355991 - head/sys/amd64/amd64
Author: alc Date: Sat Dec 21 22:32:24 2019 New Revision: 355991 URL: https://svnweb.freebsd.org/changeset/base/355991 Log: Micro-optimize the control flow in _pmap_unwire_ptp(), and eliminate unnecessary parentheses. Reviewed by: kib, markj MFC after:1 week Differential Revision:https://reviews.freebsd.org/D22893 Modified: head/sys/amd64/amd64/pmap.c Modified: head/sys/amd64/amd64/pmap.c == --- head/sys/amd64/amd64/pmap.c Sat Dec 21 21:05:53 2019(r355990) +++ head/sys/amd64/amd64/pmap.c Sat Dec 21 22:32:24 2019(r355991) @@ -3542,7 +3542,7 @@ _pmap_unwire_ptp(pmap_t pmap, vm_offset_t va, vm_page_ /* * unmap the page table page */ - if (m->pindex >= (NUPDE + NUPDPE)) { + if (m->pindex >= NUPDE + NUPDPE) { /* PDP page */ pml4_entry_t *pml4; pml4 = pmap_pml4e(pmap, va); @@ -3569,8 +3569,7 @@ _pmap_unwire_ptp(pmap_t pmap, vm_offset_t va, vm_page_ pdpg = PHYS_TO_VM_PAGE(*pmap_pdpe(pmap, va) & PG_FRAME); pmap_unwire_ptp(pmap, va, pdpg, free); - } - if (m->pindex >= NUPDE && m->pindex < (NUPDE + NUPDPE)) { + } else if (m->pindex < NUPDE + NUPDPE) { /* We just released a PD, unhold the matching PDP */ vm_page_t pdppg; ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r355990 - head/contrib/libpcap
Author: cy Date: Sat Dec 21 21:05:53 2019 New Revision: 355990 URL: https://svnweb.freebsd.org/changeset/base/355990 Log: MFV r355890: Fix libpcap issue #893: check for invalid IPv4 addresses. This fixes errors such as: tcpdump -i lagg0 net 999.999.999.999 This was originally discovered on a Red Hat 7.7 server and verified to also be a bug on FreeBSD. Obtained from:https://github.com/the-tcpdump-group/libpcap/commit/ \ 07070918d5e81a515315b395f334e52589fe0fb Fixed by: https://github.com/guyharris MFC after:2 weeks Modified: head/contrib/libpcap/gencode.c head/contrib/libpcap/nametoaddr.c Directory Properties: head/contrib/libpcap/ (props changed) Modified: head/contrib/libpcap/gencode.c == --- head/contrib/libpcap/gencode.c Sat Dec 21 21:02:50 2019 (r355989) +++ head/contrib/libpcap/gencode.c Sat Dec 21 21:05:53 2019 (r355990) @@ -6955,11 +6955,15 @@ gen_mcode(compiler_state_t *cstate, const char *s1, co return (NULL); nlen = __pcap_atoin(s1, ); + if (nlen < 0) + bpf_error(cstate, "invalid IPv4 address '%s'", s1); /* Promote short ipaddr */ n <<= 32 - nlen; if (s2 != NULL) { mlen = __pcap_atoin(s2, ); + if (mlen < 0) + bpf_error(cstate, "invalid IPv4 address '%s'", s2); /* Promote short ipaddr */ m <<= 32 - mlen; if ((n & ~m) != 0) @@ -7017,8 +7021,11 @@ gen_ncode(compiler_state_t *cstate, const char *s, bpf vlen = __pcap_atodn(s, ); if (vlen == 0) bpf_error(cstate, "malformed decnet address '%s'", s); - } else + } else { vlen = __pcap_atoin(s, ); + if (vlen < 0) + bpf_error(cstate, "invalid IPv4 address '%s'", s); + } switch (q.addr) { Modified: head/contrib/libpcap/nametoaddr.c == --- head/contrib/libpcap/nametoaddr.c Sat Dec 21 21:02:50 2019 (r355989) +++ head/contrib/libpcap/nametoaddr.c Sat Dec 21 21:05:53 2019 (r355990) @@ -653,8 +653,15 @@ __pcap_atoin(const char *s, bpf_u_int32 *addr) len = 0; for (;;) { n = 0; - while (*s && *s != '.') + while (*s && *s != '.') { + if (n > 25) { + /* The result will be > 255 */ + return -1; + } n = n * 10 + *s++ - '0'; + } + if (n > 255) + return -1; *addr <<= 8; *addr |= n & 0xff; len += 8; ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r355989 - head/contrib/tcpdump
Author: cy Date: Sat Dec 21 21:02:50 2019 New Revision: 355989 URL: https://svnweb.freebsd.org/changeset/base/355989 Log: MFV r353143 (phillip): Update tcpdump from 4.9.2 to 4.9.3. MFC after:2 weeks Added: head/contrib/tcpdump/configure.ac - copied unchanged from r353144, vendor/tcpdump/dist/configure.ac Modified: head/contrib/tcpdump/CHANGES head/contrib/tcpdump/CONTRIBUTING head/contrib/tcpdump/INSTALL.txt head/contrib/tcpdump/Makefile-devel-adds head/contrib/tcpdump/Makefile.in head/contrib/tcpdump/VERSION head/contrib/tcpdump/addrtoname.c head/contrib/tcpdump/config.guess head/contrib/tcpdump/config.h.in head/contrib/tcpdump/config.sub head/contrib/tcpdump/configure head/contrib/tcpdump/netdissect.h head/contrib/tcpdump/print-802_11.c head/contrib/tcpdump/print-aoe.c head/contrib/tcpdump/print-babel.c head/contrib/tcpdump/print-bfd.c head/contrib/tcpdump/print-bgp.c head/contrib/tcpdump/print-bootp.c head/contrib/tcpdump/print-dccp.c head/contrib/tcpdump/print-decnet.c head/contrib/tcpdump/print-domain.c head/contrib/tcpdump/print-dvmrp.c head/contrib/tcpdump/print-eigrp.c head/contrib/tcpdump/print-esp.c head/contrib/tcpdump/print-fr.c head/contrib/tcpdump/print-hncp.c head/contrib/tcpdump/print-icmp.c head/contrib/tcpdump/print-icmp6.c head/contrib/tcpdump/print-ipnet.c head/contrib/tcpdump/print-isakmp.c head/contrib/tcpdump/print-juniper.c head/contrib/tcpdump/print-l2tp.c head/contrib/tcpdump/print-ldp.c head/contrib/tcpdump/print-lmp.c head/contrib/tcpdump/print-nfs.c head/contrib/tcpdump/print-openflow.c head/contrib/tcpdump/print-ospf.c head/contrib/tcpdump/print-ospf6.c head/contrib/tcpdump/print-ppi.c head/contrib/tcpdump/print-rsvp.c head/contrib/tcpdump/print-rx.c head/contrib/tcpdump/print-sflow.c head/contrib/tcpdump/print-sl.c head/contrib/tcpdump/print-sll.c head/contrib/tcpdump/print-smb.c head/contrib/tcpdump/print-tcp.c head/contrib/tcpdump/print-vrrp.c head/contrib/tcpdump/print-vtp.c head/contrib/tcpdump/print-wb.c head/contrib/tcpdump/signature.c head/contrib/tcpdump/smbutil.c head/contrib/tcpdump/tcpdump.1.in head/contrib/tcpdump/tcpdump.c head/contrib/tcpdump/util-print.c Directory Properties: head/contrib/tcpdump/ (props changed) Modified: head/contrib/tcpdump/CHANGES == --- head/contrib/tcpdump/CHANGESSat Dec 21 21:01:03 2019 (r355988) +++ head/contrib/tcpdump/CHANGESSat Dec 21 21:02:50 2019 (r355989) @@ -1,3 +1,36 @@ +Friday, September 20, 2019, by m...@sandelman.ca + A huge thank you to Denis, Francois-Xavier and Guy who did much of the heavy lifting. + Summary for 4.9.3 tcpdump release +Fix buffer overflow/overread vulnerabilities: + CVE-2017-16808 (AoE) + CVE-2018-14468 (FrameRelay) + CVE-2018-14469 (IKEv1) + CVE-2018-14470 (BABEL) + CVE-2018-14466 (AFS/RX) + CVE-2018-14461 (LDP) + CVE-2018-14462 (ICMP) + CVE-2018-14465 (RSVP) + CVE-2018-14881 (BGP) + CVE-2018-14464 (LMP) + CVE-2018-14463 (VRRP) + CVE-2018-14467 (BGP) + CVE-2018-10103 (SMB - partially fixed, but SMB printing disabled) + CVE-2018-10105 (SMB - too unreliably reproduced, SMB printing disabled) + CVE-2018-14880 (OSPF6) + CVE-2018-16451 (SMB) + CVE-2018-14882 (RPL) + CVE-2018-16227 (802.11) + CVE-2018-16229 (DCCP) + CVE-2018-16301 (was fixed in libpcap) + CVE-2018-16230 (BGP) + CVE-2018-16452 (SMB) + CVE-2018-16300 (BGP) + CVE-2018-16228 (HNCP) + CVE-2019-15166 (LMP) + CVE-2019-15167 (VRRP) +Fix for cmdline argument/local issues: + CVE-2018-14879 (tcpdump -V) + Sunday September 3, 2017 de...@ovsienko.info Summary for 4.9.2 tcpdump release Do not use getprotobynumber() for protocol name resolution. Do not do Modified: head/contrib/tcpdump/CONTRIBUTING == --- head/contrib/tcpdump/CONTRIBUTING Sat Dec 21 21:01:03 2019 (r355988) +++ head/contrib/tcpdump/CONTRIBUTING Sat Dec 21 21:02:50 2019 (r355989) @@ -31,7 +31,7 @@ Please note that if you know exactly how to solve the would not be too intrusive, it would be best to contribute some development time and open a pull request instead as discussed below. -Still not sure how to do? Feel free to [subscribe](http://www.tcpdump.org/#mailing-lists) +Still not sure how to do? Feel free to [subscribe](https://www.tcpdump.org/#mailing-lists) to the mailing list tcpdump-work...@lists.tcpdump.org and ask! Modified: head/contrib/tcpdump/INSTALL.txt == --- head/contrib/tcpdump/INSTALL.txtSat Dec 21 21:01:03 2019 (r355988) +++ head/contrib/tcpdump/INSTALL.txtSat Dec 21 21:02:50 2019
svn commit: r355988 - in head: contrib/libpcap contrib/libpcap/cmake/Modules contrib/libpcap/doc contrib/libpcap/missing contrib/libpcap/msdos contrib/libpcap/pcap contrib/libpcap/rpcapd contrib/li...
Author: cy Date: Sat Dec 21 21:01:03 2019 New Revision: 355988 URL: https://svnweb.freebsd.org/changeset/base/355988 Log: MFV r353141 (by phillip): Update libpcap from 1.9.0 to 1.9.1. MFC after:2 weeks Added: head/contrib/libpcap/CONTRIBUTING.md - copied unchanged from r353141, vendor/libpcap/dist/CONTRIBUTING.md head/contrib/libpcap/INSTALL.md - copied unchanged from r353141, vendor/libpcap/dist/INSTALL.md head/contrib/libpcap/README.md - copied unchanged from r353141, vendor/libpcap/dist/README.md head/contrib/libpcap/doc/ - copied from r353141, vendor/libpcap/dist/doc/ head/contrib/libpcap/missing/asprintf.c - copied unchanged from r353141, vendor/libpcap/dist/missing/asprintf.c head/contrib/libpcap/missing/strlcat.c - copied unchanged from r353141, vendor/libpcap/dist/missing/strlcat.c head/contrib/libpcap/missing/strlcpy.c - copied unchanged from r353141, vendor/libpcap/dist/missing/strlcpy.c head/contrib/libpcap/missing/win_asprintf.c - copied unchanged from r353141, vendor/libpcap/dist/missing/win_asprintf.c head/contrib/libpcap/pcap/socket.h - copied unchanged from r353141, vendor/libpcap/dist/pcap/socket.h head/contrib/libpcap/pcap_set_immediate_mode.3pcap.in - copied unchanged from r353141, vendor/libpcap/dist/pcap_set_immediate_mode.3pcap.in head/contrib/libpcap/pcap_set_protocol_linux.3pcap - copied unchanged from r353141, vendor/libpcap/dist/pcap_set_protocol_linux.3pcap head/contrib/libpcap/rpcapd/ - copied from r353141, vendor/libpcap/dist/rpcapd/ head/contrib/libpcap/testprogs/ - copied from r353141, vendor/libpcap/dist/testprogs/ Deleted: head/contrib/libpcap/CONTRIBUTING head/contrib/libpcap/INSTALL.txt head/contrib/libpcap/README head/contrib/libpcap/README.Win32 head/contrib/libpcap/README.aix head/contrib/libpcap/README.dag head/contrib/libpcap/README.hpux head/contrib/libpcap/README.linux head/contrib/libpcap/README.macos head/contrib/libpcap/README.septel head/contrib/libpcap/README.sita head/contrib/libpcap/README.tru64 head/contrib/libpcap/cmake/Modules/FindPthreads-w32.cmake head/contrib/libpcap/pcap_set_immediate_mode.3pcap head/contrib/libpcap/pcap_set_protocol.3pcap Modified: head/contrib/libpcap/CHANGES head/contrib/libpcap/CMakeLists.txt head/contrib/libpcap/CREDITS head/contrib/libpcap/Makefile.in head/contrib/libpcap/VERSION head/contrib/libpcap/aclocal.m4 head/contrib/libpcap/bpf_filter.c head/contrib/libpcap/cmake/Modules/FindPacket.cmake head/contrib/libpcap/cmakeconfig.h.in head/contrib/libpcap/config.guess head/contrib/libpcap/config.h.in head/contrib/libpcap/config.sub head/contrib/libpcap/configure head/contrib/libpcap/configure.ac head/contrib/libpcap/diag-control.h head/contrib/libpcap/fmtutils.c head/contrib/libpcap/fmtutils.h head/contrib/libpcap/ftmacros.h head/contrib/libpcap/gencode.c head/contrib/libpcap/gencode.h head/contrib/libpcap/grammar.y head/contrib/libpcap/missing/snprintf.c head/contrib/libpcap/missing/win_snprintf.c head/contrib/libpcap/msdos/readme.dos head/contrib/libpcap/nametoaddr.c head/contrib/libpcap/optimize.c head/contrib/libpcap/pcap-bpf.c head/contrib/libpcap/pcap-bt-linux.c head/contrib/libpcap/pcap-bt-monitor-linux.c head/contrib/libpcap/pcap-common.c head/contrib/libpcap/pcap-common.h head/contrib/libpcap/pcap-dag.c head/contrib/libpcap/pcap-dlpi.c head/contrib/libpcap/pcap-dos.c head/contrib/libpcap/pcap-filter.manmisc.in head/contrib/libpcap/pcap-int.h head/contrib/libpcap/pcap-libdlpi.c head/contrib/libpcap/pcap-linktype.manmisc.in head/contrib/libpcap/pcap-linux.c head/contrib/libpcap/pcap-netfilter-linux.c head/contrib/libpcap/pcap-netmap.c head/contrib/libpcap/pcap-new.c head/contrib/libpcap/pcap-npf.c head/contrib/libpcap/pcap-null.c head/contrib/libpcap/pcap-rpcap.c head/contrib/libpcap/pcap-rpcap.h head/contrib/libpcap/pcap-savefile.manfile.in head/contrib/libpcap/pcap-septel.c head/contrib/libpcap/pcap-sita.c head/contrib/libpcap/pcap-sita.html head/contrib/libpcap/pcap-snf.c head/contrib/libpcap/pcap-tc.c head/contrib/libpcap/pcap-tstamp.manmisc.in head/contrib/libpcap/pcap-usb-linux.c head/contrib/libpcap/pcap.3pcap.in head/contrib/libpcap/pcap.c head/contrib/libpcap/pcap/bpf.h head/contrib/libpcap/pcap/compiler-tests.h head/contrib/libpcap/pcap/dlt.h head/contrib/libpcap/pcap/funcattrs.h head/contrib/libpcap/pcap/nflog.h head/contrib/libpcap/pcap/pcap-inttypes.h head/contrib/libpcap/pcap/pcap.h head/contrib/libpcap/pcap/sll.h head/contrib/libpcap/pcap_activate.3pcap head/contrib/libpcap/pcap_breakloop.3pcap head/contrib/libpcap/pcap_can_set_rfmon.3pcap head/contrib/libpcap/pcap_compile.3pcap.in head/contrib/libpcap/pcap_create.3pcap head/contrib/libpcap/pcap_datalink.3pcap.in head/contrib/libpcap/pcap_datalink_name_to_val.3pcap
svn commit: r355987 - vendor/llvm-project/llvmorg-9.0.1
Author: dim Date: Sat Dec 21 19:23:33 2019 New Revision: 355987 URL: https://svnweb.freebsd.org/changeset/base/355987 Log: Tag vendor import of llvm-project llvmorg-9.0.1. Added: vendor/llvm-project/llvmorg-9.0.1/ - copied from r355986, vendor/llvm-project/release-9.x/ ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r355986 - vendor/llvm-project/llvmorg-9.0.1
Author: dim Date: Sat Dec 21 19:22:19 2019 New Revision: 355986 URL: https://svnweb.freebsd.org/changeset/base/355986 Log: Prepare to re-tag llvmorg-9.0.1. Deleted: vendor/llvm-project/llvmorg-9.0.1/ ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r355985 - head/sys/vm
Author: markj Date: Sat Dec 21 19:04:05 2019 New Revision: 355985 URL: https://svnweb.freebsd.org/changeset/base/355985 Log: Fix VPO_UNMANAGED handling in vm_page_reclaim_run() after r353540. When allocating a replacement page we must clear VPO_UNMANAGED since we only ever reclaim pages from managed objects. vm_page_replace() does not handle this for us. Sprinkle some assertions to help catch this sort of issue. Reported by: pho Reviewed by: alc, kib Sponsored by: The FreeBSD Foundation Differential Revision:https://reviews.freebsd.org/D22868 Modified: head/sys/vm/vm_page.c Modified: head/sys/vm/vm_page.c == --- head/sys/vm/vm_page.c Sat Dec 21 18:50:25 2019(r355984) +++ head/sys/vm/vm_page.c Sat Dec 21 19:04:05 2019(r355985) @@ -1724,6 +1724,9 @@ vm_page_replace(vm_page_t mnew, vm_object_t object, vm mnew->pindex = pindex; atomic_set_int(>ref_count, VPRC_OBJREF); mold = vm_radix_replace(>rtree, mnew); + KASSERT((mold->oflags & VPO_UNMANAGED) == + (mnew->oflags & VPO_UNMANAGED), + ("vm_page_replace: mismatched VPO_UNMANAGED")); /* Keep the resident page list in sorted order. */ TAILQ_INSERT_AFTER(>memq, mold, mnew, listq); @@ -2684,8 +2687,7 @@ retry: KASSERT(pmap_page_get_memattr(m) == VM_MEMATTR_DEFAULT, ("page %p has an unexpected memattr", m)); - KASSERT((m->oflags & (VPO_SWAPINPROG | - VPO_SWAPSLEEP | VPO_UNMANAGED)) == 0, + KASSERT(m->oflags == 0, ("page %p has unexpected oflags", m)); /* Don't care: PGA_NOSYNC. */ if (!vm_page_none_valid(m)) { @@ -2753,6 +2755,7 @@ retry: ~PGA_QUEUE_STATE_MASK; KASSERT(m_new->oflags == VPO_UNMANAGED, ("page %p is managed", m_new)); + m_new->oflags = 0; pmap_copy_page(m, m_new); m_new->valid = m->valid; m_new->dirty = m->dirty; @@ -3676,6 +3679,10 @@ vm_page_free_prep(vm_page_t m) panic("vm_page_free_prep: freeing shared busy page %p", m); if (m->object != NULL) { + KASSERT(((m->oflags & VPO_UNMANAGED) != 0) == + ((m->object->flags & OBJ_UNMANAGED) != 0), + ("vm_page_free_prep: managed flag mismatch for page %p", + m)); vm_page_object_remove(m); /* ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r355984 - stable/12/sys/dev/oce
Author: markj Date: Sat Dec 21 18:50:25 2019 New Revision: 355984 URL: https://svnweb.freebsd.org/changeset/base/355984 Log: MFC r355885: oce: Tighten input validation in the SIOCGI2C handler. Modified: stable/12/sys/dev/oce/oce_if.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/oce/oce_if.c == --- stable/12/sys/dev/oce/oce_if.c Sat Dec 21 16:16:43 2019 (r355983) +++ stable/12/sys/dev/oce/oce_if.c Sat Dec 21 18:50:25 2019 (r355984) @@ -593,27 +593,26 @@ oce_ioctl(struct ifnet *ifp, u_long command, caddr_t d if (rc) break; - if (i2c.dev_addr != PAGE_NUM_A0 && - i2c.dev_addr != PAGE_NUM_A2) { + if (i2c.dev_addr == PAGE_NUM_A0) { + offset = i2c.offset; + } else if (i2c.dev_addr == PAGE_NUM_A2) { + offset = TRANSCEIVER_A0_SIZE + i2c.offset; + } else { rc = EINVAL; break; } - if (i2c.len > sizeof(i2c.data)) { + if (i2c.len > sizeof(i2c.data) || + i2c.len + offset > sizeof(sfp_vpd_dump_buffer)) { rc = EINVAL; break; } rc = oce_mbox_read_transrecv_data(sc, i2c.dev_addr); - if(rc) { + if (rc) { rc = -rc; break; } - - if (i2c.dev_addr == PAGE_NUM_A0) - offset = i2c.offset; - else - offset = TRANSCEIVER_A0_SIZE + i2c.offset; memcpy([0], _vpd_dump_buffer[offset], i2c.len); ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r355983 - stable/12/sys/dev/vnic
Author: markj Date: Sat Dec 21 16:16:43 2019 New Revision: 355983 URL: https://svnweb.freebsd.org/changeset/base/355983 Log: MFC r355887: vnic: Relax PHY node matching after r336281. PR: 242654 Modified: stable/12/sys/dev/vnic/thunder_bgx_fdt.c Directory Properties: stable/12/ (props changed) Modified: stable/12/sys/dev/vnic/thunder_bgx_fdt.c == --- stable/12/sys/dev/vnic/thunder_bgx_fdt.cSat Dec 21 16:08:34 2019 (r355982) +++ stable/12/sys/dev/vnic/thunder_bgx_fdt.cSat Dec 21 16:16:43 2019 (r355983) @@ -35,6 +35,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -151,6 +152,7 @@ bgx_fdt_phy_name_match(struct bgx *bgx, char *phy_name { const char *type; ssize_t sz; + char last; switch (bgx->qlm_mode) { case QLM_MODE_SGMII: @@ -193,10 +195,11 @@ bgx_fdt_phy_name_match(struct bgx *bgx, char *phy_name if (sz > size) return (FALSE); - if (strncmp(phy_name, type, sz - 1) == 0 && - (phy_name[sz - 1] == '\0' || phy_name[sz - 1] == '@')) - return (TRUE); - + if (strncmp(phy_name, type, sz - 1) == 0) { + last = phy_name[sz - 1]; + if (last == '\0' || last == '@' || isdigit(last)) + return (TRUE); + } return (FALSE); } ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r355982 - stable/12/lib/geom/part
Author: markj Date: Sat Dec 21 16:08:34 2019 New Revision: 355982 URL: https://svnweb.freebsd.org/changeset/base/355982 Log: MFC r354824: Fix grammar in gpart.8. PR: 241973 Modified: stable/12/lib/geom/part/gpart.8 Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/geom/part/gpart.8 == --- stable/12/lib/geom/part/gpart.8 Sat Dec 21 15:33:19 2019 (r355981) +++ stable/12/lib/geom/part/gpart.8 Sat Dec 21 16:08:34 2019 (r355982) @@ -695,7 +695,7 @@ for APM, for GPT, and 0x0904 for VTOC8. .El .Pp -Another symbolic names that can be used with +Other symbolic names that can be used with .Cm gpart utility are: .Bl -tag -width ".Cm dragonfly-disklabel64" ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r355981 - in stable/12: lib/libc/sys sys/kern
Author: kib Date: Sat Dec 21 15:33:19 2019 New Revision: 355981 URL: https://svnweb.freebsd.org/changeset/base/355981 Log: MFC r355500: Only return EPERM from kill(-pid) when no process was signalled. Modified: stable/12/lib/libc/sys/kill.2 stable/12/sys/kern/kern_sig.c Directory Properties: stable/12/ (props changed) Modified: stable/12/lib/libc/sys/kill.2 == --- stable/12/lib/libc/sys/kill.2 Sat Dec 21 11:38:48 2019 (r355980) +++ stable/12/lib/libc/sys/kill.2 Sat Dec 21 15:33:19 2019 (r355981) @@ -28,7 +28,7 @@ .\" @(#)kill.2 8.3 (Berkeley) 4/19/94 .\" $FreeBSD$ .\" -.Dd December 1, 2017 +.Dd December 1, 2019 .Dt KILL 2 .Os .Sh NAME @@ -105,12 +105,11 @@ process with ID 1 .Xr init 8 ) , and the process sending the signal. If the user is not the super user, the signal is sent to all processes -with the same uid as the user excluding the process sending the signal. +which the caller has permissions to, excluding the process sending the signal. No error is returned if any process could be signaled. .El .Pp -For compatibility with System V, -if the process number is negative but not -1, +If the process number is negative but not -1, the signal is sent to all processes whose process group ID is equal to the absolute value of the process number. This is a variant of @@ -134,7 +133,7 @@ No process or process group can be found corresponding .It Bq Er EPERM The sending process does not have permission to send .Va sig -to the receiving process. +to any receiving process. .El .Sh SEE ALSO .Xr getpgrp 2 , Modified: stable/12/sys/kern/kern_sig.c == --- stable/12/sys/kern/kern_sig.c Sat Dec 21 11:38:48 2019 (r355980) +++ stable/12/sys/kern/kern_sig.c Sat Dec 21 15:33:19 2019 (r355981) @@ -1679,6 +1679,36 @@ kern_sigaltstack(struct thread *td, stack_t *ss, stack return (0); } +struct killpg1_ctx { + struct thread *td; + ksiginfo_t *ksi; + int sig; + bool sent; + bool found; + int ret; +}; + +static void +killpg1_sendsig(struct proc *p, bool notself, struct killpg1_ctx *arg) +{ + int err; + + if (p->p_pid <= 1 || (p->p_flag & P_SYSTEM) != 0 || + (notself && p == arg->td->td_proc) || p->p_state == PRS_NEW) + return; + PROC_LOCK(p); + err = p_cansignal(arg->td, p, arg->sig); + if (err == 0 && arg->sig != 0) + pksignal(p, arg->sig, arg->ksi); + PROC_UNLOCK(p); + if (err != ESRCH) + arg->found = true; + if (err == 0) + arg->sent = true; + else if (arg->ret == 0 && err != ESRCH && err != EPERM) + arg->ret = err; +} + /* * Common code for kill process group/broadcast kill. * cp is calling process. @@ -1688,30 +1718,21 @@ killpg1(struct thread *td, int sig, int pgid, int all, { struct proc *p; struct pgrp *pgrp; - int err; - int ret; + struct killpg1_ctx arg; - ret = ESRCH; + arg.td = td; + arg.ksi = ksi; + arg.sig = sig; + arg.sent = false; + arg.found = false; + arg.ret = 0; if (all) { /* * broadcast */ sx_slock(_lock); FOREACH_PROC_IN_SYSTEM(p) { - if (p->p_pid <= 1 || p->p_flag & P_SYSTEM || - p == td->td_proc || p->p_state == PRS_NEW) { - continue; - } - PROC_LOCK(p); - err = p_cansignal(td, p, sig); - if (err == 0) { - if (sig) - pksignal(p, sig, ksi); - ret = err; - } - else if (ret == ESRCH) - ret = err; - PROC_UNLOCK(p); + killpg1_sendsig(p, true, ); } sx_sunlock(_lock); } else { @@ -1731,25 +1752,14 @@ killpg1(struct thread *td, int sig, int pgid, int all, } sx_sunlock(_lock); LIST_FOREACH(p, >pg_members, p_pglist) { - PROC_LOCK(p); - if (p->p_pid <= 1 || p->p_flag & P_SYSTEM || - p->p_state == PRS_NEW) { - PROC_UNLOCK(p); - continue; - } - err = p_cansignal(td, p, sig); - if (err == 0) { - if (sig) - pksignal(p, sig, ksi); - ret = err; - } -
Re: svn commit: r355978 - head/usr.bin/top
nice addition On Sat, 21 Dec 2019 06:03:21 +0100, Philip Paeps wrote: Author: philip Date: Sat Dec 21 05:03:21 2019 New Revision: 355978 URL: https://svnweb.freebsd.org/changeset/base/355978 Log: top: display battery capacity remaining Submitted by: Antranig Vartanian Reviewed by: imp, philip Differential Revision:https://reviews.freebsd.org/D22871 Modified: head/usr.bin/top/display.c head/usr.bin/top/display.h head/usr.bin/top/machine.c head/usr.bin/top/machine.h head/usr.bin/top/top.c Modified: head/usr.bin/top/display.c == --- head/usr.bin/top/display.c Sat Dec 21 04:44:17 2019(r355977) +++ head/usr.bin/top/display.c Sat Dec 21 05:03:21 2019(r355978) @@ -1322,6 +1322,15 @@ i_uptime(struct timeval *bt, time_t *tod) } } +void +i_battery(int nbat, int batt) +{ + + if (nbat > 0) { + printf("; battery: %d%%", batt); + } +} + #define SETUPBUFFER_MIN_SCREENWIDTH 80 #define SETUPBUFFER_REQUIRED_ADDBUFSIZ 2 Modified: head/usr.bin/top/display.h == --- head/usr.bin/top/display.h Sat Dec 21 04:44:17 2019(r355977) +++ head/usr.bin/top/display.h Sat Dec 21 05:03:21 2019(r355978) @@ -14,6 +14,7 @@ void i_header(const char *text); voiddisplay_header(int t); int display_init(struct statics *statics); voidi_arc(int *stats); +voidi_battery(int nbat, int batt); voidi_carc(int *stats); voidi_cpustates(int *states); voidi_loadave(int mpid, double *avenrun); Modified: head/usr.bin/top/machine.c == --- head/usr.bin/top/machine.c Sat Dec 21 04:44:17 2019(r355977) +++ head/usr.bin/top/machine.c Sat Dec 21 05:03:21 2019(r355978) @@ -211,6 +211,10 @@ static long *pcpu_cp_old; static long *pcpu_cp_diff; static int *pcpu_cpu_states; +/* Battery units and states */ +static int battery_units; +static int battery_life; + static int compare_swap(const void *a, const void *b); static int compare_jid(const void *a, const void *b); static int compare_pid(const void *a, const void *b); @@ -373,6 +377,12 @@ machine_init(struct statics *statics) pcpu_cpu_states = calloc(ncpus * CPUSTATES, sizeof(int)); statics->ncpus = ncpus; + /* Allocate state of battery units reported via ACPI. */ + battery_units = 0; + size = sizeof(int); + sysctlbyname("hw.acpi.battery.units", _units, , NULL, 0); + statics->nbatteries = battery_units; + update_layout(); /* all done! */ @@ -579,6 +589,12 @@ get_system_info(struct system_info *si) } else { si->boottime.tv_sec = -1; } + + battery_life = 0; + if (battery_units > 0) { + GETSYSCTL("hw.acpi.battery.life", battery_life); + } + si->battery = battery_life; } #define NOPROC ((void *)-1) Modified: head/usr.bin/top/machine.h == --- head/usr.bin/top/machine.h Sat Dec 21 04:44:17 2019(r355977) +++ head/usr.bin/top/machine.h Sat Dec 21 05:03:21 2019(r355978) @@ -30,6 +30,7 @@ struct statics const char * const *carc_names; const char * const *swap_names; const char * const *order_names; +int nbatteries; int ncpus; }; @@ -50,6 +51,7 @@ struct system_info int*carc; int*swap; struct timeval boottime; +intbattery; intncpus; }; Modified: head/usr.bin/top/top.c == --- head/usr.bin/top/top.c Sat Dec 21 04:44:17 2019(r355977) +++ head/usr.bin/top/top.c Sat Dec 21 05:03:21 2019(r355978) @@ -619,6 +619,9 @@ restart: (*d_loadave)(system_info.last_pid, system_info.load_avg); + /* display the battery info (if any) */ + i_battery(statics.nbatteries, system_info.battery); + /* display the current time */ /* this method of getting the time SHOULD be fairly portable */ time(_time); ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org" ___ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"
svn commit: r355980 - head/sys/contrib/ncsw/Peripherals/QM
Author: arrowd (ports committer) Date: Sat Dec 21 11:38:48 2019 New Revision: 355980 URL: https://svnweb.freebsd.org/changeset/base/355980 Log: Don't shift 32-bit value by more than 32 bits. PR: 207854 Approved by: emaste Modified: head/sys/contrib/ncsw/Peripherals/QM/qm_portal_fqr.c Modified: head/sys/contrib/ncsw/Peripherals/QM/qm_portal_fqr.c == --- head/sys/contrib/ncsw/Peripherals/QM/qm_portal_fqr.cSat Dec 21 07:38:14 2019(r355979) +++ head/sys/contrib/ncsw/Peripherals/QM/qm_portal_fqr.cSat Dec 21 11:38:48 2019(r355980) @@ -1468,7 +1468,7 @@ static t_Error CalcWredCurve(t_QmCgWredCurve *p_WredCu for (tmpA=(uint32_t)(64*pres) ; tmpA<128*pres; tmpA += pres ) for (tmpN=7 ; tmpN<64; tmpN++ ) { -tmp = ABS((int)(slope - tmpA/(1