Reserve one page for the DMA subsystem, that may need it when the I/O buffer is not page aligned.
Without this change, writes with the maximum allowed size failed, if:
- physical memory was fragmented, making it necessary to use one DMA segment for each page
- the buffer to be written was not page aligned, causing the DMA subsystem to need one extra segment
In the scenario above, the DMA subsystem would run out of segments, resulting in a write with no SG segments, that would fail.
(See also D30799, that improves DMA error reporting in aacraid)
This change also fixes an issue with the INQUIRY command, that may return the CAM_DATA_RUN_ERR code, even when it succeeds.
This happens during driver startup, causing the current and further inquiries to be aborted, resulting in some missing information about the controller.