- When waiting for a thread stack trace to be acquired, in some circumstances
it was possible for us to not re-acquire the Team lock before moving on to
parsing and writing out the information. This could potentially lead to race
conditions when retrieving some of the Team's data, and ultimately crashing
while writing out report data.
- Add missing error check in _DumpStackFrameMemory().
- Delete team data semaphore on exit.
As discussed on the ML the limitation of the gap between segments
imposed by this check is completely artifical and pointless.
Signed-off-by: Paweł Dziepak <pdziepak@quarnos.org>
Many bugfixes, most importantly a bug was fixed which makes network
downloads go much faster (without waiting for you to wave the mouse over
the window).
* LoadFinished is called after redirects have taken place, so we can
show the final URL. It's also called for navigation inside a document
(jumping to anchors), whereas LoadCommitted is not.
* LoadCommitted is called earlier so we also want to set the URL there.
* At least some nVidia HDA controllers do not acknowledge the CORB
read pointer reset, which is required by the spec (cf. HDA 1.0a
ch. 3.3.21). For these controllers, do not fail when acknowledge
is missing.
* Makes hda driver work for nVidia HDA controllers again, thus fixing
the regression pointed out in #10212.
* Category identifyers are lower-case, we can use the "name" facility which
already existed for this purpose and simply iterate the list of known
categories.
* The getBulkPkg method now takes the architectures as a list as well,
helps with finding the right package in case there is a mix of
architectures across the requested package names.
* Some chipsets do not support bus-snooping for the HDA data
transfers. So, when trying to enable snooping, verify that the
setting was accepted.
* When snooping is not possible, set memory areas for audio buffers,
buffer descriptor lists and command ring-buffers as uncached to
ensure memory coherency with the HDA controller.
* This fixes KDLs during booting on some systems where snooping
is not supported (seen on two systems with AMD chipsets, maybe
applies to others as well).
After setting up the buffer descriptor list for a stream, it was a
gamble whether these writes would be visible to the HDA controller
when subsequently enabling the stream. On some boots it was unlucky
and then the HDA controller's DMA engine would go haywire and start
overwriting random kernel memory with audio input data. The
scheduler was usually the first victim and caused page fault KDLs
due to corrupted data structures.
* Do read-modify-write cycle to preserve bits marked as RsvdP in the
following registers: WAKEEN, CORBWP, CORBCTL, CORBSIZE, RIRBWP,
RINTCNT, RIRBCTL, RIRBSIZE.
* Spec requires software to wait for hardware to acknowledge the
reset by waiting for the bit to become set and then manually
unset it and again wait for it to become unset.
(cf. HDA spec 1.0a ch. 3.3.21)
* Also, do read-modify-write to protect preserved bits
Now that the fake packages are in place, it is much easier to build the
MMC image for ARM without the need for a bootstrap build.
This image still does not manage to access the tarfs and load the kernel
modules, but it gets to KDL, at least.