DAC960 Stanford Checker fix
PATCH 1/1 DAC960 Stanford Checker fix
This was found by the Standford Checker.
The LogicalDeviceNumber bad range test was changed from > to >= I also replaced a couple of panic() calls with error messages, since panic-ing seemed a little extreme.
---------------------------------------------------------------------------
drivers/block/DAC960.c +11 -6
@@ -1729,12 +1729,17 @@if (!DAC960_V2_NewLogicalDeviceInfo (Controller, LogicalDeviceNumber))break ; LogicalDeviceNumber = NewLogicalDeviceInfo->LogicalDeviceNumber; -if (LogicalDeviceNumber > DAC960_MaxLogicalDrives) -panic ("DAC960: Logical Drive Number %d not supported\n" , - LogicalDeviceNumber); -if (NewLogicalDeviceInfo->DeviceBlockSizeInBytes != DAC960_BlockSize) -panic ("DAC960: Logical Drive Block Size %d not supported\n" , - NewLogicalDeviceInfo->DeviceBlockSizeInBytes); +if (LogicalDeviceNumber >= DAC960_MaxLogicalDrives) { +DAC960_Error ("DAC960: Logical Drive Number %d not supported\n" , + Controller, LogicalDeviceNumber); +break ; + } +if (NewLogicalDeviceInfo->DeviceBlockSizeInBytes != DAC960_BlockSize) { +DAC960_Error ("DAC960: Logical Drive Block Size %d not supported\n" , + Controller, NewLogicalDeviceInfo->DeviceBlockSizeInBytes); + LogicalDeviceNumber++; +continue ; + } PhysicalDevice.Controller =0 ; PhysicalDevice.Channel = NewLogicalDeviceInfo->Channel; PhysicalDevice.TargetID = NewLogicalDeviceInfo->TargetID;