svn commit: r231689 - in stable/9: . share/man/man4 sys/amd64/conf sys/conf sys/dev/isci sys/dev/isci/scil sys/i386/conf sys/modules sys/modules/isci

Jim Harris jimharris at FreeBSD.org
Tue Feb 14 15:58:51 UTC 2012


Author: jimharris
Date: Tue Feb 14 15:58:49 2012
New Revision: 231689
URL: http://svn.freebsd.org/changeset/base/231689

Log:
  MFC r230843, r231134, r231136, r231137, r231296
  
  Add isci(4) driver for amd64 and i386 targets.
  
  The isci driver is for the integrated SAS controller in the Intel C600
  (Patsburg) chipset.  Source files in sys/dev/isci directory are
  FreeBSD-specific, and sys/dev/isci/scil subdirectory contains
  an OS-agnostic library (SCIL) published by Intel to control the SAS
  controller.  This library is used primarily as-is in this driver, with
  some post-processing to better integrate into the kernel build
  environment.
  
  isci.4 and a README in the sys/dev/isci directory contain a few
  additional details.
  
  This driver is only built for amd64 and i386 targets.
  
  Sponsored by: Intel
  Reviewed by: scottl
  Approved by: scottl

Added:
  stable/9/share/man/man4/isci.4
     - copied unchanged from r230843, head/share/man/man4/isci.4
  stable/9/sys/dev/isci/
     - copied from r230843, head/sys/dev/isci/
  stable/9/sys/modules/isci/
     - copied from r230843, head/sys/modules/isci/
Modified:
  stable/9/MAINTAINERS   (contents, props changed)
  stable/9/share/man/man4/Makefile
  stable/9/sys/amd64/conf/GENERIC
  stable/9/sys/amd64/conf/NOTES
  stable/9/sys/conf/files.amd64
  stable/9/sys/conf/files.i386
  stable/9/sys/conf/options.amd64
  stable/9/sys/conf/options.i386
  stable/9/sys/dev/isci/isci.h   (contents, props changed)
  stable/9/sys/dev/isci/isci_io_request.c   (contents, props changed)
  stable/9/sys/dev/isci/isci_remote_device.c   (contents, props changed)
  stable/9/sys/dev/isci/scil/sati_abort_task_set.c   (contents, props changed)
  stable/9/sys/dev/isci/scil/scic_sds_controller.c   (contents, props changed)
  stable/9/sys/dev/isci/scil/scic_sds_stp_request.c   (contents, props changed)
  stable/9/sys/dev/isci/scil/scif_sas_controller.c   (contents, props changed)
  stable/9/sys/dev/isci/scil/scif_sas_controller_state_handlers.c   (contents, props changed)
  stable/9/sys/dev/isci/scil/scif_sas_domain.c   (contents, props changed)
  stable/9/sys/dev/isci/scil/scif_sas_io_request.c   (contents, props changed)
  stable/9/sys/dev/isci/scil/scif_sas_remote_device.c   (contents, props changed)
  stable/9/sys/dev/isci/scil/scif_sas_remote_device_ready_substates.c   (contents, props changed)
  stable/9/sys/dev/isci/scil/scif_sas_smp_io_request.c   (contents, props changed)
  stable/9/sys/dev/isci/scil/scif_sas_smp_remote_device.c   (contents, props changed)
  stable/9/sys/dev/isci/scil/scif_sas_stp_io_request.c   (contents, props changed)
  stable/9/sys/dev/isci/scil/scif_sas_stp_task_request.c   (contents, props changed)
  stable/9/sys/i386/conf/GENERIC
  stable/9/sys/i386/conf/NOTES
  stable/9/sys/modules/Makefile
  stable/9/sys/modules/isci/Makefile   (contents, props changed)
Directory Properties:
  stable/9/share/man/man4/   (props changed)
  stable/9/sys/   (props changed)
  stable/9/sys/conf/   (props changed)
  stable/9/sys/dev/isci/README   (props changed)
  stable/9/sys/dev/isci/environment.h   (props changed)
  stable/9/sys/dev/isci/isci.c   (props changed)
  stable/9/sys/dev/isci/isci_controller.c   (props changed)
  stable/9/sys/dev/isci/isci_domain.c   (props changed)
  stable/9/sys/dev/isci/isci_interrupt.c   (props changed)
  stable/9/sys/dev/isci/isci_logger.c   (props changed)
  stable/9/sys/dev/isci/isci_oem_parameters.c   (props changed)
  stable/9/sys/dev/isci/isci_sysctl.c   (props changed)
  stable/9/sys/dev/isci/isci_task_request.c   (props changed)
  stable/9/sys/dev/isci/isci_timer.c   (props changed)
  stable/9/sys/dev/isci/sci_environment.h   (props changed)
  stable/9/sys/dev/isci/scil/intel_ata.h   (props changed)
  stable/9/sys/dev/isci/scil/intel_pci.h   (props changed)
  stable/9/sys/dev/isci/scil/intel_sas.h   (props changed)
  stable/9/sys/dev/isci/scil/intel_sat.h   (props changed)
  stable/9/sys/dev/isci/scil/intel_sata.h   (props changed)
  stable/9/sys/dev/isci/scil/intel_scsi.h   (props changed)
  stable/9/sys/dev/isci/scil/sati.c   (props changed)
  stable/9/sys/dev/isci/scil/sati.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_abort_task_set.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_atapi.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_atapi.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_callbacks.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_design.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_device.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_device.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_inquiry.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_inquiry.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_log_sense.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_log_sense.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_lun_reset.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_lun_reset.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_mode_pages.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_mode_pages.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_mode_select.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_mode_select.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_mode_sense.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_mode_sense.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_mode_sense_10.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_mode_sense_10.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_mode_sense_6.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_mode_sense_6.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_move.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_move.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_passthrough.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_passthrough.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_read.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_read.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_read_buffer.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_read_buffer.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_read_capacity.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_read_capacity.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_reassign_blocks.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_reassign_blocks.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_report_luns.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_report_luns.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_request_sense.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_request_sense.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_start_stop_unit.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_start_stop_unit.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_synchronize_cache.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_synchronize_cache.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_test_unit_ready.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_test_unit_ready.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_translator_sequence.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_types.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_unmap.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_unmap.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_util.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_util.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_verify.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_verify.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_write.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_write.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_write_and_verify.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_write_and_verify.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_write_buffer.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_write_buffer.h   (props changed)
  stable/9/sys/dev/isci/scil/sati_write_long.c   (props changed)
  stable/9/sys/dev/isci/scil/sati_write_long.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_abstract_list.c   (props changed)
  stable/9/sys/dev/isci/scil/sci_abstract_list.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_controller.c   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_controller.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_domain.c   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_domain.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_iterator.c   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_iterator.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_library.c   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_library.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_logger.c   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_logger.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_memory_descriptor_list.c   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_memory_descriptor_list.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_memory_descriptor_list_decorator.c   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_object.c   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_object.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_observer.c   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_observer.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_phy.c   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_phy.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_port.c   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_port.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_remote_device.c   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_remote_device.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_request.c   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_request.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_state.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_state_machine.c   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_state_machine.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_state_machine_logger.c   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_state_machine_logger.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_state_machine_observer.c   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_state_machine_observer.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_subject.c   (props changed)
  stable/9/sys/dev/isci/scil/sci_base_subject.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_controller.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_controller_constants.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_fast_list.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_iterator.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_library.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_logger.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_memory_descriptor_list.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_memory_descriptor_list_decorator.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_object.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_overview.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_pool.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_simple_list.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_status.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_types.h   (props changed)
  stable/9/sys/dev/isci/scil/sci_util.c   (props changed)
  stable/9/sys/dev/isci/scil/sci_util.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_config_parameters.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_controller.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_io_request.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_library.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_logger.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_overview.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_phy.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_port.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_remote_device.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_controller.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_controller_registers.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_library.c   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_library.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_logger.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_pci.c   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_pci.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_phy.c   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_phy.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_phy_registers.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_port.c   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_port.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_port_configuration_agent.c   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_port_configuration_agent.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_port_registers.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_remote_device.c   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_remote_device.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_remote_node_context.c   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_remote_node_context.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_remote_node_table.c   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_remote_node_table.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_request.c   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_request.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_sgpio.c   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_smp_remote_device.c   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_smp_request.c   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_smp_request.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_ssp_request.c   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_stp_packet_request.c   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_stp_packet_request.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_stp_pio_request.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_stp_remote_device.c   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_stp_request.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_unsolicited_frame_control.c   (props changed)
  stable/9/sys/dev/isci/scil/scic_sds_unsolicited_frame_control.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_sgpio.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_task_request.h   (props changed)
  stable/9/sys/dev/isci/scil/scic_user_callback.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_config_parameters.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_controller.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_domain.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_io_request.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_library.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_logger.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_overview.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_remote_device.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_constants.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_controller.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_controller_states.c   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_design.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_domain.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_domain_state_handlers.c   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_domain_states.c   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_high_priority_request_queue.c   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_high_priority_request_queue.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_internal_io_request.c   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_internal_io_request.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_io_request.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_io_request_state_handlers.c   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_io_request_states.c   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_library.c   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_library.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_logger.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_remote_device.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_remote_device_ready_substate_handlers.c   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_remote_device_starting_substate_handlers.c   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_remote_device_starting_substates.c   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_remote_device_state_handlers.c   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_remote_device_states.c   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_request.c   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_request.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_sati_binding.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_smp_activity_clear_affiliation.c   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_smp_io_request.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_smp_phy.c   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_smp_phy.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_smp_remote_device.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_stp_io_request.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_stp_remote_device.c   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_stp_remote_device.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_stp_task_request.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_task_request.c   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_task_request.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_task_request_state_handlers.c   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_task_request_states.c   (props changed)
  stable/9/sys/dev/isci/scil/scif_sas_timer.c   (props changed)
  stable/9/sys/dev/isci/scil/scif_task_request.h   (props changed)
  stable/9/sys/dev/isci/scil/scif_user_callback.h   (props changed)
  stable/9/sys/dev/isci/scil/scu_bios_definitions.h   (props changed)
  stable/9/sys/dev/isci/scil/scu_completion_codes.h   (props changed)
  stable/9/sys/dev/isci/scil/scu_constants.h   (props changed)
  stable/9/sys/dev/isci/scil/scu_event_codes.h   (props changed)
  stable/9/sys/dev/isci/scil/scu_registers.h   (props changed)
  stable/9/sys/dev/isci/scil/scu_remote_node_context.h   (props changed)
  stable/9/sys/dev/isci/scil/scu_task_context.h   (props changed)
  stable/9/sys/dev/isci/scil/scu_unsolicited_frame.h   (props changed)
  stable/9/sys/dev/isci/scil/scu_viit_data.h   (props changed)
  stable/9/sys/dev/isci/types.h   (props changed)

