<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/aacraid/aacraid.c, branch release/13.1.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=release%2F13.1.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=release%2F13.1.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2021-07-23T11:28:58Z</updated>
<entry>
<title>aacraid: reduce max I/O size to avoid DMA issues</title>
<updated>2021-07-23T11:28:58Z</updated>
<author>
<name>Leandro Lupori</name>
<email>luporl@FreeBSD.org</email>
</author>
<published>2021-06-21T18:04:43Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=572e3575dba591f372633a38d76ce7904d1a1b2e'/>
<id>urn:sha1:572e3575dba591f372633a38d76ce7904d1a1b2e</id>
<content type='text'>
Reserve one page for the DMA subsystem, that may need it when the I/O
buffer is not page aligned.

Without this change, writes with the maximum allowed size failed, if:
- physical memory was fragmented, making it necessary to use one DMA
  segment for each page
- the buffer to be written was not page aligned, causing the DMA
  subsystem to need one extra segment

In the scenario above, the DMA subsystem would run out of segments,
resulting in a write with no SG segments, that would fail.

Reviewed by:		imp
Sponsored by:		Instituto de Pesquisas Eldorado (eldorado.org.br)
Differential Revision:	https://reviews.freebsd.org/D30798

(cherry picked from commit 9c2c6353193b53deb337777c2a06a2648b364f8b)
</content>
</entry>
<entry>
<title>aacraid: clean up empty lines in .c and .h files</title>
<updated>2020-09-01T21:32:25Z</updated>
<author>
<name>Mateusz Guzik</name>
<email>mjg@FreeBSD.org</email>
</author>
<published>2020-09-01T21:32:25Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=6ece1c105704ad6039ac340b120c3f0eb3deaedf'/>
<id>urn:sha1:6ece1c105704ad6039ac340b120c3f0eb3deaedf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>[aacraid] Handle both AIF and SYNC interrupts</title>
<updated>2020-03-09T19:01:17Z</updated>
<author>
<name>Leandro Lupori</name>
<email>luporl@FreeBSD.org</email>
</author>
<published>2020-03-09T19:01:17Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=eb132ade4af4184cfa47b70e44b01db40e96a0d0'/>
<id>urn:sha1:eb132ade4af4184cfa47b70e44b01db40e96a0d0</id>
<content type='text'>
Without this change, if an AIF interrupt comes at the same time a SYNC
command is finished, the SYNC interrupt will be lost. This happens because
all interrupt bits (bellbits) are cleared, but only one of them is handled.

Debugging shows that, (at least) when !sc-&gt;msi_enabled and (sc-&gt;flags &amp;
AAC_FLAGS_SYNC_MODE) is true (sync mode), both bits may be set at the same
time.

PR:		237463
Reviewed by:	scottl
Sponsored by:	Eldorado Research Institute (eldorado.org.br)
Differential Revision:	https://reviews.freebsd.org/D23859
</content>
</entry>
<entry>
<title>[aacraid] Port driver to big-endian</title>
<updated>2020-03-05T20:04:41Z</updated>
<author>
<name>Leandro Lupori</name>
<email>luporl@FreeBSD.org</email>
</author>
<published>2020-03-05T20:04:41Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d8c51c6f74b61966ec57f498b3faf3ae93871918'/>
<id>urn:sha1:d8c51c6f74b61966ec57f498b3faf3ae93871918</id>
<content type='text'>
Port aacraid driver to big-endian (BE) hosts.

The immediate goal of this change is to make it possible to use the
aacraid driver on PowerPC64 machines that have Adaptec Series 8 SAS
controllers.

Adapters supported by this driver expect FIB contents in little-endian
(LE) byte order. All FIBs have a fixed header part as well as a data
part that depends on the command being issued to the controller.

In this way, on BE hosts, the FIB header and all FIB data structures
used in aacraid.c and aacraid_cam.c need to be converted to LE before
being sent to the adapter and converted to BE when coming from it.

The functions to convert each struct are on aacraid_endian.c.
For little-endian (LE) targets, they are macros that expand
to nothing.
In some cases, when only a few fields of a large structure are used,
the fields are converted inline, by the code using them.

PR:		237463
Reviewed by:	jhibbits
Sponsored by:	Eldorado Research Institute (eldorado.org.br)
Differential Revision:	https://reviews.freebsd.org/D23887
</content>
</entry>
<entry>
<title>[aacraid] Add missing unmap call for SYNC mode</title>
<updated>2020-03-04T12:21:38Z</updated>
<author>
<name>Leandro Lupori</name>
<email>luporl@FreeBSD.org</email>
</author>
<published>2020-03-04T12:21:38Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=cffdc39e5e64686b19c92ae9146fec7d60177c28'/>
<id>urn:sha1:cffdc39e5e64686b19c92ae9146fec7d60177c28</id>
<content type='text'>
This issue was observed on a PowerPC64 machine with an Adaptec RAID Controller
with PCI device ID 0x028d. After several read/write operations, the kernel was
panic'ing in bus_dmamap_sync(). This was due to a missing aac_unmap_command()
in the SYNC path.

