In rtcache_lookup2(), use the return values of rtcache_validate()
and _rtcache_init() instead of looking at _ro_rt. Also, check the
return code of rtcache_setdst() for an error.
code and then a single line adjusted to make it look identical to the
openbsd sparc64 version, who provided inspiration for this.
NOTE: not really tested yet with a real device, but, it can't really
be worse than panic() in a device mmap()...
We can't use IF_PURGE here because m_pkthdr.rcvif have here a special meaning :
it holds ieee80211_node to which the management frame should be sent and the
node has its reference count bumped.
Introduce ieee80211_drain_ifq which release the node before freeing the mbuf.
Use it instead of IF_PURGE.
From DragonflyBSD
When switching from SVC32->UND32 to read/write R13_und we don't need to clear
the mode bits as:
PSR_SVC32_MODE | PSR_UND32_MODE = PSR_UND32_MODE
While reading the code I also noted that interrupts are enabled for most of
the function as pmap_switch returns with interrupts in the state they are on
entry. This appears to be different to what the code after pmap_switch
expects, in that the behaviour suggests they should be disabled.
Because of this I've made the writing of R13_und explicitly disable.
interupts as part of the mode switch.
This also means that the IRQenableALL call is now redundant as the
interrupts are already enabled.
XXX: it's not clear if arm_fpe_core_changecontext should be called with
interrupts disabled.
Remove unused items: IRQdisableALL, IRQenableALL & Lcpufuncs.
Tested on cats. lmbench shows no performance change.
the same struct work before workqueue(9) has internally started to work on
the task.
So to make sure that doesn't happen, provide a semaphore not to run the
workqueue multiple times. It might be clearer just skip using workqueue(9)
and use a thread for about everything, but oh well, I leave that to
someone else.
Now is@ can yank his USB-to-Ethernet adapter while the interface is up.
other funcs a switchframe needs to be a multiple of 8 bytes. Stash sp as
well in the switchframe to bump it to 24bytes.
Setup the switchframe appropriately in cpu_lwp_fork.
Remove savectx - nothing uses it.
All of this make gdb's life much easier when dealing with crash dumps and
live kernels.
Reviewd by chris.
had the potential to cause problems prior to 4.99.48 because it called into
the VM system without kernel_lock held.
XXX1 pmap_update() should be waiting for shootdown jobs to complete. It's
not clear how to do that because the shootdowns happen at IPL_VM.