I went through the kernel code path about how the shost->max_id is set. Function mptspi_probe sets it to ioc->devices_per_bus. The ioc->devices_per_bus comes from the pfacts->MaxDevices in GetPortFacts(). And GetPortFacts() uses MPI_FUNCTION_PORT_FACTS as the function to get the pfacts->MaxDevices. The ESX Lsilogic emulation sets MaxDevices to 16 for MPI_FUNCTION_PORT_FACTS. So it should be 16.
I have tried the kernel source 2.6.22.6 downloaded from kernel.org. It does not have this problem.
I went through the kernel code path about how the shost->max_id is set. Function mptspi_probe sets it to ioc->devices_ per_bus. The ioc->devices_ per_bus comes from the pfacts->MaxDevices in GetPortFacts(). And GetPortFacts() uses MPI_FUNCTION_ PORT_FACTS as the function to get the pfacts->MaxDevices. The ESX Lsilogic emulation sets MaxDevices to 16 for MPI_FUNCTION_ PORT_FACTS. So it should be 16.
I have tried the kernel source 2.6.22.6 downloaded from kernel.org. It does not have this problem.