We are porting a SCSI HBA driver to Solaris 9.0 using SCSA interface
on Solaris 9. We want to limit the total size of I/O requests coming
to the diver to 64KB.
SCSA provides scsi_ifgetcap() entry point - which the upper layer (sd
driver) is supposed to call to find out the limitation of our HBA
driver. But the sd never seem to call scsi_ifgetcap() for the
SCSI_CAP_DMA_MAX capability and we continue to get requests larger
We have tried setting dma_attr_maxxfer in the structure ddi_dma_attr
to 0xffff. This is also not helping either.
Are we missing something ? Is there any other way to limit the I/O
size coming to the driver ? Thanks.