Previously, any timeout value for which (timeout * hz) will overflow the signed integer, will give weird results, since callout(9) routines will convert negative values of ticks to '1'. For unsigned integer overflow we will get sufficiently smaller timeout values than expected. Switch from callout_reset, which requires conversion to int based ticks to callout_reset_sbt to avoid this. Also correct isci to correctly resolve ccb timeout. This was based on the original work done by Eygene Ryabinkin <rea@freebsd.org> back in 5 Aug 2011 which used a macro to help avoid the overlow. Differential Revision: https://reviews.freebsd.org/D1157 Reviewed by: mav, davide MFC after: 1 month Sponsored by: Multiplay |
||
---|---|---|
.. | ||
scil | ||
environment.h | ||
isci_controller.c | ||
isci_domain.c | ||
isci_interrupt.c | ||
isci_io_request.c | ||
isci_logger.c | ||
isci_oem_parameters.c | ||
isci_remote_device.c | ||
isci_sysctl.c | ||
isci_task_request.c | ||
isci_timer.c | ||
isci.c | ||
isci.h | ||
README | ||
sci_environment.h | ||
types.h |
FreeBSD Driver for Intel(R) C600 SAS Controller =============================================== This driver has been developed for use with FreeBSD, version 9.0 and later. This driver uses an OS-agnostic abstraction layer library named SCIL that is published by Intel specifically for the C600 SAS controller. The SAS controller has no firmware, so the driver is extensive and using SCIL minimizes the development and maintenance cost of the driver. The FreeBSD implementation files are in the isci directory, and SCIL files are in the isci/scil subdirectory. As Intel publishes new versions of SCIL (to add features or fix bugs), the isci/scil subdirectory will be updated appropriately.