summaryrefslogtreecommitdiff
path: root/sys
AgeCommit message (Collapse)Author
2015-06-09Remove the hack to check if the received pointer has changed in an ifihMartin Pieuchot
now that all drivers and pseudo-drivers are using if_input(). if_input() is reentrant and is now the only place where we set `rcvif'.
2015-06-09Convert trunk(4) to if_input().Martin Pieuchot
ok dlg@
2015-06-08More damned eye searing whitespace. No change to .o files.Kenneth R Westerback
2015-06-08enable agtimer on the ramdisk as wellJonathan Gray
2015-06-08At some point arm moved to a unified syntax for arm and thumb instructions.Jonathan Gray
While binutils supports both "unified" and "divided" syntax (defaulting to divided) the integrated assembler in clang only supports unified names so switch some files to unified syntax. Similiar changes were made in bitrig and freebsd. No difference in objdump -d output. tested on zaurus by deraadt@, ok miod@
2015-06-08Merge multiple copies of the code doing VLAN tag insertion back intoMartin Pieuchot
vlan_start(). ok sthen@, phessler@
2015-06-08Move carp-related logic from ether_output() into carp_start().Martin Pieuchot
ok sthen@, phessler@
2015-06-08rearrange delayed_work to avoid the use of container_of while leaving it inJonathan Matthew
more or less the same shape. ok uebayasi@
2015-06-08pms(4): Don't match Elantech v4 devices with firmware versions 0xX7XXXX.Stefan Sperling
Apparently we don't support these touchpads properly so leave them in PS/2 compat mode. Regression reported by Remi Locherer on bugs@. And stop matching devices with firmware versions higher than 0xX8XXXX since we cannot be sure they work. ok mpi@
2015-06-08Add initial support for the ARM Versatile Express boards as emulated byJonathan Gray
qemu with virtio memory ranges. Unfortunately the vexpress-a9 and vexpress-a15 boards/targets have different load addresses and memory maps. Code for the PL011 UART and mmio virtio attachment from Patrick Wildt in bitrig.
2015-06-08refuse to do polled isochronous transfers, as other usb controller drivers doJonathan Matthew
requested by mpi@
2015-06-08Ensure polled bulk, control and interrupt transfers actually poll, fixingJonathan Matthew
panics on shutdown with various usb sticks. ok mpi@
2015-06-07The Swiss Federal Government decided to shut down HBG at the end of 2011.Claudio Jeker
On 6 September 2012 at 12:02:00 UTC both antenna towers were demolished by controlled explosives. So this is not coming back and we can tedu the support for HBG form the DCF77 drivers. Remided by mbalmer
2015-06-07More damned eye searing whitespace.Kenneth R Westerback
2015-06-07Initial exynos4 bits. Among other things the gic isn't mapped correctlyJonathan Gray
on exynos4/5 yet as it isn't at the usual offset from periphbase. ok bmercer@
2015-06-07Add a default panic case to a switch statement where code after assumesJonathan Gray
one of the cases was reached. Matches other parts of the mpbios code.
2015-06-07Introduce unhandled_af() for cases where code conditionally doesJonathan Gray
something based on an address family and later assumes one of the paths was taken. This was initially just calls to panic until guenther suggested a function to reduce the amount of strings needed. This reduces the amount of noise with static analysers and acts as a sanity check. ok guenther@ bluhm@
2015-06-07mark the usb hci driver pci glue code as only needed by the pci attachment,David Gwynne
not all usb controllers. this lets jsg build ehci on a platform that lacks a pci bus. ok jsg@
2015-06-07Add CR4_FSGSBASEPhilip Guenther
2015-06-07Enable use of mwait in non-MP boxes and report # of C-substates up to C7,Philip Guenther
truncating trailing zeros. Testing by many as part of a larger change to use ACPI _CST objects ok krw@
2015-06-07Replace a bunch of == 0 with == NULL in pointer tests. Nuke someKenneth R Westerback
annoying trailing, leading and embedded whitespace. No change to .o files. ok deraadt@
2015-06-06Add some changes from Patrick Wildt in bitrig that are required to makeJonathan Gray
the qemu cortex a15 useable without trustzone. Establish the interrupt for the non-secure physical timer (30), in addition to the secure physical timer (29). Stop masking the timer output signal in the interrupt handler.
2015-06-06Enable rtwn(4) on RAMDISK_CD kernels for upgrades. ok deraadtStefan Sperling
2015-06-06Put the link-layer address back into the gateway field of RTF_LOCALMartin Pieuchot
routes. Since such routes are also flagged with RTF_LLINFO various code path assume correctly that they contain valid ARP or ND information. This fixes the "arpresolve: unresolved and rt_expire == 0" issue reported on tech@ by mxb <mxb AT alumni DOT chalmers DOT se>. ok claudio@, phessler@
2015-06-05Try harder to avoid (very unlikely) NULL pointer de-ref by tweakingKenneth R Westerback
code to use sotopf() like tcp_usrreq() does. Also following tcp_usrreq(), put more stuff under splsoftnet. And as a result in-line code in udp_detach() and nuke udp_detach(). Most ideas from and ok mikeb@
2015-06-05And ... more discussion occurs between miod and kettenis aboutTheo de Raadt
what register dance copyerr should do.....
2015-06-05And part 2 of the onfault repair. Do the actual clearing of pcb_onfaultTheo de Raadt
in copyerr itself, like other architectures of this type do. as a result of chatter between miod and kettenis
2015-06-05Missing no-pie logic for bootblocks.Miod Vallat
2015-06-05Do not unconditionally clear pcb_onfault after a uvm_fault. That willTheo de Raadt
permit the active copyout/copyin to continue work on subsequent faulting pages and not misinterpret & fault them as kernel bcopy against userland addresses. Old bug -- fall of 1996. This should fix getentropy issues on MP systems which have become more apparent recently, probably due to some combo of increased ASLR with unlocked getentropy happening very soon after vfork/fork... ok miod
2015-06-05these days, curproc is never NULL, so skip those checks.Theo de Raadt
Discussed with kettenis
2015-06-05trunc_page() generally.... succeeds at clearing the page offsetTheo de Raadt
bits the first time it is called, so don't do it again. ok miod
2015-06-05These days p->p_addr will never be NULL.Mark Kettenis
ok deraadt@
2015-06-05Improve error handling and recovery during state insertionMike Belopuhov
Reshuffle the code around a bit and greatly improve error handling fixing a few bugs along the way. Problem reported by and fix was written with Alexandr Nedvedicky. OK henning
2015-06-05Add bits missed in previous... I suck at cvs.Martin Pieuchot
2015-06-05Put spaces and commas where they belong.Martin Pieuchot
2015-06-05Finally protect VP lookups to guarantee that a pted won't be freed orMartin Pieuchot
reused by a CPU while another CPU is manipulating it. This races occurs because the virtual spill handlers are run without taking the KERNEL_LOCK for obvious reasons. So use a per-pmap mutex that CPUs must hold when modifying a pted in order to guarantee the atomicity of operations *and* the coherence between pmap VPs tree and what's in the HASH. Thanks to dlg@ for assisting me debugging this. This change ends your PowerPC pmap SMP show of the week. GENERIC.MP on macppc should now be stable enough to build ports without corrupting its own memory. ok kettenis@, deraadt@, dlg@
2015-06-05Don't try to be clever when unrolling the loop in pmap_remove().Martin Pieuchot
Needed for upcoming locking.
2015-06-05Replace the per-entry locks by a global HASH lock.Martin Pieuchot
Since this lock is recursive we can now guarantee the atomicity of pte_inser{32,64}() when a pted has to be removed first. This fixes one of the races. Using a __mp_lock here also allowed dlg@ to provide me useful traces to fix the next race. Thanks for your help! ok kettenis@, deraadt@, dlg@
2015-06-05Call pte_spill_v() from the real mode fault handler instead of rerollingMartin Pieuchot
it. This will reduce the number of places to audit for locking. Note that for profiling purposes pte_spill_v() is now marked a __noprof since per-CPU profiling buffers are not guaranteed to be 1:1 mapped and cannot be accessed from the real mode fault handler. ok kettenis@, deraadt@, dlg@
2015-06-05Rewrite PTE manipulation routines to better match the PEM.Martin Pieuchot
Document every operation, make sure to call "sync" when appropriate so that other CPUs see the bit changes and finally grab a lock where it was missing to grantee atomicity. ok kettenis@, deraadt@, dlg@
2015-06-05Split pteclrbits() into pmap_{test,clear}_attrs().Martin Pieuchot
This should not introduce any behavior change but makes the code easier to read and later easier to protect. This also brings this pmap closer to what others do. Thanks to kettenis@ for spotting a bad typo! ok kettenis@, deraadt@, dlg@
2015-06-05More usages of pmap_ptedinhash().Martin Pieuchot
If you wonder why pte_insert{32,64}() is not using pmap_hash_remove() if it finds a conflicting PTE in the HASH, it's because in the current state trying to grab the same lock a second time would lead to a deadlock. This is much easier to reproduce on G5 (or G4 with BAT disabled). ok kettenis@, deraadt@, dlg@
2015-06-05Remove DEBUG stuff.Martin Pieuchot
2015-06-05Make use of ptesr() instead of rerolling it.Martin Pieuchot
2015-06-05Merge various copies of the same code into a new function to determineMartin Pieuchot
if a PTE is present in the HASH. Note that atomicity is currently not guaranteed between this check and the following operations. ok kettenis@, deraadt@, dlg@
2015-06-05Introduce pmap_pted_ro() a simple wrapper for the 32/64 bits versionsMartin Pieuchot
that does not call pmap_vp_lookup(). Carreful readers would have notice the removal of the bits on the virtual address with a page mask, this change allows me to find the 13 years old bug fixed in r1.145. ok kettenis@, deraadt@, dlg@
2015-06-05Do only one VP lookup when removing a page.Martin Pieuchot
This simplify pmap_remove() & friends by re-using an already fetched PTE descriptor. There's currently a race on MP system where one CPU can reuse a pted while another one is still trying to insert it in the HASH. This commit starts reducing the number of pmap_vp_lookup() calls to help fix this race. ok kettenis@, deraadt@, dlg@
2015-06-05Remove the MANAGED flag when removing a PV entry.Martin Pieuchot
Even if this change is not strickly needed, because the memory will be returned to the pool it helped me track the use-after-free.
2015-06-05Remove unneeded splvm() calls and the pool_setipl(9) hack of r1.140.Martin Pieuchot
By instructing spl(9) calls on MP machines I figured out that their high cost was hiding a race condition involving PTE reuse in our pmap. Thanks to deraadt@ for finding a way to trigger such panic by adding a couple of splvm(). This should make the races easier to trigger but will be addressed shortly. This commit starts your PowerPC pmap SMP show of the week. ok kettenis@, deraadt@, dlg@
2015-06-05Use p15 for the coprocessor name not 15. gas accepts both forms, clangJonathan Gray
won't accept just a number which a comment in the gas code mentions is for backward compatibility.