mptfusion: Corrected declaration of device_missing_delay
Subsystems (2)
PATCH 3/8 mptfusion: Corrected declaration of device_missing_delay
device missing delay is 8 bit value in io unit pg1. Making correct variable declaration for device_missing_delay.
The driver is storing the calculated device missing delay in IOC structure as a u8 instead of a u16. It needs to be a u16 if the delay is > 255.
Signed-off-by Kashyap Desai <[email protected]>
---
drivers/message/fusion/mptbase.h +1 -1
@@ -601,7 +601,7 @@ typedef struct _MPT_ADAPTERu16 nvdata_version_default;int debug_level;u8 io_missing_delay; -u8 device_missing_delay; +u16 device_missing_delay;SYSIF_REGS __iomem *chip;/* == c8817000 (mmap) */ SYSIF_REGS __iomem *pio_chip;/* Programmed IO (downloadboot) */ u8 bus_type;
drivers/message/fusion/mptsas.c +2 -2
@@ -2364,7 +2364,7 @@ mptsas_sas_io_unit_pg1(MPT_ADAPTER *ioc)SasIOUnitPage1_t *buffer;dma_addr_t dma_handle;int error; -u16 device_missing_delay; +u8 device_missing_delay;memset (&hdr,0 ,sizeof (ConfigExtendedPageHeader_t));memset (&cfg,0 ,sizeof (CONFIGPARMS ));
@@ -2401,7 +2401,7 @@ mptsas_sas_io_unit_pg1(MPT_ADAPTER *ioc) ioc->io_missing_delay =le16_to_cpu (buffer->IODeviceMissingDelay); - device_missing_delay =le16_to_cpu (buffer->ReportDeviceMissingDelay); + device_missing_delay = buffer->ReportDeviceMissingDelay; ioc->device_missing_delay = (device_missing_delay &MPI_SAS_IOUNIT1_REPORT_MISSING_UNIT_16 ) ? (device_missing_delay &MPI_SAS_IOUNIT1_REPORT_MISSING_TIMEOUT_MASK ) *16 : device_missing_delay &MPI_SAS_IOUNIT1_REPORT_MISSING_TIMEOUT_MASK ;