Modified: stable/9/MAINTAINERS
==============================================================================
--- stable/9/MAINTAINERS	Tue Feb 14 15:56:01 2012	(r231688)
+++ stable/9/MAINTAINERS	Tue Feb 14 15:58:49 2012	(r231689)
@@ -126,6 +126,7 @@ lib/libc/stdtime	edwin   Heads-up apprec
 sysinstall	randi	Please contact about any major changes so that
 			they can be co-ordinated.
 sbin/routed	bms	Pre-commit review; notify vendor at rhyolite.com
+isci(4)		jimharris	Pre-commit review requested.
 
 Following are the entries from the Makefiles, and a few other sources.
 Please remove stale entries from both their origin, and this file.

Modified: stable/9/share/man/man4/Makefile
==============================================================================
--- stable/9/share/man/man4/Makefile	Tue Feb 14 15:56:01 2012	(r231688)
+++ stable/9/share/man/man4/Makefile	Tue Feb 14 15:58:49 2012	(r231689)
@@ -182,6 +182,7 @@ MAN=	aac.4 \
 	ipsec.4 \
 	ipw.4 \
 	ipwfw.4 \
+	isci.4 \
 	iscsi_initiator.4 \
 	isp.4 \
 	ispfw.4 \

Copied: stable/9/share/man/man4/isci.4 (from r230843, head/share/man/man4/isci.4)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/9/share/man/man4/isci.4	Tue Feb 14 15:58:49 2012	(r231689, copy of r230843, head/share/man/man4/isci.4)
@@ -0,0 +1,110 @@
+.\" 
+.\" Copyright (c) 2012 Intel Corporation
+.\" All rights reserved.
+.\" 
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"    notice, this list of conditions, and the following disclaimer,
+.\"    without modification.
+.\" 2. Redistributions in binary form must reproduce at minimum a disclaimer
+.\"    substantially similar to the "NO WARRANTY" disclaimer below
+.\"    ("Disclaimer") and any redistribution must be conditioned upon
+.\"    including a substantially similar Disclaimer requirement for further
+.\"    binary redistribution.
+.\" 
+.\" NO WARRANTY
+.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
+.\" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+.\" HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+.\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+.\" POSSIBILITY OF SUCH DAMAGES.
+.\" 
+.\" isci driver man page.
+.\"
+.\" Author: Jim Harris <jimharris at FreeBSD.org>
+.\"
+.\" $FreeBSD$
+.\"
+.Dd January 23, 2012
+.Dt ISCI 4
+.Os
+.Sh NAME
+.Nm isci
+.Nd Intel C600 Serial Attached SCSI driver
+.Sh SYNOPSIS
+To compile this driver into your kernel,
+place the following lines in your kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device scbus"
+.Cd "device isci"
+.Ed
+.Pp
+Or, to load the driver as a module at boot, place the following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+isci_load="YES"
+.Ed
+.Sh DESCRIPTION
+The
+.Nm
+driver provides support for Intel C600
+.Tn SAS
+controller.
+.Sh CONFIGURATION
+To force legacy interrupts for all
+.Nm
+driver instances, set the following tunable value in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+hw.isci.force_legacy_interrupts=1
+.Ed
+.Sh DEBUGGING
+To enable debugging prints from the
+.Nm
+driver, set the
+.Bd -literal -offset indent
+hw.isci.debug_level
+.Ed
+.Pp
+variable to a value between 1 and 4 in
+.Xr loader.conf 5 .
+.Pp
+The hardware layer in the isci driver has extensive logging capabilities
+which are disabled by default for performance reasons.  These can be enabled
+by adding
+.Bd -literal -offset indent
+options ISCI_LOGGING
+.Ed
+.Pp
+to the kernel configuration file. 
+.Sh SEE ALSO
+.Xr cd 4 ,
+.Xr ch 4 ,
+.Xr da 4 ,
+.Xr pci 4 ,
+.Xr sa 4 ,
+.Xr scsi 4 .
+.Sh HISTORY
+The
+.Nm
+driver first appeared in
+.Fx 10.0 .
+.Sh AUTHORS
+.An -nosplit
+The
+.Nm
+driver was developed by Intel and originally written by
+.An Jim Harris Aq jimharris at FreeBSD.org
+with contributions from Sohaib Ahsan and input from
+.An Scott Long Aq scottl at FreeBSD.org .
+.Pp
+This man page was written by
+.An Jim Harris Aq jimharris at FreeBSD.org .

Modified: stable/9/sys/amd64/conf/GENERIC
==============================================================================
--- stable/9/sys/amd64/conf/GENERIC	Tue Feb 14 15:56:01 2012	(r231688)
+++ stable/9/sys/amd64/conf/GENERIC	Tue Feb 14 15:58:49 2012	(r231689)
@@ -109,6 +109,7 @@ device		adv		# Advansys SCSI adapters
 device		adw		# Advansys wide SCSI adapters
 device		aic		# Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
 device		bt		# Buslogic/Mylex MultiMaster SCSI adapters
