acpi: Narrow workaround for broken interrupt settingsCommit ad52dd3206 ("Sync acpi_resource with FreeBSD") introduced aworkaround for some broken BIOSes that specified active-lo instead ofactive-
acpi: Narrow workaround for broken interrupt settingsCommit ad52dd3206 ("Sync acpi_resource with FreeBSD") introduced aworkaround for some broken BIOSes that specified active-lo instead ofactive-hi polarity for ISA IRQs for UARTs. The workaround assumed thatedge-sensitive ISA IRQs on x86 should always be active-hi. However,some recent AMD systems actually use active-lo edge-sensitive ISA IRQs(and not just for UARTs, but also for the keyboard and PS/2 mousedevices) and the override causes interrupts to be dropped resulting inboot time hangs, non-working keyboards, etc.Add a hw.acpi.override_isa_irq_polarity tunable (readable as a sysctlpost-boot) to control this quirk. It can be set to 1 to force enablethe override and 0 to disable it. The log of FreeBSD-PR (see below)mentions an Intel motherboard as the sample case, so default thetunable to 1 on systems with an Intel CPU and 0 otherwise.Special thanks to Matthias Lanter <freebsd@lanter-it.ch> for trackingdown boot time issues on recent AMD systems to mismatched interruptpolarity.Taken-from: FreeBSD [1]FreeBSD-PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=270707[1]: https://github.com/freebsd/freebsd-src/commit/0a34d050ae8ea14feddd3d2a62fd2f612613b2c5
show more ...
objcache(9): Remove the unused ocflag arg from objcache_reclaimlist()
kernel/acpi: Improve an error message a bit.
kernel/acpica: Clean up the module's .PATH a little bit more.
kernel/acpica: Remove some unneeded -I and .PATH from the Makefile.
kernel: Rename BUILDING_WITH_KERNEL to KERNBUILDDIR.Fits better with e.g. KERNCONFDIR.Add a small paragraph in kmod.mk which was taken from FreeBSD.
kernel/acpi: Remove the never used ACPI_NO_SEMAPHORES kernel option.
kernel/acpi: Remove bogus checks for < 0 of unsigned variables.
kernel/acpi: Fix some implementation specific shifting of signed ints.All these are stored as unsigned.
kernel/acpi: Remove an unused struct definition.
kernel/acpi: Remove unneeded bus number check.pcib_get_bus() never fails. Parent is pcib, so the bus number will bevalid.
kernel/acpi: Remove two redundant initializations.
kernel/acpi: Remove redundant NULL check.AcpiGetObjectInfo() returned AE_OK and adinfo has already beendereferenced at this point.
kernel: Staticize some variables in platform/pc64.Also, remove some unused variables and move some extern declarationsto header files.
kernel - Refactor sysclock_t from 32 to 64 bits* Refactor the core cpu timer API, changing sysclock_t from 32 to 64 bits. Provide a full 64-bit count from all sources.* Implement muldivu64() u
kernel - Refactor sysclock_t from 32 to 64 bits* Refactor the core cpu timer API, changing sysclock_t from 32 to 64 bits. Provide a full 64-bit count from all sources.* Implement muldivu64() using gcc's 128-bit integer type. This functions takes three 64-bit valus, performs (a * b) / d using a 128-bit intermediate calculation, and returns a 64-bit result. Change all timer scaling functions to use this function which effectively gives systimers the capability of handling any timeout that fits 64 bits for the timer's resolution.* Remove TSC frequency scaling, it is no longer needed. The TSC timer is now used at its full resolution.* Use atomic_fcmpset_long() instead of a clock spinlock when updating the msb bits for hardware timer sources less than 64 bits wide.* Properly recalculate existing systimers when the clock source is changed. Existing systimers were not being recalculated, leading to the system failing to boot when time sources had radically different clock frequencies.
kernel: avoid possible sysctl integer overflow in acpi_thinkpad(4)
kernel/acpi: sync acpi_thinkpad with FreeBSD acpi_ibmNote: sysctl(8) variables hw.acpi.thinkpad.* have moved to dev.acpi_thinkpad.0.*Discussed with: Sascha WildnerReviewed and tested by: D
kernel/acpi: sync acpi_thinkpad with FreeBSD acpi_ibmNote: sysctl(8) variables hw.acpi.thinkpad.* have moved to dev.acpi_thinkpad.0.*Discussed with: Sascha WildnerReviewed and tested by: Daniel Fojt
Revert "Remove unneeded *_if.c from SRCS in kernel module Makefiles that have it."This reverts commit 99bd8089615e30757d8327c0a5afe0b8fe69d337.Oops, this seems to have broken a few things after a
Revert "Remove unneeded *_if.c from SRCS in kernel module Makefiles that have it."This reverts commit 99bd8089615e30757d8327c0a5afe0b8fe69d337.Oops, this seems to have broken a few things after all. I'll investigate better.Reported-by: Peeter Must
Remove unneeded *_if.c from SRCS in kernel module Makefiles that have it.Those are always compiled into the kernel, per NORMAL_M in kern.pre.mk,so they don't need to be in a module's SRCS. This re
Remove unneeded *_if.c from SRCS in kernel module Makefiles that have it.Those are always compiled into the kernel, per NORMAL_M in kern.pre.mk,so they don't need to be in a module's SRCS. This removes the few caseswhere they were added by mistake.
acpi/pstate: Be lenient about the invalid PPC.If the PPC is invalid, just start from the first P-state, whichnormally has the highest frequency.
kernel/acpi: Fix debug.acpi.allow_method_calls functionality.Adding SMAP (Supervisor Mode Access Protection) support back in May(see 48c77f2b85f9ed807532e99b7187e6f5b5aa2975) caused it to (correct
kernel/acpi: Fix debug.acpi.allow_method_calls functionality.Adding SMAP (Supervisor Mode Access Protection) support back in May(see 48c77f2b85f9ed807532e99b7187e6f5b5aa2975) caused it to (correctly)panic on certain machines, such as the Dell XPS 9560, due to trying touse a userspace pointer from the kernel.FreeBSD has since fixed this in their sysutils/acpi_call port. Thiscommit pulls in these changes.See https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=230993 for theFreeBSD PR.Submitted-by: Khamba Staring <qdk at quickdekay.net>
<sys/objcache.h>: Switch to lighter <sys/_malloc.h> header. Exposing "struct malloc_type" internals is useful even under kernel structures namespace. In vmstat(8) this will allow to drop dependenc
<sys/objcache.h>: Switch to lighter <sys/_malloc.h> header. Exposing "struct malloc_type" internals is useful even under kernel structures namespace. In vmstat(8) this will allow to drop dependency on the <sys/malloc.h> header.
world/kernel: Use the rounddown() macro in various places.Tested-by: zrj
<sys/time.h>: Add 3rd arg to timespecadd()/sub() and make them public.* Switch to the three argument versions of the timespecadd() and timespecsub() macros. These are now the predominant ones. Fr
<sys/time.h>: Add 3rd arg to timespecadd()/sub() and make them public.* Switch to the three argument versions of the timespecadd() and timespecsub() macros. These are now the predominant ones. FreeBSD, OpenBSD, NetBSD, and Solaris (albeit only for the kernel) have them.* Make those macros public too. This allows for a number of cleanups where they were defined locally.Pointed-out-by: zrjReviewed-by: dillon
kernel/acpi_ec: Document sysctls better.
12345678910>>...12