History log of /src/sys/dev/sym/sym_hipd.c (Results 1 – 25 of 551)
Revision Date Author Comments
# b941d1c6 02-Feb-2026 Marius Strobl <marius@FreeBSD.org>

sym(4): Map HCB memory as uncacheable also on x86

As part of making the chip-specific mix and match of different accesses
(DMA/bus space) work as desired, the intent is to map the HCB memory as
unca

sym(4): Map HCB memory as uncacheable also on x86

As part of making the chip-specific mix and match of different accesses
(DMA/bus space) work as desired, the intent is to map the HCB memory as
uncacheable. Prior to VM_MEMATTR_*, the !x86 way of indicating this to
bus_dmamem_alloc(9) was BUS_DMA_COHERENT. Then later on in 2db99100a4,
BUS_DMA_NOCACHE was hooked up to VM_MEMATTR_UNCACHEABLE for x86. As it
turns out, still as of today bus_dmamem_alloc(9) differs in this regard
across architectures. On arm, it still supports BUS_DMA_COHERENT only
for requesting uncacheable DMA and x86 still uses BUS_DMA_NOCACHE only.
On arm64 and riscv, BUS_DMA_COHERENT seems to effectively be an alias
for BUS_DMA_NOCACHE.

Thus, allocate the HCB memory with BUS_DMA_COHERENT | BUS_DMA_NOCACHE,
so we get uncacheable memory on all architectures including x86 and so
loads and stores from/to HCB won't get reordered. However, even on x86
we still need to use at least compiler barriers to achieve the desired
program order.

This change should also fix panics due to out-of-sync data seen with
FreeBSD VMs on top of OpenStack and HBAs of type lsiLogic as a result
of loads and stores getting reordered. [1]

While at it:
- Nuke the unused SYM_DRIVER_NAME macro.
- Remove unused/redundant HCB members and correct a comment typo.

PR: 270816 [1]
MFC after: 3 days

show more ...


# bfbcd310 28-Jan-2026 Marius Strobl <marius@FreeBSD.org>

Revert "sym(4): Employ memory barriers also on x86"

The problem will be avoided in a different way.

This reverts commit e769bc77184312b6137a9b180c97b87c0760b849.


# e769bc77 26-Jan-2026 Marius Strobl <marius@FreeBSD.org>

sym(4): Employ memory barriers also on x86

In an MP world, it doesn't hold that x86 requires no memory barriers.

This change should also fix panics due to out-of-sync data seen with
FreeBSD VMs on

sym(4): Employ memory barriers also on x86

In an MP world, it doesn't hold that x86 requires no memory barriers.

This change should also fix panics due to out-of-sync data seen with
FreeBSD VMs on top of OpenStack and HBAs of type lsiLogic. [1]

While at it:
- Improve the granularity somewhat by distinguishing between read and
write memory barriers as well as refer to existing *mb(9) functions
instead of duplicating these [2], unless IO barriers are also used.
- Nuke the unused SYM_DRIVER_NAME macro.

PR: 270816 [1]
Obtained from: BSD-licensed Linux sym53c8xx driver [2]
MFC after: 1 week

show more ...


# 518c01b3 22-Jan-2026 Marius Strobl <marius@FreeBSD.org>

sym(4): Provide a DEVICE_DETACH(9) method

This also fixes sym_cam_free() to tear things down correctly, i. e. in
opposite order of setup, as well as sym_cam_attach() to not free devq
and SIM twice i

sym(4): Provide a DEVICE_DETACH(9) method

This also fixes sym_cam_free() to tear things down correctly, i. e. in
opposite order of setup, as well as sym_cam_attach() to not free devq
and SIM twice in the failure case.

show more ...


# c8e9479c 21-Jan-2026 Marius Strobl <marius@FreeBSD.org>

sym(4): Use memcpy(9) instead of bcopy(9)

The overlap handling of bcopy(9) is not required in these cases.

Obtained from: BSD-licensed Linux sym53c8xx driver


# 48eee744 21-Jan-2026 Marius Strobl <marius@FreeBSD.org>

sym(4): Consistently use device_printf(9) where applicable


# 00502894 15-Oct-2025 David E. O'Brien <obrien@FreeBSD.org>

style(9): white space after ; and around binary operators

in for() loops. Also, use 'while', where only the
conditional test of 'for' was used.

Reviewed by: sjg


# ae6d4963 18-Aug-2023 Marius Strobl <marius@FreeBSD.org>

sym(4): Add __diagused to nseg of getbaddrcb()

The parameter is only used when compiling with INVARIANTS.


# 685dc743 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: one-line .c pattern

Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/


# c4cacb20 06-May-2022 John Baldwin <jhb@FreeBSD.org>

sym: Remove unused devclass argument to DRIVER_MODULE.


# 5045cb8f 03-Dec-2021 Scott Long <scottl@FreeBSD.org>

Fix "set but not used" for the sym driver.