PR:	237463
Reviewed by:	jhibbits
Differential Revision:	https://reviews.freebsd.org/D23668
</content>
</entry>
<entry>
<title>Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many)</title>
<updated>2020-02-26T14:26:36Z</updated>
<author>
<name>Pawel Biernacki</name>
<email>kaktus@FreeBSD.org</email>
</author>
<published>2020-02-26T14:26:36Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=7029da5c36f2d3cf6bb6c81bf551229f416399e8'/>
<id>urn:sha1:7029da5c36f2d3cf6bb6c81bf551229f416399e8</id>
<content type='text'>
r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are
still not MPSAFE (or already are but aren’t properly marked).
Use it in preparation for a general review of all nodes.

This is non-functional change that adds annotations to SYSCTL_NODE and
SYSCTL_PROC nodes using one of the soon-to-be-required flags.

Mark all obvious cases as MPSAFE.  All entries that haven't been marked
as MPSAFE before are by default marked as NEEDGIANT

Approved by:	kib (mentor, blanket)
Commented by:	kib, gallatin, melifaro
Differential Revision:	https://reviews.freebsd.org/D23718
</content>
</entry>
<entry>
<title>Remove ifdefs for FreeBSD 6, 7, 8 and 9. Assume we're past that.</title>
<updated>2019-12-06T21:50:24Z</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2019-12-06T21:50:24Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=232d88897000ac79f01d1e2e95e0f017134da7ca'/>
<id>urn:sha1:232d88897000ac79f01d1e2e95e0f017134da7ca</id>
<content type='text'>
Differential Revision: https://reviews.freebsd.org/D22539
</content>
</entry>
<entry>
<title>Don't need giant for these drivers dev nodes.</title>
<updated>2019-11-24T15:37:19Z</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2019-11-24T15:37:19Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=dfdbb32093ce354251f15ff54247f29285456e2a'/>
<id>urn:sha1:dfdbb32093ce354251f15ff54247f29285456e2a</id>
<content type='text'>
Also, Giant isn't required to busy / unbusy a device, so drop that too while I'm
here. It's not done elsewhere in the tree and in the future will likely be
handled by a node lock to ensure consistency. Leave Giant in place for attach
and removing childing, as that's actually still needed, even if imperfect.

Remove stale comment about contigmalloc taking Giant and calling w/o the lock
held. Neither of these is still true.
</content>
</entry>
<entry>
<title>Make aacraid(4) working on ASR8805 &amp; ASR8402 in particular. This patch</title>
<updated>2019-05-22T04:51:08Z</updated>
<author>
<name>Maxim Sobolev</name>
<email>sobomax@FreeBSD.org</email>
</author>
<published>2019-05-22T04:51:08Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=4f1dfaba987f98b1b951c997cf72201f5fb433ae'/>
<id>urn:sha1:4f1dfaba987f98b1b951c997cf72201f5fb433ae</id>
<content type='text'>
has been in the PR system for 5 months and then on reviews for another 5.
Nobody came with any cases where it fails, while many people cried for
it to be commited &amp; merged.

PR:		209468
Submitted by:	Prasad B M &lt;prasad.munirathnam@microsemi.com&gt;
Reported by:	Steven Peterson &lt;scp@mainstream.net&gt;
Approved by:	scottl
MFC after:	1 month
Differential Revision:	https://reviews.freebsd.org/D18408
</content>
</entry>
<entry>
<title>Move most of the contents of opt_compat.h to opt_global.h.</title>
<updated>2018-04-06T17:35:35Z</updated>
<author>
<name>Brooks Davis</name>
<email>brooks@FreeBSD.org</email>
</author>
<published>2018-04-06T17:35:35Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=6469bdcdb6a5968dc7edfcfb495d427b4bfdb3dd'/>
<id>urn:sha1:6469bdcdb6a5968dc7edfcfb495d427b4bfdb3dd</id>
<content type='text'>
opt_compat.h is mentioned in nearly 180 files. In-progress network
driver compabibility improvements may add over 100 more so this is
closer to "just about everywhere" than "only some files" per the
guidance in sys/conf/options.

Keep COMPAT_LINUX32 in opt_compat.h as it is confined to a subset of
sys/compat/linux/*.c.  A fake _COMPAT_LINUX option ensure opt_compat.h
is created on all architectures.

Move COMPAT_LINUXKPI to opt_dontuse.h as it is only used to control the
set of compiled files.

Reviewed by:	kib, cem, jhb, jtl
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D14941
</content>
</entry>
</feed>