+device		isci		# Intel C600 SAS controller
 
 # ATA/SCSI peripherals
 device		scbus		# SCSI bus (required for ATA/SCSI)

Modified: stable/9/sys/amd64/conf/NOTES
==============================================================================
--- stable/9/sys/amd64/conf/NOTES	Tue Feb 14 15:56:01 2012	(r231688)
+++ stable/9/sys/amd64/conf/NOTES	Tue Feb 14 15:58:49 2012	(r231689)
@@ -409,6 +409,11 @@ device		hptiop
 device		ips
 
 #
+# Intel C600 (Patsburg) integrated SAS controller
+device		isci
+options		ISCI_LOGGING	# enable debugging in isci HAL
+
+#
 # SafeNet crypto driver: can be moved to the MI NOTES as soon as
 # it's tested on a big-endian machine
 #

Modified: stable/9/sys/conf/files.amd64
==============================================================================
--- stable/9/sys/conf/files.amd64	Tue Feb 14 15:56:01 2012	(r231688)
+++ stable/9/sys/conf/files.amd64	Tue Feb 14 15:58:49 2012	(r231689)
@@ -269,6 +269,115 @@ dev/tpm/tpm_isa.c		optional	tpm isa
 dev/uart/uart_cpu_amd64.c	optional	uart
 dev/viawd/viawd.c		optional	viawd
 dev/wpi/if_wpi.c		optional	wpi
+dev/isci/isci.c							optional isci
+dev/isci/isci_controller.c					optional isci
+dev/isci/isci_domain.c						optional isci
+dev/isci/isci_interrupt.c					optional isci
+dev/isci/isci_io_request.c					optional isci
+dev/isci/isci_logger.c						optional isci
+dev/isci/isci_oem_parameters.c					optional isci
+dev/isci/isci_remote_device.c					optional isci
+dev/isci/isci_sysctl.c						optional isci
+dev/isci/isci_task_request.c					optional isci
+dev/isci/isci_timer.c						optional isci
+dev/isci/scil/sati.c						optional isci
+dev/isci/scil/sati_abort_task_set.c				optional isci
+dev/isci/scil/sati_atapi.c					optional isci
+dev/isci/scil/sati_device.c					optional isci
+dev/isci/scil/sati_inquiry.c					optional isci
+dev/isci/scil/sati_log_sense.c					optional isci
+dev/isci/scil/sati_lun_reset.c					optional isci
+dev/isci/scil/sati_mode_pages.c					optional isci
+dev/isci/scil/sati_mode_select.c				optional isci
+dev/isci/scil/sati_mode_sense.c					optional isci
+dev/isci/scil/sati_mode_sense_10.c				optional isci
+dev/isci/scil/sati_mode_sense_6.c				optional isci
+dev/isci/scil/sati_move.c					optional isci
+dev/isci/scil/sati_passthrough.c				optional isci
+dev/isci/scil/sati_read.c					optional isci
+dev/isci/scil/sati_read_buffer.c				optional isci
+dev/isci/scil/sati_read_capacity.c				optional isci
+dev/isci/scil/sati_reassign_blocks.c				optional isci
+dev/isci/scil/sati_report_luns.c				optional isci
+dev/isci/scil/sati_request_sense.c				optional isci
+dev/isci/scil/sati_start_stop_unit.c				optional isci
+dev/isci/scil/sati_synchronize_cache.c				optional isci
+dev/isci/scil/sati_test_unit_ready.c				optional isci
+dev/isci/scil/sati_unmap.c					optional isci
+dev/isci/scil/sati_util.c					optional isci
+dev/isci/scil/sati_verify.c					optional isci
+dev/isci/scil/sati_write.c					optional isci
+dev/isci/scil/sati_write_and_verify.c				optional isci
+dev/isci/scil/sati_write_buffer.c				optional isci
+dev/isci/scil/sati_write_long.c					optional isci
+dev/isci/scil/sci_abstract_list.c				optional isci
+dev/isci/scil/sci_base_controller.c				optional isci
+dev/isci/scil/sci_base_domain.c					optional isci
+dev/isci/scil/sci_base_iterator.c				optional isci
+dev/isci/scil/sci_base_library.c				optional isci
+dev/isci/scil/sci_base_logger.c					optional isci
+dev/isci/scil/sci_base_memory_descriptor_list.c			optional isci
+dev/isci/scil/sci_base_memory_descriptor_list_decorator.c	optional isci
+dev/isci/scil/sci_base_object.c					optional isci
+dev/isci/scil/sci_base_observer.c				optional isci
+dev/isci/scil/sci_base_phy.c					optional isci
+dev/isci/scil/sci_base_port.c					optional isci
+dev/isci/scil/sci_base_remote_device.c				optional isci
+dev/isci/scil/sci_base_request.c				optional isci
+dev/isci/scil/sci_base_state_machine.c				optional isci
+dev/isci/scil/sci_base_state_machine_logger.c			optional isci
+dev/isci/scil/sci_base_state_machine_observer.c			optional isci
+dev/isci/scil/sci_base_subject.c				optional isci
+dev/isci/scil/sci_util.c					optional isci
+dev/isci/scil/scic_sds_controller.c				optional isci
+dev/isci/scil/scic_sds_library.c				optional isci
+dev/isci/scil/scic_sds_pci.c					optional isci
+dev/isci/scil/scic_sds_phy.c					optional isci
+dev/isci/scil/scic_sds_port.c					optional isci
+dev/isci/scil/scic_sds_port_configuration_agent.c		optional isci
+dev/isci/scil/scic_sds_remote_device.c				optional isci
+dev/isci/scil/scic_sds_remote_node_context.c			optional isci
+dev/isci/scil/scic_sds_remote_node_table.c			optional isci
+dev/isci/scil/scic_sds_request.c				optional isci
+dev/isci/scil/scic_sds_sgpio.c					optional isci
+dev/isci/scil/scic_sds_smp_remote_device.c			optional isci
+dev/isci/scil/scic_sds_smp_request.c				optional isci
+dev/isci/scil/scic_sds_ssp_request.c				optional isci
+dev/isci/scil/scic_sds_stp_packet_request.c			optional isci
+dev/isci/scil/scic_sds_stp_remote_device.c			optional isci
+dev/isci/scil/scic_sds_stp_request.c				optional isci
+dev/isci/scil/scic_sds_unsolicited_frame_control.c		optional isci
+dev/isci/scil/scif_sas_controller.c				optional isci
+dev/isci/scil/scif_sas_controller_state_handlers.c		optional isci
+dev/isci/scil/scif_sas_controller_states.c			optional isci
+dev/isci/scil/scif_sas_domain.c					optional isci
+dev/isci/scil/scif_sas_domain_state_handlers.c			optional isci
+dev/isci/scil/scif_sas_domain_states.c				optional isci
+dev/isci/scil/scif_sas_high_priority_request_queue.c		optional isci
+dev/isci/scil/scif_sas_internal_io_request.c			optional isci
+dev/isci/scil/scif_sas_io_request.c				optional isci
+dev/isci/scil/scif_sas_io_request_state_handlers.c		optional isci
+dev/isci/scil/scif_sas_io_request_states.c			optional isci
+dev/isci/scil/scif_sas_library.c				optional isci
+dev/isci/scil/scif_sas_remote_device.c				optional isci
+dev/isci/scil/scif_sas_remote_device_ready_substate_handlers.c	optional isci
+dev/isci/scil/scif_sas_remote_device_ready_substates.c		optional isci
+dev/isci/scil/scif_sas_remote_device_starting_substate_handlers.c		optional isci
+dev/isci/scil/scif_sas_remote_device_starting_substates.c	optional isci
+dev/isci/scil/scif_sas_remote_device_state_handlers.c		optional isci
+dev/isci/scil/scif_sas_remote_device_states.c			optional isci
+dev/isci/scil/scif_sas_request.c				optional isci
+dev/isci/scil/scif_sas_smp_activity_clear_affiliation.c		optional isci
+dev/isci/scil/scif_sas_smp_io_request.c				optional isci
+dev/isci/scil/scif_sas_smp_phy.c				optional isci
+dev/isci/scil/scif_sas_smp_remote_device.c			optional isci
+dev/isci/scil/scif_sas_stp_io_request.c				optional isci
+dev/isci/scil/scif_sas_stp_remote_device.c			optional isci
+dev/isci/scil/scif_sas_stp_task_request.c			optional isci
+dev/isci/scil/scif_sas_task_request.c				optional isci
+dev/isci/scil/scif_sas_task_request_state_handlers.c		optional isci
+dev/isci/scil/scif_sas_task_request_states.c			optional isci
+dev/isci/scil/scif_sas_timer.c					optional isci
 isa/syscons_isa.c		optional	sc
 isa/vga_isa.c			optional	vga
 kern/kern_clocksource.c		standard

