- Simplify tlabel handling.
- Remove unused fw_asybusy().
- Add a sysctl knob to disable cycle master mode and add some comments.
- Fix broken userland API for async packets.
- Fix typo in recv spd.
- Update state in fw_xferq_dorain() after removed from the send queue.
- Remove unnecessary 'goto err;".
- Improve asynchronous packet receive process.
Avoid unnecessary differences between the amd64 and i386
format strings.
MFC Revision 1.577 of pmap.c:
Use a different bitmask for superpages' base address so that it
doesn't conflict with the PG_PDE_PAT bit.
Remove stale KSE code.
MFC Revision 1.551:
In general, bits in the page directory entry (PDE) and the page table
entry (PTE) have the same meaning. The exception to this rule is the
eighth bit (0x080). It is the PS bit in a PDE and the PAT bit in a
PTE. This change avoids the possibility that pmap_enter() confuses a
PAT bit with a PS bit, avoiding a panic().
Eliminate a diagnostic printf() from the i386 pmap_enter() that serves
no current purpose.
MFC Revision 1.559:
Eliminate a comment that became stale after revision 1.540.
MFC Revision 1.575:
Finish the PG_NX support at the pmap level.
MFC Revision 1.582:
Eliminate the misuse of PG_FRAME to truncate a virtual address
to a virtual page boundary.
Acquiring smp_ipi_mtx on every call to pmap_invalidate_*() is wasteful.
For example, during a buildworld more than half of the calls do not
generate an IPI because the only TLB entry invalidated is on the calling
processor. This revision pushes down the acquisition and release of
smp_ipi_mtx into smp_tlb_shootdown() and smp_targeted_tlb_shootdown() and
instead uses sched_pin() and sched_unpin() in pmap_invalidate_*() so that
thread migration doesn't lead to a missed TLB invalidation.
Replace diagnostic printf()s by assertions. Use consistent style
for similar assertions.
MFC Revision 1.540
Introduce pmap_try_insert_pv_entry().
Use pmap_try_insert_pv_entry() in pmap_copy() instead of
pmap_insert_entry().
Eliminate the explicit low-memory checks in pmap_copy().
MFC Revision 1.544
Retire pmap_track_modified().
MFC Revision 1.555
Introduce the function pmap_enter_object().
MFC Revision 1.558 (in part)
Change pmap_enter_quick_locked() to fail rather than wait if it is
unable to allocate a page table page. Similarly, change
pmap_enter_quick_locked() to call pmap_try_insert_pv_entry() rather
than pmap_insert_entry().
Add an assertion that the object containing m_start is locked in
pmap_enter_object(). Remove a similar assertion from
pmap_enter_quick_locked() because that function no longer accesses
the containing object.
Remove a stale comment.
- s/jail id/jail ID/, acronyms should be in uppercase in general. Also,
it is written this way in jail(8).
Suggested by: brueffer
Approved by: delphij (mentor, implicit)
Fix a typo: argv -> argvp.
Rationale:
We are interested in the current (last) element of the argv array
there, not in its first element. [...]
Also add a comment that the argv array ends up null-terminated in
any case (it's due to the design of the for loop) as an answer to
a possible question why the whole argv isn't zero-filled.
(atapi_cb): Fix test for the presence of sense data. An incorrect condition
was being tested, which would result in a system hang in some configurations.
PR: kern/112119
- New pmap_mapdev_attr() function for amd64 and i386.
- pmap_mapdev() on i386 and amd64 uses UC now rather than WB.
- New pmap_mapbios()/pmap_unmapbios() functions to map firmware tables.
- New pmap_change_attr() function for amd64 and i386.
- Bump __FreeBSD_version.
o Changes to psycho_attach(): [1]
- Clear the PCI AFSR and status error bits as previous errors still
might be indicated.
- Set up the PCI control and diagnostic registers according to the
capabilities, workarounds, etc of/for specific revisions of the
supported bridges. This includes no longer setting Hummingbird-/
Sabre-specific bits in the PCI control register but preserving
what the firmware has initialized them to like OpenSolaris does.
Previously we were setting these bits according to the example in
the Sabre documentation, which I doubt is appropriate for all
Sabre based designs and especially not for Hummingbirds. This
also includes not enabling bus parking unless the firmware tells
us to.
- Set the PCI latency timer register as this isn't always done by
the firmware.
o Remove a redundant argument from psycho_set_intr() and in this
function check the return value of bus_setup_intr(). [2]
o Let psycho_setup_intr() return ENOMEM instead of 0 when it can't
allocate memory for the interrupt wrapper stub and EINVAL instead
of 0 if it can't find the interrupt vector in the interrupt map.
o Add a workaround for a bug of the Sabre-APB-combination where it
doesn't drain DMA write data for devices behind additional PCI-PCI
bridges underneath the APB PCI-PCI bridge. This workaround (do
things necessary in order to achieve a manual drain when coherency
is required) is currently implemented in psycho_setup_intr() and
psycho_intr_stub() due to lack of a real BUS_GET_DMA_TAG() and
psycho(4)-specific bus_dma_tag_create() and bus_dmamap_sync()
methods, respectively, in RELENG_6 and therefore is only applied
for interrupt handlers but not for polling(4) callbacks. [3]
o Fix some minor style issues.
Info from: OpenSolaris [1]
Info from: Linux, OpenBSD, OpenSolaris [3]
Suggested by: Coverity Prevent (CID 682) [2]
- Try to use the reset control register (I/O port 0xcf9) and the fast a20
and init register (I/O port 0x92) if the keyboard reset fails.
- Fix the triple fault to actually work when PGE is enabled.
New release notes:
- edsc(4) added
Modified release notes:
- ncurses was updated from version 5.2-20020615
- MSI-X supported as well, remove ref to pci(4) manpage, which is
different from the kernel's PCI code