Re: Fw: PROBLEM: Linux V. 2.6.3 panics with "Buffers at physical address >16Mb used for aha1542" at boot time

Jens Axboe
2004-02-20T19:38:00Z

On Fri, Feb 20 2004, James Bottomley wrote:
> On Fri, 2004-02-20 at 00:38, Jens Axboe wrote:
> > Hmm... James, sr_do_ioctl() used to do bouncing for private commands,
> > any reason it doesn't do that anymore?
>
> OK, I've looked through the file history, I can't find anywhere that it
> used to do this.

BTW, it used to do this inside sr_do_ioctl() as I wrote:

SRpnt->sr_request.buffer = buffer;
if (buffer && SRpnt->sr_host->unchecked_isa_dma &&
(virt_to_phys(buffer) + buflength - 1 > ISA_DMA_THRESHOLD)) {
bounce_buffer = (char *) scsi_malloc((buflength + 511) & ~511);
if (bounce_buffer == NULL) {
printk("SCSI DMA pool exhausted.");
return -ENOMEM;
}
memcpy(bounce_buffer, (char *) buffer, buflength);
buffer = bounce_buffer;
}

I haven't looked through BK to see where this got removed, it's clearly
a bug since noone this is basically the last place where you could
bounce.

--
Jens Axboe