Modified: stable/9/sys/conf/files.i386
==============================================================================
--- stable/9/sys/conf/files.i386	Tue Feb 14 15:56:01 2012	(r231688)
+++ stable/9/sys/conf/files.i386	Tue Feb 14 15:58:49 2012	(r231689)
@@ -248,6 +248,115 @@ dev/viawd/viawd.c		optional viawd
 dev/acpica/acpi_if.m		standard
 dev/acpi_support/acpi_wmi_if.m	standard
 dev/wpi/if_wpi.c		optional wpi
+dev/isci/isci.c							optional isci
+dev/isci/isci_controller.c					optional isci
+dev/isci/isci_domain.c						optional isci
+dev/isci/isci_interrupt.c					optional isci
+dev/isci/isci_io_request.c					optional isci
+dev/isci/isci_logger.c						optional isci
+dev/isci/isci_oem_parameters.c					optional isci
+dev/isci/isci_remote_device.c					optional isci
+dev/isci/isci_sysctl.c						optional isci
+dev/isci/isci_task_request.c					optional isci
+dev/isci/isci_timer.c						optional isci
+dev/isci/scil/sati.c						optional isci
+dev/isci/scil/sati_abort_task_set.c				optional isci
+dev/isci/scil/sati_atapi.c					optional isci
+dev/isci/scil/sati_device.c					optional isci
+dev/isci/scil/sati_inquiry.c					optional isci
+dev/isci/scil/sati_log_sense.c					optional isci
+dev/isci/scil/sati_lun_reset.c					optional isci
+dev/isci/scil/sati_mode_pages.c					optional isci
+dev/isci/scil/sati_mode_select.c				optional isci
+dev/isci/scil/sati_mode_sense.c					optional isci
+dev/isci/scil/sati_mode_sense_10.c				optional isci
+dev/isci/scil/sati_mode_sense_6.c				optional isci
+dev/isci/scil/sati_move.c					optional isci
+dev/isci/scil/sati_passthrough.c				optional isci
+dev/isci/scil/sati_read.c					optional isci
+dev/isci/scil/sati_read_buffer.c				optional isci
+dev/isci/scil/sati_read_capacity.c				optional isci
+dev/isci/scil/sati_reassign_blocks.c				optional isci
+dev/isci/scil/sati_report_luns.c				optional isci
+dev/isci/scil/sati_request_sense.c				optional isci
+dev/isci/scil/sati_start_stop_unit.c				optional isci
+dev/isci/scil/sati_synchronize_cache.c				optional isci
+dev/isci/scil/sati_test_unit_ready.c				optional isci
+dev/isci/scil/sati_unmap.c					optional isci
+dev/isci/scil/sati_util.c					optional isci
+dev/isci/scil/sati_verify.c					optional isci
+dev/isci/scil/sati_write.c					optional isci
+dev/isci/scil/sati_write_and_verify.c				optional isci
+dev/isci/scil/sati_write_buffer.c				optional isci
+dev/isci/scil/sati_write_long.c					optional isci
+dev/isci/scil/sci_abstract_list.c				optional isci
+dev/isci/scil/sci_base_controller.c				optional isci
+dev/isci/scil/sci_base_domain.c					optional isci
+dev/isci/scil/sci_base_iterator.c				optional isci
+dev/isci/scil/sci_base_library.c				optional isci
+dev/isci/scil/sci_base_logger.c					optional isci
+dev/isci/scil/sci_base_memory_descriptor_list.c			optional isci
+dev/isci/scil/sci_base_memory_descriptor_list_decorator.c	optional isci
+dev/isci/scil/sci_base_object.c					optional isci
+dev/isci/scil/sci_base_observer.c				optional isci
+dev/isci/scil/sci_base_phy.c					optional isci
+dev/isci/scil/sci_base_port.c					optional isci
+dev/isci/scil/sci_base_remote_device.c				optional isci
+dev/isci/scil/sci_base_request.c				optional isci
+dev/isci/scil/sci_base_state_machine.c				optional isci
+dev/isci/scil/sci_base_state_machine_logger.c			optional isci
+dev/isci/scil/sci_base_state_machine_observer.c			optional isci
+dev/isci/scil/sci_base_subject.c				optional isci
+dev/isci/scil/sci_util.c					optional isci
+dev/isci/scil/scic_sds_controller.c				optional isci
+dev/isci/scil/scic_sds_library.c				optional isci
+dev/isci/scil/scic_sds_pci.c					optional isci
+dev/isci/scil/scic_sds_phy.c					optional isci
+dev/isci/scil/scic_sds_port.c					optional isci
+dev/isci/scil/scic_sds_port_configuration_agent.c		optional isci
+dev/isci/scil/scic_sds_remote_device.c				optional isci
+dev/isci/scil/scic_sds_remote_node_context.c			optional isci
+dev/isci/scil/scic_sds_remote_node_table.c			optional isci
+dev/isci/scil/scic_sds_request.c				optional isci
+dev/isci/scil/scic_sds_sgpio.c					optional isci
+dev/isci/scil/scic_sds_smp_remote_device.c			optional isci
+dev/isci/scil/scic_sds_smp_request.c				optional isci
+dev/isci/scil/scic_sds_ssp_request.c				optional isci
+dev/isci/scil/scic_sds_stp_packet_request.c			optional isci
+dev/isci/scil/scic_sds_stp_remote_device.c			optional isci
+dev/isci/scil/scic_sds_stp_request.c				optional isci
+dev/isci/scil/scic_sds_unsolicited_frame_control.c		optional isci
+dev/isci/scil/scif_sas_controller.c				optional isci
+dev/isci/scil/scif_sas_controller_state_handlers.c		optional isci
+dev/isci/scil/scif_sas_controller_states.c			optional isci
+dev/isci/scil/scif_sas_domain.c					optional isci
+dev/isci/scil/scif_sas_domain_state_handlers.c			optional isci
+dev/isci/scil/scif_sas_domain_states.c				optional isci
+dev/isci/scil/scif_sas_high_priority_request_queue.c		optional isci
+dev/isci/scil/scif_sas_internal_io_request.c			optional isci
+dev/isci/scil/scif_sas_io_request.c				optional isci
+dev/isci/scil/scif_sas_io_request_state_handlers.c		optional isci
+dev/isci/scil/scif_sas_io_request_states.c			optional isci
+dev/isci/scil/scif_sas_library.c				optional isci
+dev/isci/scil/scif_sas_remote_device.c				optional isci
+dev/isci/scil/scif_sas_remote_device_ready_substate_handlers.c	optional isci
+dev/isci/scil/scif_sas_remote_device_ready_substates.c		optional isci
+dev/isci/scil/scif_sas_remote_device_starting_substate_handlers.c		optional isci
+dev/isci/scil/scif_sas_remote_device_starting_substates.c	optional isci
+dev/isci/scil/scif_sas_remote_device_state_handlers.c		optional isci
+dev/isci/scil/scif_sas_remote_device_states.c			optional isci
+dev/isci/scil/scif_sas_request.c				optional isci
+dev/isci/scil/scif_sas_smp_activity_clear_affiliation.c		optional isci
+dev/isci/scil/scif_sas_smp_io_request.c				optional isci
+dev/isci/scil/scif_sas_smp_phy.c				optional isci
+dev/isci/scil/scif_sas_smp_remote_device.c			optional isci
+dev/isci/scil/scif_sas_stp_io_request.c				optional isci
+dev/isci/scil/scif_sas_stp_remote_device.c			optional isci
+dev/isci/scil/scif_sas_stp_task_request.c			optional isci
+dev/isci/scil/scif_sas_task_request.c				optional isci
+dev/isci/scil/scif_sas_task_request_state_handlers.c		optional isci
+dev/isci/scil/scif_sas_task_request_states.c			optional isci
+dev/isci/scil/scif_sas_timer.c					optional isci
 i386/acpica/acpi_machdep.c	optional acpi
 acpi_wakecode.o			optional acpi				\
 	dependency	"$S/i386/acpica/acpi_wakecode.S assym.s"	\

