#
313446 |
|
08-Feb-2017 |
mav |
MFC r312767: Partially workaround ASMedia HBA error recovery.
Taking closer look on my ASM1062 I found that it has bunch of issues around error recovery: reported wrong CCS, failed commands reported as completed, READ LOG EXT times out after NCQ error. This patch workarounds first two problems, that were making ATAPI devices close to unusable on these HBAs.
|
#
302791 |
|
13-Jul-2016 |
mav |
MFC r302402: Fix ahci(4) driver attach to controller with 32 ports.
Incorrect sign expansion in variables that supposed to be a bit fields caused infinite loop. Fixing this allows system properly detect maximal possible 32 devices configured on AHCI HBA of BHyVe. That case did not happen in a wild before due to lack of hardware AHCI HBAs with 32 ports.
|
#
284006 |
|
04-Jun-2015 |
mav |
MFC r283936: Restore AHCI quirks printing as base16.
smh@ at r278034 made it base17, that is somewhat odd. :)
|
#
280276 |
|
20-Mar-2015 |
mav |
MFC r279963: Fix SATA Gen3 speed constants.
|
#
279918 |
|
12-Mar-2015 |
mav |
MFC r271146,271201,271207,271261,271457,272606,277100,277126,278034,279320, 279573: Sync AHCI driver with HEAD.
Due to code reorganization in r271146 and many previous reordered merges it is problematic to merge those revisions separately.
|
#
277061 |
|
12-Jan-2015 |
smh |
MFC r276012: Add a constant AHCI_MAX_IRQS removing magic number
MFC r276013: Clamp ahci max irq's to AHCI_MAX_IRQS
MFC r276016: Return the error from ahci_setup_interrupt in ahci_attach
MFC r276019: style (9) nits
Sponsored by: Multiplay
|
#
261455 |
|
04-Feb-2014 |
eadler |
MFC r258779,r258780,r258787,r258822:
Fix undefined behavior: (1 << 31) is not defined as 1 is an int and this shifts into the sign bit. Instead use (1U << 31) which gets the expected result.
Similar to the (1 << 31) case it is not defined to do (2 << 30).
This fix is not ideal as it assumes a 32 bit int, but does fix the issue for most cases.
A similar change was made in OpenBSD.
|
#
260387 |
|
06-Jan-2014 |
scottl |
MFC Alexander Motin's direct dispatch, multi-queue, and finer-grained locking support for CAM
r256826: Fix several target mode SIMs to not blindly clear ccb_h.flags field of ATIO CCBs. Not all CCB flags there belong to them.
r256836: Remove hard limit on number of BIOs handled with one ATA TRIM request.
r256843: Merge CAM locking changes from the projects/camlock branch to radically reduce lock congestion and improve SMP scalability of the SCSI/ATA stack, preparing the ground for the coming next GEOM direct dispatch support.
r256888: Unconditionally acquire periph reference on CCB allocation failure.
r256895: Fix memory and references leak due to unfreed path.
r256960: Move CAM_UNQUEUED_INDEX setting to the last moment and under the periph lock. This fixes race condition with cam_periph_ccbwait(), causing use-after-free.
r256975: Minor (mostly cosmetical) addition to r256960.
r257054: Some microoptimizations for da and ada drivers: - Replace ordered_tag_count counter with single flag; - From da remove outstanding_cmds counter, duplicating pending_ccbs list; - From da_softc remove unused links field.
r257482: Fix lock recursion, triggered by `smartctl -a /dev/adaX`.
r257501: Make getenv_*() functions and respectively TUNABLE_*_FETCH() macros not allocate memory and so not require sleepable environment. getenv() has already used on-stack temporary storage, so just use it more rationally. getenv_string() receives buffer as argument, so don't need another one.
r257914: Some CAM locks polishing: - Fix LOR and possible lock recursion when handling high-power commands. Introduce new lock to protect left power quota and list of frozen devices. - Correct locking around xpt periph creation. - Remove seems never used XPT_FLAG_OPEN xpt periph flag.
Again, Netflix assisted with testing the merge, but all of the credit goes to Alexander and iX Systems.
Submitted by: mav Sponsored by: iX Systems
|
#
260353 |
|
05-Jan-2014 |
mav |
MFC r258173: Add few more minor parts of DevSleep support from AHCI 1.3.1 proposal.
|
#
284006 |
|
04-Jun-2015 |
mav |
MFC r283936: Restore AHCI quirks printing as base16.
smh@ at r278034 made it base17, that is somewhat odd. :)
|
#
280276 |
|
20-Mar-2015 |
mav |
MFC r279963: Fix SATA Gen3 speed constants.
|
#
279918 |
|
12-Mar-2015 |
mav |
MFC r271146,271201,271207,271261,271457,272606,277100,277126,278034,279320, 279573: Sync AHCI driver with HEAD.
Due to code reorganization in r271146 and many previous reordered merges it is problematic to merge those revisions separately.
|
#
277061 |
|
12-Jan-2015 |
smh |
MFC r276012: Add a constant AHCI_MAX_IRQS removing magic number
MFC r276013: Clamp ahci max irq's to AHCI_MAX_IRQS
MFC r276016: Return the error from ahci_setup_interrupt in ahci_attach
MFC r276019: style (9) nits
Sponsored by: Multiplay
|
#
261455 |
|
04-Feb-2014 |
eadler |
MFC r258779,r258780,r258787,r258822:
Fix undefined behavior: (1 << 31) is not defined as 1 is an int and this shifts into the sign bit. Instead use (1U << 31) which gets the expected result.
Similar to the (1 << 31) case it is not defined to do (2 << 30).
This fix is not ideal as it assumes a 32 bit int, but does fix the issue for most cases.
A similar change was made in OpenBSD.
|
#
260387 |
|
06-Jan-2014 |
scottl |
MFC Alexander Motin's direct dispatch, multi-queue, and finer-grained locking support for CAM
r256826: Fix several target mode SIMs to not blindly clear ccb_h.flags field of ATIO CCBs. Not all CCB flags there belong to them.
r256836: Remove hard limit on number of BIOs handled with one ATA TRIM request.
r256843: Merge CAM locking changes from the projects/camlock branch to radically reduce lock congestion and improve SMP scalability of the SCSI/ATA stack, preparing the ground for the coming next GEOM direct dispatch support.
r256888: Unconditionally acquire periph reference on CCB allocation failure.
r256895: Fix memory and references leak due to unfreed path.
r256960: Move CAM_UNQUEUED_INDEX setting to the last moment and under the periph lock. This fixes race condition with cam_periph_ccbwait(), causing use-after-free.
r256975: Minor (mostly cosmetical) addition to r256960.
r257054: Some microoptimizations for da and ada drivers: - Replace ordered_tag_count counter with single flag; - From da remove outstanding_cmds counter, duplicating pending_ccbs list; - From da_softc remove unused links field.
r257482: Fix lock recursion, triggered by `smartctl -a /dev/adaX`.
r257501: Make getenv_*() functions and respectively TUNABLE_*_FETCH() macros not allocate memory and so not require sleepable environment. getenv() has already used on-stack temporary storage, so just use it more rationally. getenv_string() receives buffer as argument, so don't need another one.
r257914: Some CAM locks polishing: - Fix LOR and possible lock recursion when handling high-power commands. Introduce new lock to protect left power quota and list of frozen devices. - Correct locking around xpt periph creation. - Remove seems never used XPT_FLAG_OPEN xpt periph flag.
Again, Netflix assisted with testing the merge, but all of the credit goes to Alexander and iX Systems.
Submitted by: mav Sponsored by: iX Systems
|
#
260353 |
|
05-Jan-2014 |
mav |
MFC r258173: Add few more minor parts of DevSleep support from AHCI 1.3.1 proposal.
|