Subject: Re: PROBLEM: usbnet / ax88179_178a: Panic in usb_hcd_map_urb_for_dma

From: Bjørn Mork <[email-masked]>
Date: Mon, 13 Jan 2014 13:25:26 +0100

David Laight <David.Laight-ZS65k/[email-masked]> writes:
> From: Bjørn Mork
>> David Laight <David.Laight-ZS65k/[email-masked]> writes:
>> 
>> > The patch you submitted is wrong.
>> > Whoever wrote the sg interface was on crack.
>> > The 'last' marker needs moving as well.
>> 
>> I'm afraid I don't understand what you meant by this.
>> 
>> sg_init_table() set the 'last' marker.  AFAICS, you don't need to change
>> it unless you want to chain lists.
>> 
>> Care to explain with some code?
>
> Just assuming that there will be some code, somewhere, that will try
> to process the entire sg list - so won't like the entry with a
> NULL pointer and zero length at the end.
>
> If all the places that process the list are given an explicit
> number of entries, or don't care about the NULL it doesn't matter.

I believe all processing use the urb->num_sgs field to limit the number
of entries.  Common interfaces like dma_map_sg() and for_each_sg() limit
their processing to "nents" entries, and the USB code use the value of
urb->num_sgs for this parameter.

Bjørn
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email-masked]
More majordomo info at  http://vger.kernel.org/majordomo-info.html