Modified: stable/9/sys/conf/options.amd64
==============================================================================
--- stable/9/sys/conf/options.amd64	Tue Feb 14 15:56:01 2012	(r231688)
+++ stable/9/sys/conf/options.amd64	Tue Feb 14 15:58:49 2012	(r231689)
@@ -65,3 +65,6 @@ KDTRACE_FRAME		opt_kdtrace.h
 BPF_JITTER		opt_bpf.h
 
 XENHVM			opt_global.h
+
+# options for the Intel C600 SAS driver (isci)
+ISCI_LOGGING	opt_isci.h

Modified: stable/9/sys/conf/options.i386
==============================================================================
--- stable/9/sys/conf/options.i386	Tue Feb 14 15:56:01 2012	(r231688)
+++ stable/9/sys/conf/options.i386	Tue Feb 14 15:58:49 2012	(r231689)
@@ -119,3 +119,6 @@ BPF_JITTER		opt_bpf.h
 NATIVE			opt_global.h
 XEN			opt_global.h
 XENHVM			opt_global.h
+
+# options for the Intel C600 SAS driver (isci)
+ISCI_LOGGING	opt_isci.h

Modified: stable/9/sys/dev/isci/isci.h
==============================================================================
--- head/sys/dev/isci/isci.h	Tue Jan 31 19:38:18 2012	(r230843)
+++ stable/9/sys/dev/isci/isci.h	Tue Feb 14 15:58:49 2012	(r231689)
@@ -160,7 +160,6 @@ struct ISCI_REQUEST
 struct ISCI_IO_REQUEST
 {
 	struct ISCI_REQUEST	parent;
-	SCI_STATUS		status;
 	SCI_IO_REQUEST_HANDLE_T	sci_object;
 	union ccb		*ccb;
 	uint32_t		num_segments;

Modified: stable/9/sys/dev/isci/isci_io_request.c
==============================================================================
--- head/sys/dev/isci/isci_io_request.c	Tue Jan 31 19:38:18 2012	(r230843)
+++ stable/9/sys/dev/isci/isci_io_request.c	Tue Feb 14 15:58:49 2012	(r231689)
@@ -626,16 +626,16 @@ isci_io_request_construct(void *arg, bus
 		return;
 	}
 
-	io_request->status = scif_io_request_construct(
+	status = scif_io_request_construct(
 	    io_request->parent.controller_handle,
 	    io_request->parent.remote_device_handle,
 	    SCI_CONTROLLER_INVALID_IO_TAG, (void *)io_request,
 	    (void *)((char*)io_request + sizeof(struct ISCI_IO_REQUEST)),
 	    &io_request->sci_object);
 
-	if (io_request->status != SCI_SUCCESS) {
+	if (status != SCI_SUCCESS) {
 		isci_io_request_complete(io_request->parent.controller_handle,
-		    device, io_request, io_request->status);
+		    device, io_request, (SCI_IO_STATUS)status);
 		return;
 	}
 
@@ -650,7 +650,7 @@ isci_io_request_construct(void *arg, bus
 
 	if (status != SCI_SUCCESS) {
 		isci_io_request_complete(io_request->parent.controller_handle,
-		    device, io_request, status);
+		    device, io_request, (SCI_IO_STATUS)status);
 		return;
 	}
 
@@ -900,7 +900,7 @@ isci_io_request_execute_smp_io(union ccb
 
 	if (status != SCI_SUCCESS) {
 		isci_io_request_complete(controller->scif_controller_handle,
-		    smp_device_handle, io_request, status);
+		    smp_device_handle, io_request, (SCI_IO_STATUS)status);
 		return;
 	}
 
@@ -912,7 +912,7 @@ isci_io_request_execute_smp_io(union ccb
 
 	if (status != SCI_SUCCESS) {
 		isci_io_request_complete(controller->scif_controller_handle,
-		    smp_device_handle, io_request, status);
+		    smp_device_handle, io_request, (SCI_IO_STATUS)status);
 		return;
 	}
 

Modified: stable/9/sys/dev/isci/isci_remote_device.c
==============================================================================
--- head/sys/dev/isci/isci_remote_device.c	Tue Jan 31 19:38:18 2012	(r230843)
+++ stable/9/sys/dev/isci/isci_remote_device.c	Tue Feb 14 15:58:49 2012	(r231689)
@@ -195,7 +195,7 @@ isci_remote_device_reset(struct ISCI_REM
 	if (status != SCI_SUCCESS) {
 		isci_task_request_complete(controller->scif_controller_handle,
 		    remote_device->sci_object, task_request->sci_object,
-		    status);
+		    (SCI_TASK_STATUS)status);
 		return;
 	}
 
@@ -207,7 +207,7 @@ isci_remote_device_reset(struct ISCI_REM
 		isci_task_request_complete(
 		    controller->scif_controller_handle,
 		    remote_device->sci_object, task_request->sci_object,
-		    status);
+		    (SCI_TASK_STATUS)status);
 		return;
 	}
 }

Modified: stable/9/sys/dev/isci/scil/sati_abort_task_set.c
==============================================================================
--- head/sys/dev/isci/scil/sati_abort_task_set.c	Tue Jan 31 19:38:18 2012	(r230843)
+++ stable/9/sys/dev/isci/scil/sati_abort_task_set.c	Tue Feb 14 15:58:49 2012	(r231689)
@@ -124,8 +124,8 @@ SATI_STATUS sati_abort_task_set_translat
 
    for (tag_index = 0; tag_index < 32; tag_index++)
    {
-      void     * matching_command;
-      SCI_STATUS completion_status;
+      void *        matching_command;
+      SCI_IO_STATUS completion_status;
       sati_cb_device_get_request_by_ncq_tag(
          scsi_task,
          tag_index,
@@ -141,7 +141,7 @@ SATI_STATUS sati_abort_task_set_translat
             )
          {
             sati_translate_error(sequence, matching_command, log->error);
-            completion_status = SCI_FAILURE_IO_RESPONSE_VALID;
+            completion_status = SCI_IO_FAILURE_RESPONSE_VALID;
 
             if(sequence->state == SATI_SEQUENCE_STATE_READ_ERROR)
             {
@@ -159,7 +159,7 @@ SATI_STATUS sati_abort_task_set_translat
          }
          else
          {
-            completion_status = SCI_FAILURE_IO_TERMINATED;
+            completion_status = SCI_IO_FAILURE_TERMINATED;
          }
 
          sati_cb_io_request_complete(matching_command, completion_status);

Modified: stable/9/sys/dev/isci/scil/scic_sds_controller.c
==============================================================================
--- head/sys/dev/isci/scil/scic_sds_controller.c	Tue Jan 31 19:38:18 2012	(r230843)
+++ stable/9/sys/dev/isci/scil/scic_sds_controller.c	Tue Feb 14 15:58:49 2012	(r231689)
@@ -4165,7 +4165,7 @@ SCI_IO_STATUS scic_controller_start_io(
    U16                        io_tag
 )
 {
-   SCI_IO_STATUS          status;
+   SCI_STATUS          status;
    SCIC_SDS_CONTROLLER_T *this_controller;
    this_controller = (SCIC_SDS_CONTROLLER_T *)controller;
 
@@ -4183,7 +4183,7 @@ SCI_IO_STATUS scic_controller_start_io(
                io_tag
             );
 
-   return status;
+   return (SCI_IO_STATUS)status;
 }
 
 // ---------------------------------------------------------------------------
@@ -4253,7 +4253,7 @@ SCI_TASK_STATUS scic_controller_start_ta
    U16                        task_tag
 )
 {
-   SCI_TASK_STATUS        status = SCI_FAILURE_INVALID_STATE;
+   SCI_STATUS             status = SCI_FAILURE_INVALID_STATE;
    SCIC_SDS_CONTROLLER_T *this_controller;
    this_controller = (SCIC_SDS_CONTROLLER_T *)controller;
 
@@ -4282,7 +4282,7 @@ SCI_TASK_STATUS scic_controller_start_ta
       ));
    }
 
