IABSD.fr/src/sys

Branch :


Log

Author Commit Date CI Message
43389b15 2019-12-04 10:22:05 Convert infinite sleeps to {m,t}sleep_nsec(9). ok krw@, jca@
0f83bb56 2019-12-04 08:28:29 Fix a bad offset calculation in uvm_share. Syzkaller found a bug in uvm_share when using a vmd(8) mmap region with an offset that ended up making an overlap with a previous vmm(4) uvm_map range. This diff reworks the range and offset calculation in uvm_share. Only vmm(4) uses this, so there should be no visible effects outside vmm(4) environments. Syzkaller also went sorta crazy on this one, finding multiple reproducers for the same bug with just slightly different parameters, thus the multiple "Reported-by" lines below. ok stefan@, anton@ Reported-by: syzbot+2c625ab1b8e964da644a@syzkaller.appspotmail.com Reported-by: syzbot+1300829862412751462d@syzkaller.appspotmail.com Reported-by: syzbot+27cfad3394f34528cbec@syzkaller.appspotmail.com Reported-by: syzbot+3e700c5698177f91cce1@syzkaller.appspotmail.com
3c82c0b2 2019-12-04 08:17:30 Fix uvm_unmap_remove panic when tearing down VMs. Type confusion when tearing down a vmm(4) VM's vm_map led UVM to interpret the vm_map as a struct uvmspace, and occasionally fail. stefan@ pointed out the root cause a while back but I never had time to look at this until now. Syzkaller also found a reproducer for this, so the "Reported by" line below is a clue to let it know to close that bug. idea by, and ok stefan@ also ok anton@ Reported-by: syzbot+dbd6e2a7583e958e69f8@syzkaller.appspotmail.com
724ba685 2019-12-03 15:58:28 Check for expected mode sense page code as well as expected mode page length when constructing the pointer to the page data. Remove now unneeded DISK_PGCODE(). Usual misc whitespace/modernization tweaks to functions being modified.
c24e0dbc 2019-12-03 13:25:57 Add display of mode sense data to SCSIDEBUG.
fe6c337e 2019-12-03 09:17:20 Since device tree trip points might not be sorted, but our code expected a sorted list, do the sorting ourselves upon parsing the trip points. ok kurt@
572fa3f5 2019-12-03 09:12:45 Add pwmfan(4), a driver for PWM-regulated fans. ok kurt@
f1161a0c 2019-12-03 09:08:48 Add rkpwm(4), a driver for the RK3399's PWM controller. ok kurt@
8c9e697f 2019-12-03 09:08:04 Add support for the RK3399's PWM clock to rkclock(4). ok kurt@
7be7e9e8 2019-12-02 21:47:54 Revert "timeout(9): switch to tickless backend" It appears to have caused major performance regressions all over the network stack. Reported by bluhm@ ok deraadt@
c340ff09 2019-12-02 17:53:05 Have SCSIDEBUG show the number of bytes of VPD inquiry data received, not the number of bytes that were available in the buffer.
4213291d 2019-12-02 15:10:27 Don't forget the scsi_vpd_header when calculating the number of bytes obtained by scsi_inquire_vpd().
dfee912f 2019-12-02 15:02:32 Replace rwsleep(9) with rwsleep_nsec(9) in vfs_lockf.c. Prompted by and OK cheloha@ OK mpi@ anton@
5f80893c 2019-12-02 15:01:18 Remove now unneeded kernel locking from vfs_lockf.c. OK mpi@ anton@
88e0c25c 2019-12-02 14:01:26 Stop supporting UVM_FLAG_TRYLOCK in uvm_mapanon(), it is not used. ok tedu@, visa@
de168a12 2019-12-02 03:41:12 drm/i915/userptr: Try to acquire the page lock around set_page_dirty() From Chris Wilson e80e88ef6057c7947409bda9898387d25e54aaa9 in linux 4.19.y/4.19.87 2d691aeca4aecbb8d0414a777a46981a8e142b05 in mainline linux
7372f721 2019-12-02 03:38:13 drm/amd/powerplay: issue no PPSMC_MSG_GetCurrPkgPwr on unsupported ASICs From Evan Quan 8a67fbf6597122c4a5e2c48716bc441364357eef in linux 4.19.y/4.19.87 355d991cb6ff6ae76b5e28b8edae144124c730e4 in mainline linux
1c733b92 2019-12-02 02:24:29 tc_windup: separate timecounter.tc_freq_adj from timehands.th_adjustment We currently mix timecounter.tc_freq_adj and timehands.th_adjtimedelta in ntp_update_second() to produce timehands.th_adjustment, our net skew. But if you set a low enough adjfreq(2) adjustment you can freeze time. This prevents ntp_update_second() from running again. So even if you then set a sane adjfreq(2) you cannot unfreeze time without rebooting. If we just reread timecounter.tc_freq_adj every time we recompute timehands.th_scale we avoid this trap. visa@ notes that this is more costly than what we currently do but that the cost itself is negligible. Intuitively, timecounter.tc_freq_adj is a constant skew and should be handled separately from timehands.th_adjtimedelta, an adjustment that we chip away at very slowly. tedu@ notes that this problem is sort-of an argument for imposing range limits on adjfreq(2) inputs. He's right, but I think we should still separate the counter adjustment from the adjtime(2) adjustment, with or without range limits. ok visa@
1f267e12 2019-12-02 01:38:06 For 32 bit systems, cast the long long used by strtoll() to unsigned long and then a void * for calling the hexdump() operator with bluhm
487bdf4c 2019-12-01 21:14:13 Add sizes for free() in auvia(4). OK mpi@
baa28055 2019-12-01 21:12:42 Don't require a valid sa_len for a bunch of IPv4 "get" ioctls Same fix as for the IPv6 case. Fixes a regression in ports/net/openvpn spotted by landry@, ok bluhm@
11dfcec8 2019-12-01 18:17:31 comply with POSIX and make execve() return EACCES for directories ok millert@ deraadt@
d3956194 2019-12-01 16:56:26 Tweak variable names to be consistent with 'pg_code' and 'pg_length' field names in sense mode structs.
e41f21f1 2019-12-01 16:26:10 Make prototype and implementation signatures the same by removing 'const' from the only two 'const int' instances.
050be8af 2019-12-01 15:41:43 Don't overwrite original error returned by scsi_do_mode_sense().
29a5018d 2019-12-01 13:10:51 Change Elf64 types and structs to match the System V ABI specification. Change Elf64_Half from a uint32_t type to a uint16_t type. The size of structs do not change as the previous uses of Elf64_Half become Elf64_Word (uint32_t). Remove Elf64_Quarter as 16 bit values now use Elf64_Half. Replace Elf_Byte use with unsigned char. Change some uses of Elf64_Xword to Elf64_Addr (both uint64_t). Corrects behaviour with libelf where the file size of a symtab section came back as 26 not 24 as libelf determines this by the size of a the involved types not the size of the struct in exec_elf.h. As a result libelf's elf_getdata() returned ELF_E_SECTION due to the size of the section not being a multiple of the file size of the section type. This occurred with the new runtime linker for radeon shaders in Mesa 19.2. Sync description of Elf32 and Elf64 types in elf(5) with FreeBSD and adjust types in structs mentioned. ok guenther@ deraadt@
1e04c7f5 2019-12-01 10:25:50 revert exec_elf.h rev 1.85 committed by mistake as part of an unrelated change
76acbd8d 2019-12-01 04:49:29 this hexdump tie-in is incorrect, disable for now
5f5bc776 2019-12-01 03:48:48 Remove unused test program. OK deraadt@
de4d1739 2019-11-30 23:15:54 temporarily neuter the syscall-callfrom check as a few people haven't crossed over the ABI break as easily as expected.
30622bd4 2019-11-30 18:19:51 cardbus(4): tsleep(9) -> tsleep_nsec(9); ok jca@
a65b052c 2019-11-30 18:18:34 pckbc(4): tsleep(9) -> tsleep_nsec(9); ok jca@
8d8b9c74 2019-11-30 18:14:47 onewire(4), owtemp(4): tsleep(9) -> tsleep_nsec(9); ok jca@
a047a98b 2019-11-30 18:12:18 utwitch(4): tsleep(9) -> tsleep_nsec(9); ok jca@
de60e918 2019-11-30 11:19:17 Move kernel locking inside the sleep machinery. This enables calling rwsleep(9) with PCATCH and rw_enter(9) with RW_INTR without the kernel lock. In addition, now tsleep(9) with PCATCH should be safe to use without the kernel lock if the sleep is purely time-based. Tested by anton@, cheloha@, chris@ OK anton@, cheloha@
4a353890 2019-11-29 22:34:09 Fix size of reserved bytes section in xsave header. ok guenther@ kettenis@
e91f82a5 2019-11-29 22:10:04 Add uvm_objfree function to free all pages in a uvm_obj in one go. Use this in the buffer cache to free all the pages from a buffer, resulting in a considerable speedup when throwing away pages from the buffer cache. Lots of work done with mlarkin and kettenis ok kettinis@ deraadt@
56d9df26 2019-11-29 22:06:19 Change the default security level for incoming IPsec flows from isakmpd and iked to REQUIRE. Filter policy violations earlier. ok sashan@ bluhm@
1ba4d8a2 2019-11-29 22:02:16 Improve support for the RK3399's eMMC in sdhc(4). Fix the compatible check for the quirk that makes sure we don't try to change the voltage to anything else. Configure the eMMC Core's clock, register ourselves as clock driver for rkemmcphy(4) to use, and enable the PHY. Tested by kurt@ ok kettenis@
a1ad9a59 2019-11-29 22:00:54 Add rkemmcphy(4), a driver for the RK3399's eMMC PHY.
b16010e4 2019-11-29 21:59:55 Make rkgrf(4) behave like a simplebus(4) so we can attach drivers to its subnodes, which are some PHYs. Tested by kurt@ ok kettenis@
162ad205 2019-11-29 21:58:31 Add support for the RK3399's eMMC clock to rkclock(4). Tested by kurt@ ok kettenis@
7a61db07 2019-11-29 21:32:04 Move p_sleeplocks and p_limit into the "zero on create" section of struct proc, so they don't need to be explicitly initialized in thread_new() suggested by anton@ ok kettenis@
7ac2b76b 2019-11-29 20:58:17 Eliminate the sketchy use of ps_mainproc here by making unveil_add_vnode() take a struct proc* instead of a struct process*, and vice versa making unveil_lookup() take a process* instead of a proc*. ok beck@
93448402 2019-11-29 20:53:13 Add an element to the marks array to store the virtual address of the entry point. ok mlarkin@, deraadt@
a8d1d9bf 2019-11-29 20:12:19 Move kcov(4)'s p_kd into the "zero on create" section to simplify fork code ok anton@
9a4c9b18 2019-11-29 18:32:40 Split out the code that removes a page from uvm objects and clears the flags into a separate uvm_pageclean() function and call it from uvm_pagefree(). ok mpi@, guenther@, beck@
da1bde4c 2019-11-29 17:47:10 Add missing retq to mds handler for knights landing. ok guenther@
ab0ea4a9 2019-11-29 16:41:01 add __func__ to panic() and printf() calls in sys/netinet6/* ok benno@ mortimer@
cdc0877d 2019-11-29 16:16:19 Pass the EFI memory map to the kernel. ok deraadt@
35e05388 2019-11-29 15:17:28 DISK_PGCODE() #define includes a check for NULL, so no need to do the same check before invoking it.
8e32f40d 2019-11-29 15:17:28 add missing parens around return expression and zap empty line
bc80a0d6 2019-11-29 15:15:10 Start protecting the pipe_busy field of struct pipe using a global rwlock. This lock is shared among all pipes for simplicity. In the future, the lock will probably be replaced with one lock per pipe pair, just like FreeBSD and NetBSD does. While here, extract the common rundown wakeup logic into a dedicated function. Thanks to cheloha@ for testing and feedback. ok mpi@ visa@
f82a5783 2019-11-29 14:06:21 Add defines for changer mode page codes. Move AUDIO_PAGE define to nestle amoung its friends.
c2f2064a 2019-11-29 12:50:48 timeout(9): make CIRCQ look more like other sys/queue.h data structures - CIRCQ_APPEND -> CIRCQ_CONCAT - Flip argument order of CIRCQ_INSERT to match e.g. TAILQ_INSERT_TAIL - CIRCQ_INSERT -> CIRCQ_INSERT_TAIL - Add CIRCQ_FOREACH, use it in ddb(4) when printing buckets - While here, use tabs for indentation like we do with other macros ok visa@
6ea2c94d 2019-11-29 12:43:14 Return EBUSY for successive PT_TRACE_ME calls. Match FreeBSD and NetBSD. ok bluhm@, deraadt@, kettenis@
712068a3 2019-11-29 12:41:33 Use RW_PROC() consistently. Suggested by and ok sashan@
e5041725 2019-11-29 06:34:44 Repurpose the "syscalls must be on a writeable page" mechanism to enforce a new policy: system calls must be in pre-registered regions. We have discussed more strict checks than this, but none satisfy the cost/benefit based upon our understanding of attack methods, anyways let's see what the next iteration looks like. This is intended to harden (translation: attackers must put extra effort into attacking) against a mixture of W^X failures and JIT bugs which allow syscall misinterpretation, especially in environments with polymorphic-instruction/variable-sized instructions. It fits in a bit with libc/libcrypto/ld.so random relink on boot and no-restart-at-crash behaviour, particularily for remote problems. Less effective once on-host since someone the libraries can be read. For static-executables the kernel registers the main program's PIE-mapped exec section valid, as well as the randomly-placed sigtramp page. For dynamic executables ELF ld.so's exec segment is also labelled valid; ld.so then has enough information to register libc's exec section as valid via call-once msyscall(2) For dynamic binaries, we continue to to permit the main program exec segment because "go" (and potentially a few other applications) have embedded system calls in the main program. Hopefully at least go gets fixed soon. We declare the concept of embedded syscalls a bad idea for numerous reasons, as we notice the ecosystem has many of static-syscall-in-base-binary which are dynamically linked against libraries which in turn use libc, which contains another set of syscall stubs. We've been concerned about adding even one additional syscall entry point... but go's approach tends to double the entry-point attack surface. This was started at a nano-hackathon in Bob Beck's basement 2 weeks ago during a long discussion with mortimer trying to hide from the SSL scream-conversations, and finished in more comfortable circumstances next to a wood-stove at Elk Lakes cabin with UVM scream-conversations. ok guenther kettenis mortimer, lots of feedback from others conversations about go with jsing tb sthen
f4ae6ec7 2019-11-29 06:19:07 drm_sched_entity_flush() doesn't care about specific threads, so just track the process (and not the original thread of the process). ok jsg@ kettenis@
cdcc14ba 2019-11-29 01:04:08 Re commit what was committed in version 1.43 with a fix added to ensure we handle the uvm_objects of bread_cluster buffers correctly. Original commit message: Fix the buffer cache code to not use a giant uvm obj of all pages when a small one on each buf is all that is needed. reduces the cost of large frees by about 25%. Again, lots of assistence from kettenis and mlarkin still ok kettenis@
ff47d6a1 2019-11-28 23:42:52 uvm_pagealloc_contig() doesn't exist and shouldn't exist ok kettenis@
a2e73b2f 2019-11-28 21:49:41 On short transfers with multiple TRBs in a TD we get two events. One on the TRB that went short, and one for the last TRB in a TD. We already set actlen only once so that the last TRB in a TD does not override it, but some controllers throw another short event instead of a success event, so we have to add the same check there as well. ok gerhard@ mglocker@
ac15d0f2 2019-11-28 18:29:49 back out the buffer cache uvm_obj change for now. the bread_cluster code has confused even me and mark, we need to handle the buffer slice and dice case better for bread_cluster.
577d7b69 2019-11-28 17:25:59 Abstract mode sense block descriptor parsing into a separate function.
b8018269 2019-11-28 17:19:22 Remove end of line whitespace. No code change.
7733df1a 2019-11-28 16:41:07 Align an annoying comment.
944c98ad 2019-11-28 16:27:35 Always pass a pointer to 'big' to scsi_do_mode_sense(). Sets up some simplifications.
610978bc 2019-11-28 16:23:11 Delete km_mapblocks from kmemstats and its always-zero column from the ddb "show malloc" output ok deraadt@ mpi@
29844f7b 2019-11-28 16:05:25 Fix panic noticed by bluhm@ and florian@. bp->b_pobj is used to determine if the buffer has pages to free. we have to set this pointer only after we could sleep allocating pages. setting it before creates the potential for a race to free us while we are sleeping ok kettenis@
7818322e 2019-11-28 04:34:50 struct execsw's es_emul is no longer used, so delete it ok deraadt@
ff9f3f5a 2019-11-28 02:30:38 Fix the buffer cache code to not use a giant uvm obj of all pages when a small one on each buf is all that is needed. reduces the cost of large frees by about 25%. ok kettenis@
8718e781 2019-11-28 00:50:41 Although ifconfig(8) checks it already, enforce contiguous inet netmask in the kernel. OK visa@
3fbdbb31 2019-11-28 00:17:10 Implement a hexdump command in the boot loader. This helps to inspect the memory layout that the firmware has created. It is especially useful for UEFI debugging. OK deraadt@ kettenis@
1ddba21a 2019-11-27 17:59:13 use correct forward type declaration from uvm. ok kettenis@
c74ea871 2019-11-27 17:37:32 OpenFlow 1.3 defines packet header patterns of interest using TLVs (OXMs) that represent various header fields. One place where OXMs are used is in the sef_field action, which contains one OXM representing the header field to set, followed by padding to align the action in the OpenFlow message to 64 bits. Currently, we assume that a set_field action can contain multiple OXMs and that they do not need to be padded. This matches the way we handle OpenFlow messages that contain set_field actions so that we follow the specs. OK ori claudio
3fdbdb47 2019-11-27 16:39:33 Reinstate monitor mode support in iwm(4). Monitor mode depends on support for multiple frames per Rx buffer.
77a1bf1f 2019-11-27 16:34:36 Add support for Rx buffers containing multiple frames to iwm(4), again. Tested by florian on 7260, claudio and myself on 8265, and mlarkin on 9560. This time even florian's 7260 device seems to be happy. ok claudio@
f62e8f74 2019-11-27 16:12:13 Re-enable IO_NOCACHE, and use is in vnd. Ensure that io to a file backing a vnd is IO_SYNC, so IO to a vnd device is both synchronous and not cached in the buffer cache. This allows the "mount" regress to work repeatably, and avoids a situation where when the buffer cache cleaner runs to clear dirty buffers while people are waiting, it actually increases the dirty buffers when the writes to the underlying vnd are also delayed. ok bluhm@
a2ef69b7 2019-11-27 11:16:59 Convert infinite sleeps to tsleep_nsec(9). ok bluhm@
fe532db8 2019-11-27 01:13:03 sync
43981c52 2019-11-27 01:04:13 Add dummy msyscall(2) system call which is currently a noop. This will be used by kernel and ld.so in the near future. Adding the system call earlier will reduce the number of people who try to build through and encounter agony. ok kettenis guenther
bb907956 2019-11-26 23:04:28 When there is no network around the state timeout fires over and over again. Change the printf into a log and only under IFF_DEBUG to reduce dmesg spam. Loudly requested by beck@ OK deraadt@
56ce827e 2019-11-26 20:51:20 Reinitialize 'err' to ensure we are not checking a stale value. Discovered by and ok tim@
ac47be6b 2019-11-26 20:48:03 Don't zero existing values for density, block_count and block_size in scsi_do_mode_sense(). Just update the values when valid data is available. Initialize the variables passed to scsi_do_mode_sense() in the one instance where they weren't already set. Fixes issue with softraid crypto volumes on 4K-sector disks. Found, fix tested, and ok tim@
ad87be15 2019-11-26 19:57:52 Use proper NUL byte not zero with strings No object change OK sashan
80968ff8 2019-11-26 19:08:01 Several functions expect that bootdev_dip is not NULL and can be dereferenced. But there is no boot disk when EFI bootloader has been received via TFPT. Fake a disk info that never maches a real disk. Fixes a hang in run_loadfile() during HP Elitebook UEFI boot. OK patrick@
f6949e64 2019-11-26 18:50:29 fix kernel crash in pf_ioctl with WITH_PF_LOCK and NET_TASKQ > 1 the problem was introduced with a "mechanical" patch, which replaced all "breaks;" with "PF_UNLOCK(); break;" This is wrong for case of DIOCGETRULESETS. issue analyzed and patch created by Joerg Goltermann <jg@osn.de> OK tb@
6f9573e7 2019-11-26 18:23:48 Fix a panic string that had the wrong function name and an improperly wrapped line. No code change.
63229b9f 2019-11-26 18:19:40 Fix a bunch of lines that had trailing whitespace. No code change.
8c2c375c 2019-11-26 17:16:19 Fix previous: Don't use an uninitialized variable in iwm_rx_frame().
f8e2c642 2019-11-26 16:14:45 Eliminate some code duplication in iwm(4) 7k/8k vs. 9k Rx code paths. Tested by mlarkin@ on 9560 and myself on 8265. ok mlarkin@
4b479330 2019-11-26 15:27:08 timeout(9): switch to tickless backend Rebase the timeout wheel on the system uptime clock. Timeouts are now set to run at or after an absolute time as returned by nanouptime(9). Timeouts are thus "tickless": they expire at a real time on that clock instead of at a particular value of the global "ticks" variable. To facilitate this change the timeout struct's .to_time member becomes a timespec. Hashing timeouts into a bucket on the wheel changes slightly: we build a 32-bit hash with 25 bits of seconds (.tv_sec) and 7 bits of subseconds (.tv_nsec). 7 bits of subseconds means the width of the lowest wheel level is now 2 seconds on all platforms and each bucket in that lowest level corresponds to 1/128 seconds on the uptime clock. These values were chosen to closely align with the current 100hz hardclock(9) typical on almost all of our platforms. At 100hz a bucket is currently ~1/100 seconds wide on the lowest level and the lowest level itself is ~2.56 seconds wide. Not a huge change, but a change nonetheless. Because a bucket no longer corresponds to a single tick more than one bucket may be dumped during an average timeout_hardclock_update() call. On 100hz platforms you now dump ~2 buckets. On 64hz machines (sh) you dump ~4 buckets. On 1024hz machines (alpha) you dump only 1 bucket, but you are doing extra work in softclock() to reschedule timeouts that aren't due yet. To avoid changing current behavior all timeout_add*(9) interfaces convert their timeout interval into ticks, compute an equivalent timespec interval, and then add that interval to the timestamp of the most recent timeout_hardclock_update() call to determine an absolute deadline. So all current timeouts still "use" ticks, but the ticks are faked in the timeout layer. A new interface, timeout_at_ts(9), is introduced here to bypass this backwardly compatible behavior. It will be used in subsequent diffs to add absolute timeout support for userland and to clean up some of the messier parts of kernel timekeeping, especially at the syscall layer. Because timeouts are based against the uptime clock they are subject to NTP adjustment via adjtime(2) and adjfreq(2). Unless you have a crazy adjfreq(2) adjustment set this will not change the expiration behavior of your timeouts. Tons of design feedback from mpi@, visa@, guenther@, and kettenis@. Additional amd64 testing from anton@ and visa@. Octeon testing from visa@. macppc testing from me. Positive feedback from deraadt@, ok visa@
30289eba 2019-11-26 07:37:50 Add support for MSI-X. MSI-X allows establishing a number of interrupt vectors and mapping events (RX on queues, commands, mgmt frames) to those vectors. For now we keep the existing behaviour, establish a single vector and map all events to it. Makes my Intel NUC 8i5BEH 9560 work Tested by jcs@ on a 9560 (w/ MSI-X) Tested by deraadt@ on a 9260 (w/ MSI-X) Tested by phessler@ on a 8260 (w/o MSI-X) ok stsp@
b73522d5 2019-11-26 06:23:30 s/sc_arpcom/sc_ac/ to be consistent with other drivers. no functional change
bf3c3252 2019-11-26 05:39:11 vmm(4): fix pvclock accuracy issues Shift math error discovered by George Koehler. Also, fix the error in tsc multiplier which was correct only if the host timecounter was tsc. ok mlarkin@
e0c20608 2019-11-26 04:03:48 use "sc" as the name of tun_softc variables, not "tp". this makes the driver more like the rest of the tree. no functional change.
a317344c 2019-11-26 02:20:50 When deciding if a pci device is 'primary' test if the efi fb memory range is contained in a pci bar instead of only testing if the start address of the efi fb is non zero. Corrects a problem reported by Brennan Vincent on a Dell XPS 9575 with amdgpu and inteldrm booted via efi. amdgpu would wrongly decide it was primary on probe and as a result when encountering an unrelated error efifb would reattach when amdgpu detached. When inteldrm would latter attach an assert would trigger as efifb had already claimed the console. ok kettenis@
5f0b500e 2019-11-26 00:36:32 Compute RSSI on 9k iwm(4) devices in the same way we do for previous hardware generations. Fixes spurious > 100% signal strength values. reported by and ok mlarkin@
0eff3f09 2019-11-26 00:26:36 Don't use LOCKPARENT on namei calls for realpath(). We don't require this anymore since we now behave like posix. Fixes a problem where a symlink to / would return ENOTDIR because the parent could not be locked - noticed by Raimo Niskanen <raimo@erlang.org> ok guenther@ deraadt@
b1c28262 2019-11-25 17:48:31 Use scsi_read_cap[10|16] instead of re-rolling the code. More careful initialization, better error/debug messages.