Sponsored by: Rubicon Communications, LLC ("Netgate")


# 2dcbf046 21-Jan-2021 Marius Strobl <marius@FreeBSD.org>

sym(4): handle mixed tagged/untagged commands gracefully

Handle the case of a tagged command arriving when there's an untagged
one still outstanding gracefully instead of panicing.

While at it:
- R

sym(4): handle mixed tagged/untagged commands gracefully

Handle the case of a tagged command arriving when there's an untagged
one still outstanding gracefully instead of panicing.

While at it:
- Replace fancy arithmetics with a simple assignment as busy_itl can
only ever be either 0 or 1.
- Fix a comment typo in sym_free_ccb().

show more ...


# e60a0db3 21-Jan-2021 Marius Strobl <marius@FreeBSD.org>

sym(4): fix nits reported by Coverity

- In ___dma_getp(), remove dead code. [1]
- In sym_sir_bad_scsi_status(), add missing FALLTHROUGH. [2]

While at it:
- For getbaddrcb(), remove __unused from th

sym(4): fix nits reported by Coverity

- In ___dma_getp(), remove dead code. [1]
- In sym_sir_bad_scsi_status(), add missing FALLTHROUGH. [2]

While at it:
- For getbaddrcb(), remove __unused from the nseg argument as it's in
fact used when compiling with INVARIANTS.
- In sym_int_sir(), ensure in all branches that cp is not NULL before
using it.

Reported by: Coverity
CID: 1008861 [1], 114996 [2]

show more ...


# e287e71a 01-Sep-2020 Mateusz Guzik <mjg@FreeBSD.org>

sym: clean up empty lines in .c and .h files


# bc02c18c 07-Feb-2020 Dimitry Andric <dim@FreeBSD.org>

Merge ^/head r357408 through r357661.


# 58aa35d4 03-Feb-2020 Warner Losh <imp@FreeBSD.org>

Remove sparc64 kernel support

Remove all sparc64 specific files
Remove all sparc64 ifdefs
Removee indireeect sparc64 ifdefs


# c6879c6c 23-Oct-2018 Dimitry Andric <dim@FreeBSD.org>

Merge ^/head r339015 through r339669.


# 221ac8f4 22-Oct-2018 Warner Losh <imp@FreeBSD.org>

Remove the long obsolete SYM_SETUP_LP_PROBE_MAP option. It's not been
needed for almost 20 years, and is totally useless now that ncr(4) has
been removed.

Relnotes: yes


# e769bc77 26-Jan-2026 Marius Strobl <marius@FreeBSD.org>

sym(4): Employ memory barriers also on x86

In an MP world, it doesn't hold that x86 requires no memory barriers.

This change should also fix panics due to out-of-sync data seen with
FreeBSD VMs on

sym(4): Employ memory barriers also on x86

In an MP world, it doesn't hold that x86 requires no memory barriers.

This change should also fix panics due to out-of-sync data seen with
FreeBSD VMs on top of OpenStack and HBAs of type lsiLogic. [1]

While at it:
- Improve the granularity somewhat by distinguishing between read and
write memory barriers as well as refer to existing *mb(9) functions
instead of duplicating these [2], unless IO barriers are also used.
- Nuke the unused SYM_DRIVER_NAME macro.

PR: 270816 [1]
Obtained from: BSD-licensed Linux sym53c8xx driver [2]
MFC after: 1 week

show more ...


# 518c01b3 22-Jan-2026 Marius Strobl <marius@FreeBSD.org>

sym(4): Provide a DEVICE_DETACH(9) method

This also fixes sym_cam_free() to tear things down correctly, i. e. in
opposite order of setup, as well as sym_cam_attach() to not free devq
and SIM twice i

sym(4): Provide a DEVICE_DETACH(9) method

This also fixes sym_cam_free() to tear things down correctly, i. e. in
opposite order of setup, as well as sym_cam_attach() to not free devq
and SIM twice in the failure case.

show more ...


# c8e9479c 21-Jan-2026 Marius Strobl <marius@FreeBSD.org>

sym(4): Use memcpy(9) instead of bcopy(9)

The overlap handling of bcopy(9) is not required in these cases.

Obtained from: BSD-licensed Linux sym53c8xx driver


# 48eee744 21-Jan-2026 Marius Strobl <marius@FreeBSD.org>

sym(4): Consistently use device_printf(9) where applicable


# 00502894 15-Oct-2025 David E. O'Brien <obrien@FreeBSD.org>

style(9): white space after ; and around binary operators

in for() loops. Also, use 'while', where only the
conditional test of 'for' was used.

Reviewed by: sjg


# ae6d4963 18-Aug-2023 Marius Strobl <marius@FreeBSD.org>

sym(4): Add __diagused to nseg of getbaddrcb()

The parameter is only used when compiling with INVARIANTS.


# 685dc743 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: one-line .c pattern

Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/


12345678910>>...23