On Thu, Jan 10, 2019 at 12:11:53PM -0800, Tyrel Datwyler wrote:
> This allocation isn't a single use allocation. The driver is just lazy about 
> allocating our ext_list area for large SG lists (ie. SG_ALL). When the driver 
> was first written it only supported up to 10 indirect SRP buffers. James 
> Bottemley added the large SG support back in 2005 with the commit referenced 
> here in the fixes tag "4dddbc26c389". We only allocate the ext_list when we 
> come across a SG list requiring more than 10 indirect buffers. Once allocated 
> we will reuse if already allocated.

I think the right fix is to just allocate the buffer for the ext_list
as part of the scsi command using the .cmd_size field in the host
template, and then dma map it in queuecommand and unmap it on
completion. 

Reply via email to