| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
| |
Reported by: Andreas Hollmann / PVS-Studio
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315913
|
| |
|
|
|
|
|
|
|
| |
The code is so alike that it is pointless to keep it separate.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315908
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315870
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315869
|
| |
|
|
|
|
|
|
|
| |
periph_links field belongs to periph drivers and must not be used here.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315709
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315708
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315683
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315682
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Let firmware do its best first, and if it can't, try software recovery.
I would remove software timeout handler completely, but found bunch of
complains on command timeout on sparc64 mailing list few years ago, so
better be safe in case of interrupt loss.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315681
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315678
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315677
|
| |
|
|
|
|
|
| |
MFC after: 12 days
Notes:
svn path=/head/; revision=315670
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315652
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315587
|
| |
|
|
|
|
|
|
|
|
|
|
| |
For 24xx and above use 2 vectors (default and response queue).
For 26xx and above use 3 vectors (default, response and ATIO queues).
Due to global lock interrupt hardlers never run simultaneously now, but
at least this allows to save one regitster read per interrupt.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315579
|
| |
|
|
|
|
|
|
|
|
| |
Since we support RQSTYPE_RPT_ID_ACQ, that functionality is only useful
in loop mode, which probably doesn't worth having this hack in 2017.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315545
|
| |
|
|
|
|
|
|
|
| |
It is chip-specific and has nothing to do with platform.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315536
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315534
|
| |
|
|
|
|
|
|
|
| |
This code has nothing to do with specific platform.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315533
|
| |
|
|
|
|
|
|
|
|
|
| |
There were two copies of the code: one in generic code was half-broken, and
another in platform code was never called. Leave only one in generic code
and working.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315507
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315489
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315488
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315485
|
| |
|
|
|
|
|
|
|
| |
This unifies the code and removes some duplication.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315482
|
| |
|
|
|
|
|
|
|
| |
ISPASYNC_TARGET_NOTIFY_ACK makes no sense without argument.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315478
|
| |
|
|
|
|
|
|
|
| |
While there polish respective debug logging.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315327
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of single isp_intr() function doing all possible magic, introduce
four different functions to handle mailbox operation completions, async
events, response and ATIO queues. The goal is to isolate different code
paths to make code more readable, and to make easier support for multiple
interrupt vectors. Even oldest hardware in many cases can identify what
code path it should run on interrupt. Contemporary hardware can assign
them to different interrupt vectors.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315307
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315303
|
| |
|
|
|
|
|
| |
MFC after: 13 days
Notes:
svn path=/head/; revision=315298
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315279
|
| |
|
|
|
|
|
|
|
|
|
|
| |
It was implemented to reduce context switches when uploading firmware to
card's RAM. But this mechanism is not used last 10 years since all mbox
operations are now polled, and it was never used for cards produced in
last 15 years. Newer cards can use DMA to upload firmware.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315273
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315236
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This change fixes DMA resource leak on driver unload. Also it removes
DMA resources allocation for hardcoded number of requests before fetching
the real number from firmware. Also it prepares ground for more flexible
IRQs allocation according to firmware capabilities.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315234
|
| |
|
|
|
|
|
| |
MFC after: 13 days
Notes:
svn path=/head/; revision=315229
|
| |
|
|
|
|
|
|
|
|
| |
Interrupts are enabled as part of chip reset just during driver attach.
Later "enabling" of already enabled interrupts is useless.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315163
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315161
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=315160
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=314326
|
| |
|
|
|
|
|
|
|
|
| |
Its more important for SPI HBAs, as they don't support CDBs above 12 bytes.
The new error code makes CAM to fall back to alternative commands.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=314302
|
| |
|
|
|
|
|
|
|
|
|
| |
This allows to properly handle cases when target wants to receive or send
more data then initiator wants to send or receive. Previously in such
cases isp(4) returned CAM_DATA_RUN_ERR, while now it returns resid > 0.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=314299
|
| |
|
|
|
|
|
|
|
| |
Every ATIO must complete with either successfully sent status or XPT_ABORT.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=314208
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=314203
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=314088
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Move private data about ATIOs/INOTs from per-LUN to per-channel data.
This allows active commands to continue operation after LUN destruction.
This also simplifies lookup of the data by tag in some situations.
- Unify three restart_queue processing implementations.
- Complete all ATIOs from restart_queue on LUN disable.
- Delete ATIO private data when command completed or aborted, not depending
on the ATIO being requeued, that was ugly hack and could never happen. CAM
should always call ether XPT_CONT_TARGET_IO with status or XPT_ABORT.
- Implement XPT_ABORT for queued ATIOs/INOTs to allow CAM do graceful
shutdown, not depending on LUN disable, as it is done in ahd(4)/targ(4).
- Unify isp_endcmd() arguments to make it more usable in generic code.
- Remove never really used LUN state reference counter.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=314086
|
| |
|
|
|
|
|
|
|
|
|
| |
For some reason isp_handle_platform_notify_fc() allocated INOT just
before calling isp_handle_platform_target_tmf(), which also allocates
INOT. It seems to be a braino introduced in r196008.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=314045
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=314038
|
| |
|
|
|
|
|
|
|
|
|
| |
Makes things easier to read, plus architectures may set NULL to something
different than zero.
Found with: devel/coccinelle
MFC after: 3 weeks
Notes:
svn path=/head/; revision=313982
|
| |
|
|
|
|
|
| |
MFC after: 2 weeks
Notes:
svn path=/head/; revision=313945
|
| |
|
|
|
|
|
|
|
| |
CTIO waitq present only in ISP_TARGET_MODE.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=313937
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
All resources lack of which may put CTIO into the queue are either
per-channel or potentially per-queue, but none of them are per-LUN.
This is a first step to fix live LUN disabling. Before this change
any CTIOs held in a queue in time of disabling were just leaked.
MFC after: 2 weeks
Notes:
svn path=/head/; revision=313936
|