Have you set these requirements in your port config info? I think lots of storage controllers have these requirements or even stricter of 16. I think SBP2PORT is maybe the only storage port that has no alignment requirement at all. If your driver gets a Read/Write buffer that does not meet your hardware aliment requirements just allocate buffer internally and use this buffer for DMA. For Write I/O make memory copy before DMA and for reading I/O after DMA. Because it should not happen often using the internal buffer would not harm device performance. Don't forget to free the internal buffer before completing SRB.
--If the reply is helpful, please Upvote and Accept it as an answer--