Lines 2567-2572
Link Here
|
2567 |
pfacts->IOCStatus = le16_to_cpu(pfacts->IOCStatus); |
2567 |
pfacts->IOCStatus = le16_to_cpu(pfacts->IOCStatus); |
2568 |
pfacts->IOCLogInfo = le32_to_cpu(pfacts->IOCLogInfo); |
2568 |
pfacts->IOCLogInfo = le32_to_cpu(pfacts->IOCLogInfo); |
2569 |
pfacts->MaxDevices = le16_to_cpu(pfacts->MaxDevices); |
2569 |
pfacts->MaxDevices = le16_to_cpu(pfacts->MaxDevices); |
|
|
2570 |
/* |
2571 |
* VMware emulation is broken, its PortFact's MaxDevices reports value |
2572 |
* programmed by IOC Init, so if you program IOC Init to 256 (which is 0, |
2573 |
* as that field is only 8 bit), it reports back 0 in port facts, instead |
2574 |
* of 256... And unfortunately using 256 triggers another bug in the |
2575 |
* code (parallel SCSI can have only 16 devices). |
2576 |
*/ |
2577 |
if (pfacts->MaxDevices == 0) { |
2578 |
pfacts->MaxDevices = 16; |
2579 |
} |
2570 |
pfacts->PortSCSIID = le16_to_cpu(pfacts->PortSCSIID); |
2580 |
pfacts->PortSCSIID = le16_to_cpu(pfacts->PortSCSIID); |
2571 |
pfacts->ProtocolFlags = le16_to_cpu(pfacts->ProtocolFlags); |
2581 |
pfacts->ProtocolFlags = le16_to_cpu(pfacts->ProtocolFlags); |
2572 |
pfacts->MaxPostedCmdBuffers = le16_to_cpu(pfacts->MaxPostedCmdBuffers); |
2582 |
pfacts->MaxPostedCmdBuffers = le16_to_cpu(pfacts->MaxPostedCmdBuffers); |