-   return status;
+   return (SCI_TASK_STATUS)status;
 }
 
 // ---------------------------------------------------------------------------

Modified: stable/9/sys/dev/isci/scil/scic_sds_stp_request.c
==============================================================================
--- head/sys/dev/isci/scil/scic_sds_stp_request.c	Tue Jan 31 19:38:18 2012	(r230843)
+++ stable/9/sys/dev/isci/scil/scic_sds_stp_request.c	Tue Feb 14 15:58:49 2012	(r231689)
@@ -1124,9 +1124,6 @@ SCI_STATUS scic_sds_stp_request_pio_data
          if (status == SCI_SUCCESS)
          {
             this_sds_stp_request->type.pio.pio_transfer_bytes -= remaining_bytes_in_current_sgl;
-
-            //update the current sgl, sgl_offset and save for future
-            current_sgl = scic_sds_stp_request_pio_get_next_sgl(this_sds_stp_request);
             sgl_offset = 0;
          }
       }

Modified: stable/9/sys/dev/isci/scil/scif_sas_controller.c
==============================================================================
--- head/sys/dev/isci/scil/scif_sas_controller.c	Tue Jan 31 19:38:18 2012	(r230843)
+++ stable/9/sys/dev/isci/scil/scif_sas_controller.c	Tue Feb 14 15:58:49 2012	(r231689)
@@ -87,6 +87,10 @@ SCI_STATUS scif_controller_construct(
    SCIF_SAS_LIBRARY_T    * fw_library    = (SCIF_SAS_LIBRARY_T*) library;
    SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
 
+   // Validate the user supplied parameters.
+   if ((library == SCI_INVALID_HANDLE) || (controller == SCI_INVALID_HANDLE))
+      return SCI_FAILURE_INVALID_PARAMETER_VALUE;
+
    SCIF_LOG_TRACE((
       sci_base_object_get_logger(library),
       SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_INITIALIZATION,
@@ -94,10 +98,6 @@ SCI_STATUS scif_controller_construct(
       library, controller
    ));
 
-   // Validate the user supplied parameters.
-   if ((library == SCI_INVALID_HANDLE) || (controller == SCI_INVALID_HANDLE))
-      return SCI_FAILURE_INVALID_PARAMETER_VALUE;
-
    // Construct the base controller.  As part of constructing the base
    // controller we ask it to also manage the MDL iteration for the Core.
    sci_base_controller_construct(
@@ -144,6 +144,10 @@ SCI_STATUS scif_controller_initialize(
 {
    SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
 
+   // Validate the user supplied parameters.
+   if (controller == SCI_INVALID_HANDLE)
+      return SCI_FAILURE_INVALID_PARAMETER_VALUE;
+
    SCIF_LOG_TRACE((
       sci_base_object_get_logger(controller),
       SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_INITIALIZATION,
@@ -151,10 +155,6 @@ SCI_STATUS scif_controller_initialize(
       controller
    ));
 
-   // Validate the user supplied parameters.
-   if (controller == SCI_INVALID_HANDLE)
-      return SCI_FAILURE_INVALID_PARAMETER_VALUE;
-
    return fw_controller->state_handlers->initialize_handler(
              &fw_controller->parent
           );
@@ -187,6 +187,10 @@ SCI_STATUS scif_controller_start(
 {
    SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
 
+   // Validate the user supplied parameters.
+   if (controller == SCI_INVALID_HANDLE)
+      return SCI_FAILURE_INVALID_PARAMETER_VALUE;
+
    SCIF_LOG_TRACE((
       sci_base_object_get_logger(controller),
       SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_INITIALIZATION,
@@ -194,10 +198,6 @@ SCI_STATUS scif_controller_start(
       controller, timeout
    ));
 
-   // Validate the user supplied parameters.
-   if (controller == SCI_INVALID_HANDLE)
-      return SCI_FAILURE_INVALID_PARAMETER_VALUE;
-
    return fw_controller->state_handlers->
           start_handler(&fw_controller->parent, timeout);
 }
@@ -211,6 +211,10 @@ SCI_STATUS scif_controller_stop(
 {
    SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
 
+   // Validate the user supplied parameters.
+   if (controller == SCI_INVALID_HANDLE)
+      return SCI_FAILURE_INVALID_PARAMETER_VALUE;
+
    SCIF_LOG_TRACE((
       sci_base_object_get_logger(controller),
       SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_SHUTDOWN,
@@ -218,10 +222,6 @@ SCI_STATUS scif_controller_stop(
       controller, timeout
    ));
 
-   // Validate the user supplied parameters.
-   if (controller == SCI_INVALID_HANDLE)
-      return SCI_FAILURE_INVALID_PARAMETER_VALUE;
-
    return fw_controller->state_handlers->
           stop_handler(&fw_controller->parent, timeout);
 
@@ -235,6 +235,10 @@ SCI_STATUS scif_controller_reset(
 {
    SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
 
+   // Validate the user supplied parameters.
+   if (controller == SCI_INVALID_HANDLE)
+      return SCI_FAILURE_INVALID_PARAMETER_VALUE;
+
    SCIF_LOG_TRACE((
       sci_base_object_get_logger(controller),
       SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_CONTROLLER_RESET,
@@ -242,10 +246,6 @@ SCI_STATUS scif_controller_reset(
       controller
    ));
 
-   // Validate the user supplied parameters.
-   if (controller == SCI_INVALID_HANDLE)
-      return SCI_FAILURE_INVALID_PARAMETER_VALUE;
-
    return fw_controller->state_handlers->
           reset_handler(&fw_controller->parent);
 }
@@ -271,6 +271,7 @@ SCI_IO_STATUS scif_controller_start_io(
 )
 {
    SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
+   SCI_STATUS              status;
 
    SCIF_LOG_TRACE((
       sci_base_object_get_logger(controller),
@@ -284,7 +285,7 @@ SCI_IO_STATUS scif_controller_start_io(
       || scif_sas_controller_sufficient_resource(controller)
       )
    {
-      return fw_controller->state_handlers->start_io_handler(
+      status = fw_controller->state_handlers->start_io_handler(
                 (SCI_BASE_CONTROLLER_T*) controller,
                 (SCI_BASE_REMOTE_DEVICE_T*) remote_device,
                 (SCI_BASE_REQUEST_T*) io_request,
@@ -292,7 +293,9 @@ SCI_IO_STATUS scif_controller_start_io(
              );
    }
    else
-      return SCI_FAILURE_INSUFFICIENT_RESOURCES;
+      status = SCI_FAILURE_INSUFFICIENT_RESOURCES;
+
+   return (SCI_IO_STATUS)status;
 }
 
 // ---------------------------------------------------------------------------
@@ -305,25 +308,26 @@ SCI_TASK_STATUS scif_controller_start_ta
 )
 {
    SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
-
-   SCIF_LOG_TRACE((
-      sci_base_object_get_logger(controller),
-      SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_TASK_MANAGEMENT,
-      "scif_controller_start_task(0x%x, 0x%x, 0x%x, 0x%x) enter\n",
-      controller, remote_device, task_request, io_tag
-   ));
+   SCI_STATUS              status;
 
    // Validate the user supplied parameters.
    if (  (controller == SCI_INVALID_HANDLE)
       || (remote_device == SCI_INVALID_HANDLE)
       || (task_request == SCI_INVALID_HANDLE) )
    {
-      return SCI_FAILURE_INVALID_PARAMETER_VALUE;
+      return SCI_TASK_FAILURE_INVALID_PARAMETER_VALUE;
    }
 
+   SCIF_LOG_TRACE((
+      sci_base_object_get_logger(controller),
+      SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_TASK_MANAGEMENT,
+      "scif_controller_start_task(0x%x, 0x%x, 0x%x, 0x%x) enter\n",
+      controller, remote_device, task_request, io_tag
+   ));
+
    if (scif_sas_controller_sufficient_resource(controller))
    {
-      return fw_controller->state_handlers->start_task_handler(
+      status = fw_controller->state_handlers->start_task_handler(
              (SCI_BASE_CONTROLLER_T*) controller,
              (SCI_BASE_REMOTE_DEVICE_T*) remote_device,
              (SCI_BASE_REQUEST_T*) task_request,
@@ -331,7 +335,9 @@ SCI_TASK_STATUS scif_controller_start_ta
           );
    }
    else
-      return SCI_FAILURE_INSUFFICIENT_RESOURCES;
+      status = SCI_FAILURE_INSUFFICIENT_RESOURCES;
+
+   return (SCI_TASK_STATUS)status;
 }
 
 // ---------------------------------------------------------------------------
@@ -368,13 +374,6 @@ SCI_STATUS scif_controller_complete_task
 {
    SCIF_SAS_CONTROLLER_T * fw_controller = (SCIF_SAS_CONTROLLER_T*) controller;
 
-   SCIF_LOG_TRACE((
-      sci_base_object_get_logger(controller),
-      SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_TASK_MANAGEMENT,
-      "scif_controller_complete_task(0x%x, 0x%x, 0x%x) enter\n",
-      controller, remote_device, task_request
-   ));
-
    // Validate the user supplied parameters.
    if (  (controller == SCI_INVALID_HANDLE)
       || (remote_device == SCI_INVALID_HANDLE)
@@ -383,6 +382,13 @@ SCI_STATUS scif_controller_complete_task
       return SCI_FAILURE_INVALID_PARAMETER_VALUE;
    }
 
+   SCIF_LOG_TRACE((
+      sci_base_object_get_logger(controller),
+      SCIF_LOG_OBJECT_CONTROLLER | SCIF_LOG_OBJECT_TASK_MANAGEMENT,
+      "scif_controller_complete_task(0x%x, 0x%x, 0x%x) enter\n",
+      controller, remote_device, task_request
+   ));
+
    return fw_controller->state_handlers->complete_task_handler(
              (SCI_BASE_CONTROLLER_T*) controller,
              (SCI_BASE_REMOTE_DEVICE_T*) remote_device,

Modified: stable/9/sys/dev/isci/scil/scif_sas_controller_state_handlers.c
==============================================================================
--- head/sys/dev/isci/scil/scif_sas_controller_state_handlers.c	Tue Jan 31 19:38:18 2012	(r230843)
+++ stable/9/sys/dev/isci/scil/scif_sas_controller_state_handlers.c	Tue Feb 14 15:58:49 2012	(r231689)
@@ -586,7 +586,7 @@ SCI_STATUS scif_sas_controller_ready_sta
    if (status == SCI_SUCCESS)
    {
       // Ask the core to start processing for this IO request.
-      status = scic_controller_start_io(
+      status = (SCI_STATUS)scic_controller_start_io(
                   fw_controller->core_object,
                   fw_device->core_object,
                   fw_io->parent.core_object,
@@ -903,7 +903,7 @@ SCI_STATUS scif_sas_controller_ready_sta
       }
 
       // Ask the core to start processing for this task request.
-      status = scic_controller_start_task(
+      status = (SCI_STATUS)scic_controller_start_task(
                   fw_controller->core_object,
                   fw_device->core_object,
                   fw_task->parent.core_object,
@@ -1072,7 +1072,7 @@ SCI_STATUS scif_sas_controller_common_st
    if (status == SCI_SUCCESS)
    {
       // Ask the core to start processing for this IO request.
-      status = scic_controller_start_io(
+      status = (SCI_STATUS)scic_controller_start_io(
                   fw_controller->core_object,
                   fw_device->core_object,
                   fw_io->parent.core_object,
@@ -1683,7 +1683,7 @@ SCI_STATUS scif_sas_controller_failed_st
          &((SCIF_SAS_CONTROLLER_T *)controller)->parent.state_machine)
    ));
 
-   return SCI_IO_FAILURE;
+   return SCI_FAILURE;
 }
 
 #define scif_sas_controller_stopping_complete_io_handler   \

Modified: stable/9/sys/dev/isci/scil/scif_sas_domain.c
==============================================================================
--- head/sys/dev/isci/scil/scif_sas_domain.c	Tue Jan 31 19:38:18 2012	(r230843)
+++ stable/9/sys/dev/isci/scil/scif_sas_domain.c	Tue Feb 14 15:58:49 2012	(r231689)
@@ -142,8 +142,8 @@ SCI_PORT_HANDLE_T scif_domain_get_scic_p
 {
    SCIF_SAS_DOMAIN_T * fw_domain = (SCIF_SAS_DOMAIN_T*) domain;
 
-   if ( (fw_domain != NULL) && (fw_domain->core_object != SCI_INVALID_HANDLE) )
-      return fw_domain->core_object;
+   if ( (fw_domain == NULL) || (fw_domain->core_object == SCI_INVALID_HANDLE) )
+      return SCI_INVALID_HANDLE;
 
    SCIF_LOG_WARNING((
       sci_base_object_get_logger(fw_domain),
@@ -152,7 +152,7 @@ SCI_PORT_HANDLE_T scif_domain_get_scic_p
       fw_domain
    ));
 
-   return SCI_INVALID_HANDLE;
+   return fw_domain->core_object;
 }
 
 // ---------------------------------------------------------------------------

Modified: stable/9/sys/dev/isci/scil/scif_sas_io_request.c
==============================================================================
--- head/sys/dev/isci/scil/scif_sas_io_request.c	Tue Jan 31 19:38:18 2012	(r230843)
+++ stable/9/sys/dev/isci/scil/scif_sas_io_request.c	Tue Feb 14 15:58:49 2012	(r231689)
@@ -811,7 +811,7 @@ SCI_STATUS scif_sas_io_request_continue(
    );
 
    //start the new constructed IO.
-   return scif_controller_start_io(
+   return (SCI_STATUS)scif_controller_start_io(
              (SCI_CONTROLLER_HANDLE_T) fw_controller,
              (SCI_REMOTE_DEVICE_HANDLE_T) fw_device,
              (SCI_IO_REQUEST_HANDLE_T) fw_request,

Modified: stable/9/sys/dev/isci/scil/scif_sas_remote_device.c
==============================================================================
--- head/sys/dev/isci/scil/scif_sas_remote_device.c	Tue Jan 31 19:38:18 2012	(r230843)
+++ stable/9/sys/dev/isci/scil/scif_sas_remote_device.c	Tue Feb 14 15:58:49 2012	(r231689)
@@ -362,8 +362,8 @@ SCI_REMOTE_DEVICE_HANDLE_T scif_remote_d
    SCIF_SAS_REMOTE_DEVICE_T * fw_device = (SCIF_SAS_REMOTE_DEVICE_T*)
                                           scif_remote_device;
 
-   if ( (fw_device != NULL) && (fw_device->core_object != SCI_INVALID_HANDLE) )
-      return fw_device->core_object;
+   if ( (fw_device == NULL) || (fw_device->core_object == SCI_INVALID_HANDLE) )
+      return SCI_INVALID_HANDLE;
 
    SCIF_LOG_WARNING((
       sci_base_object_get_logger(fw_device),
@@ -372,7 +372,7 @@ SCI_REMOTE_DEVICE_HANDLE_T scif_remote_d
       fw_device
    ));
 
-   return SCI_INVALID_HANDLE;
+   return fw_device->core_object;
 }
 
 // ---------------------------------------------------------------------------

Modified: stable/9/sys/dev/isci/scil/scif_sas_remote_device_ready_substates.c
==============================================================================
--- head/sys/dev/isci/scil/scif_sas_remote_device_ready_substates.c	Tue Jan 31 19:38:18 2012	(r230843)
+++ stable/9/sys/dev/isci/scil/scif_sas_remote_device_ready_substates.c	Tue Feb 14 15:58:49 2012	(r231689)
@@ -255,7 +255,7 @@ void scif_sas_remote_device_ready_ncq_er
       }
    }
 
-   status = scif_controller_start_task(
+   scif_controller_start_task(
       fw_controller,
       fw_device,
       fw_request,

Modified: stable/9/sys/dev/isci/scil/scif_sas_smp_io_request.c
==============================================================================
--- head/sys/dev/isci/scil/scif_sas_smp_io_request.c	Tue Jan 31 19:38:18 2012	(r230843)
+++ stable/9/sys/dev/isci/scil/scif_sas_smp_io_request.c	Tue Feb 14 15:58:49 2012	(r231689)
@@ -580,7 +580,7 @@ SCI_STATUS scif_sas_smp_external_request
 
       default:
          //unsupported case, TBD
-         break;
+         return SCI_FAILURE;
    } //end of switch
 
    //set the retry count to new built smp request.

Modified: stable/9/sys/dev/isci/scil/scif_sas_smp_remote_device.c
==============================================================================
--- head/sys/dev/isci/scil/scif_sas_smp_remote_device.c	Tue Jan 31 19:38:18 2012	(r230843)
+++ stable/9/sys/dev/isci/scil/scif_sas_smp_remote_device.c	Tue Feb 14 15:58:49 2012	(r231689)
@@ -748,7 +748,6 @@ SCI_STATUS scif_sas_smp_remote_device_de
 {
    SCIF_SAS_DOMAIN_T  * fw_domain;
    SCI_SAS_ADDRESS_T attached_device_address;
-   SCIF_SAS_REMOTE_DEVICE_T * attached_remote_device;
    SMP_RESPONSE_DISCOVER_T * discover_response =
       &smp_response->response.discover;
 
@@ -782,13 +781,11 @@ SCI_STATUS scif_sas_smp_remote_device_de
       fw_domain = fw_device->domain;
       attached_device_address = discover_response->attached_sas_address;
 
-      attached_remote_device = (SCIF_SAS_REMOTE_DEVICE_T *)
-         scif_domain_get_device_by_sas_address(
-         fw_domain, &attached_device_address
-      );
-
       // the device should have already existed in the domian.
-      ASSERT (attached_remote_device != SCI_INVALID_HANDLE);
+      ASSERT(scif_domain_get_device_by_sas_address(
+                fw_domain,
+                &attached_device_address
+             ) != SCI_INVALID_HANDLE);
       return SCI_SUCCESS;
    }
    else
@@ -1774,6 +1771,8 @@ SCIF_SAS_SMP_PHY_T * scif_sas_smp_remote
    SCI_FAST_LIST_ELEMENT_T  * element = smp_remote_device->smp_phy_list.list_head;
    SCIF_SAS_SMP_PHY_T * curr_smp_phy = NULL;
 
+   ASSERT(phy_identifier < smp_remote_device->smp_phy_list.number_of_phys);
+
    while (element != NULL)
    {
       curr_smp_phy = (SCIF_SAS_SMP_PHY_T*) sci_fast_list_get_object(element);
@@ -1854,7 +1853,7 @@ void scif_sas_smp_remote_device_terminat
    ));
 
    scif_sas_smp_remote_device_decode_smp_response(
-      fw_device, fw_request, NULL, SCI_FAILURE_RETRY_REQUIRED
+      fw_device, fw_request, NULL, SCI_IO_FAILURE_RETRY_REQUIRED
    );
 }
 
@@ -1934,11 +1933,8 @@ SCI_STATUS scif_sas_smp_remote_device_sa
       scif_domain_get_device_by_sas_address(
          fw_device->domain, &discover_response->attached_sas_address);
 
-   if (smp_phy != NULL)
-   {
-      scif_sas_smp_phy_save_information(
-         smp_phy, attached_device, discover_response);
-   }
+   scif_sas_smp_phy_save_information(
+      smp_phy, attached_device, discover_response);
 
    //handle the special case of smp phys between expanders.
    if ( discover_response->protocols.u.bits.attached_smp_target )
@@ -2372,11 +2368,7 @@ void scif_sas_smp_remote_device_clean_ro
    SCIF_SAS_REMOTE_DEVICE_T * fw_device
 )
 {
-   SCIF_SAS_SMP_PHY_T * smp_phy_being_config =
-      scif_sas_smp_remote_device_find_smp_phy_by_id(
-         fw_device->protocol_device.smp_device.current_activity_phy_index,
-         &(fw_device->protocol_device.smp_device)
-      );
+   SCIF_SAS_SMP_PHY_T * smp_phy_being_config;
 
    SCIF_LOG_TRACE((
       sci_base_object_get_logger(fw_device),

Modified: stable/9/sys/dev/isci/scil/scif_sas_stp_io_request.c
==============================================================================
--- head/sys/dev/isci/scil/scif_sas_stp_io_request.c	Tue Jan 31 19:38:18 2012	(r230843)
+++ stable/9/sys/dev/isci/scil/scif_sas_stp_io_request.c	Tue Feb 14 15:58:49 2012	(r231689)
@@ -396,7 +396,7 @@ SCI_STATUS scif_sas_stp_io_request_const
       fw_io->parent.protocol_complete_handler
          = scif_sas_stp_core_cb_io_request_complete_handler;
       // Done with translation
-      sci_status = SATI_SUCCESS;
+      sci_status = SCI_SUCCESS;
    }
    else if (sati_status == SATI_COMPLETE)
       sci_status = SCI_SUCCESS_IO_COMPLETE_BEFORE_START;

Modified: stable/9/sys/dev/isci/scil/scif_sas_stp_task_request.c
==============================================================================
--- head/sys/dev/isci/scil/scif_sas_stp_task_request.c	Tue Jan 31 19:38:18 2012	(r230843)
+++ stable/9/sys/dev/isci/scil/scif_sas_stp_task_request.c	Tue Feb 14 15:58:49 2012	(r231689)
@@ -254,7 +254,7 @@ void scif_sas_stp_task_request_abort_tas
                fw_domain->controller,
                fw_device,
                pending_request,
-               SCI_FAILURE_IO_TERMINATED
+               SCI_IO_FAILURE_TERMINATED
             );
          }
          //otherwise, the abort succeeded. Since the waiting flag is cleared,

Modified: stable/9/sys/i386/conf/GENERIC
==============================================================================
--- stable/9/sys/i386/conf/GENERIC	Tue Feb 14 15:56:01 2012	(r231688)
+++ stable/9/sys/i386/conf/GENERIC	Tue Feb 14 15:58:49 2012	(r231689)
@@ -116,6 +116,7 @@ device		bt		# Buslogic/Mylex MultiMaster
 device		ncv		# NCR 53C500

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-stable-9 mailing list