[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#604627: linux-image-2.6.32-5-amd64: megasas: Failed to alloc kernel SGL buffer for IOCTL



Ben Hutchings <ben@decadent.org.uk> writes:
> On Tue, 2011-01-25 at 09:24 +0100, Bjørn Mork wrote:
>> Marc-Christian Petersen <m.c.p@gmx.de> writes:
>> 
>> > so, what's up with this fix? Any chance to get it into Debians kernel tree?
>> >
>> > It's kind of uncomfortable to rebuild the whole kernel, with this applied,
>> > when Debian releases a new kernel which happens frequently ;->
>> 
>> I fully understand. I must admit that I thought it would be a no-brainer
>> to verify this and get it into the upstream and the 2.6.32.x stable tree.  
> [...]
>
> Your patch removes the initialisation of kern_sge32[i] when
> ioc->sgl[i].iov_len is zero.  I think it should at least set the length
> to zero.

Yes, you are of course right.  I just considered it's usage in that
function, where it won't be used as long as kbuff_arr[i] is 0, but
kern_sge32[i] should be set to be absolutely safe with the firmware.

> Perhaps it's safest to pass max(ioc->sgl[i].iov_len, 1) as the length
> parameter to dma_alloc_coherent().

I agree that it would fix things, and that may be appropriate for a
Debian specific workaround where the workaround context always is clear,
but I don't think it's good as a permanent fix.  Reading the patched
code would be very confusing.  Not allocating 0 is self-explanatory.


Bjørn



Reply to: